Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Delisle <marc@infomarc.info>2008-11-08 17:04:33 +0300
committerMarc Delisle <marc@infomarc.info>2008-11-08 17:04:33 +0300
commit905f966500b619e3434d1ed0495c18f9e164fb88 (patch)
tree0f66672f9b6c5dbd64b43558d203d1d10c873590
parent37aa00ca862eb6b7289e286ae038d357afb254d3 (diff)
-rw-r--r--CREDITS9
-rw-r--r--ChangeLog782
-rw-r--r--Documentation.html4528
-rw-r--r--INSTALL9
-rw-r--r--LICENSE340
-rw-r--r--README74
-rw-r--r--README.VENDOR21
-rw-r--r--TODO10
-rw-r--r--browse_foreigners.php289
-rw-r--r--bs_change_mime_type.php97
-rw-r--r--bs_disp_as_mime_type.php52
-rw-r--r--bs_play_media.php70
-rw-r--r--calendar.php30
-rw-r--r--changelog.php87
-rw-r--r--chk_rel.php26
-rw-r--r--config.sample.inc.php69
-rw-r--r--contrib/README12
-rw-r--r--contrib/packaging/Fedora/phpMyAdmin-http.conf12
-rw-r--r--contrib/packaging/Fedora/phpMyAdmin.spec163
-rw-r--r--contrib/swekey.sample.conf44
-rw-r--r--db_create.php52
-rw-r--r--db_datadict.php327
-rw-r--r--db_export.php77
-rw-r--r--db_import.php27
-rw-r--r--db_operations.php673
-rw-r--r--db_printview.php269
-rw-r--r--db_qbe.php944
-rw-r--r--db_search.php372
-rw-r--r--db_sql.php45
-rw-r--r--db_structure.php581
-rw-r--r--docs.css277
-rw-r--r--error.php83
-rw-r--r--export.php676
-rw-r--r--favicon.icobin0 -> 18902 bytes
-rw-r--r--import.php412
-rw-r--r--index.php189
-rw-r--r--js/common.js449
-rw-r--r--js/dom-drag.js124
-rw-r--r--js/functions.js1306
-rw-r--r--js/indexes.js91
-rw-r--r--js/keyhandler.js59
-rw-r--r--js/mooRainbow/images/blank.gifbin0 -> 43 bytes
-rw-r--r--js/mooRainbow/images/moor_arrows.gifbin0 -> 94 bytes
-rw-r--r--js/mooRainbow/images/moor_boverlay.pngbin0 -> 799 bytes
-rw-r--r--js/mooRainbow/images/moor_cursor.gifbin0 -> 80 bytes
-rw-r--r--js/mooRainbow/images/moor_slider.pngbin0 -> 590 bytes
-rw-r--r--js/mooRainbow/images/moor_woverlay.pngbin0 -> 768 bytes
-rw-r--r--js/mooRainbow/images/rainbow.pngbin0 -> 794 bytes
-rw-r--r--js/mooRainbow/mooRainbow.css114
-rw-r--r--js/mooRainbow/mooRainbow.js563
-rw-r--r--js/mootools-domready-rainbow.js16
-rw-r--r--js/mootools.js496
-rw-r--r--js/navigation.js139
-rw-r--r--js/querywindow.js42
-rw-r--r--js/server_privileges.js108
-rw-r--r--js/tbl_change.js345
-rw-r--r--js/tooltip.js212
-rwxr-xr-xlang/add_message.sh32
-rwxr-xr-xlang/add_message_file.sh32
-rw-r--r--lang/afrikaans-utf-8.inc.php1472
-rw-r--r--lang/albanian-utf-8.inc.php1471
-rw-r--r--lang/arabic-utf-8.inc.php1473
-rw-r--r--lang/azerbaijani-utf-8.inc.php1468
-rw-r--r--lang/bangla-utf-8.inc.php1447
-rw-r--r--lang/basque-utf-8.inc.php1465
-rw-r--r--lang/belarusian_cyrillic-utf-8.inc.php1447
-rw-r--r--lang/belarusian_latin-utf-8.inc.php1455
-rw-r--r--lang/bosnian-utf-8.inc.php1471
-rw-r--r--lang/brazilian_portuguese-utf-8.inc.php1445
-rw-r--r--lang/bulgarian-utf-8.inc.php1468
-rw-r--r--lang/catalan-utf-8.inc.php1444
-rwxr-xr-xlang/check_lang.sh62
-rw-r--r--lang/chinese_simplified-utf-8.inc.php1473
-rw-r--r--lang/chinese_traditional-utf-8.inc.php1452
-rw-r--r--lang/croatian-utf-8.inc.php1449
-rw-r--r--lang/czech-utf-8.inc.php1450
-rw-r--r--lang/danish-utf-8.inc.php1447
-rw-r--r--lang/dutch-utf-8.inc.php1469
-rw-r--r--lang/english-utf-8.inc.php1447
-rw-r--r--lang/estonian-utf-8.inc.php1453
-rw-r--r--lang/finnish-utf-8.inc.php1448
-rw-r--r--lang/french-utf-8.inc.php1444
-rw-r--r--lang/galician-utf-8.inc.php1446
-rw-r--r--lang/georgian-utf-8.inc.php1473
-rw-r--r--lang/german-utf-8.inc.php1453
-rw-r--r--lang/greek-utf-8.inc.php1470
-rw-r--r--lang/hebrew-utf-8.inc.php1465
-rw-r--r--lang/hindi-utf-8.inc.php1473
-rw-r--r--lang/hungarian-utf-8.inc.php1450
-rw-r--r--lang/indonesian-utf-8.inc.php1463
-rw-r--r--lang/italian-utf-8.inc.php1451
-rw-r--r--lang/japanese-utf-8.inc.php1453
-rw-r--r--lang/korean-utf-8.inc.php1468
-rw-r--r--lang/latvian-utf-8.inc.php1470
-rw-r--r--lang/lithuanian-utf-8.inc.php1463
-rw-r--r--lang/macedonian_cyrillic-utf-8.inc.php1448
-rw-r--r--lang/malay-utf-8.inc.php1485
-rw-r--r--lang/mongolian-utf-8.inc.php1468
-rw-r--r--lang/norwegian-utf-8.inc.php1445
-rw-r--r--lang/persian-utf-8.inc.php1499
-rw-r--r--lang/polish-utf-8.inc.php1441
-rw-r--r--lang/portuguese-utf-8.inc.php1474
-rwxr-xr-xlang/remove_message.sh23
-rw-r--r--lang/romanian-utf-8.inc.php1449
-rw-r--r--lang/russian-utf-8.inc.php1458
-rw-r--r--lang/serbian_cyrillic-utf-8.inc.php1447
-rw-r--r--lang/serbian_latin-utf-8.inc.php1447
-rw-r--r--lang/sinhala-utf-8.inc.php1450
-rw-r--r--lang/slovak-utf-8.inc.php1448
-rw-r--r--lang/slovenian-utf-8.inc.php1467
-rwxr-xr-xlang/sort_lang.sh83
-rw-r--r--lang/spanish-utf-8.inc.php1443
-rw-r--r--lang/swedish-utf-8.inc.php1445
-rw-r--r--lang/tatarish-utf-8.inc.php1458
-rw-r--r--lang/thai-utf-8.inc.php1469
-rwxr-xr-xlang/translatecount.sh31
-rw-r--r--lang/turkish-utf-8.inc.php1453
-rw-r--r--lang/ukrainian-utf-8.inc.php1467
-rw-r--r--libraries/.htaccess3
-rw-r--r--libraries/Config.class.php1053
-rw-r--r--libraries/Error.class.php436
-rw-r--r--libraries/Error_Handler.class.php401
-rw-r--r--libraries/File.class.php1256
-rw-r--r--libraries/Index.class.php696
-rw-r--r--libraries/List.class.php124
-rw-r--r--libraries/List_Database.class.php512
-rw-r--r--libraries/Message.class.php802
-rw-r--r--libraries/PMA.php94
-rw-r--r--libraries/Partition.class.php55
-rw-r--r--libraries/StorageEngine.class.php422
-rw-r--r--libraries/Table.class.php1152
-rw-r--r--libraries/Theme.class.php390
-rw-r--r--libraries/Theme_Manager.class.php379
-rw-r--r--libraries/auth/config.auth.lib.php138
-rw-r--r--libraries/auth/cookie.auth.lib.php676
-rw-r--r--libraries/auth/http.auth.lib.php228
-rw-r--r--libraries/auth/signon.auth.lib.php174
-rw-r--r--libraries/auth/swekey/authentication.inc.php167
-rw-r--r--libraries/auth/swekey/musbe-ca.crt25
-rw-r--r--libraries/auth/swekey/swekey.auth.lib.php271
-rw-r--r--libraries/auth/swekey/swekey.php499
-rw-r--r--libraries/blobstreaming.lib.php725
-rw-r--r--libraries/blowfish.php522
-rw-r--r--libraries/bookmark.lib.php190
-rw-r--r--libraries/charset_conversion.lib.php237
-rw-r--r--libraries/check_user_privileges.lib.php160
-rw-r--r--libraries/cleanup.lib.php45
-rw-r--r--libraries/common.inc.php967
-rw-r--r--libraries/common.lib.php2664
-rw-r--r--libraries/config.default.php2811
-rw-r--r--libraries/core.lib.php594
-rw-r--r--libraries/database_interface.lib.php1285
-rw-r--r--libraries/db_common.inc.php69
-rw-r--r--libraries/db_events.inc.php58
-rw-r--r--libraries/db_info.inc.php252
-rw-r--r--libraries/db_links.inc.php141
-rw-r--r--libraries/db_routines.inc.php88
-rw-r--r--libraries/db_table_exists.lib.php102
-rw-r--r--libraries/dbg/setup.php31
-rw-r--r--libraries/dbi/mysql.dbi.lib.php394
-rw-r--r--libraries/dbi/mysqli.dbi.lib.php622
-rw-r--r--libraries/display_change_password.lib.php72
-rw-r--r--libraries/display_create_database.lib.php41
-rw-r--r--libraries/display_create_table.lib.php64
-rw-r--r--libraries/display_export.lib.php277
-rw-r--r--libraries/display_import.lib.php190
-rw-r--r--libraries/display_select_lang.lib.php110
-rw-r--r--libraries/display_tbl.lib.php2307
-rw-r--r--libraries/display_tbl_links.lib.php59
-rw-r--r--libraries/engines/bdb.lib.php75
-rw-r--r--libraries/engines/berkeleydb.lib.php16
-rw-r--r--libraries/engines/binlog.lib.php24
-rw-r--r--libraries/engines/innobase.lib.php18
-rw-r--r--libraries/engines/innodb.lib.php336
-rw-r--r--libraries/engines/memory.lib.php27
-rw-r--r--libraries/engines/merge.lib.php14
-rw-r--r--libraries/engines/mrg_myisam.lib.php29
-rw-r--r--libraries/engines/myisam.lib.php62
-rw-r--r--libraries/engines/ndbcluster.lib.php43
-rw-r--r--libraries/engines/pbxt.lib.php84
-rw-r--r--libraries/export/codegen.php305
-rw-r--r--libraries/export/csv.php217
-rw-r--r--libraries/export/excel.php32
-rw-r--r--libraries/export/htmlexcel.php195
-rw-r--r--libraries/export/htmlword.php348
-rw-r--r--libraries/export/latex.php471
-rw-r--r--libraries/export/ods.php187
-rw-r--r--libraries/export/odt.php411
-rw-r--r--libraries/export/pdf.php477
-rw-r--r--libraries/export/sql.php1013
-rw-r--r--libraries/export/texytext.php336
-rw-r--r--libraries/export/xls.php218
-rw-r--r--libraries/export/xml.php180
-rw-r--r--libraries/export/yaml.php176
-rw-r--r--libraries/file_listing.php95
-rw-r--r--libraries/footer.inc.php221
-rw-r--r--libraries/grab_globals.lib.php123
-rw-r--r--libraries/header.inc.php165
-rw-r--r--libraries/header_http.inc.php30
-rw-r--r--libraries/header_meta_style.inc.php55
-rw-r--r--libraries/header_printview.inc.php74
-rw-r--r--libraries/header_scripts.inc.php139
-rw-r--r--libraries/iconv_wrapper.lib.php86
-rw-r--r--libraries/import.lib.php301
-rw-r--r--libraries/import/README42
-rw-r--r--libraries/import/csv.php323
-rw-r--r--libraries/import/docsql.php91
-rw-r--r--libraries/import/ldi.php106
-rw-r--r--libraries/import/sql.php287
-rw-r--r--libraries/information_schema_relations.lib.php135
-rw-r--r--libraries/ip_allow_deny.lib.php189
-rw-r--r--libraries/js_escape.lib.php68
-rw-r--r--libraries/kanji-encoding.lib.php151
-rw-r--r--libraries/mult_submits.inc.php431
-rw-r--r--libraries/mysql_charsets.lib.php418
-rw-r--r--libraries/navigation_header.inc.php108
-rw-r--r--libraries/ob.lib.php107
-rw-r--r--libraries/opendocument.lib.php103
-rw-r--r--libraries/parse_analyze.lib.php59
-rw-r--r--libraries/plugin_interface.lib.php377
-rw-r--r--libraries/relation.lib.php1167
-rw-r--r--libraries/relation_cleanup.lib.php176
-rw-r--r--libraries/sanitizing.lib.php71
-rw-r--r--libraries/select_lang.lib.php401
-rw-r--r--libraries/select_server.lib.php113
-rw-r--r--libraries/server_common.inc.php61
-rw-r--r--libraries/server_links.inc.php97
-rw-r--r--libraries/session.inc.php111
-rw-r--r--libraries/sql_query_form.lib.php547
-rw-r--r--libraries/sqlparser.data.php1290
-rw-r--r--libraries/sqlparser.lib.php2511
-rw-r--r--libraries/sqlvalidator.class.php412
-rw-r--r--libraries/sqlvalidator.lib.php98
-rw-r--r--libraries/string.lib.php154
-rw-r--r--libraries/string_mb.lib.php76
-rw-r--r--libraries/string_native.lib.php76
-rw-r--r--libraries/string_type_ctype.lib.php103
-rw-r--r--libraries/string_type_native.lib.php140
-rw-r--r--libraries/tbl_common.php47
-rw-r--r--libraries/tbl_info.inc.php103
-rw-r--r--libraries/tbl_links.inc.php140
-rw-r--r--libraries/tbl_properties.inc.php763
-rw-r--r--libraries/tbl_replace_fields.inc.php132
-rw-r--r--libraries/tbl_triggers.lib.php52
-rw-r--r--libraries/tcpdf/LICENSE.TXT504
-rw-r--r--libraries/tcpdf/font/LICENSE98
-rw-r--r--libraries/tcpdf/font/dejavusans-bold.ctg.zbin0 -> 8509 bytes
-rw-r--r--libraries/tcpdf/font/dejavusans-bold.zbin0 -> 263826 bytes
-rw-r--r--libraries/tcpdf/font/dejavusans.ctg.zbin0 -> 8517 bytes
-rw-r--r--libraries/tcpdf/font/dejavusans.php287
-rw-r--r--libraries/tcpdf/font/dejavusans.zbin0 -> 279448 bytes
-rw-r--r--libraries/tcpdf/font/dejavusansb.php287
-rw-r--r--libraries/tcpdf/font/dejavuserif-bold.ctg.zbin0 -> 3756 bytes
-rw-r--r--libraries/tcpdf/font/dejavuserif-bold.zbin0 -> 109155 bytes
-rw-r--r--libraries/tcpdf/font/dejavuserif.ctg.zbin0 -> 3756 bytes
-rw-r--r--libraries/tcpdf/font/dejavuserif.php130
-rw-r--r--libraries/tcpdf/font/dejavuserif.zbin0 -> 116258 bytes
-rw-r--r--libraries/tcpdf/font/dejavuserifb.php130
-rw-r--r--libraries/tcpdf/tcpdf.php6864
-rw-r--r--libraries/tcpdf/unicode_data.php18278
-rw-r--r--libraries/transformations.lib.php249
-rw-r--r--libraries/transformations/README4
-rw-r--r--libraries/transformations/TEMPLATE28
-rw-r--r--libraries/transformations/TEMPLATE_MIMETYPE13
-rw-r--r--libraries/transformations/application_octetstream__download.inc.php44
-rw-r--r--libraries/transformations/application_octetstream__hex.inc.php28
-rwxr-xr-xlibraries/transformations/generator.sh33
-rw-r--r--libraries/transformations/global.inc.php50
-rw-r--r--libraries/transformations/image_jpeg__inline.inc.php24
-rw-r--r--libraries/transformations/image_jpeg__link.inc.php20
-rw-r--r--libraries/transformations/image_png__inline.inc.php24
-rwxr-xr-xlibraries/transformations/template_generator.sh25
-rwxr-xr-xlibraries/transformations/template_generator_mimetype.sh20
-rw-r--r--libraries/transformations/text_plain__dateformat.inc.php96
-rw-r--r--libraries/transformations/text_plain__external.inc.php97
-rw-r--r--libraries/transformations/text_plain__formatted.inc.php15
-rw-r--r--libraries/transformations/text_plain__imagelink.inc.php19
-rw-r--r--libraries/transformations/text_plain__link.inc.php24
-rw-r--r--libraries/transformations/text_plain__longToIpv4.inc.php22
-rw-r--r--libraries/transformations/text_plain__sql.inc.php18
-rw-r--r--libraries/transformations/text_plain__substr.inc.php50
-rw-r--r--libraries/url_generating.lib.php319
-rw-r--r--libraries/zip.lib.php190
-rw-r--r--libraries/zip_extension.lib.php69
-rw-r--r--license.php17
-rw-r--r--main.php356
-rw-r--r--navigation.php680
-rw-r--r--pdf_pages.php573
-rw-r--r--pdf_schema.php1396
-rw-r--r--phpinfo.php21
-rw-r--r--phpmyadmin.css.php41
-rw-r--r--pmd/images/2leftarrow.pngbin0 -> 881 bytes
-rw-r--r--pmd/images/2leftarrow_m.pngbin0 -> 867 bytes
-rw-r--r--pmd/images/2rightarrow.pngbin0 -> 897 bytes
-rw-r--r--pmd/images/2rightarrow_m.pngbin0 -> 865 bytes
-rw-r--r--pmd/images/ang_direct.pngbin0 -> 795 bytes
-rw-r--r--pmd/images/bord.pngbin0 -> 75 bytes
-rw-r--r--pmd/images/bottom.pngbin0 -> 855 bytes
-rw-r--r--pmd/images/def.pngbin0 -> 742 bytes
-rw-r--r--pmd/images/display_field.pngbin0 -> 786 bytes
-rw-r--r--pmd/images/downarrow1.pngbin0 -> 880 bytes
-rw-r--r--pmd/images/downarrow2.pngbin0 -> 893 bytes
-rw-r--r--pmd/images/downarrow2_m.pngbin0 -> 871 bytes
-rw-r--r--pmd/images/exec.pngbin0 -> 854 bytes
-rw-r--r--pmd/images/exec_small.pngbin0 -> 197 bytes
-rw-r--r--pmd/images/favicon.icobin0 -> 1150 bytes
-rw-r--r--pmd/images/grid.pngbin0 -> 803 bytes
-rw-r--r--pmd/images/help.pngbin0 -> 876 bytes
-rw-r--r--pmd/images/help_relation.pngbin0 -> 1355 bytes
-rw-r--r--pmd/images/pdf.pngbin0 -> 946 bytes
-rw-r--r--pmd/images/relation.pngbin0 -> 324 bytes
-rw-r--r--pmd/images/reload.pngbin0 -> 945 bytes
-rw-r--r--pmd/images/resize.pngbin0 -> 140 bytes
-rw-r--r--pmd/images/rightarrow1.pngbin0 -> 837 bytes
-rw-r--r--pmd/images/rightarrow2.pngbin0 -> 878 bytes
-rw-r--r--pmd/images/save.pngbin0 -> 580 bytes
-rw-r--r--pmd/images/table.pngbin0 -> 171 bytes
-rw-r--r--pmd/images/uparrow2_m.pngbin0 -> 866 bytes
-rw-r--r--pmd/scripts/ajax.js134
-rw-r--r--pmd/scripts/iecanvas.js151
-rw-r--r--pmd/scripts/move.js923
-rw-r--r--pmd/styles/default/images/1.pngbin0 -> 97 bytes
-rw-r--r--pmd/styles/default/images/2.pngbin0 -> 172 bytes
-rw-r--r--pmd/styles/default/images/3.pngbin0 -> 171 bytes
-rw-r--r--pmd/styles/default/images/4.pngbin0 -> 157 bytes
-rw-r--r--pmd/styles/default/images/5.pngbin0 -> 84 bytes
-rw-r--r--pmd/styles/default/images/6.pngbin0 -> 93 bytes
-rw-r--r--pmd/styles/default/images/7.pngbin0 -> 95 bytes
-rw-r--r--pmd/styles/default/images/8.pngbin0 -> 84 bytes
-rw-r--r--pmd/styles/default/images/FieldKey_small.pngbin0 -> 267 bytes
-rw-r--r--pmd/styles/default/images/Field_small.pngbin0 -> 293 bytes
-rw-r--r--pmd/styles/default/images/Field_small_char.pngbin0 -> 171 bytes
-rw-r--r--pmd/styles/default/images/Field_small_date.pngbin0 -> 154 bytes
-rw-r--r--pmd/styles/default/images/Field_small_int.pngbin0 -> 168 bytes
-rw-r--r--pmd/styles/default/images/Header.pngbin0 -> 145 bytes
-rw-r--r--pmd/styles/default/images/Header_Linked.pngbin0 -> 125 bytes
-rw-r--r--pmd/styles/default/images/left_panel_butt.pngbin0 -> 129 bytes
-rw-r--r--pmd/styles/default/images/left_panel_tab.pngbin0 -> 133 bytes
-rw-r--r--pmd/styles/default/images/small_tab.pngbin0 -> 179 bytes
-rw-r--r--pmd/styles/default/images/top_panel.pngbin0 -> 171 bytes
-rw-r--r--pmd/styles/default/style1.css380
-rw-r--r--pmd_common.php298
-rw-r--r--pmd_display_field.php50
-rw-r--r--pmd_general.php407
-rw-r--r--pmd_help.php32
-rw-r--r--pmd_pdf.php105
-rw-r--r--pmd_relation_new.php107
-rw-r--r--pmd_relation_upd.php58
-rw-r--r--pmd_save_pos.php57
-rw-r--r--print.css69
-rw-r--r--querywindow.php273
-rw-r--r--readme.php17
-rw-r--r--robots.txt2
-rw-r--r--scripts/check_lang.php61
-rwxr-xr-xscripts/convertcfg.pl19
-rwxr-xr-xscripts/create-release.sh279
-rw-r--r--scripts/create_tables.sql174
-rw-r--r--scripts/decode_bug.php105
-rwxr-xr-xscripts/find_unused_messages.sh31
-rwxr-xr-xscripts/lang-cleanup.sh76
-rwxr-xr-xscripts/remove_control_m.sh23
-rw-r--r--scripts/signon.php56
-rwxr-xr-xscripts/upgrade.pl223
-rw-r--r--scripts/upgrade_tables_mysql_4_1_2+.sql164
-rw-r--r--server_binlog.php252
-rw-r--r--server_collations.php96
-rw-r--r--server_databases.php351
-rw-r--r--server_engines.php149
-rw-r--r--server_export.php53
-rw-r--r--server_import.php31
-rw-r--r--server_privileges.php2082
-rw-r--r--server_processlist.php92
-rw-r--r--server_sql.php36
-rw-r--r--server_status.php682
-rw-r--r--server_variables.php111
-rw-r--r--setup/config.php100
-rw-r--r--setup/frames/config.inc.php45
-rw-r--r--setup/frames/form.inc.php47
-rw-r--r--setup/frames/index.inc.php243
-rw-r--r--setup/frames/menu.inc.php24
-rw-r--r--setup/frames/servers.inc.php47
-rw-r--r--setup/index.php51
-rw-r--r--setup/lib/ConfigFile.class.php314
-rw-r--r--setup/lib/Form.class.php177
-rw-r--r--setup/lib/FormDisplay.class.php582
-rw-r--r--setup/lib/FormDisplay.tpl.php294
-rw-r--r--setup/lib/common.inc.php228
-rw-r--r--setup/lib/config_info.inc.php141
-rw-r--r--setup/lib/form_processing.lib.php61
-rw-r--r--setup/lib/forms.inc.php176
-rw-r--r--setup/lib/index.lib.php426
-rw-r--r--setup/lib/validate.lib.php362
-rw-r--r--setup/scripts.js717
-rw-r--r--setup/styles.css379
-rw-r--r--setup/validate.php20
-rw-r--r--show_config_errors.php17
-rw-r--r--sql.php700
-rw-r--r--tbl_addfield.php224
-rw-r--r--tbl_alter.php205
-rw-r--r--tbl_change.php1162
-rw-r--r--tbl_create.php273
-rw-r--r--tbl_export.php92
-rw-r--r--tbl_import.php33
-rw-r--r--tbl_indexes.php264
-rw-r--r--tbl_move_copy.php89
-rw-r--r--tbl_operations.php721
-rw-r--r--tbl_printview.php507
-rw-r--r--tbl_relation.php517
-rw-r--r--tbl_replace.php403
-rw-r--r--tbl_row_action.php165
-rw-r--r--tbl_select.php418
-rw-r--r--tbl_sql.php46
-rw-r--r--tbl_structure.php818
-rw-r--r--test/AllTests.php76
-rw-r--r--test/Environment_test.php33
-rw-r--r--test/FailTest.php22
-rw-r--r--test/PMA_STR_sub_test.php43
-rw-r--r--test/PMA_blowfish_test.php59
-rw-r--r--test/PMA_escapeJsString_test.php58
-rw-r--r--test/PMA_escapeMySqlWildcards_test.php86
-rw-r--r--test/PMA_generateCommonUrl_test.php159
-rw-r--r--test/PMA_get_real_size_test.php43
-rw-r--r--test/PMA_isValid_test.php112
-rw-r--r--test/PMA_pow_test.php80
-rw-r--r--test/PMA_sanitize_test.php42
-rw-r--r--test/PMA_transformation_getOptions_test.php48
-rw-r--r--test/theme.php325
-rw-r--r--themes.php45
-rw-r--r--themes/darkblue_orange/css/theme_right.css.php1228
-rw-r--r--themes/darkblue_orange/img/arrow_ltr.pngbin0 -> 277 bytes
-rw-r--r--themes/darkblue_orange/img/arrow_rtl.pngbin0 -> 278 bytes
-rw-r--r--themes/darkblue_orange/img/asc_order.pngbin0 -> 124 bytes
-rw-r--r--themes/darkblue_orange/img/b_bookmark.pngbin0 -> 372 bytes
-rw-r--r--themes/darkblue_orange/img/b_browse.pngbin0 -> 265 bytes
-rw-r--r--themes/darkblue_orange/img/b_calendar.pngbin0 -> 308 bytes
-rw-r--r--themes/darkblue_orange/img/b_comment.pngbin0 -> 552 bytes
-rw-r--r--themes/darkblue_orange/img/b_dbstatistics.pngbin0 -> 263 bytes
-rw-r--r--themes/darkblue_orange/img/b_deltbl.pngbin0 -> 364 bytes
-rw-r--r--themes/darkblue_orange/img/b_docs.pngbin0 -> 292 bytes
-rw-r--r--themes/darkblue_orange/img/b_docsql.pngbin0 -> 283 bytes
-rw-r--r--themes/darkblue_orange/img/b_drop.pngbin0 -> 311 bytes
-rw-r--r--themes/darkblue_orange/img/b_edit.pngbin0 -> 451 bytes
-rw-r--r--themes/darkblue_orange/img/b_empty.pngbin0 -> 298 bytes
-rw-r--r--themes/darkblue_orange/img/b_engine.pngbin0 -> 362 bytes
-rw-r--r--themes/darkblue_orange/img/b_export.pngbin0 -> 313 bytes
-rw-r--r--themes/darkblue_orange/img/b_firstpage.pngbin0 -> 238 bytes
-rw-r--r--themes/darkblue_orange/img/b_ftext.pngbin0 -> 277 bytes
-rw-r--r--themes/darkblue_orange/img/b_help.pngbin0 -> 229 bytes
-rw-r--r--themes/darkblue_orange/img/b_home.pngbin0 -> 370 bytes
-rw-r--r--themes/darkblue_orange/img/b_import.pngbin0 -> 310 bytes
-rw-r--r--themes/darkblue_orange/img/b_index.pngbin0 -> 315 bytes
-rw-r--r--themes/darkblue_orange/img/b_info.pngbin0 -> 234 bytes
-rw-r--r--themes/darkblue_orange/img/b_insrow.pngbin0 -> 283 bytes
-rw-r--r--themes/darkblue_orange/img/b_lastpage.pngbin0 -> 236 bytes
-rw-r--r--themes/darkblue_orange/img/b_minus.pngbin0 -> 183 bytes
-rw-r--r--themes/darkblue_orange/img/b_newdb.pngbin0 -> 408 bytes
-rw-r--r--themes/darkblue_orange/img/b_newtbl.pngbin0 -> 409 bytes
-rw-r--r--themes/darkblue_orange/img/b_nextpage.pngbin0 -> 221 bytes
-rw-r--r--themes/darkblue_orange/img/b_pdfdoc.pngbin0 -> 298 bytes
-rw-r--r--themes/darkblue_orange/img/b_plus.pngbin0 -> 185 bytes
-rw-r--r--themes/darkblue_orange/img/b_prevpage.pngbin0 -> 225 bytes
-rw-r--r--themes/darkblue_orange/img/b_primary.pngbin0 -> 416 bytes
-rw-r--r--themes/darkblue_orange/img/b_print.pngbin0 -> 574 bytes
-rw-r--r--themes/darkblue_orange/img/b_props.pngbin0 -> 294 bytes
-rw-r--r--themes/darkblue_orange/img/b_relations.pngbin0 -> 280 bytes
-rw-r--r--themes/darkblue_orange/img/b_save.pngbin0 -> 385 bytes
-rw-r--r--themes/darkblue_orange/img/b_sbrowse.pngbin0 -> 197 bytes
-rw-r--r--themes/darkblue_orange/img/b_sdb.pngbin0 -> 232 bytes
-rw-r--r--themes/darkblue_orange/img/b_search.pngbin0 -> 605 bytes
-rw-r--r--themes/darkblue_orange/img/b_selboard.pngbin0 -> 274 bytes
-rw-r--r--themes/darkblue_orange/img/b_select.pngbin0 -> 540 bytes
-rw-r--r--themes/darkblue_orange/img/b_sql.pngbin0 -> 322 bytes
-rw-r--r--themes/darkblue_orange/img/b_sqldoc.pngbin0 -> 290 bytes
-rw-r--r--themes/darkblue_orange/img/b_sqlhelp.pngbin0 -> 287 bytes
-rw-r--r--themes/darkblue_orange/img/b_tblanalyse.pngbin0 -> 296 bytes
-rw-r--r--themes/darkblue_orange/img/b_tblexport.pngbin0 -> 283 bytes
-rw-r--r--themes/darkblue_orange/img/b_tblimport.pngbin0 -> 280 bytes
-rw-r--r--themes/darkblue_orange/img/b_tblops.pngbin0 -> 345 bytes
-rw-r--r--themes/darkblue_orange/img/b_tbloptimize.pngbin0 -> 300 bytes
-rw-r--r--themes/darkblue_orange/img/b_tipp.pngbin0 -> 308 bytes
-rw-r--r--themes/darkblue_orange/img/b_unique.pngbin0 -> 281 bytes
-rw-r--r--themes/darkblue_orange/img/b_usradd.pngbin0 -> 523 bytes
-rw-r--r--themes/darkblue_orange/img/b_usrcheck.pngbin0 -> 400 bytes
-rw-r--r--themes/darkblue_orange/img/b_usrdrop.pngbin0 -> 438 bytes
-rw-r--r--themes/darkblue_orange/img/b_usredit.pngbin0 -> 493 bytes
-rw-r--r--themes/darkblue_orange/img/b_usrlist.pngbin0 -> 401 bytes
-rw-r--r--themes/darkblue_orange/img/b_view.pngbin0 -> 885 bytes
-rw-r--r--themes/darkblue_orange/img/b_views.pngbin0 -> 477 bytes
-rw-r--r--themes/darkblue_orange/img/bd_browse.pngbin0 -> 265 bytes
-rw-r--r--themes/darkblue_orange/img/bd_deltbl.pngbin0 -> 424 bytes
-rw-r--r--themes/darkblue_orange/img/bd_drop.pngbin0 -> 337 bytes
-rw-r--r--themes/darkblue_orange/img/bd_empty.pngbin0 -> 298 bytes
-rw-r--r--themes/darkblue_orange/img/bd_firstpage.pngbin0 -> 238 bytes
-rw-r--r--themes/darkblue_orange/img/bd_ftext.pngbin0 -> 277 bytes
-rw-r--r--themes/darkblue_orange/img/bd_index.pngbin0 -> 315 bytes
-rw-r--r--themes/darkblue_orange/img/bd_insrow.pngbin0 -> 347 bytes
-rw-r--r--themes/darkblue_orange/img/bd_lastpage.pngbin0 -> 236 bytes
-rw-r--r--themes/darkblue_orange/img/bd_nextpage.pngbin0 -> 221 bytes
-rw-r--r--themes/darkblue_orange/img/bd_prevpage.pngbin0 -> 225 bytes
-rw-r--r--themes/darkblue_orange/img/bd_primary.pngbin0 -> 389 bytes
-rw-r--r--themes/darkblue_orange/img/bd_sbrowse.pngbin0 -> 197 bytes
-rw-r--r--themes/darkblue_orange/img/bd_select.pngbin0 -> 524 bytes
-rw-r--r--themes/darkblue_orange/img/bd_unique.pngbin0 -> 287 bytes
-rw-r--r--themes/darkblue_orange/img/error.icobin0 -> 318 bytes
-rw-r--r--themes/darkblue_orange/img/item.pngbin0 -> 206 bytes
-rw-r--r--themes/darkblue_orange/img/item_ltr.pngbin0 -> 173 bytes
-rw-r--r--themes/darkblue_orange/img/item_rtl.pngbin0 -> 173 bytes
-rw-r--r--themes/darkblue_orange/img/logo_left.pngbin0 -> 6854 bytes
-rw-r--r--themes/darkblue_orange/img/logo_right.pngbin0 -> 5644 bytes
-rw-r--r--themes/darkblue_orange/img/php_sym.pngbin0 -> 249 bytes
-rw-r--r--themes/darkblue_orange/img/pma_logo2.pngbin0 -> 1837 bytes
-rw-r--r--themes/darkblue_orange/img/s_asc.pngbin0 -> 213 bytes
-rw-r--r--themes/darkblue_orange/img/s_asci.pngbin0 -> 254 bytes
-rw-r--r--themes/darkblue_orange/img/s_attention.pngbin0 -> 247 bytes
-rw-r--r--themes/darkblue_orange/img/s_cancel.pngbin0 -> 449 bytes
-rw-r--r--themes/darkblue_orange/img/s_cancel2.pngbin0 -> 234 bytes
-rw-r--r--themes/darkblue_orange/img/s_db.pngbin0 -> 285 bytes
-rw-r--r--themes/darkblue_orange/img/s_desc.pngbin0 -> 221 bytes
-rw-r--r--themes/darkblue_orange/img/s_error.pngbin0 -> 272 bytes
-rw-r--r--themes/darkblue_orange/img/s_error2.pngbin0 -> 237 bytes
-rw-r--r--themes/darkblue_orange/img/s_fulltext.pngbin0 -> 308 bytes
-rw-r--r--themes/darkblue_orange/img/s_host.pngbin0 -> 316 bytes
-rw-r--r--themes/darkblue_orange/img/s_info.pngbin0 -> 247 bytes
-rw-r--r--themes/darkblue_orange/img/s_lang.pngbin0 -> 422 bytes
-rw-r--r--themes/darkblue_orange/img/s_loggoff.pngbin0 -> 262 bytes
-rw-r--r--themes/darkblue_orange/img/s_notice.pngbin0 -> 247 bytes
-rw-r--r--themes/darkblue_orange/img/s_okay.pngbin0 -> 542 bytes
-rw-r--r--themes/darkblue_orange/img/s_partialtext.pngbin0 -> 318 bytes
-rw-r--r--themes/darkblue_orange/img/s_passwd.pngbin0 -> 505 bytes
-rw-r--r--themes/darkblue_orange/img/s_process.pngbin0 -> 362 bytes
-rw-r--r--themes/darkblue_orange/img/s_really.pngbin0 -> 229 bytes
-rw-r--r--themes/darkblue_orange/img/s_reload.pngbin0 -> 245 bytes
-rw-r--r--themes/darkblue_orange/img/s_rights.pngbin0 -> 512 bytes
-rw-r--r--themes/darkblue_orange/img/s_status.pngbin0 -> 313 bytes
-rw-r--r--themes/darkblue_orange/img/s_success.pngbin0 -> 612 bytes
-rw-r--r--themes/darkblue_orange/img/s_tbl.pngbin0 -> 252 bytes
-rw-r--r--themes/darkblue_orange/img/s_theme.pngbin0 -> 737 bytes
-rw-r--r--themes/darkblue_orange/img/s_vars.pngbin0 -> 306 bytes
-rw-r--r--themes/darkblue_orange/img/s_views.pngbin0 -> 368 bytes
-rw-r--r--themes/darkblue_orange/img/s_warn.pngbin0 -> 261 bytes
-rw-r--r--themes/darkblue_orange/img/spacer.pngbin0 -> 153 bytes
-rw-r--r--themes/darkblue_orange/img/tbl_header.pngbin0 -> 832 bytes
-rw-r--r--themes/darkblue_orange/img/tbl_th.pngbin0 -> 593 bytes
-rw-r--r--themes/darkblue_orange/img/window-new.pngbin0 -> 583 bytes
-rw-r--r--themes/darkblue_orange/info.inc.php16
-rw-r--r--themes/darkblue_orange/layout.inc.php123
-rw-r--r--themes/darkblue_orange/screen.pngbin0 -> 18697 bytes
-rw-r--r--themes/original/css/theme_left.css.php226
-rw-r--r--themes/original/css/theme_print.css.php39
-rw-r--r--themes/original/css/theme_right.css.php1179
-rw-r--r--themes/original/img/arrow_ltr.pngbin0 -> 277 bytes
-rw-r--r--themes/original/img/arrow_rtl.pngbin0 -> 278 bytes
-rw-r--r--themes/original/img/asc_order.pngbin0 -> 124 bytes
-rw-r--r--themes/original/img/b_bookmark.pngbin0 -> 372 bytes
-rw-r--r--themes/original/img/b_browse.pngbin0 -> 265 bytes
-rw-r--r--themes/original/img/b_calendar.pngbin0 -> 308 bytes
-rw-r--r--themes/original/img/b_comment.pngbin0 -> 552 bytes
-rw-r--r--themes/original/img/b_dbstatistics.pngbin0 -> 263 bytes
-rw-r--r--themes/original/img/b_deltbl.pngbin0 -> 364 bytes
-rw-r--r--themes/original/img/b_docs.pngbin0 -> 292 bytes
-rw-r--r--themes/original/img/b_docsql.pngbin0 -> 283 bytes
-rw-r--r--themes/original/img/b_drop.pngbin0 -> 311 bytes
-rw-r--r--themes/original/img/b_edit.pngbin0 -> 451 bytes
-rw-r--r--themes/original/img/b_empty.pngbin0 -> 298 bytes
-rw-r--r--themes/original/img/b_engine.pngbin0 -> 362 bytes
-rw-r--r--themes/original/img/b_export.pngbin0 -> 313 bytes
-rw-r--r--themes/original/img/b_firstpage.pngbin0 -> 238 bytes
-rw-r--r--themes/original/img/b_ftext.pngbin0 -> 277 bytes
-rw-r--r--themes/original/img/b_help.pngbin0 -> 229 bytes
-rw-r--r--themes/original/img/b_home.pngbin0 -> 370 bytes
-rw-r--r--themes/original/img/b_import.pngbin0 -> 310 bytes
-rw-r--r--themes/original/img/b_index.pngbin0 -> 315 bytes
-rw-r--r--themes/original/img/b_info.pngbin0 -> 234 bytes
-rw-r--r--themes/original/img/b_insrow.pngbin0 -> 283 bytes
-rw-r--r--themes/original/img/b_lastpage.pngbin0 -> 236 bytes
-rw-r--r--themes/original/img/b_minus.pngbin0 -> 183 bytes
-rw-r--r--themes/original/img/b_newdb.pngbin0 -> 408 bytes
-rw-r--r--themes/original/img/b_newtbl.pngbin0 -> 409 bytes
-rw-r--r--themes/original/img/b_nextpage.pngbin0 -> 221 bytes
-rw-r--r--themes/original/img/b_pdfdoc.pngbin0 -> 298 bytes
-rw-r--r--themes/original/img/b_plus.pngbin0 -> 185 bytes
-rw-r--r--themes/original/img/b_prevpage.pngbin0 -> 225 bytes
-rw-r--r--themes/original/img/b_primary.pngbin0 -> 416 bytes
-rw-r--r--themes/original/img/b_print.pngbin0 -> 574 bytes
-rw-r--r--themes/original/img/b_props.pngbin0 -> 294 bytes
-rw-r--r--themes/original/img/b_relations.pngbin0 -> 280 bytes
-rw-r--r--themes/original/img/b_save.pngbin0 -> 385 bytes
-rw-r--r--themes/original/img/b_sbrowse.pngbin0 -> 197 bytes
-rw-r--r--themes/original/img/b_sdb.pngbin0 -> 232 bytes
-rw-r--r--themes/original/img/b_search.pngbin0 -> 605 bytes
-rw-r--r--themes/original/img/b_selboard.pngbin0 -> 274 bytes
-rw-r--r--themes/original/img/b_select.pngbin0 -> 540 bytes
-rw-r--r--themes/original/img/b_sql.pngbin0 -> 322 bytes
-rw-r--r--themes/original/img/b_sqldoc.pngbin0 -> 290 bytes
-rw-r--r--themes/original/img/b_sqlhelp.pngbin0 -> 287 bytes
-rw-r--r--themes/original/img/b_tblanalyse.pngbin0 -> 296 bytes
-rw-r--r--themes/original/img/b_tblexport.pngbin0 -> 283 bytes
-rw-r--r--themes/original/img/b_tblimport.pngbin0 -> 280 bytes
-rw-r--r--themes/original/img/b_tblops.pngbin0 -> 345 bytes
-rw-r--r--themes/original/img/b_tbloptimize.pngbin0 -> 300 bytes
-rw-r--r--themes/original/img/b_tipp.pngbin0 -> 308 bytes
-rw-r--r--themes/original/img/b_unique.pngbin0 -> 281 bytes
-rw-r--r--themes/original/img/b_usradd.pngbin0 -> 523 bytes
-rw-r--r--themes/original/img/b_usrcheck.pngbin0 -> 400 bytes
-rw-r--r--themes/original/img/b_usrdrop.pngbin0 -> 438 bytes
-rw-r--r--themes/original/img/b_usredit.pngbin0 -> 493 bytes
-rw-r--r--themes/original/img/b_usrlist.pngbin0 -> 401 bytes
-rw-r--r--themes/original/img/b_view.pngbin0 -> 885 bytes
-rw-r--r--themes/original/img/b_views.pngbin0 -> 477 bytes
-rw-r--r--themes/original/img/bd_browse.pngbin0 -> 265 bytes
-rw-r--r--themes/original/img/bd_deltbl.pngbin0 -> 424 bytes
-rw-r--r--themes/original/img/bd_drop.pngbin0 -> 337 bytes
-rw-r--r--themes/original/img/bd_empty.pngbin0 -> 298 bytes
-rw-r--r--themes/original/img/bd_firstpage.pngbin0 -> 238 bytes
-rw-r--r--themes/original/img/bd_ftext.pngbin0 -> 277 bytes
-rw-r--r--themes/original/img/bd_index.pngbin0 -> 315 bytes
-rw-r--r--themes/original/img/bd_insrow.pngbin0 -> 347 bytes
-rw-r--r--themes/original/img/bd_lastpage.pngbin0 -> 236 bytes
-rw-r--r--themes/original/img/bd_nextpage.pngbin0 -> 221 bytes
-rw-r--r--themes/original/img/bd_prevpage.pngbin0 -> 225 bytes
-rw-r--r--themes/original/img/bd_primary.pngbin0 -> 389 bytes
-rw-r--r--themes/original/img/bd_sbrowse.pngbin0 -> 197 bytes
-rw-r--r--themes/original/img/bd_select.pngbin0 -> 524 bytes
-rw-r--r--themes/original/img/bd_unique.pngbin0 -> 287 bytes
-rw-r--r--themes/original/img/error.icobin0 -> 318 bytes
-rw-r--r--themes/original/img/item.pngbin0 -> 206 bytes
-rw-r--r--themes/original/img/item_ltr.pngbin0 -> 173 bytes
-rw-r--r--themes/original/img/item_rtl.pngbin0 -> 173 bytes
-rw-r--r--themes/original/img/logo_left.pngbin0 -> 6854 bytes
-rw-r--r--themes/original/img/logo_right.pngbin0 -> 5658 bytes
-rw-r--r--themes/original/img/php_sym.pngbin0 -> 249 bytes
-rw-r--r--themes/original/img/pma_logo2.pngbin0 -> 1837 bytes
-rw-r--r--themes/original/img/s_asc.pngbin0 -> 213 bytes
-rw-r--r--themes/original/img/s_asci.pngbin0 -> 254 bytes
-rw-r--r--themes/original/img/s_attention.pngbin0 -> 247 bytes
-rw-r--r--themes/original/img/s_cancel.pngbin0 -> 449 bytes
-rw-r--r--themes/original/img/s_cancel2.pngbin0 -> 234 bytes
-rw-r--r--themes/original/img/s_db.pngbin0 -> 285 bytes
-rw-r--r--themes/original/img/s_desc.pngbin0 -> 221 bytes
-rw-r--r--themes/original/img/s_error.pngbin0 -> 272 bytes
-rw-r--r--themes/original/img/s_error2.pngbin0 -> 237 bytes
-rw-r--r--themes/original/img/s_fulltext.pngbin0 -> 308 bytes
-rw-r--r--themes/original/img/s_host.pngbin0 -> 316 bytes
-rw-r--r--themes/original/img/s_info.pngbin0 -> 247 bytes
-rw-r--r--themes/original/img/s_lang.pngbin0 -> 422 bytes
-rw-r--r--themes/original/img/s_loggoff.pngbin0 -> 262 bytes
-rw-r--r--themes/original/img/s_notice.pngbin0 -> 247 bytes
-rw-r--r--themes/original/img/s_okay.pngbin0 -> 542 bytes
-rw-r--r--themes/original/img/s_partialtext.pngbin0 -> 318 bytes
-rw-r--r--themes/original/img/s_passwd.pngbin0 -> 505 bytes
-rw-r--r--themes/original/img/s_process.pngbin0 -> 362 bytes
-rw-r--r--themes/original/img/s_really.pngbin0 -> 229 bytes
-rw-r--r--themes/original/img/s_reload.pngbin0 -> 245 bytes
-rw-r--r--themes/original/img/s_rights.pngbin0 -> 512 bytes
-rw-r--r--themes/original/img/s_status.pngbin0 -> 313 bytes
-rw-r--r--themes/original/img/s_success.pngbin0 -> 612 bytes
-rw-r--r--themes/original/img/s_tbl.pngbin0 -> 252 bytes
-rw-r--r--themes/original/img/s_theme.pngbin0 -> 737 bytes
-rw-r--r--themes/original/img/s_vars.pngbin0 -> 306 bytes
-rw-r--r--themes/original/img/s_views.pngbin0 -> 368 bytes
-rw-r--r--themes/original/img/s_warn.pngbin0 -> 261 bytes
-rw-r--r--themes/original/img/spacer.pngbin0 -> 153 bytes
-rw-r--r--themes/original/img/vertical_line.pngbin0 -> 83 bytes
-rw-r--r--themes/original/img/window-new.pngbin0 -> 583 bytes
-rw-r--r--themes/original/info.inc.php16
-rw-r--r--themes/original/layout.inc.php116
-rw-r--r--themes/original/screen.pngbin0 -> 23699 bytes
-rw-r--r--transformation_overview.php72
-rw-r--r--transformation_wrapper.php117
-rw-r--r--translators.html440
-rw-r--r--user_password.php140
-rw-r--r--view_create.php190
-rw-r--r--webapp.php47
673 files changed, 195341 insertions, 0 deletions
diff --git a/CREDITS b/CREDITS
new file mode 100644
index 0000000000..6506d4d7e3
--- /dev/null
+++ b/CREDITS
@@ -0,0 +1,9 @@
+$Id$
+
+
+phpMyAdmin - Credits
+====================
+
+ Please have a look to the Documentation.txt or
+ Documentation.html files.
+
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000000..95152dd77e
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,782 @@
+----------------------
+phpMyAdmin - ChangeLog
+----------------------
+
+$Id$
+$HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin/ChangeLog $
+
+3.1.0.0 (not yet released)
++ [auth] Support for Swekey hardware authentication
+- bug #2046883 [core] Notices about deprecated dl() (so stop using it)
++ BLOBstreaming support, thanks to Raj Kissu Rajandran and
+ Google Summer of Code 2008
++ patch #2067462 [lang] link FAQ references in messages,
+ thanks to Thijs Kinkhorst - kink
++ new setup script, thanks to Piotr Przybylski (work in progress)
+- rfe #1892243 [export] more links to documentation
++ [auth] cookie auth now autogenerates blowfish_secret, but it has some
+ limitations and you still should set it in config file
++ [auth] cookie authentication is now the default
++ [auth] do not allow root user without password unless explicitly enabled by
+ AllowNoPasswordRoot
++ rfe #1778908 [auth] arbitrary server auth can now also accept port
+- patch #2089240 [export] handle correctly switching SQL modes
++ rfe #1612724 [export] add option to export without comments
+- bug #2090002 [display] Cannot edit row in VIEW
+- patch #2099962 [js] fix js error without frameset, thanks to Xuefer
+- patch #2099972 [structure] Display None when there is no default value,
+ thanks to Xuefer - xuefer
+- patch #2122883 [PDF schema] Option to display just the keys,
+ thanks to Samuel Sol Villar dos Santos - yohanleafheart
++ rfe #1276463 [search] Search empty/not empty values
++ rfe #823652 [structure] ENUM values: field size too small
+- [lang] Persian update, thanks to Goolex - goolex
+- [lang] Czech update, thanks to Nicky 726.
+
+3.0.2.0 (not yet released)
+- [lang] Italian update, thanks to Luca and fantu
+- bug #2107583 [GUI] Leading newline truncated, thanks to Isart Montane
+- bug #2222230 [import] Assigning a value in import.php, thanks to
+ Glen Arason
+
+3.0.1.1 (2008-10-30)
+- [security] XSS in a Designer component
+
+3.0.1.0 (2008-10-22)
+- bug #2134126 [GUI] SQL error after sorting a subset
++ [lang] Catalan update, thanks to Xavier Navarro
++ [lang] Russian update, thanks to Victor Volkov
+- patch #2143882 [import] Temporary uploaded file not deleted,
+ thanks to David Misc - dmisc
+- bug #2136986 [auth] Cannot create database after session timeout
+- bug #1914066 [core] ForceSSL generates incorrectly escaped redirections,
+ this time with the correct fix
++ [lang] Hungarian update, thanks to Jozsef Tamas Herczeg - dodika
+- bug #2153970 [core] Properly truncate SQL to avoid half of html tags
++ [lang] Romanian update, thanks to Sergiu Bivol - sbivol
+- bug #2161443 [structure] Incorrect index choice shown when modifying an
+index
+- bug #2127094 [interface] Misleading message after cancelling an action
++ [lang] Croatian update, thanks to Renato Pavicic
++ [lang] Finnish update, thanks to Jouni Kahkonen
++ [lang] Polish update, thanks to Jakub Wilk
++ [lang] Japanese update, thanks to Ishigaki Kenichi
+- patch #2176438 [privileges] Wrong message when changing password,
+ thanks to incognito - zytisin
+- bug #2163437 [core] Cannot disable PMA tables
+- bug #2184240 [lang] Problems with Italian language file, thanks to Luca
+Rebellato
+- bug #2187193 [interface] ShowChgPassword setting not respected
+
+3.0.0.0 (2008-09-27)
++ [export] properly handle line breaks for YAML, thanks to Dan Barry -
+danbarry
++ [navi] new parameter $cfg['LeftDefaultTabTable']
++ [table] support MySQL 5.1 PARTITION: CREATE TABLE / Table structure,
+ partition maintenance
++ [privileges] support for EVENT and TRIGGER
++ [error handler] NEW handle errors to prevent path disclosure and display/collect errors
++ [mysqlnd] do not display $strMysqlLibDiffersServerVersion if the client
+ is mysqlnd
++ [webapp] experimental Mozilla Prism support
++ [export] new plugin "codegen" for NHibernate, thanks to caocao; I'm
+ looking for a name more descriptive than codegen, taking into account
+ that it might later support other formats like JSON in the same plugin
++ [export] new export to Texy! markup
++ [lang] Finnish update, thanks to Jouni Kahkonen
++ [config] new parameter $cfg['CheckConfigurationPermissions']
++ [config] new parameter $cfg['Servers'][$i]['ShowDatabasesCommand']
++ [config] new parameter $cfg['Servers'][$i]['CountTables']
++ rfe #1775288 [transformation] proper display if IP-address stored as INT
++ rfe #1758177 [core] Add the Geometry DataTypes
++ rfe #1741101, patch #1798184 UUID default for CHAR(36) PRIMARY KEY,
+ thanks to Gert Palok - gert_p
+- bug #1664240 [GUI] css height makes cfg TextareaRows useless
+- bug #1724217 [Create PHP Code] doesn't include newlines for text fields
+- bug #1845605 [i18n] translators.html still uses iso-8859-1
+- bug #1823018 [charset] Edit(Delete) img-links pointing to wrong row
+- bug #1826205 [export] Problems with yaml text export
+- bug #1344768 [database] create/alter table new field can not have empty string
+ as default
++ rfe #1840165 [interface] Enlarge column name field in vertical mode
++ patch #1847534 [interface] New "Inside field" in db search,
+ thanks to obiserver
++ [GUI] Mootools js library (http://mootools.net) and new parameter
+ $cfg['InitialSlidersState']
+* [core] cache some MySQL stats (do not query them with every page request)
++ [view] clearer dialog WITH (CASCADED | LOCAL) CHECK OPTION
++ [lang] Norwegian update, thanks to Sven-Erik Andersen
++ [lang] Japanese update, thanks to Ishigaki Kenichi
++ [lang] Italian update, thanks to Luca Rebellato
++ [gui] Events
+ * minimal support on db structure page
+ * export
++ [pdf] Merged tcpdf 2.2.002 (PHP5 version), thanks to Nicola Asuni
++ [engines] Maria support
++ [engines] MyISAM and InnoDB: support ROW_FORMAT table option
++ prevent search indexes from indexing phpMyAdmin installations
++ [engines] PBXT: table options, foreign key (relation view, designer)
++ [lang] New Bangla, thanks to Raquibul Islam and Joy Kumar Nag
++ [interface] Display options; thanks to Dave Grijalva
+ for the idea about showing the display field while browsing
+- bug #1910621 [display] part 2: do not display a BINARY content as text
++ [auth] support SweKey hardware authentication
+ see http://phpmyadmin.net/auth_key
++ rfe #1962383 [designer] Option to create a PDF page
+- patch #2007196, Typos in comments, thanks to knittl - knittl
+- bug #1982315 [GUI] Comma and quote in ENUM, thanks to Joshua Hogendorn
++ [GUI] Color picker
+- bug #1970836 [parser] SQL parser is slow, thanks to Christian Schmidt
++ rfe #1692928 [transformation] Option to disable browser transformations
++ [import] Speed optimization to be able to import the sakila database
++ [doc] Documentation for distributing phpMyAdmin in README.VENDOR.
++ [display] headwords for sorted column
+- bug #2033962 [import] Cannot import zip file
++ [lang] Swedish update, thanks to Björn T. Hallberg
+- bug #2050068 [gui] "Check tables having overhead" selects wrong tables
++ [lang] Belarusian update, thanks to Jaska Zedlik
++ [lang] Norwegian update, thanks to Sven-Erik Andersen
++ [lang] Italian update, thanks to Luca Rebellato
+- [core] safer handling of temporary files with open_basedir (thanks to Thijs
+ Kinkhorst)
+- [core] do not automatically set and create TempDir, it might lead to security
+ issue (thanks to Thijs Kinkhorst)
++ [lang] Czech update
+- bug #2066923 [display] Navi browse icon does not go to page 1
+- patch #2075263 [auth] Single sign-on and cookie clearing,
+ thanks to Charles Suh - cws125
+- [doc] better documentation of $cfg['TempDir']
+- bug #2080963 [charset] Clarify doc and improved code, thanks to
+ Victor Volkov - hanut
+- bug [charset] Cannot sort twice on a column when the table name
+ contains accents
++ [lang] Spanish update, thanks to Daniel Hinostroza
++ [lang] Hungarian update, thanks to Jozsef Tamas Herczeg - dodika
+- bug #2113848 [navi] Page number after database switching
+- patch #2115966 [GUI] Checkboxes and IE 7, thanks to Martin - maschg
+- bug #1914066 [core] ForceSSL generates incorrectly escaped redirections
+
+2.11.9.3 (2008-10-30)
+- [security] XSS in a Designer component
+
+2.11.9.2 (2008-09-22)
+- [security] XSS in MSIE using NUL byte, thanks to JPCERT.
+
+2.11.9.1 (2008-09-15)
+- [security] Code execution vulnerability, thanks to Norman Hippert
+
+2.11.9.0 (2008-08-28)
+- bug #2031221 [auth] Links to version number on login screen
+- bug #2032707 [core] PMA does not start if ini_set() is disabled
+- bug #2004915 [bookmarks] Saved queries greater than 1000 chars not
+ displayed, thanks to Maik Wiege - mswiege
+- bug #2037381 [export] Export type "replace" does not work
+- bug #2037375 [export] DROP PROCEDURE needs IF EXISTS
+- bug #2045512 [export] Numbers in Excel export
+- bug #2074250 [parser] Undefined variable seen_from
+
+2.11.8.0 (2008-07-28)
+- patch #1987593 [interface] Table list pagination in navi,
+ thanks to Jason Day - jday29
+- bug #1989081 [profiling] Profiling causes query to be executed again
+ (really causes a problem in case of INSERT/UPDATE)
+- bug #1990342 [import] SQL file import very slow on Windows,
+ thanks to Richard Heaton - wotnot
+- bug [XHTML] problem with tabindex and radio fields
+- bug #1971221 [interface] tabindex not set correctly
+- bug [views] VIEW name created via the GUI was not protected with backquotes
+- bug #1989813 [interface] Deleting multiple views (space in name)
+- bug #1992628 [parser] SQL parser removes essential space
+- bug #1989281 [export] Export fails if one table is marked as crashed
+- bug #2001005 [GUI] ARCHIVE cannot have indexes
+- bug #1989281 [export] CSV for MS Excel incorrect escaping of double quotes
+- bug #1959855 [interface] Font size option problem when no config file
+ (todo (trunk): navi frame size does not change for theme original)
+- bug #1982489 [relation] Relationship view should check for changes
+- bug [history] Do not save too big queries in history
+- [security] Do not show version info on login screen
+- bug #2018595 [import] Potential data loss on import resubmit
+- patch #2020630 [export] Safari and timedate, thanks to Sebastian Mendel,
+ Isaac Bennetch and Jürgen Wind
+- bug #2022182 [import, export] Import/Export fails because of Mac files
+- [security] protection against cross-frame scripting and
+ new directive AllowThirdPartyFraming, thanks to YGN Ethical Hacker Group
+- [security] possible XSS during setup, thanks to YGN Ethical Hacker Group
+- [interface] revert language changing problem introduced with 2.11.7.1
+
+2.11.7.1 (2008-07-15)
+- bug [security] XSRF/CSRF by manipulating the db,
+ convcharset and collation_connection parameters,
+ thanks to YGN Ethical Hacker Group
+
+2.11.7.0 (2008-06-23)
+- bug #1908719 [interface] New field cannot be auto-increment and primary key
+- [dbi] Incorrect interpretation for some mysqli field flags
+- bug #1910621 [display] part 1: do not display a TEXT utf8_bin as BLOB
+ (fixed for mysqli extension only)
+- [interface] sanitize the after_field parameter,
+ thanks to Norman Hippert
+- [structure] do not remove the BINARY attribute in drop-down
+- bug #1955386 [session] Overriding session.hash_bits_per_character
+- [interface] sanitize the table comments in table print view,
+ db print view and db data dictionary, thanks to Norman Hippert
+- bug #1939031 Auto_Increment selected for TimeStamp by Default
+- patch #1957998 [display] No tilde for InnoDB row counter when we know
+ it for sure, thanks to Vladyslav Bakayev - dandy76
+- bug #1955572 [display] alt text causes duplicated strings
+- bug #1762029 [interface] Cannot upload BLOB into existing row
+- bug #1981043 [export] HTML in exports getting corrupted,
+ thanks to Jason Judge - jasonjudge
+- bug #1936761 [interface] BINARY not treated as BLOB: update/delete issues
+- protection against XSS when register_globals is on and .htaccess has
+ no effect, thanks to Tim Starling
+- bug #1996943 [export] Firefox 3 and .sql.gz (corrupted); detect Gecko 1.9,
+ thanks to Jürgen Wind - windkiel
+
+2.11.6.0 (2008-04-29)
+- bug #1903724 [interface] Displaying of very large queries in error message
+- bug #1905711 [compatibility] Functions deprecated in PHP 5.3: is_a() and
+ get_magic_quotes_gpc(), thanks to Dmitry N. Shilnikov - yrtimd
+- bug [lang] catalan wrong accented characters
+- bug #1893034 [Export] SET NAMES for importing with command-line client
++ [lang] Russian update, thanks to Victor Volkov
+- bug #1910485 [core] Unsetting the whitelist during the loop,
+ thanks to Jeroen Vrijkorte - jv_map
+- bug #1906980 [Export] Import of VIEWs fails if temp table exists,
+ thanks to Falk Nisius - klaf
+- bug #1812763 [Copy] Table copy when server is in ANSI_QUOTES sql_mode
+ thanks to Tony Marston - tonymarston
+- bug #1918531 [compatibility] Navigation isn't w3.org valid
+ thanks to Michael Keck - mkkeck
+- bug #1926357 [data] BIT defaults displayed incorrectly
+- patch #1930057 [auth] colon in password prevents HTTP login on CGI/IIS,
+ thanks to Jürgen Wind - windkiel
+- patch #1929553 [lang] Don't output BOM character in Swedish language file,
+ thanks to Samuel L. B. - samuellb
+- patch #1895796 [lang] Typo in Japanese lang files,
+ thanks to tyman - acoustype
+- bug #1935652 [auth] Access denied (show warning about mcrypt on login page)
+- bug #1906983 [export] Reimport of FUNCTION fails
+- bug #1919808 [operations] Renaming a database fails to handle functions
+- bug #1934401 [core] Cannot force a language
+- bug #1944077 [core] Config file containing a BOM,
+ thanks to Gaetano Giunta - ggiunta
+- bug #1947189 [scripts] Missing </head> in scripts/signon.php,
+ thanks to Dolf Schimmel
++ [lang] Romanian update, thanks to Sergiu Bivol - sbivol
+
+2.11.5.2 (2008-04-22)
+- PMASA-2008-3 [security] File disclosure
+
+2.11.5.1 (2008-03-29)
+- bug #1909711 [security] Sensitive data in session files
+
+2.11.5.0 (2008-03-01)
+- bug #1862661 [GUI] Warn about rename deleting database
+- bug #1866041 [interface] Incorrect sorting with AS
+- bug #1871038 [import] Notice: undefined variable first_sql_delimiter
+- bug #1873110 [export] Problem exporting with a LIMIT clause
+- bug #1871164 [GUI] Empty and navigation frame synch.
+- patch #1873188 [GUI] Making db pager work when js is disabled,
+ thanks to Jürgen Wind - windkiel
+- bug #1875010 [auth] MySQL server and client version mismatch (mysql ext.)
+- patch #1879031 [transform] dateformat transformation and UNIX timestamps,
+ thanks to Tim Steiner - spam38
+- bug [import] Do not verify a missing enclosing character for CSV,
+ because files generated by Excel don't have any enclosing character
+- bug #1799691 [export] "Propose table structure" and Export
+- bug #1884911 [GUI] Space usage
+- bug #1863326 [GUI] Wrong error message / no edit (Suhosin)
+- bug #1887204 [GUI] Order columns in result list messing up query
+- patch #1893538 [GUI] Display issues on Opera 9.50,
+ thanks to Jürgen Wind - windkiel
+- bug [GUI] Do not display the database name used by the previous user,
+ thanks to Ronny Görner
+- bug [security] Remove cookies from $_REQUEST for better coexistence with
+ other applications, thanks to Richard Cunningham. See PMASA-2008-1.
+
+2.11.4.0 (2008-01-12)
+- bug #1843428 [GUI] Space issue with DROP/DELETE/ALTER TABLE
+- bug #1807816 [search] regular expression search doesn't work with
+ backslashes
+- bug #1843463 [GUI] DROP PROCEDURE does not show alert
+- bug #1835904 [GUI] Back link after a SQL error forgets the query
+- bug #1835654 [core] wrong escaping when using double quotes
+- bug #1817612 [cookies] Wrong cookie path on IIS with PHP-CGI,
+ thanks to Carsten Wiedmann
+- bug #1848889 [export] export trigger should use DROP TRIGGER IF EXISTS
+- bug #1851833 [display] Sorting forgets an explicit LIMIT
+ (fix for sorting on column headers)
+- bug #1764182 [cookies] Suhosin cookie encryption breaks phpMyAdmin
+- bug #1798786 [import] Wrong error when a string contains semicolon
+- bug #1813508 [login] Missing parameter: field after re-login
+- bug #1710144 [parser] Space after COUNT breaks Export but not Query
+- bug #1783620 [parser] Subquery results without "as" are ignored
+- bug #1821264 [display] MaxTableList and INFORMATION_SCHEMA
+- bug #1859460 [display] Operations and many databases
+- bug #1814679 [display] Database selection pagination when switching servers
+- patch #1861717 [export] CSV Escape character not exported right,
+ thanks to nicolasdigraf
+- bug #1864468 [display] Theme does not switch to darkblue_orange
+- bug #1847409 [security] Path disclosure on darkblue_orange/layout.inc.php,
+ thanks to Jürgen Wind - windkiel
+
+2.11.3.0 (2007-12-08)
+- patch #1818389 to remove a notice (failed to flush buffer), thanks to
+ Bertrand
+- patch #1821154, HTTP authentication: fix auth working with php/mod_fastcgi,
+ thanks to yarodin
+- wrong default charset in case of broken session
+- bug #1824506 [profiling] Profile command repeated on older MySQL servers
+- bug #1825172 [export] Exporting and functions
+- bug #1817224 [import] Incorrect detection of file_uploads in some cases,
+ thanks to Juergen Wind
+- bug #1777249 [display] Do not underline links in left panel (in default
+ themes)
+- bug #1826022 [privileges] unable to add user (MySQL 3.23) since PMA 2.11.2
+- bug #1823045 [import] Error importing file with lowercase "delimiter"
+- bug #1828913 [structure] Can't set FULLTEXT index on CHAR column
+- bug #1804081 [export] export on server doesn't obey AllowAnyWhereRecoding
+- bug #1789988 [display] space before SHOW COLUMNS
+- bug #1831646 [table creation] Error in CREATE TABLE with multiple primary
+ keys and AUTO_INCREMENT
+- [display] Division by zero when showing all records (page selector)
+- bug #1828265 [privileges] No weird characters in generated password
+- bug #1759194 [import] open_basedir warning
+- bug #1793948 [parser] ROW_FORMAT incorrectly parsed
+- undefined PMA_MYSQL_INT_VERSION when no default server is set
+- bug #1763343 [session] Behavior with session.auto_start enabled
++ [lang] Hungarian update, thanks to Mihály Mészáros
++ [lang] German update, thanks to Jürgen Wind - windkiel
+- patch #1837691 [query window] js errors, thanks to Victor Volkov
+- patch #1839052 [lang] catalan not in UTF-8, thanks to jaz001
+- patch #1838626 [GUI] Login interface broken on Konqueror, thanks to fhimpe
+
+2.11.2.2 (2007-11-20)
+- bug #1835123 [security] fixed XSS vulnerability on login page,
+ thanks to Tim Brown (Nth Dimension) for the advisory
+ and to Sebastian for the fix
+
+2.11.2.1 (2007-11-11)
+- fixed possible SQL injection using database name
+- fixed possible XSS in database name - thanks to Omer Singer, The DigiTrust Group
+
+2.11.2.0 (2007-10-27)
+- patch #1791576 HTTP auth: support REDIRECT_REMOTE_USER, thanks to Allard
++ [lang] Serbian update, thanks to Mihailo Stefanovic
+- bug #1798841 [relations] Copying db does not copy internal relations
+- bug #1798646 [display] Character '+' in query wrongly interpreted
+- bug #1801919 [themes] Do not use NaviDatabaseNameColor for fieldset legend
+- bug #1764735 [core] Designer: PDF error when deleting a table
+- bug #1764195 [views] DROP button does not work on defective views
+- bug #1805773 [relations] browse foreign values: return values not escaped,
+ thanks to Alex Rambau
+- bug #1807923 [login] Login with html entities in password fails
+- [core] Undefined variable when creating a table that exists
+- patch #1808578 Changes in font size were no longer detected after patch
+ #1787915
++ [lang] Croatian update, thanks to Renato Pavicic
+- patch #1807615 [GUI] Display patch for column rights in Opera
+- bug #1811519 Can't delete user with a german umlaut.
+- bug #1811519 [privileges] fixed used collation for accessing mysql.user in server privileges
+- it should not be possible to move or copy a table to information_schema
+- bug #1814733 win: copy db to mixed name db fails
+- bug #1777249 [display] Remove horizontal lines in navigation panel
+- bug #1805102 [display] TextareaAutoSelect issues: set this parameter
+ default value to false to help cut&paste from a terminal window; also
+ set focus to the textarea
+- bug #1814463 [display] Wrong database size
+- bug #1811527 [display] Problem with links to the MySQL manual
+- patch #1817529 [auth] Incorrect login via URL when AllowArbitraryServer
+ is true, thanks to Juergen Wind
+
+2.11.1.2 (2007-10-17)
+- fixed XSS in server_status.php, thanks to Omer Singer, The DigiTrust Group
+- fixed some possible XSS with PHP_SELF, PATH_INFO, REQUEST_URI
+ (reference: CVE-2007-5589)
+
+2.11.1.1 (2007-10-15)
+- bug #1810629 [setup] XSS in setup.php, thanks to Omer Singer, The DigiTrust Group
+
+2.11.1.0 (2007-09-20)
+- bug #1783667 [export] NO_AUTO_VALUE_ON_ZERO and MySQL version
+- bug #1780098 [GUI] Logout causes CSS loss, thanks to Juergen Wind
+. incorrect field ids, thanks to Michael Keck
+- bug #1787522 [view] wrong choice in algorithm drop-down
+- bug #1777620 [GUI] Table Print preview: missing column header,
+ thanks to Mario Rohkrämer
+- Do not display "Your MySQL library..." if only the Z part of X.Y.Z version
+ is different
+- bugs #1767759, 1216521 [data] Duplicate entry error Browse feature: this minor
+ feature removed due to its complexity
+- bug #1774825 [operations] Rename database loses charset info
+- bug #1791568 [core] Undefined cfg, thanks to Christian Schmidt
+- bug #1782332 [structure] New table form does not overtake data
+- bug #1793763 [requirements] minimum PHP should be 4.2.0
+- patch #1787915 Avoid CSS reloading on every click, thanks to Juergen Wind
+- bug #1798627 [GUI] Wrong storage engine displayed
+
+2.11.0.0 (2007-08-21)
++ [import] support handling of DELIMITER to mimic mysql CLI, thanks to fb1
++ improved PHP 6 compatibility
+- bug #1674914 [structure] changing definition of a TIMESTAMP field
+- bug #1615530 [upload] added more specific error message if field upload fails
+- bug #1627210, #1083301, #1482401 [data] warning on duplicate indexes
+- bug #1668724 JavaScript focus login Opera
+- bug #1666657 [auth] Cookie password delete on timeout / inactivity
+- bug #1648802 different mysql library and server version
+- bug #1662976 [auth] Authentication fails when controluser/pass is set
+- bug #1643758 [import] Error #1264 importing NULL values in MySQL 5.0
+- bug #1523747 [innodb] make warning about row count more visible
+- bug #1676012 [auth] strip non-US-ASCII characters (RFC2616)
+- bug #1679440 Added FAQ entry about header errors under IIS caused by
+ an end-of-line character
+- [gui] avoid displaying a wide selector in server selection
+- bug #1614004 [relation] foreign key spanning multiple columns are
+ incorrectly displayed
+- bug #1681598 [interface] Edit next row
+- bug #1688053 [export] Wrong export of binary character fields
+- bug #1498281 [parser] Wrong primary key used for displaying results
+ with subquery
+- bug #1699772 Visual space bug in table name (in browser)
+- bug #1699532 Cause of data manipulation issues: implemented changes
+ as suggested by crisp_; still have to work on updating an ENUM value
++ [core] added PMA_fatalError() and made use of it
+. [core] added PMA_isValid() and PMA_ifSetOr() for variable handling
+. [i18n] use generic $strOptions
+. [core] get rid of $propicon
+. [core] globalized variables to be includable inside function in
+ libraries/select_lang.lib.php
++ [doc] changed all documentation in config.inc.php to phpDocumentor style
++ [data] support for CREATE VIEW from query results
++ [gui] dropped css/ folder and moved into root of PMA
++ [l10n] new: Sinhala, Macedonian
++ [export] YAML export (see yaml.org), thanks to Bryce Thornton
++ [upload] moved file upload functionality into own class
++ [upload] make use of $cfg['TempDir'] for file uploads
++ [server] improved display of binary logs
++ [data] better error handling in tbl_create.php
++ [routines] from Patch #1649881, thanks to Mike Beck
++ [querywindow] store sql history in session
++ [querywindow] sql history now without db too
++ [querywindow] tweaks in sql history view
++ [export] Native Excel (Spreadsheet_Excel_Writer) improvements,
+ thanks to Christian Schmidt
++ [doc] requirement of mcrypt on 64-bit, thanks to Isaac Bennetch
++ [lang] Danish update, thanks to Finn Sorensen
++ RFE #1435922 [gui] navigation frame shows listing of databases when none selected
++ [data] support BIT datatype (under mysqli), thanks to Christian Schmidt
++ [display] automatic confirmation for sort by key, thanks to Juergen Wind
++ [data] can now choose the number of insert rows
++ RFE #1704779 [gui] link documentation from login page
++ RFE #1513345 [setup] check control user connection during setup
++ [structure] TRIGGERS: display/edit/drop/SQL export
++ [browse] store browse state in session per query
++ [lang] Turkish update, thanks to Burak Yavuz
++ [lang] Galician update, thanks to Xosé Calvo
++ [lang] Brazilian-Portuguese update, thanks to Airon Luis Pereira
++ [gui] Insert/Edit: no longer display the Go button each 15 lines
+ but just at the end of a row
++ [gui] Query window: use verbose server name if any
++ [auth] patch #1712514 specify host for single signon, thanks to Thierry
++ [gui] Navigator for the db list in the navigation panel
++ [gui] Navigator for the table list in the content panel
+- bug #1727138 HTML not encoded (more than 1000 characters)
++ [display] Support for MySQL 5.0.37 profiling
++ RFE #1743983 [gui] Replace $max_characters by a configurable param:
+ $cfg['MaxCharactersInDisplayedSQL']
+- bug #1746186 LeftLogoLink fails if set to some external site
+. [transformations]: remove "auto-detect" MIME-type that was never implemented
++ [display] patch #1749705, Allow multibyte characters in number formatting,
+ thanks to garas
+- bug #1747215 Export emits blanks at line ends
+- bug #1751172 Do not export data when exporting a single VIEW
++ [lang] Swedish update, thanks to Björn T. Hallberg
++ [lang] Russian update, thanks to Victor Volkov and the php-myadmin.ru users
++ [privileges] Support password hashing on the Edit Privileges interface
+- bug #1755339 Warn about rename dataase actually being copy/delete
+- bug #1746921 Left frame shrinks on db change, thanks to Juergen Wind
++ [gui] Export: Select All/Unselect All over the choices,
+ thanks to Florian Schmitz
++ [lang] Japanese update, thanks to Ishigaki Kenichi
+- bug #1759528 browse_foreigners fails due to newlines,
+ thanks to Hanno Boeck
++ [lang] Norwegian update, thanks to Sven-Erik Andersen
++ [lang] Italian update, thanks to Luca Rebellato
++ [lang] Spanish update, thanks to Daniel Hinostroza
+. [export] Do not obey $cfg['MaxTableList'] on database export
+- [doc] UploadDir and the Import tab, thanks to Juergen Wind
+- bug #1766975 Parameters lost when editing stored routine
+- [export] patch #1766633 Incorrect export with specified MySQL port,
+ thanks to Juergen Wind
++ [lang] Catalan update, thanks to Xavier Navarro
+- bug #1751553 Drop-down instead of input when editing
+- [data] foreign key browser: encoding mixups, thanks to Thijs Kinkhorst
+- bug #1771721 Old SVN URLs
+
+2.10.3.0 (2007-07-20)
+- bug #1734285 Copy database with VIEWs
+- bug #1722502 DROP TABLE in export VIEW
+- bug #1729027 Sorting results of VIEW browsing
+- bug #1733012 Unwanted table alias in delete button
+- bug #1736405 Pretty printer and HTML line breaks
+- bug #1745257 Invalid DB name is still displayed
+- bug #1730367 Calendar "Go" has no effect
+- bug #1748633 Incorrect parameter validation for VIEWs
++ [lang] Russian revision, thanks to Victor Volkov and the users of
+ php-myadmin.ru
+- Do not try to delete an internal relation if we just deleted an InnoDB one
+
+2.10.2.0 (2007-06-15)
++ [data] display all warnings, not only last one
+- typo in fix for bug #1671813
+- bug #1714908 Inserted Row Count is wrong
+- bug #1712570 Deleting last record freezes
+- bug #1717339 Missing header when deleting a checked column,
+ thanks to Michael Keck
+- bug #1717477 Warning on Query page when db is empty
+- bug #1721002 db rename -> undefined cfgRelation, thanks to Jürgen Wind
+- bug #1721571 CREATE database privilege not always detected,
+ thanks to Gordon McNaughton
+- bug #1715709 export in SQL format always includes procedures and functions
+- bug #1722502 DROP TABLE in export view structure
+- bug #1718787 Multi-server setup breaks Designer
+- bug #1724401 Column truncation in repair table output
+- patch #1726500 Wrong position of </tbody>, thanks to Jürgen Wind
+- bug #1728590 Detected failing session_start fails, thanks to Jürgen Wind
+- RFE #1714760 Obey ShowCreateDb on the Databases tab
+- patch #1733762 Typo in message "INSERT DELAY", thanks to Victor Volkov
+- patch #1730171 Dead message strLanguageFileNotFound, thanks to Victor Volkov
+- patch #1731280 Avoid negative exponent in gmp_pow(), thanks to anosek
+
+2.10.1.0 (2007-04-23)
+- bug #1541147 [js] '#' in database names not correctly handled by queywindow.js
+- bug #1671403 [parser] using "client" as table name
+- bug #1672379 [core] Call to undefined function PMA_removeCookie()
+- bug [core] undefined variable in libraries/tbl_replace_fields.inc.php
+- bug [gui] query window icon did not work, thanks to Jürgen Wind - windkiel
+. [general] use PMA_getenv('PHP_SELF')
+- bug #1676033 [core] pow(int,int) causes overflow
+- bug #1680952 [core] undefined function PMA_getUvaCondition()
+- bug #1596328 [export] drop support for POSTGRESQL compatibility mode
+- bug #1609443 [privileges] Grant all priv. on wildcard name (fix message)
+- bug #1567317 [sqp] Syntax highlighter: extra spaces
+- bug #1239401 [sqp] table dot numeric field name
+- bug #1672789 [sqp] Undefined offset: 4 in sqlparser.lib.php #1674
+- bug #1682044 [export] Export file even if file not selected
+- bug #1664212 querywindow loses url encoded characters
+- replaced ctype_digit() with is_numeric()
++ [config] clean cookies on phpMyAdmin upgrade
+- bug #1674972 [export] no export with %afm%
+- bug #1667887 HTML maxlength
+- bug #1679055 #1050 - Table '<table name>' already exists
+- patch #1681620 [interface] support reordering of $cfg['ColumnTypes'],
+ thanks to Leonard den Ottolander
+- bug #1690718 Can't edit if BLOB and no PK
+- bug #1672636 [export] PDF export too wide
++ [lang] brazilian-portuguese update, thanks to Airon Luis Pereira
+- patch #1698964 javascript typo, thanks to Corey Hollaway
+- bug #1703897 [css] undefined index 'js_frame'
+- bug #1690561 Blobs being cleared on Edit of row
+- bug #1679801 [core] XSS vulnerability in PMA_sanitize(), thanks to sp3x SecurityReason
+- bug #1704467 XSS vulnerability in browse_foreigners.php, thanks to sp3x SecurityReason
+
+2.10.0.2 (2007-03-02)
++ bug #1671813 CVE-2006-1549 deep recursion crash
+
+2.10.0.1 (2007-03-01)
+. [config] set $cfg['Servers'][$i]['ssl'] default value to false,
+ we got reports from some users having problems with the default value of true
+
+2.10.0.0 (2007-02-28)
+- bug #1659176 [general] memory error displaying a table with large BLOBs
+- bug #1668662 [install] can create the new pma_designer_coords table
++ [gui] navi logo now links to main page by default, with still the possibility
+ of having an external URL
+
+2007-02-25 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/common.lib.php: bug #1667466, undefined variable when
+ export + save on server
+ * server_status.php: bug #1665930, undefined PHP_SELF
+
+2007-02-24 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/config.default.php: RFE #1621437, HEX and UNHEX were not
+ available for a BINARY field
+
+2007-02-21 Marc Delisle <lem9@users.sourceforge.net>
+ * pmd/scripts/move.js: bug #1650770, Designer and Mac OSX,
+ thanks to Ivan Kirillov
+
+2007-02-17 Marc Delisle <lem9@users.sourceforge.net>
+ * Documentation.html: patch #1659347, missing doc for some config,
+ thanks to Isaac Bennetch
+ * libraries/export/sql.php: bug #1663336, undefined variable
+
+2007-02-16 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/common.lib.php, footer.inc.php: avoid generating big links
+ after an upload into a BLOB
+
+2007-02-14 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/common.lib.php: white page after uploading a 700 Kio BLOB
+ * add a warning on main page if mcrypt can't be loaded (bug 1658160)
+
+2007-02-12 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * libraries/database_interface.lib.php: bug #1616486 server_databases does
+ not show all databases
+ * libraries/sqlparser.data.php: MySQL function and column names, reserved
+ and forbidden words updated,
+ bug #1657045 Spatial functions not supported
+ bug #1657037 Missing column type "geometry"
+
+2007-02-09 Marc Delisle <lem9@users.sourceforge.net>
+ * main.php: some links should open a new page
+ * Documentation.html, libraries/navigation_header.inc.php,
+ libraries/config.default.php: $cfg['LeftLogoLinkWindow'] to decide
+ in which window the logo-linked page will appear
+
+2007-02-09 Michal Čihař <michal@cihar.com>
+ * lang/czech: Fix syntax error (sorry for that).
+
+2007-02-08 Marc Delisle <lem9@users.sourceforge.net>
+ * themes/darkblue_orange/img/logo_left.png,
+ themes/original/img/logo_left.png: smaller PMA logo for navi
+
+2007-02-08 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * themes/*/css/theme_right.css.php: bug #1653769 browsing highlight disabling
+ doesn't work
+
+2007-02-06 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * pmd_general.php, pmd_pdf.php, pmd_save_pos.php: fixed short open tags
+ patch #1652886 thanks to Martin Thielecke - mthie
+ * tbl_change.php: fixed escaping of field names in HTML and JavaScript
+ * libraries/common.lib.php: PMA_backquote() did not quote 0
+ * tbl_change.php: bug #1652810 - slashes are not escaped properly
+
+2007-02-05 Marc Delisle <lem9@users.sourceforge.net>
+ * lang/japanese: Update, thanks to Ishigaki Kenichi - tcool.
+
+2007-02-05 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * lang/german: updated
+
+2007-02-03 Marc Delisle <lem9@users.sourceforge.net>
+ * pmd/scripts/move.js: display problems in Opera, thanks to Maxim Bulygin
+
+2007-02-02 Marc Delisle <lem9@users.sourceforge.net>
+ * tbl_replace.php: Calendar icon does not work on "Insert another new row"
+
+2007-02-01 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/import.lib.php: bug #1626064, too much quoting on import
+
+2007-02-01 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * libraries/display_tbl.lib.php: bug #1644740 - $cfg['Order'] = 'SMART'
+ overwritten
+ * libraries/Theme.class.php: removed __wakeup() due to some requirements are
+ not fulfilled at this point - also thanks to Jürgen Wind - windkiel
+
+2007-01-31 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * libraries/session.inc.php:
+ bug #1630871 - Detecting a missing write permission on sessions directory
+
+2007-01-30 Sebastian Mendel <cybot_tm@users.sourceforge.net>
+ * libraries/sqlparser.lib.php PMA_SQP_analyze():
+ bug #1647785 - do not pass variables by reference
+
+2007-01-29 Marc Delisle <lem9@users.sourceforge.net>
+ * lang/catalan update, thanks to Xavier Navarro (xavin)
+ * pmd_general.php: possibility of quotes in Designer messages,
+ thanks to Ivan Kirillov
+
+2007-01-26 Michal Čihař <michal@cihar.com>
+ * libraries/common.lib.php, libraries/js_escape.lib.php,
+ test/escape_js_string.php, test/core.lib.php: Move java script escaping
+ to separate library, make it safer on </script> escaping and add
+ testcase for it.
+ * test/theme.php: Move to test package.
+
+2007-01-22 Marc Delisle <lem9@users.sourceforge.net>
+ * pmd/*: button for direct/angular links, thanks to Ivan Kirillov
+
+2007-01-22 Michal Čihař <michal@cihar.com>
+ * lang/czech: Updated.
+
+2007-01-21 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/Table.class.php: on a MySQL 5.0.33 server with 4400 databases,
+ one of which having 400 tables, it took more than 3 minutes just to
+ see the database structure (some accesses to INFORMATION_SCHEMA are
+ just too slow) so I changed PMA_Table::isView() to avoid calling
+ INFORMATION_SCHEMA
+
+2007-01-20 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/sqlparser.lib.php: bug #1638267, wrong reserved word
+ recognition
+ * server_privileges.php: bug #1635377, superfluous backslash,
+ thanks to Hanut
+
+2007-01-19 Marc Delisle <lem9@users.sourceforge.net>
+ * pmd*, lang/*: Designer now supports set/unset of the display field,
+ thanks to Ivan Kirillov
+
+2007-01-18 Michal Čihař <michal@cihar.com>
+ * lang/czech: Updated.
+ * libraries/auth/cookie.auth.lib.php: Make server switching honour more
+ server settings (patch #1630104).
+
+2007-01-17 Marc Delisle <lem9@users.sourceforge.net>
+ * lang/turkish: update, thanks to Burak Yavuz - bourock
+
+2007-01-16 Marc Delisle <lem9@users.sourceforge.net>
+ ### 2.9.2 released from QA_2_9
+
+2007-01-12 Marc Delisle <lem9@users.sourceforge.net>
+ * (many files): Designer, two features (snap to grid / display field)
+ thanks to Ivan Kirillov
+ * libraries/Theme_Manager.class.php: patch #1611684, force a change
+ of a session variable to avoid phpmyadmin.css.php caching problems,
+ thanks to Christian Schmidt
+
+2007-01-11 Marc Delisle <lem9@users.sourceforge.net>
+ * lang/estonian: Update, thanks to Marko Ellermaa - uhuu
+
+2007-01-09 Michal Čihař <michal@cihar.com>
+ * index.php: Properly escape strings written in JS code.
+ * libraries/Theme_Manager.class.php: Avoid trigger error here, parameter
+ comes from user and it might lead to path disclossure.
+ * libraries/common.lib.php:
+ - Properly escape </script> in JS code.
+ - Check db, table and sql_query params to be string.
+
+2007-01-08 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/session.inc.php: prevent attack on session name cookie
+
+2007-01-05 Marc Delisle <lem9@users.sourceforge.net>
+ * libraries/session.inc.php: bug #1538132, remove the setting of
+ session.save_handler to 'files'
+ * pmd_general.php: patch #1627831,
+ English language improvements, thanks to Isaac Bennetch
+ * pmd_general.php, pmd_relation_new.php, lang/*: abstract messages
+
+2007-01-04 Marc Delisle <lem9@users.sourceforge.net>
+ * pmd/scripts/move.js: avoid text selection when moving a table object
+ under MSIE 6, thanks to Ivan Kirillov
+ * libraries/db_links.inc.php: better icon for Designer, thanks to I.K.
+
+2007-01-02 Marc Delisle <lem9@users.sourceforge.net>
+ * Designer: various fixes and improvements (for example support
+ for MSIE 6), thanks to Ivan Kirillov
+ * pdf_pages.php: undefined $pdf_page_number when no auto layout
+ * server_privileges.php: bug #1614087, deleting a user having a
+ global GRANT privilege fails under MySQL 4.1.x
+
+2007-01-02 Michal Čihař <michal@cihar.com>
+ * libraries/common.lib.php: Add <div> to allow selecting whole SQL by
+ tripple click (patch #1611591).
+ * libraries/export/sql.php: DELIMITER should not be commented out (bug
+ #1612870).
+
+ --- Older ChangeLogs can be found on our project website ---
+ http://www.phpmyadmin.net/old-stuff/ChangeLogs/
+
+# vim: et ts=4 sw=4 sts=4
+# vim: ft=changelog fenc=utf-8 encoding=utf-8
+# vim: fde=getline(v\:lnum-1)=~'^\\s*$'&&getline(v\:lnum)=~'\\S'?'>1'\:1&&v\:lnum>8&&getline(v\:lnum)!~'^#'
+# vim: fdn=1 fdm=expr
diff --git a/Documentation.html b/Documentation.html
new file mode 100644
index 0000000000..04a23c5ae7
--- /dev/null
+++ b/Documentation.html
@@ -0,0 +1,4528 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
+ version="-//W3C//DTD XHTML 1.1//EN" dir="ltr">
+<!-- $Id$ -->
+<!--
+ vim: expandtab ts=4 sw=4 sts=4 tw=78
+-->
+
+<head>
+ <link rel="icon" href="./favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <title>phpMyAdmin 3.1.0-dev - Documentation</title>
+ <link rel="stylesheet" type="text/css" href="docs.css" />
+</head>
+
+<body id="top">
+
+<!-- TOP MENU -->
+<ul class="header">
+ <li><a href="#top">Top</a></li>
+ <li><a href="#require">Requirements</a></li>
+ <li><a href="#intro">Introduction</a></li>
+ <li><a href="#setup">Installation</a></li>
+ <li><a href="#setup_script">Setup script</a></li>
+ <li><a href="#config">Configuration</a></li>
+ <li><a href="#transformations">Transformations</a></li>
+ <li><a href="#faq"><abbr title="Frequently Asked Questions">FAQ</abbr></a></li>
+ <li><a href="#developers">Developers</a></li>
+ <li><a href="#credits">Credits</a></li>
+ <li><a href="translators.html">Translators</a></li>
+ <li><a href="#glossary">Glossary</a></li>
+</ul>
+
+<h1>phpMyAdmin 3.1.0-dev Documentation</h1>
+
+<ul><li><a href="http://www.phpmyadmin.net/">
+ phpMyAdmin homepage</a></li>
+ <li><a href="https://sf.net/projects/phpmyadmin/">
+ SourceForge phpMyAdmin project page</a></li>
+ <li><a href="http://wiki.cihar.com">
+ Official phpMyAdmin wiki</a></li>
+ <li>Local documents:
+ <ul><li>Version history: <a href="changelog.php">ChangeLog</a></li>
+ <li>General notes: <a href="readme.php">README</a></li>
+ <li>License: <a href="license.php">LICENSE</a></li>
+ </ul>
+ </li>
+ <li>Documentation version:
+ <i>$Id$</i>
+ </li>
+</ul>
+
+<!-- REQUIREMENTS -->
+<h2 id="require">Requirements</h2>
+
+<ul><li><b>PHP</b>
+ <ul><li>You need PHP 5.2.0 or newer, with <tt>session</tt> support
+ (<a href="#faq1_31">see
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 1.31</a>)
+ and the Standard PHP Library (SPL) extension.
+ </li>
+ <li>To support uploading of ZIP files, you need the PHP <tt>zip</tt> extension.</li>
+ <li>You need GD2 support in PHP to display inline
+ thumbnails of JPEGs (&quot;image/jpeg: inline&quot;) with their
+ original aspect ratio</li>
+ <li>When using the &quot;cookie&quot;
+ <a href="#authentication_modes">authentication method</a>, the
+ <a href="http://www.php.net/mcrypt"><tt>mcrypt</tt></a> extension
+ is strongly suggested for most users and is <b>required</b> for
+ 64&#8211;bit machines. Not using mcrypt will cause phpMyAdmin to
+ load pages significantly slower.
+ </li>
+ </ul>
+ </li>
+ <li><b>MySQL</b> 5.0 or newer (<a href="#faq1_17">details</a>);</li>
+ <li><b>Web browser</b> with cookies enabled.</li>
+</ul>
+
+<!-- INTRODUCTION -->
+<h2 id="intro">Introduction</h2>
+
+<p> phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as
+ a single database. To accomplish the latter you'll need a properly set up
+ MySQL user who can read/write only the desired database. It's up to you to
+ look up the appropriate part in the MySQL manual.
+</p>
+
+<h3>Currently phpMyAdmin can:</h3>
+
+<ul><li>browse and drop databases, tables, views, fields and indexes</li>
+ <li>create, copy, drop, rename and alter databases, tables, fields and
+ indexes</li>
+ <li>maintenance server, databases and tables, with proposals on server
+ configuration</li>
+ <li>execute, edit and bookmark any
+ <abbr title="structured query language">SQL</abbr>-statement, even
+ batch-queries</li>
+ <li>load text files into tables</li>
+ <li>create<a href="#footnote_1"><sup>1</sup></a> and read dumps of tables
+ </li>
+ <li>export<a href="#footnote_1"><sup>1</sup></a> data to various formats:
+ <abbr title="comma separated values">CSV</abbr>,
+ <abbr title="Extensible Markup Language">XML</abbr>,
+ <abbr title="Portable Document Format">PDF</abbr>,
+ <abbr title="International Standards Organisation">ISO</abbr>/<abbr
+ title="International Electrotechnical Commission">IEC</abbr> 26300 -
+ OpenDocument Text and Spreadsheet,
+ <abbr title="Microsoft Word 2000">Word</abbr>,
+ <abbr title="Microsoft Excel 2000">Excel</abbr> and L<sup>A</sup>T<sub><big>E</big></sub>X formats
+ </li>
+ <li>administer multiple servers</li>
+ <li>manage MySQL users and privileges</li>
+ <li>check referential integrity in MyISAM tables</li>
+ <li>using Query-by-example (QBE), create complex queries automatically
+ connecting required tables</li>
+ <li>create <abbr title="Portable Document Format">PDF</abbr> graphics of
+ your Database layout</li>
+ <li>search globally in a database or a subset of it</li>
+ <li>transform stored data into any format using a set of predefined
+ functions, like displaying BLOB-data as image or download-link
+ </li>
+ <li>support InnoDB tables and foreign keys <a href="#faq3_6">(see
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 3.6)</a></li>
+ <li>support mysqli, the improved MySQL extension <a href="#faq1_17">
+ (see <abbr title="Frequently Asked Questions">FAQ</abbr> 1.17)</a></li>
+ <li>communicate in <a href="./translators.html">55 different languages</a>
+ </li>
+</ul>
+
+<h4>A word about users:</h4>
+<p> Many people have difficulty
+ understanding the concept of user management with regards to phpMyAdmin. When
+ a user logs in to phpMyAdmin, that username and password are passed directly
+ to MySQL. phpMyAdmin does no account management on its own (other than
+ allowing one to manipulate the MySQL user account information); all users
+ must be valid MySQL users.</p>
+
+<p class="footnote" id="footnote_1">
+ <sup>1)</sup> phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats)
+ dumps and <abbr title="comma separated values">CSV</abbr> exports if you use
+ PHP with Zlib support (<tt>--with-zlib</tt>) and/or Bzip2 support
+ (<tt>--with-bz2</tt>). Proper support may also need changes in
+ <tt>php.ini</tt>.</p>
+
+<!-- INSTALLATION -->
+<h2 id="setup">Installation</h2>
+
+<ol><li><a href="#quick_install">Quick Install</a></li>
+ <li><a href="#setup_script">Setup script usage</a></li>
+ <li><a href="#linked-tables">Linked-tables infrastructure</a></li>
+ <li><a href="#upgrading">Upgrading from an older version</a></li>
+ <li><a href="#authentication_modes">Using authentication modes</a></li>
+</ol>
+
+<p class="important">
+ phpMyAdmin does not apply any special security methods to the MySQL database
+ server. It is still the system administrator's job to grant permissions on
+ the MySQL databases properly. phpMyAdmin's &quot;Privileges&quot; page can
+ be used for this.
+</p>
+
+<p class="important">
+ Warning for <acronym title="Apple Macintosh">Mac</acronym> users:<br />
+ if you are on a <acronym title="Apple Macintosh">Mac</acronym>
+ <abbr title="operating system">OS</abbr> version before
+ <abbr title="operating system">OS</abbr> X, StuffIt unstuffs with
+ <acronym title="Apple Macintosh">Mac</acronym> formats.<br />
+ So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts
+ before uploading them to your server, as PHP seems not to like
+ <acronym title="Apple Macintosh">Mac</acronym>-style end of lines character
+ (&quot;<tt>\r</tt>&quot;).</p>
+
+<h3 id="quick_install">Quick Install</h3>
+<ol><li>Choose an appropriate distribution kit from the phpmyadmin.net
+ Downloads page. Some kits contain only the English messages,
+ others contain all languages in UTF-8 format (this should be fine
+ in most situations), others contain all
+ languages and all character sets. We'll assume you chose a kit whose
+ name looks like <tt>phpMyAdmin-x.x.x-all-languages.tar.gz</tt>.
+ </li>
+ <li>Untar or unzip the distribution (be sure to unzip the subdirectories):
+ <tt>tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz</tt> in your webserver's
+ document root. If you don't have direct access to your document root,
+ put the files in a directory on your local machine, and, after step 4,
+ transfer the directory on your web server using, for example, ftp.</li>
+ <li>Ensure that all the scripts have the appropriate owner (if PHP is
+ running in safe mode, having some scripts with an owner different
+ from the owner of other scripts will be a
+ problem). See <a href="#faq4_2">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 4.2</a> and
+ <a href="#faq1_26"><abbr title="Frequently Asked Questions">FAQ</abbr>
+ 1.26</a> for suggestions.</li>
+ <li>Now you must configure your installation. There are two methods that
+ can be used. Traditionally, users have hand-edited a copy of
+ <tt>config.inc.php</tt>, but now a wizard-style setup script is
+ provided for those who prefer a graphical installation. Creating a
+ <tt>config.inc.php</tt> is still a quick way to get started and needed for some advanced features.
+ <ul><li>To manually create the file, simply use your text editor to
+ create the file <tt>config.inc.php</tt> (you can copy
+ <tt>config.sample.inc.php</tt> to get minimal configuration
+ file) in the main (top-level) phpMyAdmin directory (the one
+ that contains <tt>index.php</tt>). phpMyAdmin first loads
+ <tt>libraries/config.default.php</tt> and then overrides those
+ values with anything found in <tt>config.inc.php</tt>. If the
+ default value is okay for a particular setting, there is no
+ need to include it in <tt>config.inc.php</tt>. You'll need a
+ few directives to get going, a simple configuration may look
+ like this:
+<pre>
+&lt;?php
+$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
+
+$i=0;
+$i++;
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+?&gt;
+</pre>
+ Or, if you prefer to not be prompted every time you log in:
+<pre>
+&lt;?php
+
+$i=0;
+$i++;
+$cfg['Servers'][$i]['user'] = 'root';
+$cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
+?&gt;
+</pre>
+ For a full explanation of possible configuration values, see the
+ <a href="#config">Configuration Section</a> of this document.</li>
+ <li id="setup_script">Instead of manually editing
+ <tt>config.inc.php</tt>, you can use the
+ <a href="setup/">Setup Script</a>. First you must
+ manually create a folder <tt>config</tt> in the phpMyAdmin
+ directory. This is a security measure. On a Linux/Unix system you
+ can use the following commands:
+<pre>
+cd phpMyAdmin
+mkdir config # create directory for saving
+chmod o+rw config # give it world writable permissions
+</pre>
+ And to edit an existing configuration, copy it over first:
+<pre>
+cp config.inc.php config/ # copy current configuration for editing
+chmod o+w config/config.inc.php # give it world writable permissions
+</pre>
+ On other platforms, simply create the folder and ensure that your
+ web server has read and write access to it. <a href="#faq1_26">FAQ
+ 1.26</a> can help with this.<br /><br />
+
+ Next, open <tt><a href="setup/">setup/</a>
+ </tt>in your browser. Note that <strong>changes are not saved to
+ disk until explicitly choose <tt>Save</tt></strong> from the
+ <i>Configuration</i> area of the screen. Normally the script saves
+ the new config.inc.php to the <tt>config/</tt> directory, but if
+ the webserver does not have the proper permissions you may see the
+ error "Cannot load or save configuration." Ensure that the <tt>
+ config/</tt> directory exists and has the proper permissions -
+ or use the <tt>Download</tt> link to save the config file locally
+ and upload (via FTP or some similar means) to the proper location.<br /><br />
+
+ Once the file has been saved, it must be moved out of the <tt>
+ config/</tt> directory and the permissions must be reset, again
+ as a security measure:
+<pre>
+mv config/config.inc.php . # move file to current directory
+chmod o-rw config.inc.php # remove world read and write permissions
+</pre>
+ Now the file is ready to be used. You can choose to review or edit
+ the file with your favorite editor, if you prefer to set some
+ advanced options which the setup script does not provide.</li></ul></li>
+ <li>If you are using the
+ <tt>auth_type</tt> &quot;config&quot;, it is suggested that you
+ protect the phpMyAdmin installation directory because using
+ config does not require a user to
+ enter a password to access the phpMyAdmin installation. Use of an alternate
+ authentication method is recommended, for example with
+ HTTP&#8211;AUTH in a <a href="#glossary"><i>.htaccess</i></a> file or switch to using
+ <tt>auth_type</tt> cookie or http. See the
+ <a href="#faqmultiuser"> multi&#8211;user sub&#8211;section</a> of this
+ <abbr title="Frequently Asked Questions">FAQ</abbr> for additional
+ information, especially <a href="#faq4_4">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 4.4</a>.</li>
+ <li>Open the <a href="index.php">main phpMyAdmin directory</a>
+ in your browser. phpMyAdmin should now display a welcome screen
+ and your databases, or a login dialog if using
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie
+ authentication mode.</li>
+ <li>You should deny access to the <tt>./libraries</tt> subfolder in your
+ webserver configuration. For Apache you can use supplied .htaccess file
+ in that folder, for other webservers, you should configure this yourself.
+ Such configuration prevents from possible path exposure and cross side
+ scripting vulnerabilities that might happen to be found in that code.</li>
+</ol>
+
+<h3 id="linked-tables">Linked-tables infrastructure</h3>
+
+<p> For a whole set of new features (bookmarks, comments,
+ <abbr title="structured query language">SQL</abbr>-history,
+ <abbr title="Portable Document Format">PDF</abbr>-generation, field contents
+ transformation, etc.) you need to create a set of special tables. Those
+ tables can be located in your own database, or in a central database for a
+ multi-user installation (this database would then be accessed by the
+ controluser, so no other user should have rights to it).</p>
+
+<p> Please look at your <tt>./scripts/</tt> directory, where you should find a
+ file called <i>create_tables.sql</i>. (If you are using a Windows server, pay
+ special attention to <a href="#faq1_23">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 1.23</a>).</p>
+
+<p> If you already had this infrastructure and upgraded to MySQL 4.1.2
+ or newer, please use <i>./scripts/upgrade_tables_mysql_4_1_2+.sql</i>.</p>
+
+<p> You can use your phpMyAdmin to create the tables for you. Please be aware
+ that you may need special (administrator) privileges to create the database
+ and tables, and that the script may need some tuning, depending on the
+ database name.</p>
+
+<p> After having imported the <i>./scripts/create_tables.sql</i> file, you
+ should specify the table names in your <i>./config.inc.php</i> file. The
+ directives used for that can be found in the <a href="#config">Configuration
+ section</a>. You will also need to have a controluser with the proper rights
+ to those tables (see section <a href="#authentication_modes">Using
+ authentication modes</a> below).</p>
+
+<h3 id="upgrading">Upgrading from an older version</h3>
+
+<p> Simply copy <i>./config.inc.php</i> from your previous installation into the newly
+ unpacked one. Configuration files from very old versions (2.3.0 or before) may
+ require some tweaking as some options have been changed or removed.
+ For compatibility with PHP 6, remove a <tt>set_magic_quotes_runtime(0);</tt>
+ statement that you might find near the end of your configuration file.</p>
+
+<p> You should <strong>not</strong> copy <tt>libraries/config.default.php</tt>
+ over <tt>config.inc.php</tt> because the default configuration file
+ is version-specific.</p>
+
+<p> If you have upgraded your MySQL server from a version previous to 4.1.2 to
+ version 4.1.2 or newer and if you use the pmadb/linked table infrastructure,
+ you should run the SQL script found in
+ <tt>scripts/upgrade_tables_mysql_4_1_2+.sql</tt>.</p>
+
+<h3 id="authentication_modes">Using authentication modes</h3>
+
+<ul><li><abbr title="HyperText Transfer Protocol">HTTP</abbr> and cookie
+ authentication modes are recommended in a <b>multi-user environment</b>
+ where you want to give users access to their own database and don't want
+ them to play around with others.<br />
+ Nevertheless be aware that MS Internet Explorer seems to be really buggy
+ about cookies, at least till version 6, and PHP 4.1.1 is also a bit buggy
+ in this area!<br />
+ Even in a <b>single-user environment</b>, you might prefer to use
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie mode so
+ that your user/password pair are not in clear in the configuration file.
+ </li>
+
+ <li><abbr title="HyperText Transfer Protocol">HTTP</abbr> and cookie
+ authentication modes are more secure: the MySQL login information does
+ not need to be set in the phpMyAdmin configuration file (except possibly
+ for the <a href="#controluser">controluser</a>).<br />
+ However, keep in mind that the password travels in plain text, unless
+ you are using the HTTPS protocol.<br />
+ In cookie mode, the password is stored, encrypted with the blowfish
+ algorithm, in a temporary cookie.</li>
+
+ <li>Note: starting with phpMyAdmin 2.6.1, this section is only applicable if
+ your MySQL server is running with <tt>--skip-show-database</tt>.<br /><br />
+
+ For '<abbr title="HyperText Transfer Protocol">HTTP</abbr>' and 'cookie'
+ modes, phpMyAdmin needs a controluser that has <b>only</b> the
+ <tt>SELECT</tt> privilege on the <i>`mysql`.`user` (all columns except
+ `Password`)</i>, <i>`mysql`.`db` (all columns)</i>, <i>`mysql`.`host`
+ (all columns)</i> and <i>`mysql`.`tables_priv` (all columns except
+ `Grantor` and `Timestamp`)</i> tables.<br /> You must specify the details
+ for the <a href="#controluser">controluser</a> in the <tt>config.inc.php</tt>
+ file under the
+ <tt><a href="#cfg_Servers_controluser" class="configrule">
+ $cfg['Servers'][$i]['controluser']</a></tt> and
+ <tt><a href="#cfg_Servers_controlpass" class="configrule">
+ $cfg['Servers'][$i]['controlpass']</a></tt> settings.<br />
+ The following example assumes you want to use <tt>pma</tt> as the
+ controluser and <tt>pmapass</tt> as the controlpass, but <b>this is
+ only an example: use something else in your file!</b> Input these
+ statements from the phpMyAdmin SQL Query window or mysql command&#8211;line
+ client.<br />
+ Of course you have to replace <tt>localhost</tt> with the webserver's host
+ if it's not the same as the MySQL server's one.
+
+ <pre>
+GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
+GRANT SELECT (
+ Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
+ Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
+ File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
+ Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
+ Execute_priv, Repl_slave_priv, Repl_client_priv
+ ) ON mysql.user TO 'pma'@'localhost';
+GRANT SELECT ON mysql.db TO 'pma'@'localhost';
+GRANT SELECT ON mysql.host TO 'pma'@'localhost';
+GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
+ ON mysql.tables_priv TO 'pma'@'localhost';</pre>
+
+ If you want to use the many new relation and bookmark features:
+
+ <pre>
+GRANT SELECT, INSERT, UPDATE, DELETE ON &lt;pma_db&gt;.* TO 'pma'@'localhost';
+</pre>
+
+ (this of course requires that your <a href="#linked-tables">linked-tables
+ infrastructure</a> be set up).<br /></li>
+
+ <li>Then each of the <i>true</i> users should be granted a set of privileges
+ on a set of particular databases. Normally you shouldn't give global
+ privileges to an ordinary user, unless you understand the impact of those
+ privileges (for example, you are creating a superuser).<br />
+ For example, to grant the user <i>real_user</i> with all privileges on
+ the database <i>user_base</i>:<br />
+
+ <pre>
+GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
+</pre>
+
+ What the user may now do is controlled entirely by the MySQL user
+ management system.<br />
+ With <abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie
+ authentication mode, you don't need to fill the user/password fields
+ inside the <a href="#cfg_Servers" class="configrule">$cfg['Servers']</a>
+ array.</li>
+</ul>
+
+<h4>'<abbr title="HyperText Transfer Protocol">HTTP</abbr>' authentication mode</h4>
+
+<ul><li>Uses <abbr title="HyperText Transfer Protocol">HTTP</abbr> Basic authentication
+ method and allows you to log in as any valid MySQL user.</li>
+ <li>Is supported with most PHP configurations. For
+ <abbr title="Internet Information Services">IIS</abbr>
+ (<abbr title="Internet Server Application Programming Interface">ISAPI</abbr>)
+ support using <abbr title="Common Gateway Interface">CGI</abbr> PHP see
+ <a href="#faq1_32"><abbr title="Frequently Asked Questions">FAQ</abbr>
+ 1.32</a>, for using with Apache
+ <abbr title="Common Gateway Interface">CGI</abbr> see
+ <a href="#faq1_35"><abbr title="Frequently Asked Questions">FAQ</abbr>
+ 1.35</a>.</li>
+ <li>See also <a href="#faq4_4">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 4.4</a> about not
+ using the <i>.htaccess</i> mechanism along with
+ '<abbr title="HyperText Transfer Protocol">HTTP</abbr>' authentication
+ mode.</li>
+</ul>
+
+<h4>'cookie' authentication mode</h4>
+
+<ul><li>You can use this method as a replacement for the
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> authentication
+ (for example, if you're running
+ <abbr title="Internet Information Services">IIS</abbr>).</li>
+ <li>Obviously, the user must enable cookies in the browser, but this is
+ now a requirement for all authentication modes.</li>
+ <li>With this mode, the user can truly log out of phpMyAdmin and log in back
+ with the same username.</li>
+ <li>If you want to log in to arbitrary server see
+ <a href="#AllowArbitraryServer" class="configrule">
+ $cfg['AllowArbitraryServer']</a> directive.</li>
+ <li>As mentioned in the <a href="#require">requirements</a> section, having
+ the <tt>mcrypt</tt> extension will speed up access considerably, but is
+ not required.</li>
+</ul>
+
+<h4>'signon' authentication mode</h4>
+
+<ul><li>This mode is a convenient way of using credentials from another
+ application to authenticate to phpMyAdmin.</li>
+ <li>The other application has to store login information into
+ session data.</li>
+ <li>More details in the <a href="#cfg_Servers_auth_type">auth_type</a>
+ section.</li>
+</ul>
+<h4>'config' authentication mode</h4>
+
+<ul><li>This mode is the less secure one because it requires you to fill the
+ <a href="#servers_user" class="configrule">
+ $cfg['Servers'][$i]['user']</a> and
+ <a href="#servers_user" class="configrule">
+ $cfg['Servers'][$i]['password']</a> fields (and as a result, anyone who
+ can read your config.inc.php can discover your username and password).
+ <br />
+ But you don't need to setup a &quot;controluser&quot; here: using the
+ <a href="#servers_only_db" class="configrule">
+ $cfg['Servers'][$i]['only_db']</a> might be enough.</li>
+ <li>In the <a href="#faqmultiuser">
+ <abbr title="Internet service provider">ISP</abbr>
+ <abbr title="Frequently Asked Questions">FAQ</abbr></a> section, there
+ is an entry explaining how to protect your configuration file.</li>
+ <li>For additional security in this mode, you may wish to consider the Host
+ authentication
+ <a href="#servers_allowdeny_order" class="configrule">
+ $cfg['Servers'][$i]['AllowDeny']['order']</a> and
+ <a href="#servers_allowdeny_rules" class="configrule">
+ $cfg['Servers'][$i]['AllowDeny']['rules']</a> configuration
+ directives.</li>
+ <li>Unlike cookie and http, does not require a user to log in when first
+ loading the phpMyAdmin site. This is by design but could allow any
+ user to access your installation. Use of some restriction method is
+ suggested, perhaps a <a href="#glossary">.htaccess</a> file with the
+ HTTP-AUTH directive or disallowing incoming HTTP requests at
+ one&#8217;s router or firewall will suffice (both of which
+ are beyond the scope of this manual but easily searchable with Google).</li>
+</ul>
+<h4 id="swekey">Swekey authentication</h4>
+<p>
+The Swekey is a low cost authentication USB key that can be used in
+web applications.<br /><br />
+When Swekey authentication is activated, phpMyAdmin requires the
+users's Swekey to be plugged before entering the login page (currently
+supported for cookie authentication mode only). Swekey Authentication is
+disabled by default.<br /><br />
+To enable it, add the following line to <tt>config.inc.php</tt>:
+</p>
+<pre>
+$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey.conf';
+</pre>
+<p>
+You then have to create the <tt>swekey.conf</tt> file that will associate
+each user with their Swekey Id. It is important to place this file outside
+of your web server's document root (in the example, it is located in <tt>/etc</tt>). A self documented sample file is provided
+in the <tt>contrib</tt> directory. Feel free to use it with your own
+users' information.<br /><br />
+If you want to purchase a Swekey please visit
+<a href="http://phpmyadmin.net/auth_key">http://phpmyadmin.net/auth_key</a>
+since this link provides funding for phpMyAdmin.
+</p>
+<!-- CONFIGURATION -->
+<h2 id="config">Configuration</h2>
+
+<p> <span class="important">Warning for <acronym title="Apple Macintosh">Mac</acronym>
+ users:</span> PHP does not seem to like
+ <acronym title="Apple Macintosh">Mac</acronym> end of lines character
+ (&quot;<tt>\r</tt>&quot;). So ensure you choose the option that allows to use
+ the *nix end of line character (&quot;<tt>\n</tt>&quot;) in your text editor
+ before saving a script you have modified.</p>
+
+<p> <span class="important">Configuration note:</span>
+ Almost all configurable data is placed in <tt>config.inc.php</tt>. If this file
+ does not exist, please refer to the <a href="#setup">Quick install</a>
+ section to create one. This file only needs to contain the parameters you want to
+ change from their corresponding default value in
+ <tt>libraries/config.default.php</tt>.</p>
+
+<p> The parameters which relate to design (like colors) are placed in
+ <tt>themes/themename/layout.inc.php</tt>. You might also want to create
+ <i>config.footer.inc.php</i> and <i>config.header.inc.php</i> files to add
+ your site specific code to be included on start and end of each page.</p>
+
+<dl><dt id="cfg_PmaAbsoluteUri">$cfg['PmaAbsoluteUri'] string</dt>
+ <dd>Sets here the complete <abbr title="Uniform Resource Locator">URL</abbr>
+ (with full path) to your phpMyAdmin installation's directory.
+ E.g. <tt>http://www.your_web.net/path_to_your_phpMyAdmin_directory/</tt>.
+ Note also that the <abbr title="Uniform Resource Locator">URL</abbr> on
+ some web servers are case&#8211;sensitive.
+ Don&#8217;t forget the trailing slash at the end.<br /><br />
+
+ Starting with version 2.3.0, it is advisable to try leaving this
+ blank. In most cases phpMyAdmin automatically detects the proper
+ setting. Users of port forwarding will need to set PmaAbsoluteUri (<a
+ href="https://sf.net/tracker/index.php?func=detail&amp;aid=1340187&amp;group_id=23067&amp;atid=377409">more info</a>).
+ A good test is to browse a table, edit a row and save it. There should
+ be an error message if phpMyAdmin is having trouble auto&#8211;detecting
+ the correct value. If you get an error that this must be set or if
+ the autodetect code fails to detect your path, please post a bug
+ report on our bug tracker so we can improve the code.</dd>
+
+ <dt id="cfg_PmaNoRelation_DisableWarning">$cfg['PmaNoRelation_DisableWarning'] boolean</dt>
+ <dd>Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
+ with master / foreign &#8211; tables (see
+ <a href="#pmadb" class="configrule">$cfg['Servers'][$i]['pmadb']</a>).
+ <br />
+ If you tried to set this up and it does not work for you, have a look on
+ the &quot;Structure&quot; page of one database where you would like to
+ use it. You will find a link that will analyze why those features have
+ been disabled.<br />
+ If you do not want to use those features set this variable to
+ <tt>TRUE</tt> to stop this message from appearing.</dd>
+
+ <dt id="cfg_SuhosinDisableWarning">$cfg['SuhosinDisableWarning'] boolean</dt>
+ <dd>A warning is displayed on the main page if Suhosin is detected.
+ You can set this parameter to <tt>TRUE</tt> to stop this message
+ from appearing.</dd>
+
+ <dt id="cfg_AllowThirdPartyFraming">$cfg['AllowThirdPartyFraming'] boolean</dt>
+ <dd>Setting this to <tt>true</tt> allows a page located on a different
+ domain to call phpMyAdmin inside a frame, and is a potential security
+ hole allowing cross-frame scripting attacks.</dd>
+
+ <dt id="cfg_blowfish_secret">$cfg['blowfish_secret'] string</dt>
+ <dd>The &quot;cookie&quot; auth_type uses blowfish
+ algorithm to encrypt the password.<br />
+ If you are using the &quot;cookie&quot; auth_type, enter here a random
+ passphrase of your choice. It will be used internally by the blowfish
+ algorithm: you won&#8217;t be prompted for this passphrase. The maximum
+ number of characters for this parameter seems to be 46.<br /><br />
+
+ Since version 3.1.0 phpMyAdmin can generate this on the fly, but it
+ makes a bit weaker security as this generated secret is stored in
+ session and furthermore it makes impossible to recall user name from
+ cookie.</dd>
+
+ <dt id="cfg_Servers">$cfg['Servers'] array</dt>
+ <dd>Since version 1.4.2, phpMyAdmin supports the administration of multiple
+ MySQL servers. Therefore, a
+ <a href="#cfg_Servers" class="configrule">$cfg['Servers']</a>-array has
+ been added which contains the login information for the different servers.
+ The first
+ <a href="#cfg_Servers_host" class="configrule">$cfg['Servers'][$i]['host']</a>
+ contains the hostname of the first server, the second
+ <a href="#cfg_Servers_host" class="configrule">$cfg['Servers'][$i]['host']</a>
+ the hostname of the second server, etc. In
+ <tt>./libraries/config.default.php</tt>, there is only one section for
+ server definition, however you can put as many as you need in
+ <tt>./config.inc.php</tt>, copy that block or needed parts (you don't
+ have to define all settings, just those you need to change).</dd>
+
+ <dt id="cfg_Servers_host">$cfg['Servers'][$i]['host'] string</dt>
+ <dd>The hostname or <abbr title="Internet Protocol">IP</abbr> address of your
+ $i-th MySQL-server. E.g. localhost.</dd>
+
+ <dt id="cfg_Servers_port">$cfg['Servers'][$i]['port'] string</dt>
+ <dd>The port-number of your $i-th MySQL-server. Default is 3306 (leave
+ blank). If you use &quot;localhost&quot; as the hostname, MySQL
+ ignores this port number and connects with the socket, so if you want
+ to connect to a port different from the default port, use
+ &quot;127.0.0.1&quot; or the real hostname in
+ <a href="#cfg_Servers_host" class="configrule">$cfg['Servers'][$i]['host']</a>.
+ </dd>
+
+ <dt id="cfg_Servers_socket">$cfg['Servers'][$i]['socket'] string</dt>
+ <dd>The path to the socket to use. Leave blank for default.<br />
+ To determine the correct socket, check your MySQL configuration or, using the
+ <tt>mysql</tt> command&#8211;line client, issue the <tt>status</tt> command.
+ Among the resulting information displayed will be the socket used.</dd>
+
+ <dt id="cfg_Servers_ssl">$cfg['Servers'][$i]['ssl'] boolean</dt>
+ <dd>Whether to enable SSL for connection to MySQL server.
+ </dd>
+
+ <dt id="cfg_Servers_connect_type">$cfg['Servers'][$i]['connect_type'] string</dt>
+ <dd>What type connection to use with the MySQL server. Your options are
+ <tt>'socket'</tt> and <tt>'tcp'</tt>. It defaults to 'tcp' as that
+ is nearly guaranteed to be available on all MySQL servers, while
+ sockets are not supported on some platforms.<br /><br />
+
+ To use the socket mode, your MySQL server must be on the same machine
+ as the Web server.</dd>
+
+ <dt id="cfg_Servers_extension">$cfg['Servers'][$i]['extension'] string</dt>
+ <dd>What php MySQL extension to use for the connection. Valid options are:
+ <br /><br />
+
+ <tt><i>mysql</i></tt> :
+ The classic MySQL extension. This is the recommended and default
+ method at this time.<br /><br />
+
+ <tt><i>mysqli</i></tt> :
+ The improved MySQL extension. This extension became available
+ with php 5.0.0 and is the recommended way to connect to a server
+ running MySQL 4.1.x or newer.</dd>
+
+ <dt id="cfg_Servers_compress">$cfg['Servers'][$i]['compress'] boolean</dt>
+ <dd>Whether to use a compressed protocol for the MySQL server connection
+ or not (experimental).<br />
+ This feature requires PHP&nbsp;&gt;=&nbsp;4.3.0.</dd>
+
+ <dt id="controluser">
+ <span id="cfg_Servers_controluser">$cfg['Servers'][$i]['controluser']</span> string<br />
+ <span id="cfg_Servers_controlpass">$cfg['Servers'][$i]['controlpass']</span> string
+ </dt>
+ <dd>This special account is used for 2 distinct purposes: to make possible
+ all relational features (see
+ <a href="#pmadb" class="configrule">$cfg['Servers'][$i]['pmadb']</a>)
+ and, for a MySQL server previous to 4.1.2 or running with
+ <tt>--skip-show-database</tt>, to enable a multi-user installation
+ (<abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie
+ authentication mode).<br /><br />
+
+ When using <abbr title="HyperText Transfer Protocol">HTTP</abbr> or
+ cookie authentication modes (or 'config'
+ authentication mode since phpMyAdmin 2.2.1), you need to supply the
+ details of a MySQL account that has <tt>SELECT</tt> privilege on the
+ <i>mysql.user (all columns except &quot;Password&quot;)</i>,
+ <i>mysql.db (all columns)</i> and <i>mysql.tables_priv (all columns
+ except &quot;Grantor&quot; and &quot;Timestamp&quot;) </i>tables.
+ This account is used to check what databases the user will see at
+ login.<br />
+ Please see the <a href="#setup">install section</a> on
+ &quot;Using authentication modes&quot; for more information.<br /><br />
+
+ In phpMyAdmin versions before 2.2.5, those were called
+ &quot;stduser/stdpass&quot;.</dd>
+
+ <dt id="cfg_Servers_auth_type">$cfg['Servers'][$i]['auth_type'] string
+ <tt>['<abbr title="HyperText Transfer Protocol">HTTP</abbr>'|'http'|'cookie'|'config'|'signon']</tt></dt>
+ <dd>Whether config or cookie or
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> or signon authentication
+ should be used for this server.
+ <ul><li>'config' authentication (<tt>$auth_type&nbsp;=&nbsp;'config'</tt>)
+ is the plain old way: username and password are stored in
+ <i>config.inc.php</i>.</li>
+ <li>'cookie' authentication mode
+ (<tt>$auth_type&nbsp;=&nbsp;'cookie'</tt>) as introduced in
+ 2.2.3 allows you to log in as any valid MySQL user with the
+ help of cookies. Username and password are stored in
+ cookies during the session and password is deleted when it
+ ends. This can also allow you to log in in arbitrary server if
+ <tt><a href="#AllowArbitraryServer" class="configrule">$cfg['AllowArbitraryServer']</a></tt> enabled.
+ </li>
+ <li>'<abbr title="HyperText Transfer Protocol">HTTP</abbr>' authentication (was called 'advanced' in previous versions and can be written also as 'http')
+ (<tt>$auth_type&nbsp;=&nbsp;'<abbr title="HyperText Transfer Protocol">HTTP</abbr>'</tt>) as introduced in 1.3.0
+ allows you to log in as any valid MySQL user via HTTP-Auth.</li>
+ <li>'signon' authentication mode
+ (<tt>$auth_type&nbsp;=&nbsp;'signon'</tt>)
+ as introduced in 2.10.0 allows you to log in from prepared PHP
+ session data. This is useful for implementing single signon
+ from another application. Sample way how to seed session is in
+ signon example: <code>scripts/signon.php</code>. You need to
+ configure <a href="#cfg_Servers_SignonSession"
+ class="configrule">session name</a> and <a
+ href="#cfg_Servers_SignonURL" class="configrule">signon
+ URL</a> to use this authentication method.</li>
+ </ul>
+
+ Please see the <a href="#setup">install section</a> on &quot;Using authentication modes&quot;
+ for more information.
+ </dd>
+ <dt id="servers_auth_swekey_config">
+ <span id="cfg_Servers_auth_swekey_config">$cfg['Servers'][$i]['auth_swekey_config']</span> string<br />
+ </dt>
+ <dd>
+ The name of the file containing <a href="#swekey">Swekey</a> ids and login
+ names for hardware authentication. Leave empty to deactivate this feature.
+ </dd>
+ <dt id="servers_user">
+ <span id="cfg_Servers_user">$cfg['Servers'][$i]['user']</span> string<br />
+ <span id="cfg_Servers_password">$cfg['Servers'][$i]['password']</span> string
+ </dt>
+ <dd>
+ When using auth_type = 'config', this is the user/password-pair
+ which phpMyAdmin will use to connect to the
+ MySQL server. This user/password pair is not needed when <abbr title="HyperText Transfer Protocol">HTTP</abbr> or
+ cookie authentication is used and should be empty.</dd>
+ <dt id="servers_nopassword">
+ <span
+ id="cfg_Servers_nopassword">$cfg['Servers'][$i]['nopassword']</span> boolean
+ </dt>
+ <dd>
+ Allow attempt to log in without password when a login with password
+ fails. This can be used together with http authentication, when
+ authentication is done some other way and phpMyAdmin gets user name
+ from auth and uses empty password for connecting to MySQL. Password
+ login is still tried first, but as fallback, no password method is
+ tried.</dd>
+ <dt id="servers_only_db">
+ <span id="cfg_Servers_only_db">$cfg['Servers'][$i]['only_db']</span> string or array
+ </dt>
+ <dd>
+ If set to a (an array of) database name(s), only this (these) database(s)
+ will be shown to the user. Since phpMyAdmin 2.2.1, this/these
+ database(s) name(s) may contain MySQL wildcards characters
+ (&quot;_&quot; and &quot;%&quot;): if you want to use literal instances
+ of these characters, escape them (I.E. use <tt>'my\_db'</tt> and not
+ <tt>'my_db'</tt>).<br />
+ This setting is an efficient way to lower the server load since the
+ latter does not need to send MySQL requests to build the available
+ database list. But <span class="important">it does not replace the
+ privileges rules of the MySQL database server</span>. If set, it just
+ means only these databases will be displayed but
+ <span class="important">not that all other databases can't be used.</span>
+ <br /><br />
+
+ An example of using more that one database:
+ <tt>$cfg['Servers'][$i]['only_db'] = array('db1', 'db2');</tt>
+ <br /><br />
+
+ As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the
+ databases in the left frame, so that you can individually arrange your databases.<br />
+ If you want to have certain databases at the top, but don't care about the others, you do not
+ need to specify all other databases. Use:
+ <tt>$cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*');</tt>
+ instead to tell phpMyAdmin that it should display db3 and db4 on top, and the rest in alphabetic
+ order.</dd>
+
+ <dt><span id="cfg_Servers_hide_db">$cfg['Servers'][$i]['hide_db']</span> string
+ </dt>
+ <dd>Regular expression for hiding some databases. This only hides them
+ from listing, but a user is still able to access them (using, for example,
+ the SQL query area). To limit access, use the MySQL privilege system.
+ <br /><br />
+ For example, to hide all databases starting with the letter &#34;a&#34;, use<br />
+ <pre>$cfg['Servers'][$i]['hide_db'] = '^a';</pre>
+ and to hide both &#34;db1&#34; and &#34;db2&#34; use <br />
+ <pre>$cfg['Servers'][$i]['hide_db'] = '(db1|db2)';</pre>
+ More information on regular expressions can be found in the
+ <a href="http://php.net/manual/en/reference.pcre.pattern.syntax.php">
+ PCRE pattern syntax</a> portion of the PHP reference manual.
+ </dd>
+
+ <dt id="cfg_Servers_verbose">$cfg['Servers'][$i]['verbose'] string</dt>
+ <dd>Only useful when using phpMyAdmin with multiple server entries. If set,
+ this string will be displayed instead of the hostname in the pull-down
+ menu on the main page. This can be useful if you want to show only
+ certain databases on your system, for example. For HTTP auth, all
+ non-US-ASCII characters will be stripped.</dd>
+
+ <dt id="pmadb">
+ <span id="cfg_Servers_pmadb">$cfg['Servers'][$i]['pmadb']</span> string
+ </dt>
+ <dd>The name of the database containing the linked-tables infrastructure.
+ <br /><br />
+
+ See the <a href="#linked-tables">Linked-tables infrastructure</a>
+ section in this document to see the benefits of this infrastructure,
+ and for a quick way of creating this database and the needed tables.
+ <br /><br />
+
+ If you are the only user of this phpMyAdmin installation, you can
+ use your current database to store those special tables; in this
+ case, just put your current database name in
+ <tt>$cfg['Servers'][$i]['pmadb']</tt>. For a multi-user installation,
+ set this parameter to the name of your central database containing
+ the linked-tables infrastructure.</dd>
+
+ <dt id="bookmark">
+ <span id="cfg_Servers_bookmarktable">$cfg['Servers'][$i]['bookmarktable']</span> string
+ </dt>
+ <dd>Since release 2.2.0 phpMyAdmin allows users to bookmark queries. This can be
+ useful for queries you often run.<br /><br />
+
+ To allow the usage of this functionality:
+ <ul><li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
+ <li>enter the table name in
+ <tt>$cfg['Servers'][$i]['bookmarktable']</tt></li>
+ </ul>
+ </dd>
+
+ <dt id="relation">
+ <span id="cfg_Servers_relation">$cfg['Servers'][$i]['relation']</span> string
+ </dt>
+ <dd>Since release 2.2.4 you can describe, in a special 'relation' table,
+ which field is a key in another table (a foreign key). phpMyAdmin
+ currently uses this to
+ <ul><li>make clickable, when you browse the master table, the data values
+ that point to the foreign table;</li>
+ <li>display in an optional tool-tip the &quot;display field&quot;
+ when browsing the master table, if you move the mouse to a column
+ containing a foreign key (use also the 'table_info' table);<br />
+ (see <a href="#faqdisplay"><abbr title="Frequently Asked Questions">
+ FAQ</abbr> 6.7</a>)</li>
+ <li>in edit/insert mode, display a drop-down list of possible foreign
+ keys (key value and &quot;display field&quot; are shown)<br />
+ (see <a href="#faq6_21"><abbr title="Frequently Asked Questions">
+ FAQ</abbr> 6.21</a>)</li>
+ <li>display links on the table properties page, to check referential
+ integrity (display missing foreign keys) for each described key;
+ </li>
+ <li>in query-by-example, create automatic joins (see <a href="#faq6_6">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 6.6</a>)</li>
+ <li>enable you to get a <abbr title="Portable Document Format">PDF</abbr>
+ schema of your database (also uses the table_coords table).</li>
+ </ul>
+
+ The keys can be numeric or character.<br /><br />
+
+ To allow the usage of this functionality:
+
+ <ul><li>set up <a href="#pmadb">pmadb</a> and the linked-tables
+ infrastructure</li>
+ <li>put the relation table name in
+ <tt>$cfg['Servers'][$i]['relation']</tt></li>
+ <li>now as normal user open phpMyAdmin and for each one of your
+ tables where you want to use this feature, click
+ &quot;Structure/Relation view/&quot; and choose foreign fields.
+ </li>
+ </ul>
+
+ Please note that in the current version, <tt>master_db</tt>
+ must be the same as <tt>foreign_db</tt>. Those fields have been put in
+ future development of the cross-db relations.
+ </dd>
+
+ <dt id="table_info">
+ <span id="cfg_Servers_table_info">$cfg['Servers'][$i]['table_info']</span> string
+ </dt>
+ <dd>
+ Since release 2.3.0 you can describe, in a special 'table_info'
+ table, which field is to be displayed as a tool-tip when moving the
+ cursor over the corresponding key.<br />
+ This configuration variable will hold the name of this special
+ table. To allow the usage of this functionality:
+ <ul><li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
+ <li>put the table name in
+ <tt>$cfg['Servers'][$i]['table_info']</tt></li>
+ <li>then for each table where you want to use this feature,
+ click &quot;Structure/Relation view/Choose field to display&quot;
+ to choose the field.</li>
+ </ul>
+ Usage tip: <a href="#faqdisplay">Display field</a>.
+ </dd>
+ <dt id="table_coords">
+ <span id="cfg_Servers_table_coords">$cfg['Servers'][$i]['table_coords']</span> string<br />
+ <span id="cfg_Servers_pdf_pages">$cfg['Servers'][$i]['pdf_pages']</span> string
+ </dt>
+ <dd>Since release 2.3.0 you can have phpMyAdmin create
+ <abbr title="Portable Document Format">PDF</abbr> pages showing
+ the relations between your tables. To do this it needs two tables
+ &quot;pdf_pages&quot; (storing information about the available
+ <abbr title="Portable Document Format">PDF</abbr>
+ pages) and &quot;table_coords&quot; (storing coordinates where each
+ table will be placed on a <abbr title="Portable Document Format">PDF</abbr>
+ schema output).<br /><br />
+
+ You must be using the &quot;relation&quot; feature.<br /><br />
+
+ To allow the usage of this functionality:
+
+ <ul><li>set up <a href="#pmadb">pmadb</a> and the linked-tables
+ infrastructure</li>
+ <li>put the correct table names in
+ <tt>$cfg['Servers'][$i]['table_coords']</tt> and
+ <tt>$cfg['Servers'][$i]['pdf_pages']</tt></li>
+ </ul>
+
+ Usage tips: <a href="#faqpdf"><abbr title="Portable Document Format">PDF</abbr> output</a>.
+ </dd>
+
+ <dt id="col_com">
+ <span id="cfg_Servers_column_info">$cfg['Servers'][$i]['column_info']</span> string
+ </dt>
+ <dd><!-- This part requires a content update! -->
+ Since release 2.3.0 you can store comments to describe each column for
+ each table. These will then be shown on the &quot;printview&quot;.
+ <br /><br />
+
+ Starting with release 2.5.0, comments are consequently used on the table
+ property pages and table browse view, showing up as tool-tips above the
+ column name (properties page) or embedded within the header of table in
+ browse view. They can also be shown in a table dump. Please see the
+ relevant configuration directives later on.<br /><br />
+
+ Also new in release 2.5.0 is a MIME-transformation system which is also
+ based on the following table structure. See <a href="#transformations">
+ Transformations</a> for further information. To use the
+ MIME-transformation system, your column_info table has to have the three
+ new fields 'mimetype', 'transformation', 'transformation_options'.
+ <br /><br />
+
+ To allow the usage of this functionality:
+ <ul><li>set up <a href="#pmadb">pmadb</a> and the linked-tables
+ infrastructure</li>
+ <li>put the table name in
+ <tt>$cfg['Servers'][$i]['column_info']</tt></li>
+ <li>to update your PRE-2.5.0 Column_comments Table use this:
+
+ <pre>
+ALTER TABLE `pma_column_comments`
+ ADD `mimetype` VARCHAR( 255 ) NOT NULL,
+ ADD `transformation` VARCHAR( 255 ) NOT NULL,
+ ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
+</pre>
+
+ and remember that the Variable in <i>config.inc.php</i> has been
+ renamed from<br />
+ <tt>$cfg['Servers'][$i]['column_comments']</tt> to
+ <tt>$cfg['Servers'][$i]['column_info']</tt></li>
+ </ul>
+ </dd>
+
+ <dt id="history">
+ <span id="cfg_Servers_history">$cfg['Servers'][$i]['history']</span> string
+ </dt>
+ <dd>Since release 2.5.0 you can store your
+ <abbr title="structured query language">SQL</abbr> history, which means
+ all queries you entered manually into the phpMyAdmin interface. If you
+ don't want to use a table-based history, you can use the JavaScript-based
+ history. Using that, all your history items are deleted when closing the
+ window.<br /><br />
+
+ Using
+ <a href="#cfg_QueryHistoryMax" class="configrule">$cfg['QueryHistoryMax']</a>
+ you can specify an amount of history items you want to have on hold. On
+ every login, this list gets cut to the maximum amount.<br /><br />
+
+ The query history is only available if JavaScript is enabled in your
+ browser.<br /><br />
+
+ To allow the usage of this functionality:
+
+ <ul><li>set up <a href="#pmadb">pmadb</a> and the linked-tables
+ infrastructure</li>
+ <li>put the table name in <tt>$cfg['Servers'][$i]['history']</tt>
+ </li>
+ </ul>
+ </dd>
+
+ <dt id="designer_coords">
+ <span id="cfg_Servers_designer_coords">$cfg['Servers'][$i]['designer_coords']</span> string
+ </dt>
+ <dd>Since release 2.10.0 a Designer interface is available; it permits
+ to visually manage the relations.
+ <br /><br />
+
+ To allow the usage of this functionality:
+
+ <ul><li>set up <a href="#pmadb">pmadb</a> and the linked-tables
+ infrastructure</li>
+ <li>put the table name in <tt>$cfg['Servers'][$i]['designer_coords']</tt>
+ </li>
+ </ul>
+ </dd>
+
+ <dt><span id="cfg_Servers_verbose_check">$cfg['Servers'][$i]['verbose_check']</span> boolean
+ </dt>
+ <dd>Because release 2.5.0 introduced the new MIME-transformation support, the
+ column_info table got enhanced with three new fields. If the above variable
+ is set to <tt>TRUE</tt> (default) phpMyAdmin will check if you have the
+ latest table structure available. If not, it will emit a warning to the
+ superuser.<br /><br />
+
+ You can disable this checking behavior by setting the variable to false,
+ which should offer a performance increase.<br /><br />
+
+ Recommended to set to FALSE, when you are sure, your table structure is
+ up to date.</dd>
+ <dt><span id="cfg_Servers_AllowRoot">$cfg['Servers'][$i]['AllowRoot']</span>
+ boolean</dt>
+ <dd>Whether to allow root access. This is just a shortcut for the AllowDeny rules below.
+ </dd>
+ <dt><span id="cfg_Servers_AllowNoPasswordRoot">$cfg['Servers'][$i]['AllowNoPasswordRoot']</span>
+ boolean</dt>
+ <dd>Whether to allow access to root user without password. The default
+ value of <tt>false</tt> for this parameter prevents unintended access
+ to a MySQL server with was left with an empty password for root.
+ </dd>
+ <dt id="servers_allowdeny_order">
+ <span id="cfg_Servers_AllowDeny_order">$cfg['Servers'][$i]['AllowDeny']['order']</span> string
+ </dt>
+ <dd>If your rule order is empty, then <abbr title="Internet Protocol">IP</abbr>
+ authentication is disabled.<br /><br />
+
+ If your rule order is set to <tt>'deny,allow'</tt> then the system applies
+ all deny rules followed by allow rules. Access is allowed by default. Any
+ client which does not match a Deny command or does match an Allow command
+ will be allowed access to the server. <br /><br />
+
+ If your rule order is set to <tt>'allow,deny'</tt> then the system
+ applies all allow rules followed by deny rules. Access is denied by
+ default. Any client which does not match an Allow directive or does
+ match a Deny directive will be denied access to the server.<br /><br />
+
+ If your rule order is set to 'explicit', the authentication is
+ performed in a similar fashion to rule order 'deny,allow', with the
+ added restriction that your host/username combination <b>must</b> be
+ listed in the <i>allow</i> rules, and not listed in the <i>deny</i>
+ rules. This is the <b>most</b> secure means of using Allow/Deny rules,
+ and was available in Apache by specifying allow and deny rules without
+ setting any order.<br /><br />
+
+ Please also see <a
+ href="#cfg_TrustedProxies">$cfg['TrustedProxies']</a> for detecting IP
+ address behind proxies.
+ </dd>
+ <dt id="servers_allowdeny_rules">
+ <span id="cfg_Servers_AllowDeny_rules">$cfg['Servers'][$i]['AllowDeny']['rules']</span> array of strings
+ </dt>
+ <dd>The general format for the rules is as such:
+
+ <pre>
+&lt;'allow' | 'deny'&gt; &lt;username&gt; [from] &lt;ipmask&gt;
+</pre>
+
+ If you wish to match all users, it is possible to use a <tt>'%'</tt> as
+ a wildcard in the <i>username</i> field.<br />
+ There are a few shortcuts you can use in the <i>ipmask</i> field as
+ well (please note that those containing SERVER_ADDRESS might not be
+ available on all webservers):
+ <pre>
+'all' -&gt; 0.0.0.0/0
+'localhost' -&gt; 127.0.0.1/8
+'localnetA' -&gt; SERVER_ADDRESS/8
+'localnetB' -&gt; SERVER_ADDRESS/16
+'localnetC' -&gt; SERVER_ADDRESS/24
+</pre>
+
+ Having an empty rule list is equivalent to either using
+ <tt>'allow % from all'</tt> if your rule order is set to
+ <tt>'deny,allow'</tt> or <tt>'deny % from all'</tt> if your rule order
+ is set to <tt>'allow,deny'</tt> or <tt>'explicit'</tt>.<br /><br />
+
+ For the <abbr title="Internet Protocol">IP</abbr> matching system, the
+ following work:<br />
+ <tt>xxx.xxx.xxx.xxx</tt> (an exact <abbr title="Internet Protocol">IP</abbr> address)<br />
+ <tt>xxx.xxx.xxx.[yyy-zzz]</tt> (an <abbr title="Internet Protocol">IP</abbr> address range)<br />
+ <tt>xxx.xxx.xxx.xxx/nn</tt> (CIDR, Classless Inter-Domain Routing type <abbr title="Internet Protocol">IP</abbr> addresses)<br />
+ But the following does not work:<br />
+ <tt>xxx.xxx.xxx.xx[yyy-zzz]</tt> (partial
+ <abbr title="Internet Protocol">IP</abbr> address range)
+ </dd>
+ <dt><span id="cfg_Servers_SignonSession">$cfg['Servers'][$i]['SignonSession']</span> string</dt>
+ <dd>Name of session which will be used for signon authentication method.
+ </dd>
+ <dt><span id="cfg_Servers_SignonURL">$cfg['Servers'][$i]['SignonURL']</span> string</dt>
+ <dd>URL where user will be redirected to log in for signon authentication method. Should be absolute including protocol.
+ </dd>
+ <dt><span id="cfg_Servers_LogoutURL">$cfg['Servers'][$i]['LogoutURL']</span> string</dt>
+ <dd>URL where user will be redirected after logout (doesn't affect config authentication method). Should be absolute including protocol.
+ </dd>
+
+ <dt id="cfg_ServerDefault">$cfg['ServerDefault'] integer</dt>
+ <dd>If you have more than one server configured, you can set
+ <tt>$cfg['ServerDefault']</tt> to any one of them to autoconnect to
+ that server when phpMyAdmin is started, or set it to 0 to be given a
+ list of servers without logging in.<br />
+ If you have only one server configured, <tt>$cfg['ServerDefault']</tt>
+ MUST be set to that server.</dd>
+
+ <dt id="cfg_MaxDbList">$cfg['MaxDbList'] integer</dt>
+ <dd>The maximum number of database names to be displayed in the
+ navigation frame and the database list.</dd>
+
+ <dt id="cfg_MaxTableList">$cfg['MaxTableList'] integer</dt>
+ <dd>The maximum number of table names to be displayed in the
+ main panel's list (except on the Export page). This limit is also enforced in the navigation panel
+ when in Light mode.</dd>
+
+ <dt id="cfg_MaxCharactersInDisplayedSQL">$cfg['MaxCharactersInDisplayedSQL'] integer</dt>
+ <dd>The maximum number of characters when a SQL query is displayed. The
+ default limit of 1000 should be correct to avoid the display of tons
+ of hexadecimal codes that represent BLOBs, but some users have real
+ SQL queries that are longer than 1000 characters. Also, if a query's
+ length exceeds this limit, this query is not saved in the history.</dd>
+
+ <dt id="cfg_OBGzip">$cfg['OBGzip'] string/boolean</dt>
+ <dd>Defines whether to use GZip output buffering for increased
+ speed in <abbr title="HyperText Transfer Protocol">HTTP</abbr> transfers.<br />
+ Set to true/false for enabling/disabling. When set to 'auto' (string),
+ phpMyAdmin tries to enable output buffering and will automatically disable
+ it if your browser has some problems with buffering. IE6 with a certain patch
+ is known to cause data corruption when having enabled buffering.</dd>
+
+ <dt id="cfg_PersistentConnections">$cfg['PersistentConnections'] boolean</dt>
+ <dd>Whether persistent connections should be used or not (mysql_connect or
+ mysql_pconnect).</dd>
+
+ <dt id="cfg_ForceSSL">$cfg['ForceSSL'] boolean</dt>
+ <dd>Whether to force using https while accessing phpMyAdmin.</dd>
+
+ <dt id="cfg_ExecTimeLimit">$cfg['ExecTimeLimit'] integer [number of seconds]</dt>
+ <dd>Set the number of seconds a script is allowed to run. If seconds is set
+ to zero, no time limit is imposed.<br />
+ This setting is used while importing/exporting dump files but has no
+ effect when PHP is running in safe mode.</dd>
+
+ <dt id="cfg_MemoryLimit">$cfg['MemoryLimit'] integer [number of bytes]</dt>
+ <dd>Set the number of bytes a script is allowed to allocate. If number set
+ to zero, no limit is imposed.<br />
+ This setting is used while importing/exporting dump files but has no
+ effect when PHP is running in safe mode.<br />
+ You can also use any string as in php.ini, eg. '16M'.</dd>
+
+ <dt id="cfg_SkipLockedTables">$cfg['SkipLockedTables'] boolean</dt>
+ <dd>Mark used tables and make it possible to show databases with locked
+ tables (since MySQL 3.23.30).</dd>
+
+ <dt id="cfg_ShowSQL">$cfg['ShowSQL'] boolean</dt>
+ <dd>Defines whether <abbr title="structured query language">SQL</abbr> queries
+ generated by phpMyAdmin should be displayed or not.</dd>
+
+ <dt id="cfg_AllowUserDropDatabase">$cfg['AllowUserDropDatabase'] boolean</dt>
+ <dd>Defines whether normal users (non-administrator) are allowed to
+ delete their own database or not. If set as FALSE, the link &quot;Drop
+ Database&quot; will not be shown, and even a &quot;DROP DATABASE
+ mydatabase&quot; will be rejected. Quite practical for
+ <abbr title="Internet service provider">ISP</abbr>'s with many
+ customers.<br />
+ Please note that this limitation of SQL queries is not as strict as
+ when using MySQL privileges. This is due to nature of SQL queries
+ which might be quite complicated. So this choice should be viewed as
+ help to avoid accidental dropping rather than strict privilege
+ limitation.</dd>
+
+ <dt id="cfg_Confirm">$cfg['Confirm'] boolean</dt>
+ <dd>Whether a warning (&quot;Are your really sure...&quot;) should be
+ displayed when you're about to lose data.</dd>
+
+ <dt id="cfg_LoginCookieRecall">$cfg['LoginCookieRecall'] boolean</dt>
+ <dd>Define whether the previous login should be recalled or not in cookie
+ authentication mode.<br /><br />
+
+ This is automatically diabled if you do not have configured
+ <tt><a href="#cfg_blowfish_secret">$cfg['blowfish_secret']</a></tt>.
+ </dd>
+
+ <dt id="cfg_LoginCookieValidity">$cfg['LoginCookieValidity'] integer [number of seconds]</dt>
+ <dd>Define how long is login cookie valid.</dd>
+
+ <dt id="cfg_LoginCookieStore">$cfg['LoginCookieStore'] integer [number of seconds]</dt>
+ <dd>Define how long is login cookie should be stored in browser. Default 0
+ means that it will be kept for existing session. This is recommended
+ for not trusted environments.</dd>
+
+ <dt id="cfg_LoginCookieDeleteAll">$cfg['LoginCookieDeleteAll'] boolean</dt>
+ <dd>If enabled (default), logout deletes cookies for all servers,
+ otherwise only for current one. Setting this to false makes it easy to
+ forget to log out from other server, when you are using more of
+ them.</dd>
+
+ <dt id="cfg_UseDbSearch">$cfg['UseDbSearch'] boolean</dt>
+ <dd>Define whether the "search string inside database" is enabled or not.</dd>
+
+ <dt id="cfg_IgnoreMultiSubmitErrors">$cfg['IgnoreMultiSubmitErrors'] boolean</dt>
+ <dd>Define whether phpMyAdmin will continue executing a multi-query
+ statement if one of the queries fails. Default is to abort execution.</dd>
+
+ <dt id="cfg_VerboseMultiSubmit">$cfg['VerboseMultiSubmit'] boolean</dt>
+ <dd>Define whether phpMyAdmin will output the results of each query of a
+ multi-query statement embedded into the
+ <abbr title="structured query language">SQL</abbr> output as inline
+ comments. Defaults to <tt>TRUE</tt>.</dd>
+ <dt id="AllowArbitraryServer">
+ <span id="cfg_AllowArbitraryServer">$cfg['AllowArbitraryServer']</span> boolean</dt>
+ <dd>If enabled allows you to log in to arbitrary servers using cookie auth.
+ <br /><br />
+
+ <b>NOTE:</b> Please use this carefully, as this may allow users access to
+ MySQL servers behind the firewall where your
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> server is placed.
+ </dd>
+
+ <dt id="cfg_LeftFrameLight">$cfg['LeftFrameLight'] boolean</dt>
+ <dd>Defines whether to use a select-based menu and display only the current
+ tables in the left frame (smaller page). Only in Non-Lightmode you can
+ use the feature to display nested folders using
+ <a href="#cfg_LeftFrameTableSeparator" class="configrule">$cfg['LeftFrameTableSeparator']</a>
+ </dd>
+
+ <dt id="cfg_LeftFrameDBTree">$cfg['LeftFrameDBTree'] boolean</dt>
+ <dd>In light mode, defines whether to display the names of databases (in the
+ selector) using a tree, see also
+ <a href="#cfg_LeftFrameDBSeparator" class="configrule">$cfg['LeftFrameDBSeparator']</a>.
+ </dd>
+
+ <dt id="cfg_LeftFrameDBSeparator">$cfg['LeftFrameDBSeparator'] string</dt>
+ <dd>The string used to separate the parts of the database name when showing
+ them in a tree.</dd>
+
+ <dt id="cfg_LeftFrameTableSeparator">$cfg['LeftFrameTableSeparator'] string</dt>
+ <dd>Defines a string to be used to nest table spaces. Defaults to '__'.
+ This means if you have tables like 'first__second__third' this will be
+ shown as a three-level hierarchy like: first &gt; second &gt; third.
+ If set to FALSE or empty, the feature is disabled. NOTE: You should
+ not use this separator at the beginning or end of a
+ table name or multiple times after another without any other
+ characters in between.</dd>
+
+ <dt id="cfg_LeftFrameTableLevel">$cfg['LeftFrameTableLevel'] string</dt>
+ <dd>Defines how many sublevels should be displayed when splitting
+ up tables by the above separator.</dd>
+
+ <dt id="cfg_ShowTooltip">$cfg['ShowTooltip'] boolean</dt>
+ <dd>Defines whether to display table comment as tool-tip in left frame or
+ not.</dd>
+
+ <dt id="cfg_ShowTooltipAliasDB">$cfg['ShowTooltipAliasDB'] boolean</dt>
+ <dd>If tool-tips are enabled and a DB comment is set, this will flip the
+ comment and the real name. That means that if you have a table called
+ 'user0001' and add the comment 'MyName' on it, you will see the name
+ 'MyName' used consequently in the left frame and the tool-tip shows
+ the real name of the DB.</dd>
+
+ <dt id="cfg_ShowTooltipAliasTB">$cfg['ShowTooltipAliasTB'] boolean/string</dt>
+ <dd>Same as <a href="#cfg_ShowTooltipAliasDB" class="configrule">$cfg['ShowTooltipAliasDB']</a>, except this works for table names.
+
+ When setting this to 'nested', the Alias of the Tablename is only used
+ to split/nest the tables according to the
+ <a href="#cfg_LeftFrameTableSeparator" class="configrule">$cfg['LeftFrameTableSeparator']</a>
+ directive. So only the folder is called like the Alias, the tablename itself
+ stays the real tablename.</dd>
+
+ <dt id="cfg_LeftDisplayLogo">$cfg['LeftDisplayLogo'] boolean</dt>
+ <dd>Defines whether or not to display the phpMyAdmin logo at the top of the left frame.
+ Defaults to <tt>TRUE</tt>.</dd>
+ <dt id="cfg_LeftLogoLink">$cfg['LeftLogoLink'] string</dt>
+ <dd>Enter URL where logo in the navigation frame will point to.
+ For use especially with self made theme which changes this.
+ The default value for this is <tt>main.php</tt>.</dd>
+
+ <dt id="cfg_LeftLogoLinkWindow">$cfg['LeftLogoLinkWindow'] string</dt>
+ <dd>Whether to open the linked page in the main window (<tt>main</tt>)
+ or in a new one (<tt>new</tt>). Note: use <tt>new</tt> if you are
+ linking to <tt>phpmyadmin.net</tt>.</dd>
+
+ <dt id="cfg_LeftDisplayServers">$cfg['LeftDisplayServers'] boolean</dt>
+ <dd>Defines whether or not to display a server choice at the top of the left frame.
+ Defaults to FALSE.</dd>
+ <dt id="cfg_DisplayServersList">$cfg['DisplayServersList'] boolean</dt>
+ <dd>Defines whether to display this server choice as links instead of in a drop-down.
+ Defaults to FALSE (drop-down).</dd>
+ <dt id="cfg_DisplayDatabasesList">$cfg['DisplayDatabasesList'] boolean or text</dt>
+ <dd>Defines whether to display database choice in light navigation frame as links
+ instead of in a drop-down. Defaults to 'auto' - on main page list is
+ shown, when database is selected, only drop down is displayed.</dd>
+
+ <dt id="cfg_LeftDefaultTabTable">$cfg['LeftDefaultTabTable'] string</dt>
+ <dd>Defines the tab displayed by default when clicking the small
+ icon next to each table name in the navigation panel. Possible
+ values: &quot;tbl_structure.php&quot;,
+ &quot;tbl_sql.php&quot;, &quot;tbl_select.php&quot;,
+ &quot;tbl_change.php&quot; or &quot;sql.php&quot;.</dd>
+
+ <dt id="cfg_ShowStats">$cfg['ShowStats'] boolean</dt>
+ <dd>Defines whether or not to display space usage and statistics about databases
+ and tables.<br />
+ Note that statistics requires at least MySQL 3.23.3 and that, at this
+ date, MySQL doesn't return such information for Berkeley DB tables.</dd>
+
+ <dt><span id="cfg_ShowServerInfo">$cfg['ShowServerInfo'] </span>boolean</dt>
+ <dd>Defines whether to display detailed server information on main page.
+ You can additionally hide more information by using
+ <tt><a href="#cfg_Servers_verbose">$cfg['Servers'][$i]['verbose']</a></tt>.
+ </dd>
+
+ <dt><span id="cfg_ShowPhpInfo">$cfg['ShowPhpInfo'] </span>boolean<br />
+ <span id="cfg_ShowChgPassword">$cfg['ShowChgPassword'] </span>boolean<br />
+ <span id="cfg_ShowCreateDb">$cfg['ShowCreateDb'] </span>boolean
+ </dt>
+ <dd>Defines whether to display the &quot;PHP information&quot; and
+ &quot;Change password &quot; links and form for creating database or
+ not at the starting main (right) frame. This setting
+ does not check MySQL commands entered directly.<br /><br />
+
+ Please note that to block the usage of phpinfo() in scripts, you
+ have to put this in your <i>php.ini</i>:
+
+ <pre>disable_functions = phpinfo()</pre>
+
+ Also note that enabling the &quot;Change password &quot; link has no
+ effect with &quot;config&quot; authentication mode: because of the
+ hard coded password value in the configuration file, end users can't
+ be allowed to change their passwords.</dd>
+
+ <dt id="cfg_SuggestDBName">$cfg['SuggestDBName'] boolean</dt>
+ <dd>Defines whether to suggest a database name on the
+ &quot;Create Database&quot; form or to keep the textfield empty.</dd>
+
+ <dt id="cfg_NavigationBarIconic">$cfg['NavigationBarIconic'] string</dt>
+ <dd>Defines whether navigation bar buttons and the right panel top menu
+ contain text or symbols only. A value of TRUE displays icons, FALSE
+ displays text and 'both' displays both icons and text.</dd>
+
+ <dt id="cfg_ShowAll">$cfg['ShowAll'] boolean</dt>
+ <dd>Defines whether a user should be displayed a
+ &quot;show all (records)&quot; button in browse mode or not.</dd>
+
+ <dt id="cfg_MaxRows">$cfg['MaxRows'] integer</dt>
+ <dd>Number of rows displayed when browsing a result set. If the result set
+ contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.</dd>
+
+ <dt id="cfg_Order">$cfg['Order'] string [<tt>DESC</tt>|<tt>ASC</tt>|<tt>SMART</tt>]</dt>
+ <dd>Defines whether fields are displayed in ascending (<tt>ASC</tt>) order,
+ in descending (<tt>DESC</tt>) order or in a &quot;smart&quot;
+ (<tt>SMART</tt>) order - I.E. descending order for fields of type TIME,
+ DATE, DATETIME and TIMESTAMP, ascending order else- by default.</dd>
+
+ <dt id="cfg_ProtectBinary">$cfg['ProtectBinary'] boolean or string</dt>
+ <dd>Defines whether <tt>BLOB</tt> or <tt>BINARY</tt> fields are protected
+ from editing when browsing a table's content. Valid values are:
+ <ul><li><tt>FALSE</tt> to allow editing of all fields;</li>
+ <li><tt>'blob'</tt> to allow editing of all fields except <tt>BLOBS</tt>;</li>
+ <li><tt>'all'</tt> to disallow editing of all <tt>BINARY</tt> or
+ <tt>BLOB</tt> fields.</li>
+ </ul>
+ </dd>
+
+ <dt id="cfg_ShowFunctionFields">$cfg['ShowFunctionFields'] boolean</dt>
+ <dd>Defines whether or not MySQL functions fields should be initially
+ displayed in edit/insert mode. Since version 2.10, the user can
+ toggle this setting from the interface.
+ </dd>
+
+ <dt id="cfg_CharEditing">$cfg['CharEditing'] string</dt>
+ <dd>Defines which type of editing controls should be used for CHAR and
+ VARCHAR fields. Possible values are:
+ <ul><li>input - this allows to limit size of text to size of field in
+ MySQL, but has problems with newlines in fields</li>
+ <li>textarea - no problems with newlines in fields, but also no
+ length limitations</li>
+ </ul>
+ Default is old behavior so input.</dd>
+
+ <dt id="cfg_InsertRows">$cfg['InsertRows'] integer</dt>
+ <dd>Defines the maximum number of concurrent entries for the Insert page.</dd>
+
+ <dt id="cfg_ForeignKeyMaxLimit">$cfg['ForeignKeyMaxLimit'] integer</dt>
+ <dd>If there are fewer items than this in the set of foreign keys, then a
+ drop-down box of foreign keys is presented, in the style described by the
+ <a href="#cfg_ForeignKeyDropdownOrder" class="configrule">$cfg['ForeignKeyDropdownOrder']</a>
+ setting.</dd>
+
+ <dt id="cfg_ForeignKeyDropdownOrder">$cfg['ForeignKeyDropdownOrder'] array</dt>
+ <dd>For the foreign key drop-down fields, there are several methods of
+ display, offering both the key and value data. The contents of the
+ array should be one or both of the following strings:
+ <i>'content-id'</i>, <i>'id-content'</i>.</dd>
+
+ <dt><span id="cfg_ZipDump">$cfg['ZipDump'] </span>boolean<br />
+ <span id="cfg_GZipDump">$cfg['GZipDump'] </span>boolean<br />
+ <span id="cfg_BZipDump">$cfg['BZipDump'] </span>boolean
+ </dt>
+ <dd>Defines whether to allow the use of zip/GZip/BZip2 compression when
+ creating a dump file</dd>
+
+ <dt><span id="cfg_CompressOnFly">$cfg['CompressOnFly'] </span>boolean<br />
+ </dt>
+ <dd>Defines whether to allow on the fly compression for GZip/BZip2
+ compressed exports. This doesn't affect smaller dumps and allows users to
+ create larger dumps that won't otherwise fit in memory due to php
+ memory limit. Produced files contain more GZip/BZip2 headers, but all
+ normal programs handle this correctly.</dd>
+
+ <dt id="cfg_LightTabs">$cfg['LightTabs'] boolean</dt>
+ <dd>If set to <tt>TRUE</tt>, use less graphically intense tabs on the top of the
+ mainframe.</dd>
+
+ <dt id="cfg_PropertiesIconic">$cfg['PropertiesIconic'] string</dt>
+ <dd>If set to <tt>TRUE</tt>, will display icons instead of text for db and table
+ properties links (like 'Browse', 'Select', 'Insert', ...).<br /> Can be
+ set to <tt>'both'</tt> if you want icons AND text.<br />
+ When set to <tt>FALSE</tt>, will only show text.</dd>
+
+ <dt id="cfg_PropertiesNumColumns">$cfg['PropertiesNumColumns'] integer</dt>
+ <dd>How many columns will be utilized to display the tables on the
+ database property view? Default is 1 column. When setting this to a
+ value larger than 1, the type of the database will be omitted for more
+ display space.</dd>
+
+
+ <dt id="cfg_DefaultTabServer">$cfg['DefaultTabServer'] string</dt>
+ <dd>Defines the tab displayed by default on server view. Possible
+ values: &quot;main.php&quot; (recommended for multi-user setups),
+ &quot;server_databases.php&quot;, &quot;server_status.php&quot;,
+ &quot;server_variables.php&quot;, &quot;server_privileges.php&quot;
+ or &quot;server_processlist.php&quot;.</dd>
+
+ <dt id="cfg_DefaultTabDatabase">$cfg['DefaultTabDatabase'] string</dt>
+ <dd>Defines the tab displayed by default on database view. Possible
+ values: &quot;db_structure.php&quot;,
+ &quot;db_sql.php&quot; or &quot;db_search.php&quot;.</dd>
+
+ <dt id="cfg_DefaultTabTable">$cfg['DefaultTabTable'] string</dt>
+ <dd>Defines the tab displayed by default on table view. Possible
+ values: &quot;tbl_structure.php&quot;,
+ &quot;tbl_sql.php&quot;, &quot;tbl_select.php&quot;,
+ &quot;tbl_change.php&quot; or &quot;sql.php&quot;.</dd>
+
+ <dt id="cfg_MySQLManualBase">$cfg['MySQLManualBase'] string</dt>
+ <dd>If set to an <abbr title="Uniform Resource Locator">URL</abbr> which
+ points to the MySQL documentation (type depends
+ on <a href="#cfg_MySQLManualType" class="configrule">$cfg['MySQLManualType']</a>), appropriate help links are
+ generated.<br />
+ See <a href="http://dev.mysql.com/doc/">MySQL Documentation page</a>
+ for more information about MySQL manuals and their types.</dd>
+
+ <dt id="cfg_MySQLManualType">$cfg['MySQLManualType'] string</dt>
+ <dd>Type of MySQL documentation:
+ <ul><li>viewable - &quot;viewable online&quot;, current one used on MySQL website</li>
+ <li>searchable - &quot;Searchable, with user comments&quot;</li>
+ <li>chapters - &quot;HTML, one page per chapter&quot;</li>
+ <li>big - &quot;HTML, all on one page&quot;</li>
+ <li>none - do not show documentation links</li>
+ </ul>
+ </dd>
+
+ <dt id="cfg_DefaultLang">$cfg['DefaultLang'] string</dt>
+ <dd>Defines the default language to use, if not browser-defined or
+ user-defined.<br />
+ See the <i>select_lang.lib.php</i> script to know the valid values for
+ this setting.</dd>
+
+ <dt id="cfg_DefaultConnectionCollation">$cfg['DefaultConnectionCollation'] string</dt>
+ <dd>Defines the default connection collation to use, if not
+ user-defined.<br />
+ See the <a href="http://dev.mysql.com/doc/mysql/en/charset-charsets.html">MySQL
+ documentation</a> for list of possible values.</dd>
+
+ <dt id="cfg_Lang">$cfg['Lang'] string</dt>
+ <dd>Force: always use this language (must be defined in the
+ <i>select_lang.lib.php</i> script).</dd>
+
+ <dt id="cfg_FilterLanguages">$cfg['FilterLanguages'] string</dt>
+ <dd>Limit list of available languages to those matching the given regular
+ expression. For example if you want only Czech and English, you should
+ set filter to <code>'^(cs|en)'</code>.</dd>
+
+ <dt id="cfg_DefaultCharset">$cfg['DefaultCharset'] string</dt>
+ <dd>Default character set to use for recoding of MySQL queries. This must be
+ enabled and it's described by
+ <a href="#cfg_AllowAnywhereRecoding" class="configrule">$cfg['AllowAnywhereRecoding']</a>
+ option.<br />
+ You can give here any character set which is in
+ <a href="#cfg_AvailableCharsets" class="configrule">$cfg['AvailableCharsets']</a>
+ array and this is just default choice, user can select any of them.</dd>
+
+ <dt id="cfg_AllowAnywhereRecoding">$cfg['AllowAnywhereRecoding'] boolean</dt>
+ <dd>Allow character set recoding of MySQL queries. You need recode or iconv
+ support (compiled in or module) in PHP to allow MySQL queries recoding
+ and used language file must have it enabled (by default only these
+ which are in Unicode, just to avoid losing some characters).<br /><br />
+
+ Setting this to <tt>TRUE</tt> also activates a pull-down menu
+ in the Export page, to choose the character set when exporting a file.
+ The default value in this menu comes from <tt>$cfg['Export']['charset']</tt>.
+ </dd>
+
+ <dt id="cfg_RecodingEngine">$cfg['RecodingEngine'] string</dt>
+ <dd>You can select here which functions will be used for character set
+ conversion. Possible values are:
+ <ul><li>auto - automatically use available one (first is tested
+ iconv, then recode)</li>
+ <li>iconv - use iconv or libiconv functions</li>
+ <li>recode - use recode_string function</li>
+ </ul>
+ Default is auto.</dd>
+
+ <dt id="cfg_IconvExtraParams">$cfg['IconvExtraParams'] string</dt>
+ <dd>Specify some parameters for iconv used in charset conversion. See
+ <a href="http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html">iconv
+ documentation</a> for details. By default <code>//TRANSLIT</code> is
+ used, so that invalid characters will be transliterated.</dd>
+
+ <dt id="cfg_AvailableCharsets">$cfg['AvailableCharsets'] array</dt>
+ <dd>Available character sets for MySQL conversion. You can add your own (any of
+ supported by recode/iconv) or remove these which you don't use.
+ Character sets will be shown in same order as here listed, so if you
+ frequently use some of these move them to the top.</dd>
+
+ <dt id="cfg_TrustedProxies">$cfg['TrustedProxies'] array</dt>
+ <dd>Lists proxies and HTTP headers which are trusted for <a
+ href="#servers_allowdeny_order">IP Allow/Deny</a>. This list is by
+ default empty, you need to fill in some trusted proxy servers if you
+ want to use rules for IP addresses behind proxy.<br /><br />
+
+ The following example specifies that phpMyAdmin should trust a
+ HTTP_X_FORWARDED_FOR (<tt>X-Forwarded-For</tt>) header coming from the proxy 1.2.3.4:
+<pre>
+$cfg['TrustedProxies'] =
+ array('1.2.3.4' =&gt; 'HTTP_X_FORWARDED_FOR');
+</pre>
+ The $cfg['Servers'][$i]['AllowDeny']['rules'] directive uses the
+ client's IP address as usual.
+ </dd>
+
+ <dt id="cfg_GD2Available">$cfg['GD2Available'] string</dt>
+ <dd>Specifies whether GD &gt;= 2 is available. If yes it can be used for
+ MIME transformations.<br />
+ Possible values are:
+ <ul><li>auto - automatically detect, this is a bit expensive
+ operation for php &lt; 4.3.0 so it is preferred to change this
+ according to your server real possibilities</li>
+ <li>yes - GD 2 functions can be used</li>
+ <li>no - GD 2 function cannot be used</li>
+ </ul>
+ Default is auto.
+ </dd>
+
+ <dt id="cfg_CheckConfigurationPermissions">$cfg['CheckConfigurationPermissions'] boolean</dt>
+ <dd>
+ We normally check the permissions on the configuration file to ensure
+ it's not world writable. However, phpMyAdmin could be installed on
+ a NTFS filesystem mounted on a non-Windows server, in which case the
+ permissions seems wrong but in fact cannot be detected. In this case
+ a sysadmin would set this parameter to <tt>FALSE</tt>. Default is <tt>TRUE</tt>.
+ </dd>
+
+ <dt id="cfg_NaviWidth">$cfg['NaviWidth'] integer</dt>
+ <dd>Navi frame width in pixels. See <tt>themes/themename/layout.inc.php</tt>.
+ </dd>
+
+ <dt><span id="cfg_NaviBackground">$cfg['NaviBackground']</span> string [valid css code for background]<br />
+ <span id="cfg_MainBackground">$cfg['MainBackground']</span> string [valid css code for background]
+ </dt>
+ <dd>The background styles used for both the frames.
+ See <tt>themes/themename/layout.inc.php</tt>.</dd>
+
+ <dt id="cfg_NaviPointerBackground">$cfg['NaviPointerBackground'] string [valid css code for background]<br />
+ <span id="cfg_NaviPointerColor">$cfg['NaviPointerColor']</span> string [valid css color]</dt>
+ <dd>The style used for the pointer in the navi frame.
+ See <tt>themes/themename/layout.inc.php</tt>.</dd>
+
+ <dt id="cfg_NaviDatabaseNameColor">$cfg['NaviDatabaseNameColor'] string [valid css code]<br />
+ </dt>
+ <dd>The color used for the database name in the navi frame.
+ See <tt>themes/themename/layout.inc.php</tt>.</dd>
+
+ <dt id="cfg_LeftPointerEnable">$cfg['LeftPointerEnable'] boolean</dt>
+ <dd>A value of <tt>TRUE</tt> activates the navi pointer (when LeftFrameLight
+ is <tt>FALSE</tt>).</dd>
+
+ <dt id="cfg_Border">$cfg['Border'] integer</dt>
+ <dd>The size of a table's border. See <tt>themes/themename/layout.inc.php</tt>.
+ </dd>
+
+ <dt id="cfg_ThBackground">$cfg['ThBackground'] string [valid css code for background]<br />
+ <span id="cfg_ThColor">$cfg['ThColor']</span> string [valid css color]</dt>
+ <dd>The style used for table headers. See
+ <tt>themes/themename/layout.inc.php</tt>.</dd>
+
+ <dt id="cfg_BgcolorOne">$cfg['BgOne'] string [HTML color]</dt>
+ <dd>The color (HTML) #1 for table rows. See <tt>themes/themename/layout.inc.php</tt>.
+ </dd>
+
+ <dt id="cfg_BgcolorTwo">$cfg['BgTwo'] string [HTML color]</dt>
+ <dd>The color (HTML) #2 for table rows. See <tt>themes/themename/layout.inc.php</tt>.
+ </dd>
+
+ <dt><span id="cfg_BrowsePointerBackground">$cfg['BrowsePointerBackground'] </span>string [HTML color]<br />
+ <span id="cfg_BrowsePointerColor">$cfg['BrowsePointerColor'] </span>string [HTML color]<br />
+ <span id="cfg_BrowseMarkerBackground">$cfg['BrowseMarkerBackground'] </span>string [HTML color]<br />
+ <span id="cfg_BrowseMarkerColor">$cfg['BrowseMarkerColor'] </span>string [HTML color]
+ </dt>
+ <dd>The colors (HTML) uses for the pointer and the marker in browse mode.<br />
+ The former feature highlights the row over which your mouse is passing
+ and the latter lets you visually mark/unmark rows by clicking on
+ them.<br />
+ See <tt>themes/themename/layout.inc.php</tt>.</dd>
+
+
+ <dt id="cfg_FontFamily">$cfg['FontFamily'] string</dt>
+ <dd>You put here a valid CSS font family value, for example
+ <tt>arial, sans-serif</tt>.<br />
+ See <tt>themes/themename/layout.inc.php</tt>.</dd>
+
+ <dt id="cfg_FontFamilyFixed">$cfg['FontFamilyFixed'] string</dt>
+ <dd>You put here a valid CSS font family value, for example
+ <tt>monospace</tt>. This one is used in textarea.<br />
+ See <tt>themes/themename/layout.inc.php</tt>.</dd>
+
+ <dt id="cfg_BrowsePointerEnable">$cfg['BrowsePointerEnable'] boolean</dt>
+ <dd>Whether to activate the browse pointer or not.</dd>
+
+ <dt id="cfg_BrowseMarkerEnable">$cfg['BrowseMarkerEnable'] boolean</dt>
+ <dd>Whether to activate the browse marker or not.</dd>
+
+ <dt><span id="cfg_TextareaCols">$cfg['TextareaCols'] </span>integer<br />
+ <span id="cfg_TextareaRows">$cfg['TextareaRows'] </span>integer<br />
+ <span id="cfg_CharTextareaCols">$cfg['CharTextareaCols'] </span>integer<br />
+ <span id="cfg_CharTextareaRows">$cfg['CharTextareaRows'] </span>integer
+ </dt>
+ <dd>Number of columns and rows for the textareas.<br />
+ This value will be emphasized (*2) for <abbr title="structured query language">SQL</abbr> query textareas and (*1.25) for
+ <abbr title="structured query language">SQL</abbr> textareas inside the query window.<br />
+ The Char* values are used for CHAR and VARCHAR editing (if configured
+ via <a href="#cfg_CharEditing">$cfg['CharEditing']</a>).</dd>
+
+ <dt><span id="cfg_LongtextDoubleTextarea">$cfg['LongtextDoubleTextarea'] </span>boolean
+ </dt>
+ <dd>Defines whether textarea for LONGTEXT fields should have double size.</dd>
+
+ <dt><span id="cfg_TextareaAutoSelect">$cfg['TextareaAutoSelect'] </span>boolean
+ </dt>
+ <dd>Defines if the whole textarea of the query box will be selected on
+ click.</dd>
+ <dt id="CtrlArrowsMoving">
+ <span id="cfg_CtrlArrowsMoving">$cfg['CtrlArrowsMoving'] </span>boolean
+ </dt>
+ <dd>Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when
+ editing.</dd>
+
+ <dt id="cfg_LimitChars">$cfg['LimitChars'] integer</dt>
+ <dd>Maximum number of characters showen in any non-numeric field on browse view.
+ Can be turned off by a toggle button on the browse page.</dd>
+
+ <dt><span id="cfg_ModifyDeleteAtLeft">$cfg['ModifyDeleteAtLeft'] </span>boolean
+ <span id="cfg_ModifyDeleteAtRight">$cfg['ModifyDeleteAtRight'] </span>boolean
+ </dt>
+ <dd>Defines the place where modify and delete links would be put when
+ tables contents are displayed (you may have them displayed both at the
+ left and at the right).
+ &quot;Left&quot; and &quot;right&quot; are parsed as &quot;top&quot;
+ and &quot;bottom&quot; with vertical display mode.</dd>
+
+ <dt id="cfg_DefaultDisplay">$cfg['DefaultDisplay'] string
+ <span id="cfg_HeaderFlipType">$cfg['HeaderFlipType'] </span>string
+ </dt>
+ <dd>There are 3 display modes: horizontal, horizontalflipped and vertical.
+ Define which one is displayed by default. The first mode displays each
+ row on a horizontal line, the second rotates the headers by 90
+ degrees, so you can use descriptive headers even though fields only
+ contain small values and still print them out. The vertical mode sorts
+ each row on a vertical lineup.<br /><br />
+
+ The HeaderFlipType can be set to 'css' or 'fake'. When using 'css'
+ the rotation of the header for horizontalflipped is done via CSS. If
+ set to 'fake' PHP does the transformation for you, but of course this
+ does not look as good as CSS.</dd>
+
+ <dt id="DefaultPropDisplay">
+ <span id="cfg_DefaultPropDisplay">$cfg['DefaultPropDisplay']</span>
+ string or integer</dt>
+ <dd>When editing/creating new columns in a table all fields normally get
+ lined up one field a line. (default: 'horizontal'). If you set this to
+ 'vertical' you can have each field lined up vertically beneath each
+ other. You can save up a lot of place on the horizontal direction and
+ no longer have to scroll. If you set this to integer, editing of fewer
+ columns will appear in 'vertical' mode, while editing of more fields
+ still in 'horizontal' mode. This way you can still effectively edit
+ large number of fields, while having full view on few of them.</dd>
+
+ <dt id="cfg_ShowBrowseComments">$cfg['ShowBrowseComments'] boolean<br />
+ <span id="cfg_ShowPropertyComments">$cfg['ShowPropertyComments'] </span>boolean
+ </dt>
+ <dd>By setting the corresponding variable to <tt>TRUE</tt> you can enable the
+ display of column comments in Browse or Property display. In browse
+ mode, the comments are shown inside the header. In property mode,
+ comments are displayed using a CSS-formatted dashed-line below the
+ name of the field. The comment is shown as a tool-tip for that field.
+ </dd>
+
+ <dt id ="cfb_SQLQuery_Edit">$cfg['SQLQuery']['Edit'] boolean</dt>
+ <dd>Whether to display an edit link to change a query in any SQL Query box.</dd>
+
+ <dt id ="cfb_SQLQuery_Explain">$cfg['SQLQuery']['Explain'] boolean</dt>
+ <dd>Whether to display a link to explain a SELECT query in any SQL Query box.</dd>
+
+ <dt id ="cfb_SQLQuery_ShowAsPHP">$cfg['SQLQuery']['ShowAsPHP'] boolean</dt>
+ <dd>Whether to display a link to wrap a query in PHP code in any SQL Query box.</dd>
+
+ <dt id ="cfb_SQLQuery_Validate">$cfg['SQLQuery']['Validate'] boolean</dt>
+ <dd>Whether to display a link to validate a query in any SQL Query box.
+ See also <tt><a href="#cfg_SQLValidator">$cfg_SQLValidator</a></tt>.</dd>
+
+ <dt id ="cfb_SQLQuery_Refresh">$cfg['SQLQuery']['Refresh'] boolean</dt>
+ <dd>Whether to display a link to refresh a query in any SQL Query box.</dd>
+
+ <dt id="cfg_UploadDir">$cfg['UploadDir'] string</dt>
+ <dd>
+ The name of the directory where
+ <abbr title="structured query language">SQL</abbr> files have been
+ uploaded by other means than phpMyAdmin (for example, ftp). Those files
+ are available under a drop-down box when you click the database or
+ table name, then the Import tab.
+ <br /><br />
+
+ If you want different directory for each user, %u will be replaced
+ with username.<br /><br />
+
+ Please note that the file names must have the suffix &quot;.sql&quot;
+ (or &quot;.sql.bz2&quot; or &quot;.sql.gz&quot; if support for
+ compressed formats is enabled).<br /><br />
+
+ This feature is useful when your file is too big to be uploaded via
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr>, or when file
+ uploads are disabled in PHP.<br /><br />
+
+ Please note that if PHP is running in safe mode, this directory must
+ be owned by the same user as the owner of the phpMyAdmin scripts.
+ <br /><br />
+
+ See also <a href="#faq1_16">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 1.16</a> for
+ alternatives.
+ </dd>
+
+ <dt id="cfg_SaveDir">$cfg['SaveDir'] string</dt>
+ <dd>
+ The name of the directory where dumps can be saved.<br /><br />
+
+ If you want different directory for each user, %u will be replaced
+ with username.<br /><br />
+
+ Please note that the directory must exist and has to be writable for
+ the user running webserver.<br /><br />
+
+ Please note that if PHP is running in safe mode, this directory must
+ be owned by the same user as the owner of the phpMyAdmin scripts.
+ </dd>
+
+ <dt id="cfg_TempDir">$cfg['TempDir'] string</dt>
+ <dd>
+ The name of the directory where temporary files can be stored.
+ <br /><br />
+
+ This is needed for native MS Excel export, see
+ <a href="#faq6_23"><abbr title="Frequently Asked Questions">FAQ</abbr>
+ 6.23</a> and to work around limitations of
+ <tt>open_basedir</tt> for uploaded
+ files, see <a href="#faq1_11"><abbr title="Frequently Asked Questions">FAQ</abbr>
+ 1.11</a>.
+ <br /><br />
+
+ If the directory where phpMyAdmin is installed is subject to an
+ <tt>open_basedir</tt> restriction, you need to create a
+ temporary directory in some directory accessible by the web
+ server. However for security reasons, this directory should be outside
+ the tree published by webserver. If you cannot avoid having this
+ directory published by webserver, place at least an empty
+ <tt>index.html</tt> file there, so that directory listing is not
+ possible.
+ <br /><br />
+
+ This directory should have as strict permissions as possible as the only
+ user required to access this directory is the one who runs the
+ webserver. If you have root privileges, simply make this user owner of
+ this directory and make it accessible only by it:
+ <br /><br />
+
+<pre>
+chown www-data:www-data tmp
+chmod 700 tmp
+</pre>
+
+ If you cannot change owner of the directory, you can achieve a similar
+ setup using <abbr title="Access Control List">ACL</abbr>:
+
+<pre>
+chmod 700 tmp
+setfacl -m "g:www-data:rwx" tmp
+setfacl -d -m "g:www-data:rwx" tmp
+</pre>
+
+ If neither of above works for you, you can still make the directory
+ <code>chmod 777</code>, but it might impose risk of other users on
+ system reading and writing data in this directory.
+ </dd>
+
+ <dt id="cfg_Export">$cfg['Export'] array</dt>
+ <dd>
+ In this array are defined default parameters for export, names of
+ items are similar to texts seen on export page, so you can easily
+ identify what they mean.
+ </dd>
+
+ <dt id="cfg_Import">$cfg['Import'] array</dt>
+ <dd>
+ In this array are defined default parameters for import, names of
+ items are similar to texts seen on import page, so you can easily
+ identify what they mean.
+ </dd>
+
+ <dt id="cfg_RepeatCells">$cfg['RepeatCells'] integer</dt>
+ <dd>
+ Repeat the headers every X cells, or 0 to deactivate.
+ </dd>
+
+ <dt id="cfg_EditInWindow">$cfg['EditInWindow'] boolean<br />
+ <span id="cfg_QueryWindowWidth">$cfg['QueryWindowWidth'] </span>integer<br />
+ <span id="cfg_QueryWindowHeight">$cfg['QueryWindowHeight'] </span>integer<br />
+ <span id="cfg_QueryHistoryDB">$cfg['QueryHistoryDB'] </span>boolean<br />
+ <span id="cfg_QueryWindowDefTab">$cfg['QueryWindowDefTab'] </span>string<br />
+ <span id="cfg_QueryHistoryMax">$cfg['QueryHistoryMax'] </span>integer
+ </dt>
+ <dd>
+ All those variables affect the query window feature. A <tt><abbr title="structured query language">SQL</abbr></tt> link
+ or icon is always displayed on the left panel. If JavaScript is enabled in
+ your browser, a click on this opens a distinct query window, which is
+ a direct interface to enter <abbr title="structured query language">SQL</abbr> queries. Otherwise, the right panel
+ changes to display a query box.<br /><br />
+
+ The size of this query window can be customized with
+ <tt>$cfg['QueryWindowWidth']</tt> and <tt>$cfg['QueryWindowWidth']</tt>
+ - both integers for the size in pixels. Note that normally, those
+ parameters will be modified in <tt>layout.inc.php</tt> for the
+ theme you are using.<br /><br />
+
+ If <tt>$cfg['EditInWindow']</tt> is set to true, a click on [Edit]
+ from the results page (in the &quot;Showing Rows&quot; section)
+ opens the query window and puts the current query
+ inside it. If set to false, clicking on the link puts the <abbr title="structured query language">SQL</abbr>
+ query in the right panel's query box.
+ <br /><br />
+ The usage of the JavaScript query window is recommended if you have a
+ JavaScript enabled browser. Basic functions are used to exchange quite
+ a few variables, so most 4th generation browsers should be capable to
+ use that feature. It currently is only tested with Internet Explorer 6
+ and Mozilla 1.x.
+ <br /><br />
+ If <tt>$cfg['QueryHistoryDB']</tt> is set to <tt>TRUE</tt>, all your Queries are logged
+ to a table, which has to be created by you (see <a
+ href="#history" class="configrule">$cfg['Servers'][$i]['history']</a>). If set to FALSE,
+ all your queries will be appended to the form, but only as long as
+ your window is opened they remain saved.
+ <br /><br />
+ When using the JavaScript based query window, it will always get
+ updated when you click on a new table/db to browse and will focus if
+ you click on "Edit <abbr title="structured query language">SQL</abbr>" after using a query. You can suppress updating
+ the query window by checking the box "Do not overwrite this query from
+ outside the window" below the query textarea. Then you can browse
+ tables/databases in the background without losing the contents of the
+ textarea, so this is especially useful when composing a query with
+ tables you first have to look in. The checkbox will get automatically
+ checked whenever you change the contents of the textarea. Please
+ uncheck the button whenever you definitely want the query window to
+ get updated even though you have made alterations.
+ <br /><br />
+ If <tt>$cfg['QueryHistoryDB']</tt> is set to <tt>TRUE</tt> you can specify the amount of
+ saved history items using <tt>$cfg['QueryHistoryMax']</tt>.
+ <br /><br />
+ The query window also has a custom tabbed look to group the features.
+ Using the variable <tt>$cfg['QueryWindowDefTab']</tt> you can specify the
+ default tab to be used when opening the query window. It can be set to
+ either 'sql', 'files', 'history' or 'full'.</dd>
+
+ <dt id="cfg_BrowseMIME">$cfg['BrowseMIME'] boolean</dt>
+ <dd>Enable <a href="#transformations">MIME-transformations</a>.</dd>
+
+ <dt id="cfg_MaxExactCount">$cfg['MaxExactCount'] integer</dt>
+ <dd>For InnoDB tables, determines for how large tables phpMyAdmin
+ should get the exact row count using <code>SELECT COUNT</code>.
+ If the approximate row count as returned by
+ <code>SHOW TABLE STATUS</code> is smaller than this value,
+ <code>SELECT COUNT</code> will be used, otherwise the approximate
+ count will be used.
+ </dd>
+ <dt id="cfg_MaxExactCountViews">$cfg['MaxExactCountViews'] integer</dt>
+ <dd>For VIEWs, since obtaining the exact count could have an
+ impact on performance, this value is the maximum to be displayed, using
+ a <code>SELECT COUNT ... LIMIT</code>. The default value of 0 bypasses
+ any row counting.
+ </dd>
+
+ <dt id="wysiwyg">
+ <span id="cfg_WYSIWYG-PDF">$cfg['WYSIWYG-PDF'] </span>boolean</dt>
+ <dd>Utilizes a WYSIWYG editing control to easily place elements of a
+ <abbr title="Portable Document Format">PDF</abbr>
+ page. By clicking on the button 'toggle scratchboard' on the page
+ where you edit x/y coordinates of those elements you can activate a
+ scratchboard where all your elements are placed. By clicking on an
+ element, you can move them around in the pre-defined area and the x/y
+ coordinates will get updated dynamically. Likewise, when entering a
+ new position directly into the input field, the new position in the
+ scratchboard changes after your cursor leaves the input field.<br />
+ You have to click on the 'OK'-button below the tables to save the new
+ positions. If you want to place a new element, first add it to the
+ table of elements and then you can drag the new element around.<br />
+ By changing the paper size and the orientation you can change the size
+ of the scratchboard as well. You can do so by just changing the
+ dropdown field below, and the scratchboard will resize automatically,
+ without interfering with the current placement of the elements.<br />
+ If ever an element gets out of range you can either enlarge the paper
+ size or click on the 'reset' button to place all elements below each
+ other.<br />
+ <b>NOTE:</b> You have to use a recent browser like IE6 or Mozilla to
+ get this control to work. The basic Drag&amp;Drop script functionality
+ was kindly borrowed from www.youngpup.net and is underlying so
+ specific license.</dd>
+
+ <dt id="cfg_NaturalOrder">$cfg['NaturalOrder'] boolean</dt>
+ <dd>Sorts database and table names according to natural order (for example,
+ t1, t2, t10). Currently implemented in the left panel (Light mode)
+ and in Database view, for the table list.</dd>
+
+ <dt id="cfg_InitialSlidersState">$cfg['InitialSlidersState'] string</dt>
+ <dd>If set to <tt>'closed'</tt>, the visual sliders are initially in a
+ closed state. A value of 'open' does the reverse.</dd>
+
+ <dt id="cfg_TitleTable">$cfg['TitleTable'] string</dt>
+ <dt id="cfg_TitleDatabase">$cfg['TitleDatabase'] string</dt>
+ <dt id="cfg_TitleServer">$cfg['TitleServer'] string</dt>
+ <dt id="cfg_TitleDefault">$cfg['TitleDefault'] string</dt>
+ <dd>Allows you to specify window's title bar. Following magic string can
+ be used to get special values:
+ <dl>
+ <dt><code>@HTTP_HOST@</code></dt>
+ <dd>HTTP host that runs phpMyAdmin</dd>
+ <dt><code>@SERVER@</code></dt>
+ <dd>MySQL server name</dd>
+ <dt><code>@VERBOSE@</code></dt>
+ <dd>Verbose MySQL server name as defined in <a href="#cfg_Servers_verbose">server configuration</a></dd>
+ <dt><code>@VSERVER@</code></dt>
+ <dd>Verbose MySQL server name if set, otherwise normal</dd>
+ <dt><code>@DATABASE@</code></dt>
+ <dd>Currently opened database</dd>
+ <dt><code>@TABLE@</code></dt>
+ <dd>Currently opened table</dd>
+ <dt><code>@PHPMYADMIN@</code></dt>
+ <dd>phpMyAdmin with version</dd>
+ </dl>
+ </dd>
+
+ <dt id="cfg_ErrorIconic">$cfg['ErrorIconic'] boolean</dt>
+ <dd>Uses icons for warnings, errors and informations.</dd>
+
+ <dt id="cfg_MainPageIconic">$cfg['MainPageIconic'] boolean</dt>
+ <dd>Uses icons on main page in lists and menu tabs.</dd>
+
+ <dt id="cfg_ReplaceHelpImg">$cfg['ReplaceHelpImg'] boolean</dt>
+ <dd>Shows a help button instead of the &quot;Documentation&quot; message.
+ </dd>
+
+ <dt id="cfg_ThemePath">$cfg['ThemePath'] string</dt>
+ <dd>If theme manager is active, use this as the path of the subdirectory
+ containing all the themes.</dd>
+
+ <dt id="cfg_ThemeManager">$cfg['ThemeManager'] boolean</dt>
+ <dd>Enables user-selectable themes. See <a href="#faqthemes">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 2.7</a>.</dd>
+
+ <dt id="cfg_ThemeDefault">$cfg['ThemeDefault'] string</dt>
+ <dd>The default theme (a subdirectory under <tt>cfg['ThemePath']</tt>).</dd>
+
+ <dt id="cfg_ThemePerServer">$cfg['ThemePerServer'] boolean</dt>
+ <dd>Whether to allow different theme for each server.</dd>
+
+ <dt id="cfg_DefaultQueryTable">$cfg['DefaultQueryTable'] string<br />
+ <span id="cfg_DefaultQueryDatabase">$cfg['DefaultQueryDatabase']</span> string
+ </dt>
+ <dd>Default queries that will be displayed in query boxes when user didn't
+ specify any. Use %d for database name, %t for table name and %f for a
+ comma separated list of field names. Note that %t and %f are only
+ applicable to <tt>$cfg['DefaultQueryTable']</tt>.</dd>
+
+ <dt id="cfg_SQP_fmtType">$cfg['SQP']['fmtType'] string [<tt>html</tt>|<tt>none</tt>]</dt>
+ <dd>
+ The main use of the new <abbr title="structured query language">SQL</abbr> Parser is to pretty-print <abbr title="structured query language">SQL</abbr> queries. By
+ default we use HTML to format the query, but you can disable this by
+ setting this variable to <tt>'none'</tt>.
+ </dd>
+
+ <dt id="cfg_SQP_fmtInd">$cfg['SQP']['fmtInd'] float<br />
+ <span id="cfg_SQP">$cfg['SQP']['fmtIndUnit']</span> string [<tt>em</tt>|<tt>px</tt>|<tt>pt</tt>|<tt>ex</tt>]</dt>
+ <dd>For the pretty-printing of <abbr title="structured query language">SQL</abbr> queries, under some cases the part of a
+ query inside a bracket is indented. By changing
+ <tt>$cfg['SQP']['fmtInd']</tt> you can change the amount of this indent.
+ <br />Related in purpose is <tt>$cfg['SQP']['fmtIndUnit']</tt> which
+ specifies the units of the indent amount that you specified. This is
+ used via stylesheets.</dd>
+
+ <dt id="cfg_SQP_fmtColor">$cfg['SQP']['fmtColor'] array of string tuples</dt>
+ <dd>This array is used to define the colours for each type of element of
+ the pretty-printed <abbr title="structured query language">SQL</abbr> queries. The tuple format is<br />
+ <i>class</i> =&gt; [<i>HTML colour code</i> | <i>empty string</i>]<br />
+ If you specify an empty string for the color of a class, it is ignored
+ in creating the stylesheet.
+ You should not alter the class names, only the colour strings.<br />
+ <b>Class name key:</b>
+ <ul><li><b>comment</b> Applies to all comment sub-classes</li>
+ <li><b>comment_mysql</b> Comments as <tt>"#...\n"</tt></li>
+ <li><b>comment_ansi</b> Comments as <tt>"-- ...\n"</tt></li>
+ <li><b>comment_c</b> Comments as <tt>"/*...*/"</tt></li>
+ <li><b>digit</b> Applies to all digit sub-classes</li>
+ <li><b>digit_hex</b> Hexadecimal numbers</li>
+ <li><b>digit_integer</b> Integer numbers</li>
+ <li><b>digit_float</b> Floating point numbers</li>
+ <li><b>punct</b> Applies to all punctuation sub-classes</li>
+ <li><b>punct_bracket_open_round</b> Opening brackets<tt>"("</tt></li>
+ <li><b>punct_bracket_close_round</b> Closing brackets <tt>")"</tt></li>
+ <li><b>punct_listsep</b> List item Separator <tt>","</tt></li>
+ <li><b>punct_qualifier</b> Table/Column Qualifier <tt>"."</tt> </li>
+ <li><b>punct_queryend</b> End of query marker <tt>";"</tt></li>
+ <li><b>alpha</b> Applies to all alphabetic classes</li>
+ <li><b>alpha_columnType</b> Identifiers matching a column type</li>
+ <li><b>alpha_columnAttrib</b> Identifiers matching a database/table/column attribute</li>
+ <li><b>alpha_functionName</b> Identifiers matching a MySQL function name</li>
+ <li><b>alpha_reservedWord</b> Identifiers matching any other reserved word</li>
+ <li><b>alpha_variable</b> Identifiers matching a <abbr title="structured query language">SQL</abbr> variable <tt>"@foo"</tt></li>
+ <li><b>alpha_identifier</b> All other identifiers</li>
+ <li><b>quote</b> Applies to all quotation mark classes</li>
+ <li><b>quote_double</b> Double quotes <tt>"</tt></li>
+ <li><b>quote_single</b> Single quotes <tt>'</tt></li>
+ <li><b>quote_backtick</b> Backtick quotes <tt>`</tt></li>
+ </ul>
+ </dd>
+
+ <dt id="cfg_SQLValidator">$cfg['SQLValidator'] boolean</dt>
+ <dd><dl><dt id="cfg_SQLValidator_use">$cfg['SQLValidator']['use'] boolean</dt>
+ <dd>phpMyAdmin now supports use of the <a href="http://developer.mimer.com/validator/index.htm">Mimer <abbr title="structured query language">SQL</abbr> Validator</a> service,
+ as originally published on
+ <a href="http://developers.slashdot.org/article.pl?sid=02/02/19/1720246">Slashdot</a>.
+ <br />
+ For help in setting up your system to use the service, see the
+ <a href="#faqsqlvalidator"><abbr title="Frequently Asked Questions">FAQ</abbr> 6.14</a>.
+ </dd>
+
+ <dt id="cfg_SQLValidator_username">$cfg['SQLValidator']['username'] string<br />
+ <span id="cfg_SQLValidator_password">$cfg['SQLValidator']['password']</span> string</dt>
+ <dd>The SOAP service allows you to log in with <tt>anonymous</tt>
+ and any password, so we use those by default. Instead, if
+ you have an account with them, you can put your login details
+ here, and it will be used in place of the anonymous login.</dd>
+ </dl>
+ </dd>
+
+ <dt id="cfg_DBG">$cfg['DBG']</dt>
+ <dd><b>DEVELOPERS ONLY!</b></dd>
+
+ <dt id="cfg_DBG_enable_sql">$cfg['DBG']['sql'] boolean</dt>
+ <dd><b>DEVELOPERS ONLY!</b><br />
+ Enable logging queries and execution times to be displayed in the bottom
+ of main page (right frame).</dd>
+
+ <dt id="cfg_DBG_enable_php">$cfg['DBG']['php'] boolean</dt>
+ <dd><b>DEVELOPERS ONLY!</b><br />
+ Enable the DBG extension for debugging phpMyAdmin. Required for profiling
+ the code.<br />
+ For help in setting up your system to this, see the
+ <a href="#developersdbg">Developers</a> section.</dd>
+
+ <dt id="cfg_DBG_profile_enable">$cfg['DBG']['profile']['enable'] boolean</dt>
+ <dd><b>DEVELOPERS ONLY!</b><br />
+ Enable profiling support for phpMyAdmin. This will append a chunk of data
+ to the end of every page displayed in the main window with profiling
+ statistics for that page.<br />
+ You may need to increase the maximum execution time for this to
+ complete successfully.<i>Profiling was removed from the code for
+ version 2.9.0 due to licensing issues.</i></dd>
+
+ <dt id="cfg_DBG_profile_threshold">$cfg['DBG']['profile']['threshold'] float (units in milliseconds)</dt>
+ <dd><b>DEVELOPERS ONLY!</b><br />
+ When profiling data is displayed, this variable controls the threshold of
+ display for any profiling data, based on the average time each time has
+ taken. If it is over the threshold it is displayed, otherwise it is not
+ displayed. This takes a value in milliseconds. In most cases you don't need
+ to edit this.</dd>
+
+ <dt id="cfg_ColumnTypes">$cfg['ColumnTypes'] array</dt>
+ <dd>All possible types of a MySQL column. In most cases you don't need to
+ edit this.</dd>
+
+ <dt id="cfg_AttributeTypes">$cfg['AttributeTypes'] array</dt>
+ <dd>Possible attributes for fields. In most cases you don't need to edit
+ this.</dd>
+
+ <dt id="cfg_Functions">$cfg['Functions'] array</dt>
+ <dd>A list of functions MySQL supports. In most cases you don't need to
+ edit this.</dd>
+
+ <dt id="cfg_RestrictColumnTypes">$cfg['RestrictColumnTypes'] array</dt>
+ <dd>Mapping of column types to meta types used for preferring displayed
+ functions. In most cases you don't need to edit this.</dd>
+
+ <dt id="cfg_RestrictFunctions">$cfg['RestrictFunctions'] array</dt>
+ <dd>Functions preferred for column meta types as defined in
+ <a href="#cfg_RestrictColumnTypes" class="configrule">$cfg['RestrictColumnTypes']</a>. In most cases you don't need
+ to edit this.</dd>
+
+ <dt id="cfg_DefaultFunctions">$cfg['DefaultFunctions'] array</dt>
+ <dd>Functions selected by default when inserting/changing row, Functions
+ are defined for meta types from
+ <a href="#cfg_RestrictColumnTypes" class="configrule">$cfg['RestrictColumnTypes']</a> and for
+ <code>first_timestamp</code>, which is used for first timestamp column
+ in table.</dd>
+
+ <dt id="cfg_NumOperators">$cfg['NumOperators'] array</dt>
+ <dd>Operators available for search operations on numeric and date fields.
+ </dd>
+
+ <dt id="cfg_TextOperators">$cfg['TextOperators'] array</dt>
+ <dd>Operators available for search operations on character fields.
+ Note that we put <code>LIKE</code> by default instead of
+ <code>LIKE %...%</code>, to avoid unintended performance problems
+ in case of huge tables.</dd>
+
+ <dt id="cfg_EnumOperators">$cfg['EnumOperators'] array</dt>
+ <dd>Operators available for search operations on enum fields.</dd>
+
+ <dt id="cfg_NullOperators">$cfg['NullOperators'] array</dt>
+ <dd>Additional operators available for search operations when the
+ field can be null.</dd>
+
+</dl>
+
+<!-- TRANSFORMATIONS -->
+<h2 id="transformations">Transformations</h2>
+
+<ol><li><a href="#transformationsintro">Introduction</a></li>
+ <li><a href="#transformationshowto">Usage</a></li>
+ <li><a href="#transformationsfiles">File structure</a></li>
+</ol>
+
+<h3 id="transformationsintro">1. Introduction</h3>
+
+<p> To enable transformations, you have to setup the <tt>column_info</tt> table
+ and the proper directives. Please see the <a href="#config">Configuration
+ section</a> on how to do so.</p>
+
+<p> You can apply different transformations to the contents of each field. The
+ transformation will take the content of each field and transform it with
+ certain rules defined in the selected transformation.</p>
+
+<p> Say you have a field 'filename' which contains a filename. Normally you would
+ see in phpMyAdmin only this filename. Using transformations you can transform
+ that filename into a HTML link, so you can click inside of the phpMyAdmin
+ structure on the field's link and will see the file displayed in a new browser
+ window. Using transformation options you can also specify strings to
+ append/prepend to a string or the format you want the output stored in.</p>
+
+<p> For a general overview of all available transformations and their options,
+ you can consult your
+ <i>&lt;www.your-host.com&gt;/&lt;your-install-dir&gt;/transformation_overview.php</i>
+ installation.</p>
+
+<p> For a tutorial on how to effectively use transformations, see our
+ <a href="http://www.phpmyadmin.net/home_page/docs.php">Link section</a> on
+ the official phpMyAdmin homepage.</p>
+
+<h3 id="transformationshowto">2. Usage</h3>
+
+<p> Go to your <i>tbl_structure.php</i> page (i.e. reached through
+ clicking on the 'Structure' link for a table). There click on
+ &quot;Change&quot; (or change icon) and there you will see three new fields at
+ the end of the line. They are called 'MIME-type', 'Browser transformation' and
+ 'Transformation options'.</p>
+
+ <ul><li>The field 'MIME-type' is a drop-down field. Select the MIME-type
+ that corresponds to the column's contents. Please note that
+ transformations are inactive as long as no MIME-type is selected.</li>
+
+ <li>The field 'Browser transformation' is a drop-down field. You can choose from a
+ hopefully growing amount of pre-defined transformations. See below for information on
+ how to build your own transformation.<br />
+
+ There are global transformations and mimetype-bound transformations. Global transformations
+ can be used for any mimetype. They will take the mimetype, if necessary, into regard.
+ Mimetype-bound transformations usually only operate on a certain mimetype. There are
+ transformations which operate on the main mimetype (like 'image'), which will most likely
+ take the subtype into regard, and those who only operate on a
+ specific subtype (like 'image/jpeg').<br />
+
+ You can use transformations on mimetypes for which the function was not defined for. There
+ is no security check for you selected the right transformation, so take care of what the
+ output will be like.</li>
+
+ <li>The field 'Transformation options' is a free-type textfield. You have to enter
+ transform-function specific options here. Usually the transforms can operate with default
+ options, but it is generally a good idea to look up the overview to see which options are
+ necessary.<br />
+
+ Much like the ENUM/SET-Fields, you have to split up several options using the format
+ 'a','b','c',...(NOTE THE MISSING BLANKS). This is because internally the options will be
+ parsed as an array, leaving the first value the first element in the array, and so
+ forth.<br />
+
+ If you want to specify a MIME character set you can define it in the transformation_options.
+ You have to put that outside of the pre-defined options of the specific mime-transform,
+ as the last value of the set. Use the format "'; charset=XXX'". If you use a transform,
+ for which you can specify 2 options and you want to append a character set, enter "'first
+ parameter','second parameter','charset=us-ascii'". You can, however use the defaults for
+ the parameters: "'','','charset=us-ascii'".</li>
+</ul>
+
+<h3 id="transformationsfiles">3. File structure</h3>
+
+<p> All mimetypes and their transformations are defined through single files in
+ the directory 'libraries/transformations/'.</p>
+
+<p> They are stored in files to ease up customization and easy adding of new
+ transformations.</p>
+
+<p> Because the user cannot enter own mimetypes, it is kept sure that transformations
+ always work. It makes no sense to apply a transformation to a mimetype, the
+ transform-function doesn't know to handle.</p>
+
+<p> One can, however, use empty mime-types and global transformations which should work
+ for many mimetypes. You can also use transforms on a different mimetype they where built
+ for, but pay attention to option usage as well as what the transformation does to your
+ field.</p>
+
+<p> There is a basic file called '<i>global.inc.php</i>'. This function can be included by
+ any other transform function and provides some basic functions.</p>
+
+<p> There are 5 possible file names:</p>
+
+<ol><li>A mimetype+subtype transform:<br /><br />
+
+ <tt>[mimetype]_[subtype]__[transform].inc.php</tt><br /><br />
+
+ Please not that mimetype and subtype are separated via '_', which shall
+ not be contained in their names. The transform function/filename may
+ contain only characters which cause no problems in the file system as
+ well as the PHP function naming convention.<br /><br />
+
+ The transform function will the be called
+ '<tt>PMA_transform_[mimetype]_[subtype]__[transform]()</tt>'.<br /><br />
+
+ <b>Example:</b><br /><br />
+
+ <tt>text_html__formatted.inc.php</tt><br />
+ <tt>PMA_transform_text_html__formatted()</tt></li>
+
+ <li>A mimetype (w/o subtype) transform:<br /><br />
+
+ <tt>[mimetype]__[transform].inc.php</tt><br /><br />
+
+ Please note that there are no single '_' characters.
+ The transform function/filename may contain only characters which cause
+ no problems in the file system as well as the PHP function naming
+ convention.<br /><br />
+
+ The transform function will the be called
+ '<tt>PMA_transform_[mimetype]__[transform]()</tt>'.<br /><br />
+
+ <b>Example:</b><br /><br />
+
+ <tt>text__formatted.inc.php</tt><br />
+ <tt>PMA_transform_text__formatted()</tt></li>
+
+ <li>A mimetype+subtype without specific transform function<br /><br />
+
+ <tt>[mimetype]_[subtype].inc.php</tt><br /><br />
+
+ Please note that there are no '__' characters in the filename. Do not
+ use special characters in the filename causing problems with the file
+ system.<br /><br />
+
+ No transformation function is defined in the file itself.<br /><br />
+
+ <b>Example:</b><br /><br />
+
+ <tt>text_plain.inc.php</tt><br />
+ (No function)</li>
+
+ <li>A mimetype (w/o subtype) without specific transform function<br /><br />
+
+ <tt>[mimetype].inc.php</tt><br /><br />
+
+ Please note that there are no '_' characters in the filename. Do not use
+ special characters in the filename causing problems with the file system.
+ <br /><br />
+
+ No transformation function is defined in the file itself.<br /><br />
+
+ <b>Example:</b><br /><br />
+
+ <tt>text.inc.php</tt><br />
+ (No function)</li>
+
+ <li>A global transform function with no specific mimetype<br /><br />
+
+ <tt>global__[transform].inc.php</tt><br /><br />
+
+ The transform function will the be called
+ '<tt>PMA_transform_global__[transform]()</tt>'.<br /><br />
+
+ <b>Example:</b><br /><br />
+
+ <tt>global__formatted</tt><br />
+ <tt>PMA_transform_global__formatted()</tt></li>
+</ol>
+
+<p> So generally use '_' to split up mimetype and subtype, and '__' to provide a
+ transform function.</p>
+
+<p> All filenames containing no '__' in themselves are not shown as valid transform
+ functions in the dropdown.</p>
+
+<p> Please see the libraries/transformations/TEMPLATE file for adding your own transform
+ function. See the libraries/transformations/TEMPLATE_MIMETYPE for adding a mimetype
+ without a transform function. Also note the introduction of a function description in
+ the language files. For each function a $strTransformation_[filename without .inc.php]
+ has to exist.</p>
+
+<p> You can use the template generator to generate new functions and entries in the
+ language file.</p>
+
+<p> To create a new transform function please see
+ <tt>libraries/transformations/template_generator.sh</tt>.
+ To create a new, empty mimetype please see
+ <tt>libraries/transformations/template_generator_mimetype.sh</tt>.</p>
+
+<p> A transform function always gets passed three variables:</p>
+
+<ol><li><b>$buffer</b> - Contains the text inside of the column. This is the text,
+ you want to transform.</li>
+ <li><b>$options</b> - Contains any user-passed options to a transform function
+ as an array.</li>
+ <li><b>$meta</b> - Contains an object with field information to your column.
+ The data is drawn from the output of the
+ <a href="http://www.php.net/mysql_fetch_field">mysql_fetch_field()</a>
+ function. This means, all object properties described on the
+ <a href="http://www.php.net/mysql_fetch_field">manual page</a> are
+ available in this variable and can be used to transform a field accordingly
+ to unsigned/zerofill/not_null/... properties.<br />
+ The $meta-&gt;mimetype variable contains the original MIME-type of the
+ field (i.e. 'text/plain', 'image/jpeg' etc.)</li>
+</ol>
+
+<!-- FAQ -->
+<h2 id="faq">FAQ - Frequently Asked Questions</h2>
+
+<ol><li><a href="#faqserver">Server</a></li>
+ <li><a href="#faqconfig">Configuration</a></li>
+ <li><a href="#faqlimitations">Known limitations</a></li>
+ <li><a href="#faqmultiuser">ISPs, multi-user installations</a></li>
+ <li><a href="#faqbrowsers">Browsers or client <abbr title="operating system">OS</abbr></a></li>
+ <li><a href="#faqusing">Using phpMyAdmin</a></li>
+ <li><a href="#faqproject">phpMyAdmin project</a></li>
+ <li><a href="#faqsecurity">Security</a></li>
+</ol>
+
+<p> Please have a look at our
+ <a href="http://www.phpmyadmin.net/home_page/docs.php">Link section</a> on
+ the official phpMyAdmin homepage for in-depth coverage of phpMyAdmin's
+ features and or interface.</p>
+
+<h3 id="faqserver">Server</h3>
+
+<h4 id="faq1_1">
+ <a href="#faq1_1">1.1 I'm running PHP 4+ and my server is crashing each time a specific
+ action is required or phpMyAdmin sends a blank page or a page full of
+ cryptic characters to my browser, what can I do?</a></h4>
+
+<p> There are some known PHP bugs with output buffering and compression.<br />
+ Try to set the <a href="#cfg_OBGzip" class="configrule">$cfg['OBGzip']</a>
+ directive to <tt>FALSE</tt> in your <i>config.inc.php</i> file and the
+ <tt>zlib.output_compression</tt> directive to <tt>Off</tt> in your php
+ configuration file.<br />
+ Furthermore, we know about such problems connected to the release
+ candidates of PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with
+ MS Internet Explorer. Please upgrade to the release version PHP 4.2.0.</p>
+
+<h4 id="faq1_2">
+ <a href="#faq1_2">1.2 My Apache server crashes when using phpMyAdmin.</a></h4>
+
+<p> You should first try the latest versions of Apache (and possibly MySQL).<br />
+ See also the
+ <a href="#faq1_1"><abbr title="Frequently Asked Questions">FAQ</abbr> 1.1</a>
+ entry about PHP bugs with output buffering.<br />
+ If your server keeps crashing, please ask for help in the various Apache
+ support groups.</p>
+
+<h4 id="faq1_3">
+ <a href="#faq1_3">1.3 I'm running phpMyAdmin with "cookie" authentication
+ mode under PHP 4.2.0 or 4.2.1 loaded as an Apache 2 module but can't enter the
+ script: I'm always displayed the login screen.</a></h4>
+
+<p> This is a known PHP bug (see this
+ <a href="http://bugs.php.net/bug.php?id=16626">bug report</a>) from the
+ official PHP bug database. It means there is and won't be any phpMyAdmin
+ fix against it because there is no way to code a fix.</p>
+
+<h4 id="faq1_4">
+ <a href="#faq1_4">1.4 Using phpMyAdmin on
+ <abbr title="Internet Information Services">IIS</abbr>, I'm displayed the
+ error message: &quot;The specified <abbr title="Common Gateway Interface">CGI</abbr>
+ application misbehaved by not returning a complete set of
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> headers ...&quot;.</a>
+</h4>
+
+<p> You just forgot to read the <i>install.txt</i> file from the php distribution.
+ Have a look at the last message in this
+ <a href="http://bugs.php.net/bug.php?id=12061">bug report</a> from the
+ official PHP bug database.</p>
+
+<h4 id="faq1_5">
+ <a href="#faq1_5">1.5 Using phpMyAdmin on
+ <abbr title="Internet Information Services">IIS</abbr>, I'm facing crashes
+ and/or many error messages with the
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> or advanced authentication
+ mode.</a></h4>
+
+<p> This is a known problem with the PHP
+ <abbr title="Internet Server Application Programming Interface">ISAPI</abbr>
+ filter: it's not so stable. Please use instead the cookie authentication mode.
+</p>
+
+<h4 id="faq1_6">
+ <a href="#faq1_6">1.6 I can't use phpMyAdmin on PWS: nothing is displayed!</a></h4>
+
+<p> This seems to be a PWS bug. Filippo Simoncini found a workaround (at this
+ time there is no better fix): remove or comment the <tt>DOCTYPE</tt>
+ declarations (2 lines) from the scripts <i>libraries/header.inc.php</i>,
+ <i>libraries/header_printview.inc.php</i>, <i>index.php</i>,
+ <i>navigation.php</i> and <i>libraries/common.lib.php</i>.</p>
+
+<h4 id="faq1_7">
+ <a href="#faq1_7">1.7 How can I GZip or Bzip a dump or a
+ <abbr title="comma separated values">CSV</abbr> export? It does not seem to
+ work.</a></h4>
+
+<p> These features are based on the <tt>gzencode()</tt> and <tt>bzcompress()</tt>
+ PHP functions to be more independent of the platform (Unix/Windows, Safe Mode
+ or not, and so on). So, you must have PHP4&nbsp;&gt;=&nbsp;4.0.4 and Zlib/Bzip2
+ support (<tt>--with-zlib</tt> and <tt>--with-bz2</tt>).<br />
+ We faced PHP crashes when trying to download a dump with MS Internet
+ Explorer when phpMyAdmin is run with a release candidate of PHP 4.2.0. In
+ this case you should switch to the release version of PHP 4.2.0.</p>
+
+<h4 id="faq1_8">
+ <a href="#faq1_8">1.8 I cannot insert a text file in a table, and I get
+ an error about safe mode being in effect.</a></h4>
+
+<p> Your uploaded file is saved by PHP in the &quot;upload dir&quot;, as
+ defined in <i>php.ini</i> by the variable <tt>upload_tmp_dir</tt> (usually
+ the system default is <i>/tmp</i>).<br />
+ We recommend the following setup for Apache servers running in safe mode,
+ to enable uploads of files while being reasonably secure:</p>
+
+<ul><li>create a separate directory for uploads: <tt>mkdir /tmp/php</tt></li>
+ <li>give ownership to the Apache server's user.group:
+ <tt>chown apache.apache /tmp/php</tt></li>
+ <li>give proper permission: <tt>chmod 600 /tmp/php</tt></li>
+ <li>put <tt>upload_tmp_dir = /tmp/php</tt> in <i>php.ini</i></li>
+ <li>restart Apache</li>
+</ul>
+
+<h4 id="faq1_9">
+ <a href="#faq1_9">1.9 I'm having troubles when uploading files. In
+ general file uploads don't work on my system and uploaded files have a
+ <tt>Content-Type:</tt> header in the first line.</a></h4>
+
+<p> It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0
+ and you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you?<br />
+ So the problem is that this package has a serious bug that was corrected
+ ages ago in PHP (2001-01-28: see
+ <a href="http://www.php.net/bugs.php?id=8966">PHP's bug tracking system</a>
+ for more details). The problem is that the bugged package is still
+ available though it was corrected (see
+ <a href="http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=24933">RedHat's BugZilla</a>
+ for more details).<br />
+ So please download
+ <a href="http://www.redhat.com/swr/i386/php-4.0.4pl1-9.i386.html">the fixed package (4.0.4pl1-9)</a>
+ and the problem should go away.<br />
+ And that fixes the \r\n problem with file uploads!</p>
+
+<h4 id="faq1_10">
+ <a href="#faq1_10">1.10 I'm having troubles when uploading files with
+ phpMyAdmin running on a secure server. My browser is Internet Explorer and
+ I'm using the Apache server.</a></h4>
+
+<p> As suggested by &quot;Rob M&quot; in the phpWizard forum, add this line to
+ your <i>httpd.conf</i>:</p>
+
+ <pre>SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown</pre>
+
+<p> It seems to clear up many problems between Internet Explorer and SSL.</p>
+
+<h4 id="faq1_11">
+ <a href="#faq1_11">1.11 I get an 'open_basedir restriction' while
+ uploading a file from the query box.</a></h4>
+
+<p> Since version 2.2.4, phpMyAdmin supports servers with open_basedir
+ restrictions. However you need to create temporary directory and
+ configure it as <a href="#cfg_TempDir" class="configrule">$cfg['TempDir']</a>.
+ The uploaded files will be moved there, and after execution of your
+ <abbr title="structured query language">SQL</abbr> commands, removed.</p>
+
+<h4 id="faq1_12">
+ <a href="#faq1_12">1.12 I have lost my MySQL root password, what can I do?</a></h4>
+
+<p> The MySQL manual explains how to
+ <a href="http://www.mysql.com/doc/R/e/Resetting_permissions.html">
+ reset the permissions</a>.</p>
+
+<h4 id="faq1_13">
+ <a href="#faq1_13">1.13 I get an error 'No
+ <abbr title="structured query language">SQL</abbr> query' when trying to
+ execute a bookmark.</a></h4>
+
+<p> If PHP does not have read/write access to its <tt>upload_tmp_dir</tt>, it
+ cannot access the uploaded query.</p>
+
+<h4 id="faq1_14">
+ <a href="#faq1_14">1.14 I get an error 'No
+ <abbr title="structured query language">SQL</abbr> query' when trying to
+ submit a query from the convenient text area.</a></h4>
+
+<p> Check the <tt>post_max_size</tt> directive from your PHP configuration file
+ and try to increase it.</p>
+
+<h4 id="faq1_15">
+ <a href="#faq1_15">1.15 I have problems with <i>mysql.user</i> field names.</a>
+</h4>
+
+<p> In previous MySQL versions, the <tt>User</tt> and <tt>Password</tt> fields
+ were named <tt>user</tt> and <tt>password</tt>. Please modify your field
+ names to align with current standards.</p>
+
+<h4 id="faq1_16">
+ <a href="#faq1_16">1.16 I cannot upload big dump files (memory,
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> or timeout problems).</a>
+</h4>
+
+<p> Starting with version 2.7.0, the import engine has been re&#8211;written and these
+ problems should not occur. If possible, upgrade your phpMyAdmin to the latest version
+ to take advantage of the new import features.</p>
+
+<p> The first things to check (or ask your host provider to check) are the
+ values of <tt>upload_max_filesize</tt>, <tt>memory_limit</tt> and
+ <tt>post_max_size</tt> in the <i>php.ini</i> configuration file.
+ All of these three settings limit the maximum size of data that can be
+ submitted and handled by PHP. One user also said that post_max_size
+ and memory_limit need to be larger than upload_max_filesize.<br /> <br />
+
+ There exist several workarounds if your upload is too big or your
+ hosting provider is unwilling to change the settings:</p>
+
+<ul><li>Look at the <a href="#cfg_UploadDir" class="configrule">$cfg['UploadDir']</a>
+ feature. This allows one to
+ upload a file to the server via scp, ftp, or your favorite file transfer
+ method. PhpMyAdmin is then able to import the files from the temporary
+ directory. More information is available in the <a href="#config">Configuration
+ section</a> of this document.</li>
+ <li>Using a utility (such as <a href="http://www.ozerov.de/bigdump.php">
+ BigDump</a>) to split the files before uploading. We cannot support this
+ or any third party applications, but are aware of users having success
+ with it.</li>
+ <li>If you have shell (command line) access, use MySQL to import the files
+ directly. You can do this by issuing the &quot;source&quot; command from
+ within MySQL: <tt>source <i>filename.sql</i></tt>.</li>
+</ul>
+
+<h4 id="faq1_17">
+ <a id="faqmysqlversions" href="#faq1_17">1.17 Which MySQL versions does phpMyAdmin
+ support?</a></h4>
+
+<p> In phpMyAdmin 3.0.x, versions starting with MySQL 5.0.1 are
+fully supported. phpMyAdmin may connect to your MySQL server
+using PHP's classic
+ <a href="http://php.net/mysql">MySQL extension</a> as well as the
+ <a href="http://php.net/mysqli">improved MySQL extension (MySQLi)</a> that
+ is available in php 5.0.<br />
+ Either way, the developers of both extensions recommend to use the classic
+ extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.<br />
+ When compiling php, we strongly recommend that you manually link the MySQL
+ extension of your choice to a MySQL client library of at least the same
+ minor version since the one that is bundled with some PHP distributions is
+ rather old and might cause problems <a href="#faq1_17a">
+ (see <abbr title="Frequently Asked Questions">FAQ</abbr> 1.17a)</a>.
+ If your webserver is running on a windows system, you might want to try
+ MySQL's
+ <a href="http://dev.mysql.com/downloads/connector/php/">Connector/PHP</a>
+ instead of the MySQL / MySQLi extensions that are bundled with the official
+ php Win32 builds.</p>
+
+<h5 id="faq1_17a">
+ <a href="#faq1_17a">1.17a I cannot connect to the MySQL server. It always returns the error
+ message, &quot;Client does not support authentication protocol requested
+ by server; consider upgrading MySQL client&quot;</a></h5>
+
+<p> You tried to access MySQL with an old MySQL client library. The version of
+ your MySQL client library can be checked in your phpinfo() output.
+ In general, it should have at least the same minor version as your server
+ - as mentioned in <a href="#faq1_17">
+ <abbr title="Frequently Asked Questions">FAQ</abbr> 1.17</a>.<br /><br />
+
+ This problem is generally caused by using MySQL version 4.1 or newer. MySQL
+ changed the authentication hash and your PHP is trying to use the old method.
+ The proper solution is to use the <a href="http://www.php.net/mysqli">mysqli extension</a>
+ with the proper client library to match your MySQL installation. Your
+ chosen extension is specified in <a href="#cfg_Servers_extension" class="configrule">$cfg['Servers'][$i]['extension']</a>.
+ More information (and several workarounds) are located in the
+ <a href="http://dev.mysql.com/doc/mysql/en/old-client.html">MySQL Documentation</a>.
+</p>
+
+<h4 id="faq1_18">
+ <a href="#faq1_18">1.18 I'm running MySQL&nbsp;&lt;=&nbsp;4.0.1 having
+ <tt>lower_case_table_names</tt> set to 1. If I create a new table with a
+ capital letter in its name it is changed to lowercase as it should. But
+ if I try to DROP this table MySQL is unable to find the corresponding
+ file.</a></h4>
+
+<p> This is a bug of MySQL&nbsp;&lt;=&nbsp;4.0.1. Please upgrade to at least
+ MySQL&nbsp;4.0.2 or turn off your <tt>lower_case_table_names</tt>
+ directive.</p>
+
+<h4 id="faq1_19">
+ <a href="#faq1_19">1.19 I can't run the &quot;display relations&quot; feature because the
+ script seems not to know the font face I'm using!</a></h4>
+
+<p> The &quot;FPDF&quot; library we're using for this feature requires some
+ special files to use font faces.<br />
+ Please refers to the <a href="http://www.fpdf.org/">FPDF manual</a> to build
+ these files.</p>
+
+<h4 id="faqmysql">
+ <a href="#faqmysql">1.20 I receive the error &quot;cannot load MySQL extension, please
+ check PHP Configuration&quot;.</a></h4>
+
+<p> To connect to a MySQL server, PHP needs a set of MySQL functions called
+ &quot;MySQL extension&quot;. This extension may be part of the PHP
+ distribution (compiled-in), otherwise it needs to be loaded dynamically. Its
+ name is probably <i>mysql.so</i> or <i>php_mysql.dll</i>. phpMyAdmin tried
+ to load the extension but failed.<br /><br />
+
+ Usually, the problem is solved by installing a software package called
+ &quot;PHP-MySQL&quot; or something similar.</p>
+
+<h4 id="faq1_21">
+ <a href="#faq1_21">1.21 I am running the
+ <abbr title="Common Gateway Interface">CGI</abbr> version of PHP under Unix,
+ and I cannot log in using cookie auth.</a></h4>
+
+<p> In <i>php.ini</i>, set <tt>mysql.max_links</tt> higher than 1.</p>
+
+<h4 id="faq1_22">
+ <a href="#faq1_22">1.22 I don't see the &quot;Location of text file&quot; field,
+ so I cannot upload.</a></h4>
+
+<p> This is most likely because in <i>php.ini</i>, your <tt>file_uploads</tt>
+ parameter is not set to &quot;on&quot;.</p>
+
+<h4 id="faq1_23">
+ <a href="#faq1_23">1.23 I'm running MySQL on a Win32 machine. Each time I create
+ a new table the table and field names are changed to lowercase!</a></h4>
+
+<p> This happens because the MySQL directive <tt>lower_case_table_names</tt>
+ defaults to 1 (<tt>ON</tt>) in the Win32 version of MySQL. You can change
+ this behavior by simply changing the directive to 0 (<tt>OFF</tt>):<br />
+ Just edit your <tt>my.ini</tt> file that should be located in your Windows
+ directory and add the following line to the group [mysqld]:</p>
+
+<pre>set-variable = lower_case_table_names=0</pre>
+
+<p> Next, save the file and restart the MySQL service. You can always check the
+ value of this directive using the query</p>
+
+<pre>SHOW VARIABLES LIKE 'lower_case_table_names';</pre>
+
+<h4 id="faq1_24">
+ <a href="#faq1_24">1.24 Some characters are being truncated in my queries, or I
+ get characters randomly added. I am running PHP 4.2.3.</a></h4>
+
+<p> This is a <a href="http://bugs.php.net/bug.php?id=19404">PHP 4.2.3 bug</a>.
+ </p>
+
+<h4 id="faq1_25">
+ <a href="#faq1_25">1.25 I am running Apache with mod_gzip-1.3.26.1a on Windows XP,
+ and I get problems, such as undefined variables when I run a
+ <abbr title="structured query language">SQL</abbr> query.</a></h4>
+
+<p> A tip from Jose Fandos: put a comment on the following two lines
+ in httpd.conf, like this:</p>
+
+<pre>
+# mod_gzip_item_include file \.php$
+# mod_gzip_item_include mime "application/x-httpd-php.*"
+</pre>
+
+<p> as this version of mod_gzip on Apache (Windows) has problems handling
+ PHP scripts. Of course you have to restart Apache.</p>
+
+<h4 id="faq1_26">
+ <a href="#faq1_26">1.26 I just installed phpMyAdmin in my document root of
+ <abbr title="Internet Information Services">IIS</abbr> but
+ I get the error &quot;No input file specified&quot; when trying to
+ run phpMyAdmin.</a></h4>
+
+<p> This is a permission problem. Right-click on the phpmyadmin folder
+ and choose properties. Under the tab Security, click on &quot;Add&quot;
+ and select the user &quot;IUSR_machine&quot; from the list. Now set his
+ permissions and it should work.</p>
+
+<h4 id="faq1_27">
+ <a href="#faq1_27">1.27 I get empty page when I want to view huge page (eg.
+ db_structure.php with plenty of tables).</a></h4>
+
+<p> This is a <a href="http://bugs.php.net/21079">PHP bug</a> that occur when
+ GZIP output buffering is enabled. If you turn off it (by
+ <a href="#cfg_OBGzip" class="configrule">$cfg['OBGzip'] = false</a>
+ in <i>config.inc.php</i>), it should work. This bug will be fixed in
+ PHP&nbsp;5.0.0.</p>
+
+<h4 id="faq1_28">
+ <a href="#faq1_28">1.28 My MySQL server sometimes refuses queries and returns the
+ message 'Errorcode: 13'. What does this mean?</a></h4>
+
+<p> This can happen due to a MySQL bug when having database / table names with
+ upper case characters although <tt>lower_case_table_names</tt> is set to 1.
+ To fix this, turn off this directive, convert all database and table names
+ to lower case and turn it on again. Alternatively, there's a bug-fix
+ available starting with MySQL&nbsp;3.23.56 / 4.0.11-gamma.</p>
+
+<h4 id="faq1_29">
+ <a href="#faq1_29">1.29 When I create a table or modify a field, I get an error
+ and the fields are duplicated.</a></h4>
+
+<p> It is possible to configure Apache in such a way that PHP has problems
+ interpreting .php files.</p>
+
+<p> The problems occur when two different (and conflicting) set of directives
+ are used:</p>
+
+<pre>
+SetOutputFilter PHP
+SetInputFilter PHP
+</pre>
+
+<p> and</p>
+
+<pre>AddType application/x-httpd-php .php</pre>
+
+<p> In the case we saw, one set of directives was in
+ <tt>/etc/httpd/conf/httpd.conf</tt>, while
+ the other set was in <tt>/etc/httpd/conf/addon-modules/php.conf</tt>.<br />
+ The recommended way is with <tt>AddType</tt>, so just comment out
+ the first set of lines and restart Apache:</p>
+
+<pre>
+#SetOutputFilter PHP
+#SetInputFilter PHP
+</pre>
+
+<h4 id="faq1_30">
+ <a href="#faq1_30">1.30 I get the error &quot;navigation.php: Missing hash&quot;.</a></h4>
+
+<p> This problem is known to happen when the server is running Turck MMCache
+ but upgrading MMCache to version 2.3.21 solves the problem.</p>
+
+<h4 id="faq1_31">
+ <a href="#faq1_31">1.31 Does phpMyAdmin support php5?</a></h4>
+
+<p> Yes.<br />
+ However, phpMyAdmin needs to be backwards compatible to php4. This is why
+ phpMyAdmin disables the <tt>E_STRICT</tt> error_level in
+ <tt>error_reporting</tt> settings.
+</p>
+
+<h4 id="faq1_32">
+ <a href="#faq1_32">1.32 Can I use <abbr title="HyperText Transfer Protocol">HTTP</abbr> authentication with <abbr title="Internet Information Services">IIS</abbr>?</a></h4>
+
+<p> Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in <abbr title="Internet Server Application Programming Interface">ISAPI</abbr>
+ mode under <abbr title="Internet Information Services">IIS</abbr> 5.1.</p>
+
+<ol><li>In your <tt>php.ini</tt> file, set <tt>cgi.rfc2616_headers = 0</tt></li>
+ <li>In <tt>Web Site Properties -&gt; File/Directory Security -&gt; Anonymous
+ Access</tt> dialog box, check the <tt>Anonymous access</tt> checkbox and
+ uncheck any other checkboxes (i.e. uncheck <tt>Basic authentication</tt>,
+ <tt>Integrated Windows authentication</tt>, and <tt>Digest</tt> if it's
+ enabled.) Click <tt>OK</tt>.</li>
+ <li>In <tt>Custom Errors</tt>, select the range of <tt>401;1</tt> through
+ <tt>401;5</tt> and click the <tt>Set to Default</tt> button.</li>
+</ol>
+
+<h4 id="faq1_33">
+ <a href="#faq1_33">1.33 Is there a problem with the mysqli extension when running
+ PHP 5.0.4 on 64-bit systems?</a></h4>
+
+<p> Yes. This problem affects phpMyAdmin (&quot;Call to undefined function
+ pma_reloadnavigation&quot;), so upgrade your PHP to the next version.</p>
+
+<h4 id="faq1_34">
+ <a href="#faq1_34">1.34 Can I access directly to database or table pages?</a></h4>
+
+<p> Yes. Out of the box, you can use <abbr title="Uniform Resource Locator">URL</abbr>s like
+http://server/phpMyAdmin/index.php?server=X&amp;db=database&amp;table=table&amp;target=script. For <tt>server</tt> you use the server number which refers to
+the order of the server paragraph in <tt>config.inc.php</tt>.
+ Table and script parts are optional. If you want
+ http://server/phpMyAdmin/database[/table][/script] <abbr title="Uniform Resource Locator">URL</abbr>s, you need to do
+ some configuration. Following lines apply only for <a
+ href="http://httpd.apache.org">Apache</a> web server. First make sure,
+ that you have enabled some features within global configuration. You need
+ <code>Options FollowSymLinks</code> and <code>AllowOverride
+ FileInfo</code> enabled for directory where phpMyAdmin is installed and
+ you need mod_rewrite to be enabled. Then you just need to create following
+ <code>.htaccess</code> file in root folder of phpMyAdmin installation
+ (don't forget to change directory name inside of it):</p>
+
+<pre>
+RewriteEngine On
+RewriteBase /path_to_phpMyAdmin
+RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&amp;table=$2&amp;target=$3 [R]
+RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&amp;target=$2 [R]
+RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&amp;table=$2 [R]
+RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
+</pre>
+
+<h4 id="faq1_35">
+ <a href="#faq1_35">1.35 Can I use <abbr title="HyperText Transfer Protocol">HTTP</abbr> authentication with Apache <abbr title="Common Gateway Interface">CGI</abbr>?</a></h4>
+
+<p> Yes. However you need to pass authentication variable to <abbr title="Common Gateway Interface">CGI</abbr> using
+ following rewrite rule:</p>
+
+<pre>
+RewriteEngine On
+RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
+</pre>
+
+<h4 id="faq1_36">
+ <a href="#faq1_36">1.36 I get an error &quot;500 Internal Server Error&quot;.</a>
+</h4>
+<p>
+ There can be many explanations to this and a look at your server's
+ error log file might give a clue.
+</p>
+
+<h4 id="faq1_37">
+ <a href="#faq1_37">1.37 I run phpMyAdmin on cluster of different machines and
+ password encryption in cookie auth doesn't work.</a></h4>
+
+<p> If your cluster consist of different architectures, PHP code used for
+ encryption/decryption won't work correct. This is caused by use of
+ pack/unpack functions in code. Only solution is to use mcrypt extension
+ which works fine in this case.</p>
+
+<h4 id="faq1_38">
+ <a href="#faq1_38">1.38 Can I use phpMyAdmin on a server on which Suhosin is enabled?</a></h4>
+
+<p> Yes but the default configuration values of Suhosin are known to cause
+ problems with some operations, for example editing a table with many
+ columns and no primary key. Tuning information is available at
+ <a href="http://www.hardened-php.net/hphp/troubleshooting.html">
+ http://www.hardened-php.net/hphp/troubleshooting.html</a>,
+ although the parameter names have changed (<tt>suhosin</tt> instead
+ of <tt>hphp</tt>). See also the <a href="#cfg_SuhosinDisableWarning">
+ <tt>SuhosinDisableWarning</tt> directive</a>.
+ </p>
+
+<h3 id="faqconfig">Configuration</h3>
+
+<h4 id="faq2_1">
+ <a href="#faq2_1">2.1 The error message &quot;Warning: Cannot add header information -
+ headers already sent by ...&quot; is displayed, what's the problem?</a></h4>
+
+<p> Edit your <i>config.inc.php</i> file and ensure there is nothing
+ (I.E. no blank lines, no spaces, no characters...) neither before the
+ <tt>&lt;?php</tt> tag at the beginning, neither after the <tt>?&gt;</tt>
+ tag at the end. We also got a report from a user under IIS, that used
+ a zipped distribution kit: the file <tt>libraries/Config.class.php</tt>
+ contained an end-of-line character (hex 0A) at the end; removing this character
+ cleared his errors.</p>
+
+<h4 id="faq2_2">
+ <a href="#faq2_2">2.2 phpMyAdmin can't connect to MySQL. What's wrong?</a></h4>
+
+<p> Either there is an error with your PHP setup or your username/password is
+ wrong. Try to make a small script which uses mysql_connect and see if it
+ works. If it doesn't, it may be you haven't even compiled MySQL support
+ into PHP.</p>
+
+<h4 id="faq2_3">
+ <a href="#faq2_3">2.3 The error message &quot;Warning: MySQL Connection Failed: Can't
+ connect to local MySQL server through socket '/tmp/mysql.sock'
+ (111) ...&quot; is displayed. What can I do?</a></h4>
+
+<p> For RedHat users, Harald Legner suggests this on the mailing list:</p>
+
+<p> On my RedHat-Box the socket of MySQL is <i>/var/lib/mysql/mysql.sock</i>.
+ In your <i>php.ini</i> you will find a line</p>
+
+<pre>mysql.default_socket = /tmp/mysql.sock</pre>
+
+<p> change it to</p>
+
+<pre>mysql.default_socket = /var/lib/mysql/mysql.sock</pre>
+
+<p> Then restart apache and it will work.</p>
+
+<p> Here is a fix suggested by Brad Ummer:</p>
+
+<ul><li>First, you need to determine what socket is being used by MySQL.<br />
+ To do this, telnet to your server and go to the MySQL bin directory. In
+ this directory there should be a file named <i>mysqladmin</i>. Type
+ <tt>./mysqladmin variables</tt>, and this should give you a bunch of
+ info about your MySQL server, including the socket
+ (<i>/tmp/mysql.sock</i>, for example).</li>
+ <li>Then, you need to tell PHP to use this socket.<br /> To do this in
+ phpMyAdmin, you need to complete the socket information in the
+ <i>config.inc.php</i>.<br />
+ For example:
+ <a href="#cfg_Servers_socket" class="configrule">
+ $cfg['Servers'][$i]['socket']&nbsp;=&nbsp;'/tmp/mysql.sock';</a>
+ <br /><br />
+
+ Please also make sure that the permissions of this file allow to be readable
+ by your webserver (i.e. '0755').</li>
+</ul>
+
+<p> Have also a look at the
+ <a href="http://www.mysql.com/doc/C/a/Can_not_connect_to_server.html">
+ corresponding section of the MySQL documentation</a>.</p>
+
+<h4 id="faq2_4">
+ <a href="#faq2_4">2.4 Nothing is displayed by my browser when I try to run phpMyAdmin,
+ what can I do?</a></h4>
+
+<p> Try to set the <a href="#cfg_OBGzip" class="configrule">$cfg['OBGZip']</a>
+ directive to <tt>FALSE</tt> in the phpMyAdmin configuration file. It helps
+ sometime.<br />
+ Also have a look at your PHP version number: if it contains &quot;4.0b...&quot;
+ it means you're running a beta version of PHP. That's not a so good idea,
+ please upgrade to a plain revision.</p>
+
+<h4 id="faq2_5">
+ <a href="#faq2_5">2.5 Each time I want to insert or change a record or drop a database
+ or a table, an error 404 (page not found) is displayed or, with <abbr title="HyperText Transfer Protocol">HTTP</abbr> or
+ cookie authentication, I'm asked to log in again. What's wrong?</a></h4>
+
+<p> Check the value you set for the
+ <a href="#cfg_PmaAbsoluteUri" class="configrule">$cfg['PmaAbsoluteUri']</a>
+ directive in the phpMyAdmin configuration file.</p>
+
+<h4 id="faq2_6">
+ <a href="#faq2_6">2.6 I get an &quot;Access denied for user: 'root@localhost' (Using
+ password: YES)&quot;-error when trying to access a MySQL-Server on a
+ host which is port-forwarded for my localhost.</a></h4>
+
+<p> When you are using a port on your localhost, which you redirect via
+ port-forwarding to another host, MySQL is not resolving the localhost
+ as expected.<br />
+ Erik Wasser explains: The solution is: if your host is &quot;localhost&quot;
+ MySQL (the commandline tool 'mysql' as well) always tries to use the socket
+ connection for speeding up things. And that doesn't work in this configuration
+ with port forwarding.<br />
+ If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the
+ <abbr title="Transmission Control Protocol">TCP</abbr> connection.</p>
+
+<h4 id="faqthemes"><a href="#faqthemes">2.7 Using and creating themes</a></h4>
+
+<p> Themes are configured with
+ <a href="#cfg_ThemePath" class="configrule">$cfg['ThemePath']</a>,
+ <a href="#cfg_ThemeManager" class="configrule">$cfg['ThemeManager']</a> and
+ <a href="#cfg_ThemeDefault" class="configrule">$cfg['ThemeDefault']</a>.<br />
+ <br />
+ Under <a href="#cfg_ThemePath" class="configrule">$cfg['ThemePath']</a>, you
+ should not delete the directory &quot;original&quot; or its underlying
+ structure, because this is the system theme used by phpMyAdmin.
+ &quot;original&quot; contains all images and styles, for backwards
+ compatibility and for all themes that would not include images or css-files.
+ <br /><br />
+
+ If <a href="#cfg_ThemeManager" class="configrule">$cfg['ThemeManager']</a>
+ is enabled, you can select your favorite theme on the main page. Your
+ selected theme will be stored in a cookie.<br /><br /></p>
+
+<p> To create a theme:</p>
+
+<ul><li>make a new subdirectory (for example &quot;your_theme_name&quot;) under
+ <a href="#cfg_ThemePath" class="configrule">$cfg['ThemePath']</a>
+ (by default <tt>themes</tt>)</li>
+ <li>copy the files and directories from &quot;original&quot; to
+ &quot;your_theme_name&quot;</li>
+ <li>edit the css-files in &quot;your_theme_name/css&quot;</li>
+ <li>put your new images in &quot;your_theme_name/img&quot;</li>
+ <li>edit <tt>layout.inc.php</tt> in &quot;your_theme_name&quot;</li>
+ <li>edit <tt>info.inc.php</tt> in &quot;your_theme_name&quot; to
+ contain your chosen theme name, that will be visible in user interface</li>
+ <li>make a new screenshot of your theme and save it under
+ &quot;your_theme_name/screen.png&quot;</li>
+</ul>
+
+<p> In theme directory there is file <tt>info.inc.php</tt> which contains
+ theme verbose name, theme generation and theme version. These versions and
+ generations are enumerated from 1 and do not have any direct dependence on
+ phpMyAdmin version. Themes within same generation should be backwards
+ compatible - theme with version 2 should work in phpMyAdmin requiring
+ version 1. Themes with different generation are incompatible.</p>
+
+<p> If you do not want to use your own symbols and buttons, remove the
+ directory &quot;img&quot; in &quot;your_theme_name&quot;. phpMyAdmin will
+ use the default icons and buttons (from the system-theme &quot;original&quot;).
+</p>
+
+<h4 id="faqmissingparameters">
+ <a href="#faqmissingparameters">2.8 I get &quot;Missing parameters&quot; errors,
+ what can I do?</a></h4>
+
+<p> Here are a few points to check:</p>
+
+<ul><li>In <tt>config.inc.php</tt>, try to leave the
+ <a href="#cfg_PmaAbsoluteUri" class="configrule">$cfg['PmaAbsoluteUri']</a>
+ directive empty. See also
+ <a href="#faq4_7"><abbr title="Frequently Asked Questions">FAQ</abbr> 4.7</a>.
+ </li>
+ <li>Maybe you have a broken PHP installation or you need to upgrade
+ your Zend Optimizer. See
+ <a href="http://bugs.php.net/bug.php?id=31134">
+ http://bugs.php.net/bug.php?id=31134</a>.
+ </li>
+ <li>If you are using Hardened PHP with the ini directive <tt>varfilter.max_request_variables</tt>
+ set to the default (200) or another low value, you could get this
+ error if your table has a high number of columns. Adjust this setting
+ accordingly. (Thanks to Klaus Dorninger for the hint).
+ </li>
+ <li>In the <tt>php.ini</tt> directive <tt>arg_separator.input</tt>, a value
+ of &quot;;&quot; will cause this error. Replace it with &quot;&amp;;&quot;.
+ </li>
+ <li>If you are using <a href="http://www.hardened-php.net/">Hardened-PHP</a>,
+ you might want to increase
+ <a href="http://www.hardened-php.net/hphp/troubleshooting.html">request limits</a>.
+ </li>
+ <li>The directory specified in the <tt>php.ini</tt> directive <tt>session.save_path</tt> does not exist or is read-only.
+ </li>
+</ul>
+
+<h3 id="faqlimitations">Known limitations</h3>
+
+<h4 id="login_bug">
+ <a href="#login_bug">3.1 When using
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> authentication, an user
+ who logged out can not log in again in with the same nick.</a></h4>
+
+<p> This is related to the authentication mechanism (protocol) used by
+ phpMyAdmin. To bypass this problem: just close all the opened
+ browser windows and then go back to phpMyAdmin. You should be able to
+ log in again.</p>
+
+<h4 id="faq3_2">
+ <a href="#faq3_2">3.2 When dumping a large table in compressed mode, I get a memory
+ limit error or a time limit error.</a></h4>
+
+<p> Compressed dumps are built in memory and because of this are limited to
+ php's memory limit. For GZip/BZip2 exports this can be overcome since 2.5.4
+ using
+ <a href="#cfg_CompressOnFly" class="configrule">$cfg['CompressOnFly']</a>
+ (enabled by default). Zip exports can not be handled this way, so if you need
+ Zip files for larger dump, you have to use another way.</p>
+
+<h4 id="faq3_3">
+ <a href="#faq3_3">3.3 With InnoDB tables, I lose foreign key relationships when I rename
+ or alter a table.</a></h4>
+
+<p> This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).</p>
+
+<h4 id="faq3_4">
+ <a href="#faq3_4">3.4 I am unable to import dumps I created with the mysqldump tool
+ bundled with the MySQL server distribution.</a></h4>
+
+<p> The problem is that older versions of mysqldump created invalid comments like this:</p>
+
+<pre>
+-- MySQL dump 8.22
+--
+-- Host: localhost Database: database
+---------------------------------------------------------
+-- Server version 3.23.54
+</pre>
+
+<p> The invalid part of the code is the horizontal line made of dashes that
+ appears once in every dump created with mysqldump. If you want to run your
+ dump you have to turn it into valid MySQL. This means, you have to add a
+ whitespace after the first two dashes of the line or add a # before it:
+ <br />
+ <code>
+ -- -------------------------------------------------------<br />
+ </code>
+ or<br />
+ <code>
+ #---------------------------------------------------------
+ </code>
+</p>
+
+<h4 id="faq3_5">
+ <a href="#faq3_5">3.5 When using nested folders there are some multiple hierarchies
+ displayed in a wrong manner?!</a> (<a href="#cfg_LeftFrameTableSeparator"
+ class="configrule">$cfg['LeftFrameTableSeparator']</a>)</h4>
+
+<p> Please note that you should not use the separating string multiple times
+ without any characters between them, or at the beginning/end of your table
+ name. If you have to, think about using another TableSeparator or disabling
+ that feature</p>
+
+<h4 id="faq3_6">
+ <a href="#faq3_6">3.6 What is currently not supported in phpMyAdmin about InnoDB?</a></h4>
+
+<p> In Relation view, being able to choose a table in another database,
+ or having more than one index field in the foreign key.<br /><br/>
+ In Query-by-example (Query), automatic generation of the query
+ LEFT JOIN from the foreign table.<br /><br/>
+</p>
+
+<h4 id="faq3_7">
+ <a href="#faq3_7">3.7 I have table with many (100+) fields and when I try to browse table
+ I get series of errors like &quot;Warning: unable to parse url&quot;. How
+ can this be fixed?</a></h4>
+<p>
+ Your table neither have a primary key nor an unique one, so we must use a
+ long expression to identify this row. This causes problems to parse_url
+ function. The workaround is to create a primary or unique key.
+ <br />
+</p>
+
+<h4 id="faq3_8">
+ <a href="#faq3_8">3.8 I cannot use (clickable) HTML-forms in fields where I put
+ a MIME-Transformation onto!</a></h4>
+
+<p> Due to a surrounding form-container (for multi-row delete checkboxes), no
+ nested forms can be put inside the table where phpMyAdmin displays the results.
+ You can, however, use any form inside of a table if keep the parent
+ form-container with the target to tbl_row_delete.php and just put your own
+ input-elements inside. If you use a custom submit input field, the form will
+ submit itself to the displaying page again, where you can validate the
+ $HTTP_POST_VARS in a transformation.
+
+ For a tutorial on how to effectively use transformations, see our
+ <a href="http://www.phpmyadmin.net/home_page/docs.php">Link section</a>
+ on the official phpMyAdmin-homepage.</p>
+
+<h4 id="faq3_9">
+ <a href="#faq3_9">3.9 I get error messages when using "--sql_mode=ANSI" for the
+ MySQL server</a></h4>
+
+<p> When MySQL is running in ANSI-compatibility mode, there are some major
+ differences in how <abbr title="structured query language">SQL</abbr> is
+ structured (see <a href="http://dev.mysql.com/doc/mysql/en/ANSI_mode.html">
+ http://dev.mysql.com/doc/mysql/en/ANSI_mode.html</a>). Most important of all,
+ the quote-character (") is interpreted as an identifier quote character and
+ not as a string quote character, which makes many internal phpMyAdmin
+ operations into invalid <abbr title="structured query language">SQL</abbr>
+ statements. There is no workaround to this behaviour. News to this item will
+ be posted in Bug report
+ <a href="https://sf.net/tracker/index.php?func=detail&amp;aid=816858&amp;group_id=23067&amp;atid=377408">#816858</a>
+</p>
+
+<h4 id="faq3_10">
+ <a href="#faq3_10">3.10 Homonyms and no primary key: When the results of a SELECT display
+ more that one column with the same value
+ (for example <tt>SELECT lastname from employees where firstname like 'A%'</tt> and two &quot;Smith&quot; values are displayed),
+ if I click Edit I cannot be sure that I am editing the intended row.</a></h4>
+
+<p> Please make sure that your table has a primary key, so that phpMyAdmin
+ can use it for the Edit and Delete links.</p>
+
+<h4 id="faq3_11">
+ <a href="#faq3_11">3.11 The number of records for InnoDB tables is not correct.</a></h4>
+
+<p> phpMyAdmin uses a quick method to get the row count, and this method
+ only returns an approximate count in the case of InnoDB tables. See
+ <a href="#cfg_MaxExactCount" class="configrule">$cfg['MaxExactCount']</a> for
+ a way to modify those results, but
+ this could have a serious impact on performance.</p>
+
+<h4 id="faq3_12">
+ <a href="#faq3_12">3.12 What are the phpMyAdmin limitations for MySQL 3?</a></h4>
+
+<p> The number of records in queries containing COUNT and GROUP BY is
+ not correctly calculated. Also, sorting results of a query like
+ &quot;SELECT * from table GROUP BY&quot; ... is problematic.</p>
+
+<h4 id="faq3_13">
+ <a href="#faq3_13">3.13 I get an error when entering <tt>USE</tt> followed by a db name
+ containing an hyphen.
+</a></h4>
+<p>
+ The tests I have made with current MySQL 4.1.11 API shows that the
+ API does not accept this syntax for the USE command. Enclosing the
+ db name with backquotes works. For further confusion, no backquotes
+ are needed with command-line mysql.
+</p>
+
+<h4 id="faq3_14">
+ <a href="#faq3_14">3.14 I am not able to browse a table when I don't have the right to SELECT one of the columns.</a></h4>
+<p>
+ This has been a known limitation of phpMyAdmin since the beginning and
+ it's not likely to be solved in the future.
+</p>
+
+<h3 id="faqmultiuser"><abbr title="Internet service provider">ISP</abbr>s, multi-user installations</h3>
+
+<h4 id="faq4_1">
+ <a href="#faq4_1">4.1 I'm an <abbr title="Internet service provider">ISP</abbr>. Can I setup one central copy of phpMyAdmin or do I
+ need to install it for each customer.
+</a></h4>
+<p>
+ Since version 2.0.3, you can setup a central copy of phpMyAdmin for all
+ your users. The development of this feature was kindly sponsored by
+ NetCologne GmbH.
+ This requires a properly setup MySQL user management and phpMyAdmin
+ <abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie authentication. See the install section on
+ &quot;Using <abbr title="HyperText Transfer Protocol">HTTP</abbr> authentication&quot;.
+</p>
+
+<h4 id="faq4_2">
+ <a href="#faq4_2">4.2 What's the preferred way of making phpMyAdmin secure against evil
+ access.
+</a></h4>
+<p>
+ This depends on your system.<br />
+ If you're running a server which cannot be accessed by other people, it's
+ sufficient to use the directory protection bundled with your webserver
+ (with Apache you can use <i>.htaccess</i> files, for example).<br />
+ If other people have telnet access to your server, you should use
+ phpMyAdmin's <abbr title="HyperText Transfer Protocol">HTTP</abbr> or cookie authentication features.
+ <br /><br />
+ Suggestions:
+</p>
+<ul>
+ <li>
+ Your <i>config.inc.php</i> file should be <tt>chmod 660</tt>.
+ </li>
+ <li>
+ All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy
+ is a user whose password is only known to you, and apache is the
+ group under which Apache runs.
+ </li>
+ <li>
+ You should use PHP safe mode, to protect from other users that try
+ to include your <i>config.inc.php</i> in their scripts.
+ </li>
+</ul>
+
+<h4 id="faq4_3">
+ <a href="#faq4_3">4.3 I get errors about not being able to include a file in
+ <i>/lang</i> or in <i>/libraries</i>.
+</a></h4>
+<p>
+ Check <i>php.ini</i>, or ask your sysadmin to check it. The
+ <tt>include_path</tt> must contain &quot;.&quot; somewhere in it, and
+ <tt>open_basedir</tt>, if used, must contain &quot;.&quot; and
+ &quot;./lang&quot; to allow normal operation of phpMyAdmin.
+</p>
+
+<h4 id="faq4_4">
+ <a href="#faq4_4">4.4 phpMyAdmin always gives &quot;Access denied&quot; when using <abbr title="HyperText Transfer Protocol">HTTP</abbr>
+ authentication.
+</a></h4>
+
+<p> This could happen for several reasons:</p>
+
+<ul><li><a href="#cfg_Servers_controluser" class="configrule">$cfg['Servers'][$i]['controluser']</a>
+ and/or
+ <a href="#cfg_Servers_controlpass" class="configrule">$cfg['Servers'][$i]['controlpass']</a>
+ are wrong.</li>
+ <li>The username/password you specify in the login dialog are invalid.</li>
+ <li>You have already setup a security mechanism for the
+ phpMyAdmin-directory, eg. a .htaccess file. This would interfere with
+ phpMyAdmin's authentication, so remove it.</li>
+</ul>
+
+<h4 id="faq4_5">
+ <a href="#faq4_5">4.5 Is it possible to let users create their own databases?</a></h4>
+
+<p> Starting with 2.2.5, in the user management page, you can enter a wildcard
+ database name for a user (for example &quot;joe%&quot;),
+ and put the privileges you want. For example,
+ adding <tt>SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER</tt>
+ would let a user create/manage his/her database(s).</p>
+
+<h4 id="faq4_6">
+ <a href="#faq4_6">4.6 How can I use the Host-based authentication additions?</a></h4>
+
+<p> If you have existing rules from an old .htaccess file, you can take them
+ and add a username between the <tt>'deny'</tt>/<tt>'allow'</tt> and
+ <tt>'from'</tt> strings. Using the username wildcard of <tt>'%'</tt> would
+ be a major benefit here if your installation is suited to using it. Then
+ you can just add those updated lines into the
+ <a href="#cfg_Servers_AllowDeny_rules" class="configrule">
+ $cfg['Servers'][$i]['AllowDeny']['rules']</a> array.</p>
+
+<p> If you want a pre-made sample, you can try this fragment. It stops the
+ 'root' user from logging in from any networks other than the private
+ network <abbr title="Internet Protocol">IP</abbr> blocks.</p>
+
+<pre>
+//block root from logging in except from the private networks
+$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
+ 'deny root from all',
+ 'allow root from localhost',
+ 'allow root from 10.0.0.0/8',
+ 'allow root from 192.168.0.0/16',
+ 'allow root from 172.16.0.0/12',
+ );
+</pre>
+
+<h4 id="faq4_7">
+ <a href="#faq4_7">4.7 Authentication window is displayed more than once, why?</a></h4>
+
+<p> This happens if you are using a <abbr title="Uniform Resource Locator">URL</abbr> to start phpMyAdmin which is
+ different than the one set in your
+ <a href="#cfg_PmaAbsoluteUri" class="configrule">$cfg['PmaAbsoluteUri']</a>.
+ For example, a missing &quot;www&quot;, or entering with an <abbr title="Internet Protocol">IP</abbr> address
+ while a domain name is defined in the config file.</p>
+
+<h4 id="faq4_8">
+ <a href="#faq4_8">4.8 Which parameters can I use in the URL that starts phpMyAdmin?</a></h4>
+
+<p>When starting phpMyAdmin, you can use the <tt>db</tt>, <tt>pma_username</tt>, <tt>pma_password</tt> and <tt>server</tt> parameters. This last one can contain either the numeric host index (from <tt>$i</tt> of the configuration file) or one of the host names present in the configuration file. Using <tt>pma_username</tt> and <tt>pma_password</tt> has been tested along with the usage of 'cookie' <tt>auth_type</tt>.</p>
+
+<h3 id="faqbrowsers">Browsers or client <abbr title="operating system">OS</abbr></h3>
+
+<h4 id="faq5_1">
+ <a href="#faq5_1">5.1 I get an out of memory error, and my controls are non-functional,
+ when trying to create a table with more than 14 fields.
+</a></h4>
+<p>
+ We could reproduce this problem only under Win98/98SE. Testing under
+ WinNT4 or Win2K, we could easily create more than 60 fields.
+ <br />
+ A workaround is to create a smaller number of fields, then come back to
+ your table properties and add the other fields.
+</p>
+
+<h4 id="faq5_2">
+ <a href="#faq5_2">5.2 With Xitami 2.5b4, phpMyAdmin won't process form fields.</a></h4>
+<p>
+ This is not a phpMyAdmin problem but a Xitami known bug: you'll face it
+ with each script/website that use forms.<br />
+ Upgrade or downgrade your Xitami server.
+</p>
+
+<h4 id="faq5_3">
+ <a href="#faq5_3">5.3 I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).</a></h4>
+<p>
+ With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that
+ the proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps
+ don't seem to work.<br />
+
+ With Konqueror 2.2.1: plain dumps work; zip dumps are placed into
+ the user's temporary directory, so they must be moved before closing
+ Konqueror, or else they disappear. GZip dumps give an error message.<br />
+
+ Testing needs to be done for Konqueror 2.2.2.<br />
+</p>
+
+<h4 id="faq5_4">
+ <a href="#faq5_4">5.4 I can't use the cookie authentication mode because Internet
+ Explorer never stores the cookies.
+</a></h4>
+<p>
+ MS Internet Explorer seems to be really buggy about cookies, at least till
+ version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug
+ in this area!
+ <br />
+ Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may
+ work!
+</p>
+
+<h4 id="faq5_5">
+ <a href="#faq5_5">5.5 In Internet Explorer 5.0, I get JavaScript errors when browsing my
+ rows.
+</a></h4>
+<p>
+ Upgrade to at least Internet Explorer 5.5 SP2.<br />
+</p>
+
+<h4 id="faq5_6">
+ <a href="#faq5_6">5.6 In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not found")
+ when trying to modify a row in a table with many fields, or with a text field
+</a></h4>
+<p>
+ Your table neither have a primary key nor an unique one, so we must use a
+ long <abbr title="Uniform Resource Locator">URL</abbr> to identify this row. There is a limit on the length of the <abbr title="Uniform Resource Locator">URL</abbr> in
+ those browsers, and this not happen in Netscape, for example. The
+ workaround is to create a primary or unique key, or use another browser.
+ <br />
+</p>
+
+<h4 id="faq5_7">
+ <a href="#faq5_7">5.7 I refresh (reload) my browser, and come back to the welcome
+ page.
+</a></h4>
+<p>
+ Some browsers support right-clicking into the frame you want to refresh,
+ just do this in the right frame.<br />
+</p>
+
+<h4 id="faq5_8">
+ <a href="#faq5_8">5.8 With Mozilla 0.9.7 I have problems sending a query modified in the
+ query box.
+</a></h4>
+<p>
+ Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future
+ Mozilla versions.<br />
+</p>
+
+<h4 id="faq5_9">
+ <a href="#faq5_9">5.9 With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a
+ whitespace in the <abbr title="structured query language">SQL</abbr>-Query edit area: the page scrolls down.
+</a></h4>
+<p>
+ This is a Mozilla bug (see bug #26882 at
+ <a href="http://bugzilla.mozilla.org/">BugZilla</a>).<br />
+</p>
+
+<h4 id="faq5_10">
+ <a href="#faq5_10">5.10 With Netscape 4.75 I get empty rows between each row of data in a
+ <abbr title="comma separated values">CSV</abbr> exported file.
+</a></h4>
+<p>
+ This is a known Netscape 4.75 bug: it adds some line feeds when exporting
+ data in octet-stream mode. Since we can't detect the specific Netscape
+ version, we cannot workaround this bug.
+</p>
+
+<h4 id="faq5_11">
+ <a href="#faq5_11">5.11 Extended-ASCII characters like German umlauts are displayed
+ wrong.</a></h4>
+
+<p> Please ensure that you have set your browser's character set to the one of the
+ language file you have selected on phpMyAdmin's start page.
+ Alternatively, you can try the auto detection mode that is supported by the
+ recent versions of the most browsers.</p>
+
+<h4 id="faq5_12">
+ <a href="#faq5_12">5.12 <acronym title="Apple Macintosh">Mac</acronym> <abbr title="operating system">OS</abbr> X: Safari browser changes special characters to
+ &quot;?&quot;.</a></h4>
+
+<p> This issue has been reported by a <abbr title="operating system">OS</abbr> X user, who adds that Chimera,
+ Netscape and Mozilla do not have this problem.</p>
+
+<h4 id="faq5_13">
+ <a href="#faq5_13">5.13 With Internet Explorer 5.5 or 6, and <abbr title="HyperText Transfer Protocol">HTTP</abbr> authentication type,
+ I cannot manage two servers: I log in to the first one, then the other one,
+ but if I switch back to the first, I have to log in on each operation.</a></h4>
+
+<p> This is a bug in Internet Explorer, other browsers do not behave this way.</p>
+
+<h4 id="faq5_14">
+ <a href="#faq5_14">5.14 Using Opera6, I can manage to get to the authentication,
+ but nothing happens after that, only a blank screen.</a></h4>
+
+<p> Having <tt>$cfg['QueryFrameJS']</tt> set o <tt>TRUE</tt>, this leads to a
+ bug in Opera6, because it is not able to interpret frameset definitions
+ written by JavaScript. Please upgrade your phpMyAdmin installtion or to
+ Opera7 at least.</p>
+
+<h4 id="faq5_15">
+ <a href="#faq5_15">5.15 I have display problems with Safari.</a></h4>
+
+<p> Please upgrade to at least version 1.2.3.</p>
+
+<h4 id="faq5_16">
+ <a href="#faq5_16">5.16 With Internet Explorer, I get &quot;Access is denied&quot;
+ Javascript errors. Or I cannot make phpMyAdmin work under Windows.</a></h4>
+
+<p> Please check the following points:</p>
+ <ul><li>Maybe you have defined your <tt>PmaAbsoluteUri</tt> setting
+ in <tt>config.inc.php</tt> to an <abbr title="Internet Protocol">IP</abbr>
+ address and you are starting
+ phpMyAdmin with a <abbr title="Uniform Resource Locator">URL</abbr>
+ containing a domain name, or the reverse situation.</li>
+ <li>Security settings in IE and/or Microsoft Security Center are
+ too high, thus blocking scripts execution.</li>
+ <li>The Windows Firewall is blocking Apache and MySQL. You must
+ allow <abbr title="HyperText Transfer Protocol">HTTP</abbr> ports
+ (80 or 443) and MySQL port (usually 3306)
+ in the &quot;in&quot; and &quot;out&quot; directions.</li>
+ </ul>
+
+<h4 id="faq5_17">
+ <a href="#faq5_17">5.17 With Firefox, I cannot delete rows of data or drop a database.</a></h4>
+<p> Many users have confirmed that the Tabbrowser Extensions plugin they
+ installed in their Firefox is causing the problem.</p>
+
+<h3 id="faqusing">Using phpMyAdmin</h3>
+
+<h4 id="faq6_1">
+ <a href="#faq6_1">6.1 I can't insert new rows into a table / I can't create a table
+ - MySQL brings up a <abbr title="structured query language">SQL</abbr>-error.
+</a></h4>
+<p>
+ Examine the <abbr title="structured query language">SQL</abbr> error with care. Often the problem is caused by
+ specifying a wrong field-type.<br />
+ Common errors include:
+</p>
+<ul>
+ <li>Using <tt>VARCHAR</tt> without a size argument</li>
+ <li>Using <tt>TEXT</tt> or <tt>BLOB</tt> with a size argument</li>
+</ul>
+<p>
+ Also, look at the syntax chapter in the MySQL manual to confirm that your
+ syntax is correct.
+</p>
+
+<h4 id="faq6_2">
+ <a href="#faq6_2">6.2 When I create a table, I set an index for two fields and
+ phpMyAdmin generates only one index with those two fields.
+</a></h4>
+<p>
+ This is the way to create a multi-fields
+ index. If you want two indexes, create the first one when creating the
+ table, save, then display the table properties and click the Index link to
+ create the other index.
+</p>
+
+<h4 id="faq6_3">
+ <a href="#faq6_3">6.3 How can I insert a null value into my table?</a></h4>
+<p>
+ Since version 2.2.3, you have a checkbox for each field that can be null.
+ Before 2.2.3, you had to enter &quot;null&quot;, without the quotes, as the
+ field's value. Since version 2.5.5, you have to use the checkbox to get
+ a real NULL value, so if you enter &quot;NULL&quot; this means you want
+ a literal NULL in the field, and not a NULL value (this works in PHP4).
+</p>
+
+<h4 id="faq6_4">
+ <a href="#faq6_4">6.4 How can I backup my database or table?</a></h4>
+
+<p> Click on a database or table name in the left frame, the properties will be
+ displayed. Then on the menu, click &quot;Export&quot;, you can dump
+ the structure, the data, or both. This will generate standard <abbr title="structured query language">SQL</abbr>
+ statements that can be used to recreate your database/table.
+ <br /><br />
+ You will need to choose &quot;Save as file&quot;, so that phpMyAdmin can
+ transmit the resulting dump to your station. Depending on your PHP
+ configuration, you will see options to compress the dump. See also the
+ <a href="#cfg_ExecTimeLimit" class="configrule">$cfg['ExecTimeLimit']</a>
+ configuration variable.<br /><br />
+
+ For additional help on this subject, look for the word &quot;dump&quot; in
+ this document.</p>
+
+<h4 id="faq6_5">
+ <a href="#faq6_5">6.5 How can I restore (upload) my database or table using a dump?
+ How can I run a &quot;.sql&quot; file?
+</a></h4>
+
+<p> Click on a database name in the left frame, the properties will be
+ displayed. Select &quot;Import&quot; from the list
+ of tabs in the right&#8211;hand frame (or &quot;<abbr title="structured query language">SQL</abbr>&quot; if your phpMyAdmin
+ version is previous to 2.7.0). In the &quot;Location of the text file&quot; section, type in
+ the path to your dump filename, or use the Browse button. Then click Go.
+ <br /><br />
+ With version 2.7.0, the import engine has been re&#8211;written, if possible it is suggested
+ that you upgrade to take advantage of the new features.
+ <br /><br />
+ For additional help on this subject, look for the word &quot;upload&quot;
+ in this document.
+</p>
+
+<h4 id="faq6_6">
+ <a href="#faq6_6">6.6 How can I use the relation table in Query-by-example?</a></h4>
+
+<p> Here is an example with the tables persons, towns and countries, all
+ located in the database mydb. If you don't have a <tt>pma_relation</tt>
+ table, create it as explained in the configuration section. Then create the
+ example tables:</p>
+
+<pre>
+CREATE TABLE REL_countries (
+ country_code char(1) NOT NULL default '',
+ description varchar(10) NOT NULL default '',
+ PRIMARY KEY (country_code)
+) TYPE=MyISAM;
+
+INSERT INTO REL_countries VALUES ('C', 'Canada');
+
+CREATE TABLE REL_persons (
+ id tinyint(4) NOT NULL auto_increment,
+ person_name varchar(32) NOT NULL default '',
+ town_code varchar(5) default '0',
+ country_code char(1) NOT NULL default '',
+ PRIMARY KEY (id)
+) TYPE=MyISAM;
+
+INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
+INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
+
+CREATE TABLE REL_towns (
+ town_code varchar(5) NOT NULL default '0',
+ description varchar(30) NOT NULL default '',
+ PRIMARY KEY (town_code)
+) TYPE=MyISAM;
+
+INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
+INSERT INTO REL_towns VALUES ('M', 'Montr&eacute;al');
+</pre>
+
+<p> To setup appropriate links and display information:</p>
+
+<ul><li>on table &quot;REL_persons&quot; click Structure, then Relation view</li>
+ <li>in Links, for &quot;town_code&quot; choose &quot;REL_towns-&gt;code&quot;</li>
+ <li>in Links, for &quot;country_code&quot; choose &quot;REL_countries-&gt;country_code&quot;</li>
+ <li>on table &quot;REL_towns&quot; click Structure, then Relation view</li>
+ <li>in &quot;Choose field to display&quot;, choose &quot;description&quot;</li>
+ <li>repeat the two previous steps for table &quot;REL_countries&quot;</li>
+</ul>
+
+<p> Then test like this:</p>
+
+<ul><li>Click on your db name in the left frame</li>
+ <li>Choose &quot;Query&quot;</li>
+ <li>Use tables: persons, towns, countries</li>
+ <li>Click &quot;Update query&quot;</li>
+ <li>In the fields row, choose persons.person_name and click the
+ &quot;Show&quot; tickbox </li>
+ <li>Do the same for towns.description and countries.descriptions in the
+ other 2 columns</li>
+ <li>Click &quot;Update query&quot; and you will see in the query box that
+ the correct joins have been generated</li>
+ <li>Click &quot;Submit query&quot;</li>
+</ul>
+
+<h4 id="faqdisplay">
+ <a href="#faqdisplay">6.7 How can I use the &quot;display field&quot; feature?</a></h4>
+<p>
+ Starting from the previous example, create the pma_table_info as explained
+ in the configuration section, then browse your persons table,
+ and move the mouse over a town code or country code.
+ <br /><br />
+ See also <a href="#faq6_21"><abbr title="Frequently Asked Questions">FAQ</abbr> 6.21</a> for an additional feature that &quot;display field&quot;
+ enables: drop-down list of possible values.
+</p>
+
+<h4 id="faqpdf">
+ <a href="#faqpdf">6.8 How can I produce a <abbr title="Portable Document Format">PDF</abbr> schema of my database?</a></h4>
+<p>
+ First the configuration variables &quot;relation&quot;,
+ &quot;table_coords&quot; and &quot;pdf_pages&quot; have to be filled in.
+ <br /><br />
+ Then you need to think about your schema layout. Which tables will go on
+ which pages?
+</p>
+<ul>
+ <li>Select your database in the left frame.</li>
+ <li>Choose &quot;Operations&quot; in the navigation bar at the top.</li>
+ <li>Choose &quot;Edit <abbr title="Portable Document Format">PDF</abbr>
+ Pages&quot; near the bottom of the page.</li>
+ <li>Enter a name for the first <abbr title="Portable Document Format">PDF</abbr>
+ page and click Go. If you like, you
+ can use the &quot;automatic layout,&quot; which will put all your
+ linked tables onto the new page.</li>
+ <li>Select the name of the new page (making sure the Edit radio button
+ is selected) and click Go.</li>
+ <li>Select a table from the list, enter its coordinates and click Save.<br />
+ Coordinates are relative; your diagram will
+ be automatically scaled to fit the page. When initially placing tables
+ on the page, just pick any coordinates -- say, 50x50. After clicking
+ Save, you can then use the <a href="#wysiwyg">graphical editor</a> to
+ position the element correctly.</li>
+ <li>When you'd like to look at your <abbr title="Portable Document Format">PDF</abbr>,
+ first be sure to click the Save
+ button beneath the list of tables and coordinates, to save any changes
+ you made there. Then scroll all the way down, select the
+ <abbr title="Portable Document Format">PDF</abbr> options
+ you want, and click Go.</li>
+ <li>Internet Explorer for Windows may suggest an incorrect filename when
+ you try to save a generated <abbr title="Portable Document Format">PDF</abbr>.
+ When saving a generated <abbr title="Portable Document Format">PDF</abbr>, be
+ sure that the filename ends in &quot;.pdf&quot;, for example
+ &quot;schema.pdf&quot;. Browsers on other operating systems, and other
+ browsers on Windows, do not have this problem.</li>
+</ul>
+
+<h4 id="faq6_9">
+ <a href="#faq6_9">6.9 phpMyAdmin is changing the type of one of my
+ columns!</a></h4>
+
+<p> No, it's MySQL that is doing
+ <a href="http://www.mysql.com/doc/S/i/Silent_column_changes.html">silent
+ column type changing</a>.</p>
+
+<h4 id="underscore">
+ <a href="#underscore">6.10 When creating a privilege, what happens with
+ underscores in the database name?</a></h4>
+
+<p> If you do not put a backslash before the underscore, this is a wildcard
+ grant, and the underscore means &quot;any character&quot;. So, if the
+ database name is &quot;john_db&quot;, the user would get rights to john1db,
+ john2db ...<br /><br />
+
+ If you put a backslash before the underscore, it means that the database
+ name will have a real underscore.</p>
+
+<h4 id="faq6_11">
+ <a href="#faq6_11">6.11 What is the curious symbol &oslash; in the
+ statistics pages?</a></h4>
+
+<p> It means &quot;average&quot;.</p>
+
+<h4 id="faqexport">
+ <a href="#faqexport">6.12 I want to understand some Export options.</a></h4>
+
+<p><b>Structure:</b></p>
+
+<ul><li>&quot;Add DROP TABLE&quot; will add a line telling MySQL to
+ <a href="http://dev.mysql.com/doc/mysql/en/drop-table.html">drop the table</a>,
+ if it already exists during the import. It does NOT drop the table after
+ your export, it only affects the import file.</li>
+ <li>&quot;If Not Exists&quot; will only create the table if it doesn't exist.
+ Otherwise, you may get an error if the table name exists but has a
+ different structure.</li>
+ <li>&quot;Add AUTO_INCREMENT value&quot; ensures that AUTO_INCREMENT value
+ (if any) will be included in backup.</li>
+ <li>&quot;Enclose table and field names with backquotes&quot; ensures that
+ field and table names formed with special characters are protected.</li>
+ <li>&quot;Add into comments&quot; includes column comments, relations, and MIME
+ types set in the pmadb in the dump as
+ <abbr title="structured query language">SQL</abbr> comments (<i>/* xxx */</i>).
+ </li>
+</ul>
+
+<p><b>Data:</b></p>
+
+<ul><li>&quot;Complete inserts&quot; adds the column names on every INSERT
+ command, for better documentation (but resulting file is bigger).</li>
+ <li>&quot;Extended inserts&quot; provides a shorter dump file by using only
+ once the INSERT verb and the table name.</li>
+ <li>&quot;Delayed inserts&quot; are best explained in the
+ <a href="http://dev.mysql.com/doc/mysql/en/insert-delayed.html">MySQL manual</a>.
+ </li>
+ <li>&quot;Ignore inserts&quot; treats errors as a warning instead. Again,
+ more info is provided in the
+ <a href="http://dev.mysql.com/doc/mysql/en/insert.html">MySQL manual</a>,
+ but basically with this selected, invalid values are adjusted and
+ inserted rather than causing the entire statement to fail.</li>
+</ul>
+
+<h4 id="faq6_13">
+ <a href="#faq6_13">6.13 I would like to create a database with a dot
+ in its name.</a></h4>
+
+<p> This is a bad idea, because in MySQL the syntax &quot;database.table&quot;
+ is the normal way to reference a database and table name. Worse, MySQL
+ will usually let you create a database with a dot, but then you cannot
+ work with it, nor delete it.</p>
+
+<h4 id="faqsqlvalidator">
+ <a href="#faqsqlvalidator">6.14 How do I set up the
+ <abbr title="structured query language">SQL</abbr> Validator?</a></h4>
+
+<p> To use it, you need a very recent version of PHP, 4.3.0 recommended, with
+ <abbr title="Extensible Markup Language">XML</abbr>,
+ <abbr title="Perl Compatible Regular Expressions">PCRE</abbr> and
+ <abbr title="PHP Extension and Application Repository">PEAR</abbr> support.
+ On your system command line, run <tt>"pear install Net_Socket Net_URL
+ HTTP_Request Mail_Mime Net_DIME SOAP"</tt> to get the necessary
+ <abbr title="PHP Extension and Application Repository">PEAR</abbr> modules
+ for usage.<br />
+ On a more recent pear version, I had problems with the state of Net_DIME
+ being beta, so this single command
+ <tt>"pear -d preferred_state=beta install -a SOAP"</tt> installed all the
+ needed modules.<br />
+ If you use the Validator, you should be aware that any
+ <abbr title="structured query language">SQL</abbr> statement you
+ submit will be stored anonymously (database/table/column names,
+ strings, numbers replaced with generic values). The Mimer
+ <abbr title="structured query language">SQL</abbr>
+ Validator itself, is &copy; 2001 Upright Database Technology.
+ We utilize it as free SOAP service.</p>
+
+<h4 id="faq6_15">
+ <a href="#faq6_15">6.15 I want to add a BLOB field and put an index on
+ it, but MySQL says &quot;BLOB column '...' used in key specification without
+ a key length&quot;.</a></h4>
+
+<p> The right way to do this, is to create the field without any indexes,
+ then display the table structure and use the &quot;Create an index&quot;
+ dialog. On this page, you will be able to choose your BLOB field, and
+ set a size to the index, which is the condition to create an index on
+ a BLOB field.</p>
+
+<h4 id="faq6_16">
+ <a href="#faq6_16">6.16 How can I simply move in page with plenty
+ editing fields?</a></h4>
+
+<p> You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages
+ with many editing fields (table structure changes, row editing, etc.)
+ (must be enabled in configuration - see.
+ <a href="#CtrlArrowsMoving" class="configrule">$cfg['CtrlArrowsMoving']</a>).
+ You can also have a look at the directive
+ <a href="#DefaultPropDisplay" class="configrule">$cfg['DefaultPropDisplay']</a>
+ ('vertical') and see if this eases up editing for you.</p>
+
+<h4 id="faq6_17">
+ <a href="#faq6_17">6.17 Transformations: I can't enter my own mimetype!
+ WTF is this feature then useful for?</a></h4>
+
+<p> Slow down :). Defining mimetypes is of no use, if you can't put transformations
+ on them. Otherwise you could just put a comment on the field. Because entering
+ your own mimetype will cause serious syntax checking issues and validation,
+ this introduces a high-risk false-user-input situation. Instead you have to
+ initialize mimetypes using functions or empty mimetype definitions.<br />
+ Plus, you have a whole overview of available mimetypes. Who knows all those
+ mimetypes by heart so he/she can enter it at will?</p>
+
+<h4 id="faqbookmark">
+ <a href="#faqbookmark">6.18 Bookmarks: Where can I store bookmarks? Why
+ can't I see any bookmarks below the query box? What is this variable for?
+</a></h4>
+
+<p> Any query you have executed can be stored as a bookmark on the page where the
+ results are displayed. You will find a button labeled 'Bookmark this query'
+ just at the end of the page.<br />
+ As soon as you have stored a bookmark, it is related to the database you run
+ the query on. You can now access a bookmark dropdown on each page, the query
+ box appears on for that database.<br /><br />
+
+ Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks.
+ Just use the string <b>/*[VARIABLE]*/</b> anywhere in your query. Everything
+ which is put into the <i>value</i> input box on the query box page will
+ replace the string &quot;/*[VARIABLE]*/&quot; in your stored query. Just be
+ aware of that you HAVE to create a valid query, otherwise your query won't be
+ even able to be stored in the database.<br />
+ Also remember, that everything else inside the <b>/*[VARIABLE]*/</b> string
+ for your query will remain the way it is, but will be stripped of the /**/
+ chars. So you can use:<br /><br />
+
+ <code>/*, [VARIABLE] AS myname */</code><br /><br />
+
+ which will be expanded to<br /><br />
+
+ <code>, VARIABLE as myname</code><br /><br />
+
+ in your query, where VARIABLE is the string you entered in the input box. If
+ an empty string is provided, no replacements are made.<br /><br />
+
+ A more complex example. Say you have stored this query:<br /><br />
+ <code>SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */</code>
+ <br /><br />
+
+ Say, you now enter &quot;phpMyAdmin&quot; as the variable for the stored query,
+ the full query will be:<br /><br />
+
+ <code>SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'</code>
+ <br /><br />
+
+ You can use multiple occurrences of <b>/*[VARIABLE]*/</b> in a single query.<br />
+ <b>NOTE THE ABSENCE OF SPACES</b> inside the &quot;/**/&quot; construct. Any
+ spaces inserted there
+ will be later also inserted as spaces in your query and may lead to unexpected
+ results especially when
+ using the variable expansion inside of a &quot;LIKE ''&quot; expression.<br />
+ Your initial query which is going to be stored as a bookmark has to yield at
+ least one result row so
+ you can store the bookmark. You may have that to work around using well
+ positioned &quot;/**/&quot; comments.</p>
+
+<h4 id="faq6_19">
+ <a href="#faq6_19">6.19 How can I create simple L<sup>A</sup>T<sub><big>E</big></sub>X document to
+ include exported table?</a></h4>
+
+<p> You can simply include table in your L<sup>A</sup>T<sub><big>E</big></sub>X documents, minimal sample
+ document should look like following one (assuming you have table
+ exported in file <code>table.tex</code>):</p>
+
+<pre>
+\documentclass{article} % or any class you want
+\usepackage{longtable} % for displaying table
+\begin{document} % start of document
+\include{table} % including exported table
+\end{document} % end of document
+</pre>
+
+<h4 id="faq6_20">
+ <a href="#faq6_20">6.20 In MySQL 4, I see a lot of databases which are not mine, and cannot
+ access them.
+</a></h4>
+
+<p> Upgrading to MySQL 4 usually gives users those global privileges: CREATE
+ TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also
+ enable users to see all the database names.
+ See this <a href="http://bugs.mysql.com/179">bug report</a>.<br /><br />
+
+ So if your users do not need those privileges, you can remove them and their
+ databases list will shorten.</p>
+
+<h4 id="faq6_21">
+ <a href="#faq6_21">6.21 In edit/insert mode, how can I see a list of
+ possible values for a field, based on some foreign table?</a></h4>
+
+<p> You have to setup appropriate links between the tables, and also
+ setup the &quot;display field&quot; in the foreign table. See
+ <a href="#faq6_6"><abbr title="Frequently Asked Questions">FAQ</abbr>
+ 6.6</a> for an example. Then, if there are 100 values or less in the
+ foreign table, a drop-down list of values will be available.
+ You will see two lists of values, the first list containing the key
+ and the display field, the second list containing the display field
+ and the key. The reason for this is to be able to type the first
+ letter of either the key or the display field.<br /><br />
+
+ For 100 values or more, a distinct window will appear, to browse foreign
+ key values and choose one. To change the default limit of 100, see
+ <tt><a href="#cfg_ForeignKeyMaxLimit" class="configrule">$cfg['ForeignKeyMaxLimit']</a></tt>.</p>
+
+<h4 id="faq6_22">
+ <a href="#faq6_22">6.22 Bookmarks: Can I execute a default bookmark
+ automatically when entering Browse mode for a table?</a></h4>
+
+<p> Yes. If a bookmark has the same label as a table name, it will be executed.
+</p>
+
+<h4 id="faq6_23">
+ <a href="#faq6_23">6.23 Export: I heard phpMyAdmin can export Microsoft
+ Excel files, how can I enable that?</a></h4>
+
+<p> Current version does support direct export to Microsoft Excel and Word
+ versions 2000 and newer. If you need export older versions, you can use
+ <abbr title="comma separated values">CSV</abbr> suitable for Microsoft Excel,
+ which works out of the box or you can
+ try native <b>experimental</b> MS Excel exporter. <b>This export has
+ several problems, most important are limitation of cell content to 255
+ chars and no support for charsets, so think carefully whether you want to
+ enable this.</b>. For enabling this you need to set
+ <a href="#cfg_TempDir" class="configrule">$cfg['TempDir']</a> to
+ place where web server user can write (for example <tt>'./tmp'</tt>) and
+ install <abbr title="PHP Extension and Application Repository">PEAR</abbr>
+ module Spreadsheet_Excel_Writer into php include path. The
+ installation can be done by following command:</p>
+
+<pre>
+pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer
+</pre>
+
+<p> First part of switches set we want to install beta version of that module
+ (no stable version available yet) and then we tell pear we want to satisfy
+ dependencies.</p>
+
+<p> If you are running in PHP safe mode, you will have to set
+ in <tt>php.ini</tt> the <tt>safe_mode_include_dir</tt> to the directory
+ where your <abbr title="PHP Extension and Application Repository">PEAR</abbr>
+ modules are located, for example:</p>
+
+<pre>
+safe_mode_include_dir = /usr/local/lib/php
+</pre>
+
+<p> To create the temporary directory on a UNIX-based system, you can do:</p>
+
+<pre>
+cd phpMyAdmin
+mkdir tmp
+chmod o+rwx tmp
+</pre>
+
+<h4 id="faq6_24">
+ <a href="#faq6_24">6.24 Now that phpMyAdmin supports native MySQL 4.1.x column comments,
+ what happens to my column comments stored in pmadb?</a></h4>
+
+<p> Automatic migration of a table's pmadb-style column comments to the native
+ ones is done whenever you enter Structure page for this table.</p>
+
+<h4 id="faq6_25">
+ <a href="#faq6_25">6.25 How does BLOB streaming work in phpMyAdmin?</a></h4>
+
+<p> First, for general information about BLOB streaming on MySQL, visit <a href="http://blobstreaming.org">blobstreaming.org</a>. We currently support streaming if you are running MySQL 5.1 with the PBXT and PBMS storage engines.<br /><br />
+<ol>
+ <li>In <tt>config.inc.php</tt> your host should be defined with a FQDN (fully qualified domain name) instead of something like &quot;localhost&quot;.</li>
+ <li>A current limitation is that your first login via phpMyAdmin to a freshly-started server must be done with an account that has the SUPER privilege.</li>
+ <li>On your target database, go to Operations and in the &quot;BLOB Repository&quot; section, click &quot;Enable&quot;. This creates the PBMS system tables inside your database.</li>
+ <li>Ensure that your target table has a LONGBLOB column.</li>
+ <li>When you insert or update a row in this table, put a checkmark on the &quot;Upload to BLOB repository&quot; optional choice; otherwise, the upload will be done directly in your column instead of the repository.</li>
+ <li>Finally when you browse your table, you'll see in your column a link to stream your data, for example &quot;View image&quot;. A header containing the correct MIME-type will be sent to your browser; this MIME-type was stored at upload time but in case it's incorrect, it's possible to edit it by clicking on the displayed MIME-type.</li>
+</ol>
+</p>
+
+<h3 id="faqproject">phpMyAdmin project</h3>
+
+<h4 id="faq7_1">
+ <a href="#faq7_1">7.1 I have found a bug. How do I inform developers?</a></h4>
+
+<p> Our Bug Tracker is located at
+ <a href="http://sf.net/projects/phpmyadmin/">http://sf.net/projects/phpmyadmin/</a>
+ under the Bugs section.<br /><br />
+
+ But please first discuss your bug with other users:<br />
+ <a href="http://sf.net/projects/phpmyadmin/">
+ http://sf.net/projects/phpmyadmin/</a> (and choose Forums)</p>
+
+<h4 id="faq7_2">
+ <a href="#faq7_2">7.2 I want to translate the messages to a new language or upgrade an
+ existing language, where do I start?</a></h4>
+
+<p> Always use the current SVN version of your language file.
+ For a new language, start from <i>english-utf-8.inc.php</i>. If you
+ don't know how to get the SVN version, please ask one of the developers.
+ <br />
+ Please note that we try not to use HTML entities like &amp;eacute; in
+ the translations, since we define the right character set in the file.
+ With HTML entities, the text on JavaScript messages would not
+ display correctly.
+ However there are some entities that need to be there, for quotes
+ ,non-breakable spaces, ampersands, less than, greater than.<br />
+ You can then put your translations, as a zip file to avoid losing special
+ characters, on the sourceforge.net translation tracker.<br />
+ It would be a good idea to subscribe to the phpmyadmin-translators mailing
+ list, because this is where we ask for translations of new messages.</p>
+
+<h4 id="faq7_3">
+ <a href="#faq7_3">7.3 I would like to help out with the development of
+ phpMyAdmin. How should I proceed?</a></h4>
+
+<p> The following method is preferred for new developers:</p>
+
+<ol><li>fetch the current SVN tree over anonymous SVN:<br />
+ <tt>svn co https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin</tt><br />
+ </li>
+ <li>add your stuff</li>
+ <li>generate patch with your changes:
+ <tt>svn diff</tt><br />
+ </li>
+ <li>put the patch inside the <a
+ href="https://sourceforge.net/tracker/?group_id=23067&amp;atid=377410">patch
+ tracker of the phpMyAdmin project</a>.
+ </li>
+</ol>
+
+<p> Write access to the SVN tree is granted only to experienced developers who
+ have already contributed something useful to phpMyAdmin.<br />
+ Also, have a look at the <a href="#developers">Developers section</a>.</p>
+
+<h3 id="faqsecurity">Security</h3>
+
+<h4 id="faq8_1">
+ <a href="#faq8_1">8.1 Where can I get information about the security alerts issued for phpMyAdmin?</a></h4>
+
+<p> Please refer to
+ <a href="http://www.phpmyadmin.net/home_page/security.php">http://www.phpmyadmin.net/home_page/security.php</a>
+</p>
+
+<!-- DEVELOPERS -->
+<h2 id="developers">Developers Information</h2>
+
+<p> phpMyAdmin is Open Source, so you're invited to contribute to it. Many
+ great features have been written by other people and you too can help to
+ make phpMyAdmin a useful tool.</p>
+
+<p> If you're planning to contribute source, please read the following
+ information:</p>
+
+<ul><li>All files include <i>libraries/header.inc.php</i> (layout),.
+ <i>libraries/common.lib.php</i> (common functions) and
+ <i>config.inc.php</i>.<br />
+ Only configuration data should go in <i>config.inc.php</i>. Please keep
+ it free from other code.<br />
+ Commonly used functions should be added to
+ <i>libraries/common.lib.php</i> and more specific ones may be added
+ within a library stored into the <i>libraries</i> sub-directory.</li>
+ <li>Obviously, you're free to use whatever coding style you want. But
+ please try to keep your code as simple as possible: beginners are
+ using phpMyAdmin as an example application.<br />
+ As far as possible, we want the scripts to be XHTML1.0 and CSS2
+ compliant on one hand, they fit the
+ <a href="http://pear.php.net/">
+ <abbr title="PHP Extension and Application Repository">PEAR</abbr>
+ coding standards</a>
+ on the other hand. Please pay attention to this.</li>
+ <li>Please try to keep up the file-naming conventions. Table-related stuff
+ goes to <i>tbl_*.php</i>, db-related code to <i>db_*.php</i>,
+ server-related tools to <i>server_*.php</i> and so on.</li>
+ <li>Please don't put message strings in your code, instead add the string
+ (at least) to <i>english-utf-8.inc.php</i> and print() it out.</li>
+ <li>If you want to be really helpful, write an entry for the ChangeLog.</li>
+ <li id="developersdbg">
+ The DBG extension (<a href="http://dd.cron.ru/dbg/">PHP
+ Debugger DBG</a>) is now supported by phpMyAdmin for developers to
+ better debug and profile their code.<br />
+ Please see the
+ <a href="#cfg_DBG" class="configrule">$cfg['DBG']*</a> configuration
+ options for more information.<br />
+ This is in memoriam of the Space Shuttle Columbia (STS-107) which was
+ lost during its re-entry into Earth's atmosphere and in memory of the
+ brave men and women who gave their lives for the people of Earth.</li>
+</ul>
+
+<!-- CREDITS -->
+<h2 id="credits">Credits</h2>
+
+<pre>
+phpMyAdmin - Credits
+====================
+
+CREDITS, in chronological order
+-------------------------------
+
+- Tobias Ratschiller &lt;tobias_at_ratschiller.com&gt;
+ * creator of the phpmyadmin project
+ * maintainer from 1998 to summer 2000
+
+- Marc Delisle &lt;Marc.Delisle_at_cegepsherbrooke.qc.ca&gt;
+ * multi-language version
+ * various fixes and improvements
+ * <abbr title="structured query language">SQL</abbr> analyser (most of it)
+ * current project maintainer
+
+- Olivier M&uuml;ller &lt;om_at_omnis.ch&gt;
+ * started SourceForge phpMyAdmin project in March 2001
+ * sync'ed different existing CVS trees with new features and bugfixes
+ * multi-language improvements, dynamic language selection
+ * current project maintainer
+ * many bugfixes and improvements
+
+- Lo&iuml;c Chapeaux &lt;lolo_at_phpheaven.net&gt;
+ * rewrote and optimized javascript, DHTML and DOM stuff
+ * rewrote the scripts so they fit the <abbr title="PHP Extension and Application Repository">PEAR</abbr> coding standards and
+ generate XHTML1.0 and CSS2 compliant codes
+ * improved the language detection system
+ * many bugfixes and improvements
+
+- Robin Johnson &lt;robbat2_at_users.sourceforge.net&gt;
+ * database maintenance controls
+ * table type code
+ * Host authentication <abbr title="Internet Protocol">IP</abbr> Allow/Deny
+ * DB-based configuration (Not completed)
+ * <abbr title="structured query language">SQL</abbr> parser and pretty-printer
+ * <abbr title="structured query language">SQL</abbr> validator
+ * many bugfixes and improvements
+
+- Armel Fauveau &lt;armel.fauveau_at_globalis-ms.com&gt;
+ * bookmarks feature
+ * multiple dump feature
+ * gzip dump feature
+ * zip dump feature
+
+- Geert Lund &lt;glund_at_silversoft.dk&gt;
+ * various fixes
+ * moderator of the phpMyAdmin former users forum at phpwizard.net
+
+- Korakot Chaovavanich &lt;korakot_at_iname.com&gt;
+ * &quot;insert as new row&quot; feature
+
+- Pete Kelly &lt;webmaster_at_trafficg.com&gt;
+ * rewrote and fix dump code
+ * bugfixes
+
+- Steve Alberty &lt;alberty_at_neptunlabs.de&gt;
+ * rewrote dump code for PHP4
+ * mySQL table statistics
+ * bugfixes
+
+- Benjamin Gandon &lt;gandon_at_isia.cma.fr&gt;
+ * main author of the version 2.1.0.1
+ * bugfixes
+
+- Alexander M. Turek &lt;me_at_derrabus.de&gt;
+ * MySQL 4.0 / 4.1 / 5.0 compatibility
+ * abstract database interface (PMA_DBI) with MySQLi support
+ * privileges administration
+ * <abbr title="Extensible Markup Language">XML</abbr> exports
+ * various features and fixes
+ * German language file updates
+
+- Mike Beck &lt;mike.beck_at_web.de&gt;
+ * automatic joins in QBE
+ * links column in printview
+ * Relation view
+
+- Michal &#268;iha&#345; &lt;michal_at_cihar.com&gt;
+ * enhanced index creation/display feature
+ * feature to use a different charset for HTML than for MySQL
+ * improvements of export feature
+ * various features and fixes
+ * Czech language file updates
+
+- Christophe Gesch&eacute; from the &quot;MySQL Form Generator for PHPMyAdmin&quot;
+ (http://sf.net/projects/phpmysqlformgen/)
+ * suggested the patch for multiple table printviews
+
+- Garvin Hicking &lt;me_at_supergarv.de&gt;
+ * built the patch for vertical display of table rows
+ * built the Javascript based Query window + <abbr title="structured query language">SQL</abbr> history
+ * Improvement of column/db comments
+ * (MIME)-Transformations for columns
+ * Use custom alias names for Databases in left frame
+ * hierarchical/nested table display
+ * <abbr title="Portable Document Format">PDF</abbr>-scratchboard for WYSIWYG-distribution of <abbr title="Portable Document Format">PDF</abbr> relations
+ * new icon sets
+ * vertical display of column properties page
+ * some bugfixes, features, support, German language additions
+
+- Yukihiro Kawada &lt;kawada_at_den.fujifilm.co.jp&gt;
+ * japanese kanji encoding conversion feature
+
+- Piotr Roszatycki &lt;d3xter_at_users.sourceforge.net&gt; and Dan Wilson
+ * the Cookie authentication mode
+
+- Axel Sander &lt;n8falke_at_users.sourceforge.net&gt;
+ * table relation-links feature
+
+- Maxime Delorme &lt;delorme.maxime_at_free.fr&gt;
+ * <abbr title="Portable Document Format">PDF</abbr> schema output, thanks also to Olivier Plathey for the
+ &quot;FPDF&quot; library (see <a href="http://www.fpdf.org/">http://www.fpdf.org/</a>) and Steven Wittens
+ for the &quot;UFPDF&quot; library (see <a href="http://www.acko.net/node/56">http://www.acko.net/node/56</a>).
+
+- Olof Edlund &lt;olof.edlund_at_upright.se&gt;
+ * <abbr title="structured query language">SQL</abbr> validator server
+
+- Ivan R. Lanin &lt;ivanlanin_at_users.sourceforge.net&gt;
+ * phpMyAdmin logo (until June 2004)
+
+- Mike Cochrane &lt;mike_at_graftonhall.co.nz&gt;
+ * blowfish library from the Horde project
+
+- Marcel Tschopp &lt;ne0x_at_users.sourceforge.net&gt;
+ * mysqli support
+ * many bugfixes and improvements
+
+- Michael Keck &lt;mkkeck_at_users.sourceforge.net&gt;
+ * redesign for 2.6.0
+ * phpMyAdmin sailboat logo (June 2004)
+
+- Mathias Landh&auml;u&szlig;er
+ * Representation at conferences
+
+- Sebastian Mendel &lt;cybot_tm_at_users.sourceforge.net&gt;
+ * interface improvements
+ * various bugfixes
+
+- Ivan A Kirillov
+ * new relations Designer
+
+- Raj Kissu Rajandran (Google Summer of Code 2008)
+ * BLOBstreaming support
+
+- Piotr Przybylski (Google Summer of Code 2008)
+ * improved setup script
+
+And also to the following people who have contributed minor changes,
+enhancements, bugfixes or support for a new language since version 2.1.0:
+
+Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
+P&eacute;ter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
+Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kl&auml;ger,
+Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
+Bernard M. Piller, Laurent Haas, &quot;Sakamoto&quot;, Yuval Sarna,
+www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
+Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
+Lu&iacute;s V., Martijn W. van der Lee,
+Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
+Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, &quot;Manuzhai&quot;.
+
+
+Original Credits of Version 2.1.0
+---------------------------------
+
+ This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
+ to create a web-based interface to MySQL using PHP3. Although I have not
+ used any of his source-code, there are some concepts I've borrowed from
+ him. phpMyAdmin was created because Peter told me he wasn't going to
+ further develop his (great) tool.
+ Thanks go to
+ - Amalesh Kempf &lt;ak-lsml_at_living-source.com&gt; who contributed the
+ code for the check when dropping a table or database. He also suggested
+ that you should be able to specify the primary key on tbl_create.php3. To
+ version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
+ well as a bug-report. Plus many smaller improvements.
+ - Jan Legenhausen &lt;jan_at_nrw.net&gt;: He made many of the changes that
+ were introduced in 1.3.0 (including quite significant ones like the
+ authentication). For 1.4.1 he enhanced the table-dump feature. Plus
+ bug-fixes and help.
+ - Marc Delisle &lt;DelislMa_at_CollegeSherbrooke.qc.ca&gt; made phpMyAdmin
+ language-independent by outsourcing the strings to a separate file. He
+ also contributed the French translation.
+ - Alexandr Bravo &lt;abravo_at_hq.admiral.ru&gt; who contributed
+ tbl_select.php3, a feature to display only some fields from a table.
+ - Chris Jackson &lt;chrisj_at_ctel.net&gt; added support for MySQL
+ functions in tbl_change.php3. He also added the
+ &quot;Query by Example&quot; feature in 2.0.
+ - Dave Walton &lt;walton_at_nordicdms.com&gt; added support for multiple
+ servers and is a regular contributor for bug-fixes.
+ - Gabriel Ash &lt;ga244_at_is8.nyu.edu&gt; contributed the random access
+ features for 2.0.6.
+ The following people have contributed minor changes, enhancements, bugfixes
+ or support for a new language:
+ Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
+ Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
+ Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
+ G. Wieggers.
+
+ And thanks to everyone else who sent me email with suggestions, bug-reports
+ and or just some feedback.
+</pre>
+
+<h2 id="glossary">Glossary</h2>
+
+<p> From Wikipedia, the free encyclopedia</p>
+
+<ul>
+ <li><a href="http://www.wikipedia.org/wiki/.htaccess">.htaccess</a>
+ - the default name of Apache's directory-level configuration file.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Blowfish_%28cipher%29">Blowfish</a>
+ - a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Browser">Browser (Web Browser)</a>
+ - a software application that enables a user to display and interact with
+ text, images, and other information typically located on a web page at a
+ website on the World Wide Web.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Bzip2">bzip2</a>
+ - a free software/open source data compression algorithm and program
+ developed by Julian Seward.</li>
+ <li><a href="http://www.wikipedia.org/wiki/CGI">CGI (Common Gateway Interface)</a>
+ - an important World Wide Web technology that enables a client web browser
+ to request data from a program executed on the Web server.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Changelog">Changelog</a>
+ - a log or record of changes made to a project.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Client_%28computing%29">Client</a>
+ - a computer system that accesses a (remote) service on another computer
+ by some kind of network.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Column_%28database%29">column</a>
+ - a set of data values of a particular simple type, one for each row of
+ the table.</li>
+ <li><a href="http://www.wikipedia.org/wiki/HTTP_cookie">Cookie</a>
+ - a packet of information sent by a server to a World Wide Web browser
+ and then sent back by the browser each time it accesses that server.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Comma-separated_values">CSV</a>
+ - Comma-separated values</li>
+ <li>DB - look at <a href="#database">Database</a>.</li>
+ <li><a id="database" href="http://www.wikipedia.org/wiki/Database">database</a>
+ - an organized collection of data.</li>
+ <li>Engine - look at <a href="#glossar_storage_engine">Storage Engines</a>.</li>
+ <li><a href="http://www.wikipedia.org/wiki/extension">extension</a>
+ - a PHP module that extends PHP with additional functionality.</li>
+ <li><a href="http://www.wikipedia.org/wiki/FAQ">FAQ (Frequently Asked Questions)</a>
+ - a list of commonly asked question and there answers.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Field_%28computer_science%29">Field</a>
+ - one part of divided data/columns.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Foreign_key">foreign key</a>
+ - a field or group of fields in a database record that point to a key
+ field or group of fields forming a key of another database record in some
+ (usually different) table.</li>
+ <li><a href="http://www.fpdf.org/">FPDF (FreePDF)</a>
+ - the free PDF library</li>
+ <li><a id="gd" href="http://www.wikipedia.org/wiki/GD_Graphics_Library">
+ GD Graphics Library</a> - a library by Thomas Boutell and others for
+ dynamically manipulating images.</li>
+ <li>GD2 - look at <a href="#gd">GD Graphics Library</a>.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Gzip">gzip</a>
+ - gzip is short for GNU zip, a GNU free software file compression
+ program.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Host">host</a>
+ - any machine connected to a computer network, a node that has a hostname.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Hostname">hostname</a>
+ - the unique name by which a network attached device is known on a network.</li>
+ <li><a href="http://www.wikipedia.org/wiki/HyperText_Transfer_Protocol">HTTP
+ (HyperText Transfer Protocol)</a>
+ - the primary method used to transfer or convey information on the World
+ Wide Web.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Https:_URI_scheme">https</a>
+ - a <abbr title="HyperText Transfer Protocol">HTTP</abbr>-connection with
+ additional security measures.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Internet_Information_Services">IIS (Internet Information Services)</a>
+ - a set of Internet-based services for servers using Microsoft Windows.</li>
+ <li><a id="glossar_index" href="http://www.wikipedia.org/wiki/Index_%28database%29">Index</a>
+ - a feature that allows quick access to the rows in a table.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Internet_Protocol">IP (Internet Protocol)</a>
+ - a data-oriented protocol used by source and destination hosts for
+ communicating data across a packet-switched internetwork.</li>
+ <li><a href="http://www.wikipedia.org/wiki/IP_Address">IP Address</a>
+ - a unique number that devices use in order to identify and communicate
+ with each other on a network utilizing the Internet Protocol standard.</li>
+ <li><a href="http://www.wikipedia.org/wiki/ISAPI">ISAPI
+ (Internet Server Application Programming Interface)</a>
+ - the API of Internet Information Services (IIS).</li>
+ <li><a href="http://www.wikipedia.org/wiki/ISP">ISP (Internet service provider)</a>
+ - a business or organization that offers users access to the Internet and related services.</li>
+ <li><a id="jpeg" href="http://www.wikipedia.org/wiki/JPEG">JPEG</a>
+ - a most commonly used standard method of lossy compression for
+ photographic images.</li>
+ <li>JPG - look at <a href="#jpeg">JPEG</a>.</li>
+ <li>Key - look at <a href="#glossar_index">index</a>.</li>
+ <li><a href="http://www.wikipedia.org/wiki/LaTeX">L<sup>A</sup>T<sub><big>E</big></sub>X</a>
+ - a document preparation system for the T<sub>E</sub>X typesetting program.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Mac">Mac (Apple Macintosh)</a>
+ - line of personal computers is designed, developed, manufactured, and
+ marketed by Apple Computer.</li>
+ <li><a id="glossar_mac_os_x" href="http://www.wikipedia.org/wiki/Mac_OS_X"><acronym title="Apple Macintosh">Mac</acronym> <abbr title="operating system">OS</abbr> X</a>
+ - the operating system which is included with all currently shipping Apple
+ Macintosh computers in the consumer and professional markets.</li>
+ <li><a href="http://www.wikipedia.org/wiki/MCrypt">MCrypt</a>
+ - a cryptographic library.</li>
+ <li><a href="http://php.net/mcrypt">mcrypt</a>
+ - the MCrypt PHP extension.</li>
+ <li><a href="http://www.wikipedia.org/wiki/MIME">MIME (Multipurpose Internet Mail Extensions)</a>
+ - an Internet Standard for the format of e-mail.</li>
+ <li><a href="http://www.wikipedia.org/wiki/module">module</a>
+ - some sort of extension for the Apache Webserver.</li>
+ <li><a href="http://www.wikipedia.org/wiki/MySQL">MySQL</a>
+ - a multithreaded, multi-user, SQL (Structured Query Language) Database
+ Management System (DBMS).</li>
+ <li><a href="http://php.net/mysqli">mysqli</a>
+ - the improved MySQL client PHP extension.</li>
+ <li><a href="http://php.net/mysql">mysql</a>
+ - the MySQL client PHP extension.</li>
+ <li><a href="http://www.wikipedia.org/wiki/OpenDocument">OpenDocument</a>
+ - open standard for office documents.</li>
+ <li><a href="http://www.wikipedia.org/wiki/OS_X"><abbr title="operating system">OS</abbr> X</a>
+ - look at <a href="#glossar_mac_os_x"><acronym title="Apple Macintosh">Mac</acronym> <abbr title="operating system">OS</abbr> X</a>.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Portable_Document_Format">PDF
+ (Portable Document Format)</a>
+ - a file format developed by Adobe Systems for representing two
+ dimensional documents in a device independent and resolution independent
+ format.</li>
+ <li><a href="http://pear.php.net/">PEAR</a>
+ - the PHP Extension and Application Repository.</li>
+ <li><a href="http://php.net/pcre">PCRE (Perl Compatible Regular Expressions)</a>
+ - the perl-compatible regular expression functions for PHP</li>
+ <li><a href="http://www.wikipedia.org/wiki/PHP">PHP</a>
+ - short for "PHP: Hypertext Preprocessor", is an open-source, reflective
+ programming language used mainly for developing server-side applications
+ and dynamic web content, and more recently, a broader range of software
+ applications.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Port_%28computing%29">port</a>
+ - a connection through which data is sent and received.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Request_for_Comments">RFC</a>
+ - Request for Comments (RFC) documents are a series of memoranda
+ encompassing new research, innovations, and methodologies applicable to
+ Internet technologies.</li>
+ <li><a href="http://www.ietf.org/rfc/rfc1952.txt">RFC 1952</a>
+ - GZIP file format specification version 4.3</li>
+ <li><a href="http://www.wikipedia.org/wiki/Row_%28database%29">Row (record, tulpel)</a>
+ - represents a single, implicitly structured data item in a table.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Server_%28computing%29">Server</a>
+ - a computer system that provides services to other computing
+ systems over a network.</li>
+ <li><a id="glossar_storage_engine" href="http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html">Storage Engines</a>
+ - handlers for different table types</li>
+ <li><a href="http://www.wikipedia.org/wiki/Socket#Computer_sockets">socket</a>
+ - a form of inter-process communication.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Secure_Sockets_Layer">SSL (Secure
+ Sockets Layer)</a>
+ - a cryptographic protocol which provides secure communication on the Internet.</li>
+ <li><a href="http://www.wikipedia.org/wiki/SQL">SQL</a>
+ - Structured Query Language</li>
+ <li><a href="http://www.wikipedia.org/wiki/Table_%28database%29">table</a>
+ - a set of data elements (cells) that is organized, defined and stored as
+ horizontal rows and vertical columns where each item can be uniquely
+ identified by a label or key or by it?s position in relation to other items.</li>
+ <li>Table type</li>
+ <li><a href="http://www.wikipedia.org/wiki/Tar_%28file_format%29">tar</a>
+ - a type of archive file format: the Tape ARchive format.</li>
+ <li><a href="http://www.wikipedia.org/wiki/TCP">TCP (Transmission Control Protocol)</a>
+ - one of the core protocols of the Internet protocol suite.</li>
+ <li><a href="http://www.acko.net/node/56">UFPDF</a>
+ - Unicode/UTF-8 extension for FPDF</li>
+ <li><a href="http://www.wikipedia.org/wiki/URL">URL (Uniform Resource Locator)</a>
+ - a sequence of characters, conforming to a standardized format, that is
+ used for referring to resources, such as documents and images on the
+ Internet, by their location.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Webserver">Webserver</a>
+ - A computer (program) that is responsible for accepting HTTP requests
+ from clients and serving them Web pages.</li>
+ <li><a href="http://www.wikipedia.org/wiki/XML">XML (Extensible Markup Language)</a>
+ - a W3C-recommended general-purpose markup language for creating
+ special-purpose markup languages, capable of describing many different
+ kinds of data.</li>
+ <li><a href="http://www.wikipedia.org/wiki/ZIP_%28file_format%29">ZIP</a>
+ - a popular data compression and archival format.</li>
+ <li><a href="http://www.wikipedia.org/wiki/Zlib">zlib</a>
+ - an open-source, cross-platform data compression library by Jean-loup
+ Gailly and Mark Adler.</li>
+</ul>
+
+<p id="bottom">
+ <a href="http://validator.w3.org/check?uri=referer">
+ <img src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1"
+ height="31" width="88" /></a>
+ <a href="http://jigsaw.w3.org/css-validator/">
+ <img src="http://www.w3.org/Icons/valid-css" alt="Valid CSS!" width="88"
+ height="31" /></a></p>
+
+</body>
+</html>
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000000..29bc6de017
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,9 @@
+$Id$
+
+phpMyAdmin - Installation
+-------------------------
+
+ Please have a look to the Documentation.txt or
+ Documentation.html files.
+
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000..3912109b5c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/README b/README
new file mode 100644
index 0000000000..ceae605838
--- /dev/null
+++ b/README
@@ -0,0 +1,74 @@
+$Id$
+
+phpMyAdmin - Readme
+===================
+
+ A set of PHP-scripts to manage MySQL over the web.
+
+ Version 3.1.0-dev
+ -----------------
+ http://www.phpmyadmin.net/
+
+ Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
+ Copyright (C) 2001-2007 Marc Delisle <Marc.Delisle_at_cegepsherbrooke.qc.ca>
+ Olivier Müller <om_at_omnis.ch>
+ Robin Johnson <robbat2_at_users.sourceforge.net>
+ Alexander M. Turek <me_at_derrabus.de>
+ Michal Čihař <michal_at_cihar.com>
+ Garvin Hicking <me_at_supergarv.de>
+ Michael Keck <mkkeck_at_users.sourceforge.net>
+ Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
+ [check Documentation.txt/.html file for more details]
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2,
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Requirements:
+ php 5.2 or later
+ MySQL 5.0 or later
+ a web-browser (doh!)
+
+ Summary:
+ phpMyAdmin is intended to handle the administration of MySQL over the web.
+ For a summary of features, please see the Documentation.txt/.html file.
+
+ Download:
+ You can get the newest version at http://www.phpmyadmin.net/.
+
+ Credits:
+ Please see the Documentation.txt/.html file.
+
+ Installation:
+ Please see the Documentation.txt/.html file.
+
+ ChangeLog:
+ Now in ChangeLog
+
+ Documentation:
+ Basic documentation available in Documentation.txt/.html
+
+ Support:
+ See reference about support forums under http://www.phpmyadmin.net/
+
+
+ Enjoy!
+ The phpMyAdmin Devel team
+
+
+ PS: Please, don't send us emails with question like "How do I compile
+ PHP with MySQL-support". We just don't have the time to be your
+ free helpdesk.
+ Please send your questions to the appropriate mailinglists / forums.
+ Before contacting us, please read the Documentation.html (esp. the
+ FAQ part).
+
diff --git a/README.VENDOR b/README.VENDOR
new file mode 100644
index 0000000000..d241829958
--- /dev/null
+++ b/README.VENDOR
@@ -0,0 +1,21 @@
+$Id: README 10967 2007-12-08 12:46:36Z lem9 $
+
+phpMyAdmin - hints for distributing phpMyAdmin
+==============================================
+
+This document is intended to give advices to people who want to
+redistribute phpMyAdmin inside other software package such as Linux
+distribution or some all in one package including web server and MySQL
+server.
+
+
+Setup script
+------------
+
+If you want to integrate setup script to your packaging, you might want
+to change $cfg_db['_config_file_path'] in setup/lib/config_info.inc.php
+to point to place where you want to generated config file to be saved.
+Please note that directory and the file has to be writable for web
+server user.
+
+# vim: et ts=4 sw=4 sts=4 tw=72 spell spelllang=en_us
diff --git a/TODO b/TODO
new file mode 100644
index 0000000000..503e029169
--- /dev/null
+++ b/TODO
@@ -0,0 +1,10 @@
+$Id$
+
+phpMyAdmin - Todo
+=================
+
+We are currently using the Sourceforge Tracker as Todo list:
+
+ http://sourceforge.net/tracker/?atid=377411&group_id=23067&func=browse
+
+-- swix/20010704
diff --git a/browse_foreigners.php b/browse_foreigners.php
new file mode 100644
index 0000000000..db9947d907
--- /dev/null
+++ b/browse_foreigners.php
@@ -0,0 +1,289 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * display selection for relational field values
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets a core script and starts output buffering work
+ */
+require_once './libraries/common.inc.php';
+
+PMA_checkParameters(array('db', 'table', 'field'));
+
+require_once './libraries/ob.lib.php';
+PMA_outBufferPre();
+
+require_once './libraries/header_http.inc.php';
+
+/**
+ * Displays the frame
+ */
+$per_page = 200;
+require_once './libraries/relation.lib.php'; // foreign keys
+require_once './libraries/transformations.lib.php'; // Transformations
+$cfgRelation = PMA_getRelationsParam();
+$foreigners = ($cfgRelation['relwork'] ? PMA_getForeigners($db, $table) : FALSE);
+
+$override_total = TRUE;
+
+if (!isset($pos)) {
+ $pos = 0;
+}
+
+$foreign_limit = 'LIMIT ' . $pos . ', ' . $per_page . ' ';
+if (isset($foreign_navig) && $foreign_navig == $strShowAll) {
+ unset($foreign_limit);
+}
+
+$foreignData = PMA_getForeignData($foreigners, $field, $override_total, isset($foreign_filter) ? $foreign_filter : '', $foreign_limit);
+
+if (isset($pk)) {
+ $pk_uri = '&amp;pk=' . urlencode($pk);
+ ?>
+<input type="hidden" name="pk" value="<?php echo htmlspecialchars($pk); ?>" />
+ <?php
+} else {
+ $pk_uri = '';
+}
+
+$gotopage = '';
+$showall = '';
+
+if (is_array($foreignData['disp_row'])) {
+
+ if ($cfg['ShowAll'] && ($foreignData['the_total'] > $per_page)) {
+ $showall = '<input type="submit" name="foreign_navig" value="' . $strShowAll . '" />';
+ }
+
+ $session_max_rows = $per_page;
+ $pageNow = @floor($pos / $session_max_rows) + 1;
+ $nbTotalPage = @ceil($foreignData['the_total'] / $session_max_rows);
+
+ if ($foreignData['the_total'] > $per_page) {
+ $gotopage = PMA_pageselector(
+ 'browse_foreigners.php?field=' . urlencode($field) .
+ '&amp;' . PMA_generate_common_url($db, $table)
+ . $pk_uri .
+ '&amp;fieldkey=' . (isset($fieldkey) ? urlencode($fieldkey) : '') .
+ '&amp;foreign_filter=' . (isset($foreign_filter) ? urlencode($foreign_filter) : '') .
+ '&amp;',
+ $session_max_rows,
+ $pageNow,
+ $nbTotalPage,
+ 200,
+ 5,
+ 5,
+ 20,
+ 10,
+ $GLOBALS['strPageNumber']
+ );
+ }
+}
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="<?php echo $available_languages[$lang][2]; ?>"
+ lang="<?php echo $available_languages[$lang][2]; ?>"
+ dir="<?php echo $text_dir; ?>">
+
+<head>
+ <title>phpMyAdmin</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset; ?>" />
+ <link rel="stylesheet" type="text/css"
+ href="phpmyadmin.css.php?<?php echo PMA_generate_common_url('', ''); ?>&amp;js_frame=right&amp;nocache=<?php echo $_SESSION['PMA_Config']->getThemeUniqueValue(); ?>" />
+ <script src="./js/functions.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ //<![CDATA[
+ self.focus();
+ function formupdate(field, key) {
+ if (opener && opener.document && opener.document.insertForm) {
+ var field = 'field_' + field;
+
+ <?php if (isset($pk)) { ?>
+ var element_name = field + '[multi_edit][<?php echo htmlspecialchars($pk); ?>][]';
+ <?php } else { ?>
+ var element_name = field + '[]';
+ <?php } ?>
+
+ <?php if (isset($fieldkey) && is_numeric($fieldkey)) { ?>
+ var element_name_alt = field + '[<?php echo $fieldkey; ?>]';
+ <?php } else { ?>
+ var element_name_alt = field + '[0]';
+ <?php } ?>
+
+ if (opener.document.insertForm.elements[element_name]) {
+ // Edit/Insert form
+ opener.document.insertForm.elements[element_name].value = key;
+ self.close();
+ return false;
+ } else if (opener.document.insertForm.elements[element_name_alt]) {
+ // Search form
+ opener.document.insertForm.elements[element_name_alt].value = key;
+ self.close();
+ return false;
+ }
+ }
+
+ alert('<?php echo PMA_jsFormat($strWindowNotFound); ?>');
+ }
+ //]]>
+ </script>
+</head>
+
+<body id="body_browse_foreigners">
+
+<form action="browse_foreigners.php" method="post">
+<fieldset>
+<?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+<input type="hidden" name="field" value="<?php echo htmlspecialchars($field); ?>" />
+<input type="hidden" name="fieldkey"
+ value="<?php echo isset($fieldkey) ? htmlspecialchars($fieldkey) : ''; ?>" />
+<?php if (isset($pk)) { ?>
+<input type="hidden" name="pk" value="<?php echo htmlspecialchars($pk); ?>" />
+<?php } ?>
+<span class="formelement">
+ <label for="input_foreign_filter"><?php echo $strSearch . ':'; ?></label>
+ <input type="text" name="foreign_filter" id="input_foreign_filter"
+ value="<?php echo isset($foreign_filter) ? htmlspecialchars($foreign_filter) : ''; ?>" />
+ <input type="submit" name="submit_foreign_filter" value="<?php echo $strGo;?>" />
+</span>
+<span class="formelement">
+ <?php echo $gotopage; ?>
+</span>
+<span class="formelement">
+ <?php echo $showall; ?>
+</span>
+</fieldset>
+</form>
+
+<table width="100%">
+<?php
+if (is_array($foreignData['disp_row'])) {
+ $header = '<tr>
+ <th>' . $strKeyname . '</th>
+ <th>' . $strDescription . '</th>
+ <td width="20%"></td>
+ <th>' . $strDescription . '</th>
+ <th>' . $strKeyname . '</th>
+ </tr>';
+
+ echo '<thead>' . $header . '</thead>' . "\n"
+ .'<tfoot>' . $header . '</tfoot>' . "\n"
+ .'<tbody>' . "\n";
+
+ $values = array();
+ $keys = array();
+ foreach ($foreignData['disp_row'] as $relrow) {
+ if ($foreignData['foreign_display'] != FALSE) {
+ $values[] = $relrow[$foreignData['foreign_display']];
+ } else {
+ $values[] = '';
+ }
+
+ $keys[] = $relrow[$foreignData['foreign_field']];
+ }
+
+ asort($keys);
+
+ $hcount = 0;
+ $odd_row = true;
+ $val_ordered_current_row = 0;
+ $val_ordered_current_equals_data = false;
+ $key_ordered_current_equals_data = false;
+ foreach ($keys as $key_ordered_current_row => $value) {
+ //for ($i = 0; $i < $count; $i++) {
+ $hcount++;
+
+ if ($cfg['RepeatCells'] > 0 && $hcount > $cfg['RepeatCells']) {
+ echo $header;
+ $hcount = 0;
+ $odd_row = true;
+ }
+
+ $key_ordered_current_key = $keys[$key_ordered_current_row];
+ $key_ordered_current_val = $values[$key_ordered_current_row];
+
+ $val_ordered_current_key = $keys[$val_ordered_current_row];
+ $val_ordered_current_val = $values[$val_ordered_current_row];
+
+ $val_ordered_current_row++;
+
+ if (PMA_strlen($val_ordered_current_val) <= $cfg['LimitChars']) {
+ $val_ordered_current_val = htmlspecialchars($val_ordered_current_val);
+ $val_ordered_current_val_title = '';
+ } else {
+ $val_ordered_current_val_title =
+ htmlspecialchars($val_ordered_current_val);
+ $val_ordered_current_val =
+ htmlspecialchars(PMA_substr($val_ordered_current_val, 0,
+ $cfg['LimitChars']) . '...');
+ }
+ if (PMA_strlen($key_ordered_current_val) <= $cfg['LimitChars']) {
+ $key_ordered_current_val = htmlspecialchars($key_ordered_current_val);
+ $key_ordered_current_val_title = '';
+ } else {
+ $key_ordered_current_val_title =
+ htmlspecialchars($key_ordered_current_val);
+ $key_ordered_current_val =
+ htmlspecialchars(PMA_substr($key_ordered_current_val, 0,
+ $cfg['LimitChars']) . '...');
+ }
+
+ if (! empty($data)) {
+ $val_ordered_current_equals_data = $val_ordered_current_key == $data;
+ $key_ordered_current_equals_data = $key_ordered_current_key == $data;
+ }
+
+ ?>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; $odd_row = ! $odd_row; ?>">
+ <td nowrap="nowrap">
+ <?php
+ echo ($key_ordered_current_equals_data ? '<strong>' : '')
+ .'<a href="#" title="' . $strUseThisValue
+ . ($key_ordered_current_val_title != '' ? ': ' . $key_ordered_current_val_title : '') . '"'
+ .' onclick="formupdate(\'' . md5($field) . '\', \''
+ . PMA_jsFormat($key_ordered_current_key, false) . '\'); return false;">'
+ .htmlspecialchars($key_ordered_current_key) . '</a>' . ($key_ordered_current_equals_data ? '</strong>' : '');
+ ?></td>
+ <td>
+ <?php
+ echo ($key_ordered_current_equals_data ? '<strong>' : '')
+ . '<a href="#" title="' . $strUseThisValue . ($key_ordered_current_val_title != '' ? ': '
+ . $key_ordered_current_val_title : '') . '" onclick="formupdate(\''
+ . md5($field) . '\', \'' . PMA_jsFormat($key_ordered_current_key, false) . '\'); return false;">'
+ . $key_ordered_current_val . '</a>' . ($key_ordered_current_equals_data ? '</strong>' : '');
+ ?></td>
+ <td width="20%">
+ <img src="<?php echo $GLOBALS['pmaThemeImage'] . 'spacer.png'; ?>"
+ alt="" width="1" height="1"></td>
+
+ <td>
+ <?php
+ echo ($val_ordered_current_equals_data ? '<strong>' : '')
+ . '<a href="#" title="' . $strUseThisValue . ($val_ordered_current_val_title != '' ? ': '
+ . $val_ordered_current_val_title : '') . '" onclick="formupdate(\'' . md5($field)
+ . '\', \'' . PMA_jsFormat($val_ordered_current_key, false) . '\'); return false;">'
+ . $val_ordered_current_val . '</a>' . ($val_ordered_current_equals_data ? '</strong>' : '');
+ ?></td>
+ <td nowrap="nowrap">
+ <?php
+ echo ($val_ordered_current_equals_data ? '<strong>' : '') . '<a href="#" title="'
+ . $strUseThisValue . ($val_ordered_current_val_title != '' ? ': ' . $val_ordered_current_val_title : '')
+ . '" onclick="formupdate(\'' . md5($field) . '\', \''
+ . PMA_jsFormat($val_ordered_current_key, false) . '\'); return false;">' . htmlspecialchars($val_ordered_current_key)
+ . '</a>' . ($val_ordered_current_equals_data ? '</strong>' : '');
+ ?></td>
+ </tr>
+ <?php
+ } // end while
+}
+?>
+</tbody>
+</table>
+
+</body>
+</html>
diff --git a/bs_change_mime_type.php b/bs_change_mime_type.php
new file mode 100644
index 0000000000..d4bb984024
--- /dev/null
+++ b/bs_change_mime_type.php
@@ -0,0 +1,97 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+ /**
+ * @author Raj Kissu Rajandran
+ * @version 1.0
+ * @package BLOBStreaming
+ */
+ require_once './libraries/common.inc.php';
+
+ /**
+ * @var string contains database name
+ */
+ $bsDB = isset($_REQUEST['bs_db']) ? urldecode($_REQUEST['bs_db']) : NULL;
+
+ /**
+ * @var string contains table name
+ */
+ $bsTable = isset($_REQUEST['bs_table']) ? urldecode($_REQUEST['bs_table']) : NULL;
+
+ /**
+ * @var string contains BLOB reference
+ */
+ $bsReference = isset($_REQUEST['bs_reference']) ? urldecode($_REQUEST['bs_reference']) : NULL;
+
+ /**
+ * @var string contains MIME type
+ */
+ $bsNewMIMEType = isset($_REQUEST['bs_new_mime_type']) ? urldecode($_REQUEST['bs_new_mime_type']) : NULL;
+
+ // necessary variables exist
+ if ($bsDB && $bsTable && $bsReference && $bsNewMIMEType)
+ {
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if PMA configuration exists
+ if (!empty($PMA_Config))
+ {
+ // if BS plugins exist
+ if ($PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST'))
+ {
+ $mybs_ref_tbl = $PMA_Config->get('PBMS_NAME') . '_reference';
+ $mybs_cust_content_type_tbl = $PMA_Config->get('PBMS_NAME') . '_custom_content_type';
+
+ // if specified DB is selected
+ if (PMA_DBI_select_db($bsDB))
+ {
+ $query = "SELECT * FROM " . PMA_backquote($mybs_ref_tbl);
+ $query .= " WHERE Blob_url='" . PMA_sqlAddslashes($bsReference) . "'";
+
+ $result = PMA_DBI_query($query);
+
+ // if record exists
+ if ($data = PMA_DBI_fetch_assoc($result))
+ {
+ $query = "SELECT count(*) FROM " . PMA_backquote($mybs_cust_content_type_tbl);
+ $query .= " WHERE Blob_url='" . PMA_sqlAddslashes($bsReference) . "'";
+
+ $result = PMA_DBI_query($query);
+
+ // if record exists
+ if ($data = PMA_DBI_fetch_assoc($result))
+ {
+ if (1 == $data['count(*)'])
+ {
+ $query = "UPDATE " . PMA_backquote($mybs_cust_content_type_tbl) . " SET Content_type='";
+ $query .= PMA_sqlAddslashes($bsNewMIMEType) . "' WHERE Blob_url='" . PMA_sqlAddslashes($bsReference) . "'";
+ }
+ else
+ {
+ $query = "INSERT INTO " . PMA_backquote($mybs_cust_content_type_tbl) . " (Blob_url, Content_type)";
+ $query .= " VALUES('" . PMA_sqlAddslashes($bsReference) . "', '" . PMA_sqlAddslashes($bsNewMIMEType) . "')";
+ }
+
+ $result = PMA_DBI_query($query);
+
+ // if query execution succeeded
+ if ($result)
+ {
+ // determine redirector page
+ $newLoc = $cfg['PmaAbsoluteUri'] . 'sql.php?' . PMA_generate_common_url ('','', '&') . (isset($bsDB) ? '&db=' . urlencode($bsDB) : '') . (isset($bsTable) ? '&table=' . urlencode($bsTable) : '') . (isset($token) ? '&token=' . urlencode($token) : '') . (isset($goto) ? '&goto=' . urlencode($goto) : '') . '&reload=1&purge=1';
+
+ // redirect to specified page
+ ?>
+ <script>
+ window.location = "<?php echo $newLoc ?>";
+ </script>
+ <?php
+ } // end if ($result)
+ } // end if ($data = PMA_DBI_fetch_assoc($result))
+ } // end if ($data = PMA_DBI_fetch_assoc($result))
+ } // end if (PMA_DBI_select_db($bsDB))
+ } // end if ($PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST'))
+ } // end if (!empty($PMA_Config))
+ } // end if ($bsDB && $bsTable && $bsReference && $bsNewMIMEType)
+
+?>
diff --git a/bs_disp_as_mime_type.php b/bs_disp_as_mime_type.php
new file mode 100644
index 0000000000..921f5d8850
--- /dev/null
+++ b/bs_disp_as_mime_type.php
@@ -0,0 +1,52 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @author Raj Kissu Rajandran
+ * @version 1.0
+ * @package BLOBStreaming
+ */
+
+set_time_limit(0);
+
+$filename = isset($_REQUEST['file_path']) ? $_REQUEST['file_path'] : NULL;
+$c_type = isset($_REQUEST['c_type']) ? $_REQUEST['c_type'] : NULL;
+
+if (isset($filename) && isset($c_type))
+{
+ $hdrs = get_headers($filename, 1);
+
+ if (is_array($hdrs))
+ $f_size = $hdrs['Content-Length'];
+
+ header("Expires: 0");
+ header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
+ header("Cache-Control: no-store, no-cache, must-revalidate");
+ header("Cache-Control: post-check=0, pre-check=0", false);
+ header("Pragma: no-cache");
+ header("Content-type: $c_type");
+ header('Content-length: ' . $f_size);
+ header("Content-disposition: attachment; filename=" . basename($filename));
+
+ $fHnd = fopen($filename, "rb");
+
+ if ($fHnd)
+ {
+ $pos = 0;
+ $content = "";
+
+ while (!feof($fHnd))
+ {
+ $content .= fread($fHnd, $f_size);
+ $pos = strlen($content);
+
+ if ($pos >= $f_size)
+ break;
+ }
+
+ echo $content;
+ flush();
+
+ fclose($fHnd);
+ }
+}
+?>
diff --git a/bs_play_media.php b/bs_play_media.php
new file mode 100644
index 0000000000..42eb06cc45
--- /dev/null
+++ b/bs_play_media.php
@@ -0,0 +1,70 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+ /**
+ * @author Raj Kissu Rajandran
+ * @version 1.0
+ * @package BLOBStreaming
+ */
+ require_once './libraries/common.inc.php';
+
+ /*
+ * @var string contains media type of BLOB reference
+ */
+ $mediaType = isset($_REQUEST['media_type']) ? $_REQUEST['media_type'] : NULL;
+
+ /*
+ * @var string indicates whether media type is of custom type
+ */
+ $customType = isset($_REQUEST['custom_type']) ? $_REQUEST['custom_type'] : false;
+
+ /*
+ * @var string contains BLOB reference
+ */
+ $bsReference = isset($_REQUEST['bs_reference']) ? $_REQUEST['bs_reference'] : NULL;
+
+ // if media type and BS reference are specified
+ if (isset($mediaType) && isset($bsReference))
+ {
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if PMA configuration exists
+ if (!empty($PMA_Config))
+ {
+ // retrieve BS server variables from PMA configuration
+ $bs_server = $PMA_Config->get('BLOBSTREAMING_SERVER');
+ $bs_file_path = "http://" . $bs_server . '/' . $bsReference;
+
+ if (isset($customType) && $customType)
+ $bs_file_path = "bs_disp_as_mime_type.php?file_path=" . urlencode($bs_file_path) . "&c_type=" . urlencode($mediaType);
+
+ ?>
+<html>
+ <head>
+ </head>
+ <body>
+ <?php
+
+ // supported media types
+ switch ($mediaType)
+ {
+ // audio content
+ case 'audio/mpeg':
+ ?><embed width=620 height=100 src="<?php echo $bs_file_path; ?>" autostart=true></embed><?php
+ break;
+ // video content
+ case 'application/x-flash-video':
+ case 'video/mpeg':
+ ?><embed width=620 height=460 src="<?php echo $bs_file_path; ?>" autostart=true></embed><?php
+ break;
+ default:
+ // do nothing
+ }
+ ?>
+ </body>
+</html>
+ <?php
+ } // end if (!empty($PMA_Config))
+ } // end if (isset($mediaType) && isset($bsReference))
+
+?>
diff --git a/calendar.php b/calendar.php
new file mode 100644
index 0000000000..6cc2f62900
--- /dev/null
+++ b/calendar.php
@@ -0,0 +1,30 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/header_http.inc.php';
+$page_title = $strCalendar;
+require './libraries/header_meta_style.inc.php';
+$GLOBALS['js_include'][] = 'tbl_change.js';
+require './libraries/header_scripts.inc.php';
+?>
+<script type="text/javascript">
+//<![CDATA[
+var month_names = new Array("<?php echo implode('","', $month); ?>");
+var day_names = new Array("<?php echo implode('","', $day_of_week); ?>");
+var submit_text = "<?php echo $strGo . ' (' . $strTime . ')'; ?>";
+//]]>
+</script>
+</head>
+<body onload="initCalendar();">
+<div id="calendar_data"></div>
+<div id="clock_data"></div>
+</body>
+</html>
diff --git a/changelog.php b/changelog.php
new file mode 100644
index 0000000000..006070b6f8
--- /dev/null
+++ b/changelog.php
@@ -0,0 +1,87 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Simple script to set correct charset for changelog
+ *
+ * @version $Id$
+ */
+
+$changelog = htmlspecialchars(file_get_contents('ChangeLog'));
+
+$replaces = array(
+ '@(http://[./a-zA-Z0-9.-]*[/a-zA-Z0-9])@'
+ => '<a href="\\1">\\1</a>',
+
+ // sourceforge users
+ '/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +&lt;(.*)@users.sourceforge.net&gt;/i'
+ => '\\1 <a href="https://sourceforge.net/users/\\3/">\\2</a>',
+ '/thanks to ([^\(\r\n]+) \(([-\w]+)\)/i'
+ => 'thanks to <a href="https://sourceforge.net/users/\\2/">\\1</a>',
+ '/thanks to ([^\(\r\n]+) -\s+([-\w]+)/i'
+ => 'thanks to <a href="https://sourceforge.net/users/\\2/">\\1</a>',
+
+ // mail adresse
+ '/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +&lt;(.*@.*)&gt;/i'
+ => '\\1 <a href="mailto:\\3">\\2</a>',
+
+ // linking patches
+ '/patch\s*#?([0-9]{6,})/i'
+ => '<a href="https://sourceforge.net/support/tracker.php?aid=\\1">patch #\\1</a>',
+
+ // linking RFE
+ '/(?:rfe|feature)\s*#?([0-9]{6,})/i'
+ => '<a href="https://sourceforge.net/support/tracker.php?aid=\\1">RFE #\\1</a>',
+
+ // linking files
+ '/(\s+)([\\/a-z_0-9\.]+\.(?:php3?|html|pl|js|sh))/i'
+ => '\\1<a href="http://phpmyadmin.svn.sourceforge.net/viewvc/phpmyadmin/trunk/phpMyAdmin/\\2?annotate=HEAD">\\2</a>',
+
+ // FAQ entries
+ '/FAQ ([0-9]+)\.([0-9a-z]+)/i'
+ => '<a href="http://localhost/phpMyAdmin/Documentation.html#faq\\1_\\2">FAQ \\1.\\2</a>',
+
+ // linking bugs
+ '/bug\s*#?([0-9]{6,})/i'
+ => '<a href="https://sourceforge.net/support/tracker.php?aid=\\1">bug #\\1</a>',
+
+ // all other 6+ digit numbers are treated as bugs
+ '/(?<!BUG|RFE|patch) #?([0-9]{6,})/i'
+ => ' <a href="https://sourceforge.net/support/tracker.php?aid=\\1">bug #\\1</a>',
+
+ // CVE/CAN entries
+ '/((CAN|CVE)-[0-9]+-[0-9]+)/'
+ => '<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=\\1">\\1</a>',
+
+ // Highlight releases (with links)
+ '/(( ### )(([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+) (.*)))/'
+ => '<a name="\\4_\\5_\\6_\\7"></a>\\2<a href="http://svn.sourceforge.net/viewvc/phpmyadmin/tags/RELEASE_\\4_\\5_\\6_\\7/phpMyAdmin">\\4.\\5.\\6.\\7 \\8</a>',
+ '/(( ### )(([0-9]+)\.([0-9]+)\.([0-9]+) (.*)))/'
+ => '<a name="\\4_\\5_\\6_\\7"></a>\\2<a href="http://svn.sourceforge.net/viewvc/phpmyadmin/tags/RELEASE_\\4_\\5_\\6/phpMyAdmin">\\4.\\5.\\6 \\7</a>',
+
+ // Highlight releases (not linkable)
+ '/( ### )(.*)/'
+ => '\\1<b>\\2</b>',
+
+);
+
+header('Content-type: text/html; charset=utf-8');
+echo '<?xml version="1.0" encoding="utf-8"?'.'>';
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
+<head>
+<link rel="icon" href="./favicon.ico" type="image/x-icon" />
+<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+<title>phpMyAdmin - ChangeLog</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+</head>
+<body>
+<h1>phpMyAdmin - ChangeLog</h1>
+<?php
+echo '<pre>';
+echo preg_replace(array_keys($replaces), $replaces, $changelog);
+echo '</pre>';
+?>
+</body>
+</html>
diff --git a/chk_rel.php b/chk_rel.php
new file mode 100644
index 0000000000..a70e86ceb1
--- /dev/null
+++ b/chk_rel.php
@@ -0,0 +1,26 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/db_common.inc.php';
+require_once './libraries/relation.lib.php';
+
+
+/**
+ * Gets the relation settings
+ */
+$cfgRelation = PMA_getRelationsParam(TRUE);
+
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/config.sample.inc.php b/config.sample.inc.php
new file mode 100644
index 0000000000..57ccbe9af5
--- /dev/null
+++ b/config.sample.inc.php
@@ -0,0 +1,69 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * phpMyAdmin sample configuration, you can use it as base for
+ * manual configuration. For easier setup you can use setup/
+ *
+ * All directives are explained in Documentation.html and on phpMyAdmin
+ * wiki <http://wiki.cihar.com>.
+ *
+ * @version $Id$
+ */
+
+/*
+ * This is needed for cookie based authentication to encrypt password in
+ * cookie
+ */
+$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
+
+/*
+ * Servers configuration
+ */
+$i = 0;
+
+/*
+ * First server
+ */
+$i++;
+/* Authentication type */
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+/* Server parameters */
+$cfg['Servers'][$i]['host'] = 'localhost';
+$cfg['Servers'][$i]['connect_type'] = 'tcp';
+$cfg['Servers'][$i]['compress'] = false;
+/* Select mysqli if your server has it */
+$cfg['Servers'][$i]['extension'] = 'mysql';
+
+/* rajk - for blobstreaming */
+$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
+$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
+$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
+$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';
+
+/* User for advanced features */
+// $cfg['Servers'][$i]['controluser'] = 'pma';
+// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
+/* Advanced phpMyAdmin features */
+// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
+// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
+// $cfg['Servers'][$i]['relation'] = 'pma_relation';
+// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
+// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
+// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
+// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
+// $cfg['Servers'][$i]['history'] = 'pma_history';
+// $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
+/* Contrib / Swekey authentication */
+// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
+
+/*
+ * End of servers configuration
+ */
+
+/*
+ * Directories for saving/loading files from server
+ */
+$cfg['UploadDir'] = '';
+$cfg['SaveDir'] = '';
+
+?>
diff --git a/contrib/README b/contrib/README
new file mode 100644
index 0000000000..35be9bcac8
--- /dev/null
+++ b/contrib/README
@@ -0,0 +1,12 @@
+$Id$
+
+This directory contains various stuff contributed by users that might be
+useful to other. There is no guarantee it will work for you.
+
+Current content of this directory:
+
+packaging - Contains files needed for creating packages for various
+ distributions. Please prefer official packages from your vendor if
+ possible.
+
+vim: expandtab ts=4 sw=4 sts=4 tw=78
diff --git a/contrib/packaging/Fedora/phpMyAdmin-http.conf b/contrib/packaging/Fedora/phpMyAdmin-http.conf
new file mode 100644
index 0000000000..4fb1041267
--- /dev/null
+++ b/contrib/packaging/Fedora/phpMyAdmin-http.conf
@@ -0,0 +1,12 @@
+#
+# MySQL server administration.
+#
+Alias /phpMyAdmin /var/www/myadmin
+
+<Directory /var/www/myadmin>
+ DirectoryIndex index.php
+ Options Indexes Includes ExecCGI
+ AllowOverride None
+ Order deny,allow
+ Allow from all
+</Directory>
diff --git a/contrib/packaging/Fedora/phpMyAdmin.spec b/contrib/packaging/Fedora/phpMyAdmin.spec
new file mode 100644
index 0000000000..3441a93313
--- /dev/null
+++ b/contrib/packaging/Fedora/phpMyAdmin.spec
@@ -0,0 +1,163 @@
+%define _myadminpath /var/www/myadmin
+%define pkgrelease rc1
+%define microrelease 1
+
+Name: phpMyAdmin
+Version: 2.8.0
+Release: %{pkgrelease}.%{microrelease}
+License: GPL
+Group: Applications/Databases/Interfaces
+Source0: http://prdownloads.sourceforge.net/phpmyadmin/%{name}-%{version}-%{pkgrelease}.tar.bz2
+Source1: phpMyAdmin-http.conf
+URL: http://sourceforge.net/projects/phpmyadmin/
+Requires: mysql
+Requires: php-mysql
+Buildarch: noarch
+BuildRoot: %{_tmppath}/%{name}-root
+
+Summary: phpMyAdmin - web-based MySQL administration
+
+%description
+phpMyAdmin can manage a whole MySQL-server (needs a super-user) but
+also a single database. To accomplish the latter you'll need a
+properly set up MySQL-user which can read/write only the desired
+database. It's up to you to look up the appropiate part in the MySQL
+manual. Currently phpMyAdmin can:
+ - create and drop databases
+ - create, copy, drop and alter tables
+ - delete, edit and add fields
+ - execute any SQL-statement, even batch-queries
+ - manage keys on fields
+ - load text files into tables
+ - create (*) and read dumps of tables
+ - export (*) and import data to CSV values
+ - administer multiple servers and single databases
+ - check referencial integrity
+ - create complex queries automatically connecting required tables
+ - create PDF graphics of your database layout
+ - communicate in more than 38 different languages
+
+
+%prep
+%setup -q -n %{name}-%{version}-%{pkgrelease}
+
+
+%build
+
+
+%install
+[ "${RPM_BUILD_ROOT}" != "/" ] && [ -d "${RPM_BUILD_ROOT}" ] && \
+ rm -rf "${RPM_BUILD_ROOT}"
+
+# Create directories.
+
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/{css,js,lang,libraries,themes}
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/{auth,dbg,dbi,engines}
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/{export,tcpdf,import}
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/transformations
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/libraries/tcpdf/font
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/themes/{darkblue_orange,original}
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/themes/darkblue_orange/{css,img}
+install -d "${RPM_BUILD_ROOT}%{_myadminpath}"/themes/original/{css,img}
+
+# Install files.
+
+install libraries/config.default.php \
+ "${RPM_BUILD_ROOT}%{_myadminpath}"/config.inc.php
+install *.{php,ico} "${RPM_BUILD_ROOT}%{_myadminpath}"/
+install ChangeLog LICENSE README "${RPM_BUILD_ROOT}%{_myadminpath}"/
+install Documentation.html docs.css "${RPM_BUILD_ROOT}%{_myadminpath}"/
+install css/* "${RPM_BUILD_ROOT}%{_myadminpath}/css"/
+install js/* "${RPM_BUILD_ROOT}%{_myadminpath}/js"/
+install lang/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/lang"/
+install libraries/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries"/
+install libraries/auth/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/auth"/
+install libraries/dbg/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/dbg"/
+install libraries/dbi/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/dbi"/
+install libraries/engines/*.php \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/engines"/
+install libraries/export/*.php \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/export"/
+install libraries/tcpdf/*.php "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/tcpdf"/
+install libraries/tcpdf/font/*.{php,z} \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/tcpdf/font"/
+install libraries/import/*.php \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/import"/
+install libraries/transformations/*.php \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/libraries/transformations"/
+install themes/darkblue_orange/*.{php,png} \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/darkblue_orange"/
+install themes/darkblue_orange/css/*.php \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/darkblue_orange/css"/
+install themes/darkblue_orange/img/*.{png,ico} \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/darkblue_orange/img"/
+install themes/original/*.{php,png} \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/original"/
+install themes/original/css/*.php \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/original/css"/
+install themes/original/img/*.{png,ico} \
+ "${RPM_BUILD_ROOT}%{_myadminpath}/themes/original/img"/
+
+# Create documentation directories.
+
+DOCROOT="${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}"
+install -d "${DOCROOT}"
+install -d "${DOCROOT}"/{lang,scripts,transformations}
+
+# Install documentation files.
+
+install RELEASE-DATE-* "${DOCROOT}"/
+install CREDITS ChangeLog INSTALL LICENSE "${DOCROOT}"/
+install README TODO "${DOCROOT}"/
+install Documentation.* docs.css "${DOCROOT}"/
+install translators.html "${DOCROOT}"/
+install lang/*.sh "${DOCROOT}"/lang/
+install scripts/* "${DOCROOT}"/scripts/
+install libraries/tcpdf/README "${DOCROOT}"/README.tcpdf
+install libraries/import/README "${DOCROOT}"/README.import
+install libraries/transformations/README "${DOCROOT}"/transformations/
+install libraries/transformations/TEMPLATE* "${DOCROOT}"/transformations/
+install libraries/transformations/*.sh "${DOCROOT}"/transformations/
+
+# Install configuration file for Apache.
+
+install -d "${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d"
+install "%{SOURCE1}" \
+ "${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d/phpMyAdmin.conf"
+
+# Generate non-configuration file list.
+
+(cd "${RPM_BUILD_ROOT}"; ls -d ."%{_myadminpath}"/*) |
+ sed -e '/\/config\.inc\.php$/d' -e 's/^.//' > files.list
+
+
+
+%clean
+[ "${RPM_BUILD_ROOT}" != "/" ] && [ -d "${RPM_BUILD_ROOT}" ] && \
+ rm -rf "${RPM_BUILD_ROOT}"
+
+
+%files -f files.list
+%defattr(644, root, root, 755)
+%doc %{_docdir}/%{name}-%{version}
+%dir %{_myadminpath}
+%attr(640,root,apache) %config(noreplace) %verify(not size mtime md5) %{_myadminpath}/config.inc.php
+%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/httpd/conf.d/*
+
+
+%changelog
+* Thu Feb 23 2006 Patrick Monnerat <pm@datasphere.ch>
+- Version 2.8.0-rc1.1.
+
+* Thu Dec 22 2005 Patrick Monnerat <patrick.monnerat@econophone.ch>
+- Path "nullpw" to allow trying connection with null password after failure.
+- Version 2.7.0-pl1.1.
+
+* Mon Aug 22 2005 Patrick Monnerat <patrick.monnerat@econophone.ch>
+- Version 2.6.3-pl1.
+
+* Wed Jul 21 2004 Patrick Monnerat <patrick.monnerat@econophone.ch>
+- Version 2.5.7-pl1.
+
+* Fri Nov 22 2002 Patrick Monnerat <patrick.monnerat@econophone.ch>
+- Version 2.3.0-rc1.
diff --git a/contrib/swekey.sample.conf b/contrib/swekey.sample.conf
new file mode 100644
index 0000000000..ebf1aedf02
--- /dev/null
+++ b/contrib/swekey.sample.conf
@@ -0,0 +1,44 @@
+# This is a typical file used to enable Swekey hardware authentication.
+#
+# To activate the Swekey authentication add the following line to your config.inc.php file.
+# $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
+# Then rename this file "swekey-pma.conf" and copy it to the /etc directory.
+# Add all the Swekey ids you want to grant access to in the file.
+# After each Swekey id put the corresponding user name.
+#
+# If you don't know the id of a Swekey just visit http://www.swekey.com?sel=support
+# while your Swekey is connected.
+#
+# If you need to purchase a Swekey please visit http://phpmyadmin.net/auth_key
+# since this link provides funding to PhpMyAdmin.
+#
+
+0000000000000000000000000000763A:root
+000000000000000000000000000089E4:steve
+0000000000000000000000000000231E:scott
+
+#
+# It is recommended to include the following lines to contact the
+# authentication servers in SSL mode.
+#
+
+SERVER_CHECK=https://auth-check-ssl.musbe.net
+SERVER_RNDTOKEN=https://auth-rnd-gen-ssl.musbe.net
+SERVER_STATUS=https://auth-status-ssl.musbe.net
+
+#
+# The path of the root certificate file used to ensure a secure
+# communication with the authentication servers in SSL mode.
+# If not specified, will use musbe-ca.crt found in your
+# phpMyAdmin/libraries/auth/swekey.
+#
+
+#CA_FILE=/var/http-root/phpmyadmin/libraries/auth/swekey/musbe-ca.crt
+
+#
+# If your server receives many login requests, you can enable the random
+# token caching to accelerate the authentication process.
+# Token caching is enabled by default.
+#
+
+#ENABLE_TOKEN_CACHE=0
diff --git a/db_create.php b/db_create.php
new file mode 100644
index 0000000000..686923b229
--- /dev/null
+++ b/db_create.php
@@ -0,0 +1,52 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+$GLOBALS['js_include'][] = 'functions.js';
+require_once './libraries/mysql_charsets.lib.php';
+
+PMA_checkParameters(array('new_db'));
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+$err_url = 'main.php?' . PMA_generate_common_url();
+
+/**
+ * Builds and executes the db creation sql query
+ */
+$sql_query = 'CREATE DATABASE ' . PMA_backquote($new_db);
+if (!empty($db_collation)) {
+ list($db_charset) = explode('_', $db_collation);
+ if (in_array($db_charset, $mysql_charsets) && in_array($db_collation, $mysql_collations[$db_charset])) {
+ $sql_query .= ' DEFAULT' . PMA_generateCharsetQueryPart($db_collation);
+ }
+ unset($db_charset, $db_collation);
+}
+$sql_query .= ';';
+
+$result = PMA_DBI_try_query($sql_query);
+
+if (! $result) {
+ $message = PMA_Message::rawError(PMA_DBI_getError());
+ // avoid displaying the not-created db name in header or navi panel
+ $GLOBALS['db'] = '';
+ $GLOBALS['table'] = '';
+ require_once './libraries/header.inc.php';
+ require_once './main.php';
+} else {
+ $message = PMA_Message::success('strDatabaseHasBeenCreated');
+ $message->addParam($new_db);
+ $GLOBALS['db'] = $new_db;
+
+ require_once './libraries/header.inc.php';
+ require_once './' . $cfg['DefaultTabDatabase'];
+}
+?>
diff --git a/db_datadict.php b/db_datadict.php
new file mode 100644
index 0000000000..18086bb16e
--- /dev/null
+++ b/db_datadict.php
@@ -0,0 +1,327 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets the variables sent or posted to this script, then displays headers
+ */
+require_once './libraries/common.inc.php';
+
+if (!isset($selected_tbl)) {
+ require_once './libraries/header.inc.php';
+}
+
+
+/**
+ * Gets the relations settings
+ */
+require_once './libraries/relation.lib.php';
+require_once './libraries/transformations.lib.php';
+
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Check parameters
+ */
+PMA_checkParameters(array('db'));
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+if (strlen($table)) {
+ $err_url = 'tbl_sql.php?' . PMA_generate_common_url($db, $table);
+} else {
+ $err_url = 'db_sql.php?' . PMA_generate_common_url($db);
+}
+
+if ($cfgRelation['commwork']) {
+ $comment = PMA_getDbComment($db);
+
+ /**
+ * Displays DB comment
+ */
+ if ($comment) {
+ ?>
+ <p> <?php echo $strDBComment; ?>
+ <i><?php echo htmlspecialchars($comment); ?></i></p>
+ <?php
+ } // end if
+}
+
+/**
+ * Selects the database and gets tables names
+ */
+PMA_DBI_select_db($db);
+$rowset = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
+
+$count = 0;
+while ($row = PMA_DBI_fetch_assoc($rowset)) {
+ $myfieldname = 'Tables_in_' . htmlspecialchars($db);
+ $table = $row[$myfieldname];
+ $comments = PMA_getComments($db, $table);
+
+ if ($count != 0) {
+ echo '<div style="page-break-before: always;">' . "\n";
+ } else {
+ echo '<div>' . "\n";
+ }
+
+ echo '<h2>' . $table . '</h2>' . "\n";
+
+ /**
+ * Gets table informations
+ */
+ // The 'show table' statement works correct since 3.23.03
+ $showtable = PMA_DBI_get_tables_full($db, $table);
+ $num_rows = (isset($showtable[$table]['TABLE_ROWS']) ? $showtable[$table]['TABLE_ROWS'] : 0);
+ $show_comment = (isset($showtable[$table]['TABLE_COMMENT']) ? $showtable[$table]['TABLE_COMMENT'] : '');
+ unset($showtable);
+
+
+ /**
+ * Gets table keys and retains them
+ */
+
+ PMA_DBI_select_db($db);
+ $result = PMA_DBI_query('SHOW KEYS FROM ' . PMA_backquote($table) . ';');
+ $primary = '';
+ $indexes = array();
+ $lastIndex = '';
+ $indexes_info = array();
+ $indexes_data = array();
+ $pk_array = array(); // will be use to emphasis prim. keys in the table
+ // view
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ // Backups the list of primary keys
+ if ($row['Key_name'] == 'PRIMARY') {
+ $primary .= $row['Column_name'] . ', ';
+ $pk_array[$row['Column_name']] = 1;
+ }
+ // Retains keys informations
+ if ($row['Key_name'] != $lastIndex){
+ $indexes[] = $row['Key_name'];
+ $lastIndex = $row['Key_name'];
+ }
+ $indexes_info[$row['Key_name']]['Sequences'][] = $row['Seq_in_index'];
+ $indexes_info[$row['Key_name']]['Non_unique'] = $row['Non_unique'];
+ if (isset($row['Cardinality'])) {
+ $indexes_info[$row['Key_name']]['Cardinality'] = $row['Cardinality'];
+ }
+ // I don't know what does following column mean....
+ // $indexes_info[$row['Key_name']]['Packed'] = $row['Packed'];
+
+ $indexes_info[$row['Key_name']]['Comment'] = $row['Comment'];
+
+ $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Column_name'] = $row['Column_name'];
+ if (isset($row['Sub_part'])) {
+ $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Sub_part'] = $row['Sub_part'];
+ }
+
+ } // end while
+ if ($result) {
+ PMA_DBI_free_result($result);
+ }
+
+
+ /**
+ * Gets fields properties
+ */
+ $result = PMA_DBI_query('SHOW FIELDS FROM ' . PMA_backquote($table) . ';', null, PMA_DBI_QUERY_STORE);
+ $fields_cnt = PMA_DBI_num_rows($result);
+
+ if (PMA_MYSQL_INT_VERSION < 50025) {
+ // We need this to correctly learn if a TIMESTAMP is NOT NULL, since
+ // SHOW FULL FIELDS or INFORMATION_SCHEMA incorrectly says NULL
+ // and SHOW CREATE TABLE says NOT NULL
+ // http://bugs.mysql.com/20910.
+
+ $show_create_table = PMA_DBI_fetch_value(
+ 'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table),
+ 0, 1);
+ $analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
+ }
+
+ // Check if we can use Relations (Mike Beck)
+ if (!empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if (count($res_rel) > 0) {
+ $have_rel = TRUE;
+ } else {
+ $have_rel = FALSE;
+ }
+ } else {
+ $have_rel = FALSE;
+ } // end if
+
+
+ /**
+ * Displays the comments of the table if MySQL >= 3.23
+ */
+ if (!empty($show_comment)) {
+ echo $strTableComments . ': ' . htmlspecialchars($show_comment) . '<br /><br />';
+ }
+
+ /**
+ * Displays the table structure
+ */
+ ?>
+
+<table width="100%" class="print">
+<tr><th width="50"><?php echo $strField; ?></th>
+ <th width="80"><?php echo $strType; ?></th>
+<?php /* <th width="50"><?php echo $strAttr; ?></th>*/ ?>
+ <th width="40"><?php echo $strNull; ?></th>
+ <th width="70"><?php echo $strDefault; ?></th>
+<?php /* <th width="50"><?php echo $strExtra; ?></th>*/ ?>
+ <?php
+ if ($have_rel) {
+ echo ' <th>' . $strLinksTo . '</th>' . "\n";
+ }
+ echo ' <th>' . $strComments . '</th>' . "\n";
+ if ($cfgRelation['mimework']) {
+ echo ' <th>MIME</th>' . "\n";
+ }
+ ?>
+</tr>
+ <?php
+ $odd_row = true;
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+
+ if ($row['Null'] == '') {
+ $row['Null'] = 'NO';
+ }
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ if (preg_match('@^(set|enum)\((.+)\)$@i', $type, $tmp)) {
+ $tmp[2] = substr(preg_replace('@([^,])\'\'@', '\\1\\\'', ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $binary = stristr($row['Type'], 'binary');
+ $unsigned = stristr($row['Type'], 'unsigned');
+ $zerofill = stristr($row['Type'], 'zerofill');
+ $type_nowrap = ' nowrap="nowrap"';
+ $type = preg_replace('@BINARY@i', '', $type);
+ $type = preg_replace('@ZEROFILL@i', '', $type);
+ $type = preg_replace('@UNSIGNED@i', '', $type);
+ if (empty($type)) {
+ $type = ' ';
+ }
+ }
+ $strAttribute = ' ';
+ if ($binary) {
+ $strAttribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $strAttribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $strAttribute = 'UNSIGNED ZEROFILL';
+ }
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != 'NO') {
+ $row['Default'] = '<i>NULL</i>';
+ }
+ } else {
+ $row['Default'] = htmlspecialchars($row['Default']);
+ }
+ $field_name = htmlspecialchars($row['Field']);
+
+ if (PMA_MYSQL_INT_VERSION < 50025
+ && ! empty($analyzed_sql[0]['create_table_fields'][$field_name]['type'])
+ && $analyzed_sql[0]['create_table_fields'][$field_name]['type'] == 'TIMESTAMP'
+ && $analyzed_sql[0]['create_table_fields'][$field_name]['timestamp_not_null']) {
+ // here, we have a TIMESTAMP that SHOW FULL FIELDS reports as having the
+ // NULL attribute, but SHOW CREATE TABLE says the contrary. Believe
+ // the latter.
+ /**
+ * @todo merge this logic with the one in tbl_structure.php
+ * or move it in a function similar to PMA_DBI_get_columns_full()
+ * but based on SHOW CREATE TABLE because information_schema
+ * cannot be trusted in this case (MySQL bug)
+ */
+ $row['Null'] = 'NO';
+ }
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; $odd_row = ! $odd_row; ?>">
+ <td nowrap="nowrap">
+ <?php
+ if (isset($pk_array[$row['Field']])) {
+ echo '<u>' . $field_name . '</u>';
+ } else {
+ echo $field_name;
+ }
+ ?>
+ </td>
+ <td<?php echo $type_nowrap; ?> xml:lang="en" dir="ltr"><?php echo $type; ?></td>
+<?php /* <td<?php echo $type_nowrap; ?>><?php echo $strAttribute; ?></td>*/ ?>
+ <td><?php echo (($row['Null'] == 'NO') ? $strNo : $strYes); ?></td>
+ <td nowrap="nowrap"><?php if (isset($row['Default'])) { echo $row['Default']; } ?></td>
+<?php /* <td<?php echo $type_nowrap; ?>><?php echo $row['Extra']; ?></td>*/ ?>
+ <?php
+ if ($have_rel) {
+ echo ' <td>';
+ if (isset($res_rel[$field_name])) {
+ echo htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' -> ' . $res_rel[$field_name]['foreign_field']);
+ }
+ echo '</td>' . "\n";
+ }
+ echo ' <td>';
+ if (isset($comments[$field_name])) {
+ echo htmlspecialchars($comments[$field_name]);
+ }
+ echo '</td>' . "\n";
+ if ($cfgRelation['mimework']) {
+ $mime_map = PMA_getMIME($db, $table, true);
+
+ echo ' <td>';
+ if (isset($mime_map[$field_name])) {
+ echo htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype']));
+ }
+ echo '</td>' . "\n";
+ }
+ ?>
+</tr>
+ <?php
+ } // end while
+ PMA_DBI_free_result($result);
+ $count++;
+ ?>
+</table>
+</div>
+ <?php
+} //ends main while
+
+/**
+ * Displays the footer
+ */
+?>
+<script type="text/javascript">
+//<![CDATA[
+function printPage()
+{
+ document.getElementById('print').style.visibility = 'hidden';
+ // Do print the page
+ if (typeof(window.print) != 'undefined') {
+ window.print();
+ }
+ document.getElementById('print').style.visibility = '';
+}
+//]]>
+</script>
+<?php
+echo '<br /><br /><input type="button" id="print" value="' . $strPrint . '" onclick="printPage()" />';
+
+require_once './libraries/footer.inc.php';
+?>
diff --git a/db_export.php b/db_export.php
new file mode 100644
index 0000000000..30c84cdb0e
--- /dev/null
+++ b/db_export.php
@@ -0,0 +1,77 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * dumps a database
+ *
+ * @version $Id$
+ * @uses libraries/db_common.inc.php
+ * @uses libraries/db_info.inc.php
+ * @uses libraries/display_export.lib.php
+ * @uses $tables from libraries/db_info.inc.php
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+
+// $sub_part is also used in db_info.inc.php to see if we are coming from
+// db_export.php, in which case we don't obey $cfg['MaxTableList']
+$sub_part = '_export';
+require_once './libraries/db_common.inc.php';
+$url_query .= '&amp;goto=db_export.php';
+require_once './libraries/db_info.inc.php';
+
+/**
+ * Displays the form
+ */
+$export_page_title = $strViewDumpDB;
+
+// exit if no tables in db found
+if ($num_tables < 1) {
+ PMA_Message::error('strNoTablesFound')->display();
+ require './libraries/footer.inc.php';
+ exit;
+} // end if
+
+$checkall_url = 'db_export.php?'
+ . PMA_generate_common_url($db)
+ . '&amp;goto=db_export.php';
+
+$multi_values = '<div align="center">';
+$multi_values .= '<a href="' . $checkall_url . '" onclick="setSelectOptions(\'dump\', \'table_select[]\', true); return false;">' . $strSelectAll . '</a>
+ /
+ <a href="' . $checkall_url . '&amp;unselectall=1" onclick="setSelectOptions(\'dump\', \'table_select[]\', false); return false;">' . $strUnselectAll . '</a><br />';
+
+$multi_values .= '<select name="table_select[]" size="6" multiple="multiple">';
+$multi_values .= "\n";
+
+foreach ($tables as $each_table) {
+ // ok we show also views
+ //if (is_null($each_table['Engine'])) {
+ // Don't offer to export views yet.
+ // continue;
+ //}
+ if (! empty($unselectall)
+ || (isset($tmp_select)
+ && false !== strpos($tmp_select, '|' . $each_table['Name'] . '|'))) {
+ $is_selected = '';
+ } else {
+ $is_selected = ' selected="selected"';
+ }
+ $table_html = htmlspecialchars($each_table['Name']);
+ $multi_values .= ' <option value="' . $table_html . '"'
+ . $is_selected . '>'
+ . str_replace(' ', '&nbsp;', $table_html) . '</option>' . "\n";
+} // end for
+$multi_values .= "\n";
+$multi_values .= '</select></div><br />';
+
+$export_type = 'database';
+require_once './libraries/display_export.lib.php';
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/db_import.php b/db_import.php
new file mode 100644
index 0000000000..94fd9f0373
--- /dev/null
+++ b/db_import.php
@@ -0,0 +1,27 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Gets tables informations and displays top links
+ */
+require './libraries/db_common.inc.php';
+require './libraries/db_info.inc.php';
+
+$import_type = 'database';
+require './libraries/display_import.lib.php';
+
+/**
+ * Displays the footer
+ */
+require './libraries/footer.inc.php';
+?>
+
diff --git a/db_operations.php b/db_operations.php
new file mode 100644
index 0000000000..3fdec290cd
--- /dev/null
+++ b/db_operations.php
@@ -0,0 +1,673 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * handles miscellaneous db operations:
+ * - move/rename
+ * - copy
+ * - changing collation
+ * - changing comment
+ * - adding tables
+ * - viewing PDF schemas
+ *
+ * @version $Id$
+ */
+
+/**
+ * requirements
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+require_once './libraries/mysql_charsets.lib.php';
+
+// add blobstreaming library functions
+require_once "./libraries/blobstreaming.lib.php";
+
+/**
+ * Rename/move or copy database
+ */
+if (strlen($db) && (! empty($db_rename) || ! empty($db_copy))) {
+
+ if (! empty($db_rename)) {
+ $move = true;
+ } else {
+ $move = false;
+ }
+
+ if (!isset($newname) || !strlen($newname)) {
+ $message = PMA_Message::error('strDatabaseEmpty');
+ } else {
+ $sql_query = ''; // in case target db exists
+ $_error = false;
+ if ($move ||
+ (isset($create_database_before_copying) && $create_database_before_copying)) {
+ // lower_case_table_names=1 `DB` becomes `db`
+ $lower_case_table_names = PMA_DBI_fetch_value('SHOW VARIABLES LIKE "lower_case_table_names"', 0, 1);
+ if ($lower_case_table_names === '1') {
+ $newname = strtolower($newname);
+ }
+
+ $local_query = 'CREATE DATABASE ' . PMA_backquote($newname);
+ if (isset($db_collation)) {
+ $local_query .= ' DEFAULT' . PMA_generateCharsetQueryPart($db_collation);
+ }
+ $local_query .= ';';
+ $sql_query = $local_query;
+ PMA_DBI_query($local_query);
+
+ // rebuild the database list because PMA_Table::moveCopy
+ // checks in this list if the target db exists
+ $GLOBALS['pma']->databases->build();
+ }
+
+ if (isset($GLOBALS['add_constraints'])) {
+ $GLOBALS['sql_constraints_query_full_db'] = '';
+ }
+
+ $tables_full = PMA_DBI_get_tables_full($db);
+ $views = array();
+ foreach ($tables_full as $each_table => $tmp) {
+ // to be able to rename a db containing views, we
+ // first collect in $views all the views we find and we
+ // will handle them after the tables
+ /**
+ * @todo support a view of a view
+ * @todo support triggers
+ */
+ if (PMA_Table::isView($db, $each_table)) {
+ $views[] = $each_table;
+ continue;
+ }
+
+ $back = $sql_query;
+ $sql_query = '';
+
+ // value of $what for this table only
+ $this_what = $what;
+
+ // do not copy the data from a Merge table
+ // note: on the calling FORM, 'data' means 'structure and data'
+ if ($tables_full[$each_table]['Engine'] == 'MRG_MyISAM') {
+ if ($this_what == 'data') {
+ $this_what = 'structure';
+ }
+ if ($this_what == 'dataonly') {
+ $this_what = 'nocopy';
+ }
+ }
+
+ if ($this_what != 'nocopy') {
+ if (! PMA_Table::moveCopy($db, $each_table, $newname, $each_table,
+ isset($this_what) ? $this_what : 'data', $move, 'db_copy'))
+ {
+ $_error = true;
+ // $sql_query is filled by PMA_Table::moveCopy()
+ $sql_query = $back . $sql_query;
+ break;
+ }
+ if (isset($GLOBALS['add_constraints'])) {
+ $GLOBALS['sql_constraints_query_full_db'] .= $GLOBALS['sql_constraints_query'];
+ unset($GLOBALS['sql_constraints_query']);
+ }
+ }
+ // $sql_query is filled by PMA_Table::moveCopy()
+ $sql_query = $back . $sql_query;
+ } // end (foreach)
+ unset($each_table);
+
+ // handle the views
+ if (! $_error) {
+ foreach ($views as $view) {
+ if (! PMA_Table::moveCopy($db, $view, $newname, $view,
+ 'structure', $move, 'db_copy')) {
+ $_error = true;
+ break;
+ }
+ }
+ }
+ unset($view, $views);
+
+ // now that all tables exist, create all the accumulated constraints
+ if (! $_error && isset($GLOBALS['add_constraints'])) {
+ /**
+ * @todo this works with mysqli but not with mysql, because
+ * mysql extension does not accept more than one statement; maybe
+ * interface with the sql import plugin that handles statement delimiter
+ */
+ PMA_DBI_query($GLOBALS['sql_constraints_query_full_db']);
+
+ // and prepare to display them
+ $GLOBALS['sql_query'] .= "\n" . $GLOBALS['sql_constraints_query_full_db'];
+ unset($GLOBALS['sql_constraints_query_full_db']);
+ }
+
+ if (PMA_MYSQL_INT_VERSION >= 50000) {
+ // here I don't use DELIMITER because it's not part of the
+ // language; I have to send each statement one by one
+
+ // to avoid selecting alternatively the current and new db
+ // we would need to modify the CREATE definitions to qualify
+ // the db name
+ $procedure_names = PMA_DBI_get_procedures_or_functions($db, 'PROCEDURE');
+ if ($procedure_names) {
+ foreach($procedure_names as $procedure_name) {
+ PMA_DBI_select_db($db);
+ $tmp_query = PMA_DBI_get_definition($db, 'PROCEDURE', $procedure_name);
+ // collect for later display
+ $GLOBALS['sql_query'] .= "\n" . $tmp_query;
+ PMA_DBI_select_db($newname);
+ PMA_DBI_query($tmp_query);
+ }
+ }
+
+ $function_names = PMA_DBI_get_procedures_or_functions($db, 'FUNCTION');
+ if ($function_names) {
+ foreach($function_names as $function_name) {
+ PMA_DBI_select_db($db);
+ $tmp_query = PMA_DBI_get_definition($db, 'FUNCTION', $function_name);
+ // collect for later display
+ $GLOBALS['sql_query'] .= "\n" . $tmp_query;
+ PMA_DBI_select_db($newname);
+ PMA_DBI_query($tmp_query);
+ }
+ }
+ }
+ // go back to current db, just in case
+ PMA_DBI_select_db($db);
+
+ // Duplicate the bookmarks for this db (done once for each db)
+ if (! $_error && $db != $newname) {
+ $get_fields = array('user', 'label', 'query');
+ $where_fields = array('dbase' => $db);
+ $new_fields = array('dbase' => $newname);
+ PMA_Table::duplicateInfo('bookmarkwork', 'bookmark', $get_fields,
+ $where_fields, $new_fields);
+ }
+
+ if (! $_error && $move) {
+ // cleanup pmadb stuff for this db
+ require_once './libraries/relation_cleanup.lib.php';
+ PMA_relationsCleanupDatabase($db);
+
+ // if someday the RENAME DATABASE reappears, do not DROP
+ $local_query = 'DROP DATABASE ' . PMA_backquote($db) . ';';
+ $sql_query .= "\n" . $local_query;
+ PMA_DBI_query($local_query);
+
+ $message = PMA_Message::success('strRenameDatabaseOK');
+ $message->addParam($db);
+ $message->addParam($newname);
+ } elseif (! $_error) {
+ $message = PMA_Message::success('strCopyDatabaseOK');
+ $message->addParam($db);
+ $message->addParam($newname);
+ }
+ $reload = true;
+
+ /* Change database to be used */
+ if (! $_error && $move) {
+ $db = $newname;
+ } elseif (! $_error) {
+ if (isset($switch_to_new) && $switch_to_new == 'true') {
+ PMA_setCookie('pma_switch_to_new', 'true');
+ $db = $newname;
+ } else {
+ PMA_setCookie('pma_switch_to_new', '');
+ }
+ }
+
+ if ($_error && ! isset($message)) {
+ $message = PMA_Message::error();
+ }
+ }
+}
+
+/*
+ * Enable/Disable/Repair BLOB Repository Monitoring for current database
+*/
+if (strlen($db) > 0 && !empty($db_blob_streaming_op))
+{
+ // load PMA_Config
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ if (!empty($PMA_Config))
+ {
+ if ($PMA_Config->get('PBXT_NAME') !== strtolower($db))
+ {
+ // if Blobstreaming plugins exist, begin checking for Blobstreaming tables
+ if ($PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST'))
+ {
+ $bs_tables = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+ $bs_tables = $bs_tables[$db];
+
+ $oneBSTableExists = FALSE;
+
+ // check if at least one blobstreaming table exists
+ foreach ($bs_tables as $table_key=>$tbl)
+ if ($bs_tables[$table_key]['Exists'])
+ {
+ $oneBSTableExists = TRUE;
+ break;
+ }
+
+ switch ($db_blob_streaming_op)
+ {
+ // enable BLOB repository monitoring
+ case "enable":
+ // if blobstreaming tables do not exist, create them
+ if (!$oneBSTableExists)
+ PMA_BS_CreateTables($db);
+ break;
+ // disable BLOB repository monitoring
+ case "disable":
+ // if at least one blobstreaming table exists, execute drop
+ if ($oneBSTableExists)
+ PMA_BS_DropTables($db);
+ break;
+ // repair BLOB repository
+ case "repair":
+ // check if a blobstreaming table is missing
+ foreach ($bs_tables as $table_key=>$tbl)
+ if (!$bs_tables[$table_key]['Exists'])
+ {
+ PMA_DBI_select_db($db);
+ PMA_DBI_query(PMA_BS_GetTableStruct($table_key));
+ }
+ }
+
+ // refresh side menu
+ PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . 'db_operations.php?' . PMA_generate_common_url ('','', '&') . (isset($db) ? '&db=' . urlencode($db) : '') . (isset($token) ? '&token=' . urlencode($token) : '') . (isset($goto) ? '&goto=' . urlencode($goto) : '') . 'reload=1&purge=1');
+ } // end if ($PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST'))
+ } // end if ($PMA_Config->get('PBXT_NAME') !== strtolower($db))
+ }
+}
+
+/**
+ * Settings for relations stuff
+ */
+
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Check if comments were updated
+ * (must be done before displaying the menu tabs)
+ */
+if (isset($_REQUEST['comment'])) {
+ PMA_setDbComment($db, $comment);
+}
+
+/**
+ * Prepares the tables list if the user where not redirected to this script
+ * because there is no table in the database ($is_info is true)
+ */
+if (empty($is_info)) {
+ require './libraries/db_common.inc.php';
+ $url_query .= '&amp;goto=db_operations.php';
+
+ // Gets the database structure
+ $sub_part = '_structure';
+ require './libraries/db_info.inc.php';
+ echo "\n";
+
+ if (isset($message)) {
+ PMA_showMessage($message, $sql_query);
+ unset($message);
+ }
+}
+
+$db_collation = PMA_getDbCollation($db);
+if ($db == 'information_schema') {
+ $is_information_schema = true;
+} else {
+ $is_information_schema = false;
+}
+
+if (!$is_information_schema) {
+
+ require './libraries/display_create_table.lib.php';
+
+ if ($cfgRelation['commwork']) {
+ /**
+ * database comment
+ */
+ ?>
+ <form method="post" action="db_operations.php">
+ <?php echo PMA_generate_common_hidden_inputs($db); ?>
+ <fieldset>
+ <legend>
+ <?php echo PMA_getIcon('b_comment.png', $strDBComment, false, true); ?>
+ </legend>
+ <input type="text" name="comment" class="textfield" size="30"
+ value="<?php
+ echo htmlspecialchars(PMA_getDBComment($db)); ?>" />
+ <input type="submit" value="<?php echo $strGo; ?>" />
+ </fieldset>
+ </form>
+ <?php
+ }
+ /**
+ * rename database
+ */
+ ?>
+ <form method="post" action="db_operations.php"
+ onsubmit="return emptyFormElements(this, 'newname')">
+ <?php
+ if (isset($db_collation)) {
+ echo '<input type="hidden" name="db_collation" value="' . $db_collation
+ .'" />' . "\n";
+ }
+ ?>
+ <input type="hidden" name="what" value="data" />
+ <input type="hidden" name="db_rename" value="true" />
+ <?php echo PMA_generate_common_hidden_inputs($db); ?>
+ <fieldset>
+ <legend>
+ <?php
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_edit.png"'
+ .' alt="" width="16" height="16" />';
+ }
+ echo $strDBRename . ':';
+ ?>
+ </legend>
+ <input type="text" name="newname" size="30" class="textfield" value="" />
+ <?php
+ echo '(' . $strCommand . ': ';
+ /**
+ * @todo (see explanations above in a previous todo)
+ */
+ //if (PMA_MYSQL_INT_VERSION >= XYYZZ) {
+ // echo 'RENAME DATABASE';
+ //} else {
+ echo 'INSERT INTO ... SELECT';
+ //}
+ echo ')'; ?>
+ <input type="submit" value="<?php echo $strGo; ?>" onclick="return confirmLink(this, 'CREATE DATABASE ... <?php echo $strAndThen; ?> DROP DATABASE <?php echo PMA_jsFormat($db); ?>')" />
+ </fieldset>
+ </form>
+
+ <?php
+ /**
+ * Copy database
+ */
+ ?>
+ <form method="post" action="db_operations.php"
+ onsubmit="return emptyFormElements(this, 'newname')">
+ <?php
+ if (isset($db_collation)) {
+ echo '<input type="hidden" name="db_collation" value="' . $db_collation
+ .'" />' . "\n";
+ }
+ echo '<input type="hidden" name="db_copy" value="true" />' . "\n";
+ echo PMA_generate_common_hidden_inputs($db);
+ ?>
+ <fieldset>
+ <legend>
+ <?php
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_edit.png"'
+ .' alt="" width="16" height="16" />';
+ }
+ echo $strDBCopy . ':';
+ $drop_clause = 'DROP TABLE / DROP VIEW';
+ ?>
+ </legend>
+ <input type="text" name="newname" size="30" class="textfield" value="" /><br />
+<?php
+ $choices = array(
+ 'structure' => $strStrucOnly,
+ 'data' => $strStrucData,
+ 'dataonly' => $strDataOnly);
+ PMA_generate_html_radio('what', $choices, 'data', true);
+ unset($choices);
+?>
+ <input type="checkbox" name="create_database_before_copying" value="1"
+ id="checkbox_create_database_before_copying"
+ style="vertical-align: middle" checked="checked" />
+ <label for="checkbox_create_database_before_copying">
+ <?php echo $strCreateDatabaseBeforeCopying; ?></label><br />
+ <input type="checkbox" name="drop_if_exists" value="true"
+ id="checkbox_drop" style="vertical-align: middle" />
+ <label for="checkbox_drop"><?php echo sprintf($strAddClause, $drop_clause); ?></label><br />
+ <input type="checkbox" name="sql_auto_increment" value="1"
+ id="checkbox_auto_increment" style="vertical-align: middle" />
+ <label for="checkbox_auto_increment">
+ <?php echo $strAddAutoIncrement; ?></label><br />
+ <input type="checkbox" name="add_constraints" value="1"
+ id="checkbox_constraints" style="vertical-align: middle" />
+ <label for="checkbox_constraints">
+ <?php echo $strAddConstraints; ?></label><br />
+ <?php
+ unset($drop_clause);
+
+ if (isset($_COOKIE) && isset($_COOKIE['pma_switch_to_new'])
+ && $_COOKIE['pma_switch_to_new'] == 'true') {
+ $pma_switch_to_new = 'true';
+ }
+ ?>
+ <input type="checkbox" name="switch_to_new" value="true"
+ id="checkbox_switch"
+ <?php echo ((isset($pma_switch_to_new) && $pma_switch_to_new == 'true') ? ' checked="checked"' : ''); ?>
+ style="vertical-align: middle" />
+ <label for="checkbox_switch"><?php echo $strSwitchToDatabase; ?></label>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="submit" name="submit_copy" value="<?php echo $strGo; ?>" />
+ </fieldset>
+ </form>
+
+ <?php
+ /*
+ * BLOB streaming support
+ */
+
+ // load PMA_Config
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if all blobstreaming plugins exist, begin checking for blobstreaming tables
+ if (!empty($PMA_Config))
+ {
+ if ($PMA_Config->get('PBXT_NAME') !== strtolower($db))
+ {
+ if ($PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST'))
+ {
+ $bs_tables = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+ $bs_tables = $bs_tables[$db];
+
+ $oneBSTableExists = FALSE;
+ $allBSTablesExist = TRUE;
+
+ // first check that all blobstreaming tables do not exist
+ foreach ($bs_tables as $table_key=>$tbl)
+ if ($bs_tables[$table_key]['Exists'])
+ $oneBSTableExists = TRUE;
+ else
+ $allBSTablesExist = FALSE;
+
+ ?>
+
+ <form method="post" action="./db_operations.php">
+ <?php echo PMA_generate_common_hidden_inputs($db); ?>
+ <fieldset>
+ <legend>
+ <?php echo PMA_getIcon('b_edit.png', $strBLOBRepository, false, true); ?>
+ </legend>
+
+ <?php echo $strBLOBRepositoryStatus; ?>:
+
+ <?php
+
+ // if the blobstreaming tables exist, provide option to disable the BLOB repository
+ if ($allBSTablesExist)
+ {
+ ?>
+ <?php echo $strBLOBRepositoryEnabled; ?>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="hidden" name="db_blob_streaming_op" value="disable" />
+ <input type="submit" onclick="return confirmDisableRepository('<?php echo $db; ?>');" value="<?php echo $strBLOBRepositoryDisable; ?>" />
+ </fieldset>
+ <?php
+ }
+ else
+ {
+ // if any of the blobstreaming tables are missing, provide option to repair the BLOB repository
+ if ($oneBSTableExists && !$allBSTablesExist)
+ {
+ ?>
+ <?php echo $strBLOBRepositoryDamaged; ?>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="hidden" name="db_blob_streaming_op" value="repair" />
+ <input type="submit" value="<?php echo $strBLOBRepositoryRepair; ?>" />
+ </fieldset>
+ <?php
+ }
+ // if none of the blobstreaming tables exist, provide option to enable BLOB repository
+ else
+ {
+ ?>
+ <?php echo $strBLOBRepositoryDisabled; ?>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="hidden" name="db_blob_streaming_op" value="enable" />
+ <input type="submit" value="<?php echo $strBLOBRepositoryEnable; ?>" />
+ </fieldset>
+ <?php
+ }
+ } // end if ($allBSTablesExist)
+
+ ?>
+ </form>
+ <?php
+ } // end if ($PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST'))
+ } // end if ($PMA_Config->get('PBXT_NAME') !== strtolower($db))
+ }
+
+ /**
+ * Change database charset
+ */
+ echo '<form method="post" action="./db_operations.php">' . "\n"
+ . PMA_generate_common_hidden_inputs($db, $table)
+ . '<fieldset>' . "\n"
+ . ' <legend>';
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 's_asci.png"'
+ .' alt="" width="16" height="16" />';
+ }
+ echo ' <label for="select_db_collation">' . $strCollation . ':</label>' . "\n"
+ . ' </legend>' . "\n"
+ . PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION,
+ 'db_collation', 'select_db_collation', $db_collation, false, 3)
+ . ' <input type="submit" name="submitcollation"'
+ . ' value="' . $strGo . '" style="vertical-align: middle" />' . "\n"
+ . '</fieldset>' . "\n"
+ . '</form>' . "\n";
+
+ if ($num_tables > 0
+ && !$cfgRelation['allworks'] && $cfg['PmaNoRelation_DisableWarning'] == false) {
+ $message = PMA_Message::notice('strRelationNotWorking');
+ $message->addParam('<a href="' . $cfg['PmaAbsoluteUri'] . 'chk_rel.php?' . $url_query . '">', false);
+ $message->addParam('</a>', false);
+ /* Show error if user has configured something, notice elsewhere */
+ if (!empty($cfg['Servers'][$server]['pmadb'])) {
+ $message->isError(true);
+ }
+ $message->display();
+ } // end if
+} // end if (!$is_information_schema)
+
+
+// not sure about displaying the PDF dialog in case db is information_schema
+if ($cfgRelation['pdfwork'] && $num_tables > 0) { ?>
+ <!-- Work on PDF Pages -->
+
+ <?php
+ // We only show this if we find something in the new pdf_pages table
+
+ $test_query = '
+ SELECT *
+ FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages']) . '
+ WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
+ $test_rs = PMA_query_as_cu($test_query, null, PMA_DBI_QUERY_STORE);
+
+ if ($test_rs && PMA_DBI_num_rows($test_rs) > 0) { ?>
+ <!-- PDF schema -->
+ <form method="post" action="pdf_schema.php">
+ <fieldset>
+ <legend>
+ <?php
+ echo PMA_generate_common_hidden_inputs($db);
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_view.png"'
+ .' alt="" width="16" height="16" />';
+ }
+ echo $strDisplayPDF;
+ ?>:
+ </legend>
+ <label for="pdf_page_number_opt"><?php echo $strPageNumber; ?></label>
+ <select name="pdf_page_number" id="pdf_page_number_opt">
+ <?php
+ while ($pages = @PMA_DBI_fetch_assoc($test_rs)) {
+ echo ' <option value="' . $pages['page_nr'] . '">'
+ . $pages['page_nr'] . ': ' . $pages['page_descr'] . '</option>' . "\n";
+ } // end while
+ PMA_DBI_free_result($test_rs);
+ unset($test_rs);
+ ?>
+ </select><br />
+
+ <input type="checkbox" name="show_grid" id="show_grid_opt" />
+ <label for="show_grid_opt"><?php echo $strShowGrid; ?></label><br />
+ <input type="checkbox" name="show_color" id="show_color_opt"
+ checked="checked" />
+ <label for="show_color_opt"><?php echo $strShowColor; ?></label><br />
+ <input type="checkbox" name="show_table_dimension" id="show_table_dim_opt" />
+ <label for="show_table_dim_opt"><?php echo $strShowTableDimension; ?>
+ </label><br />
+ <input type="checkbox" name="all_tab_same_wide" id="all_tab_same_wide" />
+ <label for="all_tab_same_wide"><?php echo $strAllTableSameWidth; ?>
+ </label><br />
+ <input type="checkbox" name="with_doc" id="with_doc" checked="checked" />
+ <label for="with_doc"><?php echo $strDataDict; ?></label><br />
+ <input type="checkbox" name="show_keys" id="show_keys" />
+ <label for="show_keys"><?php echo $strShowKeys; ?></label><br />
+
+ <label for="orientation_opt"><?php echo $strShowDatadictAs; ?></label>
+ <select name="orientation" id="orientation_opt">
+ <option value="L"><?php echo $strLandscape;?></option>
+ <option value="P"><?php echo $strPortrait;?></option>
+ </select><br />
+
+ <label for="paper_opt"><?php echo $strPaperSize; ?></label>
+ <select name="paper" id="paper_opt">
+ <?php
+ foreach ($cfg['PDFPageSizes'] AS $key => $val) {
+ echo '<option value="' . $val . '"';
+ if ($val == $cfg['PDFDefaultPageSize']) {
+ echo ' selected="selected"';
+ }
+ echo ' >' . $val . '</option>' . "\n";
+ }
+ ?>
+ </select>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="submit" value="<?php echo $strGo; ?>" />
+ </fieldset>
+ </form>
+ <?php
+ } // end if
+ echo '<br /><a href="pdf_pages.php?' . $url_query . '">';
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_edit.png"'
+ .' alt="" width="16" height="16" />';
+ }
+ echo $strEditPDFPages . '</a>';
+} // end if
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/db_printview.php b/db_printview.php
new file mode 100644
index 0000000000..9b53f0cb41
--- /dev/null
+++ b/db_printview.php
@@ -0,0 +1,269 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Gets the variables sent or posted to this script, then displays headers
+ */
+$print_view = true;
+require_once './libraries/header.inc.php';
+
+PMA_checkParameters(array('db'));
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+$err_url = 'db_sql.php?' . PMA_generate_common_url($db);
+
+/**
+ * Settings for relations stuff
+ */
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Gets the list of the table in the current db and informations about these
+ * tables if possible
+ *
+ * @todo merge this speedup _optionaly_ into PMA_DBI_get_tables_full()
+ *
+// staybyte: speedup view on locked tables - 11 June 2001
+// Special speedup for newer MySQL Versions (in 4.0 format changed)
+if ($cfg['SkipLockedTables'] == true) {
+ $result = PMA_DBI_query('SHOW OPEN TABLES FROM ' . PMA_backquote($db) . ';');
+ // Blending out tables in use
+ if ($result != false && PMA_DBI_num_rows($result) > 0) {
+ while ($tmp = PMA_DBI_fetch_row($result)) {
+ // if in use memorize tablename
+ if (preg_match('@in_use=[1-9]+@i', $tmp[0])) {
+ $sot_cache[$tmp[0]] = true;
+ }
+ }
+ PMA_DBI_free_result($result);
+
+ if (isset($sot_cache)) {
+ $result = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
+ if ($result != false && PMA_DBI_num_rows($result) > 0) {
+ while ($tmp = PMA_DBI_fetch_row($result)) {
+ if (!isset($sot_cache[$tmp[0]])) {
+ $sts_result = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ' LIKE \'' . addslashes($tmp[0]) . '\';');
+ $sts_tmp = PMA_DBI_fetch_assoc($sts_result);
+ $tables[] = $sts_tmp;
+ } else { // table in use
+ $tables[] = array('Name' => $tmp[0]);
+ }
+ }
+ PMA_DBI_free_result($result);
+ $sot_ready = true;
+ }
+ }
+ unset($tmp, $result);
+ }
+}
+
+if (! isset($sot_ready)) {
+ $result = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ';');
+ if (PMA_DBI_num_rows($result) > 0) {
+ while ($sts_tmp = PMA_DBI_fetch_assoc($result)) {
+ $tables[] = $sts_tmp;
+ }
+ PMA_DBI_free_result($result);
+ unset($res);
+ }
+}
+ */
+
+/**
+ * If there is at least one table, displays the printer friendly view, else
+ * an error message
+ */
+$tables = PMA_DBI_get_tables_full($db);
+$num_tables = count($tables);
+
+echo '<br />';
+
+// 1. No table
+if ($num_tables == 0) {
+ echo $strNoTablesFound;
+}
+// 2. Shows table informations on mysql >= 3.23.03 - staybyte - 11 June 2001
+else {
+ ?>
+<table>
+<thead>
+<tr>
+ <th><?php echo $strTable; ?></th>
+ <th><?php echo $strRecords; ?></th>
+ <th><?php echo $strType; ?></th>
+ <?php
+ if ($cfg['ShowStats']) {
+ echo '<th>' . $strSize . '</th>';
+ }
+ ?>
+ <th><?php echo $strComments; ?></th>
+</tr>
+</thead>
+<tbody>
+ <?php
+ $sum_entries = $sum_size = 0;
+ $odd_row = true;
+ foreach ($tables as $sts_data) {
+ if (strtoupper($sts_data['ENGINE']) == 'MRG_MYISAM'
+ || strtoupper($sts_data['ENGINE']) == 'FEDERATED') {
+ $merged_size = true;
+ } else {
+ $merged_size = false;
+ }
+ $sum_entries += $sts_data['TABLE_ROWS'];
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <th>
+ <?php echo htmlspecialchars($sts_data['TABLE_NAME']); ?>
+ </th>
+ <?php
+
+ if (isset($sts_data['TABLE_ROWS'])) {
+ ?>
+ <td align="right">
+ <?php
+ if ($merged_size) {
+ echo '<i>' . PMA_formatNumber($sts_data['TABLE_ROWS'], 0) . '</i>' . "\n";
+ } else {
+ echo PMA_formatNumber($sts_data['TABLE_ROWS'], 0) . "\n";
+ }
+ ?>
+ </td>
+ <td nowrap="nowrap">
+ <?php echo $sts_data['ENGINE']; ?>
+ </td>
+ <?php
+ if ($cfg['ShowStats']) {
+ $tblsize = $sts_data['Data_length'] + $sts_data['Index_length'];
+ $sum_size += $tblsize;
+ list($formated_size, $unit) = PMA_formatByteDown($tblsize, 3, 1);
+ ?>
+ <td align="right" nowrap="nowrap">
+ <?php echo $formated_size . ' ' . $unit; ?>
+ </td>
+ <?php
+ } // end if
+ } else {
+ ?>
+ <td colspan="3" align="center">
+ <?php echo $strInUse; ?>
+ </td>
+ <?php
+ }
+ ?>
+ <td>
+ <?php
+ if (! empty($sts_data['Comment'])) {
+ echo htmlspecialchars($sts_data['Comment']);
+ $needs_break = '<br />';
+ } else {
+ $needs_break = '';
+ }
+
+ if (! empty($sts_data['Create_time'])
+ || ! empty($sts_data['Update_time'])
+ || ! empty($sts_data['Check_time'])) {
+ echo $needs_break;
+ ?>
+ <table width="100%">
+ <?php
+
+ if (! empty($sts_data['Create_time'])) {
+ ?>
+ <tr>
+ <td align="right"><?php echo $strStatCreateTime . ': '; ?></td>
+ <td align="right"><?php echo PMA_localisedDate(strtotime($sts_data['Create_time'])); ?></td>
+ </tr>
+ <?php
+ }
+
+ if (! empty($sts_data['Update_time'])) {
+ ?>
+ <tr>
+ <td align="right"><?php echo $strStatUpdateTime . ': '; ?></td>
+ <td align="right"><?php echo PMA_localisedDate(strtotime($sts_data['Update_time'])); ?></td>
+ </tr>
+ <?php
+ }
+
+ if (! empty($sts_data['Check_time'])) {
+ ?>
+ <tr>
+ <td align="right"><?php echo $strStatCheckTime . ': '; ?></td>
+ <td align="right"><?php echo PMA_localisedDate(strtotime($sts_data['Check_time'])); ?></td>
+ </tr>
+ <?php
+ }
+ ?>
+ </table>
+ <?php
+ }
+ ?>
+ </td>
+</tr>
+ <?php
+ }
+ ?>
+<tr>
+ <th align="center">
+ <?php echo sprintf($strTables, PMA_formatNumber($num_tables, 0)); ?>
+ </th>
+ <th align="right" nowrap="nowrap">
+ <?php echo PMA_formatNumber($sum_entries, 0); ?>
+ </th>
+ <th align="center">
+ --
+ </th>
+ <?php
+ if ($cfg['ShowStats']) {
+ list($sum_formated, $unit) = PMA_formatByteDown($sum_size, 3, 1);
+ ?>
+ <th align="right" nowrap="nowrap">
+ <?php echo $sum_formated . ' ' . $unit; ?>
+ </th>
+ <?php
+ }
+ ?>
+ <th>&nbsp;</th>
+</tr>
+</tbody>
+</table>
+ <?php
+}
+
+/**
+ * Displays the footer
+ */
+?>
+
+<script type="text/javascript">
+//<![CDATA[
+function printPage()
+{
+ // Do print the page
+ if (typeof(window.print) != 'undefined') {
+ window.print();
+ }
+}
+//]]>
+</script>
+<br /><br />
+
+<input type="button" class="print_ignore"
+ id="print" value="<?php echo $strPrint; ?>" onclick="printPage()" />
+
+<?php
+require_once './libraries/footer.inc.php';
+?>
diff --git a/db_qbe.php b/db_qbe.php
new file mode 100644
index 0000000000..653461ce12
--- /dev/null
+++ b/db_qbe.php
@@ -0,0 +1,944 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * query by example the whole database
+ *
+ * @version $Id$
+ */
+
+/**
+ * requirements
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+require_once './libraries/relation.lib.php';
+
+
+/**
+ * Gets the relation settings
+ */
+$cfgRelation = PMA_getRelationsParam();
+
+
+/**
+ * A query has been submitted -> execute it, else display the headers
+ */
+if (isset($_REQUEST['submit_sql']) && ! empty($sql_query)) {
+ $goto = 'db_sql.php';
+ $zero_rows = htmlspecialchars($GLOBALS['strSuccess']);
+ require './sql.php';
+ exit;
+} else {
+ $sub_part = '_qbe';
+ require './libraries/db_common.inc.php';
+ $url_query .= '&amp;goto=db_qbe.php';
+ $url_params['goto'] = 'db_qbe.php';
+ require './libraries/db_info.inc.php';
+}
+
+if (isset($_REQUEST['submit_sql'])
+ && ! preg_match('@^SELECT@i', $sql_query)) {
+ PMA_Message::warning('strHaveToShow')->display();
+}
+
+
+/**
+ * Initialize some variables
+ */
+$col_cnt = PMA_ifSetOr($_REQUEST['col_cnt'], 3, 'numeric');
+$add_col = PMA_ifSetOr($_REQUEST['add_col'], 0, 'numeric');
+$add_row = PMA_ifSetOr($_REQUEST['add_row'], 0, 'numeric');
+
+$rows = PMA_ifSetOr($_REQUEST['rows'], 0, 'numeric');
+$ins_col = PMA_ifSetOr($_REQUEST['ins_col'], null, 'array');
+$del_col = PMA_ifSetOr($_REQUEST['del_col'], null, 'array');
+
+$prev_criteria = isset($_REQUEST['prev_criteria'])
+ ? $_REQUEST['prev_criteria']
+ : array();
+$criteria = isset($_REQUEST['criteria'])
+ ? $_REQUEST['criteria']
+ : array_fill(0, $col_cnt, '');
+
+$ins_row = isset($_REQUEST['ins_row'])
+ ? $_REQUEST['ins_row']
+ : array_fill(0, $col_cnt, '');
+$del_row = isset($_REQUEST['del_row'])
+ ? $_REQUEST['del_row']
+ : array_fill(0, $col_cnt, '');
+$and_or_row = isset($_REQUEST['and_or_row'])
+ ? $_REQUEST['and_or_row']
+ : array_fill(0, $col_cnt, '');
+$and_or_col = isset($_REQUEST['and_or_col'])
+ ? $_REQUEST['and_or_col']
+ : array_fill(0, $col_cnt, '');
+
+// minimum width
+$form_column_width = 12;
+$col = max($col_cnt + $add_col, 0);
+$row = max($rows + $add_row, 0);
+
+
+// The tables list sent by a previously submitted form
+if (PMA_isValid($_REQUEST['TableList'], 'array')) {
+ foreach ($_REQUEST['TableList'] as $each_table) {
+ $tbl_names[$each_table] = ' selected="selected"';
+ }
+} // end if
+
+
+// this was a work in progress, deactivated for now
+//$columns = PMA_DBI_get_columns_full($GLOBALS['db']);
+//$tables = PMA_DBI_get_columns_full($GLOBALS['db']);
+
+
+/**
+ * Prepares the form
+ */
+$tbl_result = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
+$tbl_result_cnt = PMA_DBI_num_rows($tbl_result);
+if (0 == $tbl_result_cnt) {
+ PMA_Message::error('strNoTablesFound')->display();
+ require_once './libraries/footer.inc.php';
+ exit;
+}
+
+// The tables list gets from MySQL
+while (list($tbl) = PMA_DBI_fetch_row($tbl_result)) {
+ $fld_results = PMA_DBI_get_fields($db, $tbl);
+
+ if (empty($tbl_names[$tbl]) && !empty($_REQUEST['TableList'])) {
+ $tbl_names[$tbl] = '';
+ } else {
+ $tbl_names[$tbl] = ' selected="selected"';
+ } // end if
+
+ // The fields list per selected tables
+ if ($tbl_names[$tbl] == ' selected="selected"') {
+ $each_table = PMA_backquote($tbl);
+ $fld[] = $each_table . '.*';
+ foreach ($fld_results as $each_field) {
+ $each_field = $each_table . '.' . PMA_backquote($each_field['Field']);
+ $fld[] = $each_field;
+
+ // increase the width if necessary
+ $form_column_width = max(strlen($each_field), $form_column_width);
+ } // end foreach
+ } // end if
+} // end while
+PMA_DBI_free_result($tbl_result);
+
+// largest width found
+$realwidth = $form_column_width . 'ex';
+
+
+/**
+ * Displays the Query by example form
+ */
+
+/**
+ * Enter description here...
+ *
+ * @param array $columns
+ * @param numeric $column_number
+ * @param string $selected
+ */
+function showColumnSelectCell($columns, $column_number, $selected = '')
+{
+ ?>
+ <td align="center">
+ <select name="Field[<?php echo $column_number; ?>]" size="1">
+ <option value="">&nbsp;</option>
+ <?php
+ foreach ($columns as $column) {
+ if ($column === $selected) {
+ $sel = ' selected="selected"';
+ } else {
+ $sel = '';
+ }
+ echo '<option value="' . htmlspecialchars($column) . '"' . $sel . '>'
+ . str_replace(' ', '&nbsp;', htmlspecialchars($column)) . '</option>' . "\n";
+ }
+ ?>
+ </select>
+ </td>
+ <?php
+}
+
+?>
+<fieldset>
+<form action="db_qbe.php" method="post">
+<table class="data" style="width: 100%;">
+<tr class="odd noclick">
+ <th><?php echo $strField; ?>:</th>
+<?php
+$z = 0;
+for ($x = 0; $x < $col; $x++) {
+ if (isset($ins_col[$x]) && $ins_col[$x] == 'on') {
+ showColumnSelectCell($fld, $z);
+ $z++;
+ }
+
+ if (! empty($del_col) && isset($del_col[$x]) && $del_col[$x] == 'on') {
+ continue;
+ }
+
+ $selected = '';
+ if (isset($Field[$x])) {
+ $selected = $Field[$x];
+ $curField[$z] = $Field[$x];
+ }
+ showColumnSelectCell($fld, $z, $selected);
+ $z++;
+} // end for
+?>
+</tr>
+
+<!-- Sort row -->
+<tr class="even noclick">
+ <th><?php echo $strSort; ?>:</th>
+<?php
+$z = 0;
+for ($x = 0; $x < $col; $x++) {
+ if (!empty($ins_col) && isset($ins_col[$x]) && $ins_col[$x] == 'on') {
+ ?>
+ <td align="center">
+ <select style="width: <?php echo $realwidth; ?>" name="Sort[<?php echo $z; ?>]" size="1">
+ <option value="">&nbsp;</option>
+ <option value="ASC"><?php echo $strAscending; ?></option>
+ <option value="DESC"><?php echo $strDescending; ?></option>
+ </select>
+ </td>
+ <?php
+ $z++;
+ } // end if
+ echo "\n";
+
+ if (!empty($del_col) && isset($del_col[$x]) && $del_col[$x] == 'on') {
+ continue;
+ }
+ ?>
+ <td align="center">
+ <select style="width: <?php echo $realwidth; ?>" name="Sort[<?php echo $z; ?>]" size="1">
+ <option value="">&nbsp;</option>
+ <?php
+ echo "\n";
+
+ // If they have chosen all fields using the * selector,
+ // then sorting is not available
+ // Robbat2 - Fix for Bug #570698
+ if (isset($Sort[$x]) && isset($Field[$x])
+ && substr($Field[$x], -2) == '.*') {
+ $Sort[$x] = '';
+ } //end if
+
+ if (isset($Sort[$x]) && $Sort[$x] == 'ASC') {
+ $curSort[$z] = $Sort[$x];
+ $sel = ' selected="selected"';
+ } else {
+ $sel = '';
+ } // end if
+ echo ' ';
+ echo '<option value="ASC"' . $sel . '>' . $strAscending . '</option>' . "\n";
+ if (isset($Sort[$x]) && $Sort[$x] == 'DESC') {
+ $curSort[$z] = $Sort[$x];
+ $sel = ' selected="selected"';
+ } else {
+ $sel = '';
+ } // end if
+ echo ' ';
+ echo '<option value="DESC"' . $sel . '>' . $strDescending . '</option>' . "\n";
+ ?>
+ </select>
+ </td>
+ <?php
+ $z++;
+ echo "\n";
+} // end for
+?>
+</tr>
+
+<!-- Show row -->
+<tr class="odd noclick">
+ <th><?php echo $strShow; ?>:</th>
+<?php
+$z = 0;
+for ($x = 0; $x < $col; $x++) {
+ if (!empty($ins_col) && isset($ins_col[$x]) && $ins_col[$x] == 'on') {
+ ?>
+ <td align="center">
+ <input type="checkbox" name="Show[<?php echo $z; ?>]" />
+ </td>
+ <?php
+ $z++;
+ } // end if
+ echo "\n";
+
+ if (!empty($del_col) && isset($del_col[$x]) && $del_col[$x] == 'on') {
+ continue;
+ }
+ if (isset($Show[$x])) {
+ $checked = ' checked="checked"';
+ $curShow[$z] = $Show[$x];
+ } else {
+ $checked = '';
+ }
+ ?>
+ <td align="center">
+ <input type="checkbox" name="Show[<?php echo $z; ?>]"<?php echo $checked; ?> />
+ </td>
+ <?php
+ $z++;
+ echo "\n";
+} // end for
+?>
+</tr>
+
+<!-- Criteria row -->
+<tr class="even noclick">
+ <th><?php echo $strCriteria; ?>:</th>
+<?php
+$z = 0;
+for ($x = 0; $x < $col; $x++) {
+ if (!empty($ins_col) && isset($ins_col[$x]) && $ins_col[$x] == 'on') {
+ ?>
+ <td align="center">
+ <input type="text" name="criteria[<?php echo $z; ?>]" value="" class="textfield" style="width: <?php echo $realwidth; ?>" size="20" />
+ </td>
+ <?php
+ $z++;
+ } // end if
+ echo "\n";
+
+ if (!empty($del_col) && isset($del_col[$x]) && $del_col[$x] == 'on') {
+ continue;
+ }
+ if (isset($criteria[$x])) {
+ $stripped_Criteria = $criteria[$x];
+ }
+ if ((empty($prev_criteria) || !isset($prev_criteria[$x]))
+ || $prev_criteria[$x] != htmlspecialchars($stripped_Criteria)) {
+ $curCriteria[$z] = $stripped_Criteria;
+ } else {
+ $curCriteria[$z] = $prev_criteria[$x];
+ }
+ ?>
+ <td align="center">
+ <input type="hidden" name="prev_criteria[<?php echo $z; ?>]" value="<?php echo htmlspecialchars($curCriteria[$z]); ?>" />
+ <input type="text" name="criteria[<?php echo $z; ?>]" value="<?php echo htmlspecialchars($stripped_Criteria); ?>" class="textfield" style="width: <?php echo $realwidth; ?>" size="20" />
+ </td>
+ <?php
+ $z++;
+ echo "\n";
+} // end for
+?>
+</tr>
+
+<!-- And/Or columns and rows -->
+<?php
+$w = 0;
+$odd_row = true;
+for ($y = 0; $y <= $row; $y++) {
+ if (isset($ins_row[$y]) && $ins_row[$y] == 'on') {
+ $chk['or'] = ' checked="checked"';
+ $chk['and'] = '';
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?> noclick">
+ <td align="<?php echo $cell_align_right; ?>" nowrap="nowrap">
+ <!-- Row controls -->
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td align="<?php echo $cell_align_right; ?>" nowrap="nowrap">
+ <small><?php echo $strQBEIns; ?>:</small>
+ <input type="checkbox" name="ins_row[<?php echo $w; ?>]" />
+ </td>
+ <td align="<?php echo $cell_align_right; ?>">
+ <strong><?php echo $strAnd; ?>:</strong>
+ </td>
+ <td>
+ <input type="radio" name="and_or_row[<?php echo $w; ?>]" value="and"<?php echo $chk['and']; ?> />
+ &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td align="<?php echo $cell_align_right; ?>" nowrap="nowrap">
+ <small><?php echo $strQBEDel; ?>:</small>
+ <input type="checkbox" name="del_row[<?php echo $w; ?>]" />
+ </td>
+ <td align="<?php echo $cell_align_right; ?>">
+ <strong><?php echo $strOr; ?>:</strong>
+ </td>
+ <td>
+ <input type="radio" name="and_or_row[<?php echo $w; ?>]" value="or"<?php echo $chk['or']; ?> />
+ &nbsp;
+ </td>
+ </tr>
+ </table>
+ </td>
+ <?php
+ $z = 0;
+ for ($x = 0; $x < $col; $x++) {
+ if (isset($ins_col[$x]) && $ins_col[$x] == 'on') {
+ echo "\n";
+ $or = 'Or' . $w . '[' . $z . ']';
+ ?>
+ <td align="center">
+ <textarea cols="20" rows="2" style="width: <?php echo $realwidth; ?>" name="<?php echo $or; ?>" dir="<?php echo $text_dir; ?>"></textarea>
+ </td>
+ <?php
+ $z++;
+ } // end if
+ if (isset($del_col[$x]) && $del_col[$x] == 'on') {
+ continue;
+ }
+
+ echo "\n";
+ $or = 'Or' . $w . '[' . $z . ']';
+ ?>
+ <td align="center">
+ <textarea cols="20" rows="2" style="width: <?php echo $realwidth; ?>" name="<?php echo $or; ?>" dir="<?php echo $text_dir; ?>"></textarea>
+ </td>
+ <?php
+ $z++;
+ } // end for
+ $w++;
+ echo "\n";
+ ?>
+</tr>
+ <?php
+ $odd_row =! $odd_row;
+ } // end if
+
+ if (isset($del_row[$y]) && $del_row[$y] == 'on') {
+ continue;
+ }
+
+ if (isset($and_or_row[$y])) {
+ $curAndOrRow[$w] = $and_or_row[$y];
+ }
+ if (isset($and_or_row[$y]) && $and_or_row[$y] == 'and') {
+ $chk['and'] = ' checked="checked"';
+ $chk['or'] = '';
+ } else {
+ $chk['or'] = ' checked="checked"';
+ $chk['and'] = '';
+ }
+ echo "\n";
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?> noclick">
+ <td align="<?php echo $cell_align_right; ?>" nowrap="nowrap">
+ <!-- Row controls -->
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="<?php echo $cell_align_right; ?>" nowrap="nowrap">
+ <small><?php echo $strQBEIns; ?>:</small>
+ <input type="checkbox" name="ins_row[<?php echo $w; ?>]" />
+ </td>
+ <td align="<?php echo $cell_align_right; ?>">
+ <strong><?php echo $strAnd; ?>:</strong>
+ </td>
+ <td>
+ <input type="radio" name="and_or_row[<?php echo $w; ?>]" value="and"<?php echo $chk['and']; ?> />
+ </td>
+ </tr>
+ <tr>
+ <td align="<?php echo $cell_align_right; ?>" nowrap="nowrap">
+ <small><?php echo $strQBEDel; ?>:</small>
+ <input type="checkbox" name="del_row[<?php echo $w; ?>]" />
+ </td>
+ <td align="<?php echo $cell_align_right; ?>">
+ <strong><?php echo $strOr; ?>:</strong>
+ </td>
+ <td>
+ <input type="radio" name="and_or_row[<?php echo $w; ?>]" value="or"<?php echo $chk['or']; ?> />
+ </td>
+ </tr>
+ </table>
+ </td>
+ <?php
+ $z = 0;
+ for ($x = 0; $x < $col; $x++) {
+ if (!empty($ins_col) && isset($ins_col[$x]) && $ins_col[$x] == 'on') {
+ echo "\n";
+ $or = 'Or' . $w . '[' . $z . ']';
+ ?>
+ <td align="center">
+ <textarea cols="20" rows="2" style="width: <?php echo $realwidth; ?>" name="<?php echo $or; ?>" dir="<?php echo $text_dir; ?>"></textarea>
+ </td>
+ <?php
+ $z++;
+ } // end if
+ if (!empty($del_col) && isset($del_col[$x]) && $del_col[$x] == 'on') {
+ continue;
+ }
+
+ echo "\n";
+ $or = 'Or' . $y;
+ if (!isset(${$or})) {
+ ${$or} = '';
+ }
+ if (!empty(${$or}) && isset(${$or}[$x])) {
+ $stripped_or = ${$or}[$x];
+ } else {
+ $stripped_or = '';
+ }
+ ?>
+ <td align="center">
+ <textarea cols="20" rows="2" style="width: <?php echo $realwidth; ?>" name="Or<?php echo $w . '[' . $z . ']'; ?>" dir="<?php echo $text_dir; ?>"><?php echo htmlspecialchars($stripped_or); ?></textarea>
+ </td>
+ <?php
+ if (!empty(${$or}) && isset(${$or}[$x])) {
+ ${'cur' . $or}[$z] = ${$or}[$x];
+ }
+ $z++;
+ } // end for
+ $w++;
+ echo "\n";
+ ?>
+</tr>
+ <?php
+ echo "\n";
+ $odd_row =! $odd_row;
+} // end for
+?>
+<!-- Modify columns -->
+<tr class="even noclick">
+ <th><?php echo $strModify; ?>:</th>
+<?php
+$z = 0;
+for ($x = 0; $x < $col; $x++) {
+ if (!empty($ins_col) && isset($ins_col[$x]) && $ins_col[$x] == 'on') {
+ $curAndOrCol[$z] = $and_or_col[$y];
+ if ($and_or_col[$z] == 'or') {
+ $chk['or'] = ' checked="checked"';
+ $chk['and'] = '';
+ } else {
+ $chk['and'] = ' checked="checked"';
+ $chk['or'] = '';
+ }
+ ?>
+ <td align="center">
+ <strong><?php echo $strOr; ?>:</strong>
+ <input type="radio" name="and_or_col[<?php echo $z; ?>]" value="or"<?php echo $chk['or']; ?> />
+ &nbsp;&nbsp;<strong><?php echo $strAnd; ?>:</strong>
+ <input type="radio" name="and_or_col[<?php echo $z; ?>]" value="and"<?php echo $chk['and']; ?> />
+ <br />
+ <?php echo $strQBEIns . "\n"; ?>
+ <input type="checkbox" name="ins_col[<?php echo $z; ?>]" />
+ &nbsp;&nbsp;<?php echo $strQBEDel . "\n"; ?>
+ <input type="checkbox" name="del_col[<?php echo $z; ?>]" />
+ </td>
+ <?php
+ $z++;
+ } // end if
+ echo "\n";
+
+ if (!empty($del_col) && isset($del_col[$x]) && $del_col[$x] == 'on') {
+ continue;
+ }
+
+ if (isset($and_or_col[$y])) {
+ $curAndOrCol[$z] = $and_or_col[$y];
+ }
+ if (isset($and_or_col[$z]) && $and_or_col[$z] == 'or') {
+ $chk['or'] = ' checked="checked"';
+ $chk['and'] = '';
+ } else {
+ $chk['and'] = ' checked="checked"';
+ $chk['or'] = '';
+ }
+ ?>
+ <td align="center">
+ <strong><?php echo $strOr; ?>:</strong>
+ <input type="radio" name="and_or_col[<?php echo $z; ?>]" value="or"<?php echo $chk['or']; ?> />
+ &nbsp;&nbsp;<strong><?php echo $strAnd; ?>:</strong>
+ <input type="radio" name="and_or_col[<?php echo $z; ?>]" value="and"<?php echo $chk['and']; ?> />
+ <br />
+ <?php echo $strQBEIns . "\n"; ?>
+ <input type="checkbox" name="ins_col[<?php echo $z; ?>]" />
+ &nbsp;&nbsp;<?php echo $strQBEDel . "\n"; ?>
+ <input type="checkbox" name="del_col[<?php echo $z; ?>]" />
+ </td>
+ <?php
+ $z++;
+ echo "\n";
+} // end for
+?>
+ </tr>
+</table>
+
+<!-- Other controls -->
+<?php
+$w--;
+$url_params['db'] = $db;
+$url_params['col_cnt'] = $z;
+$url_params['rows'] = $w;
+echo PMA_generate_common_hidden_inputs($url_params);
+?>
+</fieldset>
+<fieldset class="tblFooters">
+<table border="0" cellpadding="2" cellspacing="1">
+<tr>
+ <td nowrap="nowrap">
+ <?php echo $strAddDeleteRow; ?>:
+ <select size="1" name="add_row" style="vertical-align: middle">
+ <option value="-3">-3</option>
+ <option value="-2">-2</option>
+ <option value="-1">-1</option>
+ <option value="0" selected="selected">0</option>
+ <option value="1">1</option>
+ <option value="2">2</option>
+ <option value="3">3</option>
+ </select>
+ </td>
+ <td width="10">&nbsp;</td>
+ <td nowrap="nowrap"><?php echo $strAddDeleteColumn; ?>:
+ <select size="1" name="add_col" style="vertical-align: middle">
+ <option value="-3">-3</option>
+ <option value="-2">-2</option>
+ <option value="-1">-1</option>
+ <option value="0" selected="selected">0</option>
+ <option value="1">1</option>
+ <option value="2">2</option>
+ <option value="3">3</option>
+ </select>
+ </td>
+ <td width="10">&nbsp;</td>
+ <!-- Generates a query -->
+ <td><input type="submit" name="modify" value="<?php echo $strUpdateQuery; ?>" /></td>
+</tr>
+</table>
+</fieldset>
+
+<table>
+<tr><td>
+ <fieldset>
+ <legend><?php echo $strUseTables; ?></legend>
+<?php
+$strTableListOptions = '';
+$numTableListOptions = 0;
+foreach ($tbl_names as $key => $val) {
+ $strTableListOptions .= ' ';
+ $strTableListOptions .= '<option value="' . htmlspecialchars($key) . '"' . $val . '>'
+ . str_replace(' ', '&nbsp;', htmlspecialchars($key)) . '</option>' . "\n";
+ $numTableListOptions++;
+}
+?>
+ <select name="TableList[]" multiple="multiple" id="listTable"
+ size="<?php echo ($numTableListOptions > 30) ? '15' : '7'; ?>">
+ <?php echo $strTableListOptions; ?>
+ </select>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="submit" name="modify" value="<?php echo $strUpdateQuery; ?>" />
+ </fieldset>
+ </td>
+ <td width="20">&nbsp;</td>
+ <td>
+ <fieldset>
+ <legend><?php echo sprintf($strQueryOnDb, PMA_getDbLink($db)); ?>
+ </legend>
+ <textarea cols="80" name="sql_query" id="textSqlquery"
+ rows="<?php echo ($numTableListOptions > 30) ? '15' : '7'; ?>"
+ dir="<?php echo $text_dir; ?>">
+<?php
+// 1. SELECT
+$last_select = 0;
+if (!isset($qry_select)) {
+ $qry_select = '';
+}
+for ($x = 0; $x < $col; $x++) {
+ if (!empty($curField[$x]) && isset($curShow[$x]) && $curShow[$x] == 'on') {
+ if ($last_select) {
+ $qry_select .= ', ';
+ }
+ $qry_select .= $curField[$x];
+ $last_select = 1;
+ }
+} // end for
+if (!empty($qry_select)) {
+ echo 'SELECT ' . htmlspecialchars($qry_select) . "\n";
+}
+
+// 2. FROM
+
+// Create LEFT JOINS out of Relations
+// Code originally by Mike Beck <mike.beck@ibmiller.de>
+// If we can use Relations we could make some left joins.
+// First find out if relations are available in this database.
+
+// First we need the really needed Tables - those in TableList might still be
+// all Tables.
+if (isset($Field) && count($Field) > 0) {
+ // Initialize some variables
+ $tab_all = array();
+ $col_all = array();
+ $tab_wher = array();
+ $tab_know = array();
+ $tab_left = array();
+ $col_where = array();
+ $fromclause = '';
+
+ // We only start this if we have fields, otherwise it would be dumb
+ foreach ($Field as $value) {
+ $parts = explode('.', $value);
+ if (!empty($parts[0]) && !empty($parts[1])) {
+ $tab_raw = $parts[0];
+ $tab = str_replace('`', '', $tab_raw);
+ $tab_all[$tab] = $tab;
+
+ $col_raw = $parts[1];
+ $col_all[] = $tab . '.' . str_replace('`', '', $col_raw);
+ }
+ } // end while
+
+ // Check 'where' clauses
+ if ($cfgRelation['relwork'] && count($tab_all) > 0) {
+ // Now we need all tables that we have in the where clause
+ $crit_cnt = count($criteria);
+ for ($x = 0; $x < $crit_cnt; $x++) {
+ $curr_tab = explode('.', $Field[$x]);
+ if (!empty($curr_tab[0]) && !empty($curr_tab[1])) {
+ $tab_raw = $curr_tab[0];
+ $tab = str_replace('`', '', $tab_raw);
+
+ $col_raw = $curr_tab[1];
+ $col1 = str_replace('`', '', $col_raw);
+ $col1 = $tab . '.' . $col1;
+ // Now we know that our array has the same numbers as $criteria
+ // we can check which of our columns has a where clause
+ if (!empty($criteria[$x])) {
+ if (substr($criteria[$x], 0, 1) == '=' || stristr($criteria[$x], 'is')) {
+ $col_where[$col] = $col1;
+ $tab_wher[$tab] = $tab;
+ }
+ } // end if
+ } // end if
+ } // end for
+
+ // Cleans temp vars w/o further use
+ unset($tab_raw);
+ unset($col_raw);
+ unset($col1);
+
+ if (count($tab_wher) == 1) {
+ // If there is exactly one column that has a decent where-clause
+ // we will just use this
+ $master = key($tab_wher);
+ } else {
+ // Now let's find out which of the tables has an index
+ // (When the control user is the same as the normal user
+ // because he is using one of his databases as pmadb,
+ // the last db selected is not always the one where we need to work)
+ PMA_DBI_select_db($db);
+
+ foreach ($tab_all as $tab) {
+ $ind_rs = PMA_DBI_query('SHOW INDEX FROM ' . PMA_backquote($tab) . ';');
+ while ($ind = PMA_DBI_fetch_assoc($ind_rs)) {
+ $col1 = $tab . '.' . $ind['Column_name'];
+ if (isset($col_all[$col1])) {
+ if ($ind['non_unique'] == 0) {
+ if (isset($col_where[$col1])) {
+ $col_unique[$col1] = 'Y';
+ } else {
+ $col_unique[$col1] = 'N';
+ }
+ } else {
+ if (isset($col_where[$col1])) {
+ $col_index[$col1] = 'Y';
+ } else {
+ $col_index[$col1] = 'N';
+ }
+ }
+ }
+ } // end while (each col of tab)
+ } // end while (each tab)
+ // now we want to find the best.
+ if (isset($col_unique) && count($col_unique) > 0) {
+ $col_cand = $col_unique;
+ $needsort = 1;
+ } elseif (isset($col_index) && count($col_index) > 0) {
+ $col_cand = $col_index;
+ $needsort = 1;
+ } elseif (isset($col_where) && count($col_where) > 0) {
+ $col_cand = $tab_wher;
+ $needsort = 0;
+ } else {
+ $col_cand = $tab_all;
+ $needsort = 0;
+ }
+
+ // If we came up with $col_unique (very good) or $col_index (still
+ // good) as $col_cand we want to check if we have any 'Y' there
+ // (that would mean that they were also found in the whereclauses
+ // which would be great). if yes, we take only those
+ if ($needsort == 1) {
+ foreach ($col_cand as $col => $is_where) {
+ $tab = explode('.', $col);
+ $tab = $tab[0];
+ if ($is_where == 'Y') {
+ $vg[$col] = $tab;
+ } else {
+ $sg[$col] = $tab;
+ }
+ }
+ if (isset($vg)) {
+ $col_cand = $vg;
+ // Candidates restricted in index+where
+ } else {
+ $col_cand = $sg;
+ // None of the candidates where in a where-clause
+ }
+ }
+
+ // If our array of candidates has more than one member we'll just
+ // find the smallest table.
+ // Of course the actual query would be faster if we check for
+ // the Criteria which gives the smallest result set in its table,
+ // but it would take too much time to check this
+ if (count($col_cand) > 1) {
+ // Of course we only want to check each table once
+ $checked_tables = $col_cand;
+ foreach ($col_cand as $tab) {
+ if ($checked_tables[$tab] != 1) {
+ $tsize[$tab] = PMA_Table::countRecords($db, $tab, true, false);
+ $checked_tables[$tab] = 1;
+ }
+ $csize[$tab] = $tsize[$tab];
+ }
+ asort($csize);
+ reset($csize);
+ $master = key($csize); // Smallest
+ } else {
+ reset($col_cand);
+ $master = current($col_cand); // Only one single candidate
+ }
+ } // end if (exactly one where clause)
+
+ $tab_left = $tab_all;
+ unset($tab_left[$master]);
+ $tab_know[$master] = $master;
+
+ $run = 0;
+ $emerg = '';
+ while (count($tab_left) > 0) {
+ if ($run % 2 == 0) {
+ PMA_getRelatives('master');
+ } else {
+ PMA_getRelatives('foreign');
+ }
+ $run++;
+ if ($run > 5) {
+
+ foreach ($tab_left as $tab) {
+ $emerg .= ', ' . PMA_backquote($tab);
+ unset($tab_left[$tab]);
+ }
+ }
+ } // end while
+ $qry_from = PMA_backquote($master) . $emerg . $fromclause;
+ } // end if ($cfgRelation['relwork'] && count($tab_all) > 0)
+
+} // end count($Field) > 0
+
+// In case relations are not defined, just generate the FROM clause
+// from the list of tables, however we don't generate any JOIN
+
+if (empty($qry_from) && isset($tab_all)) {
+ $qry_from = implode(', ', $tab_all);
+}
+// Now let's see what we got
+if (!empty($qry_from)) {
+ echo 'FROM ' . htmlspecialchars($qry_from) . "\n";
+}
+
+// 3. WHERE
+$qry_where = '';
+$criteria_cnt = 0;
+for ($x = 0; $x < $col; $x++) {
+ if (!empty($curField[$x]) && !empty($curCriteria[$x]) && $x && isset($last_where) && isset($curAndOrCol)) {
+ $qry_where .= ' ' . strtoupper($curAndOrCol[$last_where]) . ' ';
+ }
+ if (!empty($curField[$x]) && !empty($curCriteria[$x])) {
+ $qry_where .= '(' . $curField[$x] . ' ' . $curCriteria[$x] . ')';
+ $last_where = $x;
+ $criteria_cnt++;
+ }
+} // end for
+if ($criteria_cnt > 1) {
+ $qry_where = '(' . $qry_where . ')';
+}
+// OR rows ${'cur' . $or}[$x]
+if (!isset($curAndOrRow)) {
+ $curAndOrRow = array();
+}
+for ($y = 0; $y <= $row; $y++) {
+ $criteria_cnt = 0;
+ $qry_orwhere = '';
+ $last_orwhere = '';
+ for ($x = 0; $x < $col; $x++) {
+ if (!empty($curField[$x]) && !empty(${'curOr' . $y}[$x]) && $x) {
+ $qry_orwhere .= ' ' . strtoupper($curAndOrCol[$last_orwhere]) . ' ';
+ }
+ if (!empty($curField[$x]) && !empty(${'curOr' . $y}[$x])) {
+ $qry_orwhere .= '(' . $curField[$x]
+ . ' '
+ . ${'curOr' . $y}[$x]
+ . ')';
+ $last_orwhere = $x;
+ $criteria_cnt++;
+ }
+ } // end for
+ if ($criteria_cnt > 1) {
+ $qry_orwhere = '(' . $qry_orwhere . ')';
+ }
+ if (!empty($qry_orwhere)) {
+ $qry_where .= "\n"
+ . strtoupper(isset($curAndOrRow[$y]) ? $curAndOrRow[$y] . ' ' : '')
+ . $qry_orwhere;
+ } // end if
+} // end for
+
+if (!empty($qry_where) && $qry_where != '()') {
+ echo 'WHERE ' . htmlspecialchars($qry_where) . "\n";
+} // end if
+
+
+// 4. ORDER BY
+$last_orderby = 0;
+if (!isset($qry_orderby)) {
+ $qry_orderby = '';
+}
+for ($x = 0; $x < $col; $x++) {
+ if ($last_orderby && $x && !empty($curField[$x]) && !empty($curSort[$x])) {
+ $qry_orderby .= ', ';
+ }
+ if (!empty($curField[$x]) && !empty($curSort[$x])) {
+ // if they have chosen all fields using the * selector,
+ // then sorting is not available
+ // Robbat2 - Fix for Bug #570698
+ if (substr($curField[$x], -2) != '.*') {
+ $qry_orderby .= $curField[$x] . ' ' . $curSort[$x];
+ $last_orderby = 1;
+ }
+ }
+} // end for
+if (!empty($qry_orderby)) {
+ echo 'ORDER BY ' . htmlspecialchars($qry_orderby) . "\n";
+}
+?>
+ </textarea>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input type="submit" name="submit_sql" value="<?php echo $strRunQuery; ?>" />
+ </fieldset>
+ </td>
+</tr>
+</table>
+</form>
+<?php
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/db_search.php b/db_search.php
new file mode 100644
index 0000000000..13d5323a66
--- /dev/null
+++ b/db_search.php
@@ -0,0 +1,372 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * searchs the entire database
+ *
+ * @todo make use of UNION when searching multiple tables
+ * @todo display executed query, optional?
+ * @uses $cfg['UseDbSearch']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['strAccessDenied']
+ * @uses $GLOBALS['strSearchOption1']
+ * @uses $GLOBALS['strSearchOption2']
+ * @uses $GLOBALS['strSearchOption3']
+ * @uses $GLOBALS['strSearchOption4']
+ * @uses $GLOBALS['strSearchResultsFor']
+ * @uses $GLOBALS['strNumSearchResultsInTable']
+ * @uses $GLOBALS['strBrowse']
+ * @uses $GLOBALS['strDelete']
+ * @uses $GLOBALS['strNumSearchResultsTotal']
+ * @uses $GLOBALS['strSearchFormTitle']
+ * @uses $GLOBALS['strSearchNeedle']
+ * @uses $GLOBALS['strSearchType']
+ * @uses $GLOBALS['strSplitWordsWithSpace']
+ * @uses $GLOBALS['strSearchInTables']
+ * @uses $GLOBALS['strUnselectAll']
+ * @uses $GLOBALS['strSelectAll']
+ * @uses PMA_DBI_get_tables()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_getSearchSqls()
+ * @uses PMA_DBI_fetch_value()
+ * @uses PMA_linkOrButton()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_showMySQLDocu()
+ * @uses $_REQUEST['search_str']
+ * @uses $_REQUEST['submit_search']
+ * @uses $_REQUEST['search_option']
+ * @uses $_REQUEST['table_select']
+ * @uses $_REQUEST['unselectall']
+ * @uses $_REQUEST['selectall']
+ * @uses $_REQUEST['field_str']
+ * @uses is_string()
+ * @uses htmlspecialchars()
+ * @uses array_key_exists()
+ * @uses is_array()
+ * @uses array_intersect()
+ * @uses sprintf()
+ * @uses in_array()
+ * @version $Id$
+ * @author Thomas Chaumeny <chaume92 at aol.com>
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Gets some core libraries and send headers
+ */
+require './libraries/db_common.inc.php';
+
+/**
+ * init
+ */
+// If config variable $GLOBALS['cfg']['Usedbsearch'] is on false : exit.
+if (! $GLOBALS['cfg']['UseDbSearch']) {
+ PMA_mysqlDie($GLOBALS['strAccessDenied'], '', false, $err_url);
+} // end if
+$url_query .= '&amp;goto=db_search.php';
+$url_params['goto'] = 'db_search.php';
+
+/**
+ * @global array list of tables from the current database
+ * but do not clash with $tables coming from db_info.inc.php
+ */
+$tables_names_only = PMA_DBI_get_tables($GLOBALS['db']);
+
+$search_options = array(
+ '1' => $GLOBALS['strSearchOption1'],
+ '2' => $GLOBALS['strSearchOption2'],
+ '3' => $GLOBALS['strSearchOption3'],
+ '4' => $GLOBALS['strSearchOption4'],
+);
+
+if (empty($_REQUEST['search_option']) || ! is_string($_REQUEST['search_option'])
+ || ! array_key_exists($_REQUEST['search_option'], $search_options)) {
+ $search_option = 1;
+ unset($_REQUEST['submit_search']);
+} else {
+ $search_option = (int) $_REQUEST['search_option'];
+ $option_str = $search_options[$_REQUEST['search_option']];
+}
+
+if (empty($_REQUEST['search_str']) || ! is_string($_REQUEST['search_str'])) {
+ unset($_REQUEST['submit_search']);
+ $searched = '';
+} else {
+ $searched = htmlspecialchars($_REQUEST['search_str']);
+ // For "as regular expression" (search option 4), we should not treat
+ // this as an expression that contains a LIKE (second parameter of
+ // PMA_sqlAddslashes()).
+ //
+ // Usage example: If user is seaching for a literal $ in a regexp search,
+ // he should enter \$ as the value.
+ $search_str = PMA_sqlAddslashes($_REQUEST['search_str'], ($search_option == 4 ? false : true));
+}
+
+$tables_selected = array();
+if (empty($_REQUEST['table_select']) || ! is_array($_REQUEST['table_select'])) {
+ unset($_REQUEST['submit_search']);
+} elseif (! isset($_REQUEST['selectall']) && ! isset($_REQUEST['unselectall'])) {
+ $tables_selected = array_intersect($_REQUEST['table_select'], $tables_names_only);
+}
+
+if (isset($_REQUEST['selectall'])) {
+ $tables_selected = $tables_names_only;
+} elseif (isset($_REQUEST['unselectall'])) {
+ $tables_selected = array();
+}
+
+if (empty($_REQUEST['field_str']) || ! is_string($_REQUEST['field_str'])) {
+ unset($field_str);
+} else {
+ $field_str = PMA_sqlAddslashes($_REQUEST['field_str'], true);
+}
+
+/**
+ * Displays top links
+ */
+$sub_part = '';
+require './libraries/db_info.inc.php';
+
+
+/**
+ * 1. Main search form has been submitted
+ */
+if (isset($_REQUEST['submit_search'])) {
+
+ /**
+ * Builds the SQL search query
+ *
+ * @todo can we make use of fulltextsearch IN BOOLEAN MODE for this?
+ * @uses PMA_DBI_query
+ * PMA_backquote
+ * PMA_DBI_free_result
+ * PMA_DBI_fetch_assoc
+ * $GLOBALS['db']
+ * explode
+ * count
+ * strlen
+ * @param string the table name
+ * @param string restrict the search to this field
+ * @param string the string to search
+ * @param integer type of search (1 -> 1 word at least, 2 -> all words,
+ * 3 -> exact string, 4 -> regexp)
+ *
+ * @return array 3 SQL querys (for count, display and delete results)
+ *
+ * @global string the url to return to in case of errors
+ * @global string charset connection
+ */
+ function PMA_getSearchSqls($table, $field, $search_str, $search_option)
+ {
+ global $err_url;
+
+ // Statement types
+ $sqlstr_select = 'SELECT';
+ $sqlstr_delete = 'DELETE';
+
+ // Fields to select
+ $tblfields = PMA_DBI_fetch_result('SHOW FIELDS FROM ' . PMA_backquote($table) . ' FROM ' . PMA_backquote($GLOBALS['db']),
+ null, 'Field');
+
+ // Table to use
+ $sqlstr_from = ' FROM ' . PMA_backquote($GLOBALS['db']) . '.' . PMA_backquote($table);
+
+ $search_words = (($search_option > 2) ? array($search_str) : explode(' ', $search_str));
+ $search_wds_cnt = count($search_words);
+
+ $like_or_regex = (($search_option == 4) ? 'REGEXP' : 'LIKE');
+ $automatic_wildcard = (($search_option < 3) ? '%' : '');
+
+ $fieldslikevalues = array();
+ foreach ($search_words as $search_word) {
+ // Eliminates empty values
+ if (strlen($search_word) === 0) {
+ continue;
+ }
+
+ $thefieldlikevalue = array();
+ foreach ($tblfields as $tblfield) {
+ if (! isset($field) || strlen($field) == 0 || $tblfield == $field) {
+ $thefieldlikevalue[] = PMA_backquote($tblfield)
+ . ' ' . $like_or_regex . ' '
+ . "'" . $automatic_wildcard
+ . $search_word
+ . $automatic_wildcard . "'";
+ }
+ } // end for
+
+ if (count($thefieldlikevalue) > 0) {
+ $fieldslikevalues[] = implode(' OR ', $thefieldlikevalue);
+ }
+ } // end for
+
+ $implode_str = ($search_option == 1 ? ' OR ' : ' AND ');
+ if ( empty($fieldslikevalues)) {
+ // this could happen when the "inside field" does not exist
+ // in any selected tables
+ $sqlstr_where = ' WHERE FALSE';
+ } else {
+ $sqlstr_where = ' WHERE (' . implode(') ' . $implode_str . ' (', $fieldslikevalues) . ')';
+ }
+ unset($fieldslikevalues);
+
+ // Builds complete queries
+ $sql['select_fields'] = $sqlstr_select . ' * ' . $sqlstr_from . $sqlstr_where;
+ // here, I think we need to still use the COUNT clause, even for
+ // VIEWs, anyway we have a WHERE clause that should limit results
+ $sql['select_count'] = $sqlstr_select . ' COUNT(*) AS `count`' . $sqlstr_from . $sqlstr_where;
+ $sql['delete'] = $sqlstr_delete . $sqlstr_from . $sqlstr_where;
+
+ return $sql;
+ } // end of the "PMA_getSearchSqls()" function
+
+
+ /**
+ * Displays the results
+ */
+ $this_url_params = array(
+ 'db' => $GLOBALS['db'],
+ 'goto' => 'db_sql.php',
+ 'pos' => 0,
+ 'is_js_confirmed' => 0,
+ );
+
+ // Displays search string
+ echo '<br />' . "\n"
+ .'<table class="data">' . "\n"
+ .'<caption class="tblHeaders">' . "\n"
+ .sprintf($GLOBALS['strSearchResultsFor'],
+ $searched, $option_str) . "\n"
+ .'</caption>' . "\n";
+
+ $num_search_result_total = 0;
+ $odd_row = true;
+
+ foreach ($tables_selected as $each_table) {
+ // Gets the SQL statements
+ $newsearchsqls = PMA_getSearchSqls($each_table, (! empty($field_str) ? $field_str : ''), $search_str, $search_option);
+
+ // Executes the "COUNT" statement
+ $res_cnt = PMA_DBI_fetch_value($newsearchsqls['select_count']);
+ $num_search_result_total += $res_cnt;
+
+ $sql_query .= $newsearchsqls['select_count'];
+
+ echo '<tr class="' . ($odd_row ? 'odd' : 'even') . '">'
+ .'<td>' . sprintf($GLOBALS['strNumSearchResultsInTable'], $res_cnt,
+ htmlspecialchars($each_table)) . "</td>\n";
+
+ if ($res_cnt > 0) {
+ $this_url_params['sql_query'] = $newsearchsqls['select_fields'];
+ echo '<td>' . PMA_linkOrButton(
+ 'sql.php' . PMA_generate_common_url($this_url_params),
+ $GLOBALS['strBrowse'], '') . "</td>\n";
+
+ $this_url_params['sql_query'] = $newsearchsqls['delete'];
+ echo '<td>' . PMA_linkOrButton(
+ 'sql.php' . PMA_generate_common_url($this_url_params),
+ $GLOBALS['strDelete'], $newsearchsqls['delete']) . "</td>\n";
+
+ } else {
+ echo '<td>&nbsp;</td>' . "\n"
+ .'<td>&nbsp;</td>' . "\n";
+ }// end if else
+ $odd_row = ! $odd_row;
+ echo '</tr>' . "\n";
+ } // end for
+
+ echo '</table>' . "\n";
+
+ if (count($tables_selected) > 1) {
+ echo '<p>' . sprintf($GLOBALS['strNumSearchResultsTotal'],
+ $num_search_result_total) . '</p>' . "\n";
+ }
+} // end 1.
+
+
+/**
+ * 2. Displays the main search form
+ */
+?>
+<a name="db_search"></a>
+<form method="post" action="db_search.php" name="db_search">
+<?php echo PMA_generate_common_hidden_inputs($GLOBALS['db']); ?>
+<fieldset>
+ <legend><?php echo $GLOBALS['strSearchFormTitle']; ?></legend>
+
+ <table class="formlayout">
+ <tr><td><?php echo $GLOBALS['strSearchNeedle']; ?></td>
+ <td><input type="text" name="search_str" size="60"
+ value="<?php echo $searched; ?>" /></td>
+ </tr>
+ <tr><td align="right" valign="top">
+ <?php echo $GLOBALS['strSearchType']; ?></td>
+ <td><?php
+
+$choices = array(
+ '1' => $GLOBALS['strSearchOption1'] . PMA_showHint($GLOBALS['strSplitWordsWithSpace']),
+ '2' => $GLOBALS['strSearchOption2'] . PMA_showHint($GLOBALS['strSplitWordsWithSpace']),
+ '3' => $GLOBALS['strSearchOption3'],
+ '4' => $GLOBALS['strSearchOption4'] . ' ' . PMA_showMySQLDocu('Regexp', 'Regexp')
+);
+// 4th parameter set to false to add line breaks
+// 5th parameter set to false to avoid htmlspecialchars() escaping in the label
+// since we have some HTML in some labels
+PMA_generate_html_radio('search_option', $choices, $search_option, true, false);
+unset($choices);
+ ?>
+ </td>
+ </tr>
+ <tr><td align="right" valign="top">
+ <?php echo $GLOBALS['strSearchInTables']; ?></td>
+ <td rowspan="2">
+<?php
+echo ' <select name="table_select[]" size="6" multiple="multiple">' . "\n";
+foreach ($tables_names_only as $each_table) {
+ if (in_array($each_table, $tables_selected)) {
+ $is_selected = ' selected="selected"';
+ } else {
+ $is_selected = '';
+ }
+
+ echo ' <option value="' . htmlspecialchars($each_table) . '"'
+ . $is_selected . '>'
+ . str_replace(' ', '&nbsp;', htmlspecialchars($each_table)) . '</option>' . "\n";
+} // end while
+
+echo ' </select>' . "\n";
+$alter_select =
+ '<a href="db_search.php' . PMA_generate_common_url(array_merge($url_params, array('selectall' => 1))) . '#db_search"'
+ . ' onclick="setSelectOptions(\'db_search\', \'table_select[]\', true); return false;">' . $GLOBALS['strSelectAll'] . '</a>'
+ . '&nbsp;/&nbsp;'
+ . '<a href="db_search.php' . PMA_generate_common_url(array_merge($url_params, array('unselectall' => 1))) . '#db_search"'
+ . ' onclick="setSelectOptions(\'db_search\', \'table_select[]\', false); return false;">' . $GLOBALS['strUnselectAll'] . '</a>';
+?>
+ </td>
+ </tr>
+ <tr><td align="right" valign="bottom">
+ <?php echo $alter_select; ?></td></tr>
+ </tr>
+ <tr><td align="right">
+ <?php echo $GLOBALS['strSearchInField']; ?></td>
+ <td><input type="text" name="field_str" size="60"
+ value="<?php echo ! empty($field_str) ? $field_str : ''; ?>" /></td>
+ </tr>
+ </table>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="submit_search" value="<?php echo $GLOBALS['strGo']; ?>"
+ id="buttonGo" />
+</fieldset>
+</form>
+
+<?php
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/db_sql.php b/db_sql.php
new file mode 100644
index 0000000000..10d5819070
--- /dev/null
+++ b/db_sql.php
@@ -0,0 +1,45 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Runs common work
+ */
+require './libraries/db_common.inc.php';
+require_once './libraries/sql_query_form.lib.php';
+
+// After a syntax error, we return to this script
+// with the typed query in the textarea.
+$goto = 'db_sql.php';
+$back = 'db_sql.php';
+
+/**
+ * Gets informations about the database and, if it is empty, move to the
+ * "db_structure.php" script where table can be created
+ */
+require './libraries/db_info.inc.php';
+if ($num_tables == 0 && empty($db_query_force)) {
+ $sub_part = '';
+ $is_info = TRUE;
+ require './db_structure.php';
+ exit();
+}
+
+/**
+ * Query box, bookmark, insert data from textfile
+ */
+PMA_sqlQueryForm(true, false, isset($_REQUEST['delimiter']) ? $_REQUEST['delimiter'] : ';');
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/db_structure.php b/db_structure.php
new file mode 100644
index 0000000000..72b1d6ec89
--- /dev/null
+++ b/db_structure.php
@@ -0,0 +1,581 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+
+$GLOBALS['js_include'][] = 'mootools.js';
+
+/**
+ * Prepares the tables list if the user where not redirected to this script
+ * because there is no table in the database ($is_info is true)
+ */
+if (empty($is_info)) {
+ // Drops/deletes/etc. multiple tables if required
+ if ((!empty($submit_mult) && isset($selected_tbl))
+ || isset($mult_btn)) {
+ $action = 'db_structure.php';
+ $err_url = 'db_structure.php?'. PMA_generate_common_url($db);
+ require './libraries/mult_submits.inc.php';
+ if (empty($message)) {
+ $message = PMA_Message::success();
+ }
+ }
+ require './libraries/db_common.inc.php';
+ $url_query .= '&amp;goto=db_structure.php';
+
+ // Gets the database structure
+ $sub_part = '_structure';
+ require './libraries/db_info.inc.php';
+}
+
+// 1. No tables
+if ($num_tables == 0) {
+ echo '<p>' . $strNoTablesFound . '</p>' . "\n";
+
+ if (empty($db_is_information_schema)) {
+ require './libraries/display_create_table.lib.php';
+ } // end if (Create Table dialog)
+
+ /**
+ * Displays the footer
+ */
+ require_once './libraries/footer.inc.php';
+ exit;
+}
+
+// else
+// 2. Shows table informations - staybyte - 11 June 2001
+
+require_once './libraries/bookmark.lib.php';
+
+require_once './libraries/mysql_charsets.lib.php';
+$db_collation = PMA_getDbCollation($db);
+
+// Display function
+/**
+ * void PMA_TableHeader([bool $db_is_information_schema = false])
+ * display table header (<table><thead>...</thead><tbody>)
+ *
+ * @uses PMA_showHint()
+ * @uses $GLOBALS['cfg']['PropertiesNumColumns']
+ * @uses $GLOBALS['is_show_stats']
+ * @uses $GLOBALS['strTable']
+ * @uses $GLOBALS['strAction']
+ * @uses $GLOBALS['strRecords']
+ * @uses $GLOBALS['strApproximateCount']
+ * @uses $GLOBALS['strType']
+ * @uses $GLOBALS['strCollation']
+ * @uses $GLOBALS['strSize']
+ * @uses $GLOBALS['strOverhead']
+ * @uses $GLOBALS['structure_tbl_col_cnt']
+ * @param boolean $db_is_information_schema
+ */
+function PMA_TableHeader($db_is_information_schema = false)
+{
+ $cnt = 0; // Let's count the columns...
+
+ if ($db_is_information_schema) {
+ $action_colspan = 3;
+ } else {
+ $action_colspan = 6;
+ }
+
+ echo '<table class="data" style="float: left;">' . "\n"
+ .'<thead>' . "\n"
+ .'<tr><td></td>' . "\n"
+ .' <th>' . $GLOBALS['strTable'] . '</th>' . "\n"
+ .' <th colspan="' . $action_colspan . '">' . "\n"
+ .' ' . $GLOBALS['strAction'] . "\n"
+ .' </th>'
+ .' <th>' . $GLOBALS['strRecords']
+ .PMA_showHint(PMA_sanitize($GLOBALS['strApproximateCount'])) . "\n"
+ .' </th>' . "\n";
+ if (!($GLOBALS['cfg']['PropertiesNumColumns'] > 1)) {
+ echo ' <th>' . $GLOBALS['strType'] . '</th>' . "\n";
+ $cnt++;
+ echo ' <th>' . $GLOBALS['strCollation'] . '</th>' . "\n";
+ $cnt++;
+ }
+ if ($GLOBALS['is_show_stats']) {
+ echo ' <th>' . $GLOBALS['strSize'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strOverhead'] . '</th>' . "\n";
+ $cnt += 2;
+ }
+ echo '</tr>' . "\n";
+ echo '</thead>' . "\n";
+ echo '<tbody>' . "\n";
+ $GLOBALS['structure_tbl_col_cnt'] = $cnt + $action_colspan + 3;
+} // end function PMA_TableHeader()
+
+$titles = array();
+if (true == $cfg['PropertiesIconic']) {
+ $titles['Browse'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'b_browse.png" alt="' . $strBrowse . '" title="' . $strBrowse . '" />';
+ $titles['NoBrowse'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'bd_browse.png" alt="' . $strBrowse . '" title="' . $strBrowse . '" />';
+ $titles['Search'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'b_select.png" alt="' . $strSearch . '" title="' . $strSearch . '" />';
+ $titles['NoSearch'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'bd_select.png" alt="' . $strSearch . '" title="' . $strSearch . '" />';
+ $titles['Insert'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'b_insrow.png" alt="' . $strInsert . '" title="' . $strInsert . '" />';
+ $titles['NoInsert'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'bd_insrow.png" alt="' . $strInsert . '" title="' . $strInsert . '" />';
+ $titles['Structure'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'b_props.png" alt="' . $strStructure . '" title="' . $strStructure . '" />';
+ $titles['Drop'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'b_drop.png" alt="' . $strDrop . '" title="' . $strDrop . '" />';
+ $titles['NoDrop'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'bd_drop.png" alt="' . $strDrop . '" title="' . $strDrop . '" />';
+ $titles['Empty'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'b_empty.png" alt="' . $strEmpty . '" title="' . $strEmpty . '" />';
+ $titles['NoEmpty'] = '<img class="icon" width="16" height="16" src="' .$pmaThemeImage . 'bd_empty.png" alt="' . $strEmpty . '" title="' . $strEmpty . '" />';
+
+ if ('both' === $cfg['PropertiesIconic']) {
+ $titles['Browse'] .= $strBrowse;
+ $titles['Search'] .= $strSearch;
+ $titles['NoBrowse'] .= $strBrowse;
+ $titles['NoSearch'] .= $strSearch;
+ $titles['Insert'] .= $strInsert;
+ $titles['NoInsert'] .= $strInsert;
+ $titles['Structure'] .= $strStructure;
+ $titles['Drop'] .= $strDrop;
+ $titles['NoDrop'] .= $strDrop;
+ $titles['Empty'] .= $strEmpty;
+ $titles['NoEmpty'] .= $strEmpty;
+ }
+} else {
+ $titles['Browse'] = $strBrowse;
+ $titles['Search'] = $strSearch;
+ $titles['NoBrowse'] = $strBrowse;
+ $titles['NoSearch'] = $strSearch;
+ $titles['Insert'] = $strInsert;
+ $titles['NoInsert'] = $strInsert;
+ $titles['Structure'] = $strStructure;
+ $titles['Drop'] = $strDrop;
+ $titles['NoDrop'] = $strDrop;
+ $titles['Empty'] = $strEmpty;
+ $titles['NoEmpty'] = $strEmpty;
+}
+
+/**
+ * Displays the tables list
+ */
+
+$_url_params = array(
+ 'pos' => $pos,
+ 'db' => $db);
+
+PMA_listNavigator($total_num_tables, $pos, $_url_params, 'db_structure.php', 'frame_content', $GLOBALS['cfg']['MaxTableList']);
+
+?>
+<form method="post" action="db_structure.php" name="tablesForm" id="tablesForm">
+<?php
+echo PMA_generate_common_hidden_inputs($db);
+
+PMA_TableHeader($db_is_information_schema);
+
+$i = $sum_entries = 0;
+$sum_size = (double) 0;
+$overhead_size = (double) 0;
+$overhead_check = '';
+$checked = !empty($checkall) ? ' checked="checked"' : '';
+$num_columns = $cfg['PropertiesNumColumns'] > 1 ? ceil($num_tables / $cfg['PropertiesNumColumns']) + 1 : 0;
+$row_count = 0;
+
+
+$hidden_fields = array();
+$odd_row = true;
+$sum_row_count_pre = '';
+
+// added by rajk - for blobstreaming
+$PMA_Config = $_SESSION['PMA_Config'];
+
+if (!empty ($PMA_Config))
+ $session_bs_tables = $PMA_Config->get('BLOBSTREAMING_TABLES'); // list of blobstreaming tables
+
+$tableReductionCount = 0; // the amount to reduce the table count by
+
+foreach ($tables as $keyname => $each_table) {
+ if (isset($session_bs_tables))
+ {
+ // compare table name against blobstreaming tables
+ foreach ($session_bs_tables as $table_key=>$table_val)
+ // if the table is a blobstreaming table, reduce table count and skip outer foreach loop
+ if ($table_key == $keyname)
+ {
+ $tableReductionCount++;
+ continue 2;
+ }
+ }
+
+ // loic1: Patch from Joshua Nye <josh at boxcarmedia.com> to get valid
+ // statistics whatever is the table type
+
+ $table_is_view = false;
+ $table_encoded = urlencode($each_table['TABLE_NAME']);
+ // Sets parameters for links
+ $tbl_url_query = $url_query . '&amp;table=' . $table_encoded;
+
+ switch ( $each_table['ENGINE']) {
+ // MyISAM, ISAM or Heap table: Row count, data size and index size
+ // are accurate.
+ case 'MyISAM' :
+ case 'ISAM' :
+ case 'HEAP' :
+ case 'MEMORY' :
+ if ($is_show_stats) {
+ $tblsize = doubleval($each_table['Data_length']) + doubleval($each_table['Index_length']);
+ $sum_size += $tblsize;
+ list($formatted_size, $unit) = PMA_formatByteDown($tblsize, 3, ($tblsize > 0) ? 1 : 0);
+ if (isset($each_table['Data_free']) && $each_table['Data_free'] > 0) {
+ list($formatted_overhead, $overhead_unit) = PMA_formatByteDown($each_table['Data_free'], 3, ($each_table['Data_free'] > 0) ? 1 : 0);
+ $overhead_size += $each_table['Data_free'];
+ }
+ }
+ break;
+ case 'InnoDB' :
+ // InnoDB table: Row count is not accurate but data and index
+ // sizes are.
+
+ if ($each_table['TABLE_ROWS'] < $GLOBALS['cfg']['MaxExactCount']) {
+ $each_table['COUNTED'] = true;
+ $each_table['TABLE_ROWS'] = PMA_Table::countRecords($db,
+ $each_table['TABLE_NAME'], $return = true, $force_exact = true,
+ $is_view = false);
+ } else {
+ $each_table['COUNTED'] = false;
+ }
+
+ if ($is_show_stats) {
+ $tblsize = $each_table['Data_length'] + $each_table['Index_length'];
+ $sum_size += $tblsize;
+ list($formatted_size, $unit) = PMA_formatByteDown($tblsize, 3, ($tblsize > 0) ? 1 : 0);
+ }
+ //$display_rows = ' - ';
+ break;
+ case 'MRG_MyISAM' :
+ case 'BerkeleyDB' :
+ // Merge or BerkleyDB table: Only row count is accurate.
+ if ($is_show_stats) {
+ $formatted_size = ' - ';
+ $unit = '';
+ }
+ break;
+ // for a view, the ENGINE is null
+ case null :
+ case 'SYSTEM VIEW' :
+ // countRecords() takes care of $cfg['MaxExactCountViews']
+ $each_table['TABLE_ROWS'] = PMA_Table::countRecords($db,
+ $each_table['TABLE_NAME'], $return = true, $force_exact = true,
+ $is_view = true);
+ $table_is_view = true;
+ break;
+ default :
+ // Unknown table type.
+ if ($is_show_stats) {
+ $formatted_size = 'unknown';
+ $unit = '';
+ }
+ } // end switch
+ $sum_entries += $each_table['TABLE_ROWS'];
+
+ if (isset($each_table['Collation'])) {
+ $collation = '<dfn title="'
+ . PMA_getCollationDescr($each_table['Collation']) . '">'
+ . $each_table['Collation'] . '</dfn>';
+ } else {
+ $collation = '---';
+ }
+
+ if ($is_show_stats) {
+ if (isset($formatted_overhead)) {
+ $overhead = '<a href="tbl_structure.php?'
+ . $tbl_url_query . '#showusage">' . $formatted_overhead
+ . ' ' . $overhead_unit . '</a>' . "\n";
+ unset($formatted_overhead);
+ $overhead_check .=
+ "document.getElementById('checkbox_tbl_" . ($i + 1) . "').checked = true;";
+ } else {
+ $overhead = '-';
+ }
+ } // end if
+
+ $alias = (!empty($tooltip_aliasname) && isset($tooltip_aliasname[$each_table['TABLE_NAME']]))
+ ? str_replace(' ', '&nbsp;', htmlspecialchars($tooltip_truename[$each_table['TABLE_NAME']]))
+ : str_replace(' ', '&nbsp;', htmlspecialchars($each_table['TABLE_NAME']));
+ $truename = (!empty($tooltip_truename) && isset($tooltip_truename[$each_table['TABLE_NAME']]))
+ ? str_replace(' ', '&nbsp;', htmlspecialchars($tooltip_truename[$each_table['TABLE_NAME']]))
+ : str_replace(' ', '&nbsp;', htmlspecialchars($each_table['TABLE_NAME']));
+
+ $i++;
+
+ $row_count++;
+ if ($table_is_view) {
+ $hidden_fields[] = '<input type="hidden" name="views[]" value="' . $each_table['TABLE_NAME'] . '" />';
+ }
+
+ if ($each_table['TABLE_ROWS'] > 0) {
+ $browse_table = '<a href="sql.php?' . $tbl_url_query . '&amp;pos=0">' . $titles['Browse'] . '</a>';
+ $search_table = '<a href="tbl_select.php?' . $tbl_url_query . '">' . $titles['Search'] . '</a>';
+ } else {
+ $browse_table = $titles['NoBrowse'];
+ $search_table = $titles['NoSearch'];
+ }
+
+ if (! $db_is_information_schema) {
+ if (! empty($each_table['TABLE_ROWS'])) {
+ $empty_table = '<a href="sql.php?' . $tbl_url_query
+ . '&amp;sql_query=';
+ $empty_table .= urlencode('TRUNCATE ' . PMA_backquote($each_table['TABLE_NAME']))
+ . '&amp;zero_rows='
+ . urlencode(sprintf($strTableHasBeenEmptied, htmlspecialchars($each_table['TABLE_NAME'])))
+ . '" onclick="return confirmLink(this, \'TRUNCATE ';
+ $empty_table .= PMA_jsFormat($each_table['TABLE_NAME']) . '\')">' . $titles['Empty'] . '</a>';
+ } else {
+ $empty_table = $titles['NoEmpty'];
+ }
+ $drop_query = 'DROP '
+ . ($table_is_view ? 'VIEW' : 'TABLE')
+ . ' ' . PMA_backquote($each_table['TABLE_NAME']);
+ $drop_message = sprintf(
+ $table_is_view ? $strViewHasBeenDropped : $strTableHasBeenDropped,
+ str_replace(' ', '&nbsp;', htmlspecialchars($each_table['TABLE_NAME'])));
+ }
+
+ if ($num_columns > 0 && $num_tables > $num_columns
+ && (($row_count % $num_columns) == 0)) {
+ $row_count = 1;
+ $odd_row = true;
+ ?>
+ </tr>
+</tbody>
+</table>
+ <?php
+ PMA_TableHeader();
+ }
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; $odd_row = ! $odd_row; ?>">
+ <td align="center">
+ <input type="checkbox" name="selected_tbl[]"
+ value="<?php echo $each_table['TABLE_NAME']; ?>"
+ id="checkbox_tbl_<?php echo $i; ?>"<?php echo $checked; ?> /></td>
+ <th><label for="checkbox_tbl_<?php echo $i; ?>"
+ title="<?php echo $alias; ?>"><?php echo $truename; ?></label>
+ </th>
+ <td align="center"><?php echo $browse_table; ?></td>
+ <td align="center">
+ <a href="tbl_structure.php?<?php echo $tbl_url_query; ?>">
+ <?php echo $titles['Structure']; ?></a></td>
+ <td align="center"><?php echo $search_table; ?></td>
+ <?php if (! $db_is_information_schema) { ?>
+ <td align="center">
+ <a href="tbl_change.php?<?php echo $tbl_url_query; ?>">
+ <?php echo $titles['Insert']; ?></a></td>
+ <td align="center"><?php echo $empty_table; ?></td>
+ <td align="center">
+ <a href="sql.php?<?php echo $tbl_url_query;
+ ?>&amp;reload=1&amp;purge=1&amp;sql_query=<?php
+ echo urlencode($drop_query); ?>&amp;zero_rows=<?php
+ echo urlencode($drop_message); ?>"
+ onclick="return confirmLink(this, '<?php echo PMA_jsFormat($drop_query, false); ?>')">
+ <?php echo $titles['Drop']; ?></a></td>
+ <?php } // end if (! $db_is_information_schema)
+
+ // there is a null value in the ENGINE
+ // - when the table needs to be repaired, or
+ // - when it's a view
+ // so ensure that we'll display "in use" below for a table
+ // that needs to be repaired
+ if (isset($each_table['TABLE_ROWS']) && ($each_table['ENGINE'] != null || $table_is_view)) {
+ if ($table_is_view) {
+ $row_count_pre = '~';
+ $sum_row_count_pre = '~';
+ $show_superscript = PMA_showHint(PMA_sanitize(sprintf($strViewHasAtLeast, '[a@./Documentation.html#cfg_MaxExactCountViews@_blank]', '[/a]')));
+ } elseif($each_table['ENGINE'] == 'InnoDB' && (! $each_table['COUNTED'])) {
+ // InnoDB table: we did not get an accurate row count
+ $row_count_pre = '~';
+ $sum_row_count_pre = '~';
+ $show_superscript = '';
+ } else {
+ $row_count_pre = '';
+ $show_superscript = '';
+ }
+ ?>
+ <td class="value"><?php echo $row_count_pre . PMA_formatNumber($each_table['TABLE_ROWS'], 0) . $show_superscript; ?></td>
+ <?php if (!($cfg['PropertiesNumColumns'] > 1)) { ?>
+ <td nowrap="nowrap"><?php echo ($table_is_view ? $strView : $each_table['ENGINE']); ?></td>
+ <?php if (isset($collation)) { ?>
+ <td nowrap="nowrap"><?php echo $collation ?></td>
+ <?php } ?>
+ <?php } ?>
+
+ <?php if ($is_show_stats) { ?>
+ <td class="value"><a
+ href="tbl_structure.php?<?php echo $tbl_url_query; ?>#showusage"
+ ><?php echo $formatted_size . ' ' . $unit; ?></a></td>
+ <td class="value"><?php echo $overhead; ?></td>
+ <?php } // end if ?>
+ <?php } elseif ($table_is_view) { ?>
+ <td class="value">-</td>
+ <td><?php echo $strView; ?></td>
+ <td>---</td>
+ <?php if ($is_show_stats) { ?>
+ <td class="value">-</td>
+ <td class="value">-</td>
+ <?php } ?>
+ <?php } else { ?>
+ <td colspan="<?php echo ($structure_tbl_col_cnt - ($db_is_information_schema ? 5 : 8)) ?>"
+ align="center">
+ <?php echo $strInUse; ?></td>
+ <?php } // end if (isset($each_table['TABLE_ROWS'])) else ?>
+</tr>
+ <?php
+} // end foreach
+
+// Show Summary
+if ($is_show_stats) {
+ list($sum_formatted, $unit) = PMA_formatByteDown($sum_size, 3, 1);
+ list($overhead_formatted, $overhead_unit) =
+ PMA_formatByteDown($overhead_size, 3, 1);
+}
+?>
+</tbody>
+<tbody>
+<tr><td></td>
+ <th align="center" nowrap="nowrap">
+ <?php
+ // for blobstreaming - if the number of tables is 0, set tableReductionCount to 0
+ // (we don't want negative numbers here) - rajk
+ if ($num_tables == 0)
+ $tableReductionCount = 0;
+
+ echo sprintf($strTables, PMA_formatNumber($num_tables - $tableReductionCount, 0));
+ ?>
+ </th>
+ <th colspan="<?php echo ($db_is_information_schema ? 3 : 6) ?>" align="center">
+ <?php echo $strSum; ?></th>
+ <th class="value"><?php echo $sum_row_count_pre . PMA_formatNumber($sum_entries, 0); ?></th>
+<?php
+if (!($cfg['PropertiesNumColumns'] > 1)) {
+ $default_engine = PMA_DBI_get_default_engine();
+ echo ' <th align="center">' . "\n"
+ . ' <dfn title="'
+ . sprintf($strDefaultEngine, $default_engine) . '">' .$default_engine . '</dfn></th>' . "\n";
+ // we got a case where $db_collation was empty
+ echo ' <th align="center">' . "\n";
+ if (! empty($db_collation)) {
+ echo ' <dfn title="'
+ . PMA_getCollationDescr($db_collation) . ' (' . $strDefault . ')">' . $db_collation
+ . '</dfn>';
+ }
+ echo '</th>';
+}
+
+if ($is_show_stats) {
+ ?>
+ <th class="value"><?php echo $sum_formatted . ' ' . $unit; ?></th>
+ <th class="value"><?php echo $overhead_formatted . ' ' . $overhead_unit; ?></th>
+ <?php
+}
+?>
+</tr>
+</tbody>
+</table>
+
+<div class="clearfloat">
+<?php
+// Check all tables url
+$checkall_url = 'db_structure.php?' . PMA_generate_common_url($db);
+?>
+<img class="selectallarrow" src="<?php echo $pmaThemeImage .'arrow_'.$text_dir.'.png'; ?>"
+ width="38" height="22" alt="<?php echo $strWithChecked; ?>" />
+<a href="<?php echo $checkall_url; ?>&amp;checkall=1"
+ onclick="if (markAllRows('tablesForm')) return false;">
+ <?php echo $strCheckAll; ?></a>
+/
+<a href="<?php echo $checkall_url; ?>"
+ onclick="if (unMarkAllRows('tablesForm')) return false;">
+ <?php echo $strUncheckAll; ?></a>
+<?php if ($overhead_check != '') { ?>
+/
+<a href="#" onclick="unMarkAllRows('tablesForm');
+ <?php echo $overhead_check; ?> return false;">
+ <?php echo $strCheckOverhead; ?></a>
+<?php } ?>
+
+<select name="submit_mult" onchange="this.form.submit();" style="margin: 0 3em 0 3em;">
+<?php
+echo ' <option value="' . $strWithChecked . '" selected="selected">'
+ . $strWithChecked . '</option>' . "\n";
+echo ' <option value="' . $strEmpty . '" >'
+ . $strEmpty . '</option>' . "\n";
+echo ' <option value="' . $strDrop . '" >'
+ . $strDrop . '</option>' . "\n";
+echo ' <option value="' . $strPrintView . '" >'
+ . $strPrintView . '</option>' . "\n";
+echo ' <option value="' . $strCheckTable . '" >'
+ . $strCheckTable . '</option>' . "\n";
+echo ' <option value="' . $strOptimizeTable . '" >'
+ . $strOptimizeTable . '</option>' . "\n";
+echo ' <option value="' . $strRepairTable . '" >'
+ . $strRepairTable . '</option>' . "\n";
+echo ' <option value="' . $strAnalyzeTable . '" >'
+ . $strAnalyzeTable . '</option>' . "\n";
+?>
+</select>
+<script type="text/javascript">
+<!--
+// Fake js to allow the use of the <noscript> tag
+//-->
+</script>
+<noscript>
+ <input type="submit" value="<?php echo $strGo; ?>" />
+</noscript>
+<?php echo implode("\n", $hidden_fields) . "\n"; ?>
+</div>
+</form>
+<?php
+// display again the table list navigator
+PMA_listNavigator($total_num_tables, $pos, $_url_params, 'db_structure.php', 'frame_content', $GLOBALS['cfg']['MaxTableList']);
+?>
+<hr />
+
+<?php
+// Routines
+require './libraries/db_routines.inc.php';
+
+// Events
+if (PMA_MYSQL_INT_VERSION > 50100) {
+ require './libraries/db_events.inc.php';
+}
+
+/**
+ * Work on the database
+ * redesigned 2004-05-08 by mkkeck
+ */
+/* DATABASE WORK */
+/* Printable view of a table */
+echo '<p>';
+echo '<a href="db_printview.php?' . $url_query . '">';
+if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage
+ .'b_print.png" width="16" height="16" alt="" />';
+}
+echo $strPrintView . '</a> ';
+
+echo '<a href="./db_datadict.php?' . $url_query . '">';
+if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage
+ .'b_tblanalyse.png" width="16" height="16" alt="" />';
+}
+echo $strDataDict . '</a>';
+echo '</p>';
+
+if (empty($db_is_information_schema)) {
+ require './libraries/display_create_table.lib.php';
+} // end if (Create Table dialog)
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/docs.css b/docs.css
new file mode 100644
index 0000000000..5e3dc2ae82
--- /dev/null
+++ b/docs.css
@@ -0,0 +1,277 @@
+/* $Id$ */
+/* Stylesheet for phpMyAdmin documentation */
+/* vim: expandtab ts=4 sw=4 sts=4 tw=78
+*/
+
+body {
+ background-color: #ffffff;
+ font-family: sans-serif;
+ color: #000000;
+ margin: 0;
+ padding: 2em 0 2em 0;
+}
+
+img {
+ border: 0;
+}
+
+abbr, acronym {
+ border-bottom: 1px dotted;
+}
+
+abbr, acronym {
+ cursor: help;
+}
+
+a {
+ text-decoration: none;
+ color: #000099;
+ background-color: #ffffff;
+/* font-weight: normal;*/
+}
+
+a:hover {
+/* background-color: #99CCFF;*/
+ color: #000099;
+ background-color: #ffffff;
+ text-decoration: underline;
+/* font-weight: bolder */
+}
+
+sup {
+ font-size: 0.7em;
+}
+
+sup:before {
+ content: ' [';
+}
+
+sup:after {
+ content: ']';
+}
+
+
+ul.header {
+ width: 100%;
+ background-color: #ddeeff;
+ color: #000000;
+ text-align: center;
+ padding: 0 0 2px 0;
+ border-bottom: 1px solid #000000;
+ font-weight: bold;
+ left: 0;
+ top: 0;
+ position: fixed;
+ margin: 0;
+ /* following MSIE hack was originally written by Riki Fridrich
+ * <http://www.fczbkk.com> */
+/* position: expression("absolute");*/
+/* width: expression(document.body.clientWidth);*/
+/* top: expression(document.body.scrollTop + this.offsetHeight - this.offsetHeight);*/
+}
+
+ul.header li {
+ margin: 0;
+ padding: 0;
+ display: inline;
+}
+
+ul.header li:before {
+ content: ' - ';
+}
+ul.header li:first-child:before {
+ content: '';
+}
+
+ul.header a {
+ text-decoration: none;
+ font-size: medium;
+ color: #000099;
+ background-color: #ddeeff;
+ font-weight: normal;
+}
+ul.header a:hover {
+ color: #000099;
+ background-color: #99CCFF;
+/* font-weight: bolder;*/
+}
+
+h1 {
+ text-align: center;
+ padding-left: 8%;
+ margin-top: 1em;
+ color: #000000;
+ background-color: #ddeeff;
+ font-size: x-large;
+ border-top: 1px solid #000000;
+ border-bottom: 1px solid #000000;
+ clear: both;
+}
+
+h2 {
+ padding-left: 8%;
+ padding-top: 2em;
+ margin-top: 1em;
+ color: #000000;
+ background-color: #ddeeff;
+ font-size: large;
+ border-top: 1px solid #000000;
+ border-bottom: 1px solid #000000;
+ clear: both;
+ /* counter-reset: heading3;
+ counter-increment: heading2; */
+}
+
+/*h2:before {
+ content: counter(heading2) '. ';
+} */
+
+h3 {
+ padding-left: 10%;
+ padding-top: 3em;
+ margin-top: 1em;
+ color: #000000;
+ background-color: #ddeeff;
+ font-size: medium;
+ border-top: 1px solid #000000;
+ border-bottom: 1px solid #000000;
+ clear: both;
+/* counter-reset: heading4;
+ counter-increment: heading3; */
+}
+
+/*h3:before {
+ content: counter(heading2) '.' counter(heading3) '. ';
+} */
+
+h4, h5 {
+ padding: 3em 0 0 0;
+ margin: 10px 5% 2px 5%;
+ font-weight: bold;
+ color: #000099;
+ background-color: #ffffff;
+/* counter-increment: heading4; */
+}
+
+/* h4:before {
+ content: counter(heading2) '.' counter(heading3) '.' counter(heading4) '. ';
+}
+
+h5 {
+ counter-increment: heading5;
+}
+
+h5:before {
+ content: counter(heading2) '.' counter(heading3) '.' counter(heading4) counter(heading5,lower-alpha);
+} */
+
+p {
+ margin: 2px 5% 1em 5%;
+}
+
+table {
+ margin: 2px 5% 2px 5%;
+ border: none;
+}
+
+table tr,table td,table th {
+ border: none;
+}
+
+table.translators {
+ text-align: center;
+ display: table; margin-left: auto; margin-right: auto;
+ border-collapse: collapse;
+}
+
+table.translators th {
+ color: #000000;
+ background-color: #d3dce3;
+}
+
+table.translators td, table.translators th {
+ border: 1px solid #000000;
+ padding: 5px;
+}
+
+ul {
+ margin: 2px 5% 2px 5%;
+}
+
+pre {
+ margin: 1em 5% 1em 5%;
+ border: 1px solid silver;
+ color: #000000;
+ background-color: #eeeeee;
+ padding: 0.5em;
+}
+
+/* no more intend inside li */
+li pre {
+ margin: 1em 0 1em 0;
+}
+
+pre.wrap {
+ white-space: normal;
+}
+
+dl {
+ margin: 1em 6% 1em 6%;
+}
+dt {
+ font-weight: bold;
+ margin-left: 2em;
+ padding-top: 3em;
+}
+dd {
+ margin-left: 4em;
+ margin-bottom: 1em;
+}
+
+ol {
+ margin: 1em 6% 1em 6%;
+}
+
+li {
+ margin-bottom: 1em;
+}
+
+.configrule {
+ font-family: monospace;
+}
+
+dt.configrule {
+ font-weight: bold;
+}
+
+.important {
+ color: #bb0000;
+ background-color: #ffeeee;
+ padding: 0 0.5em 0 0.5em;
+}
+
+p.important {
+ border: 1px dotted #ff0000;
+ padding: 0.5em;
+}
+
+.important:first-word {
+ font-weight: bold;
+}
+
+p.footnote {
+ margin: 0 5% 2px 7%;
+ padding-top: 3em;
+}
+
+p.footnote:first-line {
+ margin-left: -2%;
+}
+
+p#bottom {
+ text-align: right;
+}
+
+p#bottom img {
+ margin: 1em;
+}
diff --git a/error.php b/error.php
new file mode 100644
index 0000000000..e0abb44574
--- /dev/null
+++ b/error.php
@@ -0,0 +1,83 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * phpMyAdmin fatal error display page
+ *
+ * @version $Id$
+ */
+
+/* Input sanitizing */
+require_once './libraries/sanitizing.lib.php';
+
+/* Get variables */
+if (! empty($_REQUEST['lang']) && is_string($_REQUEST['lang'])) {
+ $lang = htmlspecialchars($_REQUEST['lang']);
+} else {
+ $lang = 'en';
+}
+
+if (! empty($_REQUEST['dir']) && is_string($_REQUEST['dir'])) {
+ $dir = htmlspecialchars($_REQUEST['dir']);
+} else {
+ $dir = 'ltr';
+}
+
+if (! empty($_REQUEST['type']) && is_string($_REQUEST['type'])) {
+ $type = htmlspecialchars($_REQUEST['type']);
+} else {
+ $type = 'error';
+}
+
+// force utf-8 to avoid XSS with crafted URL and utf-7 in charset parameter
+$charset = 'utf-8';
+
+header('Content-Type: text/html; charset=' . $charset);
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $lang; ?>" dir="<?php echo $dir; ?>">
+<head>
+ <link rel="icon" href="./favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+ <title>phpMyAdmin</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset; ?>" />
+ <style type="text/css">
+ <!--
+ html {
+ padding: 0;
+ margin: 0;
+ }
+ body {
+ font-family: sans-serif;
+ font-size: small;
+ color: #000000;
+ background-color: #F5F5F5;
+ margin: 1em;
+ }
+ h1 {
+ margin: 0;
+ padding: 0.3em;
+ font-size: 1.4em;
+ font-weight: bold;
+ color: #ffffff;
+ background-color: #ff0000;
+ }
+ p {
+ margin: 0;
+ padding: 0.5em;
+ border: 0.1em solid red;
+ background-color: #ffeeee;
+ }
+ //-->
+ </style>
+</head>
+<body>
+<h1>phpMyAdmin - <?php echo $type; ?></h1>
+<p><?php
+if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
+ echo PMA_sanitize(stripslashes($_REQUEST['error']));
+} else {
+ echo PMA_sanitize($_REQUEST['error']);
+}
+?></p>
+</body>
+</html>
diff --git a/export.php b/export.php
new file mode 100644
index 0000000000..666cbd0687
--- /dev/null
+++ b/export.php
@@ -0,0 +1,676 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @todo too much die here, or?
+ * @version $Id$
+ */
+
+/**
+ * Get the variables sent or posted to this script and a core script
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/zip.lib.php';
+require_once './libraries/plugin_interface.lib.php';
+
+PMA_checkParameters(array('what', 'export_type'));
+
+// Scan plugins
+$export_list = PMA_getPlugins('./libraries/export/', array('export_type' => $export_type, 'single_table' => isset($single_table)));
+
+// Backward compatbility
+$type = $what;
+
+// Check export type
+if (!isset($export_list[$type])) {
+ die('Bad type!');
+}
+
+/**
+ * valid compression methods
+ */
+$compression_methods = array(
+ 'zip',
+ 'gzip',
+ 'bzip',
+);
+
+/**
+ * init and variable checking
+ */
+$compression = false;
+$onserver = false;
+$save_on_server = false;
+$buffer_needed = false;
+if (empty($_REQUEST['asfile'])) {
+ $asfile = false;
+} else {
+ $asfile = true;
+ if (in_array($_REQUEST['compression'], $compression_methods)) {
+ $compression = $_REQUEST['compression'];
+ $buffer_needed = true;
+ }
+ if (!empty($_REQUEST['onserver'])) {
+ $onserver = $_REQUEST['onserver'];
+ // Will we save dump on server?
+ $save_on_server = ! empty($cfg['SaveDir']) && $onserver;
+ }
+}
+
+// Does export require to be into file?
+if (isset($export_list[$type]['force_file']) && ! $asfile) {
+ $message = PMA_Message::error('strExportMustBeFile');
+ $GLOBALS['js_include'][] = 'functions.js';
+ require_once './libraries/header.inc.php';
+ if ($export_type == 'server') {
+ $active_page = 'server_export.php';
+ require './server_export.php';
+ } elseif ($export_type == 'database') {
+ $active_page = 'db_export.php';
+ require './db_export.php';
+ } else {
+ $active_page = 'tbl_export.php';
+ require './tbl_export.php';
+ }
+ exit();
+}
+
+// Generate error url and check for needed variables
+if ($export_type == 'server') {
+ $err_url = 'server_export.php?' . PMA_generate_common_url();
+} elseif ($export_type == 'database' && strlen($db)) {
+ $err_url = 'db_export.php?' . PMA_generate_common_url($db);
+ // Check if we have something to export
+ if (isset($table_select)) {
+ $tables = $table_select;
+ } else {
+ $tables = array();
+ }
+} elseif ($export_type == 'table' && strlen($db) && strlen($table)) {
+ $err_url = 'tbl_export.php?' . PMA_generate_common_url($db, $table);
+} else {
+ die('Bad parameters!');
+}
+
+// Get the functions specific to the export type
+require './libraries/export/' . PMA_securePath($type) . '.php';
+
+/**
+ * Increase time limit for script execution and initializes some variables
+ */
+@set_time_limit($cfg['ExecTimeLimit']);
+if (!empty($cfg['MemoryLimit'])) {
+ @ini_set('memory_limit', $cfg['MemoryLimit']);
+}
+
+// Start with empty buffer
+$dump_buffer = '';
+$dump_buffer_len = 0;
+
+// We send fake headers to avoid browser timeout when buffering
+$time_start = time();
+
+
+/**
+ * Output handler for all exports, if needed buffering, it stores data into
+ * $dump_buffer, otherwise it prints thems out.
+ *
+ * @param string the insert statement
+ *
+ * @return bool Whether output suceeded
+ */
+function PMA_exportOutputHandler($line)
+{
+ global $time_start, $dump_buffer, $dump_buffer_len, $save_filename;
+
+ // Kanji encoding convert feature
+ if ($GLOBALS['output_kanji_conversion']) {
+ $line = PMA_kanji_str_conv($line, $GLOBALS['knjenc'], isset($GLOBALS['xkana']) ? $GLOBALS['xkana'] : '');
+ }
+ // If we have to buffer data, we will perform everything at once at the end
+ if ($GLOBALS['buffer_needed']) {
+
+ $dump_buffer .= $line;
+ if ($GLOBALS['onfly_compression']) {
+
+ $dump_buffer_len += strlen($line);
+
+ if ($dump_buffer_len > $GLOBALS['memory_limit']) {
+ if ($GLOBALS['output_charset_conversion']) {
+ $dump_buffer = PMA_convert_string($GLOBALS['charset'], $GLOBALS['charset_of_file'], $dump_buffer);
+ }
+ // as bzipped
+ if ($GLOBALS['compression'] == 'bzip' && @function_exists('bzcompress')) {
+ $dump_buffer = bzcompress($dump_buffer);
+ }
+ // as a gzipped file
+ elseif ($GLOBALS['compression'] == 'gzip' && @function_exists('gzencode')) {
+ // without the optional parameter level because it bug
+ $dump_buffer = gzencode($dump_buffer);
+ }
+ if ($GLOBALS['save_on_server']) {
+ $write_result = @fwrite($GLOBALS['file_handle'], $dump_buffer);
+ if (!$write_result || ($write_result != strlen($dump_buffer))) {
+ $GLOBALS['message'] = PMA_Message::error('strNoSpace');
+ $GLOBALS['message']->addParam($save_filename);
+ return false;
+ }
+ } else {
+ echo $dump_buffer;
+ }
+ $dump_buffer = '';
+ $dump_buffer_len = 0;
+ }
+ } else {
+ $time_now = time();
+ if ($time_start >= $time_now + 30) {
+ $time_start = $time_now;
+ header('X-pmaPing: Pong');
+ } // end if
+ }
+ } else {
+ if ($GLOBALS['asfile']) {
+ if ($GLOBALS['output_charset_conversion']) {
+ $line = PMA_convert_string($GLOBALS['charset'], $GLOBALS['charset_of_file'], $line);
+ }
+ if ($GLOBALS['save_on_server'] && strlen($line) > 0) {
+ $write_result = @fwrite($GLOBALS['file_handle'], $line);
+ if (!$write_result || ($write_result != strlen($line))) {
+ $GLOBALS['message'] = PMA_Message::error('strNoSpace');
+ $GLOBALS['message']->addParam($save_filename);
+ return false;
+ }
+ $time_now = time();
+ if ($time_start >= $time_now + 30) {
+ $time_start = $time_now;
+ header('X-pmaPing: Pong');
+ } // end if
+ } else {
+ // We export as file - output normally
+ echo $line;
+ }
+ } else {
+ // We export as html - replace special chars
+ echo htmlspecialchars($line);
+ }
+ }
+ return true;
+} // end of the 'PMA_exportOutputHandler()' function
+
+// Defines the default <CR><LF> format. For SQL always use \n as MySQL wants this on all platforms.
+if ($what == 'sql') {
+ $crlf = "\n";
+} else {
+ $crlf = PMA_whichCrlf();
+}
+
+$output_kanji_conversion = function_exists('PMA_kanji_str_conv') && $type != 'xls';
+
+// Do we need to convert charset?
+$output_charset_conversion = $asfile && $cfg['AllowAnywhereRecoding']
+ && isset($charset_of_file) && $charset_of_file != $charset
+ && $type != 'xls';
+
+// Use on the fly compression?
+$onfly_compression = $GLOBALS['cfg']['CompressOnFly'] && ($compression == 'gzip' || $compression == 'bzip');
+if ($onfly_compression) {
+ $memory_limit = trim(@ini_get('memory_limit'));
+ // 2 MB as default
+ if (empty($memory_limit)) {
+ $memory_limit = 2 * 1024 * 1024;
+ }
+
+ if (strtolower(substr($memory_limit, -1)) == 'm') {
+ $memory_limit = (int)substr($memory_limit, 0, -1) * 1024 * 1024;
+ } elseif (strtolower(substr($memory_limit, -1)) == 'k') {
+ $memory_limit = (int)substr($memory_limit, 0, -1) * 1024;
+ } elseif (strtolower(substr($memory_limit, -1)) == 'g') {
+ $memory_limit = (int)substr($memory_limit, 0, -1) * 1024 * 1024 * 1024;
+ } else {
+ $memory_limit = (int)$memory_limit;
+ }
+
+ // Some of memory is needed for other thins and as treshold.
+ // Nijel: During export I had allocated (see memory_get_usage function)
+ // approx 1.2MB so this comes from that.
+ if ($memory_limit > 1500000) {
+ $memory_limit -= 1500000;
+ }
+
+ // Some memory is needed for compression, assume 1/3
+ $memory_limit /= 8;
+}
+
+// Generate filename and mime type if needed
+if ($asfile) {
+ $pma_uri_parts = parse_url($cfg['PmaAbsoluteUri']);
+ if ($export_type == 'server') {
+ if (isset($remember_template)) {
+ PMA_setCookie('pma_server_filename_template', $filename_template);
+ }
+ $filename = str_replace('__SERVER__', $GLOBALS['cfg']['Server']['host'], strftime($filename_template));
+ } elseif ($export_type == 'database') {
+ if (isset($remember_template)) {
+ PMA_setCookie('pma_db_filename_template', $filename_template);
+ }
+ $filename = str_replace('__DB__', $db, str_replace('__SERVER__', $GLOBALS['cfg']['Server']['host'], strftime($filename_template)));
+ } else {
+ if (isset($remember_template)) {
+ PMA_setCookie('pma_table_filename_template', $filename_template);
+ }
+ $filename = str_replace('__TABLE__', $table, str_replace('__DB__', $db, str_replace('__SERVER__', $GLOBALS['cfg']['Server']['host'], strftime($filename_template))));
+ }
+
+ // convert filename to iso-8859-1, it is safer
+ if (!(isset($cfg['AllowAnywhereRecoding']) && $cfg['AllowAnywhereRecoding'] )) {
+ $filename = PMA_convert_string($charset, 'iso-8859-1', $filename);
+ } else {
+ $filename = PMA_convert_string($convcharset, 'iso-8859-1', $filename);
+ }
+
+ // Grab basic dump extension and mime type
+ $filename .= '.' . $export_list[$type]['extension'];
+ $mime_type = $export_list[$type]['mime_type'];
+
+ // If dump is going to be compressed, set correct encoding or mime_type and add
+ // compression to extension
+ $content_encoding = '';
+ if ($compression == 'bzip') {
+ $filename .= '.bz2';
+ // browsers don't like this:
+ //$content_encoding = 'x-bzip2';
+ $mime_type = 'application/x-bzip2';
+ } elseif ($compression == 'gzip') {
+ $filename .= '.gz';
+ // Needed to avoid recompression by server modules like mod_gzip.
+ // It seems necessary to check about zlib.output_compression
+ // to avoid compressing twice
+ if (!@ini_get('zlib.output_compression')) {
+ // On Firefox 3, sending this content encoding corrupts the .gz
+ // (as tested on Windows and Linux) but detect GECKO 1.9
+ if (! (PMA_USR_BROWSER_AGENT == 'GECKO' && PMA_USR_BROWSER_VER == '1.9')) {
+ $content_encoding = 'x-gzip';
+ }
+ $mime_type = 'application/x-gzip';
+ }
+ } elseif ($compression == 'zip') {
+ $filename .= '.zip';
+ $mime_type = 'application/zip';
+ }
+}
+
+// Open file on server if needed
+if ($save_on_server) {
+ $save_filename = PMA_userDir($cfg['SaveDir']) . preg_replace('@[/\\\\]@', '_', $filename);
+ unset($message);
+ if (file_exists($save_filename) && empty($onserverover)) {
+ $message = PMA_Message::error('strFileAlreadyExists');
+ $message->addParam($save_filename);
+ } else {
+ if (is_file($save_filename) && !is_writable($save_filename)) {
+ $message = PMA_Message::error('strNoPermission');
+ $message->addParam($save_filename);
+ } else {
+ if (!$file_handle = @fopen($save_filename, 'w')) {
+ $message = PMA_Message::error('strNoPermission');
+ $message->addParam($save_filename);
+ }
+ }
+ }
+ if (isset($message)) {
+ $GLOBALS['js_include'][] = 'functions.js';
+ require_once './libraries/header.inc.php';
+ if ($export_type == 'server') {
+ $active_page = 'server_export.php';
+ require './server_export.php';
+ } elseif ($export_type == 'database') {
+ $active_page = 'db_export.php';
+ require './db_export.php';
+ } else {
+ $active_page = 'tbl_export.php';
+ require './tbl_export.php';
+ }
+ exit();
+ }
+}
+
+/**
+ * Send headers depending on whether the user chose to download a dump file
+ * or not
+ */
+if (!$save_on_server) {
+ if ($asfile) {
+ // Download
+ // (avoid rewriting data containing HTML with anchors and forms;
+ // this was reported to happen under Plesk)
+ @ini_set('url_rewriter.tags','');
+
+ if (!empty($content_encoding)) {
+ header('Content-Encoding: ' . $content_encoding);
+ }
+ header('Content-Type: ' . $mime_type);
+ header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
+ // lem9: Tested behavior of
+ // IE 5.50.4807.2300
+ // IE 6.0.2800.1106 (small glitch, asks twice when I click Open)
+ // IE 6.0.2900.2180
+ // Firefox 1.0.6
+ // in http and https
+ header('Content-Disposition: attachment; filename="' . $filename . '"');
+ if (PMA_USR_BROWSER_AGENT == 'IE') {
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+ header('Pragma: public');
+ } else {
+ header('Pragma: no-cache');
+ // test case: exporting a database into a .gz file with Safari
+ // would produce files not having the current time
+ // (added this header for Safari but should not harm other browsers)
+ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
+ }
+ } else {
+ // HTML
+ if ($export_type == 'database') {
+ $num_tables = count($tables);
+ if ($num_tables == 0) {
+ $message = PMA_Message::error('strNoTablesFound');
+ $GLOBALS['js_include'][] = 'functions.js';
+ require_once './libraries/header.inc.php';
+ $active_page = 'db_export.php';
+ require './db_export.php';
+ exit();
+ }
+ }
+ $backup_cfgServer = $cfg['Server'];
+ require_once './libraries/header.inc.php';
+ $cfg['Server'] = $backup_cfgServer;
+ unset($backup_cfgServer);
+ echo "\n" . '<div align="' . $cell_align_left . '">' . "\n";
+ //echo ' <pre>' . "\n";
+ echo ' <form name="nofunction">' . "\n"
+ // remove auto-select for now: there is no way to select
+ // only a part of the text; anyway, it should obey
+ // $cfg['TextareaAutoSelect']
+ //. ' <textarea name="sqldump" cols="50" rows="30" onclick="this.select();" id="textSQLDUMP" wrap="OFF">' . "\n";
+ . ' <textarea name="sqldump" cols="50" rows="30" id="textSQLDUMP" wrap="OFF">' . "\n";
+ } // end download
+}
+
+// Fake loop just to allow skip of remain of this code by break, I'd really
+// need exceptions here :-)
+do {
+
+// Add possibly some comments to export
+if (!PMA_exportHeader()) {
+ break;
+}
+
+// Will we need relation & co. setup?
+$do_relation = isset($GLOBALS[$what . '_relation']);
+$do_comments = isset($GLOBALS[$what . '_comments']);
+$do_mime = isset($GLOBALS[$what . '_mime']);
+if ($do_relation || $do_comments || $do_mime) {
+ require_once './libraries/relation.lib.php';
+ $cfgRelation = PMA_getRelationsParam();
+}
+if ($do_mime) {
+ require_once './libraries/transformations.lib.php';
+}
+
+// Include dates in export?
+$do_dates = isset($GLOBALS[$what . '_dates']);
+
+/**
+ * Builds the dump
+ */
+// Gets the number of tables if a dump of a database has been required
+if ($export_type == 'server') {
+ if (isset($db_select)) {
+ $tmp_select = implode($db_select, '|');
+ $tmp_select = '|' . $tmp_select . '|';
+ }
+ // Walk over databases
+ foreach ($GLOBALS['pma']->databases as $current_db) {
+ if ((isset($tmp_select) && strpos(' ' . $tmp_select, '|' . $current_db . '|'))
+ || !isset($tmp_select)) {
+ if (!PMA_exportDBHeader($current_db)) {
+ break 2;
+ }
+ if (!PMA_exportDBCreate($current_db)) {
+ break 2;
+ }
+ $tables = PMA_DBI_get_tables($current_db);
+ $views = array();
+ foreach ($tables as $table) {
+ // if this is a view, collect it for later; views must be exported
+ // after the tables
+ $is_view = PMA_Table::isView($current_db, $table);
+ if ($is_view) {
+ $views[] = $table;
+ }
+ if (isset($GLOBALS[$what . '_structure'])) {
+ // for a view, export a stand-in definition of the table
+ // to resolve view dependencies
+ if (!PMA_exportStructure($current_db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, $is_view ? 'stand_in' : 'create_table', $export_type)) {
+ break 3;
+ }
+ }
+ if (isset($GLOBALS[$what . '_data']) && ! $is_view) {
+ $local_query = 'SELECT * FROM ' . PMA_backquote($current_db) . '.' . PMA_backquote($table);
+ if (!PMA_exportData($current_db, $table, $crlf, $err_url, $local_query)) {
+ break 3;
+ }
+ }
+ }
+ foreach($views as $view) {
+ // no data export for a view
+ if (isset($GLOBALS[$what . '_structure'])) {
+ if (!PMA_exportStructure($current_db, $view, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'create_view', $export_type)) {
+ break 3;
+ }
+ }
+ }
+ if (!PMA_exportDBFooter($current_db)) {
+ break 2;
+ }
+ }
+ }
+} elseif ($export_type == 'database') {
+ if (!PMA_exportDBHeader($db)) {
+ break;
+ }
+ $i = 0;
+ $views = array();
+ // $tables contains the choices from the user (via $table_select)
+ foreach ($tables as $table) {
+ // if this is a view, collect it for later; views must be exported after
+ // the tables
+ $is_view = PMA_Table::isView($db, $table);
+ if ($is_view) {
+ $views[] = $table;
+ }
+ if (isset($GLOBALS[$what . '_structure'])) {
+ // for a view, export a stand-in definition of the table
+ // to resolve view dependencies
+ if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, $is_view ? 'stand_in' : 'create_table', $export_type)) {
+ break 2;
+ }
+ }
+ if (isset($GLOBALS[$what . '_data']) && ! $is_view) {
+ $local_query = 'SELECT * FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+ if (!PMA_exportData($db, $table, $crlf, $err_url, $local_query)) {
+ break 2;
+ }
+ }
+ }
+ foreach ($views as $view) {
+ // no data export for a view
+ if (isset($GLOBALS[$what . '_structure'])) {
+ if (!PMA_exportStructure($db, $view, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'create_view', $export_type)) {
+ break 2;
+ }
+ }
+ }
+
+ if (!PMA_exportDBFooter($db)) {
+ break;
+ }
+} else {
+ if (!PMA_exportDBHeader($db)) {
+ break;
+ }
+ // We export just one table
+
+ if ($limit_to > 0 && $limit_from >= 0) {
+ $add_query = ' LIMIT '
+ . (($limit_from > 0) ? $limit_from . ', ' : '')
+ . $limit_to;
+ } else {
+ $add_query = '';
+ }
+
+ $is_view = PMA_Table::isView($db, $table);
+ if (isset($GLOBALS[$what . '_structure'])) {
+ if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, $is_view ? 'create_view' : 'create_table', $export_type)) {
+ break;
+ }
+ }
+ // If this is an export of a single view, we have to export data;
+ // for example, a PDF report
+ if (isset($GLOBALS[$what . '_data'])) {
+ if (!empty($sql_query)) {
+ // only preg_replace if needed
+ if (!empty($add_query)) {
+ // remove trailing semicolon before adding a LIMIT
+ $sql_query = preg_replace('%;\s*$%', '', $sql_query);
+ }
+ $local_query = $sql_query . $add_query;
+ PMA_DBI_select_db($db);
+ } else {
+ $local_query = 'SELECT * FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table) . $add_query;
+ }
+ if (!PMA_exportData($db, $table, $crlf, $err_url, $local_query)) {
+ break;
+ }
+ }
+ if (!PMA_exportDBFooter($db)) {
+ break;
+ }
+}
+if (!PMA_exportFooter()) {
+ break;
+}
+
+} while (false);
+// End of fake loop
+
+if ($save_on_server && isset($message)) {
+ $GLOBALS['js_include'][] = 'functions.js';
+ require_once './libraries/header.inc.php';
+ if ($export_type == 'server') {
+ $active_page = 'server_export.php';
+ require './server_export.php';
+ } elseif ($export_type == 'database') {
+ $active_page = 'db_export.php';
+ require './db_export.php';
+ } else {
+ $active_page = 'tbl_export.php';
+ require './tbl_export.php';
+ }
+ exit();
+}
+
+/**
+ * Send the dump as a file...
+ */
+if (!empty($asfile)) {
+ // Convert the charset if required.
+ if ($output_charset_conversion) {
+ $dump_buffer = PMA_convert_string($GLOBALS['charset'], $GLOBALS['charset_of_file'], $dump_buffer);
+ }
+
+ // Do the compression
+ // 1. as a zipped file
+ if ($compression == 'zip') {
+ if (@function_exists('gzcompress')) {
+ $zipfile = new zipfile();
+ $zipfile -> addFile($dump_buffer, substr($filename, 0, -4));
+ $dump_buffer = $zipfile -> file();
+ }
+ }
+ // 2. as a bzipped file
+ elseif ($compression == 'bzip') {
+ if (@function_exists('bzcompress')) {
+ $dump_buffer = bzcompress($dump_buffer);
+ }
+ }
+ // 3. as a gzipped file
+ elseif ($compression == 'gzip') {
+ if (@function_exists('gzencode')) {
+ // without the optional parameter level because it bug
+ $dump_buffer = gzencode($dump_buffer);
+ }
+ }
+
+ /* If ve saved on server, we have to close file now */
+ if ($save_on_server) {
+ $write_result = @fwrite($file_handle, $dump_buffer);
+ fclose($file_handle);
+ if (strlen($dump_buffer) !=0 && (!$write_result || ($write_result != strlen($dump_buffer)))) {
+ $message = new PMA_Message('strNoSpace', PMA_Message::ERROR, $save_filename);
+ } else {
+ $message = new PMA_Message('strDumpSaved', PMA_Message::SUCCESS, $save_filename);
+ }
+
+ $GLOBALS['js_include'][] = 'functions.js';
+ require_once './libraries/header.inc.php';
+ if ($export_type == 'server') {
+ $active_page = 'server_export.php';
+ require_once './server_export.php';
+ } elseif ($export_type == 'database') {
+ $active_page = 'db_export.php';
+ require_once './db_export.php';
+ } else {
+ $active_page = 'tbl_export.php';
+ require_once './tbl_export.php';
+ }
+ exit();
+ } else {
+ echo $dump_buffer;
+ }
+}
+/**
+ * Displays the dump...
+ */
+else {
+ /**
+ * Close the html tags and add the footers in dump is displayed on screen
+ */
+ //echo ' </pre>' . "\n";
+ echo '</textarea>' . "\n"
+ . ' </form>' . "\n";
+ echo '</div>' . "\n";
+ echo "\n";
+?>
+<script type="text/javascript">
+//<![CDATA[
+ var bodyWidth=null; var bodyHeight=null;
+ if (document.getElementById('textSQLDUMP')) {
+ bodyWidth = self.innerWidth;
+ bodyHeight = self.innerHeight;
+ if (!bodyWidth && !bodyHeight) {
+ if (document.compatMode && document.compatMode == "BackCompat") {
+ bodyWidth = document.body.clientWidth;
+ bodyHeight = document.body.clientHeight;
+ } else if (document.compatMode && document.compatMode == "CSS1Compat") {
+ bodyWidth = document.documentElement.clientWidth;
+ bodyHeight = document.documentElement.clientHeight;
+ }
+ }
+ document.getElementById('textSQLDUMP').style.width=(bodyWidth-50) + 'px';
+ document.getElementById('textSQLDUMP').style.height=(bodyHeight-100) + 'px';
+ }
+//]]>
+</script>
+<?php
+ require_once './libraries/footer.inc.php';
+} // end if
+?>
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000000..2352b5fa4e
--- /dev/null
+++ b/favicon.ico
Binary files differ
diff --git a/import.php b/import.php
new file mode 100644
index 0000000000..6dc0c222f2
--- /dev/null
+++ b/import.php
@@ -0,0 +1,412 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Core script for import, this is just the glue around all other stuff
+ *
+ * @uses PMA_Bookmark_getList()
+ * @version $Id$
+ */
+
+/**
+ * Get the variables sent or posted to this script and a core script
+ */
+require_once './libraries/common.inc.php';
+$GLOBALS['js_include'][] = 'functions.js';
+
+// default values
+$GLOBALS['reload'] = false;
+
+// Are we just executing plain query or sql file? (eg. non import, but query box/window run)
+if (!empty($sql_query)) {
+ // run SQL query
+ $import_text = $sql_query;
+ $import_type = 'query';
+ $format = 'sql';
+
+ // refresh left frame on changes in table or db structure
+ if (preg_match('/^(CREATE|ALTER|DROP)\s+(VIEW|TABLE|DATABASE|SCHEMA)\s+/i', $sql_query)) {
+ $GLOBALS['reload'] = true;
+ }
+
+ $sql_query = '';
+} elseif (!empty($sql_localfile)) {
+ // run SQL file on server
+ $local_import_file = $sql_localfile;
+ $import_type = 'queryfile';
+ $format = 'sql';
+ unset($sql_localfile);
+} elseif (!empty($sql_file)) {
+ // run uploaded SQL file
+ $import_file = $sql_file;
+ $import_type = 'queryfile';
+ $format = 'sql';
+ unset($sql_file);
+} elseif (!empty($id_bookmark)) {
+ // run bookmark
+ $import_type = 'query';
+ $format = 'sql';
+}
+
+// If we didn't get any parameters, either user called this directly, or
+// upload limit has been reached, let's assume the second possibility.
+if ($_POST == array() && $_GET == array()) {
+ require_once './libraries/header.inc.php';
+ $message = PMA_Message::error('strUploadLimit');
+ $message->addParam('[a@./Documentation.html#faq1_16@_blank]');
+ $message->addParam('[/a]');
+ $message->display();
+ require './libraries/footer.inc.php';
+}
+
+// Check needed parameters
+PMA_checkParameters(array('import_type', 'format'));
+
+// We don't want anything special in format
+$format = PMA_securePath($format);
+
+// Import functions
+require_once './libraries/import.lib.php';
+
+// Create error and goto url
+if ($import_type == 'table') {
+ $err_url = 'tbl_import.php?' . PMA_generate_common_url($db, $table);
+ $goto = 'tbl_import.php';
+} elseif ($import_type == 'database') {
+ $err_url = 'db_import.php?' . PMA_generate_common_url($db);
+ $goto = 'db_import.php';
+} elseif ($import_type == 'server') {
+ $err_url = 'server_import.php?' . PMA_generate_common_url();
+ $goto = 'server_import.php';
+} else {
+ if (empty($goto) || !preg_match('@^(server|db|tbl)(_[a-z]*)*\.php$@i', $goto)) {
+ if (strlen($table) && strlen($db)) {
+ $goto = 'tbl_structure.php';
+ } elseif (strlen($db)) {
+ $goto = 'db_structure.php';
+ } else {
+ $goto = 'server_sql.php';
+ }
+ }
+ if (strlen($table) && strlen($db)) {
+ $common = PMA_generate_common_url($db, $table);
+ } elseif (strlen($db)) {
+ $common = PMA_generate_common_url($db);
+ } else {
+ $common = PMA_generate_common_url();
+ }
+ $err_url = $goto
+ . '?' . $common
+ . (preg_match('@^tbl_[a-z]*\.php$@', $goto) ? '&amp;table=' . urlencode($table) : '');
+}
+
+
+if (strlen($db)) {
+ PMA_DBI_select_db($db);
+}
+
+@set_time_limit($cfg['ExecTimeLimit']);
+if (!empty($cfg['MemoryLimit'])) {
+ @ini_set('memory_limit', $cfg['MemoryLimit']);
+}
+
+$timestamp = time();
+if (isset($allow_interrupt)) {
+ $maximum_time = ini_get('max_execution_time');
+} else {
+ $maximum_time = 0;
+}
+
+// set default values
+$timeout_passed = FALSE;
+$error = FALSE;
+$read_multiply = 1;
+$finished = FALSE;
+$offset = 0;
+$max_sql_len = 0;
+$file_to_unlink = '';
+$sql_query = '';
+$sql_query_disabled = FALSE;
+$go_sql = FALSE;
+$executed_queries = 0;
+$run_query = TRUE;
+$charset_conversion = FALSE;
+$reset_charset = FALSE;
+$bookmark_created = FALSE;
+
+// Bookmark Support: get a query back from bookmark if required
+if (!empty($id_bookmark)) {
+ require_once './libraries/bookmark.lib.php';
+ switch ($action_bookmark) {
+ case 0: // bookmarked query that have to be run
+ $import_text = PMA_Bookmark_get($db, $id_bookmark, 'id', isset($action_bookmark_all));
+ if (isset($bookmark_variable) && !empty($bookmark_variable)) {
+ $import_text = preg_replace('|/\*(.*)\[VARIABLE\](.*)\*/|imsU', '${1}' . PMA_sqlAddslashes($bookmark_variable) . '${2}', $import_text);
+ }
+
+ // refresh left frame on changes in table or db structure
+ if (preg_match('/^(CREATE|ALTER|DROP)\s+(VIEW|TABLE|DATABASE|SCHEMA)\s+/i', $import_text)) {
+ $GLOBALS['reload'] = true;
+ }
+
+ break;
+ case 1: // bookmarked query that have to be displayed
+ $import_text = PMA_Bookmark_get($db, $id_bookmark);
+ $run_query = FALSE;
+ break;
+ case 2: // bookmarked query that have to be deleted
+ $import_text = PMA_Bookmark_get($db, $id_bookmark);
+ PMA_Bookmark_delete($db, $id_bookmark);
+ $run_query = FALSE;
+ $error = TRUE; // this is kind of hack to skip processing the query
+ break;
+ }
+} // end bookmarks reading
+
+// Do no run query if we show PHP code
+if (isset($GLOBALS['show_as_php'])) {
+ $run_query = FALSE;
+ $go_sql = TRUE;
+}
+
+// Store the query as a bookmark before executing it if bookmarklabel was given
+if (!empty($bkm_label) && !empty($import_text)) {
+ require_once './libraries/bookmark.lib.php';
+ $bfields = array(
+ 'dbase' => $db,
+ 'user' => $cfg['Bookmark']['user'],
+ 'query' => urlencode($import_text),
+ 'label' => $bkm_label
+ );
+
+ // Should we replace bookmark?
+ if (isset($bkm_replace)) {
+ $bookmarks = PMA_Bookmark_getList($db);
+ foreach ($bookmarks as $key => $val) {
+ if ($val == $bkm_label) {
+ PMA_Bookmark_delete($db, $key);
+ }
+ }
+ }
+
+ PMA_Bookmark_save($bfields, isset($bkm_all_users));
+
+ $bookmark_created = TRUE;
+} // end store bookmarks
+
+// We can not read all at once, otherwise we can run out of memory
+$memory_limit = trim(@ini_get('memory_limit'));
+// 2 MB as default
+if (empty($memory_limit)) {
+ $memory_limit = 2 * 1024 * 1024;
+}
+// In case no memory limit we work on 10MB chunks
+if ($memory_limit == -1) {
+ $memory_limit = 10 * 1024 * 1024;
+}
+
+// Calculate value of the limit
+if (strtolower(substr($memory_limit, -1)) == 'm') {
+ $memory_limit = (int)substr($memory_limit, 0, -1) * 1024 * 1024;
+} elseif (strtolower(substr($memory_limit, -1)) == 'k') {
+ $memory_limit = (int)substr($memory_limit, 0, -1) * 1024;
+} elseif (strtolower(substr($memory_limit, -1)) == 'g') {
+ $memory_limit = (int)substr($memory_limit, 0, -1) * 1024 * 1024 * 1024;
+} else {
+ $memory_limit = (int)$memory_limit;
+}
+
+$read_limit = $memory_limit / 8; // Just to be sure, there might be lot of memory needed for uncompression
+
+// handle filenames
+if (!empty($local_import_file) && !empty($cfg['UploadDir'])) {
+
+ // sanitize $local_import_file as it comes from a POST
+ $local_import_file = PMA_securePath($local_import_file);
+
+ $import_file = PMA_userDir($cfg['UploadDir']) . $local_import_file;
+} elseif (empty($import_file) || !is_uploaded_file($import_file)) {
+ $import_file = 'none';
+}
+
+// Do we have file to import?
+if ($import_file != 'none' && !$error) {
+ // work around open_basedir and other limitations
+ $open_basedir = @ini_get('open_basedir');
+
+ // If we are on a server with open_basedir, we must move the file
+ // before opening it. The doc explains how to create the "./tmp"
+ // directory
+
+ if (!empty($open_basedir)) {
+
+ $tmp_subdir = (PMA_IS_WINDOWS ? '.\\tmp\\' : './tmp/');
+
+ if (is_writable($tmp_subdir)) {
+ $import_file_new = $tmp_subdir . basename($import_file);
+ if (move_uploaded_file($import_file, $import_file_new)) {
+ $import_file = $import_file_new;
+ $file_to_unlink = $import_file_new;
+ }
+ }
+ }
+
+ /**
+ * Handle file compression
+ * @todo duplicate code exists in File.class.php
+ */
+ $compression = PMA_detectCompression($import_file);
+ if ($compression === FALSE) {
+ $message = PMA_Message::error('strFileCouldNotBeRead');
+ $error = TRUE;
+ } else {
+ switch ($compression) {
+ case 'application/bzip2':
+ if ($cfg['BZipDump'] && @function_exists('bzopen')) {
+ $import_handle = @bzopen($import_file, 'r');
+ } else {
+ $message = PMA_Message::error('strUnsupportedCompressionDetected');
+ $message->addParam($compression);
+ $error = TRUE;
+ }
+ break;
+ case 'application/gzip':
+ if ($cfg['GZipDump'] && @function_exists('gzopen')) {
+ $import_handle = @gzopen($import_file, 'r');
+ } else {
+ $message = PMA_Message::error('strUnsupportedCompressionDetected');
+ $message->addParam($compression);
+ $error = TRUE;
+ }
+ break;
+ case 'application/zip':
+ if ($cfg['ZipDump'] && @function_exists('zip_open')) {
+ include_once './libraries/zip_extension.lib.php';
+ $result = PMA_getZipContents($import_file);
+ if (! empty($result['error'])) {
+ $message = PMA_Message::rawError($result['error']);
+ $error = TRUE;
+ } else {
+ $import_text = $result['data'];
+ }
+ } else {
+ $message = PMA_Message::error('strUnsupportedCompressionDetected');
+ $message->addParam($compression);
+ $error = TRUE;
+ }
+ break;
+ case 'none':
+ $import_handle = @fopen($import_file, 'r');
+ break;
+ default:
+ $message = PMA_Message::error('strUnsupportedCompressionDetected');
+ $message->addParam($compression);
+ $error = TRUE;
+ break;
+ }
+ }
+ if (!$error && $import_handle === FALSE) {
+ $message = PMA_Message::error('strFileCouldNotBeRead');
+ $error = TRUE;
+ }
+} elseif (!$error) {
+ if (!isset($import_text) || empty($import_text)) {
+ $message = PMA_Message::error('strNoDataReceived');
+ $error = TRUE;
+ }
+}
+
+// Convert the file's charset if necessary
+if ($cfg['AllowAnywhereRecoding'] && isset($charset_of_file)) {
+ if ($charset_of_file != $charset) {
+ $charset_conversion = TRUE;
+ }
+} elseif (isset($charset_of_file) && $charset_of_file != 'utf8') {
+ PMA_DBI_query('SET NAMES \'' . $charset_of_file . '\'');
+ // We can not show query in this case, it is in different charset
+ $sql_query_disabled = TRUE;
+ $reset_charset = TRUE;
+}
+
+// Something to skip?
+if (!$error && isset($skip)) {
+ $original_skip = $skip;
+ while ($skip > 0) {
+ PMA_importGetNextChunk($skip < $read_limit ? $skip : $read_limit);
+ $read_multiply = 1; // Disable read progresivity, otherwise we eat all memory!
+ $skip -= $read_limit;
+ }
+ unset($skip);
+}
+
+if (!$error) {
+ // Check for file existance
+ if (!file_exists('./libraries/import/' . $format . '.php')) {
+ $error = TRUE;
+ $message = PMA_Message::error('strCanNotLoadImportPlugins');
+ } else {
+ // Do the real import
+ $plugin_param = $import_type;
+ require './libraries/import/' . $format . '.php';
+ }
+}
+
+if (! $error && $import_handle !== FALSE) {
+ fclose($import_handle);
+}
+
+// Cleanup temporary file
+if ($file_to_unlink != '') {
+ unlink($file_to_unlink);
+}
+
+// Reset charset back, if we did some changes
+if ($reset_charset) {
+ PMA_DBI_query('SET CHARACTER SET utf8');
+ PMA_DBI_query('SET SESSION collation_connection =\'' . $collation_connection . '\'');
+}
+
+// Show correct message
+if (!empty($id_bookmark) && $action_bookmark == 2) {
+ $message = PMA_Message::success('strBookmarkDeleted');
+ $display_query = $import_text;
+ $error = FALSE; // unset error marker, it was used just to skip processing
+} elseif (!empty($id_bookmark) && $action_bookmark == 1) {
+ $message = PMA_Message::notice('strShowingBookmark');
+} elseif ($bookmark_created) {
+ $special_message = '[br]' . sprintf($strBookmarkCreated, htmlspecialchars($bkm_label));
+} elseif ($finished && !$error) {
+ if ($import_type == 'query') {
+ $message = PMA_Message::success();
+ } else {
+ $message = PMA_Message::success('strImportSuccessfullyFinished');
+ $message->addParam($executed_queries);
+ }
+}
+
+// Did we hit timeout? Tell it user.
+if ($timeout_passed) {
+ $message = PMA_Message::error('strTimeoutPassed');
+ if ($offset == 0 || (isset($original_skip) && $original_skip == $offset)) {
+ $message->addString('strTimeoutNothingParsed');
+ }
+}
+
+// Parse and analyze the query, for correct db and table name
+// in case of a query typed in the query window
+require_once './libraries/parse_analyze.lib.php';
+
+// There was an error?
+if (isset($my_die)) {
+ foreach ($my_die AS $key => $die) {
+ PMA_mysqlDie($die['error'], $die['sql'], '', $err_url, $error);
+ }
+}
+
+if ($go_sql) {
+ require './sql.php';
+} else {
+ $active_page = $goto;
+ require './' . $goto;
+}
+exit();
+?>
diff --git a/index.php b/index.php
new file mode 100644
index 0000000000..4ea0a4f368
--- /dev/null
+++ b/index.php
@@ -0,0 +1,189 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * forms frameset
+ *
+ * @version $Id$
+ * @uses $GLOBALS['strNoFrames']
+ * @uses $GLOBALS['cfg']['QueryHistoryDB']
+ * @uses $GLOBALS['cfg']['Server']['user']
+ * @uses $GLOBALS['cfg']['DefaultTabServer'] as src for the mainframe
+ * @uses $GLOBALS['cfg']['DefaultTabDatabase'] as src for the mainframe
+ * @uses $GLOBALS['cfg']['NaviWidth'] for navi frame width
+ * @uses $GLOBALS['collation_connection'] from $_REQUEST (grab_globals.lib.php)
+ * or common.inc.php
+ * @uses $GLOBALS['available_languages'] from common.inc.php (select_lang.lib.php)
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['charset']
+ * @uses $GLOBALS['lang']
+ * @uses $GLOBALS['text_dir']
+ * @uses $_ENV['HTTP_HOST']
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_purgeHistory()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_VERSION
+ * @uses session_write_close()
+ * @uses time()
+ * @uses PMA_getenv()
+ * @uses header() to send charset
+ */
+
+/**
+ * Gets core libraries and defines some variables
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Includes the ThemeManager if it hasn't been included yet
+ */
+require_once './libraries/relation.lib.php';
+
+// free the session file, for the other frames to be loaded
+session_write_close();
+
+// Gets the host name
+if (empty($HTTP_HOST)) {
+ if (PMA_getenv('HTTP_HOST')) {
+ $HTTP_HOST = PMA_getenv('HTTP_HOST');
+ } else {
+ $HTTP_HOST = '';
+ }
+}
+
+
+// purge querywindow history
+$cfgRelation = PMA_getRelationsParam();
+if ($GLOBALS['cfg']['QueryHistoryDB'] && $cfgRelation['historywork']) {
+ PMA_purgeHistory($GLOBALS['cfg']['Server']['user']);
+}
+unset($cfgRelation);
+
+
+/**
+ * pass variables to child pages
+ */
+$drops = array('lang', 'server', 'convcharset', 'collation_connection',
+ 'db', 'table');
+
+foreach ($drops as $each_drop) {
+ if (! array_key_exists($each_drop, $_GET)) {
+ unset($_GET[$each_drop]);
+ }
+}
+unset($drops, $each_drop);
+
+if (! strlen($GLOBALS['db'])) {
+ $main_target = $GLOBALS['cfg']['DefaultTabServer'];
+} elseif (! strlen($GLOBALS['table'])) {
+ $_GET['db'] = $GLOBALS['db'];
+ $main_target = $GLOBALS['cfg']['DefaultTabDatabase'];
+} else {
+ $_GET['db'] = $GLOBALS['db'];
+ $_GET['table'] = $GLOBALS['table'];
+ $main_target = $GLOBALS['cfg']['DefaultTabTable'];
+}
+
+$url_query = PMA_generate_common_url($_GET);
+
+if (isset($GLOBALS['target']) && is_string($GLOBALS['target']) && !empty($GLOBALS['target']) && in_array($GLOBALS['target'], $goto_whitelist)) {
+ $main_target = $GLOBALS['target'];
+}
+
+$main_target .= $url_query;
+
+$lang_iso_code = $GLOBALS['available_languages'][$GLOBALS['lang']][2];
+
+
+// start output
+header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="<?php echo $lang_iso_code; ?>"
+ lang="<?php echo $lang_iso_code; ?>"
+ dir="<?php echo $GLOBALS['text_dir']; ?>">
+<head>
+<link rel="icon" href="./favicon.ico" type="image/x-icon" />
+<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+<title>phpMyAdmin <?php echo PMA_VERSION; ?> -
+ <?php echo htmlspecialchars($HTTP_HOST); ?></title>
+<meta http-equiv="Content-Type"
+ content="text/html; charset=<?php echo $GLOBALS['charset']; ?>" />
+<meta name="robots" content="noindex,nofollow" />
+<script type="text/javascript">
+// <![CDATA[
+ // definitions used in common.js
+ var common_query = '<?php echo PMA_escapeJsString(PMA_generate_common_url('', '', '&'));?>';
+ var opendb_url = '<?php echo PMA_escapeJsString($GLOBALS['cfg']['DefaultTabDatabase']); ?>';
+ var safari_browser = <?php echo PMA_USR_BROWSER_AGENT == 'SAFARI' ? 'true' : 'false' ?>;
+ var querywindow_height = <?php echo PMA_escapeJsString($GLOBALS['cfg']['QueryWindowHeight']); ?>;
+ var querywindow_width = <?php echo PMA_escapeJsString($GLOBALS['cfg']['QueryWindowWidth']); ?>;
+ var collation_connection = '<?php echo PMA_escapeJsString($GLOBALS['collation_connection']); ?>';
+ var lang = '<?php echo PMA_escapeJsString($GLOBALS['lang']); ?>';
+ var server = '<?php echo PMA_escapeJsString($GLOBALS['server']); ?>';
+ var table = '<?php echo PMA_escapeJsString($GLOBALS['table']); ?>';
+ var db = '<?php echo PMA_escapeJsString($GLOBALS['db']); ?>';
+ var token = '<?php echo PMA_escapeJsString($_SESSION[' PMA_token ']); ?>';
+ var text_dir = '<?php echo PMA_escapeJsString($GLOBALS['text_dir']); ?>';
+ var pma_absolute_uri = '<?php echo PMA_escapeJsString($GLOBALS['cfg']['PmaAbsoluteUri']); ?>';
+
+ // for content and navigation frames
+
+ var frame_content = 0;
+ var frame_navigation = 0;
+ function getFrames() {
+<?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
+ frame_content = window.frames[1];
+ frame_navigation = window.frames[0];
+<?php } else { ?>
+ frame_content = window.frames[0];
+ frame_navigation = window.frames[1];
+<?php } ?>
+ }
+ var onloadCnt = 0;
+ var onLoadHandler = window.onload;
+ window.onload = function() {
+ if (onloadCnt == 0) {
+ if (typeof(onLoadHandler) == "function") {
+ onLoadHandler();
+ }
+ if (typeof(getFrames) != 'undefined' && typeof(getFrames) == 'function') {
+ getFrames();
+ }
+ onloadCnt++;
+ }
+ };
+// ]]>
+</script>
+<script src="./js/common.js" type="text/javascript"></script>
+</head>
+<frameset cols="<?php
+if ($GLOBALS['text_dir'] === 'rtl') {
+ echo '*,';
+}
+echo $GLOBALS['cfg']['NaviWidth'];
+if ($GLOBALS['text_dir'] === 'ltr') {
+ echo ',*';
+}
+?>" rows="*" id="mainFrameset">
+ <?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
+ <frame frameborder="0" id="frame_navigation"
+ src="navigation.php<?php echo $url_query; ?>"
+ name="frame_navigation" />
+ <?php } ?>
+ <frame frameborder="0" id="frame_content"
+ src="<?php echo $main_target; ?>"
+ name="frame_content" />
+ <?php if ($GLOBALS['text_dir'] === 'rtl') { ?>
+ <frame frameborder="0" id="frame_navigation"
+ src="navigation.php<?php echo $url_query; ?>"
+ name="frame_navigation" />
+ <?php } ?>
+ <noframes>
+ <body>
+ <p><?php echo $GLOBALS['strNoFrames']; ?></p>
+ </body>
+ </noframes>
+</frameset>
+</html>
diff --git a/js/common.js b/js/common.js
new file mode 100644
index 0000000000..770050a129
--- /dev/null
+++ b/js/common.js
@@ -0,0 +1,449 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * common functions used for communicating between main, navigation and querywindow
+ *
+ * @version $Id$
+ */
+
+/**
+ * holds the browser query window
+ */
+var querywindow = '';
+
+/**
+ * holds the query to be load from a new query window
+ */
+var query_to_load = '';
+
+/**
+ * attach a function to object event
+ *
+ * <code>
+ * addEvent(window, 'load', PMA_initPage);
+ * </code>
+ * @param object or id
+ * @param string event type (load, mouseover, focus, ...)
+ * @param function to be attached
+ */
+function addEvent(obj, type, fn)
+{
+ if (obj.attachEvent) {
+ obj['e' + type + fn] = fn;
+ obj[type + fn] = function() {obj['e' + type + fn](window.event);}
+ obj.attachEvent('on' + type, obj[type + fn]);
+ } else {
+ obj.addEventListener(type, fn, false);
+ }
+}
+
+/**
+ * detach/remove a function from an object event
+ *
+ * @param object or id
+ * @param event type (load, mouseover, focus, ...)
+ * @param function naem of function to be attached
+ */
+function removeEvent(obj, type, fn)
+{
+ if (obj.detachEvent) {
+ obj.detachEvent('on' + type, obj[type + fn]);
+ obj[type + fn] = null;
+ } else {
+ obj.removeEventListener(type, fn, false);
+ }
+}
+
+/**
+ * get DOM elements by html class
+ *
+ * @param string class_name - name of class
+ * @param node node - search only sub nodes of this node (optional)
+ * @param string tag - search only these tags (optional)
+ */
+function getElementsByClassName(class_name, node, tag)
+{
+ var classElements = new Array();
+
+ if (node == null) {
+ node = document;
+ }
+ if (tag == null) {
+ tag = '*';
+ }
+
+ var j = 0, teststr;
+ var els = node.getElementsByTagName(tag);
+ var elsLen = els.length;
+
+ for (i = 0; i < elsLen; i++) {
+ if (els[i].className.indexOf(class_name) != -1) {
+ teststr = "," + els[i].className.split(" ").join(",") + ",";
+ if (teststr.indexOf("," + class_name + ",") != -1) {
+ classElements[j] = els[i];
+ j++;
+ }
+ }
+ }
+ return classElements;
+}
+
+/**
+ * sets current selected db
+ *
+ * @param string db name
+ */
+function setDb(new_db) {
+ //alert('setDb(' + new_db + ')');
+ if (new_db != db) {
+ // db has changed
+ //alert( new_db + '(' + new_db.length + ') : ' + db );
+
+ var old_db = db;
+ db = new_db;
+
+ if (window.frame_navigation.document.getElementById(db) == null) {
+ // db is unknown, reload complete left frame
+ refreshNavigation();
+ } else {
+ unmarkDbTable(old_db);
+ markDbTable(db);
+ }
+
+ // TODO: add code to expand db in lightview mode
+
+ // refresh querywindow
+ refreshQuerywindow();
+ }
+}
+
+/**
+ * sets current selected table (called from navigation.php)
+ *
+ * @param string table name
+ */
+function setTable(new_table) {
+ //alert('setTable(' + new_table + ')');
+ if (new_table != table) {
+ // table has changed
+ //alert( new_table + '(' + new_table.length + ') : ' + table );
+
+ table = new_table;
+
+ if (window.frame_navigation.document.getElementById(db + '.' + table) == null
+ && table != '') {
+ // table is unknown, reload complete left frame
+ refreshNavigation();
+
+ }
+ // TODO: add code to expand table in lightview mode
+
+ // refresh querywindow
+ refreshQuerywindow();
+ }
+}
+
+/**
+ * reloads main frame
+ *
+ * @uses goTo()
+ * @uses opendb_url
+ * @uses token
+ * @uses db
+ * @uses server
+ * @uses table
+ * @uses lang
+ * @uses collation_connection
+ * @uses encodeURIComponent()
+ * @param string url name of page to be loaded
+ */
+function refreshMain(url) {
+ if (! url) {
+ if (db) {
+ url = opendb_url;
+ } else {
+ url = 'main.php';
+ }
+ }
+ //alert(db);
+ goTo(url + '?server=' + encodeURIComponent(server) +
+ '&token=' + encodeURIComponent(token) +
+ '&db=' + encodeURIComponent(db) +
+ '&table=' + encodeURIComponent(table) +
+ '&lang=' + encodeURIComponent(lang) +
+ '&collation_connection=' + encodeURIComponent(collation_connection),
+ 'main');
+}
+
+/**
+ * reloads navigation frame
+ *
+ * @uses goTo()
+ * @uses token
+ * @uses db
+ * @uses server
+ * @uses table
+ * @uses lang
+ * @uses collation_connection
+ * @uses encodeURIComponent()
+ */
+function refreshNavigation() {
+ goTo('navigation.php?server=' + encodeURIComponent(server) +
+ '&token=' + encodeURIComponent(token) +
+ '&db=' + encodeURIComponent(db) +
+ '&table=' + encodeURIComponent(table) +
+ '&lang=' + encodeURIComponent(lang) +
+ '&collation_connection=' + encodeURIComponent(collation_connection)
+ );
+}
+
+/**
+ * adds class to element
+ */
+function addClass(element, classname)
+{
+ if (element != null) {
+ element.className += ' ' + classname;
+ //alert('set class: ' + classname + ', now: ' + element.className);
+ }
+}
+
+/**
+ * removes class from element
+ */
+function removeClass(element, classname)
+{
+ if (element != null) {
+ element.className = element.className.replace(' ' + classname, '');
+ // if there is no other class anem there is no leading space
+ element.className = element.className.replace(classname, '');
+ //alert('removed class: ' + classname + ', now: ' + element.className);
+ }
+}
+
+function unmarkDbTable(db, table)
+{
+ var element_reference = window.frame_navigation.document.getElementById(db);
+ if (element_reference != null) {
+ //alert('remove from: ' + db);
+ removeClass(element_reference.parentNode, 'marked');
+ }
+
+ element_reference = window.frame_navigation.document.getElementById(db + '.' + table);
+ if (element_reference != null) {
+ //alert('remove from: ' + db + '.' + table);
+ removeClass(element_reference.parentNode, 'marked');
+ }
+}
+
+function markDbTable(db, table)
+{
+ var element_reference = window.frame_navigation.document.getElementById(db);
+ if (element_reference != null) {
+ addClass(element_reference.parentNode, 'marked');
+ // scrolldown
+ element_reference.focus();
+ // opera marks the text, we dont want this ...
+ element_reference.blur();
+ }
+
+ element_reference = window.frame_navigation.document.getElementById(db + '.' + table);
+ if (element_reference != null) {
+ addClass(element_reference.parentNode, 'marked');
+ // scrolldown
+ element_reference.focus();
+ // opera marks the text, we dont want this ...
+ element_reference.blur();
+ }
+
+ // return to main frame ...
+ window.frame_content.focus();
+}
+
+/**
+ * sets current selected server, table and db (called from libraries/footer.inc.php)
+ */
+function setAll( new_lang, new_collation_connection, new_server, new_db, new_table, new_token ) {
+ //alert('setAll( ' + new_lang + ', ' + new_collation_connection + ', ' + new_server + ', ' + new_db + ', ' + new_table + ', ' + new_token + ' )');
+ if (new_server != server || new_lang != lang
+ || new_collation_connection != collation_connection) {
+ // something important has changed
+ server = new_server;
+ db = new_db;
+ table = new_table;
+ collation_connection = new_collation_connection;
+ lang = new_lang;
+ token = new_token;
+ refreshNavigation();
+ } else if (new_db != db || new_table != table) {
+ // save new db and table
+ var old_db = db;
+ var old_table = table;
+ db = new_db;
+ table = new_table;
+
+ if (window.frame_navigation.document.getElementById(db) == null
+ && window.frame_navigation.document.getElementById(db + '.' + table) == null ) {
+ // table or db is unknown, reload complete left frame
+ refreshNavigation();
+ } else {
+ unmarkDbTable(old_db, old_table);
+ markDbTable(db, table);
+ }
+
+ // TODO: add code to expand db in lightview mode
+
+ // refresh querywindow
+ refreshQuerywindow();
+ }
+}
+
+function reload_querywindow(db, table, sql_query)
+{
+ if ( ! querywindow.closed && querywindow.location ) {
+ if ( ! querywindow.document.sqlform.LockFromUpdate
+ || ! querywindow.document.sqlform.LockFromUpdate.checked ) {
+ querywindow.document.getElementById('hiddenqueryform').db.value = db;
+ querywindow.document.getElementById('hiddenqueryform').table.value = table;
+
+ if (sql_query) {
+ querywindow.document.getElementById('hiddenqueryform').sql_query.value = sql_query;
+ }
+
+ querywindow.document.getElementById('hiddenqueryform').submit();
+ }
+ }
+}
+
+/**
+ * brings query window to front and inserts query to be edited
+ */
+function focus_querywindow(sql_query)
+{
+ /* if ( querywindow && !querywindow.closed && querywindow.location) { */
+ if ( !querywindow || querywindow.closed || !querywindow.location) {
+ // we need first to open the window and cannot pass the query with it
+ // as we dont know if the query exceeds max url length
+ /* url = 'querywindow.php?' + common_query + '&db=' + db + '&table=' + table + '&sql_query=SELECT * FROM'; */
+ query_to_load = sql_query;
+ open_querywindow();
+ insertQuery(0);
+ } else {
+ //var querywindow = querywindow;
+ if ( querywindow.document.getElementById('hiddenqueryform').querydisplay_tab != 'sql' ) {
+ querywindow.document.getElementById('hiddenqueryform').querydisplay_tab.value = "sql";
+ querywindow.document.getElementById('hiddenqueryform').sql_query.value = sql_query;
+ querywindow.document.getElementById('hiddenqueryform').submit();
+ querywindow.focus();
+ } else {
+ querywindow.focus();
+ }
+ }
+ return true;
+}
+
+/**
+ * inserts query string into query window textarea
+ * called from script tag in querywindow
+ */
+function insertQuery() {
+ if (query_to_load != '' && querywindow.document && querywindow.document.getElementById && querywindow.document.getElementById('sqlquery')) {
+ querywindow.document.getElementById('sqlquery').value = query_to_load;
+ query_to_load = '';
+ return true;
+ }
+ return false;
+}
+
+function open_querywindow( url ) {
+ if ( ! url ) {
+ url = 'querywindow.php?' + common_query + '&db=' + encodeURIComponent(db) + '&table=' + encodeURIComponent(table);
+ }
+
+ if (!querywindow.closed && querywindow.location) {
+ goTo( url, 'query' );
+ querywindow.focus();
+ } else {
+ querywindow = window.open( url + '&init=1', '',
+ 'toolbar=0,location=0,directories=0,status=1,menubar=0,' +
+ 'scrollbars=yes,resizable=yes,' +
+ 'width=' + querywindow_width + ',' +
+ 'height=' + querywindow_height );
+ }
+
+ if ( ! querywindow.opener ) {
+ querywindow.opener = window.window;
+ }
+
+ if ( window.focus ) {
+ querywindow.focus();
+ }
+
+ return true;
+}
+
+function refreshQuerywindow( url ) {
+
+ if ( ! querywindow.closed && querywindow.location ) {
+ if ( ! querywindow.document.sqlform.LockFromUpdate
+ || ! querywindow.document.sqlform.LockFromUpdate.checked ) {
+ open_querywindow( url )
+ }
+ }
+}
+
+/**
+ * opens new url in target frame, with default being left frame
+ * valid is 'main' and 'querywindow' all others leads to 'left'
+ *
+ * @param string targeturl new url to load
+ * @param string target frame where to load the new url
+ */
+function goTo(targeturl, target) {
+ //alert(targeturl);
+ if ( target == 'main' ) {
+ target = window.frame_content;
+ } else if ( target == 'query' ) {
+ target = querywindow;
+ //return open_querywindow( targeturl );
+ } else if ( ! target ) {
+ target = window.frame_navigation;
+ }
+
+ if ( target ) {
+ if ( target.location.href == targeturl ) {
+ return true;
+ } else if ( target.location.href == pma_absolute_uri + targeturl ) {
+ return true;
+ }
+
+ if ( safari_browser ) {
+ target.location.href = targeturl;
+ } else {
+ target.location.replace(targeturl);
+ }
+ }
+
+ return true;
+}
+
+// opens selected db in main frame
+function openDb(new_db) {
+ //alert('opendb(' + new_db + ')');
+ setDb(new_db);
+ setTable('');
+ refreshMain(opendb_url);
+ return true;
+}
+
+function updateTableTitle( table_link_id, new_title ) {
+ //alert('updateTableTitle');
+ if ( window.parent.frame_navigation.document.getElementById(table_link_id) ) {
+ var left = window.parent.frame_navigation.document;
+ left.getElementById(table_link_id).title = new_title;
+ new_title = left.getElementById('icon_' + table_link_id).alt + ': ' + new_title;
+ left.getElementById('quick_' + table_link_id).title = new_title;
+ return true;
+ }
+
+ return false;
+}
diff --git a/js/dom-drag.js b/js/dom-drag.js
new file mode 100644
index 0000000000..51fef4bdcc
--- /dev/null
+++ b/js/dom-drag.js
@@ -0,0 +1,124 @@
+/**************************************************
+ * dom-drag.js
+ * 09.25.2001
+ * www.youngpup.net
+ **************************************************
+ * Copyright 2001, Aaron Boodman
+ * This code is public domain. Please use it for good, not evil.
+ **************************************************
+ * 10.28.2001 - fixed minor bug where events
+ * sometimes fired off the handle, not the root.
+ **************************************************/
+
+var Drag = {
+
+ obj : null,
+
+ init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
+ {
+ o.onmousedown = Drag.start;
+
+ o.hmode = bSwapHorzRef ? false : true ;
+ o.vmode = bSwapVertRef ? false : true ;
+
+ o.root = oRoot && oRoot != null ? oRoot : o ;
+
+ if (o.hmode && isNaN(parseInt(o.root.style.left ))) o.root.style.left = "0px";
+ if (o.vmode && isNaN(parseInt(o.root.style.top ))) o.root.style.top = "0px";
+ if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right = "0px";
+ if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";
+
+ o.minX = typeof minX != 'undefined' ? minX : null;
+ o.minY = typeof minY != 'undefined' ? minY : null;
+ o.maxX = typeof maxX != 'undefined' ? maxX : null;
+ o.maxY = typeof maxY != 'undefined' ? maxY : null;
+
+ o.xMapper = fXMapper ? fXMapper : null;
+ o.yMapper = fYMapper ? fYMapper : null;
+
+ o.root.onDragStart = new Function();
+ o.root.onDragEnd = new Function();
+ o.root.onDrag = new Function();
+ },
+
+ start : function(e)
+ {
+ var o = Drag.obj = this;
+ e = Drag.fixE(e);
+ var y = parseInt(o.vmode ? o.root.style.top : o.root.style.bottom);
+ var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
+ o.root.onDragStart(x, y);
+
+ o.lastMouseX = e.clientX;
+ o.lastMouseY = e.clientY;
+
+ if (o.hmode) {
+ if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
+ if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
+ } else {
+ if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
+ if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
+ }
+
+ if (o.vmode) {
+ if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
+ if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
+ } else {
+ if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
+ if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
+ }
+
+ document.onmousemove = Drag.drag;
+ document.onmouseup = Drag.end;
+
+ return false;
+ },
+
+ drag : function(e)
+ {
+ e = Drag.fixE(e);
+ var o = Drag.obj;
+
+ var ey = e.clientY;
+ var ex = e.clientX;
+ var y = parseInt(o.vmode ? o.root.style.top : o.root.style.bottom);
+ var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
+ var nx, ny;
+
+ if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
+ if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
+ if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
+ if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);
+
+ nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
+ ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));
+
+ if (o.xMapper) nx = o.xMapper(y)
+ else if (o.yMapper) ny = o.yMapper(x)
+
+ Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
+ Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
+ Drag.obj.lastMouseX = ex;
+ Drag.obj.lastMouseY = ey;
+
+ Drag.obj.root.onDrag(nx, ny);
+ return false;
+ },
+
+ end : function()
+ {
+ document.onmousemove = null;
+ document.onmouseup = null;
+ Drag.obj.root.onDragEnd( parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]),
+ parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
+ Drag.obj = null;
+ },
+
+ fixE : function(e)
+ {
+ if (typeof e == 'undefined') e = window.event;
+ if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
+ if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
+ return e;
+ }
+};
diff --git a/js/functions.js b/js/functions.js
new file mode 100644
index 0000000000..bf1b5913ce
--- /dev/null
+++ b/js/functions.js
@@ -0,0 +1,1306 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * general function, usally for data manipulation pages
+ *
+ * @version $Id$
+ */
+
+/**
+ * @var sql_box_locked lock for the sqlbox textarea in the querybox/querywindow
+ */
+var sql_box_locked = false;
+
+/**
+ * @var array holds elements which content should only selected once
+ */
+var only_once_elements = new Array();
+
+/**
+ * selects the content of a given object, f.e. a textarea
+ *
+ * @param object element element of which the content will be selected
+ * @param var lock variable which holds the lock for this element
+ * or true, if no lock exists
+ * @param boolean only_once if true this is only done once
+ * f.e. only on first focus
+ */
+function selectContent( element, lock, only_once ) {
+ if ( only_once && only_once_elements[element.name] ) {
+ return;
+ }
+
+ only_once_elements[element.name] = true;
+
+ if ( lock ) {
+ return;
+ }
+
+ element.select();
+}
+
+/**
+ * Displays an confirmation box before to submit a "DROP DATABASE" query.
+ * This function is called while clicking links
+ *
+ * @param object the link
+ * @param object the sql query to submit
+ *
+ * @return boolean whether to run the query or not
+ */
+function confirmLinkDropDB(theLink, theSqlQuery)
+{
+ // Confirmation is not required in the configuration file
+ // or browser is Opera (crappy js implementation)
+ if (PMA_messages['strDoYouReally'] == '' || typeof(window.opera) != 'undefined') {
+ return true;
+ }
+
+ var is_confirmed = confirm(PMA_messages['strDropDatabaseStrongWarning'] + '\n' + PMA_messages['strDoYouReally'] + ' :\n' + theSqlQuery);
+ if (is_confirmed) {
+ theLink.href += '&is_js_confirmed=1';
+ }
+
+ return is_confirmed;
+} // end of the 'confirmLinkDropDB()' function
+
+/**
+ * Displays an confirmation box before to submit a "DROP/DELETE/ALTER" query.
+ * This function is called while clicking links
+ *
+ * @param object the link
+ * @param object the sql query to submit
+ *
+ * @return boolean whether to run the query or not
+ */
+function confirmLink(theLink, theSqlQuery)
+{
+ // Confirmation is not required in the configuration file
+ // or browser is Opera (crappy js implementation)
+ if (PMA_messages['strDoYouReally'] == '' || typeof(window.opera) != 'undefined') {
+ return true;
+ }
+
+ var is_confirmed = confirm(PMA_messages['strDoYouReally'] + ' :\n' + theSqlQuery);
+ if (is_confirmed) {
+ if ( typeof(theLink.href) != 'undefined' ) {
+ theLink.href += '&is_js_confirmed=1';
+ } else if ( typeof(theLink.form) != 'undefined' ) {
+ theLink.form.action += '?is_js_confirmed=1';
+ }
+ }
+
+ return is_confirmed;
+} // end of the 'confirmLink()' function
+
+
+/**
+ * Displays an confirmation box before doing some action
+ *
+ * @param object the message to display
+ *
+ * @return boolean whether to run the query or not
+ */
+function confirmAction(theMessage)
+{
+ // TODO: Confirmation is not required in the configuration file
+ // or browser is Opera (crappy js implementation)
+ if (typeof(window.opera) != 'undefined') {
+ return true;
+ }
+
+ var is_confirmed = confirm(theMessage);
+
+ return is_confirmed;
+} // end of the 'confirmAction()' function
+
+
+/**
+ * Displays an error message if a "DROP DATABASE" statement is submitted
+ * while it isn't allowed, else confirms a "DROP/DELETE/ALTER" query before
+ * sumitting it if required.
+ * This function is called by the 'checkSqlQuery()' js function.
+ *
+ * @param object the form
+ * @param object the sql query textarea
+ *
+ * @return boolean whether to run the query or not
+ *
+ * @see checkSqlQuery()
+ */
+function confirmQuery(theForm1, sqlQuery1)
+{
+ // Confirmation is not required in the configuration file
+ if (PMA_messages['strDoYouReally'] == '') {
+ return true;
+ }
+
+ // The replace function (js1.2) isn't supported
+ else if (typeof(sqlQuery1.value.replace) == 'undefined') {
+ return true;
+ }
+
+ // js1.2+ -> validation with regular expressions
+ else {
+ // "DROP DATABASE" statement isn't allowed
+ if (PMA_messages['strNoDropDatabases'] != '') {
+ var drop_re = new RegExp('(^|;)\\s*DROP\\s+(IF EXISTS\\s+)?DATABASE\\s', 'i');
+ if (drop_re.test(sqlQuery1.value)) {
+ alert(PMA_messages['strNoDropDatabases']);
+ theForm1.reset();
+ sqlQuery1.focus();
+ return false;
+ } // end if
+ } // end if
+
+ // Confirms a "DROP/DELETE/ALTER" statement
+ //
+ // TODO: find a way (if possible) to use the parser-analyser
+ // for this kind of verification
+ // For now, I just added a ^ to check for the statement at
+ // beginning of expression
+
+ var do_confirm_re_0 = new RegExp('^\\s*DROP\\s+(IF EXISTS\\s+)?(TABLE|DATABASE|PROCEDURE)\\s', 'i');
+ var do_confirm_re_1 = new RegExp('^\\s*ALTER\\s+TABLE\\s+((`[^`]+`)|([A-Za-z0-9_$]+))\\s+DROP\\s', 'i');
+ var do_confirm_re_2 = new RegExp('^\\s*DELETE\\s+FROM\\s', 'i');
+ if (do_confirm_re_0.test(sqlQuery1.value)
+ || do_confirm_re_1.test(sqlQuery1.value)
+ || do_confirm_re_2.test(sqlQuery1.value)) {
+ var message = (sqlQuery1.value.length > 100)
+ ? sqlQuery1.value.substr(0, 100) + '\n ...'
+ : sqlQuery1.value;
+ var is_confirmed = confirm(PMA_messages['strDoYouReally'] + ' :\n' + message);
+ // drop/delete/alter statement is confirmed -> update the
+ // "is_js_confirmed" form field so the confirm test won't be
+ // run on the server side and allows to submit the form
+ if (is_confirmed) {
+ theForm1.elements['is_js_confirmed'].value = 1;
+ return true;
+ }
+ // "DROP/DELETE/ALTER" statement is rejected -> do not submit
+ // the form
+ else {
+ window.focus();
+ sqlQuery1.focus();
+ return false;
+ } // end if (handle confirm box result)
+ } // end if (display confirm box)
+ } // end confirmation stuff
+
+ return true;
+} // end of the 'confirmQuery()' function
+
+
+/**
+ * Displays a confirmation box before disabling the BLOB repository for a given database.
+ * This function is called while clicking links
+ *
+ * @param object the database
+ *
+ * @return boolean whether to disable the repository or not
+ */
+function confirmDisableRepository(theDB)
+{
+ // Confirmation is not required in the configuration file
+ // or browser is Opera (crappy js implementation)
+ if (PMA_messages['strDoYouReally'] == '' || typeof(window.opera) != 'undefined') {
+ return true;
+ }
+
+ var is_confirmed = confirm(PMA_messages['strBLOBRepositoryDisableStrongWarning'] + '\n' + PMA_messages['strBLOBRepositoryDisableAreYouSure']);
+
+ return is_confirmed;
+} // end of the 'confirmDisableBLOBRepository()' function
+
+
+/**
+ * Displays an error message if the user submitted the sql query form with no
+ * sql query, else checks for "DROP/DELETE/ALTER" statements
+ *
+ * @param object the form
+ *
+ * @return boolean always false
+ *
+ * @see confirmQuery()
+ */
+function checkSqlQuery(theForm)
+{
+ var sqlQuery = theForm.elements['sql_query'];
+ var isEmpty = 1;
+
+ // The replace function (js1.2) isn't supported -> basic tests
+ if (typeof(sqlQuery.value.replace) == 'undefined') {
+ isEmpty = (sqlQuery.value == '') ? 1 : 0;
+ if (isEmpty && typeof(theForm.elements['sql_file']) != 'undefined') {
+ isEmpty = (theForm.elements['sql_file'].value == '') ? 1 : 0;
+ }
+ if (isEmpty && typeof(theForm.elements['sql_localfile']) != 'undefined') {
+ isEmpty = (theForm.elements['sql_localfile'].value == '') ? 1 : 0;
+ }
+ if (isEmpty && typeof(theForm.elements['id_bookmark']) != 'undefined') {
+ isEmpty = (theForm.elements['id_bookmark'].value == null || theForm.elements['id_bookmark'].value == '');
+ }
+ }
+ // js1.2+ -> validation with regular expressions
+ else {
+ var space_re = new RegExp('\\s+');
+ if (typeof(theForm.elements['sql_file']) != 'undefined' &&
+ theForm.elements['sql_file'].value.replace(space_re, '') != '') {
+ return true;
+ }
+ if (typeof(theForm.elements['sql_localfile']) != 'undefined' &&
+ theForm.elements['sql_localfile'].value.replace(space_re, '') != '') {
+ return true;
+ }
+ if (isEmpty && typeof(theForm.elements['id_bookmark']) != 'undefined' &&
+ (theForm.elements['id_bookmark'].value != null || theForm.elements['id_bookmark'].value != '') &&
+ theForm.elements['id_bookmark'].selectedIndex != 0
+ ) {
+ return true;
+ }
+ // Checks for "DROP/DELETE/ALTER" statements
+ if (sqlQuery.value.replace(space_re, '') != '') {
+ if (confirmQuery(theForm, sqlQuery)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ theForm.reset();
+ isEmpty = 1;
+ }
+
+ if (isEmpty) {
+ sqlQuery.select();
+ alert(PMA_messages['strFormEmpty']);
+ sqlQuery.focus();
+ return false;
+ }
+
+ return true;
+} // end of the 'checkSqlQuery()' function
+
+
+/**
+ * Check if a form's element is empty
+ * should be
+ *
+ * @param object the form
+ * @param string the name of the form field to put the focus on
+ *
+ * @return boolean whether the form field is empty or not
+ */
+function emptyCheckTheField(theForm, theFieldName)
+{
+ var isEmpty = 1;
+ var theField = theForm.elements[theFieldName];
+ // Whether the replace function (js1.2) is supported or not
+ var isRegExp = (typeof(theField.value.replace) != 'undefined');
+
+ if (!isRegExp) {
+ isEmpty = (theField.value == '') ? 1 : 0;
+ } else {
+ var space_re = new RegExp('\\s+');
+ isEmpty = (theField.value.replace(space_re, '') == '') ? 1 : 0;
+ }
+
+ return isEmpty;
+} // end of the 'emptyCheckTheField()' function
+
+
+/**
+ * Displays an error message if an element of a form hasn't been completed and
+ * should be
+ *
+ * @param object the form
+ * @param string the name of the form field to put the focus on
+ *
+ * @return boolean whether the form field is empty or not
+ */
+function emptyFormElements(theForm, theFieldName)
+{
+ var theField = theForm.elements[theFieldName];
+ var isEmpty = emptyCheckTheField(theForm, theFieldName);
+
+ if (isEmpty) {
+ theForm.reset();
+ theField.select();
+ alert(PMA_messages['strFormEmpty']);
+ theField.focus();
+ return false;
+ }
+
+ return true;
+} // end of the 'emptyFormElements()' function
+
+
+/**
+ * Ensures a value submitted in a form is numeric and is in a range
+ *
+ * @param object the form
+ * @param string the name of the form field to check
+ * @param integer the minimum authorized value
+ * @param integer the maximum authorized value
+ *
+ * @return boolean whether a valid number has been submitted or not
+ */
+function checkFormElementInRange(theForm, theFieldName, message, min, max)
+{
+ var theField = theForm.elements[theFieldName];
+ var val = parseInt(theField.value);
+
+ if (typeof(min) == 'undefined') {
+ min = 0;
+ }
+ if (typeof(max) == 'undefined') {
+ max = Number.MAX_VALUE;
+ }
+
+ // It's not a number
+ if (isNaN(val)) {
+ theField.select();
+ alert(PMA_messages['strNotNumber']);
+ theField.focus();
+ return false;
+ }
+ // It's a number but it is not between min and max
+ else if (val < min || val > max) {
+ theField.select();
+ alert(message.replace('%d', val));
+ theField.focus();
+ return false;
+ }
+ // It's a valid number
+ else {
+ theField.value = val;
+ }
+ return true;
+
+} // end of the 'checkFormElementInRange()' function
+
+
+function checkTableEditForm(theForm, fieldsCnt)
+{
+ // TODO: avoid sending a message if user just wants to add a line
+ // on the form but has not completed at least one field name
+
+ var atLeastOneField = 0;
+ var i, elm, elm2, elm3, val, id;
+
+ for (i=0; i<fieldsCnt; i++)
+ {
+ id = "field_" + i + "_2";
+ elm = getElement(id);
+ if (elm.value == 'VARCHAR' || elm.value == 'CHAR' || elm.value == 'BIT') {
+ elm2 = getElement("field_" + i + "_3");
+ val = parseInt(elm2.value);
+ elm3 = getElement("field_" + i + "_1");
+ if (isNaN(val) && elm3.value != "") {
+ elm2.select();
+ alert(PMA_messages['strNotNumber']);
+ elm2.focus();
+ return false;
+ }
+ }
+
+ if (atLeastOneField == 0) {
+ id = "field_" + i + "_1";
+ if (!emptyCheckTheField(theForm, id)) {
+ atLeastOneField = 1;
+ }
+ }
+ }
+ if (atLeastOneField == 0) {
+ var theField = theForm.elements["field_0_1"];
+ alert(PMA_messages['strFormEmpty']);
+ theField.focus();
+ return false;
+ }
+
+ return true;
+} // enf of the 'checkTableEditForm()' function
+
+
+/**
+ * Ensures the choice between 'transmit', 'zipped', 'gzipped' and 'bzipped'
+ * checkboxes is consistant
+ *
+ * @param object the form
+ * @param string a code for the action that causes this function to be run
+ *
+ * @return boolean always true
+ */
+function checkTransmitDump(theForm, theAction)
+{
+ var formElts = theForm.elements;
+
+ // 'zipped' option has been checked
+ if (theAction == 'zip' && formElts['zip'].checked) {
+ if (!formElts['asfile'].checked) {
+ theForm.elements['asfile'].checked = true;
+ }
+ if (typeof(formElts['gzip']) != 'undefined' && formElts['gzip'].checked) {
+ theForm.elements['gzip'].checked = false;
+ }
+ if (typeof(formElts['bzip']) != 'undefined' && formElts['bzip'].checked) {
+ theForm.elements['bzip'].checked = false;
+ }
+ }
+ // 'gzipped' option has been checked
+ else if (theAction == 'gzip' && formElts['gzip'].checked) {
+ if (!formElts['asfile'].checked) {
+ theForm.elements['asfile'].checked = true;
+ }
+ if (typeof(formElts['zip']) != 'undefined' && formElts['zip'].checked) {
+ theForm.elements['zip'].checked = false;
+ }
+ if (typeof(formElts['bzip']) != 'undefined' && formElts['bzip'].checked) {
+ theForm.elements['bzip'].checked = false;
+ }
+ }
+ // 'bzipped' option has been checked
+ else if (theAction == 'bzip' && formElts['bzip'].checked) {
+ if (!formElts['asfile'].checked) {
+ theForm.elements['asfile'].checked = true;
+ }
+ if (typeof(formElts['zip']) != 'undefined' && formElts['zip'].checked) {
+ theForm.elements['zip'].checked = false;
+ }
+ if (typeof(formElts['gzip']) != 'undefined' && formElts['gzip'].checked) {
+ theForm.elements['gzip'].checked = false;
+ }
+ }
+ // 'transmit' option has been unchecked
+ else if (theAction == 'transmit' && !formElts['asfile'].checked) {
+ if (typeof(formElts['zip']) != 'undefined' && formElts['zip'].checked) {
+ theForm.elements['zip'].checked = false;
+ }
+ if ((typeof(formElts['gzip']) != 'undefined' && formElts['gzip'].checked)) {
+ theForm.elements['gzip'].checked = false;
+ }
+ if ((typeof(formElts['bzip']) != 'undefined' && formElts['bzip'].checked)) {
+ theForm.elements['bzip'].checked = false;
+ }
+ }
+
+ return true;
+} // end of the 'checkTransmitDump()' function
+
+
+/**
+ * This array is used to remember mark status of rows in browse mode
+ */
+var marked_row = new Array;
+
+/**
+ * enables highlight and marking of rows in data tables
+ *
+ */
+function PMA_markRowsInit() {
+ // for every table row ...
+ var rows = document.getElementsByTagName('tr');
+ for ( var i = 0; i < rows.length; i++ ) {
+ // ... with the class 'odd' or 'even' ...
+ if ( 'odd' != rows[i].className.substr(0,3) && 'even' != rows[i].className.substr(0,4) ) {
+ continue;
+ }
+ // ... add event listeners ...
+ // ... to highlight the row on mouseover ...
+ if ( navigator.appName == 'Microsoft Internet Explorer' ) {
+ // but only for IE, other browsers are handled by :hover in css
+ rows[i].onmouseover = function() {
+ this.className += ' hover';
+ }
+ rows[i].onmouseout = function() {
+ this.className = this.className.replace( ' hover', '' );
+ }
+ }
+ // Do not set click events if not wanted
+ if (rows[i].className.search(/noclick/) != -1) {
+ continue;
+ }
+ // ... and to mark the row on click ...
+ rows[i].onmousedown = function() {
+ var unique_id;
+ var checkbox;
+
+ checkbox = this.getElementsByTagName( 'input' )[0];
+ if ( checkbox && checkbox.type == 'checkbox' ) {
+ unique_id = checkbox.name + checkbox.value;
+ } else if ( this.id.length > 0 ) {
+ unique_id = this.id;
+ } else {
+ return;
+ }
+
+ if ( typeof(marked_row[unique_id]) == 'undefined' || !marked_row[unique_id] ) {
+ marked_row[unique_id] = true;
+ } else {
+ marked_row[unique_id] = false;
+ }
+
+ if ( marked_row[unique_id] ) {
+ this.className += ' marked';
+ } else {
+ this.className = this.className.replace(' marked', '');
+ }
+
+ if ( checkbox && checkbox.disabled == false ) {
+ checkbox.checked = marked_row[unique_id];
+ }
+ }
+
+ // ... and disable label ...
+ var labeltag = rows[i].getElementsByTagName('label')[0];
+ if ( labeltag ) {
+ labeltag.onclick = function() {
+ return false;
+ }
+ }
+ // .. and checkbox clicks
+ var checkbox = rows[i].getElementsByTagName('input')[0];
+ if ( checkbox ) {
+ checkbox.onclick = function() {
+ // opera does not recognize return false;
+ this.checked = ! this.checked;
+ }
+ }
+ }
+}
+window.onload=PMA_markRowsInit;
+
+/**
+ * marks all rows and selects its first checkbox inside the given element
+ * the given element is usaly a table or a div containing the table or tables
+ *
+ * @param container DOM element
+ */
+function markAllRows( container_id ) {
+ var rows = document.getElementById(container_id).getElementsByTagName('tr');
+ var unique_id;
+ var checkbox;
+
+ for ( var i = 0; i < rows.length; i++ ) {
+
+ checkbox = rows[i].getElementsByTagName( 'input' )[0];
+
+ if ( checkbox && checkbox.type == 'checkbox' ) {
+ unique_id = checkbox.name + checkbox.value;
+ if ( checkbox.disabled == false ) {
+ checkbox.checked = true;
+ if ( typeof(marked_row[unique_id]) == 'undefined' || !marked_row[unique_id] ) {
+ rows[i].className += ' marked';
+ marked_row[unique_id] = true;
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+/**
+ * marks all rows and selects its first checkbox inside the given element
+ * the given element is usaly a table or a div containing the table or tables
+ *
+ * @param container DOM element
+ */
+function unMarkAllRows( container_id ) {
+ var rows = document.getElementById(container_id).getElementsByTagName('tr');
+ var unique_id;
+ var checkbox;
+
+ for ( var i = 0; i < rows.length; i++ ) {
+
+ checkbox = rows[i].getElementsByTagName( 'input' )[0];
+
+ if ( checkbox && checkbox.type == 'checkbox' ) {
+ unique_id = checkbox.name + checkbox.value;
+ checkbox.checked = false;
+ rows[i].className = rows[i].className.replace(' marked', '');
+ marked_row[unique_id] = false;
+ }
+ }
+
+ return true;
+}
+
+/**
+ * Sets/unsets the pointer and marker in browse mode
+ *
+ * @param object the table row
+ * @param integer the row number
+ * @param string the action calling this script (over, out or click)
+ * @param string the default background color
+ * @param string the color to use for mouseover
+ * @param string the color to use for marking a row
+ *
+ * @return boolean whether pointer is set or not
+ */
+function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
+{
+ var theCells = null;
+
+ // 1. Pointer and mark feature are disabled or the browser can't get the
+ // row -> exits
+ if ((thePointerColor == '' && theMarkColor == '')
+ || typeof(theRow.style) == 'undefined') {
+ return false;
+ }
+
+ // 1.1 Sets the mouse pointer to pointer on mouseover and back to normal otherwise.
+ if (theAction == "over" || theAction == "click") {
+ theRow.style.cursor='pointer';
+ } else {
+ theRow.style.cursor='default';
+ }
+
+ // 2. Gets the current row and exits if the browser can't get it
+ if (typeof(document.getElementsByTagName) != 'undefined') {
+ theCells = theRow.getElementsByTagName('td');
+ }
+ else if (typeof(theRow.cells) != 'undefined') {
+ theCells = theRow.cells;
+ }
+ else {
+ return false;
+ }
+
+ // 3. Gets the current color...
+ var rowCellsCnt = theCells.length;
+ var domDetect = null;
+ var currentColor = null;
+ var newColor = null;
+ // 3.1 ... with DOM compatible browsers except Opera that does not return
+ // valid values with "getAttribute"
+ if (typeof(window.opera) == 'undefined'
+ && typeof(theCells[0].getAttribute) != 'undefined') {
+ currentColor = theCells[0].getAttribute('bgcolor');
+ domDetect = true;
+ }
+ // 3.2 ... with other browsers
+ else {
+ currentColor = theCells[0].style.backgroundColor;
+ domDetect = false;
+ } // end 3
+
+ // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it
+ if (currentColor.indexOf("rgb") >= 0)
+ {
+ var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
+ currentColor.indexOf(')'));
+ var rgbValues = rgbStr.split(",");
+ currentColor = "#";
+ var hexChars = "0123456789ABCDEF";
+ for (var i = 0; i < 3; i++)
+ {
+ var v = rgbValues[i].valueOf();
+ currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
+ }
+ }
+
+ // 4. Defines the new color
+ // 4.1 Current color is the default one
+ if (currentColor == ''
+ || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
+ if (theAction == 'over' && thePointerColor != '') {
+ newColor = thePointerColor;
+ }
+ else if (theAction == 'click' && theMarkColor != '') {
+ newColor = theMarkColor;
+ marked_row[theRowNum] = true;
+ // Garvin: deactivated onclick marking of the checkbox because it's also executed
+ // when an action (like edit/delete) on a single item is performed. Then the checkbox
+ // would get deactived, even though we need it activated. Maybe there is a way
+ // to detect if the row was clicked, and not an item therein...
+ // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
+ }
+ }
+ // 4.1.2 Current color is the pointer one
+ else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
+ && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
+ if (theAction == 'out') {
+ newColor = theDefaultColor;
+ }
+ else if (theAction == 'click' && theMarkColor != '') {
+ newColor = theMarkColor;
+ marked_row[theRowNum] = true;
+ // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
+ }
+ }
+ // 4.1.3 Current color is the marker one
+ else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
+ if (theAction == 'click') {
+ newColor = (thePointerColor != '')
+ ? thePointerColor
+ : theDefaultColor;
+ marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
+ ? true
+ : null;
+ // document.getElementById('id_rows_to_delete' + theRowNum).checked = false;
+ }
+ } // end 4
+
+ // 5. Sets the new color...
+ if (newColor) {
+ var c = null;
+ // 5.1 ... with DOM compatible browsers except Opera
+ if (domDetect) {
+ for (c = 0; c < rowCellsCnt; c++) {
+ theCells[c].setAttribute('bgcolor', newColor, 0);
+ } // end for
+ }
+ // 5.2 ... with other browsers
+ else {
+ for (c = 0; c < rowCellsCnt; c++) {
+ theCells[c].style.backgroundColor = newColor;
+ }
+ }
+ } // end 5
+
+ return true;
+} // end of the 'setPointer()' function
+
+/*
+ * Sets/unsets the pointer and marker in vertical browse mode
+ *
+ * @param object the table row
+ * @param integer the column number
+ * @param string the action calling this script (over, out or click)
+ * @param string the default background Class
+ * @param string the Class to use for mouseover
+ * @param string the Class to use for marking a row
+ *
+ * @return boolean whether pointer is set or not
+ *
+ * @author Garvin Hicking <me@supergarv.de> (rewrite of setPointer.)
+ */
+function setVerticalPointer(theRow, theColNum, theAction, theDefaultClass1, theDefaultClass2, thePointerClass, theMarkClass) {
+ // 1. Pointer and mark feature are disabled or the browser can't get the
+ // row -> exits
+ if ((thePointerClass == '' && theMarkClass == '')
+ || typeof(theRow.style) == 'undefined') {
+ return false;
+ }
+
+ var tagSwitch = null;
+
+ // 2. Gets the current row and exits if the browser can't get it
+ if (typeof(document.getElementsByTagName) != 'undefined') {
+ tagSwitch = 'tag';
+ } else if (typeof(document.getElementById('table_results')) != 'undefined') {
+ tagSwitch = 'cells';
+ } else {
+ return false;
+ }
+
+ var theCells = null;
+
+ if (tagSwitch == 'tag') {
+ theRows = document.getElementById('table_results').getElementsByTagName('tr');
+ theCells = theRows[1].getElementsByTagName('td');
+ } else if (tagSwitch == 'cells') {
+ theRows = document.getElementById('table_results').rows;
+ theCells = theRows[1].cells;
+ }
+
+ // 3. Gets the current Class...
+ var currentClass = null;
+ var newClass = null;
+
+ // 3.1 ... with DOM compatible browsers except Opera that does not return
+ // valid values with "getAttribute"
+ if (typeof(window.opera) == 'undefined'
+ && typeof(theCells[theColNum].getAttribute) != 'undefined') {
+ currentClass = theCells[theColNum].className;
+ } // end 3
+
+ // 4. Defines the new Class
+ // 4.1 Current Class is the default one
+ if (currentClass == ''
+ || currentClass.toLowerCase() == theDefaultClass1.toLowerCase()
+ || currentClass.toLowerCase() == theDefaultClass2.toLowerCase()) {
+ if (theAction == 'over' && thePointerClass != '') {
+ newClass = thePointerClass;
+ } else if (theAction == 'click' && theMarkClass != '') {
+ newClass = theMarkClass;
+ marked_row[theColNum] = true;
+ }
+ }
+ // 4.1.2 Current Class is the pointer one
+ else if (currentClass.toLowerCase() == thePointerClass.toLowerCase() &&
+ (typeof(marked_row[theColNum]) == 'undefined' || !marked_row[theColNum]) || marked_row[theColNum] == false) {
+ if (theAction == 'out') {
+ if (theColNum % 2) {
+ newClass = theDefaultClass1;
+ } else {
+ newClass = theDefaultClass2;
+ }
+ }
+ else if (theAction == 'click' && theMarkClass != '') {
+ newClass = theMarkClass;
+ marked_row[theColNum] = true;
+ }
+ }
+ // 4.1.3 Current Class is the marker one
+ else if (currentClass.toLowerCase() == theMarkClass.toLowerCase()) {
+ if (theAction == 'click') {
+ newClass = (thePointerClass != '')
+ ? thePointerClass
+ : ((theColNum % 2) ? theDefaultClass2 : theDefaultClass1);
+ marked_row[theColNum] = false;
+ }
+ } // end 4
+
+ // 5 ... with DOM compatible browsers except Opera
+
+ if (newClass) {
+ var c = null;
+ var rowCnt = theRows.length;
+ for (c = 0; c < rowCnt; c++) {
+ if (tagSwitch == 'tag') {
+ Cells = theRows[c].getElementsByTagName('td');
+ } else if (tagSwitch == 'cells') {
+ Cells = theRows[c].cells;
+ }
+
+ Cell = Cells[theColNum];
+
+ // 5.1 Sets the new Class...
+ Cell.className = Cell.className.replace(currentClass, newClass);
+ } // end for
+ } // end 5
+
+ return true;
+ } // end of the 'setVerticalPointer()' function
+
+/**
+ * Checks/unchecks all checkbox in given conainer (f.e. a form, fieldset or div)
+ *
+ * @param string container_id the container id
+ * @param boolean state new value for checkbox (true or false)
+ * @return boolean always true
+ */
+function setCheckboxes( container_id, state ) {
+ var checkboxes = document.getElementById(container_id).getElementsByTagName('input');
+
+ for ( var i = 0; i < checkboxes.length; i++ ) {
+ if ( checkboxes[i].type == 'checkbox' ) {
+ checkboxes[i].checked = state;
+ }
+ }
+
+ return true;
+} // end of the 'setCheckboxes()' function
+
+
+// added 2004-05-08 by Michael Keck <mail_at_michaelkeck_dot_de>
+// copy the checked from left to right or from right to left
+// so it's easier for users to see, if $cfg['ModifyAtRight']=true, what they've checked ;)
+function copyCheckboxesRange(the_form, the_name, the_clicked)
+{
+ if (typeof(document.forms[the_form].elements[the_name]) != 'undefined' && typeof(document.forms[the_form].elements[the_name + 'r']) != 'undefined') {
+ if (the_clicked !== 'r') {
+ if (document.forms[the_form].elements[the_name].checked == true) {
+ document.forms[the_form].elements[the_name + 'r'].checked = true;
+ }else {
+ document.forms[the_form].elements[the_name + 'r'].checked = false;
+ }
+ } else if (the_clicked == 'r') {
+ if (document.forms[the_form].elements[the_name + 'r'].checked == true) {
+ document.forms[the_form].elements[the_name].checked = true;
+ }else {
+ document.forms[the_form].elements[the_name].checked = false;
+ }
+ }
+ }
+}
+
+
+// added 2004-05-08 by Michael Keck <mail_at_michaelkeck_dot_de>
+// - this was directly written to each td, so why not a function ;)
+// setCheckboxColumn(\'id_rows_to_delete' . $row_no . ''\');
+function setCheckboxColumn(theCheckbox){
+ if (document.getElementById(theCheckbox)) {
+ document.getElementById(theCheckbox).checked = (document.getElementById(theCheckbox).checked ? false : true);
+ if (document.getElementById(theCheckbox + 'r')) {
+ document.getElementById(theCheckbox + 'r').checked = document.getElementById(theCheckbox).checked;
+ }
+ } else {
+ if (document.getElementById(theCheckbox + 'r')) {
+ document.getElementById(theCheckbox + 'r').checked = (document.getElementById(theCheckbox +'r').checked ? false : true);
+ if (document.getElementById(theCheckbox)) {
+ document.getElementById(theCheckbox).checked = document.getElementById(theCheckbox + 'r').checked;
+ }
+ }
+ }
+}
+
+
+/**
+ * Checks/unchecks all options of a <select> element
+ *
+ * @param string the form name
+ * @param string the element name
+ * @param boolean whether to check or to uncheck the element
+ *
+ * @return boolean always true
+ */
+function setSelectOptions(the_form, the_select, do_check)
+{
+ var selectObject = document.forms[the_form].elements[the_select];
+ var selectCount = selectObject.length;
+
+ for (var i = 0; i < selectCount; i++) {
+ selectObject.options[i].selected = do_check;
+ } // end for
+
+ return true;
+} // end of the 'setSelectOptions()' function
+
+/**
+ * Inserts multiple fields.
+ *
+ */
+function insertValueQuery() {
+ var myQuery = document.sqlform.sql_query;
+ var myListBox = document.sqlform.dummy;
+
+ if(myListBox.options.length > 0) {
+ sql_box_locked = true;
+ var chaineAj = "";
+ var NbSelect = 0;
+ for(var i=0; i<myListBox.options.length; i++) {
+ if (myListBox.options[i].selected){
+ NbSelect++;
+ if (NbSelect > 1)
+ chaineAj += ", ";
+ chaineAj += myListBox.options[i].value;
+ }
+ }
+
+ //IE support
+ if (document.selection) {
+ myQuery.focus();
+ sel = document.selection.createRange();
+ sel.text = chaineAj;
+ document.sqlform.insert.focus();
+ }
+ //MOZILLA/NETSCAPE support
+ else if (document.sqlform.sql_query.selectionStart || document.sqlform.sql_query.selectionStart == "0") {
+ var startPos = document.sqlform.sql_query.selectionStart;
+ var endPos = document.sqlform.sql_query.selectionEnd;
+ var chaineSql = document.sqlform.sql_query.value;
+
+ myQuery.value = chaineSql.substring(0, startPos) + chaineAj + chaineSql.substring(endPos, chaineSql.length);
+ } else {
+ myQuery.value += chaineAj;
+ }
+ sql_box_locked = false;
+ }
+}
+
+/**
+ * listbox redirection
+ */
+function goToUrl(selObj, goToLocation) {
+ eval("document.location.href = '" + goToLocation + "pos=" + selObj.options[selObj.selectedIndex].value + "'");
+}
+
+/**
+ * getElement
+ */
+function getElement(e,f){
+ if(document.layers){
+ f=(f)?f:self;
+ if(f.document.layers[e]) {
+ return f.document.layers[e];
+ }
+ for(W=0;W<f.document.layers.length;W++) {
+ return(getElement(e,f.document.layers[W]));
+ }
+ }
+ if(document.all) {
+ return document.all[e];
+ }
+ return document.getElementById(e);
+}
+
+/**
+ * Refresh the WYSIWYG-PDF scratchboard after changes have been made
+ */
+function refreshDragOption(e) {
+ myid = getElement(e);
+ if (myid.style.visibility == 'visible') {
+ refreshLayout();
+ }
+}
+
+/**
+ * Refresh/resize the WYSIWYG-PDF scratchboard
+ */
+function refreshLayout() {
+ myid = getElement('pdflayout');
+
+ if (document.pdfoptions.orientation.value == 'P') {
+ posa = 'x';
+ posb = 'y';
+ } else {
+ posa = 'y';
+ posb = 'x';
+ }
+
+ myid.style.width = pdfPaperSize(document.pdfoptions.paper.value, posa) + 'px';
+ myid.style.height = pdfPaperSize(document.pdfoptions.paper.value, posb) + 'px';
+}
+
+/**
+ * Show/hide the WYSIWYG-PDF scratchboard
+ */
+function ToggleDragDrop(e) {
+ myid = getElement(e);
+
+ if (myid.style.visibility == 'hidden') {
+ init();
+ myid.style.visibility = 'visible';
+ myid.style.display = 'block';
+ document.edcoord.showwysiwyg.value = '1';
+ } else {
+ myid.style.visibility = 'hidden';
+ myid.style.display = 'none';
+ document.edcoord.showwysiwyg.value = '0';
+ }
+}
+
+/**
+ * PDF scratchboard: When a position is entered manually, update
+ * the fields inside the scratchboard.
+ */
+function dragPlace(no, axis, value) {
+ if (axis == 'x') {
+ getElement("table_" + no).style.left = value + 'px';
+ } else {
+ getElement("table_" + no).style.top = value + 'px';
+ }
+}
+
+/**
+ * Returns paper sizes for a given format
+ */
+function pdfPaperSize(format, axis) {
+ switch (format.toUpperCase()) {
+ case '4A0':
+ if (axis == 'x') return 4767.87; else return 6740.79;
+ break;
+ case '2A0':
+ if (axis == 'x') return 3370.39; else return 4767.87;
+ break;
+ case 'A0':
+ if (axis == 'x') return 2383.94; else return 3370.39;
+ break;
+ case 'A1':
+ if (axis == 'x') return 1683.78; else return 2383.94;
+ break;
+ case 'A2':
+ if (axis == 'x') return 1190.55; else return 1683.78;
+ break;
+ case 'A3':
+ if (axis == 'x') return 841.89; else return 1190.55;
+ break;
+ case 'A4':
+ if (axis == 'x') return 595.28; else return 841.89;
+ break;
+ case 'A5':
+ if (axis == 'x') return 419.53; else return 595.28;
+ break;
+ case 'A6':
+ if (axis == 'x') return 297.64; else return 419.53;
+ break;
+ case 'A7':
+ if (axis == 'x') return 209.76; else return 297.64;
+ break;
+ case 'A8':
+ if (axis == 'x') return 147.40; else return 209.76;
+ break;
+ case 'A9':
+ if (axis == 'x') return 104.88; else return 147.40;
+ break;
+ case 'A10':
+ if (axis == 'x') return 73.70; else return 104.88;
+ break;
+ case 'B0':
+ if (axis == 'x') return 2834.65; else return 4008.19;
+ break;
+ case 'B1':
+ if (axis == 'x') return 2004.09; else return 2834.65;
+ break;
+ case 'B2':
+ if (axis == 'x') return 1417.32; else return 2004.09;
+ break;
+ case 'B3':
+ if (axis == 'x') return 1000.63; else return 1417.32;
+ break;
+ case 'B4':
+ if (axis == 'x') return 708.66; else return 1000.63;
+ break;
+ case 'B5':
+ if (axis == 'x') return 498.90; else return 708.66;
+ break;
+ case 'B6':
+ if (axis == 'x') return 354.33; else return 498.90;
+ break;
+ case 'B7':
+ if (axis == 'x') return 249.45; else return 354.33;
+ break;
+ case 'B8':
+ if (axis == 'x') return 175.75; else return 249.45;
+ break;
+ case 'B9':
+ if (axis == 'x') return 124.72; else return 175.75;
+ break;
+ case 'B10':
+ if (axis == 'x') return 87.87; else return 124.72;
+ break;
+ case 'C0':
+ if (axis == 'x') return 2599.37; else return 3676.54;
+ break;
+ case 'C1':
+ if (axis == 'x') return 1836.85; else return 2599.37;
+ break;
+ case 'C2':
+ if (axis == 'x') return 1298.27; else return 1836.85;
+ break;
+ case 'C3':
+ if (axis == 'x') return 918.43; else return 1298.27;
+ break;
+ case 'C4':
+ if (axis == 'x') return 649.13; else return 918.43;
+ break;
+ case 'C5':
+ if (axis == 'x') return 459.21; else return 649.13;
+ break;
+ case 'C6':
+ if (axis == 'x') return 323.15; else return 459.21;
+ break;
+ case 'C7':
+ if (axis == 'x') return 229.61; else return 323.15;
+ break;
+ case 'C8':
+ if (axis == 'x') return 161.57; else return 229.61;
+ break;
+ case 'C9':
+ if (axis == 'x') return 113.39; else return 161.57;
+ break;
+ case 'C10':
+ if (axis == 'x') return 79.37; else return 113.39;
+ break;
+ case 'RA0':
+ if (axis == 'x') return 2437.80; else return 3458.27;
+ break;
+ case 'RA1':
+ if (axis == 'x') return 1729.13; else return 2437.80;
+ break;
+ case 'RA2':
+ if (axis == 'x') return 1218.90; else return 1729.13;
+ break;
+ case 'RA3':
+ if (axis == 'x') return 864.57; else return 1218.90;
+ break;
+ case 'RA4':
+ if (axis == 'x') return 609.45; else return 864.57;
+ break;
+ case 'SRA0':
+ if (axis == 'x') return 2551.18; else return 3628.35;
+ break;
+ case 'SRA1':
+ if (axis == 'x') return 1814.17; else return 2551.18;
+ break;
+ case 'SRA2':
+ if (axis == 'x') return 1275.59; else return 1814.17;
+ break;
+ case 'SRA3':
+ if (axis == 'x') return 907.09; else return 1275.59;
+ break;
+ case 'SRA4':
+ if (axis == 'x') return 637.80; else return 907.09;
+ break;
+ case 'LETTER':
+ if (axis == 'x') return 612.00; else return 792.00;
+ break;
+ case 'LEGAL':
+ if (axis == 'x') return 612.00; else return 1008.00;
+ break;
+ case 'EXECUTIVE':
+ if (axis == 'x') return 521.86; else return 756.00;
+ break;
+ case 'FOLIO':
+ if (axis == 'x') return 612.00; else return 936.00;
+ break;
+ } // end switch
+
+ return 0;
+}
+
+/**
+ * rajk - for playing media from the BLOB repository
+ *
+ * @param var
+ * @param var url_params main purpose is to pass the token
+ * @param var bs_ref BLOB repository reference
+ * @param var m_type type of BLOB repository media
+ * @param var w_width width of popup window
+ * @param var w_height height of popup window
+ */
+function popupBSMedia(url_params, bs_ref, m_type, is_cust_type, w_width, w_height)
+{
+ // if width not specified, use default
+ if (w_width == undefined)
+ w_width = 640;
+
+ // if height not specified, use default
+ if (w_height == undefined)
+ w_height = 480;
+
+ // open popup window (for displaying video/playing audio)
+ var mediaWin = window.open('bs_play_media.php?' + url_params + '&bs_reference=' + bs_ref + '&media_type=' + m_type + '&custom_type=' + is_cust_type, 'viewBSMedia', 'width=' + w_width + ', height=' + w_height + ', resizable=1, scrollbars=1, status=0');
+}
+
+/**
+ * rajk - popups a request for changing MIME types for files in the BLOB repository
+ *
+ * @param var db database name
+ * @param var table table name
+ * @param var reference BLOB repository reference
+ * @param var current_mime_type current MIME type associated with BLOB repository reference
+ */
+function requestMIMETypeChange(db, table, reference, current_mime_type)
+{
+ // no mime type specified, set to default (nothing)
+ if (undefined == current_mime_type)
+ current_mime_type == "";
+
+ // prompt user for new mime type
+ var new_mime_type = prompt("Enter custom MIME type", current_mime_type);
+
+ // if new mime_type is specified and is not the same as the previous type, request for mime type change
+ if (new_mime_type && new_mime_type != current_mime_type)
+ changeMIMEType(db, table, reference, new_mime_type);
+}
+
+/**
+ * rajk - changes MIME types for files in the BLOB repository
+ *
+ * @param var db database name
+ * @param var table table name
+ * @param var reference BLOB repository reference
+ * @param var mime_type new MIME type to be associated with BLOB repository reference
+ */
+function changeMIMEType(db, table, reference, mime_type)
+{
+ // specify url and parameters for mootools AJAx request
+ var mime_chg_url = 'bs_change_mime_type.php';
+ var params = { bs_db: db, bs_table: table, bs_reference: reference, bs_new_mime_type: mime_type };
+
+ // create AJAX object with above options and execute request
+ var chgRequest = new Request({ method: 'post', url: mime_chg_url, data: params, evalScripts: true });
+ chgRequest.send();
+}
diff --git a/js/indexes.js b/js/indexes.js
new file mode 100644
index 0000000000..3a170bf4ee
--- /dev/null
+++ b/js/indexes.js
@@ -0,0 +1,91 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * function used for index manipulation pages
+ *
+ * @version $Id$
+ */
+
+/**
+ * Ensures a value submitted in a form is numeric and is in a range
+ *
+ * @param object the form
+ * @param string the name of the form field to check
+ * @param integer the minimum authorized value
+ * @param integer the maximum authorized value
+ *
+ * @return boolean whether a valid number has been submitted or not
+ */
+function checkFormElementInRange(theForm, theFieldName, message, min, max)
+{
+ var theField = theForm.elements[theFieldName];
+ var val = parseInt(theField.value);
+
+ if (typeof(min) == 'undefined') {
+ min = 0;
+ }
+ if (typeof(max) == 'undefined') {
+ max = Number.MAX_VALUE;
+ }
+
+ // It's not a number
+ if (isNaN(val)) {
+ theField.select();
+ alert(PMA_messages['strNotNumber']);
+ theField.focus();
+ return false;
+ }
+ // It's a number but it is not between min and max
+ else if (val < min || val > max) {
+ theField.select();
+ alert(message.replace('%d', val));
+ theField.focus();
+ return false;
+ }
+ // It's a valid number
+ else {
+ theField.value = val;
+ }
+
+ return true;
+} // end of the 'checkFormElementInRange()' function
+
+
+/**
+ * Ensures indexes names are valid according to their type and, for a primary
+ * key, lock index name to 'PRIMARY'
+ *
+ * @return boolean false if there is no index form, true else
+ */
+function checkIndexName()
+{
+ if (typeof(document.forms['index_frm']) == 'undefined') {
+ return false;
+ }
+
+ // Gets the elements pointers
+ var the_idx_name = document.forms['index_frm'].elements['index'];
+ var the_idx_type = document.forms['index_frm'].elements['index_type'];
+
+ // Index is a primary key
+ if (the_idx_type.options[0].value == 'PRIMARY' && the_idx_type.options[0].selected) {
+ document.forms['index_frm'].elements['index'].value = 'PRIMARY';
+ if (typeof(the_idx_name.disabled) != 'undefined') {
+ document.forms['index_frm'].elements['index'].disabled = true;
+ }
+ }
+
+ // Other cases
+ else {
+ if (the_idx_name.value == 'PRIMARY') {
+ document.forms['index_frm'].elements['index'].value = '';
+ }
+ if (typeof(the_idx_name.disabled) != 'undefined') {
+ document.forms['index_frm'].elements['index'].disabled = false;
+ }
+ }
+
+ return true;
+} // end of the 'checkIndexName()' function
+
+
+onload = checkIndexName;
diff --git a/js/keyhandler.js b/js/keyhandler.js
new file mode 100644
index 0000000000..f92c7fb340
--- /dev/null
+++ b/js/keyhandler.js
@@ -0,0 +1,59 @@
+/**
+ * Allows moving around inputs/select by Ctrl+arrows
+ *
+ * @param object event data
+ */
+function onKeyDownArrowsHandler(e) {
+ e = e||window.event;
+ var o = (e.srcElement||e.target);
+ if (!o) return;
+ if (o.tagName != "TEXTAREA" && o.tagName != "INPUT" && o.tagName != "SELECT") return;
+ if (navigator.userAgent.toLowerCase().indexOf('applewebkit/') != -1) {
+ if (e.ctrlKey || e.shiftKey || !e.altKey) return;
+ } else {
+ if (!e.ctrlKey || e.shiftKey || e.altKey) return;
+ }
+ if (!o.id) return;
+
+ var pos = o.id.split("_");
+ if (pos[0] != "field" || typeof pos[2] == "undefined") return;
+
+ var x = pos[2], y=pos[1];
+
+ // skip non existent fields
+ for (i=0; i<10; i++)
+ {
+ if (switch_movement) {
+ switch(e.keyCode) {
+ case 38: x--; break; // up
+ case 40: x++; break; // down
+ case 37: y--; break; // left
+ case 39: y++; break; // right
+ default: return;
+ }
+ } else {
+ switch(e.keyCode) {
+ case 38: y--; break; // up
+ case 40: y++; break; // down
+ case 37: x--; break; // left
+ case 39: x++; break; // right
+ default: return;
+ }
+ }
+
+ var id = "field_" + y + "_" + x;
+ var nO = document.getElementById(id);
+ if (!nO) {
+ var id = "field_" + y + "_" + x + "_0";
+ var nO = document.getElementById(id);
+ }
+ if (nO) break;
+ }
+
+ if (!nO) return;
+ nO.focus();
+ if (nO.tagName != 'SELECT') {
+ nO.select();
+ }
+ e.returnValue = false;
+}
diff --git a/js/mooRainbow/images/blank.gif b/js/mooRainbow/images/blank.gif
new file mode 100644
index 0000000000..c9c195fd4c
--- /dev/null
+++ b/js/mooRainbow/images/blank.gif
Binary files differ
diff --git a/js/mooRainbow/images/moor_arrows.gif b/js/mooRainbow/images/moor_arrows.gif
new file mode 100644
index 0000000000..c57addcf58
--- /dev/null
+++ b/js/mooRainbow/images/moor_arrows.gif
Binary files differ
diff --git a/js/mooRainbow/images/moor_boverlay.png b/js/mooRainbow/images/moor_boverlay.png
new file mode 100644
index 0000000000..7ac228b07e
--- /dev/null
+++ b/js/mooRainbow/images/moor_boverlay.png
Binary files differ
diff --git a/js/mooRainbow/images/moor_cursor.gif b/js/mooRainbow/images/moor_cursor.gif
new file mode 100644
index 0000000000..9515a38e5f
--- /dev/null
+++ b/js/mooRainbow/images/moor_cursor.gif
Binary files differ
diff --git a/js/mooRainbow/images/moor_slider.png b/js/mooRainbow/images/moor_slider.png
new file mode 100644
index 0000000000..9f4c47bf6b
--- /dev/null
+++ b/js/mooRainbow/images/moor_slider.png
Binary files differ
diff --git a/js/mooRainbow/images/moor_woverlay.png b/js/mooRainbow/images/moor_woverlay.png
new file mode 100644
index 0000000000..c3f3e96ea6
--- /dev/null
+++ b/js/mooRainbow/images/moor_woverlay.png
Binary files differ
diff --git a/js/mooRainbow/images/rainbow.png b/js/mooRainbow/images/rainbow.png
new file mode 100644
index 0000000000..a62ec90496
--- /dev/null
+++ b/js/mooRainbow/images/rainbow.png
Binary files differ
diff --git a/js/mooRainbow/mooRainbow.css b/js/mooRainbow/mooRainbow.css
new file mode 100644
index 0000000000..764664e1e5
--- /dev/null
+++ b/js/mooRainbow/mooRainbow.css
@@ -0,0 +1,114 @@
+/***
+ * - mooRainbow: defaultCSS
+ * author: w00fz <w00fzIT@gmail.com>
+ */
+
+#mooRainbow { font-size: 11px; color: #000; }
+
+.moor-box {
+ width: 390px;
+ height: 310px;
+ border: 1px solid #636163;
+ background-color: #f9f9f9;
+}
+.moor-overlayBox {
+ width: 256px; /* Width and Height of the overlay must be setted here: default 256x256 */
+ height: 256px;
+ margin-top: 9px;
+ margin-left: 9px;
+ border: 1px solid #000;
+}
+.moor-slider {
+ border: 1px solid #000;
+ margin-top: 9px;
+ margin-left: 280px;
+ width: 19px; /* if you want a bigger or smaller slider... */
+ height: 256px;
+}
+.moor-colorBox {
+ border: 1px solid #000;
+ width: 59px;
+ height: 68px;
+ margin-top: 20px;
+ margin-left: 315px;
+}
+.moor-currentColor { /* Bottom Box Color, the backup one */
+ margin-top: 55px;
+ margin-left: 316px;
+ width: 59px;
+ height: 34px;
+}
+.moor-okButton {
+ font-family: Tahoma;
+ font-weight: bold;
+ font-size: 11px;
+ margin-top: 278px;
+ margin-left: 8px;
+ background: #e6e6e6;
+ height: 23px;
+ border: 1px solid #d6d6d6;
+ border-left-color: #f5f5f5;
+ border-top-color: #f5f5f5;
+}
+#mooRainbow label {
+ font-family: mono;
+}
+/* Following are just <label> */
+.moor-rLabel {
+ margin-top: 100px;
+ margin-left: 315px;
+}
+.moor-gLabel {
+ margin-top: 125px;
+ margin-left: 315px;
+}
+.moor-bLabel {
+ margin-top: 150px;
+ margin-left: 315px;
+}
+.moor-HueLabel {
+ margin-top: 190px;
+ margin-left: 315px;
+}
+span.moor-ballino { /* Style hue (degree) !! */
+ margin-top: 190px;
+ margin-left: 370px;
+}
+.moor-SatuLabel {
+ margin-top: 215px;
+ margin-left: 315px;
+}
+.moor-BrighLabel {
+ margin-top: 240px;
+ margin-left: 315px;
+}
+.moor-hexLabel {
+ margin-top: 275px;
+ margin-left: 280px;
+}
+
+/* <input> */
+.moor-rInput, .moor-gInput, .moor-bInput, .moor-HueInput, .moor-SatuInput, .moor-BrighInput {
+ width: 30px;
+}
+.moor-hexInput {
+ width: 55px;
+}
+.moor-cursor {
+ background-image: url(images/moor_cursor.gif);
+ width: 12px;
+ height: 12px;
+}
+.moor-arrows {
+ background-image: url(images/moor_arrows.gif);
+ top: 9px;
+ left: 270px;
+ width: 41px;
+ height: 9px;
+}
+.moor-chooseColor { /* Top Box Color, the choosen one */
+ margin-top: 21px;
+ margin-left: 316px;
+ width: 59px;
+ height: 34px;
+} \ No newline at end of file
diff --git a/js/mooRainbow/mooRainbow.js b/js/mooRainbow/mooRainbow.js
new file mode 100644
index 0000000000..c355a73f5f
--- /dev/null
+++ b/js/mooRainbow/mooRainbow.js
@@ -0,0 +1,563 @@
+/***
+ * MooRainbow
+ *
+ * @version 1.2b1
+ * @license MIT-style license
+ * @author Djamil Legato (w00fz) - < w00fzIT [at] gmail.com >
+ * @infos http://moorainbow.woolly-sheep.net
+ * @copyright Author
+ *
+ * includes a fix for mootools 1.2 by Piotr Przybylski
+ */
+
+var MooRainbow = new Class({
+ Implements: [Options, Events],
+ options: {
+ id: 'mooRainbow',
+ prefix: 'moor-',
+ imgPath: 'images/',
+ startColor: [255, 0, 0],
+ wheel: false,
+ onComplete: Class.empty,
+ onChange: Class.empty,
+ selectText: 'Select'
+ },
+
+ initialize: function(el, options) {
+ this.element = $(el); if (!this.element) return;
+ this.setOptions(options);
+
+ this.sliderPos = 0;
+ this.pickerPos = {x: 0, y: 0};
+ this.backupColor = this.options.startColor;
+ this.currentColor = this.options.startColor;
+ this.sets = {
+ rgb: [],
+ hsb: [],
+ hex: []
+ };
+ this.pickerClick = this.sliderClick = false;
+ if (!this.layout) this.doLayout();
+ this.OverlayEvents();
+ this.sliderEvents();
+ this.backupEvent();
+ if (this.options.wheel) this.wheelEvents();
+ this.element.addEvent('click', function(e) { this.toggle(e); }.bind(this));
+
+ this.layout.overlay.setStyle('background-color', this.options.startColor.rgbToHex());
+ this.layout.backup.setStyle('background-color', this.backupColor.rgbToHex());
+
+ this.pickerPos.x = this.snippet('curPos').l + this.snippet('curSize', 'int').w;
+ this.pickerPos.y = this.snippet('curPos').t + this.snippet('curSize', 'int').h;
+
+ this.manualSet(this.options.startColor);
+
+ this.pickerPos.x = this.snippet('curPos').l + this.snippet('curSize', 'int').w;
+ this.pickerPos.y = this.snippet('curPos').t + this.snippet('curSize', 'int').h;
+ this.sliderPos = this.snippet('arrPos') - this.snippet('arrSize', 'int');
+
+ if (Browser.Engine.webkit) this.hide();
+ },
+
+ toggle: function() {
+ this[this.visible ? 'hide' : 'show']()
+ },
+
+ show: function() {
+ this.rePosition();
+ this.layout.setStyle('display', 'block');
+ this.visible = true;
+ },
+
+ hide: function() {
+ this.layout.setStyles({'display': 'none'});
+ this.visible = false;
+ },
+
+ manualSet: function(color, type) {
+ if (!type || (type != 'hsb' && type != 'hex')) type = 'rgb';
+ var rgb, hsb, hex;
+
+ if (type == 'rgb') { rgb = color; hsb = color.rgbToHsb(); hex = color.rgbToHex(); }
+ else if (type == 'hsb') { hsb = color; rgb = color.hsbToRgb(); hex = rgb.rgbToHex(); }
+ else { hex = color; rgb = color.hexToRgb(true); hsb = rgb.rgbToHsb(); }
+
+ this.setMooRainbow(rgb);
+ this.autoSet(hsb);
+ },
+
+ autoSet: function(hsb) {
+ var curH = this.snippet('curSize', 'int').h;
+ var curW = this.snippet('curSize', 'int').w;
+ var oveH = this.layout.overlay.height;
+ var oveW = this.layout.overlay.width;
+ var sliH = this.layout.slider.height;
+ var arwH = this.snippet('arrSize', 'int');
+ var hue;
+
+ var posx = Math.round(((oveW * hsb[1]) / 100) - curW);
+ var posy = Math.round(- ((oveH * hsb[2]) / 100) + oveH - curH);
+
+ var c = Math.round(((sliH * hsb[0]) / 360)); c = (c == 360) ? 0 : c;
+ var position = sliH - c + this.snippet('slider') - arwH;
+ hue = [this.sets.hsb[0], 100, 100].hsbToRgb().rgbToHex();
+
+ this.layout.cursor.setStyles({'top': posy, 'left': posx});
+ this.layout.arrows.setStyle('top', position);
+ this.layout.overlay.setStyle('background-color', hue);
+ this.sliderPos = this.snippet('arrPos') - arwH;
+ this.pickerPos.x = this.snippet('curPos').l + curW;
+ this.pickerPos.y = this.snippet('curPos').t + curH;
+ },
+
+ setMooRainbow: function(color, type) {
+ if (!type || (type != 'hsb' && type != 'hex')) type = 'rgb';
+ var rgb, hsb, hex;
+
+ if (type == 'rgb') { rgb = color; hsb = color.rgbToHsb(); hex = color.rgbToHex(); }
+ else if (type == 'hsb') { hsb = color; rgb = color.hsbToRgb(); hex = rgb.rgbToHex(); }
+ else { hex = color; rgb = color.hexToRgb(); hsb = rgb.rgbToHsb(); }
+
+ this.sets = {
+ rgb: rgb,
+ hsb: hsb,
+ hex: hex
+ };
+
+ if (!$chk(this.pickerPos.x))
+ this.autoSet(hsb);
+
+ this.RedInput.value = rgb[0];
+ this.GreenInput.value = rgb[1];
+ this.BlueInput.value = rgb[2];
+ this.HueInput.value = hsb[0];
+ this.SatuInput.value = hsb[1];
+ this.BrighInput.value = hsb[2];
+ this.hexInput.value = hex;
+
+ this.currentColor = rgb;
+
+ this.chooseColor.setStyle('background-color', rgb.rgbToHex());
+ },
+
+ parseColors: function(x, y, z) {
+ var s = Math.round((x * 100) / this.layout.overlay.width);
+ var b = 100 - Math.round((y * 100) / this.layout.overlay.height);
+ var h = 360 - Math.round((z * 360) / this.layout.slider.height) + this.snippet('slider') - this.snippet('arrSize', 'int');
+ h -= this.snippet('arrSize', 'int');
+ h = (h >= 360) ? 0 : (h < 0) ? 0 : h;
+ s = (s > 100) ? 100 : (s < 0) ? 0 : s;
+ b = (b > 100) ? 100 : (b < 0) ? 0 : b;
+
+ return [h, s, b];
+ },
+
+ OverlayEvents: function() {
+ var lim, curH, curW, inputs;
+ curH = this.snippet('curSize', 'int').h;
+ curW = this.snippet('curSize', 'int').w;
+ inputs = $A(this.arrRGB).concat(this.arrHSB, this.hexInput);
+
+ document.addEvent('click', function() {
+ if(this.visible) this.hide(this.layout);
+ }.bind(this));
+
+ inputs.each(function(el) {
+ if(el) {
+ el.addEvent('keydown', this.eventKeydown.bindWithEvent(this, el));
+ el.addEvent('keyup', this.eventKeyup.bindWithEvent(this, el));
+ }
+ }, this);
+ [this.element, this.layout].each(function(el) {
+ el.addEvents({
+ 'click': function(e) { new Event(e).stop();},
+ 'keyup': function(e) {
+ e = new Event(e);
+ if(e.key == 'esc' && this.visible) this.hide(this.layout);
+ }.bind(this)
+ }, this);
+ }, this);
+
+ lim = {
+ x: [0 - curW, (this.layout.overlay.width - curW)],
+ y: [0 - curH, (this.layout.overlay.height - curH)]
+ };
+
+ this.layout.drag = new Drag(this.layout.cursor, {
+ limit: lim,
+ onStart: this.overlayDrag.bind(this),
+ onDrag: this.overlayDrag.bind(this),
+ snap: 0
+ });
+
+ this.layout.overlay2.addEvent('mousedown', function(e){
+ e = new Event(e);
+ this.layout.cursor.setStyles({
+ 'top': e.page.y - this.layout.overlay.getPosition().y - curH,
+ 'left': e.page.x - this.layout.overlay.getPosition().x - curW
+ });
+ this.overlayDrag();
+ this.layout.drag.start(e);
+ }.bind(this));
+
+ this.okButton.addEvent('click', function() {
+ if(this.currentColor == this.options.startColor) {
+ this.hide();
+ this.fireEvent('onComplete', [this.sets, this]);
+ }
+ else {
+ this.backupColor = this.currentColor;
+ this.layout.backup.setStyle('background-color', this.backupColor.rgbToHex());
+ this.hide();
+ this.fireEvent('onComplete', [this.sets, this]);
+ }
+ }.bind(this));
+ },
+
+ overlayDrag: function() {
+ var curH = this.snippet('curSize', 'int').h;
+ var curW = this.snippet('curSize', 'int').w;
+ this.pickerPos.x = this.snippet('curPos').l + curW;
+ this.pickerPos.y = this.snippet('curPos').t + curH;
+
+ this.setMooRainbow(this.parseColors(this.pickerPos.x, this.pickerPos.y, this.sliderPos), 'hsb');
+ this.fireEvent('onChange', [this.sets, this]);
+ },
+
+ sliderEvents: function() {
+ var arwH = this.snippet('arrSize', 'int'), lim;
+
+ lim = [0 + this.snippet('slider') - arwH, this.layout.slider.height - arwH + this.snippet('slider')];
+ this.layout.sliderDrag = new Drag(this.layout.arrows, {
+ limit: {y: lim},
+ modifiers: {x: false},
+ onStart: this.sliderDrag.bind(this),
+ onDrag: this.sliderDrag.bind(this),
+ snap: 0
+ });
+
+ this.layout.slider.addEvent('mousedown', function(e){
+ e = new Event(e);
+
+ this.layout.arrows.setStyle(
+ 'top', e.page.y - this.layout.slider.getPosition().y + this.snippet('slider') - arwH
+ );
+ this.sliderDrag();
+ this.layout.sliderDrag.start(e);
+ }.bind(this));
+ },
+
+ sliderDrag: function() {
+ var arwH = this.snippet('arrSize', 'int'), hue;
+
+ this.sliderPos = this.snippet('arrPos') - arwH;
+ this.setMooRainbow(this.parseColors(this.pickerPos.x, this.pickerPos.y, this.sliderPos), 'hsb');
+ hue = [this.sets.hsb[0], 100, 100].hsbToRgb().rgbToHex();
+ this.layout.overlay.setStyle('background-color', hue);
+ this.fireEvent('onChange', [this.sets, this]);
+ },
+
+ backupEvent: function() {
+ this.layout.backup.addEvent('click', function() {
+ this.manualSet(this.backupColor);
+ this.fireEvent('onChange', [this.sets, this]);
+ }.bind(this));
+ },
+
+ wheelEvents: function() {
+ var arrColors = $A(this.arrRGB).extend(this.arrHSB);
+
+ arrColors.each(function(el) {
+ el.addEvents({
+ 'mousewheel': this.eventKeys.bindWithEvent(this, el),
+ 'keydown': this.eventKeys.bindWithEvent(this, el)
+ });
+ }, this);
+
+ [this.layout.arrows, this.layout.slider].each(function(el) {
+ el.addEvents({
+ 'mousewheel': this.eventKeys.bindWithEvent(this, [this.arrHSB[0], 'slider']),
+ 'keydown': this.eventKeys.bindWithEvent(this, [this.arrHSB[0], 'slider'])
+ });
+ }, this);
+ },
+
+ eventKeys: function(e, el, id) {
+ var wheel, type;
+ id = (!id) ? el.id : this.arrHSB[0];
+
+ if (e.type == 'keydown') {
+ if (e.key == 'up') wheel = 1;
+ else if (e.key == 'down') wheel = -1;
+ else return;
+ } else if (e.type == Element.Events.mousewheel.base) wheel = (e.wheel > 0) ? 1 : -1;
+
+ if (this.arrRGB.contains(el)) type = 'rgb';
+ else if (this.arrHSB.contains(el)) type = 'hsb';
+ else type = 'hsb';
+
+ if (type == 'rgb') {
+ var rgb = this.sets.rgb, hsb = this.sets.hsb, prefix = this.options.prefix, pass;
+ var value = (el.value.toInt() || 0) + wheel;
+ value = (value > 255) ? 255 : (value < 0) ? 0 : value;
+
+ switch(el.className) {
+ case prefix + 'rInput': pass = [value, rgb[1], rgb[2]]; break;
+ case prefix + 'gInput': pass = [rgb[0], value, rgb[2]]; break;
+ case prefix + 'bInput': pass = [rgb[0], rgb[1], value]; break;
+ default : pass = rgb;
+ }
+ this.manualSet(pass);
+ this.fireEvent('onChange', [this.sets, this]);
+ } else {
+ var rgb = this.sets.rgb, hsb = this.sets.hsb, prefix = this.options.prefix, pass;
+ var value = (el.value.toInt() || 0) + wheel;
+
+ if (el.className.test(/(HueInput)/)) value = (value > 359) ? 0 : (value < 0) ? 0 : value;
+ else value = (value > 100) ? 100 : (value < 0) ? 0 : value;
+
+ switch(el.className) {
+ case prefix + 'HueInput': pass = [value, hsb[1], hsb[2]]; break;
+ case prefix + 'SatuInput': pass = [hsb[0], value, hsb[2]]; break;
+ case prefix + 'BrighInput': pass = [hsb[0], hsb[1], value]; break;
+ default : pass = hsb;
+ }
+
+ this.manualSet(pass, 'hsb');
+ this.fireEvent('onChange', [this.sets, this]);
+ }
+ e.stop();
+ },
+
+ eventKeydown: function(e, el) {
+ var n = e.code, k = e.key;
+
+ if ((!el.className.test(/hexInput/) && !(n >= 48 && n <= 57)) &&
+ (k!='backspace' && k!='tab' && k !='delete' && k!='left' && k!='right'))
+ e.stop();
+ },
+
+ eventKeyup: function(e, el) {
+ var n = e.code, k = e.key, pass, prefix, chr = el.value.charAt(0);
+
+ if (!$chk(el.value)) return;
+ if (el.className.test(/hexInput/)) {
+ if (chr != "#" && el.value.length != 6) return;
+ if (chr == '#' && el.value.length != 7) return;
+ } else {
+ if (!(n >= 48 && n <= 57) && (!['backspace', 'tab', 'delete', 'left', 'right'].contains(k)) && el.value.length > 3) return;
+ }
+
+ prefix = this.options.prefix;
+
+ if (el.className.test(/(rInput|gInput|bInput)/)) {
+ if (el.value < 0 || el.value > 255) return;
+ switch(el.className){
+ case prefix + 'rInput': pass = [el.value, this.sets.rgb[1], this.sets.rgb[2]]; break;
+ case prefix + 'gInput': pass = [this.sets.rgb[0], el.value, this.sets.rgb[2]]; break;
+ case prefix + 'bInput': pass = [this.sets.rgb[0], this.sets.rgb[1], el.value]; break;
+ default : pass = this.sets.rgb;
+ }
+ this.manualSet(pass);
+ this.fireEvent('onChange', [this.sets, this]);
+ }
+ else if (!el.className.test(/hexInput/)) {
+ if (el.className.test(/HueInput/) && el.value < 0 || el.value > 360) return;
+ else if (el.className.test(/HueInput/) && el.value == 360) el.value = 0;
+ else if (el.className.test(/(SatuInput|BrighInput)/) && el.value < 0 || el.value > 100) return;
+ switch(el.className){
+ case prefix + 'HueInput': pass = [el.value, this.sets.hsb[1], this.sets.hsb[2]]; break;
+ case prefix + 'SatuInput': pass = [this.sets.hsb[0], el.value, this.sets.hsb[2]]; break;
+ case prefix + 'BrighInput': pass = [this.sets.hsb[0], this.sets.hsb[1], el.value]; break;
+ default : pass = this.sets.hsb;
+ }
+ this.manualSet(pass, 'hsb');
+ this.fireEvent('onChange', [this.sets, this]);
+ } else {
+ pass = el.value.hexToRgb(true);
+ if (isNaN(pass[0])||isNaN(pass[1])||isNaN(pass[2])) return;
+
+ if ($chk(pass)) {
+ this.manualSet(pass);
+ this.fireEvent('onChange', [this.sets, this]);
+ }
+ }
+
+ },
+
+ doLayout: function() {
+ var id = this.options.id, prefix = this.options.prefix;
+ var idPrefix = id + ' .' + prefix;
+
+ this.layout = new Element('div', {
+ 'styles': {'display': 'block', 'position': 'absolute'},
+ 'id': id
+ }).inject(document.body);
+
+ var box = new Element('div', {
+ 'styles': {'position': 'relative'},
+ 'class': prefix + 'box'
+ }).inject(this.layout);
+
+ var div = new Element('div', {
+ 'styles': {'position': 'absolute', 'overflow': 'hidden'},
+ 'class': prefix + 'overlayBox'
+ }).inject(box);
+
+ var ar = new Element('div', {
+ 'styles': {'position': 'absolute', 'zIndex': 1},
+ 'class': prefix + 'arrows'
+ }).inject(box);
+ ar.width = ar.getStyle('width').toInt();
+ ar.height = ar.getStyle('height').toInt();
+
+ var ov = new Element('img', {
+ 'styles': {'background-color': '#fff', 'position': 'relative', 'zIndex': 2},
+ 'src': this.options.imgPath + 'moor_woverlay.png',
+ 'class': prefix + 'overlay'
+ }).inject(div);
+
+ var ov2 = new Element('img', {
+ 'styles': {'position': 'absolute', 'top': 0, 'left': 0, 'zIndex': 2},
+ 'src': this.options.imgPath + 'moor_boverlay.png',
+ 'class': prefix + 'overlay'
+ }).inject(div);
+
+ if (Browser.Engine.trident4) {
+ div.setStyle('overflow', '');
+ var src = ov.src;
+ ov.src = this.options.imgPath + 'blank.gif';
+ ov.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
+ src = ov2.src;
+ ov2.src = this.options.imgPath + 'blank.gif';
+ ov2.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
+ }
+ ov.width = ov2.width = div.getStyle('width').toInt();
+ ov.height = ov2.height = div.getStyle('height').toInt();
+
+ var cr = new Element('div', {
+ 'styles': {'overflow': 'hidden', 'position': 'absolute', 'zIndex': 2},
+ 'class': prefix + 'cursor'
+ }).inject(div);
+ cr.width = cr.getStyle('width').toInt();
+ cr.height = cr.getStyle('height').toInt();
+
+ var sl = new Element('img', {
+ 'styles': {'position': 'absolute', 'z-index': 2},
+ 'src': this.options.imgPath + 'moor_slider.png',
+ 'class': prefix + 'slider'
+ }).inject(box);
+ this.layout.slider = sl;
+ sl.width = sl.getStyle('width').toInt();
+ sl.height = sl.getStyle('height').toInt();
+
+ new Element('div', {
+ 'styles': {'position': 'absolute'},
+ 'class': prefix + 'colorBox'
+ }).inject(box);
+
+ new Element('div', {
+ 'styles': {'zIndex': 2, 'position': 'absolute'},
+ 'class': prefix + 'chooseColor'
+ }).inject(box);
+
+ this.layout.backup = new Element('div', {
+ 'styles': {'zIndex': 2, 'position': 'absolute', 'cursor': 'pointer'},
+ 'class': prefix + 'currentColor'
+ }).inject(box);
+
+ var R = new Element('label').inject(box).setStyle('position', 'absolute');
+ var G = R.clone().inject(box).addClass(prefix + 'gLabel').set('html', 'G: ');
+ var B = R.clone().inject(box).addClass(prefix + 'bLabel').set('html', 'B: ');
+ R.set('html', 'R: ').addClass(prefix + 'rLabel');
+
+ var inputR = new Element('input');
+ var inputG = inputR.clone().inject(G).addClass(prefix + 'gInput');
+ var inputB = inputR.clone().inject(B).addClass(prefix + 'bInput');
+ inputR.inject(R).addClass(prefix + 'rInput');
+
+ var HU = new Element('label').inject(box).setStyle('position', 'absolute');
+ var SA = HU.clone().inject(box).addClass(prefix + 'SatuLabel').set('html', 'S: ');
+ var BR = HU.clone().inject(box).addClass(prefix + 'BrighLabel').set('html', 'B: ');
+ HU.set('html', 'H: ').addClass(prefix + 'HueLabel');
+
+ var inputHU = new Element('input');
+ var inputSA = inputHU.clone().inject(SA).addClass(prefix + 'SatuInput');
+ var inputBR = inputHU.clone().inject(BR).addClass(prefix + 'BrighInput');
+ inputHU.inject(HU).addClass(prefix + 'HueInput');
+ SA.innerHTML += " %"; BR.innerHTML += " %";
+ SP = new Element('span', {'styles': {'position': 'absolute'}, 'class': prefix + 'ballino'})
+ SP.innerHTML = " &deg;"
+ SP.inject(HU,'after');
+
+ var hex = new Element('label').inject(box).setStyle('position', 'absolute').addClass(prefix + 'hexLabel').set('html', '#hex: ').adopt(new Element('input').addClass(prefix + 'hexInput'));
+
+ var ok = new Element('input', {
+ 'styles': {'position': 'absolute'},
+ 'type': 'button',
+ 'value': this.options.selectText,
+ 'class': prefix + 'okButton'
+ }).inject(box);
+
+ this.rePosition();
+
+ var overlays = $$('#' + id + ' .' + prefix + 'overlay');
+ this.layout.overlay = overlays[0];
+ this.layout.overlay2 = overlays[1];
+ this.layout.cursor = cr;
+ this.layout.arrows = ar;
+ this.chooseColor = this.layout.getElement('.' + prefix + 'chooseColor');
+ this.RedInput = inputR;
+ this.GreenInput = inputG;
+ this.BlueInput = inputB;
+ this.HueInput = inputHU;
+ this.SatuInput = this.layout.getElement('.' + prefix + 'SatuInput');
+ this.BrighInput = this.layout.getElement('.' + prefix + 'BrighInput');
+ this.hexInput = this.layout.getElement('.' + prefix + 'hexInput');;
+
+ this.arrRGB = [this.RedInput, this.GreenInput, this.BlueInput];
+ this.arrHSB = [this.HueInput, this.SatuInput, this.BrighInput];
+ this.okButton = ok;
+
+ if (!Browser.Engine.webkit419) this.hide();
+ },
+ rePosition: function() {
+ var coords = this.element.getCoordinates();
+ this.layout.setStyles({
+ 'left': coords.left,
+ 'top': coords.top + coords.height + 1
+ });
+ },
+
+ snippet: function(mode, type) {
+ var size; type = (type) ? type : 'none';
+
+ switch(mode) {
+ case 'arrPos':
+ var t = this.layout.arrows.getStyle('top').toInt();
+ size = t;
+ break;
+ case 'arrSize':
+ var h = this.layout.arrows.height;
+ h = (type == 'int') ? (h/2).toInt() : h;
+ size = h;
+ break;
+ case 'curPos':
+ var l = this.layout.cursor.getStyle('left').toInt();
+ var t = this.layout.cursor.getStyle('top').toInt();
+ size = {'l': l, 't': t};
+ break;
+ case 'slider':
+ var t = this.layout.slider.getStyle('marginTop').toInt();
+ size = t;
+ break;
+ default :
+ var h = this.layout.cursor.height;
+ var w = this.layout.cursor.width;
+ h = (type == 'int') ? (h/2).toInt() : h;
+ w = (type == 'int') ? (w/2).toInt() : w;
+ size = {w: w, h: h};
+ };
+ return size;
+ }
+});
diff --git a/js/mootools-domready-rainbow.js b/js/mootools-domready-rainbow.js
new file mode 100644
index 0000000000..40041dfe45
--- /dev/null
+++ b/js/mootools-domready-rainbow.js
@@ -0,0 +1,16 @@
+window.addEvent('domready', function() {
+ var r = new MooRainbow('myRainbow', {
+ 'startColor': [58, 142, 246],
+ 'imgPath': 'js/mooRainbow/images/',
+ 'onChange': function(color) {
+ top.frame_navigation.document.getElementById('body_leftFrame').style.backgroundColor = color.hex;
+ top.frame_navigation.document.getElementById('pmalogo').style.backgroundColor = color.hex;
+ top.frame_content.document.body.style.backgroundColor = color.hex;
+ },
+ 'onComplete': function(color) {
+ top.frame_content.document.getElementById('rainbowform').custom_color.value = color.hex;
+ top.frame_content.document.getElementById('rainbowform').custom_color_rgb.value = color.rgb;
+ top.frame_content.document.getElementById('rainbowform').submit();
+ }
+ });
+});
diff --git a/js/mootools.js b/js/mootools.js
new file mode 100644
index 0000000000..55abf460b9
--- /dev/null
+++ b/js/mootools.js
@@ -0,0 +1,496 @@
+//MooTools, <http://mootools.net>, My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
+
+var MooTools={version:"1.2.0",build:""};var Native=function(J){J=J||{};var F=J.afterImplement||function(){};var G=J.generics;G=(G!==false);var H=J.legacy;
+var E=J.initialize;var B=J.protect;var A=J.name;var C=E||H;C.constructor=Native;C.$family={name:"native"};if(H&&E){C.prototype=H.prototype;}C.prototype.constructor=C;
+if(A){var D=A.toLowerCase();C.prototype.$family={name:D};Native.typize(C,D);}var I=function(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=N;}if(G){Native.genericize(M,K,B);
+}F.call(M,K,N);return M;};C.implement=function(L,K,N){if(typeof L=="string"){return I(this,L,K,N);}for(var M in L){I(this,M,L[M],K);}return this;};C.alias=function(M,K,N){if(typeof M=="string"){M=this.prototype[M];
+if(M){I(this,K,M,N);}}else{for(var L in M){this.alias(L,M[L],K);}}return this;};return C;};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C);
+}};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);return B.prototype[C].apply(D.shift(),D);
+};}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B);};}};Native.alias=function(E,B,A,F){for(var D=0,C=E.length;D<C;D++){E[D].alias(B,A,F);
+}};(function(B){for(var A in B){Native.typize(B[A],A);}})({"boolean":Boolean,"native":Native,object:Object});(function(B){for(var A in B){new Native({name:A,initialize:B[A],protect:true});
+}})({String:String,Function:Function,Number:Number,Array:Array,RegExp:RegExp,Date:Date});(function(B,A){for(var C=A.length;C--;C){Native.genericize(B,A[C],true);
+}return arguments.callee;})(Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","toString","valueOf","indexOf","lastIndexOf"])(String,["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]);
+function $chk(A){return !!(A||A===0);}function $clear(A){clearTimeout(A);clearInterval(A);return null;}function $defined(A){return(A!=undefined);}function $empty(){}function $arguments(A){return function(){return arguments[A];
+};}function $lambda(A){return(typeof A=="function")?A:function(){return A;};}function $extend(C,A){for(var B in (A||{})){C[B]=A[B];}return C;}function $unlink(C){var B;
+switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E]);}break;case"hash":B=$unlink(C.getClean());break;case"array":B=[];for(var D=0,A=C.length;
+D<A;D++){B[D]=$unlink(C[D]);}break;default:return C;}return B;}function $merge(){var E={};for(var D=0,A=arguments.length;D<A;D++){var B=arguments[D];if($type(B)!="object"){continue;
+}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G);}}return E;}function $pick(){for(var B=0,A=arguments.length;
+B<A;B++){if(arguments[B]!=undefined){return arguments[B];}}return null;}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B);}function $splat(B){var A=$type(B);
+return(A)?((A!="array"&&A!="arguments")?[B]:B):[];}var $time=Date.now||function(){return new Date().getTime();};function $try(){for(var B=0,A=arguments.length;
+B<A;B++){try{return arguments[B]();}catch(C){}}return null;}function $type(A){if(A==undefined){return false;}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name;
+}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace";}}else{if(typeof A.length=="number"){if(A.callee){return"arguments";
+}else{if(A.item){return"collection";}}}}return typeof A;}var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean());
+}for(var B in A){this[B]=A[B];}return this;}});Hash.implement({getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++;}}return B;
+},forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this);}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A];
+}}return B;}});Hash.alias("forEach","each");function $H(A){return new Hash(A);}Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this);
+}}});Array.alias("forEach","each");function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B];}return D;}return Array.prototype.slice.call(C);
+}function $each(C,B,D){var A=$type(C);((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D);}var Browser=new Hash({Engine:{name:"unknown",version:""},Platform:{name:(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime)},Plugins:{}});
+if(window.opera){Browser.Engine={name:"presto",version:(document.getElementsByClassName)?950:925};}else{if(window.ActiveXObject){Browser.Engine={name:"trident",version:(window.XMLHttpRequest)?5:4};
+}else{if(!navigator.taintEnabled){Browser.Engine={name:"webkit",version:(Browser.Features.xpath)?420:419};}else{if(document.getBoxObjectFor!=null){Browser.Engine={name:"gecko",version:(document.getElementsByClassName)?19:18};
+}}}}Browser.Engine[Browser.Engine.name]=Browser.Engine[Browser.Engine.name+Browser.Engine.version]=true;if(window.orientation!=undefined){Browser.Platform.name="ipod";
+}Browser.Platform[Browser.Platform.name]=true;Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("MSXML2.XMLHTTP");
+});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var A=($try(function(){return navigator.plugins["Shockwave Flash"].description;
+},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");})||"0 r0").match(/\d+/g);return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)};
+})();function $exec(B){if(!B){return B;}if(window.execScript){window.execScript(B);}else{var A=document.createElement("script");A.setAttribute("type","text/javascript");
+A.text=B;document.head.appendChild(A);document.head.removeChild(A);}return B;}Native.UID=1;var $uid=(Browser.Engine.trident)?function(A){return(A.uid||(A.uid=[Native.UID++]))[0];
+}:function(A){return A.uid||(A.uid=Native.UID++);};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(A){$uid(A);
+if(!A.Element){A.Element=$empty;if(Browser.Engine.webkit){A.document.createElement("iframe");}A.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};
+}return $extend(A,Window.Prototype);},afterImplement:function(B,A){window[B]=Window.Prototype[B]=A;}});Window.Prototype={$family:{name:"window"}};new Window(window);
+var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(A){$uid(A);A.head=A.getElementsByTagName("head")[0];
+A.html=A.getElementsByTagName("html")[0];A.window=A.defaultView||A.parentWindow;if(Browser.Engine.trident4){$try(function(){A.execCommand("BackgroundImageCache",false,true);
+});}return $extend(A,Document.Prototype);},afterImplement:function(B,A){document[B]=Document.Prototype[B]=A;}});Document.Prototype={$family:{name:"document"}};
+new Document(document);Array.implement({every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false;}}return true;
+},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B]);}}return C;},clean:function(){return this.filter($defined);
+},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B;}}return -1;},map:function(D,E){var C=[];
+for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this);}return C;},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true;
+}}return false;},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A];}return D;},link:function(C){var A={};
+for(var E=0,B=this.length;E<B;E++){for(var D in C){if(C[D](this[E])){A[D]=this[E];delete C[D];break;}}}return A;},contains:function(A,B){return this.indexOf(A,B)!=-1;
+},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;
+},include:function(A){if(!this.contains(A)){this.push(A);}return this;},combine:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B]);}return this;
+},erase:function(B){for(var A=this.length;A--;A){if(this[A]===B){this.splice(A,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var D=[];
+for(var B=0,A=this.length;B<A;B++){var C=$type(this[B]);if(!C){continue;}D=D.concat((C=="array"||C=="collection"||C=="arguments")?Array.flatten(this[B]):this[B]);
+}return D;},hexToRgb:function(B){if(this.length!=3){return null;}var A=this.map(function(C){if(C.length==1){C+=C;}return C.toInt(16);});return(B)?A:"rgb("+A+")";
+},rgbToHex:function(D){if(this.length<3){return null;}if(this.length==4&&this[3]==0&&!D){return"transparent";}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);
+B.push((C.length==1)?"0"+C:C);}return(D)?B:"#"+B.join("");}});Function.implement({extend:function(A){for(var B in A){this[B]=A[B];}return this;},create:function(B){var A=this;
+B=B||{};return function(D){var C=B.arguments;C=(C!=undefined)?$splat(C):Array.slice(arguments,(B.event)?1:0);if(B.event){C=[D||window.event].extend(C);
+}var E=function(){return A.apply(B.bind||null,C);};if(B.delay){return setTimeout(E,B.delay);}if(B.periodical){return setInterval(E,B.periodical);}if(B.attempt){return $try(E);
+}return E();};},pass:function(A,B){return this.create({arguments:A,bind:B});},attempt:function(A,B){return this.create({arguments:A,bind:B,attempt:true})();
+},bind:function(B,A){return this.create({bind:B,arguments:A});},bindWithEvent:function(B,A){return this.create({bind:B,event:true,arguments:A});},delay:function(B,C,A){return this.create({delay:B,bind:C,arguments:A})();
+},periodical:function(A,C,B){return this.create({periodical:A,bind:C,arguments:B})();},run:function(A,B){return this.apply(B,$splat(A));}});Number.implement({limit:function(B,A){return Math.min(A,Math.max(B,this));
+},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A;},times:function(B,C){for(var A=0;A<this;A++){B.call(C,A,this);}},toFloat:function(){return parseFloat(this);
+},toInt:function(A){return parseInt(this,A||10);}});Number.alias("times","each");(function(B){var A={};B.each(function(C){if(!Number[C]){A[C]=function(){return Math[C].apply(null,[this].concat($A(arguments)));
+};}});Number.implement(A);})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(A,B){return((typeof A=="string")?new RegExp(A,B):A).test(this);
+},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim();
+},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase());
+});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");
+},toInt:function(A){return parseInt(this,A||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
+return(A)?A.slice(1).hexToRgb(B):null;},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null;},stripScripts:function(B){var A="";
+var C=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return"";});if(B===true){$exec(A);}else{if($type(B)=="function"){B(A,C);
+}}return C;},substitute:function(A,B){return this.replace(B||(/\\?\{([^}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1);}return(A[C]!=undefined)?A[C]:"";
+});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;}}return null;
+},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C);
+},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null;
+},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;},empty:function(){Hash.each(this,function(B,A){delete this[A];},this);
+return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this));
+},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false;
+}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;}}return false;},getKeys:function(){var A=[];
+Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);});return A;},toQueryString:function(A){var B=[];
+Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H;
+});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});
+var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A;}this.$extended=true;var J=A.type;
+var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode;}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111;
+if(D>0&&D<13){M="f"+D;}}M=M||String.fromCharCode(B).toLowerCase();}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body;
+var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY};
+if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3;}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement;
+break;case"mouseout":L=A.relatedTarget||A.toElement;}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){L=false;
+}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey});
+}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();
+},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();
+}else{this.event.returnValue=false;}return this;}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(E){for(var D in this){this[D]=$unlink(this[D]);
+}for(var F in Class.Mutators){if(!this[F]){continue;}Class.Mutators[F](this,this[F]);delete this[F];}this.constructor=A;if(E===$empty){return this;}var C=(this.initialize)?this.initialize.apply(this,arguments):this;
+if(this.options&&this.options.initialize){this.options.initialize.call(this);}return C;};$extend(A,this);A.constructor=Class;A.prototype=B;return A;}});
+Class.implement({implement:function(){Class.Mutators.Implements(this.prototype,Array.slice(arguments));return this;}});Class.Mutators={Implements:function(A,B){$splat(B).each(function(C){$extend(A,($type(C)=="class")?new C($empty):C);
+});},Extends:function(self,klass){var instance=new klass($empty);delete instance.parent;delete instance.parentOf;for(var key in instance){var current=self[key],previous=instance[key];
+if(current==undefined){self[key]=previous;continue;}var ctype=$type(current),ptype=$type(previous);if(ctype!=ptype){continue;}switch(ctype){case"function":if(!arguments.callee.caller){self[key]=eval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,function(full,close){return"arguments.callee._parent_.call(this"+(close||", ");
+})+")");}self[key]._parent_=previous;break;case"object":self[key]=$merge(previous,current);}}self.parent=function(){return arguments.callee.caller._parent_.apply(this,arguments);
+};self.parentOf=function(descendant){return descendant._parent_.apply(this,Array.slice(arguments,1));};}};var Chain=new Class({chain:function(){this.$chain=(this.$chain||[]).extend(arguments);
+return this;},callChain:function(){return(this.$chain&&this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){if(this.$chain){this.$chain.empty();
+}return this;}});var Events=new Class({addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events=this.$events||{};this.$events[C]=this.$events[C]||[];
+this.$events[C].include(B);if(A){B.internal=true;}}return this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},fireEvent:function(C,B,A){C=Events.removeOn(C);
+if(!this.$events||!this.$events[C]){return this;}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();},this);return this;},removeEvent:function(B,A){B=Events.removeOn(B);
+if(!this.$events||!this.$events[B]){return this;}if(!A.internal){this.$events[B].erase(A);}return this;},removeEvents:function(C){for(var D in this.$events){if(C&&C!=D){continue;
+}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A]);}}return this;}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase();
+});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this;}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue;
+}this.addEvent(A,this.options[A]);delete this.options[A];}return this;}});Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return ;
+}A+=" "+C+'="'+B[C]+'"';if(C!="checked"){delete B[C];}});A="<"+A+">";}return $.element(this.createElement(A)).set(B);},newTextNode:function(A){return this.createTextNode(A);
+},getDocument:function(){return this;},getWindow:function(){return this.defaultView||this.parentWindow;},purge:function(){var C=this.getElementsByTagName("*");
+for(var B=0,A=C.length;B<A;B++){Browser.freeMem(C[B]);}}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A);
+if(C){return C(B);}if(typeof A=="string"){return document.newElement(A,B);}return $(A).set(B);},afterImplement:function(A,B){if(!Array[A]){Elements.implement(A,Elements.multi(A));
+}Element.Prototype[A]=B;}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var E=Array.link(arguments,{properties:Object.type,iframe:$defined});
+var C=E.properties||{};var B=$(E.iframe)||false;var D=C.onload||$empty;delete C.onload;C.id=C.name=$pick(C.id,C.name,B.id,B.name,"IFrame_"+$time());B=new Element(B||"iframe",C);
+var A=function(){var F=$try(function(){return B.contentWindow.location.host;});if(F&&F==window.location.host){var H=new Window(B.contentWindow);var G=new Document(B.contentWindow.document);
+$extend(H.Element.prototype,Element.Prototype);}D.call(B.contentWindow,B.contentWindow.document);};(!window.frames[C.id])?B.addListener("load",A):A();return B;
+}});var Elements=new Native({initialize:function(F,B){B=$extend({ddup:true,cash:true},B);F=F||[];if(B.ddup||B.cash){var G={},E=[];for(var C=0,A=F.length;
+C<A;C++){var D=$.element(F[C],!B.cash);if(B.ddup){if(G[D.uid]){continue;}G[D.uid]=true;}E.push(D);}F=E;}return(B.cash)?$extend(F,this):F;}});Elements.implement({filter:function(A,B){if(!A){return this;
+}return new Elements(Array.filter(this,(typeof A=="string")?function(C){return C.match(A);}:A,B));}});Elements.multi=function(A){return function(){var B=[];
+var F=true;for(var D=0,C=this.length;D<C;D++){var E=this[D][A].apply(this[D],arguments);B.push(E);if(F){F=($type(E)=="element");}}return(F)?new Elements(B):B;
+};};Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B;}var A=$type(B);return($[A])?$[A](B,C,this.document):null;},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A);
+}var F=[];var C=Array.flatten(arguments);for(var D=0,B=C.length;D<B;D++){var E=C[D];switch($type(E)){case"element":E=[E];break;case"string":E=this.document.getElements(E,true);
+break;default:E=false;}if(E){F.extend(E);}}return new Elements(F);},getDocument:function(){return this.document;},getWindow:function(){return this;}});
+$.string=function(C,B,A){C=A.getElementById(C);return(C)?$.element(C,B):null;};$.element=function(A,D){$uid(A);if(!D&&!A.$family&&!(/^object|embed$/i).test(A.tagName)){var B=Element.Prototype;
+for(var C in B){A[C]=B[C];}}return A;};$.object=function(B,C,A){if(B.toElement){return $.element(B.toElement(A),C);}return null;};$.textnode=$.whitespace=$.window=$.document=$arguments(0);
+Native.implement([Element,Document],{getElement:function(A,B){return $(this.getElements(A,true)[0]||null,B);},getElements:function(A,D){A=A.split(",");
+var C=[];var B=(A.length>1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F;},this);return new Elements(C,{ddup:B,cash:!D});
+}});Element.Storage={get:function(A){return(this[A]||(this[A]={}));}};Element.Inserters=new Hash({before:function(B,A){if(A.parentNode){A.parentNode.insertBefore(B,A);
+}},after:function(B,A){if(!A.parentNode){return ;}var C=A.nextSibling;(C)?A.parentNode.insertBefore(B,C):A.parentNode.appendChild(B);},bottom:function(B,A){A.appendChild(B);
+},top:function(B,A){var C=A.firstChild;(C)?A.insertBefore(B,C):A.appendChild(B);}});Element.Inserters.inside=Element.Inserters.bottom;Element.Inserters.each(function(C,B){var A=B.capitalize();
+Element.implement("inject"+A,function(D){C(this,$(D,true));return this;});Element.implement("grab"+A,function(D){C($(D,true),this);return this;});});Element.implement({getDocument:function(){return this.ownerDocument;
+},getWindow:function(){return this.ownerDocument.getWindow();},getElementById:function(D,C){var B=this.ownerDocument.getElementById(D);if(!B){return null;
+}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return null;}}return $.element(B,C);},set:function(D,B){switch($type(D)){case"object":for(var C in D){this.set(C,D[C]);
+}break;case"string":var A=Element.Properties.get(D);(A&&A.set)?A.set.apply(this,Array.slice(arguments,1)):this.setProperty(D,B);}return this;},get:function(B){var A=Element.Properties.get(B);
+return(A&&A.get)?A.get.apply(this,Array.slice(arguments,1)):this.getProperty(B);},erase:function(B){var A=Element.Properties.get(B);(A&&A.erase)?A.erase.apply(this,Array.slice(arguments,1)):this.removeProperty(B);
+return this;},match:function(A){return(!A||Element.get(this,"tag")==A);},inject:function(B,A){Element.Inserters.get(A||"bottom")(this,$(B,true));return this;
+},wraps:function(B,A){B=$(B,true);return this.replaces(B).grab(B,A);},grab:function(B,A){Element.Inserters.get(A||"bottom")($(B,true),this);return this;
+},appendText:function(B,A){return this.grab(this.getDocument().newTextNode(B),A);},adopt:function(){Array.flatten(arguments).each(function(A){A=$(A,true);
+if(A){this.appendChild(A);}},this);return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},clone:function(D,C){switch($type(this)){case"element":var H={};
+for(var G=0,E=this.attributes.length;G<E;G++){var B=this.attributes[G],L=B.nodeName.toLowerCase();if(Browser.Engine.trident&&(/input/i).test(this.tagName)&&(/width|height/).test(L)){continue;
+}var K=(L=="style"&&this.style)?this.style.cssText:B.nodeValue;if(!$chk(K)||L=="uid"||(L=="id"&&!C)){continue;}if(K!="inherit"&&["string","number"].contains($type(K))){H[L]=K;
+}}var J=new Element(this.nodeName.toLowerCase(),H);if(D!==false){for(var I=0,F=this.childNodes.length;I<F;I++){var A=Element.clone(this.childNodes[I],true,C);
+if(A){J.grab(A);}}}return J;case"textnode":return document.newTextNode(this.nodeValue);}return null;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this,A);
+return this;},hasClass:function(A){return this.className.contains(A," ");},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean();
+}return this;},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();return this;},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A);
+},getComputedStyle:function(B){if(this.currentStyle){return this.currentStyle[B.camelCase()];}var A=this.getWindow().getComputedStyle(this,null);return(A)?A.getPropertyValue([B.hyphenate()]):null;
+},empty:function(){$A(this.childNodes).each(function(A){Browser.freeMem(A);Element.empty(A);Element.dispose(A);},this);return this;},destroy:function(){Browser.freeMem(this.empty().dispose());
+return null;},getSelected:function(){return new Elements($A(this.options).filter(function(A){return A.selected;}));},toQueryString:function(){var A=[];
+this.getElements("input, select, textarea").each(function(B){if(!B.name||B.disabled){return ;}var C=(B.tagName.toLowerCase()=="select")?Element.getSelected(B).map(function(D){return D.value;
+}):((B.type=="radio"||B.type=="checkbox")&&!B.checked)?null:B.value;$splat(C).each(function(D){if(D){A.push(B.name+"="+encodeURIComponent(D));}});});return A.join("&");
+},getProperty:function(C){var B=Element.Attributes,A=B.Props[C];var D=(A)?this[A]:this.getAttribute(C,2);return(B.Bools[C])?!!D:(A)?D:D||null;},getProperties:function(){var A=$A(arguments);
+return A.map(function(B){return this.getProperty(B);},this).associate(A);},setProperty:function(D,E){var C=Element.Attributes,B=C.Props[D],A=$defined(E);
+if(B&&C.Bools[D]){E=(E||!A)?true:false;}else{if(!A){return this.removeProperty(D);}}(B)?this[B]=E:this.setAttribute(D,E);return this;},setProperties:function(A){for(var B in A){this.setProperty(B,A[B]);
+}return this;},removeProperty:function(D){var C=Element.Attributes,B=C.Props[D],A=(B&&C.Bools[D]);(B)?this[B]=(A)?false:"":this.removeAttribute(D);return this;
+},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;}});(function(){var A=function(D,B,I,C,F,H){var E=D[I||B];var G=[];
+while(E){if(E.nodeType==1&&(!C||Element.match(E,C))){G.push(E);if(!F){break;}}E=E[B];}return(F)?new Elements(G,{ddup:false,cash:!H}):$(G[0],H);};Element.implement({getPrevious:function(B,C){return A(this,"previousSibling",null,B,false,C);
+},getAllPrevious:function(B,C){return A(this,"previousSibling",null,B,true,C);},getNext:function(B,C){return A(this,"nextSibling",null,B,false,C);},getAllNext:function(B,C){return A(this,"nextSibling",null,B,true,C);
+},getFirst:function(B,C){return A(this,"nextSibling","firstChild",B,false,C);},getLast:function(B,C){return A(this,"previousSibling","lastChild",B,false,C);
+},getParent:function(B,C){return A(this,"parentNode",null,B,false,C);},getParents:function(B,C){return A(this,"parentNode",null,B,true,C);},getChildren:function(B,C){return A(this,"nextSibling","firstChild",B,true,C);
+},hasChild:function(B){B=$(B,true);return(!!B&&$A(this.getElementsByTagName(B.tagName)).contains(B));}});})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A;
+},get:function(){return this.style.cssText;},erase:function(){this.style.cssText="";}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();
+}};Element.Properties.href={get:function(){return(!this.href)?null:this.href.replace(new RegExp("^"+document.location.protocol+"//"+document.location.host),"");
+}};Element.Properties.html={set:function(){return this.innerHTML=Array.flatten(arguments).join("");}};Native.implement([Element,Window,Document],{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false);
+}else{this.attachEvent("on"+B,A);}return this;},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false);}else{this.detachEvent("on"+B,A);
+}return this;},retrieve:function(B,A){var D=Element.Storage.get(this.uid);var C=D[B];if($defined(A)&&!$defined(C)){C=D[B]=A;}return $pick(C);},store:function(B,A){var C=Element.Storage.get(this.uid);
+C[B]=A;return this;},eliminate:function(A){var B=Element.Storage.get(this.uid);delete B[A];return this;}});Element.Attributes=new Hash({Props:{html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident)?"innerText":"textContent"},Bools:["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"],Camels:["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]});
+Browser.freeMem=function(A){if(!A){return ;}if(Browser.Engine.trident&&(/object/i).test(A.tagName)){for(var B in A){if(typeof A[B]=="function"){A[B]=$empty;
+}}Element.dispose(A);}if(A.uid&&A.removeEvents){A.removeEvents();}};(function(B){var C=B.Bools,A=B.Camels;B.Bools=C=C.associate(C);Hash.extend(Hash.combine(B.Props,C),A.associate(A.map(function(D){return D.toLowerCase();
+})));B.erase("Camels");})(Element.Attributes);window.addListener("unload",function(){window.removeListener("unload",arguments.callee);document.purge();
+if(Browser.Engine.trident){CollectGarbage();}});Element.Properties.events={set:function(A){this.addEvents(A);}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});
+H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this;}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G);
+}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J);}return false;};}F=A.base||F;}var D=function(){return G.call(I);};var B=Element.NativeEvents[F]||0;
+if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow());if(C.call(I,J)===false){J.stop();}};}this.addListener(F,D);}H[E].values.push(D);return this;},removeEvent:function(D,C){var B=this.retrieve("events");
+if(!B||!B[D]){return this;}var G=B[D].keys.indexOf(C);if(G==-1){return this;}var A=B[D].keys.splice(G,1)[0];var F=B[D].values.splice(G,1)[0];var E=Element.Events.get(D);
+if(E){if(E.onRemove){E.onRemove.call(this,C);}D=E.base||D;}return(Element.NativeEvents[D])?this.removeListener(D,F):this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);
+}return this;},removeEvents:function(B){var A=this.retrieve("events");if(!A){return this;}if(!B){for(var C in A){this.removeEvents(C);}A=null;}else{if(A[B]){while(A[B].keys[0]){this.removeEvent(B,A[B].keys[0]);
+}A[B]=null;}}return this;},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this;}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})();
+},this);return this;},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this;}if(!A){for(var B in C){this.cloneEvents(D,B);}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E);
+},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};
+(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true;}if(C===false){return false;}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C));
+};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}});
+})();Element.Properties.styles={set:function(A){this.setStyles(A);}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden";
+}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")";
+}this.style.opacity=A;this.store("opacity",A);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true);
+},getOpacity:function(){return this.get("opacity");},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat";
+}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return"";}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E;
+}).join(" ");}else{if(A==String(Number(A))){A=Math.round(A);}}this.style[B]=A;return this;},getStyle:function(G){switch(G){case"opacity":return this.get("opacity");
+case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat";}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue;
+}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E));}return A.join(" ");}A=this.getComputedStyle(G);}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/);
+if(C){A=A.replace(C[0],C[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0;
+B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt();},this);return this["offset"+G.capitalize()]-D+"px";
+}if(Browser.Engine.presto&&String(A).test("px")){return A;}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return A;},setStyles:function(B){for(var A in B){this.setStyle(A,B[A]);
+}return this;},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B);},this);return A;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});
+Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles;
+var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px";});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color";
+F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I);
+}else{this.scrollLeft=H;this.scrollTop=I;}return this;},getSize:function(){if(B(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight};
+},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(B(this)){return this.getWindow().getScroll();
+}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode;
+}return H;},getOffsetParent:function(){var H=this;if(B(H)){return null;}if(!Browser.Engine.trident){return H.offsetParent;}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H;
+}}return null;},getOffsets:function(){var I=this,H={x:0,y:0};if(B(this)){return H;}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);
+H.y+=G(I);}var J=I.parentNode;if(J&&D(J,"overflow")!="visible"){H.x+=C(J);H.y+=G(J);}}else{if(I!=this&&(Browser.Engine.trident||Browser.Engine.webkit)){H.x+=C(I);
+H.y+=G(I);}}I=I.offsetParent;if(Browser.Engine.trident){while(I&&!I.currentStyle.hasLayout){I=I.offsetParent;}}}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);
+H.y-=G(this);}return H;},getPosition:function(K){if(B(this)){return{x:0,y:0};}var L=this.getOffsets(),I=this.getScrolls();var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};
+return{x:H.x-J.x,y:H.y-J.y};},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates();}var H=this.getPosition(J),I=this.getSize();
+var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K;},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")};
+},position:function(H){return this.setStyles(this.computePosition(H));}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow();
+if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight};}var H=A(this);return{x:H.clientWidth,y:H.clientHeight};},getScroll:function(){var I=this.getWindow();
+var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop};},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)};
+},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x};
+}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0;}function F(H){return D(H,"-moz-box-sizing")=="border-box";}function G(H){return E(H,"border-top-width");
+}function C(H){return E(H,"border-left-width");}function B(H){return(/^(?:body|html)$/i).test(H.tagName);}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body;
+}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;
+},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;
+},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(",");
+var C,E={};for(var D=0,B=H.length;D<B;D++){var A=H[D],F=Selectors.Utils.search(this,A,E);if(D!=0&&F.item){F=$A(F);}C=(D==0)?F:(C.item)?$A(C).concat(F):C.concat(F);
+}return new Elements(C,{ddup:(H.length>1),cash:!G});}});Element.implement({match:function(B){if(!B){return true;}var D=Selectors.Utils.parseTagAndID(B);
+var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false;}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true;
+}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};
+Selectors.Utils={chk:function(B,C){if(!C){return true;}var A=$uid(B);if(!C[A]){return C[A]=true;}return false;},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F];
+}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false;}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0;
+if(B!=0){A--;while(A<1){A+=B;}while(A>=B){A-=B;}}else{B=A;D="index";}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"};
+break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"};
+break;default:C={a:(B-1),special:"index"};}return Selectors.Cache.nth[F]=C;},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E];
+}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[4],C=D[5],J=D[6];if(I){H.classes.push(I);
+}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J});}else{H.attributes.push({name:C,operator:"=",value:J});}}else{if(G){H.attributes.push({name:G,operator:F,value:B});
+}}}}if(!H.classes.length){delete H.classes;}if(!H.attributes.length){delete H.attributes;}if(!H.pseudos.length){delete H.pseudos;}if(!H.classes&&!H.attributes&&!H.pseudos){H=null;
+}return Selectors.Cache.parsed[E]=H;},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false];
+},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false;}}}if(C.attributes){for(D=C.attributes.length;
+D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false;}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D];
+if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false;}}}return true;},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true);
+return(C&&Selectors.Filters.byTag(C,A))?[C]:[];}else{return B.getElementsByTagName(A);}},search:function(J,I,O){var B=[];var C=I.trim().replace(Selectors.RegExps.splitter,function(Z,Y,X){B.push(Y);
+return":)"+X;}).split(":)");var K,F,E,V;for(var U=0,Q=C.length;U<Q;U++){var T=C[U];if(U==0&&Selectors.RegExps.quick.test(T)){K=J.getElementsByTagName(T);
+continue;}var A=B[U-1];var L=Selectors.Utils.parseTagAndID(T);var W=L[0],M=L[1];if(U==0){K=Selectors.Utils.getByTagAndID(J,W,M);}else{var D={},H=[];for(var S=0,R=K.length;
+S<R;S++){H=Selectors.Getters[A](H,K[S],W,M,D);}K=H;}var G=Selectors.Utils.parseSelector(T);if(G){E=[];for(var P=0,N=K.length;P<N;P++){V=K[P];if(Selectors.Utils.filter(V,G,O)){E.push(V);
+}}K=E;}}return K;}};Selectors.Getters={" ":function(H,G,I,A,E){var D=Selectors.Utils.getByTagAndID(G,I,A);for(var C=0,B=D.length;C<B;C++){var F=D[C];if(Selectors.Utils.chk(F,E)){H.push(F);
+}}return H;},">":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;E<D;E++){var B=C[E];if(B.parentNode==G&&Selectors.Utils.chk(B,F)){H.push(B);
+}}return H;},"+":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(Selectors.Utils.chk(B,D)&&Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
+}break;}}return C;},"~":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(!Selectors.Utils.chk(B,D)){break;}if(Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B);
+}}}return C;}};Selectors.Filters={byTag:function(B,A){return(A=="*"||(B.tagName&&B.tagName.toLowerCase()==A));},byID:function(A,B){return(!B||(A.id&&A.id==B));
+},byClass:function(B,A){return(B.className&&B.className.contains(A," "));},byPseudo:function(A,D,C,B){return D.call(A,C,B);},byAttribute:function(C,D,B,E){var A=Element.prototype.getProperty.call(C,D);
+if(!A){return false;}if(!B||E==undefined){return true;}switch(B){case"=":return(A==E);case"*=":return(A.contains(E));case"^=":return(A.substr(0,E.length)==E);
+case"$=":return(A.substr(A.length-E.length)==E);case"!=":return(A!=E);case"~=":return A.contains(E," ");case"|=":return A.contains(E,"-");}return false;
+}};Selectors.Pseudo=new Hash({empty:function(){return !(this.innerText||this.textContent||"").length;},not:function(A){return !Element.match(this,A);},contains:function(A){return(this.innerText||this.textContent||"").contains(A);
+},"first-child":function(){return Selectors.Pseudo.index.call(this,0);},"last-child":function(){var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;
+}}return true;},"only-child":function(){var B=this;while((B=B.previousSibling)){if(B.nodeType==1){return false;}}var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false;
+}}return true;},"nth-child":function(G,E){G=(G==undefined)?"n":G;var C=Selectors.Utils.parseNthArgument(G);if(C.special!="n"){return Selectors.Pseudo[C.special].call(this,C.a,E);
+}var F=0;E.positions=E.positions||{};var D=$uid(this);if(!E.positions[D]){var B=this;while((B=B.previousSibling)){if(B.nodeType!=1){continue;}F++;var A=E.positions[$uid(B)];
+if(A!=undefined){F=A+F;break;}}E.positions[D]=F;}return(E.positions[D]%C.a==C.b);},index:function(A){var B=this,C=0;while((B=B.previousSibling)){if(B.nodeType==1&&++C>A){return false;
+}}return(C==A);},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A);},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A);
+}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this);}}};(function(){var B=function(){if(Browser.loaded){return ;}Browser.loaded=true;
+window.fireEvent("domready");document.fireEvent("domready");};switch(Browser.Engine.name){case"webkit":(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50);
+})();break;case"trident":var A=document.createElement("div");(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose();
+}))?B():arguments.callee.delay(50);})();break;default:window.addEvent("load",B);document.addEvent("DOMContentLoaded",B);}})();var JSON=new Hash({encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';
+case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C);
+}});return"{"+A+"}";case"number":case"boolean":return String(B);case false:return"null";}return null;},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16);
+},decode:function(string,secure){if($type(string)!="string"||!string.length){return null;}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null;
+}return eval("("+string+")");}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B;
+this.setOptions(A);},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain;}if(this.options.path){B+="; path="+this.options.path;
+}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString();}if(this.options.secure){B+="; secure";
+}this.options.document.cookie=this.key+"="+B;return this;},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");
+return(A)?decodeURIComponent(A[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this;}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C);
+};Cookie.read=function(A){return new Cookie(A).read();};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;
+},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={};
+var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments);
+};})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D;}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
+E.movie=L;}else{H.type="application/x-shockwave-flash";H.data=L;}var J='<object id="'+B+'"';for(var I in H){J+=" "+I+'="'+H[I]+'"';}J+=">";for(var C in E){if(E[C]){J+='<param name="'+C+'" value="'+E[C]+'" />';
+}}J+="</object>";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A);
+return this;},inject:function(A){$(A,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));
+}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");
+return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore",transition:function(A){return -(Math.cos(Math.PI*A)-1)/2;
+}},initialize:function(A){this.subject=this.subject||this;this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();
+var B=this.options.wait;if(B===false){this.options.link="cancel";}},step:function(){var A=$time();if(A<this.time+this.options.duration){var B=this.options.transition((A-this.time)/this.options.duration);
+this.set(this.compute(this.from,this.to,B));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(A){return A;},compute:function(C,B,A){return Fx.compute(C,B,A);
+},check:function(A){if(!this.timer){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));
+return false;}return false;},start:function(B,A){if(!this.check(arguments.callee,B,A)){return this;}this.from=B;this.to=A;this.time=0;this.startTimer();
+this.onStart();return this;},complete:function(){if(this.stopTimer()){this.onComplete();}return this;},cancel:function(){if(this.stopTimer()){this.onCancel();
+}return this;},onStart:function(){this.fireEvent("start",this.subject);},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject);
+}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();
+return this;},stopTimer:function(){if(!this.timer){return false;}this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer){return false;
+}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(C,B,A){return(B-C)*A+C;
+};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(D,E,B){B=$splat(B);var C=B[1];if(!$chk(C)){B[1]=B[0];
+B[0]=D.getStyle(E);}var A=B.map(this.parse);return{from:A[0],to:A[1]};},parse:function(A){A=$lambda(A)();A=(typeof A=="string")?A.split(" "):$splat(A);
+return A.map(function(C){C=String(C);var B=false;Fx.CSS.Parsers.each(function(F,E){if(B){return ;}var D=F.parse(C);if($chk(D)){B={value:D,parser:F};}});
+B=B||{value:C,parser:Fx.CSS.Parsers.String};return B;});},compute:function(D,C,B){var A=[];(Math.min(D.length,C.length)).times(function(E){A.push({value:D[E].parser.compute(D[E].value,C[E].value,B),parser:D[E].parser});
+});A.$family={name:"fx:css:value"};return A;},serve:function(C,B){if($type(C)!="fx:css:value"){C=this.parse(C);}var A=[];C.each(function(D){A=A.concat(D.parser.serve(D.value,B));
+});return A;},render:function(A,D,C,B){A.setStyle(D,this.serve(C,B));},search:function(A){if(Fx.CSS.Cache[A]){return Fx.CSS.Cache[A];}var B={};Array.each(document.styleSheets,function(E,D){var C=E.href;
+if(C&&C.contains("://")&&!C.contains(document.domain)){return ;}var F=E.rules||E.cssRules;Array.each(F,function(I,G){if(!I.style){return ;}var H=(I.selectorText)?I.selectorText.replace(/^\w+/,function(J){return J.toLowerCase();
+}):null;if(!H||!H.test("^"+A+"$")){return ;}Element.Styles.each(function(K,J){if(!I.style[J]||Element.ShortStyles[J]){return ;}K=String(I.style[J]);B[J]=(K.test(/^rgb/))?K.rgbToHex():K;
+});});});return Fx.CSS.Cache[A]=B;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(A){if(A.match(/^#[0-9a-f]{3,6}$/i)){return A.hexToRgb(true);
+}return((A=A.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[A[1],A[2],A[3]]:false;},compute:function(C,B,A){return C.map(function(E,D){return Math.round(Fx.compute(C[D],B[D],A));
+});},serve:function(A){return A.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(B,A){return(A)?B+A:B;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});
+Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(B,A){if(arguments.length==1){A=B;
+B=this.property||this.options.property;}this.render(this.element,B,A,this.options.unit);return this;},start:function(C,E,D){if(!this.check(arguments.callee,C,E,D)){return this;
+}var B=Array.flatten(arguments);this.property=this.options.property||B.shift();var A=this.prepare(this.element,this.property,B);return this.parent(A.from,A.to);
+}});Element.Properties.tween={set:function(A){var B=this.retrieve("tween");if(B){B.cancel();}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},A));
+},get:function(A){if(A||!this.retrieve("tween")){if(A||!this.retrieve("tween:options")){this.set("tween",A);}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")));
+}return this.retrieve("tween");}};Element.implement({tween:function(A,C,B){this.get("tween").start(arguments);return this;},fade:function(C){var E=this.get("tween"),D="opacity",A;
+C=$pick(C,"toggle");switch(C){case"in":E.start(D,1);break;case"out":E.start(D,0);break;case"show":E.set(D,1);break;case"hide":E.set(D,0);break;case"toggle":var B=this.retrieve("fade:flag",this.get("opacity")==1);
+E.start(D,(B)?0:1);this.store("fade:flag",!B);A=true;break;default:E.start(D,arguments);}if(!A){this.eliminate("fade:flag");}return this;},highlight:function(C,A){if(!A){A=this.retrieve("highlight:original",this.getStyle("background-color"));
+A=(A=="transparent")?"#fff":A;}var B=this.get("tween");B.start("background-color",C||"#ffff88",A).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));
+B.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);},set:function(A){if(typeof A=="string"){A=this.search(A);
+}for(var B in A){this.render(this.element,B,A[B],this.options.unit);}return this;},compute:function(E,D,C){var A={};for(var B in E){A[B]=this.parent(E[B],D[B],C);
+}return A;},start:function(B){if(!this.check(arguments.callee,B)){return this;}if(typeof B=="string"){B=this.search(B);}var E={},D={};for(var C in B){var A=this.prepare(this.element,C,B[C]);
+E[C]=A.from;D[C]=A.to;}return this.parent(E,D);}});Element.Properties.morph={set:function(A){var B=this.retrieve("morph");if(B){B.cancel();}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},A));
+},get:function(A){if(A||!this.retrieve("morph")){if(A||!this.retrieve("morph:options")){this.set("morph",A);}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")));
+}return this.retrieve("morph");}};Element.implement({morph:function(A){this.get("morph").start(A);return this;}});(function(){var A=Fx.prototype.initialize;
+Fx.prototype.initialize=function(B){A.call(this,B);var C=this.options.transition;if(typeof C=="string"&&(C=C.split(":"))){var D=Fx.Transitions;D=D[C[0]]||D[C[0].capitalize()];
+if(C[1]){D=D["ease"+C[1].capitalize()+(C[2]?C[2].capitalize():"")];}this.options.transition=D;}};})();Fx.Transition=function(B,A){A=$splat(A);return $extend(B,{easeIn:function(C){return B(C,A);
+},easeOut:function(C){return 1-B(1-C,A);},easeInOut:function(C){return(C<=0.5)?B(2*C,A)/2:(2-B(2*(1-C),A))/2;}});};Fx.Transitions=new Hash({linear:$arguments(0)});
+Fx.Transitions.extend=function(A){for(var B in A){Fx.Transitions[B]=new Fx.Transition(A[B]);}};Fx.Transitions.extend({Pow:function(B,A){return Math.pow(B,A[0]||6);
+},Expo:function(A){return Math.pow(2,8*(A-1));},Circ:function(A){return 1-Math.sin(Math.acos(A));},Sine:function(A){return 1-Math.sin((1-A)*Math.PI/2);
+},Back:function(B,A){A=A[0]||1.618;return Math.pow(B,2)*((A+1)*B-A);},Bounce:function(D){var C;for(var B=0,A=1;1;B+=A,A/=2){if(D>=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;
+break;}}return C;},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2]);
+});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request();
+this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return ;
+}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};
+this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}this.xhr.onreadystatechange=$empty;},isSuccess:function(){return((this.status>=200)&&(this.status<300));
+},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A);}return A.stripScripts(this.options.evalScripts);
+},success:function(B,A){this.onSuccess(this.processScripts(B),A);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain();
+},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},setHeader:function(A,B){this.headers.set(A,B);
+return this;},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A);}.bind(this));},check:function(A){if(!this.running){return true;
+}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false;}return false;
+},send:function(I){if(!this.check(arguments.callee,I)){return this;}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I};}var D=this.options;
+I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E);
+}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H;}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A;
+E=(E)?F+"&"+E:F;A="post";}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C);
+}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null;}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);
+this.headers.each(function(K,J){if(!$try(function(){this.xhr.setRequestHeader(J,K);return true;}.bind(this))){this.fireEvent("exception",[J,K]);}},this);
+this.fireEvent("request");this.xhr.send(E);if(!this.options.async){this.onStateChange();}return this;},cancel:function(){if(!this.running){return this;
+}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});(function(){var A={};
+["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined});
+return this.send($extend(C,{method:B.toLowerCase()}));};});Request.implement(A);})();Element.Properties.send={set:function(A){var B=this.retrieve("send");
+if(B){B.cancel();}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A));
+},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A);}this.store("send",new Request(this.retrieve("send:options")));
+}return this.retrieve("send");}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
+C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D="<root>"+C+"</root>",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM");
+G.async=false;G.loadXML(D);}else{G=new DOMParser().parseFromString(D,"text/xml");}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length;
+F<E;F++){var H=Element.clone(D.childNodes[F],true,true);if(H){A.grab(H);}}return A;})||A.set("html",C);},success:function(D){var C=this.options,B=this.response;
+B.html=D.stripScripts(function(E){B.javascript=E;});var A=this.processHTML(B.html);B.tree=A.childNodes;B.elements=A.getElements("*");if(C.filter){B.tree=B.elements.filter(C.filter);
+}if(C.update){$(C.update).empty().adopt(B.tree);}if(C.evalScripts){$exec(B.javascript);}this.onSuccess(B.tree,B.elements,B.html,B.javascript);}});Element.Properties.load={set:function(A){var B=this.retrieve("load");
+if(B){send.cancel();}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},A));},get:function(A){if(A||!this.retrieve("load")){if(A||!this.retrieve("load:options")){this.set("load",A);
+}this.store("load",new Request.HTML(this.retrieve("load:options")));}return this.retrieve("load");}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));
+return this;}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(A){this.parent(A);this.headers.extend({Accept:"application/json","X-Request":"JSON"});
+},success:function(A){this.response.json=JSON.decode(A,this.options.secure);this.onSuccess(this.response.json,A);}});
+
+
+//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
+
+Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(B,A){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);
+if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper);}},true);this.element=this.subject=$(B);this.parent(A);var C=this.element.retrieve("wrapper");
+this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);
+this.now=[];this.open=true;},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight;},horizontal:function(){this.margin="margin-left";
+this.layout="width";this.offset=this.element.offsetWidth;},set:function(A){this.element.setStyle(this.margin,A[0]);this.wrapper.setStyle(this.layout,A[1]);
+return this;},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B[F]=Fx.compute(E[F],D[F],C);});return B;},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this;
+}this[E||this.options.mode]();var D=this.element.getStyle(this.margin).toInt();var C=this.wrapper.getStyle(this.layout).toInt();var A=[[D,C],[0,this.offset]];
+var G=[[D,C],[-this.offset,0]];var F;switch(B){case"in":F=A;break;case"out":F=G;break;case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G;
+}return this.parent(F[0],F[1]);},slideIn:function(A){return this.start("in",A);},slideOut:function(A){return this.start("out",A);},hide:function(A){this[A||this.options.mode]();
+this.open=false;return this.set([-this.offset,0]);},show:function(A){this[A||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(A){return this.start("toggle",A);
+}});Element.Properties.slide={set:function(B){var A=this.retrieve("slide");if(A){A.cancel();}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B));
+},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A);}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")));
+}return this.retrieve("slide");}};Element.implement({slide:function(D,E){D=D||"toggle";var B=this.get("slide"),A;switch(D){case"hide":B.hide(E);break;case"show":B.show(E);
+break;case"toggle":var C=this.retrieve("slide:flag",B.open);B[(C)?"slideOut":"slideIn"](E);this.store("slide:flag",!C);A=true;break;default:B.start(D,E);
+}if(!A){this.eliminate("slide:flag");}return this;}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);
+this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);}var C=this.element;
+if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D);},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D);
+},true);}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1]);},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C));
+});return B;},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this;}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};
+for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A;}else{D[G]=B[G];}D[G]+=this.options.offset[G];}return this.parent([B.x,B.y],[D.x,D.y]);
+},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");
+},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y);}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);
+this.parent(A);},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};for(var B in A){F[B]=this.parent(A[B],E[B],I);}}return C;
+},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);}}return this;},start:function(C){if(!this.check(arguments.callee,C)){return this;
+}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);A[B]=E.from;G[B]=E.to;}}return this.parent(H,I);
+}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined});
+this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;
+this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};
+this.attach();},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this;},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);
+return this;},start:function(C){if(this.options.preventDefault){C.preventDefault();}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page;
+var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue;}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt();
+}else{this.value.now[D]=this.element[this.options.modifiers[D]];}if(this.options.invert){this.value.now[D]*=-1;}this.mouse.pos[D]=C.page[D]-this.value.now[D];
+if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])();}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid};
+}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop);},check:function(A){if(this.options.preventDefault){A.preventDefault();
+}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});
+this.fireEvent("start",this.element).fireEvent("snap",this.element);}},drag:function(A){if(this.options.preventDefault){A.preventDefault();}this.mouse.now=A.page;
+for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue;}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1;
+}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1];}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0];
+}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B]);}if(this.options.style){this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit);
+}else{this.element[this.options.modifiers[B]]=this.value.now[B];}}this.fireEvent("drag",this.element);},cancel:function(A){this.document.removeEvent("mousemove",this.bound.check);
+this.document.removeEvent("mouseup",this.bound.cancel);if(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element);
+}},stop:function(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);
+if(A){this.fireEvent("complete",this.element);}}});Element.implement({makeResizable:function(A){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},A));
+}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false},initialize:function(C,B){this.parent(C,B);this.droppables=$$(this.options.droppables);
+this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body);}C=this.element;
+var D=C.getStyle("position");var A=(D!="static")?D:"absolute";if(C.getStyle("left")=="auto"||C.getStyle("top")=="auto"){C.position(C.getPosition(C.offsetParent));
+}C.setStyle("position",A);this.addEvent("start",function(){this.checkDroppables();},true);},start:function(B){if(this.container){var D=this.element,J=this.container,E=J.getCoordinates(D.offsetParent),F={},A={};
+["top","right","bottom","left"].each(function(K){F[K]=J.getStyle("padding-"+K).toInt();A[K]=D.getStyle("margin-"+K).toInt();},this);var C=D.offsetWidth+A.left+A.right,I=D.offsetHeight+A.top+A.bottom;
+var H=[E.left+F.left,E.right-F.right-C];var G=[E.top+F.top,E.bottom-F.bottom-I];this.options.limit={x:H,y:G};}this.parent(B);},checkAgainst:function(B){B=B.getCoordinates();
+var A=this.mouse.now;return(A.x>B.left&&A.x<B.right&&A.y<B.bottom&&A.y>B.top);},checkDroppables:function(){var A=this.droppables.filter(this.checkAgainst,this).getLast();
+if(this.overed!=A){if(this.overed){this.fireEvent("leave",[this.element,this.overed]);}if(A){this.overed=A;this.fireEvent("enter",[this.element,A]);}else{this.overed=null;
+}}},drag:function(A){this.parent(A);if(this.droppables.length){this.checkDroppables();}},stop:function(A){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);
+this.overed=null;return this.parent(A);}});Element.implement({makeDraggable:function(A){return new Drag.Move(this,A);}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(B,A){this.parent(B,A);
+this.load();},save:function(){var A=JSON.encode(this.hash);if(!A||A.length>4096){return false;}if(A=="{}"){this.dispose();}else{this.write(A);}return true;
+},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this;}});Hash.Cookie.implement((function(){var A={};Hash.each(Hash.prototype,function(C,B){A[B]=function(){var D=C.apply(this.hash,arguments);
+if(this.options.autoSave){this.save();}return D;};});return A;})());var Color=new Native({initialize:function(B,C){if(arguments.length>=3){C="rgb";B=Array.slice(arguments,0,3);
+}else{if(typeof B=="string"){if(B.match(/rgb/)){B=B.rgbToHex().hexToRgb(true);}else{if(B.match(/hsb/)){B=B.hsbToRgb();}else{B=B.hexToRgb(true);}}}}C=C||"rgb";
+switch(C){case"hsb":var A=B;B=B.hsbToRgb();B.hsb=A;break;case"hex":B=B.hexToRgb(true);break;}B.rgb=B.slice(0,3);B.hsb=B.hsb||B.rgbToHsb();B.hex=B.rgbToHex();
+return $extend(B,this);}});Color.implement({mix:function(){var A=Array.slice(arguments);var C=($type(A.getLast())=="number")?A.pop():50;var B=this.slice();
+A.each(function(D){D=new Color(D);for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C));}});return new Color(B,"rgb");},invert:function(){return new Color(this.map(function(A){return 255-A;
+}));},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb");},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb");
+},setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb");}});function $RGB(C,B,A){return new Color([C,B,A],"rgb");}function $HSB(C,B,A){return new Color([C,B,A],"hsb");
+}function $HEX(A){return new Color(A,"hex");}Array.implement({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J);
+var K=I-E;H=I/255;F=(I!=0)?K/I:0;if(F==0){G=0;}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A;}else{if(C==I){G=2+D-L;}else{G=4+A-D;}}G/=6;
+if(G<0){G++;}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)];},hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C];
+}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255);var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255);
+switch(Math.floor(A/60)){case 0:return[C,B,F];case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D];
+}}return false;}});String.implement({rgbToHsb:function(){var A=this.match(/\d{1,3}/g);return(A)?hsb.rgbToHsb():null;},hsbToRgb:function(){var A=this.match(/\d{1,3}/g);
+return(A)?A.hsbToRgb():null;}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={};},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};
+this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false;}else{this.events[B].push(A);}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]));
+},this);return this;},check:function(C,A,B){this.checker[C][B]=true;var D=this.instances.every(function(F,E){return this.checker[C][E]||false;},this);if(!D){return ;
+}this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A);},this);}});var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D);
+var B=new Element("script",{src:F,type:"text/javascript"});var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document;
+B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E();}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return ;
+}$clear(C);E();}).periodical(50);}return B.inject(G.head);},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head);
+},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E;
+var G=B[F];delete B[F];D[F]=function(){if(!D){return ;}if(!A.parentNode){A.width=D.width;A.height=D.height;}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A);
+A.fireEvent(E,A,1);};});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1);}return A.setProperties(B);},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C);
+if(!D.push){D=[D];}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete();
+}}});A.push(E);});return new Elements(A);}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(A,B){this.setOptions(B);
+this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(A)||A));if(!this.options.clone){this.options.revert=false;}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert));
+}},attach:function(){this.addLists(this.lists);return this;},detach:function(){this.lists=this.removeLists(this.lists);return this;},addItems:function(){Array.flatten(arguments).each(function(A){this.elements.push(A);
+var B=A.retrieve("sortables:start",this.start.bindWithEvent(this,A));(this.options.handle?A.getElement(this.options.handle)||A:A).addEvent("mousedown",B);
+},this);return this;},addLists:function(){Array.flatten(arguments).each(function(A){this.lists.push(A);this.addItems(A.getChildren());},this);return this;
+},removeItems:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.elements.erase(B);var C=B.retrieve("sortables:start");(this.options.handle?B.getElement(this.options.handle)||B:B).removeEvent("mousedown",C);
+},this);return $$(A);},removeLists:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.lists.erase(B);this.removeItems(B.getChildren());
+},this);return $$(A);},getClone:function(B,A){if(!this.options.clone){return new Element("div").inject(document.body);}if($type(this.options.clone)=="function"){return this.options.clone.call(this,B,A,this.list);
+}return A.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:A.getStyle("width")}).inject(this.list).position(A.getPosition(A.getOffsetParent()));
+},getDroppables:function(){var A=this.list.getChildren();if(!this.options.constrain){A=this.lists.concat(A).erase(this.list);}return A.erase(this.clone).erase(this.element);
+},insert:function(C,B){var A="inside";if(this.lists.contains(B)){this.list=B;this.drag.droppables=this.getDroppables();}else{A=this.element.getAllPrevious().contains(B)?"before":"after";
+}this.element.inject(B,A);this.fireEvent("sort",[this.element,this.clone]);},start:function(B,A){if(!this.idle){return ;}this.idle=false;this.element=A;
+this.opacity=A.get("opacity");this.list=A.getParent();this.clone=this.getClone(B,A);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){B.stop();
+this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone]);}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});
+this.clone.inject(this.element,"before");this.drag.start(B);},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var A=this.element.getStyles("width","height");
+var B=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:B.top,left:B.left,width:A.width,height:A.height,opacity:0.25}).chain(this.reset.bind(this));
+}else{this.reset();}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element);},serialize:function(){var C=Array.link(arguments,{modifier:Function.type,index:$defined});
+var B=this.lists.map(function(D){return D.getChildren().map(C.modifier||function(E){return E.get("id");},this);},this);var A=C.index;if(this.lists.length==1){A=0;
+}return $chk(A)&&A>=0&&A<this.lists.length?B[A]:B;}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(A){A.setStyle("visibility","visible");
+},onHide:function(A){A.setStyle("visibility","hidden");},showDelay:100,hideDelay:100,className:null,offsets:{x:16,y:16},fixed:false},initialize:function(){var C=Array.link(arguments,{options:Object.type,elements:$defined});
+this.setOptions(C.options||null);this.tip=new Element("div").inject(document.body);if(this.options.className){this.tip.addClass(this.options.className);
+}var B=new Element("div",{"class":"tip-top"}).inject(this.tip);this.container=new Element("div",{"class":"tip"}).inject(this.tip);var A=new Element("div",{"class":"tip-bottom"}).inject(this.tip);
+this.tip.setStyles({position:"absolute",top:0,left:0,visibility:"hidden"});if(C.elements){this.attach(C.elements);}},attach:function(A){$$(A).each(function(D){var G=D.retrieve("tip:title",D.get("title"));
+var F=D.retrieve("tip:text",D.get("rel")||D.get("href"));var E=D.retrieve("tip:enter",this.elementEnter.bindWithEvent(this,D));var C=D.retrieve("tip:leave",this.elementLeave.bindWithEvent(this,D));
+D.addEvents({mouseenter:E,mouseleave:C});if(!this.options.fixed){var B=D.retrieve("tip:move",this.elementMove.bindWithEvent(this,D));D.addEvent("mousemove",B);
+}D.store("tip:native",D.get("title"));D.erase("title");},this);return this;},detach:function(A){$$(A).each(function(C){C.removeEvent("mouseenter",C.retrieve("tip:enter")||$empty);
+C.removeEvent("mouseleave",C.retrieve("tip:leave")||$empty);C.removeEvent("mousemove",C.retrieve("tip:move")||$empty);C.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");
+var B=C.retrieve("tip:native");if(B){C.set("title",B);}});return this;},elementEnter:function(B,A){$A(this.container.childNodes).each(Element.dispose);
+var D=A.retrieve("tip:title");if(D){this.titleElement=new Element("div",{"class":"tip-title"}).inject(this.container);this.fill(this.titleElement,D);}var C=A.retrieve("tip:text");
+if(C){this.textElement=new Element("div",{"class":"tip-text"}).inject(this.container);this.fill(this.textElement,C);}this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);
+this.position((!this.options.fixed)?B:{page:A.getPosition()});},elementLeave:function(A){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);
+},elementMove:function(A){this.position(A);},position:function(D){var B=window.getSize(),A=window.getScroll();var E={x:this.tip.offsetWidth,y:this.tip.offsetHeight};
+var C={x:"left",y:"top"};for(var F in C){var G=D.page[F]+this.options.offsets[F];if((G+E[F]-A[F])>B[F]){G=D.page[F]-this.options.offsets[F]-E[F];}this.tip.setStyle(C[F],G);
+}},fill:function(A,B){(typeof B=="string")?A.set("html",B):A.adopt(B);},show:function(){this.fireEvent("show",this.tip);},hide:function(){this.fireEvent("hide",this.tip);
+}});var SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(B,C){C=C||document;var E=C.getDocument(),D=C.getWindow();this.parent(E,B);this.links=(this.options.links)?$$(this.options.links):$$(E.links);
+var A=D.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(G){if(G.href.indexOf(A)!=0){return ;}var F=G.href.substr(A.length);if(F&&$(F)){this.useLink(G,F);
+}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){D.location.hash=this.anchor;},true);}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A;
+this.toElement(A);C.stop();}.bind(this));}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step);
+}this.knob.setStyle(this.property,A);},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D);
+this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this));
+}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x";
+this.property="left";F="offsetWidth";}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;
+this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;
+this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property;
+B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();
+this.end();}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full;}},set:function(A){if(!((this.range>0)^(A<this.min))){A=this.min;
+}if(!((this.range>0)^(A>this.max))){A=this.max;}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this;
+},clickedElement:function(C){var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset);
+this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A);},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0);
+this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop();},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis];
+A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;
+this.fireEvent("change",this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"");
+}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B;},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset;
+}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B);}},initialize:function(B,A){this.setOptions(A);
+this.element=$(B);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this);
+},start:function(){this.listener.addEvent("mousemove",this.coord);},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer);
+},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this);}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0};
+for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity;}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity;
+}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y]);}}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});
+this.parent(C.elements,C.options);this.togglers=$$(C.togglers);this.container=$(C.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true;
+}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}if(this.options.start){this.options.display=false;this.options.show=false;
+}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity";}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";
+}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight";}for(var B=0,A=this.togglers.length;B<A;B++){this.addSection(this.togglers[B],this.elements[B]);
+}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E]);}else{for(var F in this.effects){E.setStyle(F,0);
+}}},this);if($chk(this.options.display)){this.display(this.options.display);}},addSection:function(E,C,G){E=$(E);C=$(C);var F=this.togglers.contains(E);
+var B=this.togglers.length;this.togglers.include(E);this.elements.include(C);if(B&&(!F||G)){G=$pick(G,B-1);E.inject(this.togglers[G],"before");C.inject(E,"after");
+}else{if(this.container&&!F){E.inject(this.container);C.inject(this.container);}}var A=this.togglers.indexOf(E);E.addEvent("click",this.display.bind(this,A));
+if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});
+}C.fullOpacity=1;if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth;}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight;}C.setStyle("overflow","hidden");
+if(!F){for(var D in this.effects){C.setStyle(D,0);}}return this;},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this;
+}this.previous=A;var B={};this.elements.each(function(E,D){B[D]={};var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));this.fireEvent(C?"background":"active",[this.togglers[D],E]);
+for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]];}},this);return this.start(B);}});
diff --git a/js/navigation.js b/js/navigation.js
new file mode 100644
index 0000000000..44ffc44bd1
--- /dev/null
+++ b/js/navigation.js
@@ -0,0 +1,139 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * function used in or for navigation frame
+ */
+
+/**
+ * init
+ */
+var today = new Date();
+var expires = new Date(today.getTime() + (56 * 86400000));
+var pma_navi_width;
+var pma_saveframesize_timeout = null;
+
+/**
+ * opens/closes (hides/shows) tree elements
+ *
+ * @param string id id of the element in the DOM
+ * @param boolean only_open do not close/hide element
+ */
+function toggle(id, only_open) {
+ var el = document.getElementById('subel' + id);
+ if (! el) {
+ return false;
+ }
+
+ var img = document.getElementById('el' + id + 'Img');
+
+ if (el.style.display == 'none' || only_open) {
+ el.style.display = '';
+ if (img) {
+ img.src = image_minus;
+ img.alt = '-';
+ }
+ } else {
+ el.style.display = 'none';
+ if (img) {
+ img.src = image_plus;
+ img.alt = '+';
+ }
+ }
+ return true;
+}
+
+function PMA_callFunctionDelayed(myfunction, delay)
+{
+ if (typeof pma_saveframesize_timeout == "number") {
+ window.clearTimeout(pma_saveframesize_timeout);
+ pma_saveframesize_timeout = null;
+ }
+}
+
+/**
+ * saves current navigation frame width in a cookie
+ * usally called on resize of the navigation frame
+ */
+function PMA_saveFrameSizeReal()
+{
+ if (parent.text_dir == 'ltr') {
+ pma_navi_width = parseInt(parent.document.getElementById('mainFrameset').cols)
+ } else {
+ pma_navi_width = parent.document.getElementById('mainFrameset').cols.match(/\d+$/)
+ }
+ if ((pma_navi_width > 0) && (pma_navi_width != PMA_getCookie('pma_navi_width'))) {
+ PMA_setCookie('pma_navi_width', pma_navi_width, expires);
+ }
+}
+
+/**
+ * calls PMA_saveFrameSizeReal with delay
+ */
+function PMA_saveFrameSize()
+{
+ //alert(typeof(pma_saveframesize_timeout) + ' : ' + pma_saveframesize_timeout);
+
+ if (typeof pma_saveframesize_timeout == "number") {
+ window.clearTimeout(pma_saveframesize_timeout);
+ pma_saveframesize_timeout = null;
+ }
+
+ pma_saveframesize_timeout = window.setTimeout(PMA_saveFrameSizeReal, 2000);
+}
+
+/**
+ * sets navigation frame width to the value stored in the cookie
+ * usally called on document load
+ */
+function PMA_setFrameSize()
+{
+ pma_navi_width = PMA_getCookie('pma_navi_width');
+ //alert('from cookie: ' + typeof(pma_navi_width) + ' : ' + pma_navi_width);
+ if (pma_navi_width != null) {
+ if (parent.text_dir == 'ltr') {
+ parent.document.getElementById('mainFrameset').cols = pma_navi_width + ',*';
+ } else {
+ parent.document.getElementById('mainFrameset').cols = '*,' + pma_navi_width;
+ }
+ //alert('framesize set');
+ }
+}
+
+/**
+ * retrieves a named value from cookie
+ *
+ * @param string name name of the value to retrieve
+ * @return string value value for the given name from cookie
+ */
+function PMA_getCookie(name) {
+ var start = document.cookie.indexOf(name + "=");
+ var len = start + name.length + 1;
+ if ((!start) && (name != document.cookie.substring(0, name.length))) {
+ return null;
+ }
+ if (start == -1) {
+ return null;
+ }
+ var end = document.cookie.indexOf(";", len);
+ if (end == -1) {
+ end = document.cookie.length;
+ }
+ return unescape(document.cookie.substring(len,end));
+}
+
+/**
+ * stores a named value into cookie
+ *
+ * @param string name name of value
+ * @param string value value to be stored
+ * @param Date expires expire time
+ * @param string path
+ * @param string domain
+ * @param boolean secure
+ */
+function PMA_setCookie(name, value, expires, path, domain, secure) {
+ document.cookie = name + "=" + escape(value) +
+ ( (expires) ? ";expires=" + expires.toGMTString() : "") +
+ ( (path) ? ";path=" + path : "") +
+ ( (domain) ? ";domain=" + domain : "") +
+ ( (secure) ? ";secure" : "");
+}
diff --git a/js/querywindow.js b/js/querywindow.js
new file mode 100644
index 0000000000..ba9fe6e18f
--- /dev/null
+++ b/js/querywindow.js
@@ -0,0 +1,42 @@
+function PMA_queryAutoCommit()
+{
+ document.getElementById('sqlqueryform').target = window.opener.frame_content.name;
+ document.getElementById('sqlqueryform').submit();
+ return;
+}
+
+function PMA_querywindowCommit(tab)
+{
+ document.getElementById('hiddenqueryform').querydisplay_tab.value = tab;
+ document.getElementById('hiddenqueryform').submit();
+ return false;
+}
+
+function PMA_querywindowSetFocus()
+{
+ document.getElementById('sqlquery').focus();
+}
+
+function PMA_querywindowResize()
+{
+ // for Gecko
+ if (typeof(self.sizeToContent) == 'function') {
+ self.sizeToContent();
+ //self.scrollbars.visible = false;
+ // give some more space ... to prevent 'fli(pp/ck)ing'
+ self.resizeBy(10, 50);
+ return;
+ }
+
+ // for IE, Opera
+ if (document.getElementById && typeof(document.getElementById('querywindowcontainer')) != 'undefined') {
+
+ // get content size
+ var newWidth = document.getElementById('querywindowcontainer').offsetWidth;
+ var newHeight = document.getElementById('querywindowcontainer').offsetHeight;
+
+ // set size to contentsize
+ // plus some offset for scrollbars, borders, statusbar, menus ...
+ self.resizeTo(newWidth + 45, newHeight + 75);
+ }
+}
diff --git a/js/server_privileges.js b/js/server_privileges.js
new file mode 100644
index 0000000000..ac9396d866
--- /dev/null
+++ b/js/server_privileges.js
@@ -0,0 +1,108 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * function used in server privilege pages
+ *
+ * @version $Id$
+ */
+
+/**
+ * Validates the password field in a form
+ *
+ * @uses PMA_messages['strPasswordEmpty']
+ * @uses PMA_messages['strPasswordNotSame']
+ * @param object the form
+ * @return boolean whether the field value is valid or not
+ */
+function checkPassword(the_form)
+{
+ // Did the user select 'no password'?
+ if (typeof(the_form.elements['nopass']) != 'undefined'
+ && the_form.elements['nopass'][0].checked) {
+ return true;
+ } else if (typeof(the_form.elements['pred_password']) != 'undefined'
+ && (the_form.elements['pred_password'].value == 'none'
+ || the_form.elements['pred_password'].value == 'keep')) {
+ return true;
+ }
+
+ var password = the_form.elements['pma_pw'];
+ var password_repeat = the_form.elements['pma_pw2'];
+ var alert_msg = false;
+
+ if (password.value == '') {
+ alert_msg = PMA_messages['strPasswordEmpty'];
+ } else if (password.value != password_repeat.value) {
+ alert_msg = PMA_messages['strPasswordNotSame'];
+ }
+
+ if (alert_msg) {
+ alert(alert_msg);
+ password.value = '';
+ password_repeat.value = '';
+ password.focus();
+ return false;
+ }
+
+ return true;
+} // end of the 'checkPassword()' function
+
+
+/**
+ * Validates the "add a user" form
+ *
+ * @return boolean whether the form is validated or not
+ */
+function checkAddUser(the_form)
+{
+ if (the_form.elements['pred_hostname'].value == 'userdefined' && the_form.elements['hostname'].value == '') {
+ alert(PMA_messages['strHostEmpty']);
+ the_form.elements['hostname'].focus();
+ return false;
+ }
+
+ if (the_form.elements['pred_username'].value == 'userdefined' && the_form.elements['username'].value == '') {
+ alert(PMA_messages['strUserEmpty']);
+ the_form.elements['username'].focus();
+ return false;
+ }
+
+ return checkPassword(the_form);
+} // end of the 'checkAddUser()' function
+
+
+/**
+ * Generate a new password, which may then be copied to the form
+ * with suggestPasswordCopy().
+ *
+ * @param string the form name
+ *
+ * @return boolean always true
+ */
+function suggestPassword() {
+ // restrict the password to just letters and numbers to avoid problems:
+ // "editors and viewers regard the password as multiple words and
+ // things like double click no longer work"
+ var pwchars = "abcdefhjmnpqrstuvwxyz23456789ABCDEFGHJKLMNPQRSTUVWYXZ";
+ var passwordlength = 16; // do we want that to be dynamic? no, keep it simple :)
+ var passwd = document.getElementById('generated_pw');
+ passwd.value = '';
+
+ for ( i = 0; i < passwordlength; i++ ) {
+ passwd.value += pwchars.charAt( Math.floor( Math.random() * pwchars.length ) )
+ }
+ return passwd.value;
+}
+
+
+/**
+ * Copy the generated password (or anything in the field) to the form
+ *
+ * @param string the form name
+ *
+ * @return boolean always true
+ */
+function suggestPasswordCopy() {
+ document.getElementById('text_pma_pw').value = document.getElementById('generated_pw').value;
+ document.getElementById('text_pma_pw2').value = document.getElementById('generated_pw').value;
+ return true;
+}
diff --git a/js/tbl_change.js b/js/tbl_change.js
new file mode 100644
index 0000000000..c32023ba74
--- /dev/null
+++ b/js/tbl_change.js
@@ -0,0 +1,345 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * function used in table data manipulation pages
+ *
+ * @version $Id$
+ */
+
+/**
+ * Modify from controls when the "NULL" checkbox is selected
+ *
+ * @param string the MySQL field type
+ * @param string the urlencoded field name
+ * @param string the md5 hashed field name
+ *
+ * @return boolean always true
+ */
+function nullify(theType, urlField, md5Field, multi_edit)
+{
+ var rowForm = document.forms['insertForm'];
+
+ if (typeof(rowForm.elements['funcs' + multi_edit + '[' + urlField + ']']) != 'undefined') {
+ rowForm.elements['funcs' + multi_edit + '[' + urlField + ']'].selectedIndex = -1;
+ }
+
+ // "SET" field , "ENUM" field with more than 20 characters
+ // or foreign key field
+ if (theType == 1 || theType == 3 || theType == 4) {
+ rowForm.elements['field_' + md5Field + multi_edit + '[]'].selectedIndex = -1;
+ }
+ // Other "ENUM" field
+ else if (theType == 2) {
+ var elts = rowForm.elements['field_' + md5Field + multi_edit + '[]'];
+ // when there is just one option in ENUM:
+ if (elts.checked) {
+ elts.checked = false;
+ } else {
+ var elts_cnt = elts.length;
+ for (var i = 0; i < elts_cnt; i++ ) {
+ elts[i].checked = false;
+ } // end for
+
+ } // end if
+ }
+ // Other field types
+ else /*if (theType == 5)*/ {
+ rowForm.elements['fields' + multi_edit + '[' + urlField + ']'].value = '';
+ } // end if... else if... else
+
+ return true;
+} // end of the 'nullify()' function
+
+
+/**
+ * Unchecks the "NULL" control when a function has been selected or a value
+ * entered
+ *
+ * @param string the urlencoded field name
+ *
+ * @return boolean always true
+ */
+function unNullify(urlField, multi_edit)
+{
+ var rowForm = document.forms['insertForm'];
+
+ if (typeof(rowForm.elements['fields_null[multi_edit][' + multi_edit + '][' + urlField + ']']) != 'undefined') {
+ rowForm.elements['fields_null[multi_edit][' + multi_edit + '][' + urlField + ']'].checked = false
+ } // end if
+
+ if (typeof(rowForm.elements['insert_ignore_' + multi_edit]) != 'undefined') {
+ rowForm.elements['insert_ignore_' + multi_edit].checked = false
+ } // end if
+
+ return true;
+} // end of the 'unNullify()' function
+
+var day;
+var month;
+var year;
+var hour;
+var minute;
+var second;
+var clock_set = 0;
+
+/**
+ * Opens calendar window.
+ *
+ * @param string calendar.php parameters
+ * @param string form name
+ * @param string field name
+ * @param string edit type - date/timestamp
+ */
+function openCalendar(params, form, field, type) {
+ window.open("./calendar.php?" + params, "calendar", "width=400,height=200,status=yes");
+ dateField = eval("document." + form + "." + field);
+ dateType = type;
+}
+
+/**
+ * Formats number to two digits.
+ *
+ * @param int number to format.
+ * @param string type of number
+ */
+function formatNum2(i, valtype) {
+ f = (i < 10 ? '0' : '') + i;
+ if (valtype && valtype != '') {
+ switch(valtype) {
+ case 'month':
+ f = (f > 12 ? 12 : f);
+ break;
+
+ case 'day':
+ f = (f > 31 ? 31 : f);
+ break;
+
+ case 'hour':
+ f = (f > 24 ? 24 : f);
+ break;
+
+ default:
+ case 'second':
+ case 'minute':
+ f = (f > 59 ? 59 : f);
+ break;
+ }
+ }
+
+ return f;
+}
+
+/**
+ * Formats number to two digits.
+ *
+ * @param int number to format.
+ * @param int default value
+ * @param string type of number
+ */
+function formatNum2d(i, default_v, valtype) {
+ i = parseInt(i, 10);
+ if (isNaN(i)) return default_v;
+ return formatNum2(i, valtype)
+}
+
+/**
+ * Formats number to four digits.
+ *
+ * @param int number to format.
+ */
+function formatNum4(i) {
+ i = parseInt(i, 10)
+ return (i < 1000 ? i < 100 ? i < 10 ? '000' : '00' : '0' : '') + i;
+}
+
+/**
+ * Initializes calendar window.
+ */
+function initCalendar() {
+ if (!year && !month && !day) {
+ /* Called for first time */
+ if (window.opener.dateField.value) {
+ value = window.opener.dateField.value;
+ if (window.opener.dateType == 'datetime' || window.opener.dateType == 'date') {
+ if (window.opener.dateType == 'datetime') {
+ parts = value.split(' ');
+ value = parts[0];
+
+ if (parts[1]) {
+ time = parts[1].split(':');
+ hour = parseInt(time[0],10);
+ minute = parseInt(time[1],10);
+ second = parseInt(time[2],10);
+ }
+ }
+ date = value.split("-");
+ day = parseInt(date[2],10);
+ month = parseInt(date[1],10) - 1;
+ year = parseInt(date[0],10);
+ } else {
+ year = parseInt(value.substr(0,4),10);
+ month = parseInt(value.substr(4,2),10) - 1;
+ day = parseInt(value.substr(6,2),10);
+ hour = parseInt(value.substr(8,2),10);
+ minute = parseInt(value.substr(10,2),10);
+ second = parseInt(value.substr(12,2),10);
+ }
+ }
+ if (isNaN(year) || isNaN(month) || isNaN(day) || day == 0) {
+ dt = new Date();
+ year = dt.getFullYear();
+ month = dt.getMonth();
+ day = dt.getDate();
+ }
+ if (isNaN(hour) || isNaN(minute) || isNaN(second)) {
+ dt = new Date();
+ hour = dt.getHours();
+ minute = dt.getMinutes();
+ second = dt.getSeconds();
+ }
+ } else {
+ /* Moving in calendar */
+ if (month > 11) {
+ month = 0;
+ year++;
+ }
+ if (month < 0) {
+ month = 11;
+ year--;
+ }
+ }
+
+ if (document.getElementById) {
+ cnt = document.getElementById("calendar_data");
+ } else if (document.all) {
+ cnt = document.all["calendar_data"];
+ }
+
+ cnt.innerHTML = "";
+
+ str = ""
+
+ //heading table
+ str += '<table class="calendar"><tr><th width="50%">';
+ str += '<form method="NONE" onsubmit="return 0">';
+ str += '<a href="javascript:month--; initCalendar();">&laquo;</a> ';
+ str += '<select id="select_month" name="monthsel" onchange="month = parseInt(document.getElementById(\'select_month\').value); initCalendar();">';
+ for (i =0; i < 12; i++) {
+ if (i == month) selected = ' selected="selected"';
+ else selected = '';
+ str += '<option value="' + i + '" ' + selected + '>' + month_names[i] + '</option>';
+ }
+ str += '</select>';
+ str += ' <a href="javascript:month++; initCalendar();">&raquo;</a>';
+ str += '</form>';
+ str += '</th><th width="50%">';
+ str += '<form method="NONE" onsubmit="return 0">';
+ str += '<a href="javascript:year--; initCalendar();">&laquo;</a> ';
+ str += '<select id="select_year" name="yearsel" onchange="year = parseInt(document.getElementById(\'select_year\').value); initCalendar();">';
+ for (i = year - 25; i < year + 25; i++) {
+ if (i == year) selected = ' selected="selected"';
+ else selected = '';
+ str += '<option value="' + i + '" ' + selected + '>' + i + '</option>';
+ }
+ str += '</select>';
+ str += ' <a href="javascript:year++; initCalendar();">&raquo;</a>';
+ str += '</form>';
+ str += '</th></tr></table>';
+
+ str += '<table class="calendar"><tr>';
+ for (i = 0; i < 7; i++) {
+ str += "<th>" + day_names[i] + "</th>";
+ }
+ str += "</tr>";
+
+ var firstDay = new Date(year, month, 1).getDay();
+ var lastDay = new Date(year, month + 1, 0).getDate();
+
+ str += "<tr>";
+
+ dayInWeek = 0;
+ for (i = 0; i < firstDay; i++) {
+ str += "<td>&nbsp;</td>";
+ dayInWeek++;
+ }
+ for (i = 1; i <= lastDay; i++) {
+ if (dayInWeek == 7) {
+ str += "</tr><tr>";
+ dayInWeek = 0;
+ }
+
+ dispmonth = 1 + month;
+
+ if (window.opener.dateType == 'datetime' || window.opener.dateType == 'date') {
+ actVal = "" + formatNum4(year) + "-" + formatNum2(dispmonth, 'month') + "-" + formatNum2(i, 'day');
+ } else {
+ actVal = "" + formatNum4(year) + formatNum2(dispmonth, 'month') + formatNum2(i, 'day');
+ }
+ if (i == day) {
+ style = ' class="selected"';
+ current_date = actVal;
+ } else {
+ style = '';
+ }
+ str += "<td" + style + "><a href=\"javascript:returnDate('" + actVal + "');\">" + i + "</a></td>"
+ dayInWeek++;
+ }
+ for (i = dayInWeek; i < 7; i++) {
+ str += "<td>&nbsp;</td>";
+ }
+
+ str += "</tr></table>";
+
+ cnt.innerHTML = str;
+
+ // Should we handle time also?
+ if (window.opener.dateType != 'date' && !clock_set) {
+
+ if (document.getElementById) {
+ cnt = document.getElementById("clock_data");
+ } else if (document.all) {
+ cnt = document.all["clock_data"];
+ }
+
+ str = '';
+ init_hour = hour;
+ init_minute = minute;
+ init_second = second;
+ str += '<fieldset>';
+ str += '<form method="NONE" class="clock" onsubmit="returnDate(\'' + current_date + '\')">';
+ str += '<input id="hour" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_hour, \'hour\'); init_hour = this.value;" value="' + formatNum2(hour, 'hour') + '" />:';
+ str += '<input id="minute" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_minute, \'minute\'); init_minute = this.value;" value="' + formatNum2(minute, 'minute') + '" />:';
+ str += '<input id="second" type="text" size="2" maxlength="2" onblur="this.value=formatNum2d(this.value, init_second, \'second\'); init_second = this.value;" value="' + formatNum2(second, 'second') + '" />';
+ str += '&nbsp;&nbsp;';
+ str += '<input type="submit" value="' + submit_text + '"/>';
+ str += '</form>';
+ str += '</fieldset>';
+
+ cnt.innerHTML = str;
+ clock_set = 1;
+ }
+
+}
+
+/**
+ * Returns date from calendar.
+ *
+ * @param string date text
+ */
+function returnDate(d) {
+ txt = d;
+ if (window.opener.dateType != 'date') {
+ // need to get time
+ h = parseInt(document.getElementById('hour').value,10);
+ m = parseInt(document.getElementById('minute').value,10);
+ s = parseInt(document.getElementById('second').value,10);
+ if (window.opener.dateType == 'datetime') {
+ txt += ' ' + formatNum2(h, 'hour') + ':' + formatNum2(m, 'minute') + ':' + formatNum2(s, 'second');
+ } else {
+ // timestamp
+ txt += formatNum2(h, 'hour') + formatNum2(m, 'minute') + formatNum2(s, 'second');
+ }
+ }
+
+ window.opener.dateField.value = txt;
+ window.close();
+}
diff --git a/js/tooltip.js b/js/tooltip.js
new file mode 100644
index 0000000000..c6661f21a7
--- /dev/null
+++ b/js/tooltip.js
@@ -0,0 +1,212 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays the Tooltips (hints), if we have some
+ * 2005-01-20 added by Michael Keck (mkkeck)
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+var ttXpos = 0, ttYpos = 0;
+var ttXadd = 10, ttYadd = -10;
+var ttDisplay = 0, ttHoldIt = 0;
+
+// Check if browser does support dynamic content and dhtml
+if (document.getElementById) {
+ // DOM-compatible browsers
+ var ttDOM = 1;
+} else {
+ // the old Netscape 4
+ var ttNS4 = (document.layers) ? 1 : 0;
+ // browser wich uses document.all
+ var ttIE4 = (document.all) ? 1 : 0;
+}
+
+var myTooltipContainer = null;
+
+/**
+ * initialize tooltip
+ */
+function PMA_TT_init()
+{
+ // get all 'light bubbles' on page
+ var tooltip_icons = window.parent.getElementsByClassName('footnotemarker', document, 'sup');
+ var tooltip_count = tooltip_icons.length;
+
+ if (tooltip_count < 1) {
+ // no 'bubbles' found
+ return;
+ }
+
+ // insert tooltip container
+ myTooltipContainer = document.createElement("div");
+ myTooltipContainer.id = 'TooltipContainer';
+ window.parent.addEvent(myTooltipContainer, 'mouseover', holdTooltip);
+ window.parent.addEvent(myTooltipContainer, 'mouseout', swapTooltip);
+ document.body.appendChild(myTooltipContainer);
+
+ // capture mouse-events
+ for (i = 0; i < tooltip_count; i++) {
+ window.parent.addEvent(tooltip_icons[i], 'mousemove', mouseMove);
+ window.parent.addEvent(tooltip_icons[i], 'mouseover', pmaTooltip);
+ window.parent.addEvent(tooltip_icons[i], 'mouseout', swapTooltip);
+ }
+}
+
+/**
+ * init the tooltip and write the text into it
+ *
+ * @param string theText tooltip content
+ */
+function PMA_TT_setText(theText)
+{
+ if (ttDOM || ttIE4) { // document.getEelementById || document.all
+ myTooltipContainer.innerHTML = ""; // we should empty it first
+ myTooltipContainer.innerHTML = theText;
+ } else if (ttNS4) { // document.layers
+ var layerNS4 = myTooltipContainer.document;
+ layerNS4.write(theText);
+ layerNS4.close();
+ }
+}
+
+/**
+ * @var integer
+ */
+var ttTimerID = 0;
+
+/**
+ * swap the Tooltip // show and hide
+ *
+ * @param boolean stat view status
+ */
+function swapTooltip(stat)
+{
+ if (ttHoldIt != 1) {
+ if (stat == 'true') {
+ showTooltip(true);
+ } else if (ttDisplay) {
+ ttTimerID = setTimeout("showTooltip(false);", 500);
+ } else {
+ showTooltip(true);
+ }
+ } else {
+ if (ttTimerID) {
+ clearTimeout(ttTimerID);
+ ttTimerID = 0;
+ }
+ showTooltip(true);
+ }
+}
+
+/**
+ * show / hide the Tooltip
+ *
+ * @param boolean stat view status
+ */
+function showTooltip(stat)
+{
+ if (stat == false) {
+ if (ttNS4)
+ myTooltipContainer.visibility = "hide";
+ else
+ myTooltipContainer.style.visibility = "hidden";
+ ttDisplay = 0;
+ } else {
+ if (ttNS4)
+ myTooltipContainer.visibility = "show";
+ else
+ myTooltipContainer.style.visibility = "visible";
+ ttDisplay = 1;
+ }
+}
+
+/**
+ * hold it, if we create or move the mouse over the tooltip
+ */
+function holdTooltip()
+{
+ ttHoldIt = 1;
+ swapTooltip('true');
+ ttHoldIt = 0;
+}
+
+/**
+ * move the tooltip to mouse position
+ *
+ * @param integer posX horiz. position
+ * @param integer posY vert. position
+ */
+function moveTooltip(posX, posY)
+{
+ if (ttDOM || ttIE4) {
+ myTooltipContainer.style.left = posX + "px";
+ myTooltipContainer.style.top = posY + "px";
+ } else if (ttNS4) {
+ myTooltipContainer.left = posX;
+ myTooltipContainer.top = posY;
+ }
+}
+
+/**
+ * build the tooltip
+ * usally called from eventhandler
+ *
+ * @param string theText tooltip content
+ */
+function pmaTooltip(e)
+{
+ var theText = document.getElementById('footnote_' + this.innerHTML).innerHTML;
+
+ var plusX = 0, plusY = 0, docX = 0, docY = 0;
+ var divHeight = myTooltipContainer.clientHeight;
+ var divWidth = myTooltipContainer.clientWidth;
+
+ if (navigator.appName.indexOf("Explorer") != -1) {
+ // IE ...
+ if (document.documentElement && document.documentElement.scrollTop) {
+ plusX = document.documentElement.scrollLeft;
+ plusY = document.documentElement.scrollTop;
+ docX = document.documentElement.offsetWidth + plusX;
+ docY = document.documentElement.offsetHeight + plusY;
+ } else {
+ plusX = document.body.scrollLeft;
+ plusY = document.body.scrollTop;
+ docX = document.body.offsetWidth + plusX;
+ docY = document.body.offsetHeight + plusY;
+ }
+ } else {
+ docX = document.body.clientWidth;
+ docY = document.body.clientHeight;
+ }
+
+ ttXpos = ttXpos + plusX;
+ ttYpos = ttYpos + plusY;
+
+ if ((ttXpos + divWidth) > docX)
+ ttXpos = ttXpos - (divWidth + (ttXadd * 2));
+ if ((ttYpos + divHeight) > docY)
+ ttYpos = ttYpos - (divHeight + (ttYadd * 2));
+
+ PMA_TT_setText(theText);
+ moveTooltip((ttXpos + ttXadd), (ttYpos + ttYadd));
+ holdTooltip();
+}
+
+/**
+ * register mouse moves
+ *
+ * @param event e
+ */
+function mouseMove(e) {
+ if ( typeof( event ) != 'undefined' ) {
+ ttXpos = event.x;
+ ttYpos = event.y;
+ } else {
+ ttXpos = e.pageX;
+ ttYpos = e.pageY;
+ }
+ moveTooltip((ttXpos + ttXadd), (ttYpos + ttYadd));
+}
diff --git a/lang/add_message.sh b/lang/add_message.sh
new file mode 100755
index 0000000000..515578bec1
--- /dev/null
+++ b/lang/add_message.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+# $Id$
+#
+# Shell script that adds a message to all message files (Lem9)
+#
+# Example: add_message.sh '$strNewMessage' 'new message contents'
+#
+
+if [ $# -ne 2 ] ; then
+ echo "usage: add_message.sh '\$strNewMessage' 'new message contents'"
+ exit 1
+fi
+
+for file in *.inc.php
+do
+ echo $file " "
+ grep -v '?>' ${file} > ${file}.new
+ case $file in
+ english*)
+ echo "$1 = '"$2"';" >> ${file}.new
+ ;;
+ *)
+ echo "$1 = '"$2"'; //to translate" >> ${file}.new
+ ;;
+ esac
+ echo "?>" >> ${file}.new
+ rm $file
+ mv ${file}.new $file
+done
+./sort_lang.sh english*
+echo " "
+echo "Message added to all message files (including english)"
diff --git a/lang/add_message_file.sh b/lang/add_message_file.sh
new file mode 100755
index 0000000000..58771d1331
--- /dev/null
+++ b/lang/add_message_file.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+# $Id$
+#
+# Shell script that adds a message file to all message files
+# adding "//to translate" on each line
+#
+# Example: add_message_file.sh xxx
+#
+if [ $# -ne 1 ] ; then
+ echo "usage: add_message_file.sh filename"
+ exit 1
+fi
+
+for file in *.inc.php
+do
+ echo $file " "
+ grep -v '?>' ${file} > ${file}.new
+ case $file in
+ english*)
+ sed -n 's/\(.*\);/\1;/p' $1 >> ${file}.new
+ ;;
+ *)
+ sed -n 's/\(.*\);/\1; \/\/to translate/p' $1 >> ${file}.new
+ ;;
+ esac
+ echo "?>" >> ${file}.new
+ rm $file
+ mv ${file}.new $file
+done
+./sort_lang.sh english*
+echo " "
+echo "Messages added to add message files (including english)"
diff --git a/lang/afrikaans-utf-8.inc.php b/lang/afrikaans-utf-8.inc.php
new file mode 100644
index 0000000000..84ecc9ef84
--- /dev/null
+++ b/lang/afrikaans-utf-8.inc.php
@@ -0,0 +1,1472 @@
+<?php
+/* $Id$ */
+
+/*
+ translated by Andreas Pauley <pauley@buitegroep.org.za>
+
+Dit lyk nogal snaaks in Afrikaans ;-).
+Laat weet my asb. as jy aan beter taalgebruik kan dink.
+*/
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('So', 'Ma', 'Di', 'Wo', 'Do', 'Fr', 'Sa');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y at %I:%M %p';
+$timespanfmt = '%s days, %s hours, %s minutes and %s seconds';
+
+$strAccessDenied = 'Toegang Geweier';
+$strAction = 'Aksie';
+$strAddDeleteColumn = 'Voeg By/Verwyder Veld Kolomme';
+$strAddDeleteRow = 'Voeg By/Verwyder Kriteria Ry';
+$strAddNewField = 'Voeg \'n nuwe veld by';
+$strAddSearchConditions = 'Voeg soek kriteria by (laaste deel van die "where" in SQL SELECT):';
+$strAddToIndex = 'Voeg by indeks &nbsp;%s&nbsp;kolom(me)';
+$strAddUserMessage = 'Jy het \'n nuwe gebruiker bygevoeg.';
+$strAddUser = 'Voeg \'n nuwe gebruiker by';
+$strAfterInsertBack = 'Terug na vorige bladsy';
+$strAfterInsertNewInsert = 'Voeg \'n nuwe ry by';
+$strAfter = 'Na %s';
+$strAll = 'Alle';
+$strAllTableSameWidth = 'vertoon alle tabelle met dieselfde wydte?';
+$strAlterOrderBy = 'Verander tabel sorteer volgens';
+$strAnalyzeTable = 'Analiseer tabel';
+$strAnd = 'En';
+$strAnIndex = '\'n Indeks is bygevoeg op %s';
+$strAny = 'Enige';
+$strAnyHost = 'Enige gasheer (host)';
+$strAnyUser = 'Enige gebruiker';
+$strAPrimaryKey = '\'n primere sleutel is bygevoeg op %s';
+$strAscending = 'Dalend';
+$strAtBeginningOfTable = 'By Begin van Tabel';
+$strAtEndOfTable = 'By Einde van Tabel';
+$strAttr = 'Kenmerke';
+
+$strBack = 'Terug';
+$strBeginCut = 'BEGIN UITKNIPSEL';
+$strBeginRaw = 'BEGIN ONVERANDERD (RAW)';
+$strBinary = 'Biner';
+$strBinaryDoNotEdit = 'Biner - moenie verander nie';
+$strBookmarkDeleted = 'Die boekmerk is verwyder.';
+$strBookmarkLabel = 'Etiket';
+$strBookmarkQuery = 'Geboekmerkde SQL-stelling';
+$strBookmarkThis = 'Boekmerk hierdie SQL-stelling';
+$strBookmarkView = 'Kyk slegs';
+$strBrowse = 'Beloer Data';
+$strBzip = '"ge-bzip"';
+
+$strCantLoadRecodeIconv = 'Kan nie iconv laai nie, of "recode" ekstensie word benodig vir die karakterstel omskakeling, stel PHP op om hierdie ekstensies toe te laat of verwyder karakterstel omskakeling in phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Kannie die indeks hernoem na PRIMARY!';
+$strCantUseRecodeIconv = 'Kan nie iconv, libiconv of recode_string funksie gebruik terwyl die extensie homself as gelaai rapporteer nie. Kyk na jou PHP opstelling.';
+$strCardinality = 'Cardinality';
+$strChangeDisplay = 'Kies \'n Veld om te vertoon';
+$strChangePassword = 'Verander wagwoord';
+$strChange = 'Verander';
+$strCharsetOfFile = 'Karakterstel van die leer:';
+$strCheckAll = 'Kies Alles';
+$strCheckTable = 'Kontroleer tabel';
+$strChoosePage = 'Kies asb. \'n bladsy om te verander';
+$strColComFeat = 'Kolom Kommentaar word vertoon';
+$strColumnNames = 'Kolom name';
+$strComments = 'Kommentaar';
+$strCompleteInserts = 'Voltooi invoegings';
+$strConfigFileError = 'phpMyAdmin was nie in staat om jou konfigurasie leer te lees nie!<br />Dit kan moontlik gebeur wanneer PHP \'n fout in die leer vind of die leer sommer glad nie vind nie.<br />Volg asb. die skakel hieronder om die leer direk te roep, en lees dan enige foutboodskappe. In die meeste gevalle is daar net \'n quote of \'n kommapunt weg erens.<br />Indien jy \'n bladsy kry wat leeg is, is alles klopdisselboom.';
+$strConfigureTableCoord = 'Stel asb. die koordinate op van tabel %s';
+$strCookiesRequired = 'HTTP Koekies moet van nou af geaktifeer wees.';
+$strCopyTable = 'Kopieer tabel na (databasis<b>.</b>tabel):';
+$strCopyTableOK = 'Tabel %s is gekopieer na %s.';
+$strCreateIndex = 'Skep \'n indeks op&nbsp;%s&nbsp;kolomme';
+$strCreateIndexTopic = 'Skep \'n nuwe indeks';
+$strCreateNewDatabase = 'Skep \'n nuwe databasis';
+$strCreateNewTable = 'Skep \'n nuwe tabel op databasis %s';
+$strCreatePage = 'Skep \'n nuwe bladsy';
+$strCreatePdfFeat = 'Skepping van PDF\'s';
+$strCreate = 'Skep';
+$strCriteria = 'Kriteria';
+
+$strDatabase = 'Databasis';
+$strDatabaseHasBeenDropped = 'Databasis %s is verwyder.';
+$strDatabases = 'databasisse';
+$strDatabasesStats = 'Databasis statistieke';
+$strData = 'Data';
+$strDataOnly = 'Slegs Data';
+$strDefault = 'Verstekwaarde (default)';
+$strDeleted = 'Die ry is verwyder';
+$strDelete = 'Verwyder';
+$strDescending = 'Dalend';
+$strDisabled = 'Onbeskikbaar';
+$strDisplayFeat = 'Vertoon Funksies';
+$strDisplayOrder = 'Vertoon volgorde:';
+$strDisplayPDF = 'Vertoon PDF skema';
+$strDoAQuery = 'Doen \'n "Navraag dmv Voorbeeld" (wildcard: "%")';
+$strDocu = 'Dokumentasie';
+$strDoYouReally = 'Wil jy regtig ';
+$strDrop = 'Verwyder';
+$strDumpingData = 'Stort data vir tabel';
+$strDumpXRows = 'Stort %s rye beginnende by rekord # %s.';
+$strDynamic = 'dinamies';
+
+$strEditPDFPages = 'Verander PDF Bladsye';
+$strEditPrivileges = 'Verander Regte';
+$strEdit = 'Verander';
+$strEffective = 'Effektief';
+$strEmpty = 'Maak Leeg';
+$strEmptyResultSet = 'MySQL het niks teruggegee nie (dus nul rye).';
+$strEnabled = 'Beskikbaar';
+$strEndCut = 'EINDE UITKNIPSEL';
+$strEnd = 'Einde';
+$strEndRaw = 'EINDE ONVERANDERD (RAW)';
+$strEnglishPrivileges = ' Nota: MySQL regte name word in Engels vertoon ';
+$strError = 'Fout';
+$strExplain = 'Verduidelik SQL';
+$strExport = 'Export';
+$strExtendedInserts = 'Uitgebreide toevoegings';
+$strExtra = 'Ekstra';
+
+$strFieldHasBeenDropped = 'Veld %s is verwyder';
+$strFieldsEnclosedBy = 'Velde omring met';
+$strFieldsEscapedBy = 'Velde ontsnap (escaped) deur';
+$strFieldsTerminatedBy = 'Velde beeindig deur';
+$strFields = 'Velde';
+$strField = 'Veld';
+$strFixed = 'vaste (fixed)';
+$strFlushTable = 'Spoel die tabel ("FLUSH")';
+$strFormat = 'Formaat';
+$strFormEmpty = 'Daar ontbreek \'n waarde in die vorm !';
+$strFullText = 'Volle Tekste';
+$strFunction = 'Funksie';
+
+$strGenBy = 'Voortgebring deur';
+$strGeneralRelationFeat = 'Algemene verwantskap funksies';
+$strGenTime = 'Generasie Tyd';
+$strGo = 'Gaan';
+$strGzip = '"ge-gzip"';
+
+$strHasBeenAltered = 'is verander.';
+$strHaveToShow = 'Jy moet ten minste een Kolom kies om te vertoon';
+$strHomepageOfficial = 'Amptelike phpMyAdmin Tuisblad';
+$strHome = 'Tuis';
+$strHostEmpty = 'Die gasheer naam is leeg!';
+$strHost = 'Gasheer (host)';
+
+$strIdxFulltext = 'Volteks';
+$strIgnore = 'Ignoreer';
+$strIndexes = 'Indekse';
+$strIndexHasBeenDropped = 'Indeks %s is verwyder';
+$strIndex = 'Indeks';
+$strIndexName = 'Indeks naam&nbsp;:';
+$strIndexType = 'Indeks tipe&nbsp;:';
+$strInsertAsNewRow = 'Voeg by as \'n nuwe ry';
+$strInsert = 'Voeg by';
+$strInUse = 'in gebruik';
+
+$strKeepPass = 'Moenie die wagwoord verander nie';
+$strKeyname = 'Sleutelnaam';
+$strKill = 'Vermoor';
+
+$strLengthSet = 'Lengte/Waardes*';
+$strLimitNumRows = 'Hoeveelheid rye per bladsy';
+$strLinesTerminatedBy = 'Lyne beeindig deur';
+$strLinkNotFound = 'Skakel nie gevind nie';
+$strLinksTo = 'Skakels na';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Soek die teksleer';
+$strLogin = 'Teken aan';
+$strLogout = 'Teken uit';
+$strLogPassword = 'Wagwoord:';
+$strLogUsername = 'Gebruiker Naam:';
+
+$strModifications = 'Veranderinge is gestoor';
+$strModifyIndexTopic = 'Verander \'n indeks';
+$strModify = 'Verander';
+$strMoveTableOK = 'Tabel %s is geskuif na %s.';
+$strMoveTable = 'Skuif tabel na (databasis<b>.</b>tabel):';
+$strMySQLCharset = 'MySQL Karakterstel';
+$strMySQLSaid = 'MySQL het gepraat: ';
+$strMySQLShowProcess = 'Wys prosesse';
+
+$strName = 'Naam';
+$strNext = 'Volgende';
+$strNoDatabases = 'Geen databasisse';
+$strNoDescription = 'geen Beskrywing';
+$strNoDropDatabases = '"DROP DATABASE" stellings word nie toegelaat nie.';
+$strNoExplain = 'Ignoreer SQL Verduideliking';
+$strNoFrames = 'phpMyAdmin verkies \'n <b>frames-kapabele</b> blaaier.';
+$strNoIndex = 'Geen indeks gedefinieer!';
+$strNoIndexPartsDefined = 'Geen indeks dele gedefinieer!';
+$strNoModification = 'Geen verandering';
+$strNo = 'Nee';
+$strNone = 'Geen';
+$strNoPassword = 'Geen Wagwoord';
+$strNoPhp = 'Sonder PHP Kode';
+$strNoPrivileges = 'Geen Regte';
+$strNoRights = 'Jy het nie genoeg regte om nou hier te wees nie!';
+$strNoTablesFound = 'Geen tabelle in databasis gevind nie.';
+$strNotNumber = 'Hierdie is nie \'n nommer nie';
+$strNotOK = 'nie OK';
+$strNotSet = '<b>%s</b> tabel nie gevind nie of nie gesetel in %s';
+$strNoUsersFound = 'Geen gebruiker(s) gevind nie.';
+$strNoValidateSQL = 'Ignoreer SQL Validasie';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s resultate binne tabel <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Totaal:</b> <i>%s</i> ooreenkomste';
+
+$strOK = 'OK';
+$strOperations = 'Operasies';
+$strOptimizeTable = 'Optimaliseer tabel';
+$strOr = 'Of';
+$strOverhead = 'Overhead';
+
+$strPageNumber = 'Bladsy nommer:';
+$strPartialText = 'Gedeeltelike Tekste';
+$strPasswordEmpty = 'Die wagwoord is leeg!';
+$strPasswordNotSame = 'Die wagwoorde is verskillend!';
+$strPassword = 'Wagwoord';
+$strPdfDbSchema = 'Skema van die "%s" databasis - Bladsy %s';
+$strPdfInvalidTblName = 'Die "%s" databasis bestaan nie!';
+$strPdfNoTables = 'Geen tabelle';
+$strPhp = 'Skep PHP Kode';
+$strPHPVersion = 'PHP Version';
+$strPmaDocumentation = 'phpMyAdmin dokumentasie';
+$strPmaUriError = 'Die <tt>$cfg[\'PmaAbsoluteUri\']</tt> veranderlike MOET gestel wees in jou konfigurasie leer!';
+$strPos1 = 'Begin';
+$strPrevious = 'Vorige';
+$strPrimaryKeyHasBeenDropped = 'Die primere sleutel is verwyder';
+$strPrimaryKeyName = 'Die naam van die primere sleutel moet PRIMARY wees!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>moet</b> die naam wees van die primere sleutel, en <b>slegs</b> van die primere sleutel!)';
+$strPrimary = 'Primere';
+$strPrintView = 'Drukker mooi (print view)';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivileges = 'Regte';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Navraag dmv Voorbeeld';
+$strQueryOnDb = 'SQL-navraag op databasis <b>%s</b>:';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+
+$strRecords = 'Rekords';
+$strReferentialIntegrity = 'Toets referential integrity:';
+$strRelationNotWorking = 'Die addisionele funksies om met geskakelde tabelle te werk is ge deaktiveer. Om uit te vind hoekom kliek %shier%s.';
+$strRelationView = 'Relasie uitsig';
+$strRenameTable = 'Hernoem tabel na';
+$strRenameTableOK = 'Tabel %s is vernoem na %s';
+$strRepairTable = 'Herstel tabel';
+$strReplaceTable = 'Vervang tabel data met leer (file)';
+$strReset = 'Herstel';
+$strReType = 'Tik weer';
+$strRevoke = 'Herroep';
+$strRevokeMessage = 'Jy het die regte herroep vir %s';
+$strRowLength = 'Ry lengte';
+$strRowsFrom = 'ry(e) beginnende vanaf rekord #';
+$strRowSize = ' Ry grootte ';
+$strRowsModeHorizontal = 'horisontale';
+$strRowsModeOptions = 'in %s formaat en herhaal opskrifte na %s selle';
+$strRowsModeVertical = 'vertikale';
+$strRows = 'Rye';
+$strRowsStatistic = 'Ry Statistiek';
+$strRunning = 'op bediener %s';
+$strRunQuery = 'Doen Navraag';
+$strRunSQLQuery = 'Hardloop SQL stellings op databasis %s';
+
+$strSave = 'Stoor';
+$strScaleFactorSmall = 'Die skaal faktor is te klein om die skema op een bladsy te pas';
+$strSearchFormTitle = 'Soek in databasis';
+$strSearchInTables = 'Binne tabel(le):';
+$strSearchNeedle = 'Woord(e) of waarde(s) om voor te soek (wildcard: "%"):';
+$strSearchOption1 = 'ten minste een van die woorde';
+$strSearchOption2 = 'alle woorde';
+$strSearchOption3 = 'die presiese frase';
+$strSearchOption4 = 'as \'n regular expression';
+$strSearchResultsFor = 'Soek resultate vir "<i>%s</i>" %s:';
+$strSearch = 'Soek';
+$strSearchType = 'Vind:';
+$strSelectADb = 'Kies asb. \'n databasis';
+$strSelectAll = 'Kies Alles';
+$strSelectFields = 'Kies Velde (ten minste een):';
+$strSelectNumRows = 'in navraag';
+$strSelectTables = 'Kies Tabelle';
+$strSend = 'Stoor as leer (file)';
+$strServerChoice = 'Bediener Keuse';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strServerVersion = 'Bediener weergawe';
+$strSetEnumVal = 'If field type is "enum" or "set", please enter the values using this format: \'a\',\'b\',\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'Wys alles';
+$strShowColor = 'Wys kleur';
+$strShowGrid = 'Wys ruitgebied';
+$strShowingRecords = 'Vertoon rye';
+$strShowPHPInfo = 'Wys PHP informasie';
+$strShowTableDimension = 'Wys dimensie van tabelle';
+$strShowTables = 'Wys tabelle';
+$strShowThisQuery = ' Wys hierdie navraag weer hier ';
+$strShow = 'Wys';
+$strSingly = '(afsonderlik)';
+$strSize = 'Grootte';
+$strSort = 'Sorteer';
+$strSpaceUsage = 'Spasie verbruik';
+$strSplitWordsWithSpace = 'Woorde is geskei dmv \'n spasie karakter (" ").';
+$strSQLParserBugMessage = 'Jy het moontlik \'n fout in die SQL interpreteerder ontdek. Ondersoek asb. jou stelling deeglik, en maak seker dat jou kwotasies korrek en gebalanseerd is. Ander moontlike oorsake vir die fout mag wees dat jy probeer om \'n leer in te laai met binere data buite \'n gekwoteerde teks area. Jy kan jou SQL stelling ook probeer direk in die MySQL opdrag-raakvlak (command line interface). Die MySQL bediener se foutboodskap hieronder (indien enige) kan jou ook help om die probleem te diagnoseer. As jy dan nog steeds probleme het, of as die interpreteerder fouteer waar die opdrag-raakvlak slaag, verminder asb. jou SQL stelling toevoer na die enkele stelling wat die probleem veroorsaak, en rapporteer \'n fout met die data stuk in die UITKNIPSEL seksie hieronder:';
+$strSQLParserUserError = 'Dit lyk of daar \'n fout is in jou SQL stelling. Die MySQL bediener se foutboodskap hieronder (indien enige) kan jou ook help om die probleem te diagnoseer';
+$strSQLQuery = 'SQL-stelling';
+$strSQLResult = 'SQL resultaat';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Ongeldige Identifiseerder';
+$strSQPBugUnclosedQuote = 'Ongebalanseerde kwotasie-teken';
+$strSQPBugUnknownPunctuation = 'Onbekende Punktuasie String';
+$strStatement = 'Stellings';
+$strStrucCSV = 'CSV data';
+$strStrucData = 'Struktuur en data';
+$strStrucExcelCSV = 'CSV vir M$ Excel data';
+$strStrucOnly = 'Slegs struktuur';
+$strStructPropose = 'Stel tabel struktuur voor';
+$strStructure = 'Struktuur';
+$strSubmit = 'Stuur';
+$strSuccess = 'Jou SQL-navraag is suksesvol uitgevoer';
+$strSum = 'Som';
+
+$strTableComments = 'Tabel kommentaar';
+$strTableEmpty = 'Die tabel naam is leeg!';
+$strTableHasBeenDropped = 'Tabel %s is verwyder';
+$strTableHasBeenEmptied = 'Tabel %s is leeg gemaak';
+$strTableHasBeenFlushed = 'Tabel %s is geflush';
+$strTableMaintenance = 'Tabel instandhouding';
+$strTables = '%s tabel(le)';
+$strTableStructure = 'Tabel struktuur vir tabel';
+$strTable = 'Tabel';
+$strTextAreaLength = ' Omrede sy lengte,<br /> is hierdie veld moontlik nie veranderbaar nie ';
+$strTotal = 'totaal';
+$strType = 'Tipe';
+
+$strUncheckAll = 'Kies Niks';
+$strUnique = 'Uniek';
+$strUnselectAll = 'Selekteer Niks';
+$strUpdatePrivMessage = 'Jy het die regte opgedateer vir %s.';
+$strUpdateProfileMessage = 'Die profiel is opgedateer.';
+$strUpdateQuery = 'Verander Navraag';
+$strUsage = 'Gebruik';
+$strUseBackquotes = 'Omring tabel en veldname met backquotes';
+$strUserEmpty = 'Die gebruiker naam ontbreek!';
+$strUser = 'Gebruiker';
+$strUserName = 'Gebruiker naam';
+$strUseTables = 'Gebruik Tabelle';
+
+$strValidateSQL = 'Valideer SQL';
+$strValue = 'Waarde';
+$strViewDumpDB = 'Sien die storting (skema) van die databasis';
+$strViewDump = 'Sien die storting (skema) van die tabel';
+
+$strWelcome = 'Welkom by %s';
+$strWithChecked = 'Met gekose:';
+$strWrongUser = 'Verkeerde gebruikernaam/wagwoord. Toegang geweier.';
+
+$strYes = 'Ja';
+
+$strZip = '"ge-zip"';
+
+// To translate:
+$strAbortedClients = 'Aborted'; //to translate
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAddIntoComments = 'Add into comments';//to translate
+$strAddPrivilegesOnDb = 'Add privileges on the following database'; //to translate
+$strAddPrivilegesOnTbl = 'Add privileges on the following table'; //to translate
+$strAdministration = 'Administration'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+$strArabic = 'Arabic'; //to translate
+$strArmenian = 'Armenian'; //to translate
+$strAutomaticLayout = 'Automatic layout'; //to translate
+
+$strBaltic = 'Baltic'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBulgarian = 'Bulgarian'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCannotLogin = 'Cannot login to MySQL server'; //to translate
+$strCantLoad = 'cannot load %s extension,<br />please check PHP Configuration'; //to translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCentralEuropean = 'Central European'; //to translate
+$strChangeCopyModeCopy = '... keep the old one.'; //to translate
+$strChangeCopyMode = 'Create a new user with the same privileges and ...'; //to translate
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; //to translate
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; //to translate
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; //to translate
+$strChangeCopyUser = 'Change Login Information / Copy User'; //to translate
+$strCharset = 'Charset'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCharsets = 'Charsets'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCheckPrivs = 'Check Privileges'; //to translate
+$strCheckPrivsLong = 'Check privileges for database &quot;%s&quot;.'; //to translate
+$strCollation = 'Collation'; //to translate
+$strColumnPrivileges = 'Column-specific privileges'; //to translate
+$strCommand = 'Command'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompression = 'Compression'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConnections = 'Connections'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCopyTableSameNames = 'Can\'t copy table to same one!'; //to translate
+$strCouldNotKill = 'phpMyAdmin was unable to kill thread %s. It probably has already been closed.'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCroatian = 'Croatian'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCyrillic = 'Cyrillic'; //to translate
+$strCzech = 'Czech'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDanish = 'Danish'; //to translate
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDatabaseExportOptions = 'Database export options';//to translate
+$strDatabasesDropped = '%s databases have been dropped successfully.'; //to translate
+$strDatabasesStatsDisable = 'Disable Statistics'; //to translate
+$strDatabasesStatsEnable = 'Enable Statistics'; //to translate
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the Database statistics here might cause heavy traffic between the webserver and the MySQL one.'; //to translate
+$strDataDict = 'Data Dictionary'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBComment = 'Database comment: ';//to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDbPrivileges = 'Database-specific privileges'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDbSpecific = 'database-specific'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteAndFlush = 'Delete the users and reload the privileges afterwards.'; //to translate
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDeleting = 'Deleting %s'; //to translate
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+$strDescription = 'Description'; //to translate
+$strDictionary = 'dictionary'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+$strDropUsersDb = 'Drop the databases that have the same names as the users.'; //to translate
+$strDumpSaved = 'Dump has been saved to file %s.'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strEnglish = 'English'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strEstonian = 'Estonian'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+
+$strFailedAttempts = 'Failed attempts'; //to translate
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.'; //to translate
+$strFileCouldNotBeRead = 'File could not be read'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileNameTemplate = 'File name template';//to translate
+$strFileNameTemplateRemember = 'remember template';//to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of this tables may differ from the privileges the server uses if manual changes have made to it. In this case, you should %sreload the privileges%s before you continue.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+$strGerman = 'German'; //to translate
+$strGlobal = 'global'; //to translate
+$strGlobalPrivileges = 'Global privileges'; //to translate
+$strGlobalValue = 'Global value'; //to translate
+$strGrantOption = 'Grant'; //to translate
+$strGreek = 'Greek'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHebrew = 'Hebrew'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+$strHungarian = 'Hungarian'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strId = 'ID'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFiles = 'Import files'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInnodbStat = 'InnoDB Status'; //to translate
+$strInsecureMySQL = 'Your configuration file contains settings (root with no password) that correspond to the default MySQL privileged account. Your MySQL server is running with this default, is open to intrusion, and you really should fix this security hole.'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJapanese = 'Japanese'; //to translate
+$strJoins = 'Joins'; //to translate
+$strJumpToDB = 'Jump to database &quot;%s&quot;.'; //to translate
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.'; //to translate
+$strJustDelete = 'Just delete the users from the privilege tables.'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+$strKorean = 'Korean'; //to translate
+
+$strLandscape = 'Landscape'; //to translate
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption';//to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexContinued = '(continued)';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLaTeX = 'LaTeX'; //to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLithuanian = 'Lithuanian'; //to translate
+$strLoginInformation = 'Login Information'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIME_available_mime = 'Available MIME-types';//to translate
+$strMIME_available_transform = 'Available transformations';//to translate
+$strMIME_description = 'Description';//to translate
+$strMIME_MIMEtype = 'MIME-type';//to translate
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.';//to translate
+$strMIME_transformation = 'Browser transformation';//to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';//to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';//to translate
+$strMIME_transformation_options = 'Transformation options';//to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';//to translate
+$strMoveTableSameNames = 'Can\'t move table to same one!'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDatabasesSelected = 'No databases selected.'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoOptions = 'This format has no options';//to translate
+$strNoPermission = 'The web server does not have permission to save the file %s.'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoSpace = 'Insufficient space to save the file %s.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+$strNumTables = 'Tables'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+$strOverwriteExisting = 'Overwrite existing file(s)'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPaperSize = 'Paper size'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordChanged = 'The Password for %s was changed successfully.'; // to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPerHour = 'per hour'; //to translate
+$strPerMinute = 'per minute';//to translate
+$strPerSecond = 'per second';//to translate
+$strPersian = 'Persian'; //to translate
+$strPhoneBook = 'phone book'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPortrait = 'Portrait'; //to translate
+$strPrint = 'Print'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.'; //to translate
+$strPrivDescAlter = 'Allows altering the structure of existing tables.'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateDb = 'Allows creating new databases and tables.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateTbl = 'Allows creating new tables.'; //to translate
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescDelete = 'Allows deleting data.'; //to translate
+$strPrivDescDropDb = 'Allows dropping databases and tables.'; //to translate
+$strPrivDescDropTbl = 'Allows dropping tables.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescExecute = 'Allows running stored procedures; Has no effect in this MySQL version.'; //to translate
+$strPrivDescFile = 'Allows importing data from and exporting data into files.'; //to translate
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.'; //to translate
+$strPrivDescIndex = 'Allows creating and dropping indexes.'; //to translate
+$strPrivDescInsert = 'Allows inserting and replacing data.'; //to translate
+$strPrivDescLockTables = 'Allows locking tables for the current thread.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReferences = 'Has no effect in this MySQL version.'; //to translate
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.'; //to translate
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescSelect = 'Allows reading data.'; //to translate
+$strPrivDescShowDb = 'Gives access to the complete list of databases.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescShutdown = 'Allows shutting down the server.'; //to translate
+$strPrivDescSuper = 'Allows connectiong, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strPrivDescUpdate = 'Allows changing data.'; //to translate
+$strPrivDescUsage = 'No privileges.'; //to translate
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.'; //to translate
+$strProcesses = 'Processes'; //to translate
+$strProcesslist = 'Process list'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+$strPutColNames = 'Put fields names at first row'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryFrame = 'Query window';//to translate
+$strQuerySQLHistory = 'SQL-history';//to translate
+$strQueryTime = 'Query took %01.4f sec';//to translate
+$strQueryType = 'Query type'; //to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReceived = 'Received'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationalSchema = 'Relational schema'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strRelations = 'Relations'; //to translate
+$strReloadingThePrivileges = 'Reloading the privileges'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRemoveSelectedUsers = 'Remove selected users'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplaceNULLBy = 'Replace NULL by'; //to translate
+$strReplication = 'Replication'; //to translate
+$strResourceLimits = 'Resource limits'; //to translate
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.'; //to translate
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)';//to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+$strRussian = 'Russian'; //to translate
+
+$strSaveOnServer = 'Save on server in %s directory'; //to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strSent = 'Sent'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServer = 'Server'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strServerStatus = 'Runtime Information'; //to translate
+$strServerStatusUptime = 'This MySQL server has been running for %s. It started up on %s.'; //to translate
+$strServerTabVariables = 'Variables'; //to translate
+$strServerVars = 'Server variables and settings'; //to translate
+$strSessionValue = 'Session value'; //to translate
+$strShowDatadictAs = 'Data Dictionary Format'; //to translate
+$strShowFullQueries = 'Show Full Queries'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strStatCheckTime = 'Last check';//to translate
+$strStatCreateTime = 'Creation';//to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStatUpdateTime = 'Last update';//to translate
+$strStatus = 'Status'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwedish = 'Swedish'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+$strSwitchToTable = 'Switch to copied table'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableOfContents = 'Table of contents'; //to translate
+$strTableOptions = 'Table options'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTblPrivileges = 'Table-specific privileges'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThisHost = 'This Host'; //to translate
+$strThreads = 'Threads'; //to translate
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTime = 'Time'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTotalUC = 'Total'; //to translate
+$strTraditionalChinese = 'Traditional Chinese'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTraffic = 'Traffic'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)'; //to translate
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).';//to translate
+$strTransformation_image_png__inline = 'See image/jpeg: inline'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';//to translate
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.';//to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';//to translate
+$strTruncateQueries = 'Truncate Shown Queries'; //to translate
+$strTurkish = 'Turkish'; //to translate
+
+$strUkrainian = 'Ukrainian'; //to translate
+$strUnicode = 'Unicode'; //to translate
+$strUnknown = 'unknown'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseHostTable = 'Use Host Table'; //to translate
+$strUserAlreadyExists = 'The user %s already exists!'; //to translate
+$strUserNotFound = 'The selected user was not found in the privilege table.'; //to translate
+$strUserOverview = 'User overview'; //to translate
+$strUsersDeleted = 'The selected users have been deleted successfully.'; //to translate
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseTextField = 'Use text field'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary php extensions as described in the %sdocumentation%s.'; //to translate
+$strVar = 'Variable'; //to translate
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases';//to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWebServerUploadDirectoryError = 'The directory you set for upload work cannot be reached'; //to translate
+$strWebServerUploadDirectory = 'web-server upload directory'; //to translate
+$strWestEuropean = 'West European'; //to translate
+$strWildcard = 'wildcard'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strXML = 'XML';//to translate
+
+$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/albanian-utf-8.inc.php b/lang/albanian-utf-8.inc.php
new file mode 100644
index 0000000000..b739532429
--- /dev/null
+++ b/lang/albanian-utf-8.inc.php
@@ -0,0 +1,1471 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by: Laurent Dhima <laurenti at users.sourceforge.net>
+*/
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Djl', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'); //albanian days
+$month = array('Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', 'Gsh', 'Sht', 'Tet', 'Nën', 'Dhj'); //albanian months
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B, %Y at %I:%M %p'; //albanian time
+$timespanfmt = '%s ditë, %s orë, %s minuta dhe %s sekonda';
+
+
+
+$strAbortedClients = 'Dështoi';
+$strAccessDeniedExplanation = 'phpMyAdmin u përpoq të lidhet me server-in MySQL, dhe server-i refuzoi lidhjen. Kontrollo emrin e host, përdoruesin dhe fjalëkalimin tek file config.inc.php dhe sigurohu që korrispondojnë me informacionet që ju ka dhënë administratori i serverit MySQL.';
+$strAccessDenied = 'Hyrja nuk u pranua';
+$strAction = 'Veprimi';
+$strAddAutoIncrement = 'Shto vlerë AUTO_INCREMENT';
+$strAddConstraints = 'Shto kushte';
+$strAddDeleteColumn = 'Shto/Fshi fushën';
+$strAddDeleteRow = 'Shto/Fshi kriterin';
+$strAddHeaderComment = 'Shto një koment të personalizuar në header (\\n ndërpret rreshtin)';
+$strAddIntoComments = 'Shto tek komentet';
+$strAddNewField = 'Shto një fushë të re';
+$strAddPrivilegesOnDb = 'Shto të drejta tek databaza në vazhdim';
+$strAddPrivilegesOnTbl = 'Shto të drejta tek tabela në vazhdim';
+$strAddSearchConditions = 'Shto kushte kërkimi (trupi i specifikimit "where"):';
+$strAddToIndex = 'Shto tek treguesi i &nbsp;%s&nbsp;kolonës(ave)';
+$strAddUserMessage = 'Ke shtuar një përdorues të ri.';
+$strAddUser = 'Shto një përdorues të ri';
+$strAdministration = 'Administrimi';
+$strAfterInsertBack = 'Mbrapa';
+$strAfterInsertNewInsert = 'Shto një regjistrim të ri';
+$strAfterInsertSame = 'Kthehu mbrapa tek kjo faqe';
+$strAfter = 'Mbas %s';
+$strAllTableSameWidth = 'vizualizon të gjitha tabelat me të njëjtën gjërësi?';
+$strAll = 'Të gjithë';
+$strAlterOrderBy = 'Transformo tabelën e renditur sipas';
+$strAnalyzeTable = 'Analizo tabelën';
+$strAnd = 'Dhe';
+$strAnIndex = 'Një tregues u shtua tek %s';
+$strAny = 'Çfarëdo';
+$strAnyHost = 'Çfarëdo host';
+$strAnyUser = 'Çfarëdo përdorues';
+$strAPrimaryKey = 'Një kyç primar u shtua tek %s';
+$strArabic = 'Arabisht';
+$strArmenian = 'Armene';
+$strAscending = 'Ngjitje';
+$strAtBeginningOfTable = 'Në fillim të tabelës';
+$strAtEndOfTable = 'Në fund të tabelës';
+$strAttr = 'Pronësi';
+$strAutomaticLayout = 'Faqosje automatike';
+
+$strBack = 'Mbrapa';
+$strBaltic = 'Baltike';
+$strBeginCut = 'FILLIMI I CUT';
+$strBeginRaw = 'FILLIMI I RAW';
+$strBinary = 'Binar';
+$strBinaryDoNotEdit = 'Të dhëna të tipit binar - mos ndrysho';
+$strBookmarkAllUsers = 'Lejo që çdo përdorues të ketë hyrje në këtë libërshënues';
+$strBookmarkDeleted = 'Libërshënuesi u fshi.';
+$strBookmarkLabel = 'Etiketë';
+$strBookmarkQuery = 'Query SQL shtuar të preferuarve';
+$strBookmarkThis = 'Shtoja të preferuarve këtë query SQL';
+$strBookmarkView = 'Shfaq vetëm';
+$strBrowseForeignValues = 'Shfleto opcionet e huaja';
+$strBrowse = 'Shfaq';
+$strBulgarian = 'Bullgarisht';
+$strBzip = '"kompresuar me bzip2"';
+
+$strCalendar = 'Kalendari';
+$strCannotLogin = 'E pamundur kryerja e login tek server-i MySQL';
+$strCantLoad = 'I pamundur ngarkimi i prapashtesës %s,<br />kontrollo konfigurimin e PHP';
+$strCantLoadRecodeIconv = 'I pamundur ngarkimi i prapashtesës iconv apo recode të nevoitshëm për konvertimin e karaktereve, konfiguroni php për të lejuar përdorimin e këtyre prapashtesave ose disaktivoni konvertimin e set të karaktereve në phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'I pamundur riemërtimi i treguesit në PRIMAR!';
+$strCantUseRecodeIconv = 'I pamundur përdorimi i funksioneve iconv apo libiconv apo recode_string për shkak se ekstensioni duhet të ngarkohet. Kontrolloni konfigurimin e php.';
+$strCardinality = '';
+$strCaseInsensitive = 'case-insensitive';
+$strCaseSensitive = 'case-sensitive';
+$strCentralEuropean = 'Europa qendrore';
+$strChangeCopyModeCopy = '... mbaj të vjetrin.';
+$strChangeCopyModeDeleteAndReload = ' ... elemino të vjetrin nga tabela e përdoruesve e pastaj rilexo të drejtat.';
+$strChangeCopyModeJustDelete = ' ... elemino të vjetrin nga tabela e përdoruesve.';
+$strChangeCopyMode = 'Krijo një përdorues të ri me të njëjta të drejta dhe ...';
+$strChangeCopyModeRevoke = ' ... hiq të gjitha të drejtat nga i vjetri e pastaj eleminoje.';
+$strChangeCopyUser = 'Ndrysho Informacionet e Login / Kopjo përdoruesin';
+$strChangeDisplay = 'Zgjidh fushën që dëshiron të shohësh';
+$strChange = 'Ndrysho';
+$strChangePassword = 'Ndrysho fjalëkalimin';
+$strCharset = 'Familje gërmash';
+$strCharsetOfFile = 'Familja gërmave të file:';
+$strCharsetsAndCollations = 'Familje gërmash dhe Collations';
+$strCharsets = 'Familje gërmash';
+$strCheckAll = 'Zgjidhi të gjithë';
+$strCheckOverhead = 'Zgjidh të mbingarkuarit';
+$strCheckPrivs = 'Kontrollo të drejtat';
+$strCheckPrivsLong = 'Kontrollo të drejtat për databazën &quot;%s&quot;.';
+$strCheckTable = 'Kontrollo tabelën';
+$strChoosePage = 'Ju lutem zgjidhni faqen që dëshironi të modifikoni';
+$strColComFeat = 'Vizualizimi i komenteve të kollonave';
+$strCollation = 'Collation';
+$strColumnNames = 'Emrat e kollonave';
+$strColumnPrivileges = 'Të drejtat relative të kollonave';
+$strCommand = 'Komanda';
+$strComments = 'Komente';
+$strCompleteInserts = 'Të shtuarat komplet';
+$strCompression = 'Kompresim';
+$strConfigFileError = 'phpMyAdmin nuk arrin të lexojë file e konfigurimit!<br />Kjo mund të ndodhë kur php gjen një parse error në të apo kur php nuk arrin ta gjejë këtë file.<br />Ju lutem ngarkoheni direkt file e konfigurimit duke përdorur link-un e mëposhtëm dhe lexoni mesazhin(et) e gabimeve php që merrni. Në shumicën e rasteve mund t\'ju mungojë një apostrofë apo një presje.<br />Nëse faqja që do t\'ju hapet është bosh (e bardhë), atëhere gjithçka është në rregull.';
+$strConfigureTableCoord = 'Ju lutem, konfiguroni koordinatat për tabelën %s';
+$strConnectionError = 'E pamundur lidhja: rregullime të pavlefshme.';
+$strConnections = 'Lidhje';
+$strConstraintsForDumped = 'Kushtet për tabelat e nxjerra';
+$strConstraintsForTable = 'Kushtet për tabelën';
+$strCookiesRequired = 'Nga kjo pikë e tutje, cookies duhet të jenë të aktivuara.';
+$strCopyTable = 'Kopjo tabelën tek (databaza<b>.</b>tabela):';
+$strCopyTableOK = 'Tabela %s u kopjua tek %s.';
+$strCopyTableSameNames = 'I pamundur kopjimi i tabelës tek vetvetja!';
+$strCouldNotKill = 'phpMyAdmin nuk është në gjendje të përfundojë thread %s. Ka mundësi të ketë përfunduar më parë.';
+$strCreateIndex = 'Krijo një tregues tek &nbsp;%s&nbsp;columns';
+$strCreateIndexTopic = 'Krijo një tregues të ri';
+$strCreate = 'Krijo';
+$strCreateNewDatabase = 'Krijo një databazë të re';
+$strCreateNewTable = 'Krijo një tabelë të re tek databaza %s';
+$strCreatePage = 'Krijo një faqe të re';
+$strCreatePdfFeat = 'Krijimi i PDF-ve';
+$strCreationDates = 'Datat e Krijimit/Përditësimit/Kontrollit';
+$strCriteria = 'Kriteri';
+$strCroatian = 'Kroate';
+$strCyrillic = 'Cyrillic';
+$strCzech = 'Çekisht';
+$strCzechSlovak = 'Çeko-Sllovak';
+
+$strDanish = 'Danisht';
+$strDatabase = 'Databazat';
+$strDatabaseEmpty = 'Emri i databazës mungon!';
+$strDatabaseExportOptions = 'Opcione të eksportimit të databazës';
+$strDatabaseHasBeenDropped = 'Databaza %s u eleminua.';
+$strDatabases = 'Databazat';
+$strDatabasesDropped = '%s databaza u eleminuan korrektësisht.';
+$strDatabasesStatsDisable = 'Disaktivo Statistikat';
+$strDatabasesStatsEnable = 'Aktivo Statistikat';
+$strDatabasesStatsHeavyTraffic = 'Shënim: Aktivimi këtu i statistikave të Databazës mund të shkaktojë rritjen e trafikut midis server-it web dhe MySQL.';
+$strDatabasesStats = 'Statistikat e databazave';
+$strDataDict = 'Data Dictionary';
+$strDataOnly = 'Vetëm të dhëna';
+$strData = 'Të dhëna';
+$strDBComment = 'Komenti për Databazën: ';
+$strDbPrivileges = 'Të drejta specifike të databazës';
+$strDBRename = 'Ndysho emrin e databazës në';
+$strDbSpecific = 'specifik i databazës';
+$strDefault = 'Prezgjedhur';
+$strDefaultValueHelp = 'Për vlerat e prezgjedhura, ju lutem shtoni një vlerë të vetme, pa backslash escaping apo thonjëza, duke përdorur këtë format: a';
+$strDefragment = 'Defragmento tabelën';
+$strDelayedInserts = 'Përdor shtimet me vonesë';
+$strDeleteAndFlushDescr = 'Kjo është rruga më e pastër, por ngarkimi i të drejtave mund të zgjasë disa çaste më shumë.';
+$strDeleteAndFlush = 'Fshi përdoruesit dhe pastaj rifresko të drejtat.';
+$strDeleted = 'rreshti u fshi';
+$strDelete = 'Fshi';
+$strDeleting = 'Në fshirje e sipër të %s';
+$strDelOld = 'Faqja aktuale përmban riferime ndaj tabelash që nuk ekzistojnë më. Dëshironi t\'i eleminoni këto riferimente?';
+$strDescending = 'Zbritës';
+$strDescription = 'Përshkrimi';
+$strDictionary = 'fjalor';
+$strDisabled = 'Jo aktiv';
+$strDisableForeignChecks = 'Ç\'aktivo kontrollin e kyçeve të jashtëm';
+$strDisplayFeat = 'Shfaq karakteristikat';
+$strDisplayOrder = 'Mënyra e shfaqjes:';
+$strDisplayPDF = 'Shfaq skemën e PDF';
+$strDoAQuery = 'Zbato "query nga shembull" (karakteri jolly: "%")';
+$strDocu = 'Dokumentet';
+$strDoYouReally = 'Konfermo: ';
+$strDropDatabaseStrongWarning = 'Jeni duke SHKATËRRUAR një databazë komplete!';
+$strDrop = 'Elemino';
+$strDropUsersDb = 'Elemino databazat që kanë emër të njëjtë me përdoruesit.';
+$strDumpingData = 'Dump i të dhënave për tabelën';
+$strDumpSaved = 'Dump u ruajt tek file %s.';
+$strDumpXRows = 'Dump i %s rreshta duke filluar nga rreshti %s.';
+$strDynamic = 'dinamik';
+
+$strEdit = 'Ndrysho';
+$strEditPDFPages = 'Ndrysho faqen PDF';
+$strEditPrivileges = 'Ndrysho të drejtat';
+$strEffective = 'Efektiv';
+$strEmptyResultSet = 'MySQL ka kthyer një të përbashkët boshe (p.sh. zero rreshta).';
+$strEmpty = 'Zbraz';
+$strEnabled = 'Aktiv';
+$strEncloseInTransaction = 'Përfshi eksportin në një transacion';
+$strEndCut = 'FUNDI I CUT';
+$strEnd = 'Fund';
+$strEndRaw = 'FUNDI I RAW';
+$strEnglish = 'Anglisht';
+$strEnglishPrivileges = 'Shënim: emrat e të drejtave të MySQL janë në Anglisht';
+$strError = 'Gabim';
+$strEstonian = 'Estoneze';
+$strExcelEdition = 'Edicion i Excel';
+$strExecuteBookmarked = 'Zbaton query nga libërshënuesi';
+$strExplain = 'Shpjego SQL';
+$strExport = 'Eksporto';
+$strExtendedInserts = 'Të shtuara të zgjeruara';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Përpjekje të dështuara';
+$strField = 'Fusha';
+$strFieldHasBeenDropped = 'Fusha %s u eleminua';
+$strFieldsEnclosedBy = 'Fushë e përbërë nga';
+$strFieldsEscapedBy = 'Fushë e kufizuar nga';
+$strFields = 'Fusha';
+$strFieldsTerminatedBy = 'Fushë që mbaron me';
+$strFileAlreadyExists = 'File %s ekziston në server: të lutem, ndrysho emrin e file ose zgjidh opcionin "Mbishkruaj".';
+$strFileCouldNotBeRead = 'File nuk mund të lexohet';
+$strFileNameTemplate = 'Emri i file template';
+$strFileNameTemplateRemember = 'kujto template';
+$strFixed = 'fiks';
+$strFlushPrivilegesNote = 'Shënim: phpMyAdmin lexon të drejtat e përdoruesve direkt nga tabela e privilegjeve të MySQL. Përmbajtja e kësaj tabele mund të ndryshojë prej të drejtave të përdorura nga serveri nëse janë kryer ndryshime manuale. Në këtë rast, duhet të %srifreskoni të drejtat%s para se të vazhdoni.';
+$strFlushTable = 'Rifillo ("FLUSH") tabelën';
+$strFormat = 'Formati';
+$strFormEmpty = 'Mungon një vlerë në formular!';
+$strFullText = 'Teksti i plotë';
+$strFunction = 'Funksioni';
+
+$strGenBy = 'Gjeneruar nga';
+$strGeneralRelationFeat = 'Karakteristikat e përgjithshme të relacionit';
+$strGenTime = 'Gjeneruar më';
+$strGeorgian = 'Gjeorgjisht';
+$strGerman = 'Gjermanisht';
+$strGlobal = 'globale';
+$strGlobalPrivileges = 'Të drejtat e përgjithshme';
+$strGlobalValue = 'Vlerë Globale';
+$strGo = 'Zbato';
+$strGrantOption = 'Grant';
+$strGreek = 'Greqisht';
+$strGzip = '"kompresuar me gzip"';
+
+$strHasBeenAltered = 'u ndryshua.';
+$strHaveToShow = 'Zgjidh të paktën një kolonë për të parë';
+$strHebrew = 'Hebraike';
+$strHomepageOfficial = 'Faqja zyrtare e phpMyAdmin';
+$strHome = 'Shtëpia';
+$strHostEmpty = 'Emri i host është bosh!';
+$strHost = 'Host';
+$strHungarian = 'Hungarisht';
+
+$strIcelandic = 'Islandeze';
+$strId = 'ID';
+$strIdxFulltext = 'Teksti komplet';
+$strIgnoreInserts = 'Përdor shpërfill shtimet';
+$strIgnore = 'Shpërfill';
+$strImportFiles = 'Importo files';
+$strIndexes = 'Tregues';
+$strIndexHasBeenDropped = 'Treguesi %s u eleminua';
+$strIndexName = 'Emri i treguesit&nbsp;:';
+$strIndex = 'Treguesi';
+$strIndexType = 'Lloji i treguesit&nbsp;:';
+$strInnodbStat = 'Gjëndja InnoDB';
+$strInsecureMySQL = 'File i konfigurimit në përdorim përmban zgjedhje (root pa asnjë password) që korrispondojnë me të drejtat e account MySQL të paracaktuar. Një server MySQL funksionues me këto zgjedhje është i pambrojtur ndaj sulmeve, dhe ju duhet patjetër të korrigjoni këtë vrimë në siguri.';
+$strInsertAsNewRow = 'Shto një rresht të ri';
+$strInsert = 'Shto';
+$strInternalRelations = 'Relacione të brendshme';
+$strInUse = 'në përdorim';
+
+$strJapanese = 'Japonisht';
+$strJumpToDB = 'Kalo tek databaza &quot;%s&quot;.';
+$strJustDeleteDescr = 'Përdoruesit e &quot;fshirë&quot; do të kenë akoma mundësi të futen në server si zakonisht derisa të drejtat të ringarkohen përsëri.';
+$strJustDelete = 'Vetëm fshi përdoruesit nga tabelat e të drejtave.';
+
+$strKeepPass = 'Mos ndrysho fjalëkalim';
+$strKeyname = 'Emri i kyçit';
+$strKill = 'Hiq';
+$strKorean = 'Koreane';
+
+$strLandscape = 'Horizontale';
+$strLatexCaption = 'Titulli i Tabelës caption';
+$strLatexContent = 'Përmbajtja e tabelës __TABLE__';
+$strLatexContinuedCaption = 'Nëntitulli i tabelës vazhduese';
+$strLatexContinued = '(vazhdon)';
+$strLatexIncludeCaption = 'Përfshi nëntitullin e tabelës';
+$strLatexLabel = 'Kyçi i etiketës';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktura e tabelës __TABLE__';
+$strLatvian = 'Letone';
+$strLengthSet = 'Gjatësia/Set*';
+$strLimitNumRows = 'regjistrime për faqe';
+$strLinesTerminatedBy = 'Rreshta që mbarojnë me';
+$strLinkNotFound = 'Lidhja nuk u gjet';
+$strLinksTo = 'Lidhje me';
+$strLithuanian = 'Lituane';
+$strLocalhost = 'Lokal';
+$strLocationTextfile = 'Pozicioni i file';
+$strLogin = 'Hyrja';
+$strLoginInformation = 'Informacione mbi Identifikimin';
+$strLogout = 'Përfundo seancën';
+$strLogPassword = 'Fjalëkalimi:';
+$strLogServer = 'Serveri';
+$strLogUsername = 'Emri i përdoruesit:';
+
+$strMaximumSize = 'Madhësia maksimum: %s%s';
+$strMIME_available_mime = 'Lloje MIME në dispozicion';
+$strMIME_available_transform = 'Transformacionet në dispozicion';
+$strMIME_description = 'Përshkrimi';
+$strMIME_MIMEtype = 'Lloji MIME';
+$strMIME_nodescription = 'Asnjë përshkrim në dispozicion për këtë transformim.<br />Ju lutem pyet autorin, çfarë %s bën.';
+$strMIME_transformation_note = 'Për listën e opcioneve të transformimeve në dispozicion dhe transformimet relativë të llojeve-MIME, kliko tek %spërshkrimet e transformimeve%s';
+$strMIME_transformation_options_note = 'Ju lutem shkruani vlerat për opcionet e transformimit duke përdorur këtë format: \'a\', 100, b,\'c\'...<br />Nëse keni nevojë të shtoni një backslash ("\") apo një apostrofë ("\'") midis këtyre vlerave, duhet ti backslash-oni (për shembull \'\\\\xyz\' ose \'a\\\'b\').';
+$strMIME_transformation_options = 'Opcione të transformimeve';
+$strMIME_transformation = 'Transformimi i Shfletuesit';
+$strMIMETypesForTable = 'LLOJET E MIME PËR TABELËN';
+$strMIME_without = 'Llojet-MIME të printuar në italics kanë një funksion transformacioni të veçantë';
+$strModifications = 'Ndryshimet u ruajtën';
+$strModifyIndexTopic = 'Ndrysho një tregues';
+$strModify = 'Ndrysho';
+$strMoveTableOK = 'Tabela %s u lëviz tek %s.';
+$strMoveTableSameNames = 'E pamundur lëvizja e tabelës tek vetvetja!';
+$strMoveTable = 'Sposto tabelën në (databaza<b>.</b>tabela):';
+$strMultilingual = 'shumëgjuhësh';
+$strMySQLCharset = 'Set simbolesh MySQL';
+$strMySQLConnectionCollation = 'Vendosja e lidhjes MySQL';
+$strMySQLSaid = 'Mesazh nga MySQL: ';
+$strMySQLShowProcess = 'Shfaq proceset në ekzekutim';
+
+$strName = 'Emri';
+$strNext = 'Në vazhdim';
+$strNoDatabases = 'Asnjë databazë';
+$strNoDatabasesSelected = 'Nuk është zgjedhur asnjë databazë.';
+$strNoDescription = 'asnjë përshkrim';
+$strNoDropDatabases = 'Komandat "DROP DATABASE" nuk janë aktive.';
+$strNoExplain = 'Mos shpjego SQL';
+$strNoFrames = 'phpMyAdmin funksionon më mirë me shfletues që suportojnë frames';
+$strNoIndex = 'Asnjë tregues i përcaktuar!';
+$strNoIndexPartsDefined = 'Asnjë pjesë e treguesit është përcaktuar!';
+$strNo = ' Jo ';
+$strNoModification = 'Asnjë ndryshim';
+$strNone = 'Asnjë lloj';
+$strNoOptions = 'Ky format nuk ka opcione';
+$strNoPassword = 'Asnjë fjalëkalim';
+$strNoPermission = 'Serveri web nuk ka të drejtat e duhura për të ruajtur file %s.';
+$strNoPhp = 'pa kod PHP';
+$strNoPrivileges = 'Asnjë e drejtë';
+$strNoRights = 'Nuk ke të drejta të mjaftueshme për të kryer këtë operacion!';
+$strNoRowsSelected = 'Nuk ka rreshta të zgjedhur';
+$strNoSpace = 'Hapësirë e pamjaftueshme për të ruajtur file %s.';
+$strNoTablesFound = 'Nuk gjenden tabela në databazë.';
+$strNotNumber = 'Ky nuk është një numër!';
+$strNotOK = 'jo OK';
+$strNotSet = '<b>%s</b> tabela nuk u gjet ose nuk është përcaktuar tek %s';
+$strNoUsersFound = 'Nuk u gjet asnjë përdorues.';
+$strNoValidateSQL = 'Mos vleftëso SQL';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s korrispondon(jnë) tek tabela <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Gjithsej:</b> <i>%s</i> korrispondues(ë)';
+$strNumTables = 'Tabela';
+
+$strOK = 'OK';
+$strOperations = 'Operacione';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optimizo tabelën';
+$strOr = 'Ose';
+$strOverhead = 'Mbi limit';
+$strOverwriteExisting = 'Mbishkruaj file(s) ekzistues';
+
+$strPageNumber = 'Numri i faqes:';
+$strPaperSize = 'Përmasat e letrës';
+$strPartialText = 'Tekst i pjesëshëm';
+$strPasswordChanged = 'Fjalëkalimi për përdoruesin %s u ndryshua me sukses.';
+$strPasswordEmpty = 'Fjalëkalimi është bosh!';
+$strPassword = 'Fjalëkalimi';
+$strPasswordNotSame = 'Fjalëkalimi nuk korrispondon!';
+$strPdfDbSchema = 'Skema e databazës "%s" - Faqja %s';
+$strPdfInvalidTblName = 'Tabela "%s" nuk ekziston!';
+$strPdfNoTables = 'Asnjë tabelë';
+$strPerHour = 'në orë';
+$strPerMinute = 'në minutë';
+$strPerSecond = 'në sekondë';
+$strPhoneBook = 'numratori';
+$strPhp = 'Krijo kodin PHP';
+$strPHPVersion = 'Versioni i PHP';
+$strPmaDocumentation = 'Dokumente të phpMyAdmin';
+$strPmaUriError = 'Direktiva <tt>$cfg[\'PmaAbsoluteUri\']</tt> DUHET të përcaktohet tek file i konfigurimit!';
+$strPolish = 'Polonisht';
+$strPortrait = 'Vertikal';
+$strPos1 = 'Fillim';
+$strPrevious = 'Paraardhësi';
+$strPrimaryKeyHasBeenDropped = 'Kyçi primar u eleminua';
+$strPrimaryKeyName = 'Emri i kyçit primar duhet të jetë... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>duhet</b> të jetë emri i, dhe <b>vetëm i</b>, një kyçi primar!)';
+$strPrimary = 'Primar';
+$strPrint = 'Printo';
+$strPrintViewFull = 'Shfaq për printim (me full text)';
+$strPrintView = 'Shfaq për printim';
+$strPrivDescAllPrivileges = 'Përfshin të gjitha të drejtat me përjashtim të GRANT.';
+$strPrivDescAlter = 'Lejon ndryshimin e strukturës së tabelave ekzistuese.';
+$strPrivDescCreateDb = 'Lejon krijimin e tabelave të reja dhe databazave të reja.';
+$strPrivDescCreateTbl = 'Lejon krijimin e tabelave të reja.';
+$strPrivDescCreateTmpTable = 'Lejon krijimin e tabelave të përkohëshme.';
+$strPrivDescDelete = 'Lejon fshirjen e të dhënave.';
+$strPrivDescDropDb = 'Lejon eleminimin e databazave dhe tabelave.';
+$strPrivDescDropTbl = 'Lejon eleminimin e tabelave.';
+$strPrivDescExecute = 'Lejon ekzekutimin e procedurave të regjistruara; Nuk ka efekt në këtë version të MySQL.';
+$strPrivDescFile = 'Lejon importimin e të dhënave nga dhe eksportimin e të dhënave në files.';
+$strPrivDescGrant = 'Lejon të shtosh përdorues dhe të drejta pa ringarkuar tabelat e privilegjeve.';
+$strPrivDescIndex = 'Lejon krijimin dhe eleminimin e treguesve.';
+$strPrivDescInsert = 'Lejon futjen dhe mbishkrimin e të dhënave.';
+$strPrivDescLockTables = 'Lejon bllokimin e tabelave për thread e momentit.';
+$strPrivDescMaxConnections = 'Kufizon numrin e lidhjeve të reja që një përdorues mund të hapë në një orë.';
+$strPrivDescMaxQuestions = 'Kufizon numrin e kërkesave që një përdorues mund ti dërgojë server-it në një orë.';
+$strPrivDescMaxUpdates = 'Kufizon numrin e komandave që mund të ndryshojnë një tabelë apo databazë që një përdorues mund të zbatojë në një orë.';
+$strPrivDescReferences = 'Nuk ka asnjë efekt tek ky version i MySQL.';
+$strPrivDescReload = 'Lejon ringarkimin e parametrave të server-it dhe risetimin e cache të servërve.';
+$strPrivDescReplClient = 'I jep të drejtën një përdoruesi të pyesë se ku gjenden slaves / masters.';
+$strPrivDescReplSlave = 'Nevoitet për replikimin e slaves.';
+$strPrivDescSelect = 'Lejon leximin e të dhënave.';
+$strPrivDescShowDb = 'Mundëson hyrjen tek lista komplete e databazave.';
+$strPrivDescShutdown = 'Lejon përfundimin e serverit.';
+$strPrivDescSuper = 'Lejon lidhje të tjera, edhe po të jetë arritur numri maksimal i lidhjeve; I nevojshëm për shumë operacione administrimi si përcaktimi i të ndryshueshmeve globale apo fshirja e threads të përdoruesve të tjerë.';
+$strPrivDescUpdate = 'Lejon ndryshimin e të dhënave.';
+$strPrivDescUsage = 'Asnjë të drejtë.';
+$strPrivilegesReloaded = 'Të drejtat u përditësuan me sukses.';
+$strPrivileges = 'Të drejtat';
+$strProcesses = 'Proceset';
+$strProcesslist = 'Lista e Proçeseve';
+$strPutColNames = 'Vendos emrat e kollonave tek rreshti i parë';
+
+$strQBEDel = 'Fshi';
+$strQBEIns = 'Shto';
+$strQBE = 'Query nga shembull';
+$strQueryFrame = 'Dritarja e Query';
+$strQueryOnDb = 'SQL-query tek databaza <b>%s</b>:';
+$strQuerySQLHistory = 'Kronollogjia e SQL';
+$strQueryStatistics = '<b>Statistikat e Query</b>: Që nga nisja e tij, serverit i janë dërguar %s queries.';
+$strQueryTime = 'Query ka zgjatur %01.4f sec';
+$strQueryType = 'Lloji i query';
+$strQueryWindowLock = 'Mos e mbishkruaj këtë query nga jashtë dritares';
+
+$strReceived = 'Marrë';
+$strRecords = 'Regjistrime';
+$strReferentialIntegrity = 'Kontrollo integritetin e informacioneve:';
+$strRefresh = 'Rifresko';
+$strRelationalSchema = 'Skema relacionale';
+$strRelationNotWorking = 'Karakteristikat shtesë janë ç\'aktivuar për sa i takon funksionimit me tabelat e lidhura. Për të zbuluar përse, klikoni %skëtu%s.';
+$strRelationsForTable = 'RELACIONET PËR TABELËN';
+$strRelations = 'Relacione';
+$strRelationView = 'Shiko relacionet';
+$strReloadingThePrivileges = 'Duke ringarkuar të drejtat';
+$strRemoveSelectedUsers = 'Heq përdoruesit e zgjedhur';
+$strRenameDatabaseOK = 'Databazës %s i është ndryshuar emri në %s';
+$strRenameTableOK = 'Tabela %s u riemërtua %s';
+$strRenameTable = 'Riemërto tabelën në';
+$strRepairTable = 'Riparo tabelën';
+$strReplaceNULLBy = 'Zëvendëso NULL me';
+$strReplaceTable = 'Zëvendëso të dhënat e tabelës me file';
+$strReset = 'Rinis';
+$strResourceLimits = 'Limitet e rezervave';
+$strReType = 'Rifut';
+$strRevokeAndDeleteDescr = 'Përdoruesit DO TË MUND TË PËRDORIN sidoqoftë të drejtën deri atëhere kur të drejtat të ringarkohen.';
+$strRevokeAndDelete = 'Hiqja të gjitha të drejtat aktive përdoruesve dhe pastaj eleminoi.';
+$strRevoke = 'Hiq';
+$strRevokeMessage = 'Ke anulluar të drejtat për %s';
+$strRomanian = 'Romanisht';
+$strRowLength = 'Gjatësia e rreshtit';
+$strRowsFrom = 'rreshta duke filluar nga';
+$strRowSize = 'Madhësia e rreshtit';
+$strRowsModeFlippedHorizontal = 'horizontal (headers të rrotulluar)';
+$strRowsModeHorizontal = ' horizontal ';
+$strRowsModeOptions = ' në modalitetin %s dhe përsërit headers mbas %s qelish ';
+$strRowsModeVertical = ' vertikal ';
+$strRows = 'rreshta';
+$strRowsStatistic = 'Statistikat e rreshtave';
+$strRunning = 'në ekzekutim tek %s';
+$strRunQuery = 'Dërgo Query';
+$strRunSQLQuery = 'Zbato query SQL tek databaza %s';
+$strRussian = 'Rusisht';
+
+$strSaveOnServer = 'Ruaje në server tek directory %s';
+$strSave = 'Ruaj';
+$strScaleFactorSmall = 'Faktori i shkallës është shumë i vogël për të plotësuar skemën në faqe';
+$strSearchFormTitle = 'Kërko në databazë';
+$strSearchInTables = 'Tek tabela(at):';
+$strSearch = 'Kërko';
+$strSearchNeedle = 'Fjala(ë) apo vlera(at) për t\'u kërkuar (karakteri Jolly: "%"):';
+$strSearchOption1 = 'të paktën njërën nga fjalët';
+$strSearchOption2 = 'të gjitha fjalët';
+$strSearchOption3 = 'fraza precize';
+$strSearchOption4 = 'si shprehje e rregullt';
+$strSearchResultsFor = 'Kërko rezultatet për "<i>%s</i>" %s:';
+$strSearchType = 'Gjej:';
+$strSecretRequired = 'Tani nevoitet një fjalëkalim sekret për file e konfigurimit(blowfish_secret).';
+$strSelectADb = 'Të lutem, zgjidh një databazë';
+$strSelectAll = 'Zgjidh gjithçka';
+$strSelectFields = 'Zgjidh fushat (të paktën një):';
+$strSelectNumRows = 'tek query';
+$strSelectTables = 'Zgjidh Tabelat';
+$strSend = 'Ruaje me emër...';
+$strSent = 'Dërguar';
+$strServerChoice = 'Zgjedhja e serverit';
+$strServerNotResponding = 'Serveri nuk përgjigjet';
+$strServer = 'Serveri';
+$strServerStatus = 'Informacione mbi Runtime';
+$strServerStatusUptime = 'Ky server MySQL po punon që prej %s. U nis më %s.';
+$strServerTabVariables = 'Të ndryshueshmet';
+$strServerTrafficNotes = '<b>Trafiku i serverit</b>: Këto tabela do të shfaqin statistikat e trafikut të rrjetit për këtë server MySQL që nga momenti i nisjes së tij.';
+$strServerVars = 'Të ndryshueshmet dhe parametrat e Serverit';
+$strServerVersion = 'Versioni i MySQL';
+$strSessionValue = 'Vlera seancës';
+$strSetEnumVal = 'N.q.s. fusha është "enum" apo "set", shtoni të dhënat duke përdorur formatin: \'a\',\'b\',\'c\'...<br />Nëse megjithatë do t\'u duhet të vini backslashes ("\") apo single quote ("\'") para këtyre vlerave, backslash-ojini (për shembull \'\\\\xyz\' o \'a\\\'b\').';
+$strShowAll = 'Shfaqi të gjithë';
+$strShowColor = 'Shfaq ngjyrën';
+$strShowDatadictAs = 'Formati i Data Dictionary';
+$strShowFullQueries = 'Shfaq të gjitha kërkesat';
+$strShowGrid = 'Shfaq rrjetën';
+$strShowingRecords = 'Shfaqja e regjistrimeve ';
+$strShowPHPInfo = 'Trego info mbi PHP';
+$strShow = 'Shfaq';
+$strShowTableDimension = 'Trego madhësinë e tabelave';
+$strShowTables = 'Shfaq tabelat';
+$strShowThisQuery = 'Tregoje përsëri këtë query';
+$strSimplifiedChinese = 'Kineze e thjeshtëzuar';
+$strSingly = '(një nga një)';
+$strSize = 'Madhësia';
+$strSlovak = 'Sllovakisht';
+$strSlovenian = 'Sllovenisht';
+$strSortByKey = 'Rendit sipas kyçit';
+$strSort = 'rreshtimi';
+$strSpaceUsage = 'Hapësira e përdorur';
+$strSpanish = 'Spanjisht';
+$strSplitWordsWithSpace = 'Fjalët janë të ndara me një hapsirë (" ").';
+$strSQLExportType = 'Lloji i Eksportit';
+$strSQLParserBugMessage = 'Ka mundësi që ka një bug tek parser-i SQL. Ju lutem, kontrolloni query tuaj me kujdes, dhe kontrolloni që presjet të jenë ku duhet dhe jo të gabuara. Një shkak tjetër i mundshëm i gabimit mund të jetë që po mundoheni të uploadoni një file binar jashtë një zone teksti të kufizuar me presje. Mund edhe të provoni query tuaj MySQL nga interfaqja e shkruar e komandave. Gabimi i mëposhtëm i kthyer nga server-i MySQL, nëse ekziston një i tillë, mund tju ndihmojë në diagnostikimin e problemit. Nëse ka akoma probleme, apo n.q.s. parser-i SQL i phpMyAdmin gabon kur përkundrazi nga interfaqja e komandave të thjeshta nuk rezultojnë probleme, ju lutem zvogëloni query tuaj SQL në hyrje në query e vetme që shkakton probleme, dhe dërgoni një bug raportim me të dhënat rezultuese nga seksioni CUT i mëposhtëm:';
+$strSQLParserUserError = 'Mesa duket ekziston një gabim tek query juaj SQL e futur. Gabimi i serverit MySQL i treguar më poshtë, nëse ekziston, mund t\'ju ndihmojë në diagnostikimin e problemit';
+$strSQLQuery = 'query SQL';
+$strSQLResult = 'Rezultati SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identifikues i pavlefshëm';
+$strSQPBugUnclosedQuote = 'Thonjëza të pambyllura';
+$strSQPBugUnknownPunctuation = 'Stringë Punctuation e panjohur';
+$strStatCheckTime = 'Kontrolli i fundit';
+$strStatCreateTime = 'Krijimi';
+$strStatement = 'Instruksione';
+$strStatUpdateTime = 'Ndryshimi i fundit';
+$strStatus = 'Gjendja';
+$strStrucCSV = 'të dhëna CSV';
+$strStrucData = 'Struktura dhe të dhëna';
+$strStrucExcelCSV = 'CSV për të dhëna MS Excel';
+$strStrucNativeExcel = 'Të dhëna orgjinale MS Excel';
+$strStrucOnly = 'Vetëm struktura';
+$strStructPropose = 'Propozo strukturën e tabelës';
+$strStructure = 'Struktura';
+$strSubmit = 'Dërgoje';
+$strSuccess = 'Query u zbatua me sukses';
+$strSum = 'Gjithsej';
+$strSwedish = 'Suedisht';
+$strSwitchToTable = 'Kalo tek tabela e kopjuar';
+
+$strTableComments = 'Komente mbi tabelën';
+$strTableEmpty = 'Emri i tabelës është bosh!';
+$strTableHasBeenDropped = 'Tabela %s u eleminua';
+$strTableHasBeenEmptied = 'Tabela %s u zbraz';
+$strTableHasBeenFlushed = 'Tabela %s u rifreskua';
+$strTableMaintenance = 'Administrimi i tabelës';
+$strTableOfContents = 'Tabela e përmbajtjes';
+$strTableOptions = 'Opcione për tabelën';
+$strTables = '%s tabela(at)';
+$strTableStructure = 'Struktura e tabelës';
+$strTable = 'Tabela';
+$strTakeIt = 'merre';
+$strTblPrivileges = 'Të drejta relative me tabelat';
+$strTextAreaLength = ' Për shkak të gjatësisë saj,<br /> kjo fushë nuk mund të ndryshohet ';
+$strThai = 'Thai';
+$strTheme = 'Tema / Stili';
+$strThisHost = 'Këtë Host';
+$strThreadSuccessfullyKilled = 'Thread %s u përfundua me sukses.';
+$strTime = 'Koha';
+$strToggleScratchboard = '(ç\')aktivo scratchboard';
+$strTotal = 'Gjithsej';
+$strTotalUC = 'Gjithsej';
+$strTraditionalChinese = 'Kineze tradicionale';
+$strTraditionalSpanish = 'Spanjishte tradicionale';
+$strTraffic = 'Trafiku';
+$strTransformation_application_octetstream__download = 'Shfaq një lidhje për të shkarkuar të dhënat binare të një fushe. Mundësia e parë është emri i file binar. Opcioni i dytë është emri i mundshëm i fushës së rreshtit të tabelës që përmban emrin e file. Nëse jepni opcionin e dytë, opcioni i parë duhet të jetë një stringë bosh';
+$strTransformation_image_jpeg__inline = 'Shfaq një miniaturë të klikueshme; mundësitë: gjërësia, lartësia në pixels (ruan proporcionin origjinal)';
+$strTransformation_image_jpeg__link = 'Shfaq një lidhje për tek kjo figurë (download blob direkt, p.sh.).';
+$strTransformation_image_png__inline = 'Shiko figurën/jpeg: në linjë';
+$strTransformation_text_plain__external = 'VETËM PËR LINUX: Lëshon një program të jashtëm dhe plotëson të dhënat e fushave me anë të standard input. Jep si rezultat standard output e programit. Vendosja default është Tidy, për të printuar si duhet kodin HTML. Për arsye sigurie, do t\'ju duhet të ndryshoni file libraries/transformations/text_plain__external.inc.php dhe të shkruani instrumentet që lejoni të përdoren. Mundësia e parë pra është numri i programit që dëshironi të përdorni dhe e dyta janë parametrat për programin. Parametri i tretë, n.q.s. i vendosur në 1 do të konvertojë output duke përdorur htmlspecialchars() (Prezgjedhur: 1). Një parametër i katërt, po të jetë vendosur në 1 do t\'i shtojë një NOWRAP përmbajtjes së qelisë kështu që output komplet do të shfaqet pa u riformatuar (Default: 1)';
+$strTransformation_text_plain__formatted = 'Konservon formatimin origjinal të fushës. Nuk aplikohet asnjë Escaping.';
+$strTransformation_text_plain__imagelink = 'Shfaq një figurë dhe një link, fusha përmban emrin e file; opcioni i parë është një prefiks si "http://domain.com/", opcioni i dytë është gjërësia në pixels, i treti është lartësia.';
+$strTransformation_text_plain__link = 'Shfaq një link, fusha përmban emrin e file; opcioni i parë është një prefiks si "http://domain.com/", opcioni i dytë është një titull për lidhjen.';
+$strTransformation_text_plain__substr = 'Shfaq vetëm një pjesë të string-ës. Opcioni i parë është offset-i që shërben për të përcaktuar ku fillon output i tekstit tuaj (Default 0). Opcioni i dytë është një offset që tregon se sa tekst kthehet. Po të jetë bosh, kthen të gjithë tekstin e mbetur. Opcioni i tretë përcakton çfarë karakteresh do të shtohen në fund të output kur kthehet një nën-string-ë (Default: ...) .';
+$strTruncateQueries = 'Shkurton (ndërpret) Queries e Shfaqura';
+$strTurkish = 'Turqisht';
+$strType = 'Lloji';
+
+$strUkrainian = 'Ukrainase';
+$strUncheckAll = 'Ç\'zgjidhi të gjithë';
+$strUnicode = 'Unicode';
+$strUnique = 'I vetëm';
+$strUnknown = 'e panjohur';
+$strUnselectAll = 'Ç\'zgjidh gjithçka';
+$strUpdatePrivMessage = 'Ke rifreskuar lejet për %s.';
+$strUpdateProfileMessage = 'Profili u rifreskua.';
+$strUpdateQuery = 'Rifresko Query';
+$strUpdComTab = 'Ju lutem lexoni dokumentet mbi rifreskimin e tabelës suaj Column_comments';
+$strUpgrade = 'Duhet të instaloni %s %s ose superior.';
+$strUsage = 'Përdorimi';
+$strUseBackquotes = 'Përdor backquotes me emrat e tabelave dhe fushave';
+$strUseHostTable = 'Përdor Tabelën e Host-it';
+$strUserAlreadyExists = 'Përdoruesi %s ekziston!';
+$strUserEmpty = 'Emri i përdoruesit është bosh!';
+$strUserName = 'Emri i përdoruesit';
+$strUserNotFound = 'Përdoruesi i zgjedhur nuk u gjet tek tabela e të drejtave.';
+$strUserOverview = 'Paraqitja e përgjithshme e përdoruesve';
+$strUser = 'Përdorues';
+$strUsersDeleted = 'Përdoruesit e zgjedhur u hoqën me sukses.';
+$strUsersHavingAccessToDb = 'Përdoruesit që kanë hyrje tek &quot;%s&quot;';
+$strUseTables = 'Përdor tabelat';
+$strUseTextField = 'Përdor fushë teksti';
+$strUseThisValue = 'Përdor këtë vlerë';
+
+$strValidateSQL = 'Vleftëso SQL';
+$strValidatorError = 'Miratuesi SQL nuk arrin të niset. Ju lutem kontrolloni instalimin e prapashtesave të duhura php ashtu si përshkruhet tek %sdokumentimi%s.';
+$strValue = 'Vlerë';
+$strVar = 'E ndryshueshme';
+$strViewDumpDatabases = 'Shfaq dump (skema) e databazave';
+$strViewDumpDB = 'Shfaq dump (skema) e databazës';
+$strViewDump = 'Shfaq dump (skema) e tabelës';
+
+$strWebServerUploadDirectory = 'directory e upload të server-it web';
+$strWebServerUploadDirectoryError = 'Directory që keni zgjedhur për upload nuk arrin të gjehet';
+$strWelcome = 'Mirësevini tek %s';
+$strWestEuropean = 'Europa Perëndimore';
+$strWildcard = 'wildcard';
+$strWindowNotFound = 'Dritarja e destinimit të browser nuk mund të rifreskohet. Ka mundësi të keni mbyllur dritaren nënë apo që browser-i juaj është duke bllokuar rifreskimet ndërmjet browser-ve për shkak të ndonjë mase sigurie';
+$strWithChecked = 'N.q.s. të zgjedhur:';
+$strWrongUser = 'Emër përdoruesi apo fjalëkalim i gabuar. Ndalohet hyrja.';
+
+$strXML = 'XML';
+
+$strYes = ' Po ';
+
+$strZeroRemovesTheLimit = 'Shënim: Vendosja e këtyre opcioneve në 0 (zero) do të thotë asnjë limit.';
+$strZip = '"kompresuar me zip"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/arabic-utf-8.inc.php b/lang/arabic-utf-8.inc.php
new file mode 100644
index 0000000000..6edf663704
--- /dev/null
+++ b/lang/arabic-utf-8.inc.php
@@ -0,0 +1,1473 @@
+<?php
+/* $Id$ */
+
+/**
+ * Original translation to Arabic by Fisal <fisal77 at hotmail.com>
+ * Update by Tarik kallida <kallida at caramail.com>
+ * Final Update on November 25, 2003 by Ossama Khayat <okhayat at yahoo.com>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'rtl'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+//$byteUnits = array('بايت', 'كيلوبايت', 'ميجابايت', 'غيغابايت');
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت');
+$month = array('يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y الساعة %H:%M';
+
+$timespanfmt = '%s يوم، %s ساعة، %s دقيقة و%s ثانية';
+
+$strAbortedClients = 'ألغي';
+$strAccessDeniedExplanation = 'حاول phpMyAdmin الاتصال بخادم MySQL، ورفض الخادم الاتصال. عليك أن تتحقق من المستضيف، أو اسم المستخدم وكلمة المرور في ملف الإعداد config.inc.php وتتأكد أنها مطابقة للمعلومات المعطاة إليك من قبل المسؤول عن خادم MySQL.';
+$strAccessDenied = 'غير مسموح';
+$strAction = 'العملية';
+$strAddAutoIncrement = 'أضف قيمة AUTO_INCREMENT';
+$strAddConstraints = 'أضف قيوداً';
+$strAddDeleteColumn = 'إضافه/حذف عمود حقل';
+$strAddDeleteRow = 'إضافه/حذف صف سجل';
+$strAddIntoComments = 'أضف إلى الملاحظات';
+$strAddNewField = 'إضافة حقل جديد';
+$strAddPrivilegesOnDb = 'إضافة الصلاحيات على قاعدة البيانات التالية';
+$strAddPrivilegesOnTbl = 'إضافة الصلاحيات على الجدول التالي';
+$strAddSearchConditions = 'أضف شروط البحث (جسم من الفقره "where" clause):';
+$strAddToIndex = 'إضافه كفهرس &nbsp;%s&nbsp;صف(ـوف)';
+$strAddUserMessage = 'لقد أضفت مستخدم جديد.';
+$strAddUser = 'أضف مستخدم جديد';
+$strAdministration = 'إدارة';
+$strAfterInsertBack = 'الرجوع إلى الصفحة السابقة';
+$strAfterInsertNewInsert = 'إدخال تسجيل جديد';
+$strAfter = 'بعد %s';
+$strAllTableSameWidth = 'أظهر كل الجدوال بنفس العرض؟';
+$strAll = 'الكل';
+$strAlterOrderBy = 'تعديل ترتيب الجدول بـ';
+$strAnalyzeTable = 'تحليل الجدول';
+$strAnd = 'و';
+$strAnIndex = 'لقد أُضيف الفهرس في %s';
+$strAnyHost = 'أي مزود';
+$strAnyUser = 'أي مستخدم';
+$strAny = 'أي';
+$strAPrimaryKey = 'لقد أُضيف المفتاح الأساسي في %s';
+$strArabic = 'العربية';
+$strArmenian = 'الأرمنية';
+$strAscending = 'تصاعدياً';
+$strAtBeginningOfTable = 'في بداية الجدول';
+$strAtEndOfTable = 'في نهاية الجدول';
+$strAttr = 'الخواص';
+$strAutomaticLayout = 'مظهر تلقائي';
+
+$strBack = 'رجوع';
+$strBaltic = 'البلطيق';
+$strBeginCut = 'بدء القصّ';
+$strBeginRaw = 'بدء بيانات أصليّة';
+$strBinaryDoNotEdit = 'ثنائي - لاتحرره';
+$strBinary = 'ثنائي';
+$strBookmarkAllUsers = 'اسمح لكل المستخدمين الوصول إلى هذه العلامة المرجعية';
+$strBookmarkDeleted = 'لقد حُذفت العلامه المرجعيه.';
+$strBookmarkLabel = 'علامه';
+$strBookmarkQuery = 'علامه مرجعيه SQL-إستعلام';
+$strBookmarkThis = 'إجعل علامه مرجعيه SQL-إستعلام';
+$strBookmarkView = 'عرض فقط';
+$strBrowseForeignValues = 'استعرض القيم الغريبة';
+$strBrowse = 'إستعراض';
+$strBulgarian = 'البلغارية';
+$strBzip = '"bzipped"';
+
+$strCannotLogin = 'لا يمكن الدخول إلى خادم MySQL';
+$strCantLoadRecodeIconv = 'لم يمكن تحميل iconv أو إعادة تشفير الإمتداد المطلوب لتحويل شيفرة الأحرف، الرجاء إعداد PHP ليسمح باستخدام هذه الإمتدادات أو عطل عمل التحويل في phpMyAdmin.';
+$strCantLoad = 'لا يمكن قراءة الامتداد %s،<br />رجاء تأكد من إعدادات PHP.';
+$strCantRenameIdxToPrimary = 'لايمكن تغيير إسم الفهرس إلى الأساسي!';
+$strCantUseRecodeIconv = 'لا يمكن استخدام iconv ولا libiconv ولا عملية recode_string في حين يحدد الامتداد أنه محمّل. تأكّد من إعدادات PHP.';
+$strCardinality = 'Cardinality';
+$strCaseInsensitive = 'غير حساس لحالة الأحرف';
+$strCaseSensitive = 'حساس لحالة الأحرف';
+$strCentralEuropean = 'أوروبا الوسطى';
+$strChangeCopyModeCopy = ' ... أبق القديم.';
+$strChangeCopyModeDeleteAndReload = ' ... إحذف القديمين من جداول المستخدمين وأعد قراءة الصلاحيات بعد ذلك.';
+$strChangeCopyModeJustDelete = ' ... إحذف القديم من جداول المستخدمين.';
+$strChangeCopyModeRevoke = ' ... استعد كل الصلاحيات الفعالة من القديمين واحذهم بعد ذلك.';
+$strChangeCopyMode = 'أضف اسم مستخدم جديد بنفس الصلاحيات و...';
+$strChangeCopyUser = 'غيّر معلومات الدخول / إنسخ اسم مستخدم';
+$strChangeDisplay = 'اختر الحقل لإظهاره';
+$strChangePassword = 'تغيير كلمة السر';
+$strChange = 'تغيير';
+$strCharsetOfFile = 'شيفرة أحرف الملف:';
+$strCharsetsAndCollations = 'مجموعات المحارف وCollations';
+$strCharsets = 'مجموعات المحارف';
+$strCharset = 'مجموعة المحارف';
+$strCheckAll = 'إختر الكل';
+$strCheckOverhead = 'تحقق من overhead';
+$strCheckPrivsLong = 'تحقق من الصلاحيات لقاعدة بيانات &quot;%s&quot;.';
+$strCheckPrivs = 'تحقق من الصلاحيات';
+$strCheckTable = 'التحقق من الجدول';
+$strChoosePage = 'رجاءً اختر صفحة لتعديلها';
+$strColComFeat = 'إظهار تعليقات العمود';
+$strCollation = 'Collation';
+$strColumnNames = 'إسم العمود';
+$strColumnPrivileges = 'صلاحيات خاصة بالحقل';
+$strCommand = 'أمْر';
+$strComments = 'تعليقات';
+$strCompleteInserts = 'الإدخال لقد إكتمل';
+$strCompression = 'الضغط';
+$strConfigFileError = 'لم يستطع phpMyAdmin أن يقرأ ملف إعداداتك!<br />قد يكون هذا بسبب أن PHP وجد خطأ في الإعراب فيه أو أنه لا يستطيع أن يجد الملف.<br />رجاءً اقرأ الملف بشكل مباشر باستخدام الوصلة أدناه واقرأ رسالة الخطأ الناتجة. في معظم الحالات قد تكون علامة التنصيص أو علامة الفاصلة المنقوطة ناقصة في مكان ما.<br />إن حصلت على صفحة فارغة، فكلّ شيء على ما يرام.';
+$strConfigureTableCoord = 'رجاء إعداد الموقع للجدول %s';
+$strConnections = 'اتصالات';
+$strConstraintsForDumped = 'قيود الجداول المحفوظة';
+$strConstraintsForTable = 'القيود للجدول';
+$strCookiesRequired = 'يجب تفعيل دعم الكوكيز في هذه المرحلة.';
+$strCopyTableOK = 'الجدول %s لقد تم نسخه إلى %s.';
+$strCopyTableSameNames = 'لا يمكن نسخ الجدول إلى نفسه!';
+$strCopyTable = 'نسخ الجدول إلى';
+$strCouldNotKill = 'لم يستطع phpMyAdmin إيقاف العمليّة %s. يبدو أنها أوقفت مسبقاً.';
+$strCreateIndexTopic = 'تصميم فهرسه جديده';
+$strCreateIndex = 'تصميم فهرسه على&nbsp;%s&nbsp;عمود';
+$strCreateNewDatabase = 'تكوين قاعدة بيانات جديدة';
+$strCreateNewTable = 'تكوين جدول جديد في قاعدة البيانات %s';
+$strCreatePage = 'أنشئ صفحة جديدة';
+$strCreatePdfFeat = 'إنشاء ملفات PDF';
+$strCreate = 'تكوين';
+$strCreationDates = 'تواريخ الإنشاء/التحديث/التحقّق';
+$strCriteria = 'المعايير';
+$strCroatian = 'الكرواتية';
+$strCyrillic = 'السيريلية';
+$strCzech = 'التشيكية';
+
+$strDanish = 'الدنمركية';
+$strDatabaseExportOptions = 'خيارات تصدير قاعدة بيانات';
+$strDatabaseHasBeenDropped = 'قاعدة بيانات %s محذوفه.';
+$strDatabasesDropped = 'تم حذف قواعد البيانات %s بنجاح.';
+$strDatabasesStatsDisable = 'أوقف الإحصائيات';
+$strDatabasesStatsEnable = 'مكّن الإحصائيات';
+$strDatabasesStatsHeavyTraffic = 'ملاحظة: تمكين إحصائيات قواعد البيانات هنا قد يسبب تدفق بيانات ثقيل بين خادم الوب وخادم MySQL.';
+$strDatabasesStats = 'إحصائيات قواعد البيانات';
+$strDatabases = 'قاعدة بيانات';
+$strDatabase = 'قاعدة البيانات';
+$strDataDict = 'قاموس البيانات';
+$strDataOnly = 'بيانات فقط';
+$strData = 'بيانات';
+$strDBComment = 'ملاحظة قاعدة البيانات: ';
+$strDbPrivileges = 'صلاحيات خاصة بقاعدة البيانات';
+$strDbSpecific = 'خاص بقاعدة بيانات';
+$strDefaultValueHelp = 'للقيم الافتراضية، الرجاء أدخل قيمة مفردة، دون علامات هروب أو تنصيص، باستخدام التنسيق: a';
+$strDefault = 'إفتراضي';
+$strDelayedInserts = 'استخدم الإضافات المتأخرة';
+$strDeleteAndFlushDescr = 'هذه هي أنظف طريقة، لكن إعادة قراءة الصلاحيات قد يتطلّب بعض الوقت.';
+$strDeleteAndFlush = 'احذف المستخدمين وقم بإعادة قراءة الصلاحيات بعد ذلك.';
+$strDeleted = 'لقد تم حذف الصف';
+$strDelete = 'حذف';
+$strDeleting = 'قيْد حذْف %s';
+$strDelOld = 'تحتوي الصفحة الحالية مراجع لجداول لم تعد موجودة. هل تود حذف هذه المراجع؟';
+$strDescending = 'تنازلياً';
+$strDescription = 'الوصف';
+$strDictionary = 'قاموس';
+$strDisabled = 'معطّل';
+$strDisplayFeat = 'إظهار المزايا';
+$strDisplayOrder = 'ترتيب العرض:';
+$strDisplayPDF = 'إظهار بناء ملف PDF';
+$strDoAQuery = 'تجعل "إستعلام بواسطة المثال" (wildcard: "%")';
+$strDocu = 'مستندات وثائقيه';
+$strDoYouReally = 'هل تريد حقاً تنفيذ';
+$strDropUsersDb = 'إحذف قواعد البيانات التي لها نفس إسماء المستخدمين.';
+$strDrop = 'حذف';
+$strDumpingData = 'إرجاع أو إستيراد بيانات الجدول';
+$strDumpSaved = 'تم حفظ الـDump إلى الملف %s.';
+$strDumpXRows = 'إحدف %s سطر بدءً من السطر %s.';
+$strDynamic = 'ديناميكي';
+
+$strEditPDFPages = 'عدّل صفحات PDF';
+$strEditPrivileges = 'تحرير الإمتيازات';
+$strEdit = 'تحرير';
+$strEffective = 'فعال';
+$strEmptyResultSet = 'MySQL قام بإرجاع نتيجة إعداد فارغه (مثلاً. صف صفري).';
+$strEmpty = 'إفراغ محتوى';
+$strEnabled = 'ممكّن';
+$strEndCut = 'انتهاء القصّ';
+$strEndRaw = 'انتهاء البيانات الأصلية';
+$strEnd = 'نهايه';
+$strEnglishPrivileges = ' ملاحظه: إسم الإمتياز لـMySQL يظهر ويُقرأ باللغه الإنجليزيه فقط ';
+$strEnglish = 'الإنجليزية';
+$strError = 'خطأ';
+$strEstonian = 'الإستونية';
+$strExcelEdition = 'إصدارة إكسل';
+$strExecuteBookmarked = 'نفّذ استعلام محفوظ بعلامة مرجعية';
+$strExplain = 'إشرح SQL';
+$strExport = 'تصدير';
+$strExtendedInserts = 'إدخال مُدد';
+$strExtra = 'إضافي';
+
+$strFailedAttempts = 'محاولات أخفقت';
+$strFieldHasBeenDropped = 'حقل محذوف %s';
+$strFieldsEnclosedBy = 'حقل مضمن بـ';
+$strFieldsEscapedBy = 'حقل مُتجاهل بـ';
+$strFieldsTerminatedBy = 'حقل مفصول بـ';
+$strFields = ' عدد الحقول';
+$strField = 'الحقل';
+$strFileAlreadyExists = 'المف %s موجود اصلاً على الخادم. غير الاسم أو حدد خيار التسجيل على الملف الموجود.';
+$strFileCouldNotBeRead = 'لم يمكن قراءة الملف';
+$strFileNameTemplateRemember = 'تذكر القالب';
+$strFileNameTemplate = 'قالب إسم الملف';
+$strFixed = 'مثبت';
+$strFlushPrivilegesNote = 'ملاحظة: يقرأ phpMyAdmin صلاحيات المستخدمين من جداول الصلاحيات من خادم MySQL مباشرةً. محتويات هذه الجداول قد تختلف عن الصلاحيات التي يستخدمها الخادم إذا ما تمّ التعديل عليها يدويّاً. في هذه الحالة، عليك %s بإعادة قراءة الصلاحيات %s قبل أن تكمل.';
+$strFlushTable = 'إعادة تحميل الجدول ("FLUSH")';
+$strFormat = 'صيغه';
+$strFormEmpty = 'يوجد قيمه مفقوده بالنموذج !';
+$strFullText = 'نصوص كامله';
+$strFunction = 'دالة';
+
+$strGenBy = 'أنشئ بواسطة';
+$strGeneralRelationFeat = 'المزايا العامّة للرابط';
+$strGenTime = 'أنشئ في';
+$strGerman = 'الألمانية';
+$strGlobalPrivileges = 'صلاحيّات عامّة';
+$strGlobalValue = 'قيمة عامّة';
+$strGlobal = 'عامّ';
+$strGo = '&nbsp;تنفيــذ&nbsp;';
+$strGrantOption = 'مَنْحْ';
+$strGreek = 'اليونانية';
+$strGzip = '"gzipped"';
+
+$strHasBeenAltered = 'لقد عُدِل.';
+$strHaveToShow = 'عليك اختيار عمود واحد على الأقل للعرض';
+$strHebrew = 'العبرية';
+$strHomepageOfficial = 'الصفحة الرئيسية الرسمية لـ phpMyAdmin';
+$strHome = 'الصفحة الرئيسية';
+$strHostEmpty = 'إسم المستضيف فارغ!';
+$strHost = 'المزود';
+$strHungarian = 'الهنغارية';
+
+$strIdxFulltext = 'النص كاملاً';
+$strId = 'رقم';
+$strIgnore = 'تجاهل';
+$strImportFiles = 'استورد الملفات';
+$strIndexes = 'فهارس';
+$strIndexHasBeenDropped = 'فهرسه محذوفه %s';
+$strIndexName = 'إسم الفهرس&nbsp;:';
+$strIndexType = 'نوع الفهرس&nbsp;:';
+$strIndex = 'فهرست';
+$strInnodbStat = 'وضع InnoDB';
+$strInsecureMySQL = 'يحتوي ملف الإعدادت الخاص بك تعيينات )المستخدم root دون كلمة مرور( والذي يشير إلى حساب المستخدم الرئيسي لـMySQL. خادم MySQL الذي يعمل بهذه الإعدادت الافتراضية معرض لخطر الاقتحام، وعليك أن تقوم بإصلاح ثغرة الأمان هذه في أقرب وقت ممكن.';
+$strInsertAsNewRow = 'إدخال كتسجيل جديد';
+$strInsert = 'إدخال';
+$strInternalRelations = 'العلاقات الداخلية';
+$strInUse = 'قيد الإستعمال';
+
+$strJapanese = 'اليابانية';
+$strJumpToDB = 'إذهب إلى قاعدة بيانات &quot;%s&quot;.';
+$strJustDeleteDescr = 'سوف يبقى المستخدمون &quot;المحذوفون&quot; قادرون على الوصول للخادم كالعادة حتى يتم إعادة قراءة الصلاحيات.';
+$strJustDelete = 'فقط قم بحذف المستخدمين من جدول الصلاحيات.';
+
+$strKeepPass = 'لاتغير كلمة السر';
+$strKeyname = 'إسم المفتاح';
+$strKill = 'إبطال';
+$strKorean = 'الكورية';
+
+$strLandscape = 'عرض الصفحة';
+$strLatexCaption = 'عنوان الجدول';
+$strLatexContent = 'محتوييات الجدول __TABLE__';
+$strLatexContinuedCaption = 'عنوان جدول تابع';
+$strLatexContinued = '(تابع)';
+$strLatexIncludeCaption = 'أضف عنواناً للجدول';
+$strLatexLabel = 'Label key';
+$strLatexStructure = 'بنية الجدول __TABLE__';
+$strLaTeX = 'لاتِكْسْ';
+$strLengthSet = 'الطول/القيمه*';
+$strLimitNumRows = 'رقم السجلات لكل صفحه';
+$strLinesTerminatedBy = 'خطوط مفصوله بـ';
+$strLinkNotFound = 'لم يمكن إيجاد الوصلة';
+$strLinksTo = 'مرتبط بـ';
+$strLithuanian = 'الليتوانية';
+$strLocalhost = 'محلي';
+$strLocationTextfile = 'مكان ملف نصي';
+$strLoginInformation = 'بيانات الدخول';
+$strLogin = 'دخول';
+$strLogout = 'تسجيل خروج';
+$strLogPassword = 'كلمة السر:';
+$strLogServer = 'خادم السجلّ';
+$strLogUsername = 'إسم المُستخدم:';
+
+$strMIME_available_mime = 'أنواع MIME المتوفرة';
+$strMIME_available_transform = 'التحويلات المتوفرة';
+$strMIME_description = 'الوصف';
+$strMIME_MIMEtype = 'نوع MIME';
+$strMIME_nodescription = 'ليس هناك وصف متوفر لهذا التحويل.<br />رجاء اسأل الناشر، ما يفعله %s.';
+$strMIME_transformation_note = 'لعرض قائمة بخيارات التحويل المتوفرة وأنواع تحويلات MIME الخاصة بها، إضغط على %sخيارات التحويل%s';
+$strMIME_transformation_options_note = 'رجاءً أدخل القيم لخيارات التحويل باستخدام هذا التنسيق: \'a\', 100, b,\'c\'...<br />إذا احتجت أن تضع شرْطة مائلة ("\") أو علامة تنصيص ("\'") بين هذه القيم، اسبقها بشرْطة مائلة )على سبيل المثال \'\\\\xyz\' أو \'a\\\'b\'(.';
+$strMIME_transformation_options = 'خيارات التحويل';
+$strMIME_transformation = 'تحويل المتصفح';
+$strMIME_without = 'أنواع MIME التي تظهر بحروف مائلة ليس لها وظيفة تحويل منفصلة';
+$strModifications = 'تمت التعديلات';
+$strModifyIndexTopic = 'تعديل الفهرسه';
+$strModify = 'تعديل';
+$strMoveTableOK = '%s جدول تم نقله إلى %s.';
+$strMoveTableSameNames = 'لايمكن نقل الجدول إلى نفسه!';
+$strMoveTable = 'نقل جدول إلى (قاعدة بيانات<b>.</b>جدول):';
+$strMultilingual = 'متعدد اللغات';
+$strMySQLCharset = 'شيفرة أحرف MySQL';
+$strMySQLSaid = 'MySQL قال: ';
+$strMySQLShowProcess = 'عرض العمليات';
+
+$strName = 'الإسم';
+$strNext = 'التالي';
+$strNoDatabasesSelected = 'لا قواعد بيانات محددة';
+$strNoDatabases = 'لايوجد قواعد بيانات';
+$strNoDescription = 'بدون وصف';
+$strNoDropDatabases = 'معطل "حذف قاعدة بيانات"الأمر ';
+$strNoExplain = 'تخطّي شرح SQL';
+$strNoFrames = 'phpMyAdmin أكثر تفهماً مع مستعرض <b>الإطارات</b>.';
+$strNoIndexPartsDefined = 'إجزاء الفهرسه غير معرفه!';
+$strNoIndex = 'فهرس غير معرف!';
+$strNoModification = 'لا تغييرات';
+$strNone = 'لاشئ';
+$strNoOptions = 'هذا التنسيق ليس له أي خيارات';
+$strNoPassword = 'لا كلمة سر';
+$strNoPermission = 'خادأ£ الوب ليس لديه صلاحية لحفظ الملف %s.';
+$strNoPhp = 'بدون شيفرة PHP';
+$strNoPrivileges = 'إمتياز غير موجود';
+$strNoRights = 'ليس لديك الحقوق الكافيه بأن تكون هنا الآن!';
+$strNoSpace = 'لا يوجد مساحة كافية لحفظ الملف %s.';
+$strNoTablesFound = 'لايوجد جداول متوفره في قاعدة البيانات هذه!.';
+$strNotNumber = 'هذا ليس رقم!';
+$strNotOK = 'ليس صالحاً';
+$strNotSet = 'الجدول <b>%s</b> غير موجود أو محدد في %s';
+$strNoUsersFound = 'المستخدم(ـين) لم يتم إيجادهم.';
+$strNoValidateSQL = 'تخطّي التأكّد من SQL';
+$strNo = 'لا';
+$strNull = 'خالي';
+$strNumSearchResultsInTable = '%s مطابقة في الجدول <i>%s</i>';
+$strNumSearchResultsTotal = '<b>المجموع:</b> <i>%s</i>مطابقة';
+$strNumTables = 'جداول';
+
+$strOK = 'موافق';
+$strOperations = 'عمليّات';
+$strOptimizeTable = 'ضغط الجدول';
+$strOr = 'أو';
+$strOverhead = 'الفوقي';
+$strOverwriteExisting = 'خزن على الملفات الموجودة أصلاً';
+
+$strPageNumber = 'صفحة رقم:';
+$strPaperSize = 'حجم الورق';
+$strPartialText = 'نصوص جزئيه';
+$strPasswordChanged = 'تم تغيير كلمة المرور لـ %s بنجاح.';
+$strPasswordEmpty = 'كلمة السر فارغة !';
+$strPasswordNotSame = 'كلمتا السر غير متشابهتان !';
+$strPassword = 'كلمة السر';
+$strPdfDbSchema = 'بناء قاعدة البيانات "%s" - الصفحة %s';
+$strPdfInvalidTblName = 'الجدول "%s" غير موجود!';
+$strPdfNoTables = 'لا يوجد جداول';
+$strPerHour = 'لكل ساعة';
+$strPerMinute = 'لكل دقيقة';
+$strPerSecond = 'لكل ثانية';
+$strPhoneBook = 'دفتر الهاتف';
+$strPHPVersion = ' PHP إصدارة';
+$strPhp = 'أنشئ شيفرة PHP';
+$strPmaDocumentation = 'مستندات وثائقيه لـ phpMyAdmin (بالإنجليزية)';
+$strPmaUriError = 'المتغير <span dir="ltr"><tt>$cfg[\'PmaAbsoluteUri\']</tt></span> يجب تعديله في ملف الكوفيك !';
+$strPortrait = 'طول الصفحة';
+$strPos1 = 'بداية';
+$strPrevious = 'سابق';
+$strPrimaryKeyHasBeenDropped = 'لقد تم حذف المفتاح الأساسي';
+$strPrimaryKeyName = 'إسم المفتاح الأساسي يجب أن يكون أساسي... PRIMARY!';
+$strPrimaryKeyWarning = '("الأساسي" <b>يجب</b> يجب أن يكون الأسم <b>وأيضاً فقط</b> المفتاح الأساسي!)';
+$strPrimary = 'أساسي';
+$strPrintViewFull = 'عرض الطباعة (مع النصوص الكاملة).';
+$strPrintView = 'عرض نسخة للطباعة';
+$strPrint = 'إطبع';
+$strPrivDescAllPrivileges = 'يتضمّن كل الصلاحيّات عدا GRANT.';
+$strPrivDescAlter = 'يسمح بتعديل بناء الجداول الموجودة مسبقاً.';
+$strPrivDescCreateDb = 'يسمح بإنشاء قواعد بيانات وجداول جديدة.';
+$strPrivDescCreateTbl = 'يسمح بإنشاء جداول جديدة.';
+$strPrivDescCreateTmpTable = 'يسمح بإنشاء جداول مؤقّتة.';
+$strPrivDescDelete = 'يسمح بحذف البيانات.';
+$strPrivDescDropDb = 'يسمح بحذف قواعد البيانات.';
+$strPrivDescDropTbl = 'يسمح بحذف الجداول.';
+$strPrivDescExecute = 'يسمح بتشغيل الإجراءات المخزّنة )stored procedures(، ليس له أي تأثير في هذه النسخة من خادم MySQL.';
+$strPrivDescFile = 'يسمح باستيراد وتصدير البيانات من وإلى الملفّات.';
+$strPrivDescGrant = 'يسمح بإضافة المستخدمين والصلاحيات دون إعادة قراءة جداول الصلاحيات.';
+$strPrivDescIndex = 'يسمح بإنشاء وحذف الفهارس.';
+$strPrivDescInsert = 'يسمح بإضافة واستبدال البيانات.';
+$strPrivDescLockTables = 'يسمح بقفل الجداول للعمليّة الحاليّة.';
+$strPrivDescMaxConnections = 'يحدّ من عدد الاتصالات الجديدة التي يمكن للمستخدم فتحها بكل ساعة.';
+$strPrivDescMaxQuestions = 'يحدّ عدد الاستعلامات التي يستطيع المستخدم إرسالها إلى الخادم بكل ساعة.';
+$strPrivDescMaxUpdates = 'يحدّ عدد الأوامر التي ينفذها المستخدم بكل ساعة، والتي تغير أي جدول أو قاعدة بيانات.';
+$strPrivDescReferences = 'ليس له أي تأثير في نسخة MySQL الحاليّة.';
+$strPrivDescReload = 'يسمح بإعادة تحميل إعدادات الخادم وتفريغ كاش الخادم.';
+$strPrivDescReplClient = 'يعطي الحق للمستخدم بالسؤال عن مكان وجود slaves/masters.';
+$strPrivDescReplSlave = 'مطلوب لتوابع لاستنساخ.';
+$strPrivDescSelect = 'يسمح بقراءة البيانات.';
+$strPrivDescShowDb = 'يسمح بالوصول لقائمة أسماء جميع قواعد البيانات.';
+$strPrivDescShutdown = 'يسمح بإيقاف عمل الخادم.';
+$strPrivDescSuper = 'يسمح بالاتصال، حتى لو وصل حدّ عدد الاتصالات للأقصى.، مطلوب للمهام الإدارية كضبط الإعدادات العامّة other users.';
+$strPrivDescUpdate = 'يسمح بتعديل البيانات.';
+$strPrivDescUsage = 'لا صلاحيات.';
+$strPrivilegesReloaded = 'تم إعادة قراءة الصلاحيات بنجاح.';
+$strPrivileges = 'الإمتيازات';
+$strProcesses = 'معالَجات';
+$strProcesslist = 'سرد العمليّات';
+$strPutColNames = 'ضع أسماء الحقول في السطر الأول';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'إستعلام بواسطة مثال';
+$strQueryFrame = 'نافذة الاستعلام';
+$strQueryOnDb = 'في قاعدة البيانات SQL-إستعلام <b>%s</b>:';
+$strQuerySQLHistory = 'نصوص SQL سابقة';
+$strQueryStatistics = '<b>إحصائيات الاستعلام</b>: %s استعلام أرسل إلى الخادم منذ تشغيله.';
+$strQueryTime = 'استغرف الاستعلام %01.4f ثانية';
+$strQueryType = 'نوع الاستعلام';
+$strQueryWindowLock = 'لا تخزن على هذا الاستعلام من خارج النافذة';
+
+$strReceived = 'استُلِم';
+$strRecords = 'التسجيلات';
+$strReferentialIntegrity = 'تحديد التكامل المرجعي:';
+$strRelationalSchema = 'بناء الإرتباطات';
+$strRelationNotWorking = 'تمّ تعطيل المزايا الإضافية للعمل بالجداول المترابطة. لمعرفة السبب إضغط %sهنا%s.';
+$strRelations = 'الروابط';
+$strRelationView = 'عرض الروابط';
+$strReloadingThePrivileges = 'قيد إعادة قراءة الصلاحيات.';
+$strRemoveSelectedUsers = 'إحذف المستخدمين المحددين';
+$strRenameTableOK = 'تم تغيير إسمهم إلى %s جدول%s';
+$strRenameTable = 'تغيير إسم جدول إلى';
+$strRepairTable = 'إصلاح الجدول';
+$strReplaceNULLBy = 'استبدل NULL بـ';
+$strReplaceTable = 'إستبدال بيانات الجدول بالملف';
+$strReset = 'إلغاء';
+$strResourceLimits = 'حدود المصادر';
+$strReType = 'أعد كتابه';
+$strRevokeAndDeleteDescr = 'سوف تبقى الصلاحية USAGE لدى المستخدمين حتى يتم إعادة قراءة الصلاحيات.';
+$strRevokeAndDelete = 'استرجع كل الصلاحيات الفعالة من المستخدمين ثم احذفهم بعد ذلك.';
+$strRevokeMessage = 'لقد أبطلت الأمتيازات لـ %s';
+$strRevoke = 'إبطال';
+$strRowLength = 'طول الصف';
+$strRowsFrom = 'صفوف تبدأ من';
+$strRowSize = ' مقاس الصف ';
+$strRowsModeFlippedHorizontal = ')عناوين ملتفّة( أفقياً';
+$strRowsModeHorizontal = 'أفقي';
+$strRowsModeOptions = ' %s و إعادة الرؤوس بعد %s حقل';
+$strRowsModeVertical = 'عمودي';
+$strRowsStatistic = 'إحصائيات';
+$strRows = 'صفوف';
+$strRunning = ' على المزود %s';
+$strRunQuery = 'إرسال الإستعلام';
+$strRunSQLQuery = 'تنفيذ إستعلام/إستعلامات SQL على قاعدة بيانات %s';
+$strRussian = 'الروسية';
+
+$strSaveOnServer = 'إحفظ على الخادم في الدليل %s';
+$strSave = 'حفــظ';
+$strScaleFactorSmall = 'نسبة الحجم المحددة صغيرة جدا لملائمة المخطط في صفحة واحدة.';
+$strSearchFormTitle = 'إبحث في قاعدة البيانات';
+$strSearchInTables = 'داخل الجدول)الجداول(:';
+$strSearchNeedle = 'الكلمات أو القيم المطلوب البحث عنها (wildcard: "%"):';
+$strSearchOption1 = 'على الأقل أحد الكلمات';
+$strSearchOption2 = 'كل الكلمات';
+$strSearchOption3 = 'الجملة بالضبط';
+$strSearchOption4 = 'كصيغة مطابقة';
+$strSearchResultsFor = 'إبحث في النتائج عن "<i>%s</i>" %s:';
+$strSearchType = 'إبحث:';
+$strSearch = 'إبحث';
+$strSecretRequired = 'يحتاج ملف الإعداد الآن إلى كلمة المرور السريّة.';
+$strSelectADb = 'إختر قاعدة بيانات من القائمة';
+$strSelectAll = 'تحديد الكل';
+$strSelectFields = 'إختيار حقول (على الأقل واحد):';
+$strSelectNumRows = 'في الإستعلام';
+$strSelectTables = 'إختر الجداول';
+$strSend = 'حفظ كملف';
+$strSent = 'أُرسِل';
+$strServerChoice = 'إختيار الخادم';
+$strServerStatusUptime = 'مضى على عمل خادم MySQL مدة %s. بدأ العمل في %s.';
+$strServerStatus = 'بيانات التشغيل';
+$strServerTabVariables = 'متغيّرات';
+$strServerTrafficNotes = '<b>سيْر الخادم</b>: تظهر هذه الجداول إحصائيات سيْر بيانات الشبكة لهذا الخادم منذ تشغيله.';
+$strServerVars = 'متغيّرات وأعدادات الخادم';
+$strServerVersion = 'إصدارة المزود';
+$strServer = 'خادم';
+$strSessionValue = 'قيمة الجلسة';
+$strSetEnumVal = 'إذا كان نوع الحقل هو "enum" أو "set", الرجاء إدخال القيم بإستخدام هذا التنسيق: \'a\',\'b\',\'c\'...<br />إذا كنت تحتاج بأن تضع علامة الشرطه المائله لليسار ("\") أو علامة الإقتباس الفرديه ("\'") فيما بين تلك القيم, إجعلها كشرطه مائله لليسار (مثلاً \'\\\\xyz\' أو \'a\\\'b\').';
+$strShowAll = 'شاهد الكل';
+$strShowColor = 'أظهر اللون';
+$strShowDatadictAs = 'تنسيق قامون البيانات';
+$strShowFullQueries = 'إعرض الاستعلامات كاملة';
+$strShowGrid = 'أظهر تخطيط الجدول';
+$strShowingRecords = 'مشاهدة السجلات ';
+$strShowPHPInfo = 'عرض المعلومات المتعلقة ب PHP';
+$strShowTableDimension = 'إظهار أبعاد الجداول';
+$strShowTables = 'شاهد الجدول';
+$strShowThisQuery = ' عرض هذا الإستعلام هنا مرة أخرى ';
+$strShow = 'عرض';
+$strSimplifiedChinese = 'الصينية المبسطة';
+$strSingly = '(فردي)';
+$strSize = 'الحجم';
+$strSortByKey = 'رتّب حسب المفتاح';
+$strSort = 'تصنيف';
+$strSpaceUsage = 'المساحة المستغلة';
+$strSplitWordsWithSpace = 'الكلمات مفصولة بحرف مسافة (" ").';
+$strSQLExportType = 'نوع التصدير';
+$strSQLParserBugMessage = 'هناك احتمال أنك عثرت على خلل في مدققّ SQL. رجاءً اختبر استعلامك بدقّة، وتأكّد من أن علامات التنصيص صحيحة ومتطابقة. بعض أسباب الإخفاق الأخرى قد تكون أنك تحاول تحميل ملف يحتوي على بيانات غير نصّية خارج منطقة التنصيص. يمكنك أيضاً تجربة استعلامك بواسطة سطر أوامر MySQL. قد تساعدك رسالة خطأ خادم MySQL أدناه، إن كانت هناك واحدة، على تشخيص المشكلة. إن بقي هناك مشاكل أو إن أخفق المدقّق في حين نجح استخدام سطر الأوامر، رجاءً قلّص حجم استعلامك لاستعلام واحد يسبب المشكلة، وقم بإرسال تقرير خلل مع جزء البيانات في منطقة القصّ أدناه:';
+$strSQLParserUserError = 'يبدو أن هناك خطأ في استعلام SQL. سوف تساعدك رسالة الخطأ من خادم MySQL أدناه في تشخيص المشكلة، إن كان هناك واحدة،.';
+$strSQLQuery = 'إستعلام-SQL';
+$strSQLResult = 'ناتج استعلام SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'معرّف غير صالح';
+$strSQPBugUnclosedQuote = 'علامة تنصيص غير مغلقة';
+$strSQPBugUnknownPunctuation = 'نص تنقيط غير معروف';
+$strStatCheckTime = 'التحقق الأخير';
+$strStatCreateTime = 'الإنشاء';
+$strStatement = 'أوامر';
+$strStatUpdateTime = 'التحديث الأخير';
+$strStatus = 'وضْع';
+$strStrucCSV = 'بيانات CSV';
+$strStrucData = 'البنية والبيانات';
+$strStrucExcelCSV = 'بيانات CSV لبرنامج ميكروسوفت إكسل';
+$strStrucOnly = 'البنية فقط';
+$strStructPropose = 'اقترح بناء الجدول';
+$strStructure = 'بناء';
+$strSubmit = 'إرسال';
+$strSuccess = 'الخاص بك تم تنفيذه بنجاح SQL-إستعلام';
+$strSum = 'المجموع';
+$strSwedish = 'السويدية';
+$strSwitchToTable = 'بدّل إلى الجدول المنسوخ';
+
+$strTableComments = 'تعليقات على الجدول';
+$strTableEmpty = 'إسم الجدول فارغ!';
+$strTableHasBeenDropped = 'جدول %s حُذفت';
+$strTableHasBeenEmptied = 'جدول %s أُفرغت محتوياتها';
+$strTableHasBeenFlushed = 'لقد تم إعادة تحميل الجدول %s بنجاح';
+$strTableMaintenance = 'صيانة الجدول';
+$strTableOfContents = 'جدول المحتويات';
+$strTableOptions = 'خيارات الجدول';
+$strTables = '%s جدول (جداول)';
+$strTableStructure = 'بنية الجدول';
+$strTable = 'الجدول ';
+$strTblPrivileges = 'صلاحيات خاصة بالجدول';
+$strTextAreaLength = ' بسبب طوله,<br /> فمن المحتمل أن هذا الحقل غير قابل للتحرير ';
+$strThai = 'التايلندية';
+$strThisHost = 'هذا المضيف';
+$strThreadSuccessfullyKilled = 'تم إيقاف العمليّة %s بنجاح.';
+$strTime = 'وقت';
+$strToggleScratchboard = 'toggle scratchboard';
+$strTotalUC = 'مجموع كلّي';
+$strTotal = 'المجموع';
+$strTraditionalChinese = 'الصينية التقليدية';
+$strTraffic = 'بيانات سير';
+$strTransformation_image_jpeg__inline = 'يظهر صورة مصغرة للضغط عليها، الخيارات: العرض، الارتفاع بالبكسل )ويبقي التناسب الأصلي للحجم(.';
+$strTransformation_image_jpeg__link = 'يظهر رابطاً لهذه الصورة (direct blob download, i.e.).';
+$strTransformation_image_png__inline = 'إعرض صور/jpeg: بنفس السطر';
+$strTransformation_text_plain__external = 'لينكس فقط: يشغّل تطبيقاً خارجياً و يقوم بتغذية بيانات الحقل عبر المدخل الافتراضي. يسترجع مخرجات التطبيق الافتراضية. القيمة الافتراضية هي Tidy، كي تطبع شيفرة نص HTML بشكل جميل. لأسباب أمنية، عليك أن تقوم بتعديل الملف libraries/transformations/text_plain__external.inc.php وإضافة الأدوات التي تريد أن تسمح لها بالعمل. الخيار الأول عند ذلك هو رقم البرنامج الذي تريد أن تستخدمه والخيار الثاني هو المتغيرات للبرنامج. سوف يقوم الخيار الثالث، إن حدد بقيمة 1، بتحويل المخرجات باستخدام htmlspecialchars() )القيمة الافتراضية 1(. متغير رابع، إن حدد بقيمة 1 سوف يضيف الصفة NOWRAP إلى الخلية الحاوية حتى يصبح المخرج بأكمله بدن إعادة تنسيق )القيمة الافتراضية 1(.';
+$strTransformation_text_plain__formatted = 'يُبقي التنسيق الأصلي للحقل. لا يتم عمل أي Escaping.';
+$strTransformation_text_plain__imagelink = 'تظهر صورة ورابط، يتحوي الحقل على إسم الملف، الخيار الأول هو سابقة مثل "http://domain.com/"، والخيار الثاني هو العرض بالبكسل، والثالث هو الارتفاع.';
+$strTransformation_text_plain__link = 'تظهر رابطاً، الحقل يحتوي إسم الملف، والخيار الأول هو سابقة مثل "http://domain.com/"، والخيار الثاني هو العنوان للرابط.';
+$strTransformation_text_plain__substr = 'يظهر فقط جزءً من النص. الخيار الأول يحدد مكان بدء ظهور النص )صفر بشكل افتراضي(. الخيار الثاني هو تعديل كمّ النص المسترجع. إن كان فارغاً، يسترجع كل النص الباقي. الخيار الثالث يعرف أي من الأحرف سوف تضاف إلى المخرجات عند استرجاع جزء من النص )... بشكل افتراضي(.';
+$strTruncateQueries = 'إحذف الاستعلامات المعروضة';
+$strTurkish = 'التركية';
+$strType = 'النوع';
+
+$strUkrainian = 'الأكرانية';
+$strUncheckAll = 'إلغاء تحديد الكل';
+$strUnicode = 'يونيكود';
+$strUnique = 'مميز';
+$strUnknown = 'غير معروفة';
+$strUnselectAll = 'إلغاء تحديد الكل';
+$strUpdatePrivMessage = 'لقد جددت وحدثت الإمتيازات لـ %s.';
+$strUpdateProfileMessage = 'لقد تم تجديد العرض الجانبي.';
+$strUpdateQuery = 'تجديد إستعلام';
+$strUpdComTab = 'رجاء راجع التوثيق لكيفية تحديث جدول Column_comments.';
+$strUpgrade = 'عليك التحديث إلى %s %s أو لاحقا.';
+$strUsage = 'المساحة';
+$strUseBackquotes = 'حماية أسماء الجداول و الحقول ب "`" ';
+$strUseHostTable = 'استخدم الجدول المضيف';
+$strUserAlreadyExists = 'إسم المستخدم %s موجود مسبقاً!';
+$strUserEmpty = 'إسم المستخدم فارغ!';
+$strUserName = 'إسم المستخدم';
+$strUserNotFound = 'المستخدم المحدد غير موجود في جدول الصلاحيات.';
+$strUserOverview = 'معلومات المستخدم';
+$strUsersDeleted = 'تم حذف المستخدمين المحددين بنجاح.';
+$strUsersHavingAccessToDb = 'المستخدمين ذوي صلاحية الوصول إلى &quot;%s&quot;';
+$strUser = 'المستخدم';
+$strUseTables = 'إستخدم الجدول';
+$strUseTextField = 'استخدم حقل نصّ';
+$strUseThisValue = 'استخدم هذه القيمة';
+
+$strValidateSQL = 'التحقق من استعلام SQL';
+$strValidatorError = 'لم يمكن تشغيل محقق SQL. الرجاء التأكد مما إذا كنت ثبّتْت إضافات PHP كما هو مشروح في %sالتوثيق%s.';
+$strValue = 'القيمه';
+$strVar = 'متغيّر';
+$strViewDumpDatabases = 'إعرض أو إحفظ بناء قواعد البيانات.';
+$strViewDumpDB = 'عرض بنية قاعدة البيانات';
+$strViewDump = 'عرض بنية الجدول ';
+
+$strWebServerUploadDirectoryError = 'الدليل الذي حددته لتحميل عملك لا يمكن الوصول إليه.';
+$strWebServerUploadDirectory = 'دليل تحميل الملفات على خادم الشبكة';
+$strWelcome = 'أهلاً بك في %s';
+$strWestEuropean = 'أوروبا الغربية';
+$strWildcard = 'حرف شامل';
+$strWindowNotFound = 'لم يمكن تحديث نافذة المتصفح المستهدفة. يبدو أنك أغلقت الرئيسية أو أن مستعرضك يمنع التحديث عبر النوافذ بسبب إعدادات الأمان.';
+$strWithChecked = ': على المحدد';
+$strWrongUser = 'خطأ إسم المستخدم/كلمة السر. الدخول ممنوع.';
+
+$strXML = 'XML';
+
+$strYes = 'نعم';
+
+$strZeroRemovesTheLimit = 'ملاحظة: تغيير هذه الخيارات للرقم 0 )صفر( يلغي الحدّ.';
+$strZip = '"zipped" "مضغوط"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/azerbaijani-utf-8.inc.php b/lang/azerbaijani-utf-8.inc.php
new file mode 100644
index 0000000000..430e0dd138
--- /dev/null
+++ b/lang/azerbaijani-utf-8.inc.php
@@ -0,0 +1,1468 @@
+<?php
+/* $Id$ */
+
+// tercümedeki eksiklerimi ve ya sehv olduğunu düşündüyünüz yerleri shehriyari@trcomm.net adresine göndere bilersiniz...
+// Şehriyar İmanov 30 Avqust 2003... Shehi
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bayt', 'KB', 'MB', 'QB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Baz', 'Baz Ert', 'Çerş Axş', 'Çerş', 'Cüme Axş', 'Cüme', 'Şen');
+$month = array('Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyun', 'İyul', 'Avq', 'Sent', 'Okt', 'Noy', 'Dek');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B, %Y saat %H:%M';
+$timespanfmt = '%s gün, %s saat, %s deqiqe ve %s saniye';
+
+$strAbortedClients = 'Dayandırılmış Elaqeler';
+$strAccessDenied = 'Giriş Tesdiq Edilmedi';
+$strAction = 'Fealiyyetler';
+$strAddAutoIncrement = 'AUTO_INCREMENT deyeri elave et';
+$strAddDeleteColumn = 'Sahe Sütunlarını Elave Et/Sil';
+$strAddDeleteRow = 'Kriteria Setirlerini Elave Et/Sil';
+$strAddHeaderComment = 'Başlığa xülase me\'lumatı elave et (\\n yeni setire keçir)';
+$strAddIntoComments = 'Xülaseye elave et';
+$strAddNewField = 'Yeni sahe elave et';
+$strAddPrivilegesOnDb = 'Aşağıdakı me\'lumat bazası üçün selahiyyet müeyyen et';
+$strAddPrivilegesOnTbl = 'Aşağıdakı cedvel üçün selahiyyetler müeyyen et';
+$strAddSearchConditions = 'Axtarış şertlerini gir ("where" ifadesinin esas metni):';
+$strAddToIndex = 'İndekse &nbsp;%s&nbsp;sütun elave et';
+$strAddUserMessage = 'Yeni istifadeçi elave etdiniz.';
+$strAddUser = 'Yeni İstifadeçi elave Et';
+$strAdministration = 'Administrasiya';
+$strAfterInsertBack = 'Evvelki sehifeye qayıt';
+$strAfterInsertNewInsert = 'Teze bir setir daha gir';
+$strAfterInsertNext = 'Bir sonrakı setre keç';
+$strAfterInsertSame = 'Bu sehifeye geri dön';
+$strAfter = 'Sonra: %s';
+$strAll = 'All';
+$strAllTableSameWidth = 'eyni enli bütün cedveller gösterilsinmi?';
+$strAlterOrderBy = 'Cedvel sırasına buna göre yeniden qur';
+$strAnalyzeTable = 'Cedveli analiz et';
+$strAnd = 'Ve';
+$strAnIndex = '%s üzerine indeks elave edildi';
+$strAny = 'Her hansı';
+$strAnyHost = 'Her hansı host';
+$strAnyUser = 'Her hansı istifadeçi';
+$strAPrimaryKey = '%s üzerine Birinci Dereceli Açar elave edildi.';
+$strArabic = 'Ereb';
+$strArmenian = 'Ermeni';
+$strAscending = 'Artan sırada';
+$strAtBeginningOfTable = 'Cedvelin başına';
+$strAtEndOfTable = 'Cedvelin sonuna';
+$strAttr = 'Xüsusiyyetler';
+$strAutomaticLayout = 'Automatik şablon';
+
+$strBack = 'Geri';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Binary';
+$strBinaryDoNotEdit = 'Binary - deyişiklik etme';
+$strBookmarkDeleted = 'Bookmark silindi.';
+$strBookmarkLabel = 'Etiket';
+$strBookmarkQuery = 'Bookmark-lanmış SQL sorğusu';
+$strBookmarkThis = 'Bu SQL sorğusunu bookmark-la';
+$strBookmarkView = 'Sadece göster';
+$strBrowse = 'İçindekiler';
+$strBulgarian = 'Bolqar Dili';
+$strBzip = '"bzip"lenmiş';
+
+$strCannotLogin = 'MySQL server-e gire bilmirem';
+$strCantLoadRecodeIconv = 'Charset çevirmeleri üçün lazım olan iconv ve ya recode uzantılarını yükleye bilmirem; ya php-ni bu uzantıları istifade ede bilmesi üçün yeniden quraşdırın ya da phpMyAdmin-de charset çevirme xüsusiyyetini söndürün.';
+$strCantLoad = '%s uzantısını (extension) yükleye bilmirem,<br />xahiş edirem PHP Konfiqurasiyanı gözden keçir.';
+$strCantRenameIdxToPrimary = 'İndeksi Birinci Dereceli (PRIMARY) olaraq yeniden adlandıra bilmirem!';
+$strCantUseRecodeIconv = 'Can not use iconv nor libiconv nor recode_string function while extension reports to be loaded. Check your php configuration.';
+$strCardinality = 'Cardinality';
+$strCentralEuropean = 'Merkezi Avropa';
+$strChangeCopyModeCopy = '... köhnesini saxla.';
+$strChangeCopyModeDeleteAndReload = ' ... istifadeçi cedvellerinden köhnesini sil ve ardından selahiyyetleri yeniden yükle.';
+$strChangeCopyMode = 'Eyni selahiyyetlere sahib yeni istifadeçi qur ve ...';
+$strChangeCopyModeJustDelete = ' ... istifadeçi cedvellerinden köhnesini sil.';
+$strChangeCopyModeRevoke = ' ... köhne istifadeçinin selahiyyetlerini elinden alaraq onu sil.';
+$strChangeCopyUser = 'Sistem Giriş Me\'lumatını Deyişdir / İstifadeçini Kopyala';
+$strChange = 'Deyişdir';
+$strChangeDisplay = 'Gösterilecek Saheni Seç';
+$strChangePassword = 'Parolu Deyişdir';
+$strCharset = 'Charset';
+$strCharsetOfFile = 'Faylın Charset-i:';
+$strCheckAll = 'Hamısını Seç';
+$strCheckPrivsLong = '&quot;%s&quot; bazası üçün selahiyyetleri gözden keçir.';
+$strCheckPrivs = 'Selahiyyetleri Gözden Keçir';
+$strCheckTable = 'Cedveli yoxla';
+$strChoosePage = 'Xahiş edirem, deyişdirilecek Sehifeni seç';
+$strColComFeat = 'Sütun Qısa İzahatını Deyişdir';
+$strColumnNames = 'Sütun adları';
+$strColumnPrivileges = 'Sütunaxas Selahiyyetler';
+$strCommand = 'Komanda Tipi';
+$strComments = 'Qısa İzahatlar';
+$strCompleteInserts = 'Tam girişli';
+$strCompression = 'Sıxışdırma';
+$strConfigFileError = 'phpMyAdmin konfiqurasiya faylınızı oxuya bilmedi!<br />Bunun sebebi fayldakı parse error ya da faylın mövcud olmaması ola biler.<br />Xahiş edirem aşağıdakı link-i istifade ederek konfiqurasiya faylını çağırın ve aldığınız php xeta mesaj(lar)ını oxuyun. Bir çox halda ya tek dırnaq ya da nöqteli vergül eksikliyi vardır.<br />Eger boş sehife ile qarşılaşsanız, demek ki, her şey qaydasındadır.';
+$strConfigureTableCoord = 'Xahiş edirem, %s cedveli üçün koordinatları yeniden müeyyen et.';
+$strConnectionError = 'Elaqe qura bilmirem: yalnış quruluş.';
+$strConnections = 'Elaqeler';
+$strCookiesRequired = 'Sisteme girebilmeniz üçün çerez faylları (cookie-ler) aktiv olmalıdır.';
+$strCopyTable = 'Cedveli kopyala (me\'lumat bazası<b>.</b>cedvel):';
+$strCopyTableOK = '%s cedveli %s - e kopyalandı.';
+$strCopyTableSameNames = 'Cedveli eynisinin üzerine kopyalaya bilmerem!';
+$strCouldNotKill = 'phpMyAdmin %s emeliyyat thread-ini söndüre (kill) bilmedi. Böyük ehtimal artıq söndürülmüşdür.';
+$strCreateIndex = '&nbsp;%s&nbsp;sütunda indeks yarat';
+$strCreateIndexTopic = 'Yeni indeks qur';
+$strCreateNewDatabase = 'Yeni me\'lumat bazası qur';
+$strCreateNewTable = '%s bazasında yeni cedvel qur';
+$strCreatePage = 'Yeni Sehife qur';
+$strCreatePdfFeat = 'PDF-lerin qurulması';
+$strCreate = 'Qur';
+$strCreationDates = 'Quruluş/Deyişdirilme/Yoxlama tarixleri';
+$strCriteria = 'Kriteriyalar';
+$strCroatian = 'Xorvat Dili';
+$strCyrillic = 'Kiril';
+$strCzechSlovak = 'Çex-Slovak';
+
+$strDatabaseExportOptions = 'Me\'lumat bazası eksport variantları';
+$strDatabaseHasBeenDropped = '%s bazası leğv edildi.';
+$strDatabase = 'Me\'lumat Bazası';
+$strDatabasesDropped = '%s bazası müveffeqiyyetle leğv edildi.';
+$strDatabases = 'Me\'lumat Bazaları';
+$strDatabasesStatsDisable = 'Statistikaları Söndür';
+$strDatabasesStatsEnable = 'Statistikaları Aktivleşdir';
+$strDatabasesStatsHeavyTraffic = 'Qeyd: Me\'lumat Bazası statistikalarını burada aktivleşdirmekle webserver-le MySQL server arasında ağır neqliyyata sebeb ola bilersiniz.';
+$strDatabasesStats = 'Me\'lumat Bazası Statistikaları';
+$strDataDict = 'Me\'lumat lüğeti';
+$strData = 'Me\'lumat';
+$strDataOnly = 'Sadece me\'lumat';
+$strDBComment = 'Baza qısa izahatı: ';
+$strDbPrivileges = 'Me\'lumat Bazasına Mexsus Selahiyyetler';
+$strDbSpecific = 'bazayaxas';
+$strDefault = 'Başlanğıc deyeri';
+$strDefaultEngine = '%s bu MySQL serverinde esas depolama motoru olaraq qurulmuşdur.';
+$strDefaultValueHelp = 'Başlanğıc deyer girerken, sadece deyeri girin, ters kesr escape-leme ya da dırnaqdan istifade etmeyin, bu formatı te\'qib edin: a';
+$strDeleteAndFlush = 'Bütün istifadeçileri sil ve ardından selahiyyetleri yeniden yükle.';
+$strDeleteAndFlushDescr = 'Bu en temiz yoldur, amma selahiyyetlerin yeniden yüklenmesi zaman teleb ede biler.';
+$strDeleted = 'Setir silindi';
+$strDelete = 'Sil';
+$strDeleting = '%s silinir';
+$strDelOld = 'Hal-hazırki sehifen artıq mövcud olmayan Cedvellere bağlıdır. Bu elaqelerin silinmesini istermisiniz?';
+$strDescending = 'Azalan sırada';
+$strDisabled = 'Söndürülüb';
+$strDisplayFeat = 'Xüsusiyyetleri Göster';
+$strDisplayOrder = 'Sıralama şekli:';
+$strDisplayPDF = 'PDF sxemini göster';
+$strDoAQuery = '"nümuneye göre sorğu" gönderin (xüsusi işare: "%")';
+$strDocu = 'Dokumentasiya';
+$strDoYouReally = 'Aşağıdakı sorğunu icra etdirmekten eminsiniz ';
+$strDropDatabaseStrongWarning = 'Bütün bazanı YOX ETMEK üzeresiniz!';
+$strDrop = 'Leğv et';
+$strDropUsersDb = 'İstifadeçilerle eyni adlı me\'lumat bazalarını leğv et.';
+$strDumpingData = 'Sxemi çıxarılan cedvel';
+$strDumpSaved = 'Sxem %s faylına qeyd edildi.';
+$strDumpXRows = '%s setri %s nömreli qeydden başlayaraq göster.';
+$strDynamic = 'dinamik';
+
+$strEdit = 'Deyişdir';
+$strEditPDFPages = 'PDF Sehifelerini Deyişdir';
+$strEditPrivileges = 'Selahiyyetleri Deyişdir';
+$strEffective = 'Effektiv';
+$strEmpty = 'Boşalt';
+$strEmptyResultSet = 'MySQL boş netice çoxluğu gönderdi (ye\'ni sıfır setir).';
+$strEnabled = 'Enabled';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'Son';
+$strEngineDisabled = '%s motoru bu serverde söndürülmüşdür.';
+$strEngines = 'Motorlar';
+$strEngineUnsupported = 'Bu MySQL server %s depolama motorunu desteklememektedir.';
+$strEnglish = 'İngilis Dili';
+$strEnglishPrivileges = ' Qeyd: MySQL selahiyyet adları ingilis dilinde ifade edilmişdir ';
+$strError = 'Xeta';
+$strEstonian = 'Eston Dili';
+$strExcelEdition = 'Excel versiyası';
+$strExplain = 'SQL-i İzah Et';
+$strExport = 'Eksport';
+$strExtendedInserts = 'Genişletilmiş girişli';
+$strExtra = 'Elave Xüs.';
+
+$strFailedAttempts = 'Uğursuz Cehdler';
+$strFieldHasBeenDropped = '%s sahesi leğv edildi';
+$strField = 'Sahe';
+$strFieldsEnclosedBy = 'Saheler ehate edildiyi işare';
+$strFieldsEscapedBy = 'Sahelerin escape edildiyi işare';
+$strFields = 'Sahe sayı';
+$strFieldsTerminatedBy = 'Sahelerin yox edildiyi (terminate) işare';
+$strFileAlreadyExists = '%s faylı serverda onsuz da mövcuddur, ya faylın adını deyişdir ya da üzerine yazma variantlarını.';
+$strFileCouldNotBeRead = 'Fayl oxuna bilmir';
+$strFileNameTemplate = 'Fayl adı nomenklaturası';
+$strFileNameTemplateRemember = 'nomenklaturanı unutma';
+$strFixed = 'fixed';
+$strFlushPrivilegesNote = 'Qeyd: phpMyAdmin istifadeçi selahiyyetlerini birbaşa MySQL-in selahiyyetler cedvellerinden almaqdadır. Eger elle nizamlamalar edilmişse, bu cedvellerin içerisindekiler webserver-in istifade etdiklerinden ferqli ola biler. Bu halda, davam etmeden evvel, selahiyyetleri yeniden yüklemelisiniz.';
+$strFlushTable = 'Cedveli flush-la ("FLUSH")';
+$strFormat = 'Format';
+$strFormEmpty = 'Formda eksik girilmiş deyer var!';
+$strFullText = 'Tam Metnler (Full Text)';
+$strFunction = 'Funksiya';
+
+$strGenBy = 'Qurucu';
+$strGeneralRelationFeat = 'Ümumi elaqe variantları';
+$strGenTime = 'Hazırlanma Vaxtı';
+$strGeorgian = 'Gürcü';
+$strGlobalPrivileges = 'Qlobal selahiyyetler';
+$strGlobal = 'qlobal';
+$strGlobalValue = 'Qlobal deyer';
+$strGo = 'Davam';
+$strGrantOption = 'İcaze ver';
+$strGzip = '"gzip"lenmiş';
+
+$strHasBeenAltered = 'deyişdirildi.';
+$strHaveToShow = 'Gösterilmesi üçün en az bir sütun seçmelisiniz';
+$strHebrew = 'İbrani Dili';
+$strHome = 'Başlanğıc';
+$strHomepageOfficial = 'phpMyAdmin Resmi İnternet Sehifesi';
+$strHostEmpty = 'Host adı boşdur!';
+$strHost = 'Host';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Macar Dili';
+
+$strId = 'Nömre';
+$strIdxFulltext = 'Tam metn (Fulltext)';
+$strIgnore = 'Diqqete Alma';
+$strImportFiles = 'Faylları import et';
+$strIndexes = 'Indeksler';
+$strIndexHasBeenDropped = '%s indeksi leğv edildi';
+$strIndexName = 'İndex adı&nbsp;:';
+$strIndex = 'İndeks';
+$strIndexType = 'İndex tipi&nbsp;:';
+$strInnodbStat = 'InnoDB Status';
+$strInsecureMySQL = 'Konfiqurasiya faylınızda MySQL başlanğıc deyerleri (parolsuz root istifadeçisi) mövcuddur ki, bu da tehlükesizlik nöqteyi nezerinden e\'tibarlı deyildir.';
+$strInsertAsNewRow = 'Yeni setir olaraq elave et';
+$strInsert = 'Elave et';
+$strInUse = 'istifadede';
+
+$strJumpToDB = '&quot;%s&quot; me\'lumat bazasına keç.';
+$strJustDeleteDescr = '&quot;Silinmiş&quot; istifadeçiler selahiyyetler yeniden yüklenene qeder server-e gire bilecekler.';
+$strJustDelete = 'Sadece olaraq selahiyyet cedvellerindeki istifadeçileri sil.';
+
+$strKeepPass = 'Parolu deyişdirme';
+$strKeyname = 'Açar söz';
+$strKill = 'Söndür';
+
+$strLandscape = 'Landşaft';
+$strLatexCaption = 'Cedvel başlığı';
+$strLatexContinuedCaption = 'Cedvel başlığının davamı';
+$strLatexContinued = '(davamı)';
+$strLatexIncludeCaption = 'Cedvel başlığını daxil et';
+$strLatexLabel = 'Etiket açarı';
+$strLaTeX = 'LaTeX';
+$strLengthSet = 'Uzunluq/Deyerler*';
+$strLimitNumRows = 'Sehife başına düşen setir sayı';
+$strLinesTerminatedBy = 'Setir leğvedicisi (Lines terminated by)';
+$strLinkNotFound = 'Link tapılmadı';
+$strLinksTo = 'Links to';
+$strLithuanian = 'Litva Dili';
+$strLocalhost = 'Yerli';
+$strLocationTextfile = 'tekst faylından yükleyerek';
+$strLoginInformation = 'Sisteme Giriş Me\'lumatı';
+$strLogin = 'Sisteme Giriş';
+$strLogout = 'Sistemden Çıxış';
+$strLogPassword = 'Parol:';
+$strLogUsername = 'İstifadeçi Adı:';
+
+$strMaximumSize = 'En çox: %s%s';
+$strMIME_available_mime = 'Mövcud olan MIME-tipleri';
+$strMIME_available_transform = 'Mövcud transformasiyalar';
+$strMIME_description = 'Haqqında';
+$strMIME_MIMEtype = 'MIME-tipi';
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.';
+$strMIME_transformation = 'Browser transformation';
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformasiya variantları';
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';
+$strModifications = 'Modifications have been saved';
+$strModifyIndexTopic = 'Modify an index';
+$strModify = 'Modify';
+$strMoveTable = 'Cedveli daşı (me\'lumat bazası<b>.</b>cedvel):';
+$strMoveTableOK = '%s cedveli %s - e daşınmışdır.';
+$strMoveTableSameNames = 'Can\'t move table to same one!';
+$strMyISAMMaxExtraSortFileSize = 'İndeks yaradılarken istifade olunan keçici faylların maksimum boyu';
+$strMyISAMMaxSortFileSize = 'Keçici sıralama fayllarının maksimum boyu';
+$strMyISAMRecoverOptions = 'Avtomatik qurtarma rejimi';
+$strMyISAMSortBufferSize = 'Sıralama buferinin (keçici yaddaşının) boyu';
+$strMySQLCharset = 'MySQL charset';
+$strMySQLSaid = 'MySQL deyir: ';
+$strMySQLShowProcess = 'Prosesleri göster';
+
+$strName = 'Adı';
+$strNext = 'Sonrakı';
+$strNoDatabases = 'Baza seçilmemişdir ve ya mövcud deyildir.';
+$strNoDatabasesSelected = 'Heç bir baza seçilmemişdir.';
+$strNoDescription = 'Haqqında me\'lumat (description) mövcud deyildir';
+$strNoDetailsForEngine = 'Bu depolama motoru haqqında etrafli status me\'lumatı mövcud deyildir.';
+$strNoDropDatabases = '"DROP DATABASE" ifadeleri söndürülmüşdür (disabled).';
+$strNoExplain = 'SQL İzah Et-i Keç';
+$strNoFrames = 'phpMyAdmin <b>frame-destekli</b> görüntüleyicilerle (browser) daha yaxşı işleyir.';
+$strNoIndex = 'İndeks te\'yin edilmedi!';
+$strNoIndexPartsDefined = 'İndeks qisimleri te\'yin edilmedi!';
+$strNoModification = 'Deyişiklik Yoxdur';
+$strNone = 'Heç biri';
+$strNoOptions = 'Bu formatın variantları yoxdur';
+$strNoPassword = 'Parol Yoxdur';
+$strNoPermission = 'Webserver-in %s faylını saxlama izni yoxdur.';
+$strNoPhp = 'PHP Kodunu Gösterme';
+$strNoPrivileges = 'Selahiyyet çatışmazlığı';
+$strNoRights = 'Burada olma haqqınız yoxdur!';
+$strNoSpace = '%s faylını saxlamaq üçün lazım olan yer çatışmır.';
+$strNoTablesFound = 'Me\'lumat bazasında cedvel yoxdur.';
+$strNotNumber = 'Bu reqem deyildir!';
+$strNotOK = 'Müveffeqiyyetsiz';
+$strNotSet = '<b>%s</b> cedveli %s içerisinde ya <b>tapılmadı</b> ya da qurulmamışdır';
+$strNoUsersFound = 'İstifadeçi(ler) tapılmadı.';
+$strNoValidateSQL = 'SQL İfadesini Yoxlama';
+$strNo = 'Xeyir';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s uyğunluq tapıldı (<i>%s</i> cedvelinde)';
+$strNumSearchResultsTotal = '<b>Cemi:</b> <i>%s</i> uyğunluq';
+$strNumTables = 'Cedveller';
+
+$strOK = 'Müveffeqiyyetle';
+$strOperations = 'Emeliyyatlar';
+$strOptimizeTable = 'Cedveli optimallaşdır';
+$strOr = 'ya da';
+$strOverhead = 'Aşma deyeri';
+$strOverwriteExisting = 'Mövcud fayl(lar)ın üzerine yaz';
+
+$strPageNumber = 'Sehife Nömresi:';
+$strPartialText = 'Qismi Metnler';
+$strPasswordChanged = '%s üçün parol müveffeqiyyetle deyişdirilmişdir.';
+$strPasswordEmpty = 'Parol boşdur!';
+$strPasswordNotSame = 'Girdiyiniz parollar eyni deyil!';
+$strPassword = 'Parol';
+$strPdfDbSchema = '"%s" bazanın sxemi - Sehife %s';
+$strPdfInvalidTblName = '"%s" cedveli mövcud deyil!';
+$strPdfNoTables = 'Cedvel yoxdur';
+$strPerHour = 'saatda';
+$strPerMinute = 'deqiqede';
+$strPerSecond = 'saniyede';
+$strPhp = 'PHP Kodunu Hazırla';
+$strPHPVersion = 'PHP Versiyası';
+$strPmaDocumentation = 'phpMyAdmin dokumentasiyası (etraflı me\'lumat üçün)';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> direktivi PMA konfiqurasiya faylınızda QURULMAMIŞDIR!';
+$strPortrait = 'Portret';
+$strPos1 = 'Başla';
+$strPrevious = 'Evvelki';
+$strPrimary = 'Birinci Dereceli';
+$strPrimaryKeyHasBeenDropped = 'Birinci dereceli açar leğv edildi';
+$strPrimaryKeyName = 'Birinci dereceli açarın adı... BİRİNCİ DERECELİ (PRIMARY) olmalıdır!';
+$strPrimaryKeyWarning = '("PRIMARY" sadece birinci dereceli açarın adı <b>olmalıdır</b>!)';
+$strPrint = 'Çap et';
+$strPrintView = 'Çap görüntüsü';
+$strPrivDescAllPrivileges = 'GRANT-dan başqa bütün selahiyyetler daxildir.';
+$strPrivDescAlter = 'Mövcud olan cedvellerin strukturunu deyişdirmeye icaze verir.';
+$strPrivDescCreateDb = 'Yeni bazalar ve cedveller qurmağa icaze verir.';
+$strPrivDescCreateTbl = 'Yeni cedveller qurmağa icaze verir.';
+$strPrivDescCreateTmpTable = 'Keçici cedveller qurmağa icaze verir.';
+$strPrivDescDelete = 'Me\'lumat silmeye icaze verir.';
+$strPrivDescDropDb = 'Baza ve cedvel leğv etmeye icaze verir.';
+$strPrivDescDropTbl = 'Cedvelleri leğv etmeye icaze verir.';
+$strPrivDescExecute = 'Allows running stored procedures; Has no effect in this MySQL version.';
+$strPrivDescFile = 'Allows importing data from and exporting data into files.';
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.';
+$strPrivDescIndex = 'Allows creating and dropping indexes.';
+$strPrivDescInsert = 'Allows inserting and replacing data.';
+$strPrivDescLockTables = 'Allows locking tables for the current thread.';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivDescReferences = 'Has no effect in this MySQL version.';
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.';
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.';
+$strPrivDescReplSlave = 'Needed for the replication slaves.';
+$strPrivDescSelect = 'Allows reading data.';
+$strPrivDescShowDb = 'Gives access to the complete list of databases.';
+$strPrivDescShutdown = 'Allows shutting down the server.';
+$strPrivDescSuper = 'Allows connecting, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.';
+$strPrivDescUpdate = 'Allows changing data.';
+$strPrivDescUsage = 'Selahiyyet te\'yin edilmedi.';
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.';
+$strPrivileges = 'Selahiyyetler';
+$strProcesses = 'Prosesler';
+$strProcesslist = 'Proses Siyahısı';
+$strPutColNames = 'Sahe adlarını birinci setre yerleşdir';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Sorğu';
+$strQueryFrame = 'Sorğu penceresi';
+$strQueryOnDb = 'SQL-query on database <b>%s</b>:';
+$strQuerySQLHistory = 'SQL-tarixçesi';
+$strQueryStatistics = '<b>Sorğu Statistikası</b>: Açıldıqdan bu yana, bu servere %s sorğu gönderilmişdir.';
+$strQueryTime = 'sorğu %01.4f saniyede icra edildi';
+$strQueryType = 'Sorğu tipi';
+
+$strReceived = 'Alındı';
+$strRecords = 'Setr sayı';
+$strReferentialIntegrity = 'Check referential integrity:';
+$strRelationalSchema = 'Relational schema';
+$strRelationNotWorking = 'Elaqelendirilmiş cedveller üçün nezerde tutulmuş be\'zi xüsusiyyetler passivleşdirilmişdir. Sebebini aydınlaşdırmaq üçün %sbax%s.';
+$strRelations = 'Relations';
+$strRelationView = 'Relation view';
+$strReloadingThePrivileges = 'Reloading the privileges';
+$strRemoveSelectedUsers = 'Remove selected users';
+$strRenameTable = 'Cedveli yeniden adlandır';
+$strRenameTableOK = '%s cedveli %s olaraq yeniden adlandırılmışdır';
+$strRepairTable = 'Cedveli te\'mir et';
+$strReplaceNULLBy = 'NULL-u bununla deyişdir';
+$strReplaceTable = 'Replace table data with file';
+$strReset = 'Yenile';
+$strResourceLimits = 'Resource limits';
+$strReType = 'Re-type';
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.';
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.';
+$strRevokeMessage = 'You have revoked the privileges for %s';
+$strRevoke = 'Revoke';
+$strRowLength = 'Sıra uzunluğu';
+$strRowsFrom = 'setri göster; başlangıç qeydiyyat nömresi';
+$strRowSize = ' Sıra boyu ';
+$strRowsModeFlippedHorizontal = 'üfüqi (tekrarlanan başlıqlar)';
+$strRowsModeHorizontal = 'üfüqi';
+$strRowsModeOptions = '%s rejimde, başlıqlar %s blokdan bir tekrar ederek';
+$strRowsModeVertical = 'şaquli';
+$strRows = 'Sıra sayı';
+$strRowsStatistic = 'Sıra Statistikası';
+$strRunning = '%s üzerinde işlemektedir';
+$strRunQuery = 'Emri İcra Et';
+$strRunSQLQuery = '%s me\'lumat bazasına SQL sorğusu(-ları) gönder';
+
+$strSaveOnServer = 'Serverdeki %s direktoriyasına qeyd et';
+$strSave = 'Qeyd Et';
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page';
+$strSearch = 'Axtarış';
+$strSearchFormTitle = 'Search in database';
+$strSearchInTables = 'Inside table(s):';
+$strSearchNeedle = 'Axtarmaq üçün söz(ler) ve ya deyer(ler) (wildcard: "%"):';
+$strSearchOption1 = 'sözlerin en azından birini';
+$strSearchOption2 = 'bütün sözleri';
+$strSearchOption3 = 'tamamile eyni sözü';
+$strSearchOption4 = 'requlyar ifade (regular expression) olaraq';
+$strSearchResultsFor = '"<i>%s</i>" üçün axtarış neticeleri %s:';
+$strSearchType = 'Tap:';
+$strSelectADb = 'Me\'lumat bazası seç';
+$strSelectAll = 'Hamısını Seç';
+$strSelectFields = 'Sahe seçin (en az birini):';
+$strSelectNumRows = 'in query';
+$strSelectTables = 'Select Tables';
+$strSend = 'Fayl olaraq qeyd et';
+$strSent = 'Gönderildi';
+$strServerChoice = 'Quraşdırılmış Serverler';
+$strServer = 'Server';
+$strServerStatus = 'Runtime Me\'lumatı';
+$strServerStatusUptime = 'Bu MySQL server %sdir işlemektedir. Server %s-de açılmışdır.';
+$strServerTabVariables = 'Deyişenler';
+$strServerTrafficNotes = '<b>Server Neqliyyatı</b>: Bu cedveller serverin açılışından beri elde edilen me\'lumat axışı miqdarını göstermektedir.';
+$strServerVars = 'Server Deyişenleri Ve Variantları';
+$strServerVersion = 'Server versiyası';
+$strSessionValue = 'Sessiya deyeri';
+$strSetEnumVal = 'Sahe tipi "enum" ve ya "set" ise, deyerleri bu formatda girin: \'a\',\'b\',\'c\'...<br />Eger bu deyerlerde ters-kesr ("\") ve ya tek dırnaq ("\'") istifade etmek isteyirsinizse, onları ters-kesrle escape-leyin (meselen \'\\\\xyz\' ve ya \'a\\\'b\').';
+$strShowAll = 'Hamısını göster';
+$strShowColor = 'Rengini göster';
+$strShowDatadictAs = 'Data Dictionary Format';
+$strShowFullQueries = 'Emrleri Tam Olaraq Göster';
+$strShowGrid = 'Show grid';
+$strShow = 'Göster';
+$strShowingRecords = 'Gösterilen setirler';
+$strShowPHPInfo = 'PHPInfo() me\'lumatını göster';
+$strShowTableDimension = 'Cedvellerin ölçülerini göster';
+$strShowTables = 'Cedvelleri göster';
+$strShowThisQuery = ' Bu sorğunu burada yene göster ';
+$strSingly = '(tek-tek)';
+$strSize = 'Boy';
+$strSort = 'Sırala';
+$strSpaceUsage = 'Yer istifadesi';
+$strSplitWordsWithSpace = 'Sözler boşluq ifadesi (" ") ile ayrılmışdır.';
+$strSQLExportType = 'Eksport şekli';
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:';
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem';
+$strSQLQuery = 'SQL sorğusu';
+$strSQLResult = 'SQL result';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Invalid Identifer';
+$strSQPBugUnclosedQuote = 'Unclosed quote';
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String';
+$strStatCheckTime = 'En son yoxlama';
+$strStatCreateTime = 'Quruluş';
+$strStatement = 'Variantlar';
+$strStatUpdateTime = 'En son yenilenme';
+$strStatus = 'Status';
+$strStorageEngine = 'Depolama Motorları';
+$strStorageEngines = 'MySQL Depolama Motorları';
+$strStrucCSV = 'CSV verilenleri';
+$strStrucData = 'Quruluş ve me\'lumat';
+$strStrucExcelCSV = 'MS Excel verilenleri üçün CSV';
+$strStrucOnly = 'Sadece quruluş';
+$strStructPropose = 'Alternativ cedvel strukturu';
+$strStructure = 'Quruluş';
+$strSubmit = 'Submit';
+$strSuccess = 'SQL sorğunuz müveffeqiyyetle icra edilmişdir';
+$strSum = 'Cemi';
+$strSwitchToTable = 'Kopyalanmış cedvele keç';
+
+$strTable = 'Cedvel';
+$strTableComments = 'Cedvel haqqında qısa izahat';
+$strTableEmpty = 'Cedveli adı boşdur!';
+$strTableHasBeenDropped = '%s cedveli leğv edildi';
+$strTableHasBeenEmptied = '%s cedveli boşaldıldı';
+$strTableHasBeenFlushed = '%s cedveli flush-landı';
+$strTableMaintenance = 'Cedvel temizliyi';
+$strTableOfContents = 'İçindekiler Cedveli';
+$strTables = '%s cedvel';
+$strTableStructure = 'Table structure for table';
+$strTblPrivileges = 'Cedvelexas selahiyyetler';
+$strTextAreaLength = ' Uzun olduğuna göre,<br /> bu sahedeki me\'lumatlar deyişdirilmeye biler ';
+$strThisHost = 'Bu Host';
+$strThreadSuccessfullyKilled = 'Thread %s uğurla söndürüldü (killed).';
+$strTime = 'Müddet';
+$strTotal = 'cemi';
+$strTotalUC = 'Cemi';
+$strTraditionalChinese = 'Enenevi Çin Dili';
+$strTraffic = 'Neqliyyat';
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)';
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).';
+$strTransformation_image_png__inline = 'See image/jpeg: inline';
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.';
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.';
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.';
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';
+$strTruncateQueries = 'Truncate Shown Queries';
+$strTurkish = 'Türk Dili';
+$strType = 'Tip';
+
+$strUkrainian = 'Ukrayna Dili';
+$strUncheckAll = 'Heç Birini Seçme';
+$strUnique = 'Unikal';
+$strUnselectAll = 'Heç birini seçme';
+$strUpdatePrivMessage = 'You have updated the privileges for %s.';
+$strUpdateProfileMessage = 'Profil yenilendi.';
+$strUpdateQuery = 'Sorğunu Yenile';
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table';
+$strUsage = 'Miqdar';
+$strUseBackquotes = 'Cedvel ve sahe adlarını tek dırnaq arasına al';
+$strUseHostTable = 'Use Host Table';
+$strUserAlreadyExists = '%s istifadeçisi mövcuddur!';
+$strUserEmpty = 'İstifadeçi adı boş qaldı!';
+$strUserName = 'İstifadeçi adı';
+$strUserNotFound = 'The selected user was not found in the privilege table.';
+$strUserOverview = 'User overview';
+$strUsersDeleted = 'The selected users have been deleted successfully.';
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;';
+$strUser = 'İstifadeçi';
+$strUseTables = 'Use Tables';
+$strUseTextField = 'Use text field';
+
+$strValidateSQL = 'SQL Tesdiqle';
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary php extensions as described in the %sdocumentation%s.';
+$strValue = 'Deyer';
+$strVar = 'Deyişen';
+$strViewDump = 'Cedvelin sxemini göster';
+$strViewDumpDatabases = 'Me\'lumat bazalarının sxemini göster';
+$strViewDumpDB = 'Me\'lumat bazasının sxemini göster';
+
+$strWebServerUploadDirectoryError = 'Upload işleri üçün te\'yin etdiyiniz direktoriya tapılmadı';
+$strWebServerUploadDirectory = 'web-server upload direktoriyası';
+$strWelcome = '%s - e Xoş Gelmişsiniz!';
+$strWestEuropean = 'Qerbi Avropa';
+$strWildcard = 'xüsusi işare';
+$strWithChecked = 'Seçilenleri:';
+$strWrongUser = 'Yanlış istifadeçi adı ve ya parol. Giriş tesdiq edilmedi.';
+
+$strXML = 'XML';
+
+$strYes = 'Beli';
+
+$strZeroRemovesTheLimit = 'Qeyd: Bu variantları 0 (sıfır)-a çevirmek hüdudu (limiti) qaldıracaq.';
+$strZip = '"zip"lenmiş';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBaltic = 'Baltic'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCharsets = 'Charsets'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCollation = 'Collation'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCzech = 'Czech'; //to translate
+
+$strDanish = 'Danish'; //to translate
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDescription = 'Description'; //to translate
+$strDictionary = 'dictionary'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s bu MySQL serverde quruludur.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGerman = 'German'; //to translate
+$strGreek = 'Greek'; //to translate
+
+$strHandler = 'Handler'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJapanese = 'Japanese'; //to translate
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+$strKorean = 'Korean'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPaperSize = 'Paper size'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPhoneBook = 'phone book'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+$strRussian = 'Russian'; //to translate
+
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwedish = 'Swedish'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableOptions = 'Table options'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnicode = 'Unicode'; //to translate
+$strUnknown = 'unknown'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/bangla-utf-8.inc.php b/lang/bangla-utf-8.inc.php
new file mode 100644
index 0000000000..dc43ce2b12
--- /dev/null
+++ b/lang/bangla-utf-8.inc.php
@@ -0,0 +1,1447 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('বাইট', 'কিলোবাইট', 'মেগাবাইট', 'গিগাবাইট', 'টেরাবাইট', 'পেটাবাইট', 'এক্সাবাইট');
+
+// MySQL manual language definition, this is optional, en will be used
+// if not defined
+$mysql_4_1_doc_lang = 'bn';
+$mysql_5_0_doc_lang = 'bn';
+$mysql_5_1_doc_lang = 'bn';
+
+$day_of_week = array('রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার');
+$month = array('জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেমবর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y at %I:%M %p';
+$timespanfmt = '%s দিন, %s মাস, %s মিনিট and %s সেকেণ্ড';
+
+$strAbortedClients = 'বাদ দেওয়া হল';
+$strAccessDenied = 'প্রবেশ নিষেধ';
+$strAccessDeniedCreateConfig = 'সম্ভবত আপনি কনফিগারেশন ফাইল তৈরী করেননি। আপনি %1$ssetup script%2$s ব্যাবহার করে একটি তৈরী করতে পারেন ';
+$strAccessDeniedExplanation = 'phpMyAdmin MySQL server এ সংযোগ স্থাপনের চেষ্টা করেছিল, এবং সার্ভার সেই প্রচেষ্টা প্রত্যাখান করেছে। আপনার config.inc.php ফাইল এর হোষ্ট,ইউজারনেম আর পাসওয়ার্ড পরীক্ষা করুন এবং তা আপনার Mysql সার্ভারের অ্যাডমিনিষ্টেট্রররের দেওয়া তথ্যের অনুরুপ কিনা তা নিশ্চত করুন।';
+$strAction = 'Action';
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value';
+$strAddClause = 'Add %s';
+$strAddConstraints = 'Add constraints';
+$strAddDeleteColumn = 'Add/Delete Field Columns';
+$strAddDeleteRow = 'Add/Delete Criteria Row';
+$strAddFields = ' %s ক্ষেত্রসমূহ যোগ কর';
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)';
+$strAddIntoComments = 'মন্তব্যসমূহে যোগ কর';
+$strAddNewField = 'নতুন ক্ষেত্র যোগ কর';
+$strAddPrivilegesOnDb = 'নিচের ডাটাবেইজ এ সুবিধাসমূহ যোগ কর';
+$strAddPrivilegesOnTbl = 'নিচের টেবিল এ সুবিধাসমূহ যোগ কর';
+$strAddSearchConditions = 'খোঁজার শর্ত যোগ কর (body of the "where" clause):';
+$strAddToIndex = 'Index এ যোগ কর &nbsp;%s&nbsp;column(s)';
+$strAddUser = 'একটি নতুন ইউজার যোগ করুন';
+$strAddUserMessage = 'আপনি একটি নতুন ইউজার যোগ করেছেন';
+$strAdministration = 'Administration';
+$strAfter = 'After %s';
+$strAfterInsertBack = 'পূর্বের পাতায় ফিরে যাও';
+$strAfterInsertNewInsert = 'নতুন আরেকটি সাড়ি যোগ করুন';
+$strAfterInsertNext = 'পরবর্তী সাড়ি সম্পাদনা করুন';
+$strAfterInsertSame = 'এই পাতায় ফিরে যাও';
+$strAll = 'All';
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.';
+$strAllTableSameWidth = 'সব টেবিল সমান প্রশস্থতাসহ প্রদর্শন করুন?';
+$strAlterOrderBy = 'টেবিল অর্ডার পরিবর্তন কর';
+$strAnalyzeTable = 'টেবিল বিশ্লেষণ কর';
+$strAnd = 'এবং';
+$strAndThen = 'এবং তারপর';
+$strAnIndex = 'একটি Index যোগ করা হয়েছে %s';
+$strAny = 'যেকোন';
+$strAnyHost = 'যেকোন হোষ্ট';
+$strAnyUser = 'যেকোন ব্যাবহারকারী';
+$strApproximateCount = 'হয়ত আনুমানিক। FAQ ৩.১১ দেখ। ';
+$strAPrimaryKey = 'একটি প্রাইমারী কী যোগ করা হয়েছে %s';
+$strArabic = 'আরবী';
+$strArmenian = 'আরমেনিয়ান';
+$strAscending = 'Ascending';
+$strAtBeginningOfTable = 'টেবিলের শুরুতে';
+$strAtEndOfTable = 'টেবিলের শেষে';
+$strAttr = 'Attributes';
+$strAutomaticLayout = 'Automatic layout';
+
+$strBack = 'পিছনে';
+$strBaltic = 'ব্যাল্টিক';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'বাইনারী';
+$strBinaryDoNotEdit = 'বাইনারী -সম্পাদনা করবেন না';
+$strBinaryLog = 'বাইনারী লগ';
+$strBinLogEventType = 'Event type';
+$strBinLogInfo = 'তথ্য';
+$strBinLogName = 'লগ নাম';
+$strBinLogOriginalPosition = 'প্রকৃত অবস্থান';
+$strBinLogPosition = 'অবস্থান';
+$strBinLogServerId = 'সার্ভারের আইডি';
+$strBookmarkAllUsers = 'সব ব্যাক্তিকে এই বুকমার্কটি দেখার সুযোগ দিন';
+$strBookmarkCreated = 'বুকমার্ক %s তৈরী করা হয়েছে';
+$strBookmarkDeleted = 'বুকমার্কটি মুছে ফেলা হয়েছে';
+$strBookmarkLabel = 'লেবেল';
+$strBookmarkQuery = 'বুকমার্ক করা SQL query';
+$strBookmarkReplace = 'একই নামের বর্তমান বুকমার্ক প্রতিস্থাপন করুন';
+$strBookmarkThis = 'এই SQL query টি বুকমার্ক করুন';
+$strBookmarkView = 'শুধু দেখ';
+$strBrowse = 'ব্রাউজ করুন';
+$strBrowseDistinctValues = 'নির্দিষ্ট মান ব্রাউজ করুন';
+$strBrowseForeignValues = 'Browse foreign values';
+$strBufferPoolActivity = 'Buffer Pool Activity';
+$strBufferPool = 'Buffer Pool';
+$strBufferPoolUsage = 'Buffer Pool Usage';
+$strBufferReadMissesInPercent = 'Read misses in %';
+$strBufferReadMisses = 'Read misses';
+$strBufferWriteWaitsInPercent = 'Write waits in %';
+$strBufferWriteWaits = 'Write waits';
+$strBulgarian = 'বুলগেরিয়ান';
+$strBusyPages = 'ব্যাস্ত পাতাসমূহ';
+$strBzip = '"bzipped"';
+
+$strCalendar = 'ক্যালেন্ডার';
+$strCanNotLoadExportPlugins = 'এক্সপোর্ট প্লাগ ইন লোড করা যায়নি, আপনার ইন্সষ্টলেশন পরীক্ষা করুন';
+$strCanNotLoadImportPlugins = 'ইমপোর্ট প্লাগ ইন লোড করা যায়নি, আপনার ইন্সষ্টলেশন পরীক্ষা করুন';
+$strCannotLogin = 'MySQL সার্ভার এ লগ ইন করা যায়নি';
+$strCantLoad = ' [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] extension লোড করা যায়নি। আপনার পিএইচপি কনফিগারেশন পরীক্ষা করুন। Cannot load [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] extension. Please check your PHP configuration.';
+$strCantLoadRecodeIconv = 'Couldn\'t load the iconv or recode extension needed for charset conversion. Either configure PHP to enable these extensions or disable charset conversion in phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Can\'t rename index to PRIMARY!';
+$strCantUseRecodeIconv = 'Couldn\'t use either the iconv, libiconv or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.';
+$strCardinality = 'Cardinality';
+$strCaseInsensitive = 'case-insensitive';
+$strCaseSensitive = 'case-sensitive';
+$strCentralEuropean = 'Central European';
+$strChange = 'Change';
+$strChangeCopyModeCopy = '... পুরাতনটা রেখে দাও';
+$strChangeCopyMode = 'একই সুবিধা সহ নতুন আরেকটি ব্যাবহারকারী তৈরী করুন...';
+$strChangeCopyModeDeleteAndReload = ' ... ব্যাবহারকারীর টেবিলগুলো থেকে পুরাতনটি মুছে ফেল এবং এরপর সুবিধাসমূহ পুনরায় লোড কর';
+$strChangeCopyModeJustDelete = ' ...ব্যাবহারকারীর টেবিলগুলো থেকে পুরাতনটি মুছে ফেল';
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.';
+$strChangeCopyUser = 'লগ ইন তথ্য পরিবর্তন কর অথবা ব্যাবহারকারী কপি করChange Login Information / Copy User';
+$strChangeDisplay = 'প্রদর্শনের জন্য ক্ষেত্র পছন্দ কর';
+$strChangePassword = 'পাসওয়ার্ড পরিবর্তন কর';
+$strCharset = 'Charset';
+$strCharsetOfFile = 'ফাইল এর অক্ষরসমূহঃ';
+$strCharsetsAndCollations = 'Character Sets and Collations';
+$strCharsets = 'Charsets';
+$strCheckAll = 'সব পরীক্ষা করুন';
+$strCheckOverhead = 'ওভারহেড সহ টেবিল পরীক্ষা কর';
+$strCheckPrivs = 'সুবিধাসমূহ পরীক্ষা করুন';
+$strCheckPrivsLong = 'Check privileges for database &quot;%s&quot;.';
+$strCheckTable = 'টেবিল পরীক্ষা কর';
+$strChoosePage = 'অনুগ্রহ করে সম্পাদনা করার জন্য একটি পাতা নির্বাচন করুন';
+$strColComFeat = 'কলামের মন্তব্য প্রদর্শন করা হচ্ছে';
+$strCollation = 'Collation';
+$strColumnNames = 'কলামের নাম';
+$strColumnPrivileges = 'কলাম নির্দিষ্ট সুবিধাসমূহ';
+$strCommand = 'নির্দেশ';
+$strComments = 'মন্তব্যসমূহ';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible';
+$strCompleteInserts = 'Complete inserts';
+$strCompression = 'সংকোচন';
+$strCompressionWillBeDetected = 'আমদানিকৃত ফাইল সংকোচন %s হতে স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে';
+$strConfigDefaultFileError = '"%1$s" হতে ডিফল্ট কনফিগারেশন লোড করা যায়নি';
+$strConfigFileError = 'phpMyAdmin was unable to read your configuration file!<br />This might happen if PHP finds a parse error in it or PHP cannot find the file.<br />Please call the configuration file directly using the link below and read the PHP error message(s) that you receive. In most cases a quote or a semicolon is missing somewhere.<br />If you receive a blank page, everything is fine.';
+$strConfigureTableCoord = 'দয়া করে %s টেবিল এর অবস্থান কনফিগার করুন';
+$strConnectionError = 'সংযোগ স্থাপন করা যায়নিঃ invalid settings.';
+$strConnections = 'সংযোগসমূহ';
+$strConstraintsForDumped = 'Constraints for dumped tables';
+$strConstraintsForTable = 'Constraints for table';
+$strCookiesRequired = 'Cookies must be enabled past this point.';
+$strCopy = 'কপি';
+$strCopyDatabaseOK = '%s ডাটাবেজ় %s তে কপি করা হয়েছে';
+$strCopyTable = 'Copy table to (database<b>.</b>table):';
+$strCopyTableOK = '%s টেবিল %s তে কপি করা হয়েছে';
+$strCopyTableSameNames = 'Can\'t copy table to same one!';
+$strCouldNotKill = 'phpMyAdmin %s থ্রেড কে বন্ধ করতে পারেনি। সম্ভবত এটি আগেই বন্ধ করা হয়েছে';
+$strCreate = 'তৈরী করুন';
+$strCreateDatabaseBeforeCopying = 'কপি করার আগে ডাটাবেজ় তৈরী কর';
+$strCreateIndex = 'Create an index on&nbsp;%s&nbsp;columns';
+$strCreateIndexTopic = 'একটি নতুন ইন্ডেস্ক তৈরী কর';
+$strCreateNewDatabase = 'নতুন ডাটাবেজ় তৈরী কর';
+$strCreateNewTable = '%s ডাটাবেজ় এ নতুন টেবিল তৈরী কর';
+$strCreatePage = 'একটি নতুন পাতা তৈরী কর';
+$strCreatePdfFeat = 'পিডিএফ সমূহ তৈরী';
+$strCreateUserDatabase = 'ব্যাবহারকারীর জন্য ডাটাবেজ';
+$strCreateUserDatabaseName = 'একই নামে ডাটাবেজ তৈরী কর এবং সকল সুবিধাসমূহ মঞ্জুর করCreate database with same name and grant all privileges';
+$strCreateUserDatabaseNone = 'কনটিই নয়';
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username_%)';
+$strCreationDates = 'তইরী/আপডেট/তারিখ পরীক্ষা কর';
+$strCriteria = 'ক্ষেত্র';
+$strCroatian = 'Croatian';
+$strCSV = 'CSV';
+$strCyrillic = 'Cyrillic';
+$strCzech = 'চেক';
+$strCzechSlovak = 'চেক-স্লোভাক';
+
+$strDanish = 'ড্যানিশ';
+$strDatabase = 'ডাটাবেজ';
+$strDatabaseEmpty = 'ডাটাবেজ এর নাম দেওয়া হয়নি';
+$strDatabaseExportOptions = 'ডাটাবেজ এক্সপোটঁ করার সুবিধাসমূহ';
+$strDatabaseHasBeenDropped = '%s ডাটাবেজ মুছে ফেলা হয়েছে';
+$strDatabases = 'ডাটাবেজসমূহ Databases';
+$strDatabasesDropped = '%s ডাটাবেজসমূহ সফলভাবে মুছে ফেলা হয়েছে ';
+$strDatabasesStats = 'ডাটাবেজসমূহের পরিসংখ্যান';
+$strDatabasesStatsDisable = 'পরিসংখ্যান বন্ধ কর';
+$strDatabasesStatsEnable = 'পরিসংখ্যান চালু কর';
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the database statistics here might cause heavy traffic between the web server and the MySQL server.';
+$strData = 'ডাটা';
+$strDataDict = 'ডাটা অভিধান';
+$strDataOnly = 'শুধু ডাটা';
+$strDataPages = 'ডাটাসহ পাতাসমূহ';
+$strDBComment = 'ডাটাবেজ মন্তব্যসমূহঃ';
+$strDBCopy = 'ডাটাবেজ কপি করঃ';
+$strDbPrivileges = 'ডাটাবেজ-নির্দিষ্ট সুবিধাসমূহ';
+$strDBRename = 'ডাটাবেজ রিনেম কর';
+$strDbSpecific = 'ডাটাবেজ-নির্দিষ্ট';
+$strDefault = 'ডিফল্ট';
+$strDefaultEngine = '%s MySQL সার্ভার এর ডিফল্ট ষ্টোরেজ ইঞ্জিন';
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a';
+$strDefragment = 'Defragment table';
+$strDelayedInserts = 'Use delayed inserts';
+$strDeleteAndFlush = 'Delete the users and reload the privileges afterwards.';
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.';
+$strDelete = 'মুছে ফেল';
+$strDeleted = 'সারিটি মুছে ফেলা হয়েছে';
+$strDeleteNoUsersSelected = 'মুছে ফেলার জন্য কোন ব্যাবহারকারী চিহ্নিত করা হয়নি';
+$strDeleting = '%s মুছে ফেলা হচ্ছে';
+$strDelimiter = 'Delimiter';
+$strDelOld = 'এই পাতায় এমন পাতার রেফারেন্স আছে যার অস্তিত্ব আর নেই। আপনি কী রেফারেন্সসমূহ মুছে ফেলতে চান? The current page has references to tables that no longer exist. Would you like to delete those references?';
+$strDescending = 'Descending';
+$strDescription = 'বর্ণনা';
+$strDictionary = 'অভিধান';
+$strDirtyPages = 'নোংরা পাতাসমূহ';
+$strDisabled = 'বন্ধ করা হয়েছে';
+$strDisableForeignChecks = 'Disable foreign key checks';
+$strDisplayFeat = 'বৈশিষ্ট্যসমূহ প্রদর্শন কর';
+$strDisplayOrder = 'ক্রম প্রদর্শন কর';
+$strDisplayPDF = 'Display PDF schema';
+$strDoAQuery = 'Do a "query by example" (wildcard: "%")';
+$strDocu = 'বর্ণনা';
+$strDoYouReally = 'আপনি কি সত্যি চান?';
+$strDropDatabaseStrongWarning = 'আপনি একটি সম্পূর্ন ডাটাবেজ প্রায় মুছে ফেলছেন';
+$strDrop = 'মুছে ফেল';
+$strDropUsersDb = 'ব্যাবহারকারীর নামে নাম এমন ডাটাবেজসমূহ মুছে ফেল';
+$strDumpingData = 'টেবিল এর জন্য ডাটা ডাম্পিং করুন';
+$strDumpSaved = 'ডাম্প %s ফাইল এ সেভ করা হয়েছে';
+$strDumpXRows = 'Dump %s row(s) starting at record # %s.';
+$strDynamic = 'ডায়নামিক';
+
+$strEdit = 'সম্পাদনা কর';
+$strEditPDFPages = 'পিডিএফ পাতাগুলো সম্পাদনা কর';
+$strEditPrivileges = 'সুবিধাসমূহ সম্পাদনা কর';
+$strEffective = 'Effective';
+$strEmpty = 'খালি';
+$strEmptyResultSet = 'MySQL returned an empty result set (i.e. zero rows).';
+$strEnabled = 'Enabled';
+$strEncloseInTransaction = 'Enclose export in a transaction';
+$strEndCut = 'END CUT';
+$strEnd = 'End';
+$strEndRaw = 'END RAW';
+$strEngineAvailable = '%s is available on this MySQL server.';
+$strEngineDisabled = 'MySQL সার্ভার এর জন্য %s বন্ধ করা হয়েছে %s has been disabled for this MySQL server.';
+$strEngines = 'ইঞ্জিনসমূহ';
+$strEngineUnsupported = 'এই MySQL সার্ভার %s ধরনের স্টোরেজ ইঞ্জিন সমর্থন করেনা This MySQL server does not support the %s storage engine.';
+$strEnglish = 'ইংরেজী';
+$strEnglishPrivileges = 'নোটঃ MySQL সুবিধাসমূহের নাম ইংরেজীতে প্রকাশ করা হয় Note: MySQL privilege names are expressed in English ';
+$strError = 'ভূল';
+$strErrorInZipFile = 'ZIP archive: এ ভূল আছে';
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s';
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonian';
+$strExcelEdition = 'Excel edition';
+$strExecuteBookmarked = 'Execute bookmarked query';
+$strExplain = 'SQL ব্যাখ্যা কর';
+$strExport = 'Export';
+$strExportMustBeFile = 'Selected export type has to be saved in file!';
+$strExtendedInserts = 'Extended inserts';
+$strExtra = 'অতিরিক্ত';
+
+$strFailedAttempts = 'ব্যার্থ হওয়া চেষ্টাসমূহ';
+$strField = 'ক্ষেত্র';
+$strFieldHasBeenDropped = '%s ক্ষেত্র মুছে ফেলা হয়েছে';
+$strFieldsEnclosedBy = 'Fields enclosed by';
+$strFieldsEscapedBy = 'Fields escaped by';
+$strFields = 'ক্ষেত্রসমূহ';
+$strFieldsTerminatedBy = 'Fields terminated by';
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.';
+$strFileCouldNotBeRead = 'ফাইল পড়া যায়নি';
+$strFileNameTemplateDescriptionDatabase = 'ডাটাবেজ এর নাম';
+$strFileNameTemplateDescriptionServer = 'সার্ভার এর নাম';
+$strFileNameTemplateDescriptionTable = 'টেবিল এর নাম';
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.';
+$strFileNameTemplate = 'ফাইল নাম এর টেমপ্লেট';
+$strFileNameTemplateRemember = 'টেমপ্লেট মনে রাখ';
+$strFileToImport = 'ইম্পোর্ট করার জন্য ফাইল';
+$strFixed = 'নির্দিষ্ট';
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of these tables may differ from the privileges the server uses, if they have been changed manually. In this case, you should %sreload the privileges%s before you continue.';
+$strFlushQueryCache = 'Flush query cache';
+$strFlushTable = 'Flush the table ("FLUSH")';
+$strFlushTables = 'Flush (close) all tables';
+$strFontSize = 'ফন্ট এর আকার';
+$strFormat = 'ফরমেট';
+$strFormEmpty = 'Missing value in the form!';
+$strFreePages = 'ফ্রী পাতাসমূহ';
+$strFullText = 'Full Texts';
+$strFunction = 'ফাংশন';
+$strFunctions = 'ফাংশনসমূহ';
+
+$strGenBy = 'Generated by';
+$strGeneralRelationFeat = 'General relation features';
+$strGenerate = 'তৈরী কর';
+$strGeneratePassword = 'পাসওয়ার্ড তৈরী কর';
+$strGenTime = 'তৈরী করার জন্য সময়';
+$strGeorgian = 'জরজীয়ান';
+$strGerman = 'জার্মান';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Global privileges';
+$strGlobalValue = 'Global value';
+$strGo = 'Go';
+$strGrantOption = 'Grant';
+$strGreek = 'গ্রীক';
+$strGzip = '"gzipped"';
+
+$strHandler = 'Handler';
+$strHasBeenAltered = 'পরিবর্তন করা হয়েছে';
+$strHaveToShow = 'আপনাকে প্রদর্শন করার জন্য কমপক্ষে একটি কলাম নির্দিষ্ট করতে হবে';
+$strHebrew = 'হীব্রূ';
+$strHome = 'মূল পাতা';
+$strHomepageOfficial = 'Official phpMyAdmin Homepage';
+$strHostEmpty = 'হোষ্ট নাম পূরন করা হয়নি';
+$strHost = 'হোষ্ট';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'হাংগেরিয়ান';
+
+$strIcelandic = 'Icelandic';
+$strId = 'আইডি';
+$strIdxFulltext = 'Fulltext';
+$strIgnoreDuplicates = 'ডুপ্লিকেট সারি অবহেলা করুন';
+$strIgnore = 'Ignore';
+$strIgnoreInserts = 'Use ignore inserts';
+$strImportFiles = 'ফাইল ইম্পোর্ট কর';
+$strImportFormat = 'ইম্পোর্ট করা ফাইল ফরমেট কর';
+$strImport = 'ইম্পোর্ট কর';
+$strImportSuccessfullyFinished = 'ইম্পোর্ট সফলভাবে সম্পন্ন হয়েছে। %d সংখ্যক query সম্পাদন করা হয়েছে';
+$strIndexes = 'ইন্ডেস্ক সমূহ';
+$strIndexHasBeenDropped = '%s ইন্ডেস্ক মুছে ফেলা হয়েছে';
+$strIndex = 'ইন্ডেস্ক';
+$strIndexName = 'ইন্ডেস্ক নামঃ';
+$strIndexType = 'ইন্ডেস্ক এর ধরনঃ';
+$strIndexWarningTable = 'Problems with indexes of table `%s`';
+$strInnoDBAutoextendIncrement = 'Autoextend increment';
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.';
+$strInnoDBBufferPoolSize = 'Buffer pool size';
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.';
+$strInnoDBDataFilePath = 'ডাটা ফাইলসমূহ';
+$strInnoDBDataHomeDir = 'Data home directory';
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.';
+$strInnoDBPages = 'পাতাসমুহ';
+$strInnodbStat = 'InnoDB Status';
+$strInsecureMySQL = 'Your configuration file contains settings (root with no password) that correspond to the default MySQL privileged account. Your MySQL server is running with this default, is open to intrusion, and you really should fix this security hole.';
+$strInsertAsNewRow = 'Insert as new row';
+$strInsert = 'Insert';
+$strInternalRelations = 'Internal relations';
+$strInUse = 'in use';
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:';
+$strInvalidColumnCount = 'Column count has to be larger than zero.';
+$strInvalidColumn = 'Invalid column (%s) specified!';
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.';
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.';
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s';
+$strInvalidDatabase = 'Invalid database';
+$strInvalidFieldAddCount = 'You have to add at least one field.';
+$strInvalidFieldCount = 'Table must have at least one field.';
+$strInvalidLDIImport = 'This plugin does not support compressed imports!';
+$strInvalidRowNumber = '%d is not valid row number.';
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.';
+$strInvalidServerIndex = 'Invalid server index: "%s"';
+$strInvalidTableName = 'Invalid table name';
+
+$strJapanese = 'Japanese';
+$strJoins = 'Joins';
+$strJumpToDB = 'Jump to database &quot;%s&quot;.';
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.';
+$strJustDelete = 'Just delete the users from the privilege tables.';
+
+$strKeepPass = 'Do not change the password';
+$strKeyCache = 'Key cache';
+$strKeyname = 'Keyname';
+$strKill = 'Kill';
+$strKorean = 'কোরিয়ান';
+
+$strLandscape = 'Landscape';
+$strLanguage = 'ভাষা';
+$strLanguageUnknown = 'Unknown language: %1$s.';
+$strLatchedPages = 'Latched pages';
+$strLatexCaption = 'Table caption';
+$strLatexContent = 'Content of table __TABLE__';
+$strLatexContinuedCaption = 'Continued table caption';
+$strLatexContinued = '(continued)';
+$strLatexIncludeCaption = 'Include table caption';
+$strLatexLabel = 'Label key';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Structure of table __TABLE__';
+$strLatvian = 'Latvian';
+$strLDI = 'CSV using LOAD DATA';
+$strLDILocal = 'লোকাল কী-ওয়ার্ড ব্যাবহার করুন';
+$strLengthSet = 'Length/Values';
+$strLimitNumRows = 'Number of rows per page';
+$strLinesTerminatedBy = 'Lines terminated by';
+$strLinkNotFound = 'লিংক পাওয়া যায়নি';
+$strLinksTo = 'Links to';
+$strLithuanian = 'Lithuanian';
+$strLocalhost = 'লোকাল';
+$strLocationTextfile = 'Location of the text file';
+$strLoginInformation = 'Login Information';
+$strLogin = 'লগ ইন';
+$strLogout = 'লগ আউট';
+$strLogPassword = 'পাসওয়ার্ড';
+$strLogServer = 'সার্ভার';
+$strLogUsername = 'ব্যাবহারকারী';
+$strLongOperation = 'This operation could take a long time. Proceed anyway?';
+
+$strMaxConnects = 'max. concurrent connections';
+$strMaximalQueryLength = 'Maximal length of created query';
+$strMaximumSize = 'Max: %s%s';
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using a multibyte charset. Without the mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.';
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause some data to be corrupted!';
+$strMIME_available_mime = 'Available MIME types';
+$strMIME_available_transform = 'Available transformations';
+$strMIME_description = 'বর্ণনা';
+$strMIME_MIMEtype = 'মাইম এর ধরন';
+$strMIME_nodescription = 'No description is available for this transformation.<br />Please ask the author what %s does.';
+$strMIME_transformation = 'Browser transformation';
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME type transformations, click on %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\',\'b\',\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformation options';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE';
+$strMIME_without = 'MIME types printed in italics do not have a separate transformation function';
+$strModifications = 'Modifications have been saved';
+$strModifyIndexTopic = 'Modify an index';
+$strModify = 'Modify';
+$strMoveTable = 'Move table to (database<b>.</b>table):';
+$strMoveTableOK = 'Table %s has been moved to %s.';
+$strMoveTableSameNames = 'Can\'t move table to same one!';
+$strMultilingual = 'বহুভাষী';
+$strMyISAMDataPointerSize = 'Data pointer size';
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.';
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation';
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files';
+$strMyISAMRecoverOptions = 'Automatic recovery mode';
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.';
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the repair by sorting process.';
+$strMyISAMRepairThreads = 'থ্রেড রিপেয়ার করুন';
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Sort buffer size';
+$strMySQLCharset = 'MySQL charset';
+$strMysqlClientVersion = 'MySQL client version';
+$strMySQLConnectionCollation = 'MySQL connection collation';
+$strMySQLSaid = 'MySQL said: ';
+$strMySQLShowProcess = 'প্রসেসসমূহ দেখান';
+
+$strName = 'নাম';
+$strNext = 'পরবর্তী';
+$strNoActivity = 'No activity within %s seconds; please log in again';
+$strNoDatabases = 'কোন ডাটাবেজ নাই';
+$strNoDatabasesSelected = 'No databases selected.';
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.';
+$strNoDescription = 'কোন বর্ণনা নাই';
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.';
+$strNoDropDatabases = '"DROP DATABASE" statements are disabled.';
+$strNoExplain = 'Skip Explain SQL';
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!';
+$strNoFrames = 'phpMyAdmin is more friendly with a <b>frames-capable</b> browser.';
+$strNoIndex = 'No index defined!';
+$strNoIndexPartsDefined = 'No index parts defined!';
+$strNoModification = 'No change';
+$strNone = 'কোনটিই নয়';
+$strNo = 'না';
+$strNoOptions = 'This format has no options';
+$strNoPassword = 'কোন পাসওয়ার্ড নাই';
+$strNoPermission = 'The web server does not have permission to save the file %s.';
+$strNoPhp = 'PHP কোড ছাড়া';
+$strNoPrivileges = 'কোন সুবিধা নাই';
+$strNoRights = 'You don\'t have sufficient privileges to be here right now!';
+$strNoRowsSelected = 'No rows selected';
+$strNoSpace = 'Insufficient space to save the file %s.';
+$strNoTablesFound = 'No tables found in database.';
+$strNoThemeSupport = 'No themes support; please check your configuration and/or your themes in directory %s.';
+$strNotNumber = 'এটি কোন সংখ্যা না';
+$strNotOK = 'ঠিক নাই';
+$strNotSet = '<b>%s</b> table not found or not set in %s';
+$strNoUsersFound = 'No user(s) found.';
+$strNoValidateSQL = 'Skip Validate SQL';
+$strNull = 'খালি';
+$strNumberOfFields = 'Number of fields';
+$strNumSearchResultsInTable = '%s match(es) inside table <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> match(es)';
+$strNumTables = 'টেবিলসমূহ';
+
+$strOK = 'ঠিক আছে';
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Open new phpMyAdmin window';
+$strOperations = 'Operations';
+$strOperator = 'অপারেটর';
+$strOptimizeTable = 'টেবিল অপটিমাইজ করুন';
+$strOr = 'অথবা';
+$strOverhead = 'Overhead';
+$strOverwriteExisting = 'Overwrite existing file(s)';
+
+$strPageNumber = 'পাতার সংখ্যাঃ';
+$strPagesToBeFlushed = 'Pages to be flushed';
+$strPaperSize = 'পাতার আকার';
+$strPartialImport = 'Partial import';
+$strPartialText = 'Partial Texts';
+$strPasswordChanged = 'The password for %s was changed successfully.';
+$strPasswordEmpty = 'পাসওয়ার্ড দেওয়া হয়নি';
+$strPasswordHashing = 'Password Hashing';
+$strPasswordNotSame = 'The passwords aren\'t the same!';
+$strPassword = 'পাসওয়ার্ড';
+$strPdfDbSchema = 'Schema of the "%s" database - Page %s';
+$strPdfInvalidTblName = 'The "%s" table doesn\'t exist!';
+$strPdfNoTables = 'কোন টেবিল নাই';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)';
+$strPDFReportTitle = 'Report title';
+$strPerHour = 'per hour';
+$strPerMinute = 'per minute';
+$strPerSecond = 'per second';
+$strPersian = 'পারসিয়ান';
+$strPhoneBook = 'phone book';
+$strPhp = 'PHP কোড তৈরী করুনCreate PHP Code';
+$strPHPVersion = 'PHP Version';
+$strPmaDocumentation = 'phpMyAdmin documentation';
+$strPmaUriError = 'The <tt>$cfg[\'PmaAbsoluteUri\']</tt> directive MUST be set in your configuration file!';
+$strPolish = 'পোলিশ';
+$strPortrait = 'Portrait';
+$strPos1 = 'শুরু';
+$strPrevious = 'পূর্ববর্তী';
+$strPrimaryKeyHasBeenDropped = 'The primary key has been dropped';
+$strPrimaryKeyName = 'The name of the primary key must be "PRIMARY"!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!)';
+$strPrimary = 'প্রাথমিক';
+$strPrint = 'প্রিন্ট কর';
+$strPrintViewFull = 'Print view (with full texts)';
+$strPrintView = 'Print view';
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.';
+$strPrivDescAlter = 'Allows altering the structure of existing tables.';
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.';
+$strPrivDescCreateDb = 'Allows creating new databases and tables.';
+$strPrivDescCreateRoutine = 'Allows creating stored routines.';
+$strPrivDescCreateTbl = 'Allows creating new tables.';
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.';
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.';
+$strPrivDescCreateView = 'Allows creating new views.';
+$strPrivDescDelete = 'Allows deleting data.';
+$strPrivDescDropDb = 'Allows dropping databases and tables.';
+$strPrivDescDropTbl = 'Allows dropping tables.';
+$strPrivDescExecute5 = 'Allows executing stored routines.';
+$strPrivDescExecute = 'Allows running stored procedures; has no effect in this MySQL version.';
+$strPrivDescFile = 'Allows importing data from and exporting data into files.';
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.';
+$strPrivDescIndex = 'Allows creating and dropping indexes.';
+$strPrivDescInsert = 'Allows inserting and replacing data.';
+$strPrivDescLockTables = 'Allows locking tables for the current thread.';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.';
+$strPrivDescReferences = 'Has no effect in this MySQL version.';
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.';
+$strPrivDescReplClient = 'Allows the user to ask where the slaves / masters are.';
+$strPrivDescReplSlave = 'Needed for the replication slaves.';
+$strPrivDescSelect = 'Allows reading data.';
+$strPrivDescShowDb = 'Gives access to the complete list of databases.';
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.';
+$strPrivDescShutdown = 'Allows shutting down the server.';
+$strPrivDescSuper = 'Allows connecting, even if maximum number of connections is reached; required for most administrative operations like setting global variables or killing threads of other users.';
+$strPrivDescUpdate = 'Allows changing data.';
+$strPrivDescUsage = 'No privileges.';
+$strPrivileges = 'Privileges';
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.';
+$strProcedures = 'Procedures';
+$strProcesses = 'Processes';
+$strProcesslist = 'Process list';
+$strProtocolVersion = 'Protocol version';
+$strPutColNames = 'Put fields names in the first row';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Query';
+$strQueryCache = 'Query cache';
+$strQueryFrame = 'Query window';
+$strQueryOnDb = 'SQL query on database <b>%s</b>:';
+$strQueryResultsOperations = 'Query results operations';
+$strQuerySQLHistory = 'SQL history';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+$strQueryTime = 'Query took %01.4f sec';
+$strQueryType = 'Query type';
+$strQueryWindowLock = 'Do not overwrite this query from outside the window';
+
+$strReadRequests = 'Read requests';
+$strReceived = 'গৃহীত';
+$strRecords = 'রেকর্ডসমূহ';
+$strReferentialIntegrity = 'Check referential integrity:';
+$strRefresh = 'Refresh';
+$strRelationalSchema = 'Relational schema';
+$strRelationNotWorking = 'The additional features for working with linked tables have been deactivated. To find out why click %shere%s.';
+$strRelationsForTable = 'RELATIONS FOR TABLE';
+$strRelations = 'Relations';
+$strRelationView = 'Relation view';
+$strReloadingThePrivileges = 'Reloading the privileges';
+$strReloadPrivileges = 'Reload privileges';
+$strRemoveSelectedUsers = 'Remove selected users';
+$strRenameDatabaseOK = 'Database %s has been renamed to %s';
+$strRenameTableOK = 'Table %s has been renamed to %s';
+$strRenameTable = 'টেবিল রিনেম করুন';
+$strRepairTable = 'টেবিল রিপেয়ার করুন';
+$strReplaceNULLBy = 'Replace NULL by';
+$strReplaceTable = 'Replace table data with file';
+$strReplication = 'Replication';
+$strReset = 'রিসেট করুন';
+$strResourceLimits = 'Resource limits';
+$strReType = 'Re-type';
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.';
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.';
+$strRevokeMessage = 'You have revoked the privileges for %s';
+$strRevoke = 'Revoke';
+$strRomanian = 'রোমানিয়ান';
+$strRowLength = 'সাড়ির দৈর্ঘ্য';
+$strRowsFrom = 'row(s) starting from record #';
+$strRowSize = ' সাড়ির আকার';
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)';
+$strRowsModeHorizontal = 'আনুভূমিক';
+$strRowsModeOptions = 'in %s mode and repeat headers after %s cells';
+$strRowsModeVertical = 'লম্ব';
+$strRows = 'Rows';
+$strRowsStatistic = 'Row Statistics';
+$strRunning = 'running on %s';
+$strRunQuery = 'Submit Query';
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s';
+$strRunSQLQuery = 'Run SQL query/queries on database %s';
+$strRussian = 'রাশিয়ান';
+
+$strSaveOnServer = 'Save on server in %s directory';
+$strSave = 'সেভ করুন';
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page';
+$strSearchFormTitle = 'ডাটাবে এ খুজুঁনSearch in database';
+$strSearchInTables = 'Inside table(s):';
+$strSearchNeedle = 'Word(s) or value(s) to search for (wildcard: "%"):';
+$strSearchOption1 = 'at least one of the words';
+$strSearchOption2 = 'সব শব্দ';
+$strSearchOption3 = 'the exact phrase';
+$strSearchOption4 = 'as regular expression';
+$strSearchResultsFor = 'Search results for "<i>%s</i>" %s:';
+$strSearch = 'খুঁজুন';
+$strSearchType = 'Find:';
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).';
+$strSelectADb = 'Please select a database';
+$strSelectAll = 'সব সিলেক্ট করুন';
+$strSelectBinaryLog = 'Select binary log to view';
+$strSelectFields = 'Select fields (at least one):';
+$strSelectNumRows = 'in query';
+$strSelectTables = 'টেবিল সিলেক্ট করুন';
+$strSend = 'ফাইল হিসেবে সেভ করুন';
+$strSent = 'Sent';
+$strServerChoice = 'Server Choice';
+$strServerNotResponding = 'The server is not responding';
+$strServer = 'সার্ভার';
+$strServers = 'সার্ভারসমূহ';
+$strServerStatusDelayedInserts = 'Delayed inserts';
+$strServerStatus = 'Runtime Information';
+$strServerStatusUptime = 'This MySQL server has been running for %s. It started up on %s.';
+$strServerTabVariables = 'চলকসমূহ';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strServerVars = 'Server variables and settings';
+$strServerVersion = 'Server version';
+$strSessionValue = 'Session value';
+$strSetEnumVal = 'If field type is "enum" or "set", please enter the values using this format: \'a\',\'b\',\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'Show all';
+$strShowColor = 'রং দেখান';
+$strShowDatadictAs = 'Data Dictionary Format';
+$strShowFullQueries = 'Show Full Queries';
+$strShowGrid = 'Show grid';
+$strShowingBookmark = 'বুকমার্ক দেখান';
+$strShowingRecords = 'Showing rows';
+$strShowOpenTables = 'Show open tables';
+$strShowPHPInfo = 'Show PHP information';
+$strShow = 'দেখান';
+$strShowSlaveHosts = 'Show slave hosts';
+$strShowSlaveStatus = 'Show slave status';
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.';
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.';
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.';
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.';
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).';
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.';
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.';
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.';
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.';
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.';
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.';
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.';
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.';
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.';
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.';
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.';
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.';
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.';
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.';
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.';
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.';
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.';
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.';
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.';
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.';
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.';
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.';
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.';
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.';
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.';
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.';
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.';
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.';
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.';
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.';
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.';
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.';
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.';
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.';
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.';
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.';
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.';
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.';
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.';
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAY queues.';
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.';
+$strShowStatusOpen_filesDescr = 'The number of files that are open.';
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).';
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.';
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.';
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.';
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.';
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.';
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).';
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.';
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.';
+$strShowStatusReset = 'Reset';
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).';
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.';
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.';
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)';
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)';
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.';
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.';
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.';
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.';
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.';
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.';
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.';
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.';
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.';
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.';
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.';
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.';
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.';
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)';
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.';
+$strShowTableDimension = 'Show dimension of tables';
+$strShowTables = 'Show tables';
+$strShowThisQuery = ' Show this query here again ';
+$strSimplifiedChinese = 'Simplified Chinese';
+$strSingly = '(singly)';
+$strSize = 'আকার';
+$strSkipQueries = 'Number of records(queries) to skip from start';
+$strSlovak = 'Slovak';
+$strSlovenian = 'Slovenian';
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)';
+$strSortByKey = 'Sort by key';
+$strSorting = 'সাজাঁন';
+$strSort = 'সাজাঁন';
+$strSpaceUsage = 'Space usage';
+$strSpanish = 'Spanish';
+$strSplitWordsWithSpace = 'Words are separated by a space character (" ").';
+$strSQLCompatibility = 'SQL compatibility mode';
+$strSQLExportType = 'Export type';
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:';
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem';
+$strSQLQuery = 'SQL query';
+$strSQLResult = 'SQL result';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Invalid Identifer';
+$strSQPBugUnclosedQuote = 'Unclosed quote';
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String';
+$strStatCheckTime = 'Last check';
+$strStatCreateTime = 'Creation';
+$strStatement = 'Statements';
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.';
+$strStatUpdateTime = 'সর্বশেষ আপডেট';
+$strStatus = 'অবস্থা';
+$strStorageEngines = 'Storage Engines';
+$strStorageEngine = 'Storage Engine';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Structure and data';
+$strStrucExcelCSV = 'CSV for MS Excel';
+$strStrucNativeExcel = 'Native MS Excel format';
+$strStrucOnly = 'Structure only';
+$strStructPropose = 'Propose table structure';
+$strStructure = 'Structure';
+$strSubmit = 'Submit';
+$strSuccess = 'Your SQL query has been executed successfully';
+$strSum = 'যোগফল';
+$strSwedish = 'সুইডিশ';
+$strSwitchToDatabase = 'Switch to copied database';
+$strSwitchToTable = 'Switch to copied table';
+
+$strTableAlreadyExists = 'Table %s already exists!';
+$strTableComments = 'Table comments';
+$strTableEmpty = 'টেবিল এর নাম পূরন করা হয়নি';
+$strTableHasBeenDropped = 'Table %s has been dropped';
+$strTableHasBeenEmptied = 'Table %s has been emptied';
+$strTableHasBeenFlushed = 'Table %s has been flushed';
+$strTableMaintenance = 'Table maintenance';
+$strTableOfContents = 'Table of contents';
+$strTableOptions = 'Table options';
+$strTables = '%s table(s)';
+$strTableStructure = 'Table structure for table';
+$strTable = 'টেবিল';
+$strTakeIt = 'take it';
+$strTblPrivileges = 'Table-specific privileges';
+$strTempData = 'Temporary data';
+$strTextAreaLength = ' Because of its length,<br /> this field might not be editable ';
+$strThai = 'Thai';
+$strThemeDefaultNotFound = 'Default theme %s not found!';
+$strThemeNoPreviewAvailable = 'No preview available.';
+$strThemeNotFound = 'Theme %s not found!';
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!';
+$strThemePathNotFound = 'Theme path not found for theme %s!';
+$strTheme = 'Theme / Style';
+$strThisHost = 'This Host';
+$strThreads = 'Threads';
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.';
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.';
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.';
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.';
+$strTime = 'সময়';
+$strToggleScratchboard = 'Toggle scratchboard';
+$strTotal = 'মোট';
+$strTotalUC = 'মোট';
+$strTraditionalChinese = 'Traditional Chinese';
+$strTraditionalSpanish = 'Traditional Spanish';
+$strTraffic = 'Traffic';
+$strTransactionCoordinator = 'Transaction coordinator';
+$strTransformation_application_octetstream__download = 'Displays a link to download the binary data of the field. You can use the first option to specify the filename, or use the second option as the name of a field which contains the filename. If you use the second option, you need to set the first option to the empty string.';
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).';
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail. The options are the maximum width and height in pixels. The original aspect ratio is preserved.';
+$strTransformation_image_jpeg__link = 'Displays a link to download this image.';
+$strTransformation_image_png__inline = 'See image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP or DATETIME field according to your local date/time format. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string; see the documentation for PHP\'s strftime() function.';
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds it the field data via standard input. Returns the standard output of the application. The default is Tidy, to pretty-print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and list the tools you want to make available. The first option is then the number of the program you want to use and the second option is the parameters for the program. The third option, if set to 1, will convert the output using htmlspecialchars() (Default 1). The fourth option, if set to 1, will prevent wrapping and ensure that the output appears all on one line (Default 1).';
+$strTransformation_text_plain__formatted = 'Displays the contents of the field as-is, without running it through htmlspecialchars(). That is, the field is assumed to contain valid HTML.';
+$strTransformation_text_plain__imagelink = 'Displays an image and a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second and third options are the width and the height in pixels.';
+$strTransformation_text_plain__link = 'Displays a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second option is a title for the link.';
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.';
+$strTransformation_text_plain__substr = 'Displays a part of a string. The first option is the number of characters to skip from the beginning of the string (Default 0). The second option is the number of characters to return (Default: until end of string). The third option is the string to append and/or prepend when truncation occurs (Default: "...").';
+$strTruncateQueries = 'Truncate Shown Queries';
+$strTurkish = 'Turkish';
+$strType = 'Type';
+
+$strUkrainian = 'Ukrainian';
+$strUncheckAll = 'Uncheck All';
+$strUnicode = 'ইউনিকোড';
+$strUnique = 'Unique';
+$strUnknown = 'অজানা';
+$strUnselectAll = 'Unselect All';
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.';
+$strUpdatePrivMessage = 'You have updated the privileges for %s.';
+$strUpdateProfileMessage = 'The profile has been updated.';
+$strUpdateQuery = 'Update Query';
+$strUpdComTab = 'Please see the documentation on how to update your column_comments table';
+$strUpgrade = 'You should upgrade to %s %s or later.';
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.';
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.';
+$strUsage = 'ব্যাবহার';
+$strUseBackquotes = 'Enclose table and field names with backquotes';
+$strUseHostTable = 'Use Host Table';
+$strUserAlreadyExists = 'The user %s already exists!';
+$strUserEmpty = 'The user name is empty!';
+$strUserName = 'ব্যাভারকারীর নাম';
+$strUserNotFound = 'The selected user was not found in the privilege table.';
+$strUserOverview = 'User overview';
+$strUsersDeleted = 'The selected users have been deleted successfully.';
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;';
+$strUser = 'User';
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere';
+$strUseTables = 'টেবিল ব্যাবহারকারী';
+$strUseTextField = 'Use text field';
+$strUseThisValue = 'Use this value';
+
+$strValidateSQL = 'Validate SQL';
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary PHP extensions as described in the %sdocumentation%s.';
+$strValue = 'মান';
+$strVar = 'চলক';
+$strVersionInformation = 'Version information';
+$strViewDumpDatabases = 'View dump (schema) of databases';
+$strViewDumpDB = 'View dump (schema) of database';
+$strViewDump = 'View dump (schema) of table';
+$strViewHasBeenDropped = 'View %s has been dropped';
+$strView = 'View';
+
+$strWebServerUploadDirectoryError = 'The directory you set for upload work cannot be reached';
+$strWebServerUploadDirectory = 'web server upload directory';
+$strWelcome = 'Welcome to %s';
+$strWestEuropean = 'West European';
+$strWildcard = 'wildcard';
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window, or your browser\'s security settings are configured to block cross-window updates.';
+$strWithChecked = 'With selected:';
+$strWriteRequests = 'Write requests';
+$strWrongUser = 'Wrong username/password. Access denied.';
+
+$strXML = 'XML';
+
+$strYes = 'হ্যাঁ';
+
+$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.';
+$strZip = '"zipped"';
+
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/basque-utf-8.inc.php b/lang/basque-utf-8.inc.php
new file mode 100644
index 0000000000..3b56ae370d
--- /dev/null
+++ b/lang/basque-utf-8.inc.php
@@ -0,0 +1,1465 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// Atajos para Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Byte', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Iga', 'Astel', 'Astea', 'Astez', 'Oste', 'Osti', 'Lar');
+$month = array('Urt', 'Ots', 'Mar', 'Api', 'Mai', 'Eka', 'Uzt', 'Abu', 'Ira', 'Urr', 'Aza', 'Abe');
+// Ikus http://www.php.net/manual/es/function.strftime.php zehazteko
+// hurrengo aldagaia
+$datefmt = '%Y-%m-%d, %H:%M:%S';
+$timespanfmt = '%s egun, %s ordu, %s minutu eta %s segundu';
+
+$strAbortedClients = 'Deuseztatua';
+$strAccessDeniedExplanation = 'phpMyAdmin MySQL zerbitzariarekin konektatzen saiatu zen, eta zerbitzariak konexioa ukatu zuen. Config.inc.php fitxategian host-a, erabiltzaile-izena eta pasahitza berpasatu beharko dituzu eta MySQL zerbitzariaren administratzaileak emaniko informazioarekin bat egiten dutela ziurtatu.';
+$strAccessDenied = 'Sarbidea ukatua';
+$strAction = 'Ekintza';
+$strAddAutoIncrement = 'Gehitu AUTO_INCREMENT balioa';
+$strAddConstraints = 'Murrizketak gehitu';
+$strAddDeleteColumn = 'Gehitu/ezabatu irizpide-zutabea';
+$strAddDeleteRow = 'Gehitu/ezabatu irizpide-errenkada';
+$strAddIntoComments = 'Iruzkinetan gehitu';
+$strAddNewField = 'Eremu berria gehitu';
+$strAddPrivilegesOnDb = 'Pribilegioak gehitu datu-base honetan';
+$strAddPrivilegesOnTbl = 'Pribilegioak gehitu taula honetan ';
+$strAddSearchConditions = 'Bilatzeko baldintzak txertatu ("where" klausularen gorputza):';
+$strAddToIndex = '&nbsp;%s&nbsp; zutabe indizean gehituta';
+$strAddUser = 'Erabiltzaile berria gehitu';
+$strAddUserMessage = 'Erabiltzaile berria gehitu duzu.';
+$strAdministration = 'Kudeaketa';
+$strAfterInsertBack = 'Itzuli';
+$strAfterInsertNewInsert = 'Erregistro berria gehitu';
+$strAfter = '%s(a)ren ondoren';
+$strAll = 'Guztiak';
+$strAllTableSameWidth = 'Zabalera berdina duten taula guztiak erakutsi?';
+$strAlterOrderBy = 'Taularen "Order By" aldatu';
+$strAnalyzeTable = 'Taula aztertu';
+$strAnd = 'eta';
+$strAnIndex = 'Indize bat gehitu da hemen: %s';
+$strAny = 'edozein';
+$strAnyHost = 'Edozein zerbitzari';
+$strAnyUser = 'Edozein erabiltzaile';
+$strAPrimaryKey = 'Lehen mailako gakoa gehitu da hemen: %s';
+$strArabic = 'Arabiera';
+$strArmenian = 'Armeniera';
+$strAscending = 'Goranzko';
+$strAtBeginningOfTable = 'Taularen hasiera';
+$strAtEndOfTable = 'Taularen amaiera';
+$strAttr = 'Ezaugarriak';
+$strAutomaticLayout = 'Diseinu automatikoa';
+
+$strBack = 'Itzuli';
+$strBaltic = 'Baltikera';
+$strBeginCut = 'EBAKINAREN HASIERA';
+$strBeginRaw = 'IRAULKETAREN HASIERA';
+$strBinary = ' Binarioa ';
+$strBinaryDoNotEdit = ' Binarioa - ez editatu! ';
+$strBookmarkAllUsers = 'Gogokoen erregistro hau edozein erabiltzailearentzat erabilgarri ';
+$strBookmarkDeleted = 'Gordetako kontsulta ezabatu da.';
+$strBookmarkLabel = 'Etiketa';
+$strBookmarkQuery = 'Kontsulta gogokoetan gordea';
+$strBookmarkThis = 'Kontsulta hau gogokoetan gorde';
+$strBookmarkView = 'Soilik ikusi';
+$strBrowse = 'Arakatu';
+$strBulgarian = 'Bulgariera';
+$strBzip = '"Bzip-ez trinkotua"';
+
+$strCannotLogin = 'Ezinezkoa MySql zerbitzarian saioa hastea';
+$strCantLoad = 'ezinezkoa %s luzapena kargatzea ,<br />mesedez, berpasatu zure PHPren konfigurazioa.';
+$strCantLoadRecodeIconv = 'Ezinezkoa iconv kargatzea edota karaktere-jokoaren bihurketarako beharrezkoa den luzapena berkodifikatzea, configure php para permitir el uso de estas extensiones o desactive la conversión de juegos de caracteres en phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Ezinezkoa indizearen izena ¡PRIMARY! berrizendatzea';
+$strCantUseRecodeIconv = 'Ezin dira erabili ez iconv, ez libiconv ezta recode_string funtzioa luzapenen txostena kargatzen den bitartean. Berpasatu php-ren konfigurazioa.';
+$strCardinality = 'Kardinalitatea';
+$strCaseInsensitive = 'Maiuskulak ez ditu bereizten';
+$strCaseSensitive = 'Maiuskulak bereizten ditu';
+$strCentralEuropean = 'Erdialdeko europearra';
+$strChange = 'Aldatu';
+$strChangeCopyModeCopy = '... mantendu aurrekoa.';
+$strChangeCopyModeDeleteAndReload = ' ... zaharra ezabatu erabiltzaileen tauletatik eta ondoren berkargatu pribilegioak.';
+$strChangeCopyMode = 'Erabiltzaile berri bat sortu pribilegio berdinekin eta ...';
+$strChangeCopyModeJustDelete = ' ... zaharra ezabatu erabiltzaileen tauletatik.';
+$strChangeCopyModeRevoke = ' ... zaharraren pribilegio aktibo guztiak errebokatu eta ondoren ezabatu.';
+$strChangeCopyUser = 'Aldatu saioa hasteko informazioa / Erabiltzailea kopiatu';
+$strChangeDisplay = 'Aukeratu erakutsi beharreko eremua';
+$strChangePassword = 'Pasahitza aldatu';
+$strCharset = 'Karaktere-jokoa';
+$strCharsetOfFile = 'Fitxategiaren karaktereen kodeketa:';
+$strCharsetsAndCollations = 'Karaktere-multzoak eta ordenamenduak';
+$strCharsets = 'Karaktere-multzoa';
+$strCheckAll = 'Guztiak egiaztatu';
+$strCheckOverhead = 'Arazteko hondakinak egiaztatu';
+$strCheckPrivsLong = '&quot;%s&quot; datu-basearen pribilegioak egiaztatu.';
+$strCheckPrivs = 'Pribilegioak egiaztatu';
+$strCheckTable = 'Taula egiaztatu';
+$strChoosePage = 'Aukeratu editatzeko orria mesedez';
+$strColComFeat = 'Zutabearen iruzkinak erakusten';
+$strCollation = 'Ordenamendua';
+$strColumnNames = 'Zutabe izenak';
+$strColumnPrivileges = 'Zutabearen pribilegio espezifikoak';
+$strCommand = 'Komandoa';
+$strComments = 'Iruzkinak';
+$strCompleteInserts = '"Insert"ak osatu';
+$strCompression = 'Trinkotzea';
+$strConfigFileError = 'phpMyAdmin-ek ezin izan du zure konfigurazio fitxategia irakurri!<br />Hau gerta liteke php-k sintasi errore bat aurkitzen badio edota php-k fitxategia ezin izan duelako aurkitu.<br />Faborez, saiatu konfigurazio fitxategia zuzenean deitzen hurrengo esteka erabiliz eta irakurri jaso lite(z)keen php-ren errore mezua(k). Kasu gehienetan komatxo edo puntu eta komaren bat nonbait ez egoteak sortzen du arazoa.<br />Orria txuriz jasoz gero, dena ondo legoke.';
+$strConfigureTableCoord = 'Mesedez, %s taularentzako koordinatuak konfiguratu';
+$strConnections = 'Konexioak';
+$strConstraintsForDumped = 'Iraulitako taulentzako murrizketak';
+$strConstraintsForTable = 'Taularentzako murrizketak';
+$strCookiesRequired = 'Puntu honetarako cookie-ek gaituta egon behar dute.';
+$strCopyTableOK = '%s taula hona kopiatua izan da: %s.';
+$strCopyTableSameNames = 'Ezinezkoa da taula berberera kopiatzea!';
+$strCopyTable = 'Taula hona kopiatu: (datu-base<b>.</b>taula):';
+$strCouldNotKill = 'phpMyAdmin-ek ezin izan du %s haria deuseztatu. Seguruena aurretik itxia izatea.';
+$strCreateIndex = 'Indize bat sortu &nbsp;%s&nbsp; zutabetan';
+$strCreateIndexTopic = 'Indize berri bat sortu';
+$strCreateNewDatabase = 'Datu-base berri bat sortu';
+$strCreateNewTable = 'Taula berri bat sortu %s datu-basean';
+$strCreatePage = 'Orri berri bat sortu';
+$strCreatePdfFeat = 'PDF-en sorrera';
+$strCreate = 'Sortu';
+$strCreationDates = 'Sortu/Eguneratu/Egiaztatu datak';
+$strCriteria = 'Irizpidea';
+$strCroatian = 'Croaziera';
+$strCyrillic = 'Zirilikoa';
+$strCzech = 'Txekiera';
+
+$strDanish = 'Danesa';
+$strDatabase = 'Datu-basea';
+$strDatabaseExportOptions = 'Datu-basea esportatzeko aukerak';
+$strDatabaseHasBeenDropped = '%s datu-basea ezabatua izan da.';
+$strDatabases = 'Datu-baseak';
+$strDatabasesDropped = '%s datu-base arrakastaz ezabatu dira.';
+$strDatabasesStats = 'Datu-baseen estatistikak';
+$strDatabasesStatsDisable = 'Estatistikak ezgaitu';
+$strDatabasesStatsEnable = 'Estatistikak gaitu';
+$strDatabasesStatsHeavyTraffic = 'Oharra: Datu-basearen estatistikak hemen gaituz gero web-zerbitzaria eta MySQL-arenaren arteko trafiko handia sor liteke.';
+$strData = 'Datuak';
+$strDataDict = 'Datu-hiztegia';
+$strDataOnly = 'Datuak soilik';
+$strDBComment = 'Datu-basearen iruzkina: ';
+$strDbPrivileges = 'Datu-basearen pribilegio espezifikoak';
+$strDbSpecific = 'Datubasearentzat espezifikoa';
+$strDefault = 'Lehenetsia';
+$strDefaultValueHelp = 'Lehenetsitako balioak erabiltzeko, mesedez sartu balio bakar bat, komatxo edota alderantzikaturiko barrarik gabe, formato hau erabiliz: a';
+$strDelayedInserts = 'Use delayed inserts';
+$strDeleteAndFlushDescr = 'Hau da biderik garbiena, baina pribilegioak berkargatzeak denbora behar du.';
+$strDeleteAndFlush = 'Erabiltzaileak ezabatu eta ondoren pribilegioak berkargatu.';
+$strDeleted = 'Errenkada ezabatua izan da';
+$strDelete = 'Ezabatu';
+$strDeleting = '%s ezabatzen';
+$strDelOld = 'Orri honek existitzen ez diren taulekiko erreferentziak dauzka. Erreferentziok ezabatu nahi al dituzu?';
+$strDescending = 'Beherantz';
+$strDescription = 'Deskribapena';
+$strDictionary = 'hiztegia';
+$strDisabled = 'Ezgaituta';
+$strDisplayFeat = 'Eginbideak erakutsi';
+$strDisplayOrder = 'Ordena erakutsi:';
+$strDisplayPDF = 'PDF eskema erakutsi';
+$strDoAQuery = '"Adibide moduan" kontsulta bat egin (komodina: "%")';
+$strDocu = 'Dokumentazioa';
+$strDoYouReally = 'Benetan nahi al duzu ';
+$strDrop = 'Ezabatu';
+$strDropUsersDb = 'Erabiltzaileen izen berdina duten datu-baseak ezabatu.';
+$strDumpingData = 'Taula honen datuak irauli';
+$strDumpSaved = 'Iraulketa %s fitxategian gorde da.';
+$strDumpXRows = '%s errenkada irauli, erregistro honetatik hasita: # %s.';
+$strDynamic = 'dinamikoa';
+
+$strEdit = 'Editatu';
+$strEditPDFPages = 'Editatu PDF Orriak';
+$strEditPrivileges = 'Editatu Pribilegioak';
+$strEffective = 'Eraginkorra';
+$strEmpty = 'Hutsik';
+$strEmptyResultSet = 'MySQL-k emaitza hutsa itzuli du. (i.e. zero errenkada).';
+$strEnabled = 'Gaituta';
+$strEnd = 'Amaiera';
+$strEndCut = 'EBAKINAREN AMAIERA';
+$strEndRaw = 'IRAULKETAREN AMAIERA';
+$strEnglish = 'Ingelesa';
+$strEnglishPrivileges = ' Oharra: MySQL-ren pribilegioen izenak ingelesez adierazita daude';
+$strError = 'Errorea';
+$strEstonian = 'Estoniera';
+$strExcelEdition = 'Excel edizioa';
+$strExecuteBookmarked = 'Exekutatu aurretik aukeratutako kontsulta';
+$strExplain = 'SQL-a azaldu';
+$strExport = 'Esportatu';
+$strExtendedInserts = '"insert" hedatuak';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Erratutako saiakerak';
+$strField = 'Eremua';
+$strFieldHasBeenDropped = '%s eremua ezabatu da';
+$strFieldsEnclosedBy = 'Eremuak honekin mugatuta:';
+$strFields = 'Eremuak';
+$strFieldsEscapedBy = 'Eremuak escaped by:';
+$strFieldsTerminatedBy = 'Eremuak honekin bukatuak:';
+$strFileAlreadyExists = '%s fitxategia aurretik bazegoen zerbitzarian, izena aldatu edo aukeratu gainean idazteko hobespena.';
+$strFileCouldNotBeRead = 'Ezinezkoa fitxategia irakurtzea';
+$strFileNameTemplateRemember = 'txantiloia gogoratu';
+$strFileNameTemplate = 'Txantiloi-fitxategiaren izena';
+$strFixed = 'finkoa';
+$strFlushPrivilegesNote = 'Oharra: phpMyAdmin-ek erabiltzaileen pribilegioak\' zuzenean MySQL-ren pribilegioen taulatik\' eskuratzen ditu. Taula hauen edukiak, tartean eskuz aldaketarik egon bada, zerbitzariak erabiltzen dituenak ez bezelakoak izan daitezke. Kasu honetan, jarraitu aurretik %spribilegioak berkargatu%s beharko zenituzke.';
+$strFlushTable = 'Taularen cachea hustu ("FLUSH")';
+$strFormat = 'Formatoa';
+$strFormEmpty = 'Balioa bat falta da formularioan!';
+$strFullText = 'Testu osoak';
+$strFunction = 'Funtzioak';
+
+$strGenBy = 'Egilea:';
+$strGeneralRelationFeat = 'Erlazioen ezaaugarri orokorrak';
+$strGenTime = 'Sortzeko denbora';
+$strGerman = 'Alemaniera';
+$strGlobal = 'orokorra';
+$strGlobalPrivileges = 'Pribilegio orokorrak';
+$strGlobalValue = 'Balio orokorra';
+$strGo = 'Joan';
+$strGrantOption = 'Baimendu';
+$strGreek = 'Grekiera';
+$strGzip = '"gzip-ez trinkotuta"';
+
+$strHasBeenAltered = 'aldatua izan da.';
+$strHaveToShow = 'Gutxienez bistaratzeko Zutabe bat hautatu duzu.';
+$strHebrew = 'Hebreera';
+$strHome = 'Hasiera-orria';
+$strHomepageOfficial = 'phpMyAdmin-en webgune ofiziala';
+$strHostEmpty = 'Zerbitzariaren izena hutsik dago!';
+$strHost = 'Zerbitzaria';
+$strHungarian = 'Hungariera';
+
+$strId = 'ID';
+$strIdxFulltext = 'Testu osoa';
+$strIgnore = 'Ezikusi';
+$strImportFiles = 'Fitxategiak inportatu';
+$strIndexes = 'Indizeak';
+$strIndexHasBeenDropped = '%s indizea ezabatu da';
+$strIndex = 'Indizea';
+$strIndexName = 'Indizearen izena&nbsp;:';
+$strIndexType = 'Indize mota&nbsp;:';
+$strInnodbStat = 'InnoDB Egoera';
+$strInsecureMySQL = 'Zure konfigurazio fitxategiak MySQL-ren kontu pribilegiatuari dagozkion ezarpenak (root pasahitzik gabe) dauzka . Zure MySQL zerbitzaria lehenetsitako balio hauekin ari da lanean; atzipen-saiakera arrotzei irekita beraz. Segurtasun-zulo hau konpondu beharko zenuke.';
+$strInsertAsNewRow = 'Txertatu errenkada berri batean';
+$strInsert = 'Txertatu';
+$strInternalRelations = 'Barne-erlazioak';
+$strInUse = 'lanean';
+
+$strJapanese = 'Japoniera';
+$strJumpToDB = '&quot;%s&quot; datu-basera joan.';
+$strJustDeleteDescr = '&quot;Ezabatutako&quot; erabiltzaileak ohizko eran zerbitzarira sartzeko aukera izaten jarraituko dute harik eta pribilegioak berkargatu arte.';
+$strJustDelete = 'Pribilegioen taulatik erabiltzaileak ezabatzea besterik ez duzu.';
+
+$strKeepPass = 'Pasahitza ez aldatu';
+$strKeyname = 'Klabearen hitza';
+$strKill = 'Hil';
+$strKorean = 'Koreera';
+
+$strLatexCaption = 'Taularen epigrafea';
+$strLatexContent = '__TABLE__ taularen edukina';
+$strLatexIncludeCaption = 'Taularen epigrafea gehitu';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = '__TABLE__ taularen egitura';
+$strLengthSet = 'Luzera/Balioak*';
+$strLimitNumRows = 'Errenkada kopurua orriko';
+$strLinesTerminatedBy = 'Honetan bukatutako lerroak: ';
+$strLinkNotFound = 'Esteka aurkitugabea';
+$strLinksTo = 'Estekak honi:';
+$strLithuanian = 'Lithuaniera';
+$strLocalhost = 'Lokal';
+$strLocationTextfile = 'Testu-fitxategiaren kokapena';
+$strLogin = 'Hasi saioa';
+$strLoginInformation = 'Saioa hasteko informazioa';
+$strLogout = 'Saioa bukatu';
+$strLogPassword = 'Pasahitza:';
+$strLogServer = 'Zerbitzaria';
+$strLogUsername = 'Erabiltzaile-izena:';
+
+$strMIME_available_mime = 'MIME-mota erabilgarriak';
+$strMIME_available_transform = 'Eraldaketa erabilgarriak';
+$strMIME_description = 'Deskribapena';
+$strMIME_MIMEtype = 'MIME-mota';
+$strMIME_nodescription = 'Eraldaketa honentzako deskribapenik ez dago erabilgarri.<br />Mesedez egileari galdetu, %s-(e)k zer egiten duen.';
+$strMIME_transformation = 'Nabigatzailearen eraldaketa';
+$strMIME_transformation_note = 'Eraldaketen hobespen eta haien MIME-mota eraldaketen zerrendarako, egizu klik hemen %stransformation descriptions%s';
+$strMIME_transformation_options = 'Eraldaketen hobespenak';
+$strMIME_transformation_options_note = 'Mesedez, formato honi jarraiki, sartu itzazu eraldaketen hobespenentzako balioak: \'a\', 100, b,\'c\'...<br />Noizbait alderantzikaturiko barra ("\") edo barra arrunta ("\'") erabili beharko bazenu, beti erabili alderantzikaturiko barra (adibidez \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_without = 'Etzanez inprimaturiko MIME-motek ez dute eraldaketa-funtzio berezirik';
+$strModifications = 'Aldaketak gorde dira';
+$strModify = 'Aldatu';
+$strModifyIndexTopic = 'Indize bat aldatu';
+$strMoveTableOK = '%s taula hona mugitu da: %s.';
+$strMoveTableSameNames = 'Ezin taula berberara mugitu!';
+$strMoveTable = 'Taula hona mugitu (datu-basea<b>.</b>taula):';
+$strMultilingual = 'eleanitza';
+$strMySQLCharset = 'MySQL karaktere-multzoa';
+$strMySQLSaid = 'MySQL-ek zera dio: ';
+$strMySQLShowProcess = 'Erakutsi prozesuak';
+
+$strName = 'Izena';
+$strNext = 'Hurrengoa';
+$strNoDatabases = 'Datu-baserik ez';
+$strNoDatabasesSelected = 'Ez dago datu-baserik aukeratuta.';
+$strNoDescription = 'Deskribapenik ez';
+$strNoDropDatabases = '"DROP DATABASE" sententziak ezgaituta daude.';
+$strNoExplain = 'SQL-ren azalpena saltatu';
+$strNo = 'Ez';
+$strNoFrames = 'phpMyAdmin askoz erabilerraza da <b>frame-ak onartzen duen</b> nabigatzaile batekin.';
+$strNoIndex = 'Ez dago indizerik definituta!';
+$strNoIndexPartsDefined = 'Ez da indiziaren zatiak definitu!';
+$strNoModification = 'Aldaketarik ez';
+$strNone = 'Batez';
+$strNoOptions = 'Formato honek ez du aukerarik';
+$strNoPassword = 'Pasahitzik ez';
+$strNoPermission = 'Web-zerbitzariak dio %s fitxategia gordetzeko baimenik ez duzula.';
+$strNoPhp = 'PHP Koderik gabe';
+$strNoPrivileges = 'Pribilegiorik gabe';
+$strNoRights = 'Ez daukazu baimen nahikorik hemen orain egoteko!';
+$strNoSpace = 'Ez dago leku-disko nahikoa %s fitxategia gordetzeko.';
+$strNoTablesFound = 'Ez da taularik aurkitu datu-basean.';
+$strNotNumber = 'Hau ez da zenbaki bat!';
+$strNotOK = 'Okerra';
+$strNotSet = '<b>%s</b> taula ez da aurkitu edo ez da definitu hemen: %s';
+$strNoUsersFound = 'Ez da erabiltzailerik aurkitu.';
+$strNoValidateSQL = 'SQL-ren balidapena saltatu';
+$strNull = 'Nulua';
+$strNumSearchResultsInTable = '%s emaitza(k) <i>%s</i> taulan';
+$strNumSearchResultsTotal = '<b>Guztira:</b> <i>%s</i> emaitza(k)';
+$strNumTables = 'Taulak';
+
+$strOK = 'Zuzena';
+$strOperations = 'Eragiketak';
+$strOptimizeTable = 'Taula optimizatu';
+$strOr = 'Edo';
+$strOverhead = 'Arazteko hondakina';
+$strOverwriteExisting = 'Gainean idatzi aurretik badiren fitxategiak';
+
+$strPageNumber = 'Orri zenbakia:';
+$strPaperSize = 'Paperaren tamaina';
+$strPartialText = 'Testu partzialak';
+$strPasswordChanged = '%s-arentzako pasahitza arrakastaz aldatua izan da.';
+$strPasswordEmpty = 'Pasahitza hutsik dago!';
+$strPasswordNotSame = 'Pasahitzek ez dute bat egiten!';
+$strPassword = 'Pasahitza';
+$strPdfDbSchema = '"%s" datu-basearen eskema- Orria %s';
+$strPdfInvalidTblName = '"%s" taula ez da existitzen!';
+$strPdfNoTables = 'Taularik ez';
+$strPerHour = 'orduko';
+$strPerMinute = 'minutuko';
+$strPerSecond = 'segunduko';
+$strPhoneBook = 'Telefono-agenda';
+$strPhp = 'PHP kodea sortu';
+$strPHPVersion = 'PHP Bertsioa';
+$strPmaDocumentation = 'phpMyAdmin dokumentazioa';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> direktibak zure konfigurazio fitxategian zehaztuta behar du egon!';
+$strPortrait = 'Bertikal';
+$strPos1 = 'Hasi';
+$strPrevious = 'Aurrekoa';
+$strPrimaryKeyHasBeenDropped = 'Lehen mailako gakoa ezabatu da';
+$strPrimaryKeyName = 'Lehen mailako gakoaren izenak behar du izan... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY"-k, <b>soilik</b>, lehen mailako gako baten izena izan <b>behar</b> du!)';
+$strPrimary = 'Lehen mailakoa';
+$strPrint = 'Inprimatu';
+$strPrintViewFull = 'Inprimatzeko ikuspena (testu osoak)';
+$strPrintView = 'Inprimatzeko ikuspegia';
+$strPrivDescAllPrivileges = 'Pribilegio guztiak, GRANT(baimendu) izanezik, dauzka.';
+$strPrivDescAlter = 'Uneko taulen egiturak aldatzea baimentzen du.';
+$strPrivDescCreateDb = 'Datu-base eta taula berriak sortzea baimentzen du.';
+$strPrivDescCreateTbl = 'Taula berriak sortzea baimentzen du.';
+$strPrivDescCreateTmpTable = 'Aldi baterako taulak sortzea baimentzen du.';
+$strPrivDescDelete = 'Datuak ezabatzea baimentzen du.';
+$strPrivDescDropDb = 'Datu-base eta taulak ezabatzea baimentzen du.';
+$strPrivDescDropTbl = 'Taulak ezabatzea baimentzen du.';
+$strPrivDescExecute = 'Gordetako prozedurak exekutatzea baimentzen du; Ez du eraginik MySQL bertsio honetan.';
+$strPrivDescFile = 'Datuak fitxategietatik inportatzea eta fitxategietara esportatzea baimentzen du.';
+$strPrivDescGrant = 'Erabiltzaileak eta pribilegioak gehitzea baimentzen du pribilegioen taula berkargatu gabe.';
+$strPrivDescIndex = 'Indizeak sortu eta ezabatzea baimentzen du.';
+$strPrivDescInsert = 'Datuak txertatu eta ordezkatzea baimentzen du.';
+$strPrivDescLockTables = 'Momentuko harian taulak blokeatzea baimentzen du.';
+$strPrivDescMaxConnections = 'Erabiltzaileak orduko ireki dezakeen konexio berrien kopurua mugatzen du.';
+$strPrivDescMaxQuestions = 'Erabiltzaileak orduko zerbitzarira bidali dezakeen kontsulta kopurua mugatzen du.';
+$strPrivDescMaxUpdates = 'Erabiltzaileak orduko exekuta dezakeen taula edo datu-baserik alda dezaketen komando kopurua mugatzen du.';
+$strPrivDescReferences = 'Ez du eraginik MySQL bertsio honetan.';
+$strPrivDescReload = 'Zerbitzariaren hobespenak berkargatu eta beraren cacheak hustea baimentzen du.';
+$strPrivDescReplClient = 'Erabiltzailea baimentzen du morroiak / nagusiak non dauden galdetzeko.';
+$strPrivDescReplSlave = 'Erreplikazio morroientzat beharrezkoa.';
+$strPrivDescSelect = 'Datuak irakurtzea baimentzen du.';
+$strPrivDescShowDb = 'Datu-base zenrrenda osorako sarrera ahalbidetzen du.';
+$strPrivDescShutdown = 'Zerbitzaria amatatzea baimentzen du.';
+$strPrivDescSuper = 'Konektatzea baimentzen du, baita konexio kopuru maximora ailegatuta ere; Aldagai orokorrak zehaztu edota beste erabiltzaileen hariak hiltzeko bezalako kudeaketa-eragiketa gehienentzat beharrezkoa da.';
+$strPrivDescUpdate = 'Datuak aldatzea baimentzen du.';
+$strPrivDescUsage = 'Pribilegiorik ez.';
+$strPrivileges = 'Probilegioak';
+$strPrivilegesReloaded = 'Pribilegioak arrakastaz berkargatu dira.';
+$strProcesses = 'Prozesuak';
+$strProcesslist = 'Prozesuen zerrenda';
+$strPutColNames = 'Eremuen izenak lehenengo errenkadan jarri';
+
+$strQBEDel = 'Ezabatu';
+$strQBEIns = 'Txertatu';
+$strQBE = 'Kontsulta';
+$strQueryFrame = 'Kontsulta-leihoa';
+$strQueryOnDb = 'SQL-kontsulta <b>%s</b> datu-basean:';
+$strQuerySQLHistory = 'SQL-historia';
+$strQueryStatistics = '<b>Kontsultaren estatistikak</b>: Bere hasieratik, %s kontsulta zerbitzarira bidali dira.';
+$strQueryTime = 'Kontsulta exekutatzeko denbora %01.4f seg';
+$strQueryType = 'Kontsulta mota';
+$strQueryWindowLock = 'Kontsulta hau ez idatzi gainean leihotik kanpo';
+
+$strReceived = 'Jasota';
+$strRecords = 'Erregistroak';
+$strReferentialIntegrity = 'Erreferentzien integritatea egiaztatu:';
+$strRelationalSchema = 'Erlazio-eskema';
+$strRelationNotWorking = 'Estekatutako taulekin lan egiteko hobespen gehigarriak ezgaitu dira . Zergatia jakiteko egizu klik %shemen%s.';
+$strRelations = 'Erlazioak';
+$strRelationView = 'Erlazioen ikuspegia';
+$strReloadingThePrivileges = 'Pribilegioak berkargatzen';
+$strRemoveSelectedUsers = 'Hautatutako erabiltzaileak baztertu';
+$strRenameTableOK = '%s taula %s-(e)ra berrizendatua izan da';
+$strRenameTable = 'Taula berrizendatu izen honetara: ';
+$strRepairTable = 'Taula konpondu';
+$strReplaceNULLBy = 'NULL ordezkatu honen ordez:';
+$strReplaceTable = 'Taularen datuak fitxategiarekin ordezkatu ';
+$strReset = 'Reset egin';
+$strResourceLimits = 'Baliabideen mugak';
+$strReType = 'Berridatzi';
+$strRevokeAndDeleteDescr = 'Erabiltzaileak USAGE pribilegioa izaten jarraituko dute harik eta pribilegioak berkargatu arte.';
+$strRevokeAndDelete = 'Erabiltzaileen pribilegio aktibo guztiak ezeztatu eta ondoren denak ezabatu.';
+$strRevoke = 'Ezeztatu';
+$strRevokeMessage = 'Zuk %s-(r)en pribilegioak ezeztatu dituzu';
+$strRowLength = 'Errenkadaren luzera';
+$strRows = 'Errenkadak';
+$strRowsFrom = 'errenkada(k) # erregistrotik hasita';
+$strRowSize = ' Errenkadaren tamaina ';
+$strRowsModeFlippedHorizontal = 'horizontal (goiburukoak biratuta)';
+$strRowsModeHorizontal = 'horizontal';
+$strRowsModeOptions = '%s moduan eta goiburukoak errepikatu %s zeldaka';
+$strRowsModeVertical = 'bertikal';
+$strRowsStatistic = 'Errenkadaren estatistikak';
+$strRunning = 'hemen ibiltzen: %s';
+$strRunQuery = 'Kontsulta bidali';
+$strRunSQLQuery = 'SQL kontsulta(k) exekutatu %s datu-basean';
+$strRussian = 'Errusiera';
+
+$strSave = 'Gorde';
+$strSaveOnServer = 'Zerbitzariren %s direktorioan gorde';
+$strScaleFactorSmall = 'Eskalaren faktorea txikiegia da eskema orri bakar batean azaltzeko';
+$strSearch = 'Bilatu';
+$strSearchFormTitle = 'Datu-basean bilatu';
+$strSearchInTables = 'Taul(ar)en barnean:';
+$strSearchNeedle = 'Bilaketa egiteko hitza(k) edo balioa(k) (komodina: "%"):';
+$strSearchOption1 = 'hitz hauetariko bat gutxienez';
+$strSearchOption2 = 'hitz guztiak';
+$strSearchOption3 = 'esaldi zehatza';
+$strSearchOption4 = 'adierazpen erregular moduan';
+$strSearchResultsFor = 'Bilaketaren emaitzak: "<i>%s</i>" %s:';
+$strSearchType = 'Aurkitu:';
+$strSecretRequired = 'Konfigurazio-fitxategiak orain ezkutuko pasahitz bat behar du (blowfish_secret).';
+$strSelectADb = 'Datu-base bat hautatu mesedez';
+$strSelectAll = 'Dena hautatu';
+$strSelectFields = 'Eremuak hautatu (bat gutxienez):';
+$strSelectNumRows = 'kontsultan';
+$strSelectTables = 'Taulak hautatu';
+$strSend = 'Bidali';
+$strSent = 'Bidalita';
+$strServerChoice = 'Zerbitzariaren hautaketa';
+$strServerStatusUptime = 'MySQL zerbitzari hau martxan egon da %s. %s abiaratu zelarik.';
+$strServerTabVariables = 'Aldagaiak';
+$strServerTrafficNotes = '<b>Zerbitzariaren trafikoa</b>: Taula hauek erakusten dituzte MySQL zerbitzari honen sare-trafikoaren estatistikak bere hasieratzetik.';
+$strServerVars = 'Zerbitzariaren aldagai eta ezarpenak';
+$strServerVersion = 'Zerbitzariaren bertsioa';
+$strServer = 'Zerbitzaria';
+$strSessionValue = 'Saioaren balioa';
+$strSetEnumVal = 'Eremu-mota "enum" edo "set" bada, mesedez idatzi balioak formato hau erabiliz: \'a\',\'b\',\'c\'...<br />Noizbait balio horien artean alderantzikaturiko barra ("\") edo barra arrunta ("\'") erabili beharko bazenu, beti erabili alderantzikaturiko barra (adibidez \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'Dena erakutsi';
+$strShowColor = 'Kolorea erakutsi';
+$strShowDatadictAs = 'Datuen hiztegiaren formateoa';
+$strShow = 'Erakutsi';
+$strShowFullQueries = 'Kontsulta osoak erakutsi';
+$strShowGrid = 'Sareta erakutsi';
+$strShowingRecords = 'Errenkadak erakusten';
+$strShowPHPInfo = 'PHP informazioa erakutsi';
+$strShowTableDimension = 'Taulen dimentsioak erakutsi';
+$strShowTables = 'Taulak erakutsi';
+$strShowThisQuery = ' Kontsulta hau hemen berriz erakutsi';
+$strSimplifiedChinese = 'Txinera erraztua';
+$strSingly = '(soilik)';
+$strSize = 'Tamaina';
+$strSortByKey = 'Gakoaren arabera ordenatu';
+$strSort = 'Ordenatu';
+$strSpaceUsage = 'Erabilitako lekua';
+$strSplitWordsWithSpace = 'Hitzak "zuriune" karakterrarekin bereiztuta daude (" ").';
+$strSQLExportType = 'Esportazio mota';
+$strSQLParserBugMessage = 'Baliteke zuk SQL analizatzailean errore bat topatu izana. Mesedez arretaz aztertu zure kontsulta, eta egiaztatu komatxoak zuzen erabiliak eta bikoitiak direla. Akatsaren bestelako jatorri bat izan liteke zu datu binariodun fitxategi bat igotzen saiatzea mugatutako testu-eremutik at. Zure kontsulta MySQL-ren komando-interfazean ere exekutatzen saia zenezake. MySql zeritzariak itzulitako erroreak, baldin badago, arazoa diagnostikatzen lagundu zaitzake. Arazoak bere horretan badirau edota komando-interfazeak arrakasta duen lekuan analizatzaileak huts egiten badu, mesedez murriztu ezazu zure SQL kontsulta arazoa sortzen duen zatira, eta bidal ezazu errore-txosten bat behean seinalaturiko MOZKETA atalean datu-katea paratuz:';
+$strSQLParserUserError = 'Ematen du zure SQL kontsultan errore bat dagoela. MySQL zerbitzariak itzulitako erroreak, baldin badago, arazoa diagnostikatzen lagundu zaitzake';
+$strSQLQuery = 'SQL kontsulta';
+$strSQLResult = 'SQL emaitza';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Indentifikatzaile okerra';
+$strSQPBugUnclosedQuote = 'Itxi gabeko komatxoak';
+$strSQPBugUnknownPunctuation = 'Puntuazio ikurra ezezaguna';
+$strStatCheckTime = 'Azken egiaztapena';
+$strStatCreateTime = 'Sortzea';
+$strStatement = 'Sententziak';
+$strStatUpdateTime = 'Azken eguneraketa';
+$strStatus = 'Egoera';
+$strStrucCSV = 'CSV datuak';
+$strStrucData = 'Egitura eta datuak';
+$strStrucExcelCSV = 'MS Excel datuentzako CSV';
+$strStrucOnly = 'Egitura soilik';
+$strStructPropose = 'Taularen egituraren proposamena ';
+$strStructure = 'Egitura';
+$strSubmit = 'Bidali';
+$strSuccess = 'Zure SQL-kontsula arrakastaz burutu da';
+$strSum = 'Gehiketa';
+$strSwedish = 'Suediera';
+$strSwitchToTable = 'Kopiatutako taulara aldatu';
+
+$strTableComments = 'Taularen iruzkinak';
+$strTableEmpty = 'Taularen izena hutsik dago!';
+$strTableHasBeenDropped = '%s taula ezabatu egin da';
+$strTableHasBeenEmptied = '%s taula hustu egin da';
+$strTableHasBeenFlushed = '%s taularen cachea hustu egin da';
+$strTableMaintenance = 'Taularen mantenua';
+$strTableOfContents = 'Edukinen taula';
+$strTableOptions = 'Taularen hobespenak';
+$strTables = '%s taula(k)';
+$strTableStructure = 'Taularen egitura taula honentzat: ';
+$strTable = 'Taula';
+$strTblPrivileges = 'Taularen pribilegio espezifikoak';
+$strTextAreaLength = ' Bere luzeragatik,<br /> eremu hau ez da editagarria ';
+$strThai = 'Thailandiarra';
+$strThisHost = 'Host hau';
+$strThreadSuccessfullyKilled = '%s haria arrakastaz ezabatu da.';
+$strTime = 'Denbora';
+$strToggleScratchboard = 'Aldatu "scratchboard"-a';
+$strTotal = 'guztira';
+$strTotalUC = 'Gutira';
+$strTraditionalChinese = 'Txinera tradizionala';
+$strTraffic = 'Trafikoa';
+$strTransformation_image_jpeg__inline = 'Miniatura klikagarri bat erakusten du; aukerak: luzera,altuera pixeletan (jatorrizko erlazioa mantentzen du)';
+$strTransformation_image_jpeg__link = 'Irudi honi zuzendutako esketa bat erakusten du(blob deskarga zuzena, i.e.).';
+$strTransformation_image_png__inline = 'Ikusi image/jpeg: inline';
+$strTransformation_text_plain__external = 'LINUX SOILIK: Kanpoko aplikazio bat abiaratzen du eta datu-eremua sarrera estandarraren bidez osatzen du. Aplikazioaren irteera estandarra itzultzen du. Lehenetsitakoa Tidy da, HTML kodea txukun pantailaratzeko. Segurtasun arrazoiengatik, libraries/transformations/text_plain__external.inc.php fitxategia eskuz editatu beharko duzu eta hor zehaztu zein tresna exekutatzea baimentzen duzun. Lehenengo aukera erabili nahi duzun programaren zenbakia da eta bigarren aukera programarentzako parametroak dira . Hirugarren parametroa, 1 izanez gero irteera bihurtuko du htmlspecialchars() funtzioa erabiliz (Lehenetsia: 1). Laugarren parametroa, 1 izanez gero NOWRAP bat ezarriko dio edukin-gelaxkari, beraz irteera osoa berformateatu barik erakutsiko da(Lehenetsi 1)';
+$strTransformation_text_plain__formatted = 'Eremuaren jatorrizko formateoa mantentzen du. Aldaketarik egin gabe.';
+$strTransformation_text_plain__imagelink = 'Irudi eta esteka bana erakusten ditu, eremuak fitxategiaren izena dauka; lehenengo aukera "http://domain.com/" moduko aurrizki bat da, bigarren aukera pixeletan neurtutako zabalera da, hirugarrena altuera da.';
+$strTransformation_text_plain__link = 'Esteka bat erakusten du, eremuak fitxategiaren izena dauka; lehenengo aukera "http://domain.com/" moduko aurrizki bat da , bigarren aukera estekaren izenburua da.';
+$strTransformation_text_plain__substr = 'Soilik katearen zati bat erakutsi. Lehenengo aukerak zehazten du non hasten den zure testuaren desplazamendua (lehenetsi 0). Bigarren aukerak itzultzeko karaktere kopurua erakusten du. Hutsik badago, gainerako testu guztia bueltatuko du. Hirugarren aukerak zehazten du zeintzuk karaktere txertatuko diren irteerara azpikate bat itzultzen denean (Lehenetsia: ...) .';
+$strTruncateQueries = 'Erakutsitako kontultak moztu';
+$strTurkish = 'Turkiera';
+$strType = 'Mota';
+
+$strUkrainian = 'Ukraniera';
+$strUncheckAll = 'Desautatu dena';
+$strUnicode = 'Unicode';
+$strUnique = 'Bakarra';
+$strUnknown = 'ezezaguna';
+$strUnselectAll = 'Desautatu dena';
+$strUpdatePrivMessage = '%s-aren pribilegioak eguneratu dituzu.';
+$strUpdateProfileMessage = 'Profila eguneratua izan da.';
+$strUpdateQuery = 'Kontsulta eguneratu';
+$strUpdComTab = 'Mesedez, Dokumentazioa begiratu zure zutabeen iruzkinen Taula nola eguneratzeko';
+$strUpgrade = '%s %s bertsiora edo handiago batera eguneratu beharko zenuke.';
+$strUsage = 'Erabilpena';
+$strUseBackquotes = '"Backquotes" erabili taula eta eremuen izenekin ';
+$strUseHostTable = 'Host taula erabili';
+$strUserAlreadyExists = '%s erabiltzailea badago lehendik ere!';
+$strUserEmpty = 'Erabiltzailearen izena hutsik dago!';
+$strUser = 'Erabiltzailea';
+$strUserName = 'Erabiltzaile-izena';
+$strUserNotFound = 'Hautatutako erabiltzailea ez da pribilegioen taulan aurkitu.';
+$strUserOverview = 'Erabiltzailearen info orokorra';
+$strUsersDeleted = 'Hautatutako erabiltzaileak arrakastaz ezabatu dira.';
+$strUsersHavingAccessToDb = '&quot;%s&quot;-(e)ra sarbidea duten erabiltzaileak';
+$strUseTables = 'Taulak erabili';
+$strUseTextField = 'Testu-eremua erabili';
+$strUseThisValue = 'Erabili balio hau';
+
+$strValidateSQL = 'SQL balidatu';
+$strValidatorError = 'Ezin izan da SQl balidatzailea hasieratu. Mesedez egiazta ezazu ea beharrezkoak diren php luzapenak instalatu dituzun %sdokumentazioan%s azaltzen den moduan.';
+$strValue = 'balioa';
+$strVar = 'Aldagaia';
+$strViewDumpDatabases = 'Ikusi datu-baseen iraulketa (eskema)';
+$strViewDumpDB = 'Ikusi datu-basearen iraulketa (eskema)';
+$strViewDump = 'Ikusi taularen iraulketa (eskema)';
+
+$strWebServerUploadDirectoryError = 'Igoerentzat ezarri duzun direktorioa ez dago eskuragarri';
+$strWebServerUploadDirectory = 'Fitxategiak igotzeko web-zerbitzariaren direktorioa';
+$strWelcome = 'Ongietorriak %s(e)ra';
+$strWestEuropean = 'Mendebaldeko europearra';
+$strWildcard = 'komodina';
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings';
+$strWithChecked = 'Ikurdunak:';
+$strWrongUser = 'Erabiltzaile-izena/pasahitza okerra. Atzipena ukatuta.';
+
+$strXML = 'XML';
+
+$strYes = 'Bai';
+
+$strZeroRemovesTheLimit = 'Oharra: Aukera hauek zerora ezarriz gero muga kentzen da.';
+$strZip = '"zipatuta"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLandscape = 'Horizontal'; //to translate
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexContinuedCaption = 'Continued table caption'; //to translate
+$strLatexContinued = '(continued)'; //to translate
+$strLatexLabel = 'Label key'; //to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strServerStatus = 'Runtime Information'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/belarusian_cyrillic-utf-8.inc.php b/lang/belarusian_cyrillic-utf-8.inc.php
new file mode 100644
index 0000000000..0594d3077e
--- /dev/null
+++ b/lang/belarusian_cyrillic-utf-8.inc.php
@@ -0,0 +1,1447 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by:
+ * Jaska Zedlik <jz53 at zedlik.com>
+ * http://www.zedlik.com
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Б', 'КiБ', 'МіБ', 'ГіБ', 'ТіБ', 'ПіБ', 'ЭіБ');
+
+$day_of_week = array('Ндз', 'Пан', 'Аўт', 'Сер', 'Цач', 'Пят', 'Суб');
+$month = array('Сту', 'Лют', 'Сак', 'Кра', 'Тра', 'Чэр', 'Ліп', 'Жні', 'Вер', 'Кас', 'Ліс', 'Сьн');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y, %H:%M';
+$timespanfmt = '%s дзён, %s гадзінаў, %s хвілінаў і %s сэкундаў';
+
+$strAbortedClients = 'Спынена';
+$strAccessDeniedCreateConfig = 'Імаверна, прычына гэтага ў тым, што ня створаны канфігурацыйны файл. Каб яго стварыць, можна выкарыстаць %1$sналадачны скрыпт%2$s.';
+$strAccessDeniedExplanation = 'phpMyAdmin паспрабаваў падлучыцца да сэрвэра MySQL, але сэрвэр адхіліў злучэньне. Праверце імя хосту, карыстальніка і пароль у config.inc.php і ўпэўніцеся, што яны адпавядаюць інфармацыі, якую даў адміністратар MySQL-сэрвэра.';
+$strAccessDenied = 'У доступе адмоўлена';
+$strAction = 'Дзеяньне';
+$strAddAutoIncrement = 'Дадаць значэньне AUTO_INCREMENT';
+$strAddClause = 'Дадаць %s';
+$strAddConstraints = 'Дадаць абмежаваньні';
+$strAddDeleteColumn = 'Дадаць/выдаліць калёнку крытэру';
+$strAddDeleteRow = 'Дадаць/выдаліць радок крытэру';
+$strAddFields = 'Дадаць %s новыя палі';
+$strAddHeaderComment = 'Дадаць прыватны камэнтар у загаловак (\\n падзяляе радкі)';
+$strAddIntoComments = 'Дадаць у камэнтары';
+$strAddNewField = 'Дадаць новае поле';
+$strAddPrivilegesOnDb = 'Дадаць прывілеі на наступную базу';
+$strAddPrivilegesOnTbl = 'Дадаць прывілеі на наступную табліцу';
+$strAddSearchConditions = 'Дадаць умовы пошуку (цела для ўмовы "where"):';
+$strAddToIndex = 'Дадаць да індэкса &nbsp;%s&nbsp;калёнку(і)';
+$strAddUser = 'Дадаць новага карыстальніка';
+$strAddUserMessage = 'Быў дададзены новы карыстальнік.';
+$strAdministration = 'Адміністраваньне';
+$strAfter = 'Пасьля %s';
+$strAfterInsertBack = 'Перайсьці да папярэдняй старонкі';
+$strAfterInsertNewInsert = 'Дадаць яшчэ адзін радок';
+$strAfterInsertNext = 'Рэдагаваць наступны радок';
+$strAfterInsertSame = 'Вярнуцца да гэтай старонкі';
+$strAll = 'Усе';
+$strAllowInterrupt = 'Дазволіць спыненьне імпартаваньня ў выпадку, калі скрыпт высьветліць, што скончваецца час выкананьня. Гэта можа быць добрым спосабам імпартаваньня вялікіх файлаў, аднак, гэта можа перапыніць транзакцыі.';
+$strAllTableSameWidth = 'Паказаць усе табліцы аднолькавай шырыні?';
+$strAlterOrderBy = 'Зьмяніць парадак табліцы';
+$strAnalyzeTable = 'Аналізаваць табліцу';
+$strAnd = 'І';
+$strAndThen = 'і пасьля';
+$strAnIndex = 'Быў дададзены індэкс для %s';
+$strAny = 'Любы';
+$strAnyHost = 'Любы хост';
+$strAnyUser = 'Любы карыстальнік';
+$strApproximateCount = 'Значэньне можа быць прыблізным. Гл. FAQ 3.11';
+$strAPrimaryKey = 'Першасны ключ быў дададзены да %s';
+$strArabic = 'Арабская';
+$strArmenian = 'Армянская';
+$strAscending = 'прамы';
+$strAtBeginningOfTable = 'У пачатку табліцы';
+$strAtEndOfTable = 'У канцы табліцы';
+$strAttr = 'Атрыбуты';
+$strAutomaticLayout = 'Аўтаматычнае разьмяшчэньне';
+
+$strBack = 'Назад';
+$strBaltic = 'Балтыйская';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Двайковы';
+$strBinaryDoNotEdit = 'Двайковыя дадзеныя — не рэдагуюцца';
+$strBinaryLog = 'Двайковы лог';
+$strBinLogEventType = 'Тып падзеі';
+$strBinLogInfo = 'Інфармацыя';
+$strBinLogName = 'Імя логу';
+$strBinLogOriginalPosition = 'Першапачатковая пазыцыя';
+$strBinLogPosition = 'Пазыцыя';
+$strBinLogServerId = 'ID сэрвэра';
+$strBookmarkAllUsers = 'Даць кожнаму карыстальніку доступ да гэтай закладкі';
+$strBookmarkCreated = 'Закладка %s створаная';
+$strBookmarkDeleted = 'Закладка была выдаленая.';
+$strBookmarkLabel = 'Метка';
+$strBookmarkQuery = 'Закладзены SQL-запыт';
+$strBookmarkReplace = 'Замяніць існую закладку з такім жа імем';
+$strBookmarkThis = 'Дадаць гэты SQL-запыт у закладкі';
+$strBookmarkView = 'Толькі прагляд';
+$strBrowseDistinctValues = 'Прагляд розных значэньняў';
+$strBrowseForeignValues = 'Праглядзець зьнешнія значэньні';
+$strBrowse = 'Прагляд';
+$strBufferPoolActivity = 'Актыўнасьць пулу буфэру';
+$strBufferPool = 'Пул буфэру';
+$strBufferPoolUsage = 'Выкарыстаньне пулу буфэру';
+$strBufferReadMisses = 'Пропускаў чытаньня';
+$strBufferReadMissesInPercent = 'Пропускаў чытаньня ў %';
+$strBufferWriteWaits = 'Затрымак запісу';
+$strBufferWriteWaitsInPercent = 'Затрымак запісу ў %';
+$strBulgarian = 'Баўгарская';
+$strBusyPages = 'Занятых старонак';
+$strBzip = 'сьціскаць у bzip';
+
+$strCalendar = 'Каляндар';
+$strCanNotLoadExportPlugins = 'Немагчыма загрузіць плагіны экспартаваньня, калі ласка, праверце ўсталяваныя файлы!';
+$strCanNotLoadImportPlugins = 'Немагчыма загрузіць плагіны імпартаваньня, калі ласка, праверце ўсталёўку!';
+$strCannotLogin = 'Немагчыма залагавацца на сэрвэр MySQL';
+$strCantLoad = 'немагчыма загрузіць пашырэньне %s;<br />калі ласка, праверце канфігурацыю PHP';
+$strCantLoadRecodeIconv = 'Немагчыма загрузіць пашырэньне iconv або пашырэньне recode, неабходныя для перакадаваньня сымбаляў. Наладзьце PHP на выкарыстаньне гэтых пашырэньняў або ўвогуле адключыце перакадаваньне сымбаляў у phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Немагчыма перайменаваць індэкс у PRIMARY!';
+$strCantUseRecodeIconv = 'Немагчыма выкарыстаць ні функцыю iconv, ні libiconvr, ні recode_string у той час, як пашырэньне паведамляе, што яно загружанае. Праверце вашую канфігурацыю PHP.';
+$strCardinality = 'Колькасьць элемэнтаў';
+$strCaseInsensitive = 'без уліку рэгістру';
+$strCaseSensitive = 'з улікам рэгістру';
+$strCentralEuropean = 'Цэнтральнаэўрапейская';
+$strChangeCopyModeCopy = '... пакінуць старога.';
+$strChangeCopyModeDeleteAndReload = ' ... выдаліць старога з табліцы карыстальнікаў і пасьля перазагрузіць прывілеі.';
+$strChangeCopyModeJustDelete = ' ... выдаліць старога з табліцы карыстальнікаў.';
+$strChangeCopyMode = 'Стварыць новага карыстальніка з такімі ж прывілеямі і ...';
+$strChangeCopyModeRevoke = ' ... ануляваць усе актыўныя прывілеі старога і пасьля выдаліць яго.';
+$strChangeCopyUser = 'Зьмяніць рэгістрацыйную інфармацыю / Капіяваць карыстальніка';
+$strChange = 'Зьмяніць';
+$strChangeDisplay = 'Выберыце поле для адлюстраваньня';
+$strChangePassword = 'Зьмяніць пароль';
+$strCharset = 'Кадыроўка';
+$strCharsetOfFile = 'Кадыроўка файла:';
+$strCharsetsAndCollations = 'Раскладкі і супастаўленьні';
+$strCharsets = 'Кадыроўкі';
+$strCheckAll = 'Адзначыць усё';
+$strCheckOverhead = 'Адзначыць тыя, што патрабуюць аптымізацыі';
+$strCheckPrivs = 'Праверыць прывілеі';
+$strCheckPrivsLong = 'Праверыць прывілеі для базы &quot;%s&quot;.';
+$strCheckTable = 'Праверыць табліцу';
+$strChoosePage = 'Калі ласка, выберыце старонку для рэдагаваньня';
+$strColComFeat = 'Паказваць камэнтары калёнак';
+$strCollation = 'Супастаўленьне';
+$strColumnNames = 'Назвы калёнак';
+$strColumnPrivileges = 'Спэцыфічныя прывілеі калёнак';
+$strCommand = 'Каманда';
+$strComments = 'Камэнтары';
+$strCompatibleHashing = 'Сумяшчальнае з MySQL&nbsp;4.0';
+$strCompleteInserts = 'Поўная ўстаўка';
+$strCompression = 'Сьціск';
+$strCompressionWillBeDetected = 'Мэтад сьціску імпартаванага файла будзе вызначаная аўтаматычна з: %s';
+$strConfigDefaultFileError = 'Немагчыма загрузіць канфігурацыю па змоўчаньні з: "%1$s"';
+$strConfigFileError = 'phpMyAdmin ня можа прачытаць канфігурацыйны файл!<br />Гэта можа адбыцца ў выпадку, калі PHP знойдзе сынтаксычную памылку ў ім або калі PHP ня можа знайсьці файл.<br />Калі ласка, загрузіце канфігурацыйны файл непасрэдна, выкарыстоўваючы спасылку, прыведзеную ніжэй, і прачытайце паведамленьні PHP пра памылкі. У большасьці выпадкаў, недзе прапушчаны апостраф або кропка з коскай.<br />Калі вы атрымаеце чыстую старонку, значыць, усё добра.';
+$strConfigureTableCoord = 'Калі ласка, сканфігуруйце каардынаты для табліцы %s';
+$strConnectionError = 'Немагчыма падлучыцца: няправільныя налады.';
+$strConnections = 'Падлучэньні';
+$strConstraintsForDumped = 'Абмежаваньні для экспартаваных табліц';
+$strConstraintsForTable = 'Абмежаваньні для табліцы';
+$strCookiesRequired = 'Cookies мусяць быць уключанымі пасьля гэтага месца.';
+$strCopyDatabaseOK = 'База дадзеных %s была скапіяваная ў %s';
+$strCopy = 'Скапіяваць';
+$strCopyTable = 'Скапіяваць табліцу ў (база дадзеных<b>.</b>табліца):';
+$strCopyTableOK = 'Табліца %s была скапіяваная ў %s.';
+$strCopyTableSameNames = 'Немагчыма скапіяваць табліцу ў саму сябе!';
+$strCouldNotKill = 'phpMyAdmin ня можа спыніць працэс %s. Напэўна, ён ужо спынены.';
+$strCreateDatabaseBeforeCopying = 'выканаць CREATE DATABASE перад капіяваньнем';
+$strCreateIndex = 'Стварыць індэкс на&nbsp;%s&nbsp;калёнках';
+$strCreateIndexTopic = 'Стварыць новы індэкс';
+$strCreateNewDatabase = 'Стварыць новую базу дадзеных';
+$strCreateNewTable = 'Стварыць новую табліцу ў БД %s';
+$strCreate = 'Стварыць';
+$strCreatePage = 'Стварыць новую старонку';
+$strCreatePdfFeat = 'Стварэньне PDF-файлаў';
+$strCreateUserDatabase = 'База дадзеных для карыстальніка';
+$strCreateUserDatabaseName = 'Стварыць базу дадзеных з такім самым імем і надзяліць усімі прывілеямі';
+$strCreateUserDatabaseNone = 'Ніякая';
+$strCreateUserDatabaseWildcard = 'Надзяліць усімі прывілеямі базы з іменамі па масцы (імя карыстальніка_%)';
+$strCreationDates = 'Стварэньне/Абнаўленьне/Праверка дат';
+$strCriteria = 'Крытэр';
+$strCroatian = 'Харвацкая';
+$strCSV = 'CSV';
+$strCyrillic = 'Кірылічная';
+$strCzechSlovak = 'Чэхаславацкая';
+$strCzech = 'Чэская';
+
+$strDanish = 'Дацкая';
+$strData = 'Дадзеныя';
+$strDatabase = 'База дадзеных';
+$strDatabaseEmpty = 'Імя базы дадзеных не пазначанае!';
+$strDatabaseExportOptions = 'Налады экспарту базы дадзеных';
+$strDatabaseHasBeenDropped = 'База дадзеных %s была выдаленая.';
+$strDatabases = 'Базы дадзеных';
+$strDatabasesDropped = '%s базаў дадзеных былі пасьпяхова выдаленыя.';
+$strDatabasesStatsDisable = 'Адключыць статыстыку';
+$strDatabasesStatsEnable = 'Уключыць статыстыку';
+$strDatabasesStatsHeavyTraffic = 'Заўвага: Уключэньне статыстыкі базы дадзеных можа выклікаць вялікую колькасьць трафіку паміж вэб-сэрвэрам і сэрвэрам MySQL.';
+$strDatabasesStats = 'Статыстыка базаў дадзеных';
+$strDataDict = 'Слоўнік дадзеных';
+$strDataOnly = 'Толькі дадзеныя';
+$strDataPages = 'Старонак з дадзенымі';
+$strDBComment = 'Камэнтар да базы дадзеных: ';
+$strDBCopy = 'Капіяваць базу дадзеных у';
+$strDbPrivileges = 'Спэцыфічныя прывілеі базы дадзеных';
+$strDBRename = 'Перайменаваць базу дадзеных у';
+$strDbSpecific = 'спэцыфічны для базы дадзеных';
+$strDefaultEngine = '%s зьяўляецца машынай захаваньня дадзеных па змоўчаньні на гэтым MySQL-сэрвэры.';
+$strDefault = 'Па змоўчаньні';
+$strDefaultValueHelp = 'Для значэньняў па змоўчаньні, калі ласка, увядзіце проста значэньне, без выкарыстаньня зваротных слэшаў і двукосься, выкарыстоўваючы фармат: a';
+$strDefragment = 'Дэфрагмэнтаваць табліцу';
+$strDelayedInserts = 'Выкарыстоўваць адкладзеныя ўстаўкі';
+$strDeleteAndFlush = 'Выдаліць карыстальнікаў і пасьля перазагрузіць прывілеі.';
+$strDeleteAndFlushDescr = 'Гэта лепшы спосаб, але перазагрузка прывілеяў можа заняць пэўны час.';
+$strDelete = 'Выдаліць';
+$strDeleted = 'Радок быў выдалены';
+$strDeleteNoUsersSelected = 'На выбраныя карыстальнікі для выдаленьня!';
+$strDeleting = 'Выдаленьне %s';
+$strDelimiter = 'Разьдзяляльнік';
+$strDelOld = 'Бягучая старонка ўтрымлівае спасылкі на табліцы, якія больш не існуюць. Ці жадаеце вы выдаліць гэтыя спасылкі?';
+$strDescending = 'адваротны';
+$strDescription = 'Апісаньне';
+$strDictionary = 'слоўнік';
+$strDirtyPages = 'Брудных старонак';
+$strDisabled = 'Адключана';
+$strDisableForeignChecks = 'Адключыць праверку зьнешніх ключоў';
+$strDisplayFeat = 'Паказваць магчымасьці';
+$strDisplayOrder = 'Парадак прагляду:';
+$strDisplayPDF = 'Паказаць PDF-схему';
+$strDoAQuery = 'Выканаць "запыт згодна прыклада" (сымбаль падстаноўкі: "%")';
+$strDocu = 'Дакумэнтацыя';
+$strDoYouReally = 'Ці сапраўды вы жадаеце ';
+$strDrop = 'Выдаліць';
+$strDropDatabaseStrongWarning = 'Вы зьбіраеце ВЫДАЛІЦЬ базу дадзеных цалкам!';
+$strDropUsersDb = 'Выдаліць базы дадзеных, якія маюць такія ж імёны як і карыстальнікі.';
+$strDumpingData = 'Дамп дадзеных табліцы';
+$strDumpSaved = 'Дамп захаваны ў файл %s.';
+$strDumpXRows = 'Дамп %s радкоў, пачынаючы з %s.';
+$strDynamic = 'дынамічны';
+
+$strEditPDFPages = 'Рэдагаваць PDF-старонкі';
+$strEditPrivileges = 'Рэдагаваць прывілеі';
+$strEdit = 'Рэдагаваць';
+$strEffective = 'Эфэктыўнасьць';
+$strEmpty = 'Ачысьціць';
+$strEmptyResultSet = 'MySQL вярнула пусты вынік (то бок нуль радкоў).';
+$strEnabled = 'Уключана';
+$strEncloseInTransaction = 'Экспартаваць за адну транзакцыю';
+$strEndCut = 'END CUT';
+$strEnd = 'Апошняя старонка';
+$strEndRaw = 'END RAW';
+$strEngineAvailable = '%s даступная на гэтым MySQL-сэрвэры.';
+$strEngineDisabled = '%s была адключаная для рэтага MySQL-сэрвэра.';
+$strEngines = 'Машыны';
+$strEngineUnsupported = 'Гэты сэрвэр MySQL не падтрымлівае машыну захаваньня дадзеных %s.';
+$strEnglish = 'Ангельская';
+$strEnglishPrivileges = ' Заўвага: імёны прывілеяў MySQL задаюцца па-ангельску ';
+$strError = 'Памылка';
+$strErrorInZipFile = 'Памылка ў ZIP-архіве:';
+$strErrorRenamingTable = 'Памылка перайменаваньня табліцы %1$s у %2$s';
+$strEscapeWildcards = 'Сымбалі падстаноўкі _ і % мусяць быць экранаванымі сымбалем \ для іх літаральнага выкарыстаньня';
+$strEsperanto = 'Эспэранта';
+$strEstonian = 'Эстонская';
+$strExcelEdition = 'Вэрсія Excel';
+$strExecuteBookmarked = 'Выканаць запыт з закладак';
+$strExplain = 'Тлумачыць SQL';
+$strExportMustBeFile = 'Дадзеныя выбранага тыпу экспартаваньня мусяць быць зазаванымі ў файл!';
+$strExport = 'Экспарт';
+$strExtendedInserts = 'Пашыраныя ўстаўкі';
+$strExtra = 'Дадаткова';
+
+$strFailedAttempts = 'Няўдалых спробаў';
+$strFieldHasBeenDropped = 'Поле %s было выдаленае';
+$strField = 'Поле';
+$strFieldsEnclosedBy = 'Палі ўзятыя ў';
+$strFieldsEscapedBy = 'Палі экрануюцца';
+$strFields = 'Палі';
+$strFieldsTerminatedBy = 'Палі падзеленыя';
+$strFileAlreadyExists = 'Файл %s ужо існуе на сэрвэры, зьмяніце імя файла або праверце опцыю перазапісу.';
+$strFileCouldNotBeRead = 'Немагчыма прачытаць файл';
+$strFileNameTemplateDescription = 'Гэтае значэньне інтэрпрэтуецца з выкарыстаньнем %1$sstrftime%2$s, таму можна выкарыстоўваць радкі фарматаваньня часу. Апроч гэтага, будуць праведзеныя наступныя зьмены: %3$s. Астатні тэкст застанецца як ёсьць.';
+$strFileNameTemplateDescriptionDatabase = 'імя базы дадзеных';
+$strFileNameTemplateDescriptionServer = 'імя сэрвэра';
+$strFileNameTemplateDescriptionTable = 'імя табліцы';
+$strFileNameTemplate = 'Шаблён назвы файла';
+$strFileNameTemplateRemember = 'запомніць шаблён';
+$strFileToImport = 'Імпартаваць файл';
+$strFixed = 'фіксаваны';
+$strFlushPrivilegesNote = 'Заўвага: phpMyAdmin атрымлівае прывілеі карыстальнікаў наўпростава з табліц прывілеяў MySQL. Зьмесьціва гэтых табліц можа адрозьнівацца ад прывілеяў, якія выкарыстоўвае сэрвэр, калі яны былі зьмененыя ўручную. У гэтым выпадку вам трэба %sперазагрузіць прывілеі%s да таго, як вы працягнеце.';
+$strFlushQueryCache = 'Скінуць кэш запытаў';
+$strFlushTable = 'Скінуць кэш табліцы ("FLUSH")';
+$strFlushTables = 'Скінуць (закрыць) усе табліцы';
+$strFontSize = 'Памер шрыфта';
+$strFormat = 'Фармат';
+$strFormEmpty = 'Не зададзенае значэньне ў форме!';
+$strFreePages = 'Вольных старонак';
+$strFullText = 'Поўныя тэксты';
+$strFunction = 'Функцыя';
+$strFunctions = 'Функцыі';
+
+$strGenBy = 'Створаны';
+$strGeneralRelationFeat = 'Магчымасьці асноўных сувязяў';
+$strGenerate = 'Згенэраваць';
+$strGeneratePassword = 'Згенэраваць пароль';
+$strGenTime = 'Час стварэньня';
+$strGeorgian = 'Грузінская';
+$strGerman = 'Нямецкая';
+$strGlobal = 'глябальны';
+$strGlobalPrivileges = 'Глябальныя прывілеі';
+$strGlobalValue = 'Глябальнае значэньне';
+$strGo = 'Панеслася';
+$strGrantOption = 'Grant';
+$strGreek = 'Грэцкая';
+$strGzip = 'архіваваны ў gzip';
+
+$strHandler = 'Апрацоўнік';
+$strHasBeenAltered = 'была зьмененая.';
+$strHaveToShow = 'Вам неабходна выбраць прынамсі адну калёнку для адлюстраваньня';
+$strHebrew = 'Габрэйская';
+$strHome = 'Да пачатку';
+$strHomepageOfficial = 'Афіцыйная старонка phpMyAdmin';
+$strHostEmpty = 'Пустое імя хосту!';
+$strHost = 'Хост';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Вугорская';
+
+$strIcelandic = 'Ісьляндзкая';
+$strId = 'ID';
+$strIdxFulltext = 'Поўнатэкстэкставае';
+$strIgnore = 'Ігнараваць';
+$strIgnoreDuplicates = 'Ігнараваць радкі, якія паўтараюцца';
+$strIgnoreInserts = 'Выкарыстоўваць устаўкі ігнараваньняў';
+$strImport = 'Імрарт';
+$strImportFiles = 'Імпартаваць файлы';
+$strImportFormat = 'Фармат імпартаванага файла';
+$strImportSuccessfullyFinished = 'Імпартраваньне пасьпяхова завершанае, выканана %d запытаў.';
+$strIndex = 'Індэкс';
+$strIndexes = 'Індэксы';
+$strIndexHasBeenDropped = 'Індэкс %s быў выдалены';
+$strIndexName = 'Імя індэкса:';
+$strIndexType = 'Тып індэкса:';
+$strIndexWarningTable = 'Праблемы з індэксамі для табліцы `%s`';
+$strInnoDBAutoextendIncrement = 'Аўтапашыральнае прырашчэньне';
+$strInnoDBAutoextendIncrementDesc = ' Памер прырашчэньня для пашырэньня памеру прасторы аўтапашыральнай табліцы, калі яна запоўніцца.';
+$strInnoDBBufferPoolSizeDesc = 'Памер буфэру ў памяці, які InnoDB выкарыстоўвае для кэшаваньня дадзеных і індэксаў табліц.';
+$strInnoDBBufferPoolSize = 'Памер пулу буфэру';
+$strInnoDBDataFilePath = 'Файлы дадзеных';
+$strInnoDBDataHomeDirDesc = 'Агульная частка шляху тэчкі да ўсіх файлаў дадзеных InnoDB.';
+$strInnoDBDataHomeDir = 'Хатняя тэчка дадзеных';
+$strInnoDBPages = 'старонак';
+$strInnodbStat = 'Стан InnoDB';
+$strInsecureMySQL = 'Ваш канфігурацыйны файл утрымлівае налады (карыстальнік root без паролю), якія адпавядаюць прывілеяванаму карыстальніку MySQL па змоўчаньні. Ваш сэрвэр MySQL працуе з гэтай наладай па змоўчаньні і зьяўляецца адкрытым для зьнешняга ўрываньня, і таму вам абавязкова трэба выправіць гэтую хібу ў бясьпецы.';
+$strInsertAsNewRow = 'Уставіць як новы радок';
+$strInsert = 'Уставіць';
+$strInternalRelations = 'Унутраныя сувязі';
+$strInUse = 'выкарыстоўваецца';
+$strInvalidAuthMethod = 'У канфігурацыі вызначаны некарэктны мэтад аўтэнтыфікацыі:';
+$strInvalidColumn = 'Вызначаная некарэктная калёнка (%s)!';
+$strInvalidColumnCount = 'Колькасьць калёнак мусіць быць большай за нуль.';
+$strInvalidCSVFieldCount = 'Няправільная колькасьць палёў у CSV-дадзеных у радку %d.';
+$strInvalidCSVFormat = 'Некарэктны фармат CSV-дадзеных у радку %d.';
+$strInvalidCSVParameter = 'Недапушчальны парэмэтар для імпарту дадзеных у CSV: %s';
+$strInvalidDatabase = 'Няправільная база дадзеных';
+$strInvalidFieldAddCount = 'Трэба дадаць прынамсі адно поле.';
+$strInvalidFieldCount = 'Табліца мусіць мець прынамсі адно поле.';
+$strInvalidLDIImport = 'Гэты плагін не падтрымлівае сьціснутыя дадзеныя!';
+$strInvalidRowNumber = '%d не зьяўляецца карэктным нумарам радка.';
+$strInvalidServerHostname = 'Няправільнае імя хосту для сэрвэра %1$s. Калі ласка, праверце канфігурыцыю.';
+$strInvalidServerIndex = 'Некарэктны індэкс сэрвэра: "%s"';
+$strInvalidTableName = 'Некарэктнае імя табліцы';
+
+$strJapanese = 'Японская';
+$strJoins = 'Аб\'яднаньні';
+$strJumpToDB = 'Перайсьці да базы дадзеных &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Выдаленыя&quot; карыстальнікі ўсё яшчэ змогуць атрымаць доступ да сэрвэра як звычайна, пакуль прывілеі ня будуць перазагружаныя.';
+$strJustDelete = 'Проста выдаліць карыстальнікаў з табліц прывілеяў.';
+
+$strKeepPass = 'Не зьмяняць пароль';
+$strKeyCache = 'Кэш ключоў';
+$strKeyname = 'Імя ключа';
+$strKill = 'Спыніць';
+$strKorean = 'Карэйская';
+
+$strLandscape = 'Краявід';
+$strLanguage = 'Мова';
+$strLanguageUnknown = 'Невядомая мова: %1$s.';
+$strLatchedPages = 'Фіксаваныя старонкі';
+$strLatexCaption = 'Загаловак табліцы';
+$strLatexContent = 'Зьмесьціва табліцы __TABLE__';
+$strLatexContinuedCaption = 'Працягнуты загаловак табліцы';
+$strLatexContinued = '(працяг)';
+$strLatexIncludeCaption = 'Уключыць загаловак табліцы';
+$strLatexLabel = 'Ключ меткі';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Структура табліцы __TABLE__';
+$strLatvian = 'Латвійская';
+$strLDI = 'CSV з выкарыстаньнем LOAD DATA';
+$strLDILocal = 'Выкарыстоўваць ключавое слова LOCAL';
+$strLengthSet = 'Даўжыня/Значэньні*';
+$strLimitNumRows = 'Колькасьць радкоў на старонку';
+$strLinesTerminatedBy = 'Радкі падзеленыя';
+$strLinkNotFound = 'Сувязь ня знойдзеная';
+$strLinksTo = 'Зьвязаная з';
+$strLithuanian = 'Літоўская';
+$strLocalhost = 'Лякальны';
+$strLocationTextfile = 'Месцазнаходжаньне тэкставага файла';
+$strLoginInformation = 'Інфармацыя пра ўваход';
+$strLogin = 'Уваход у сыстэму';
+$strLogout = 'Выйсьці з сыстэмы';
+$strLogPassword = 'Пароль:';
+$strLogServer = 'Сэрвэр';
+$strLogUsername = 'Імя карыстальніка:';
+$strLongOperation = 'Гэтая апэрацыя можа заняць шмат часу. Працягваць?';
+
+$strMaxConnects = 'максымум адначасовых злучэньняў';
+$strMaximalQueryLength = 'Максымальная даўжыня створанага запыту';
+$strMaximumSize = 'Максымальны памер: %s%s';
+$strMbExtensionMissing = 'Пашырэньне PHP mbstring ня знойдзенае, а вы, здаецца, выкарыстоўваеце шматбайтавую кадыроўку. Без пашырэньня mbstring phpMyAdmin ня можа падзяляць радкі карэктна, і гэта можа прывесьці да нечаканых вынікаў.';
+$strMbOverloadWarning = 'Вы ўключылі mbstring.func_overload у вашым канфігурацыйным файле PHP. Гэтая опцыя несумяшчальная з phpMyAdmin і можа выклікаць пашкоджаньне дадзеных!';
+$strMIME_available_mime = 'Даступныя MIME-тыпы';
+$strMIME_available_transform = 'Даступныя пераўтварэньні';
+$strMIME_description = 'Апісаньне';
+$strMIME_MIMEtype = 'MIME-тып';
+$strMIME_nodescription = 'Няма даступных апісаньняў для гэтага пераўтварэньня.<br />Калі ласка, спытайце аўтара, што робіць %s.';
+$strMIME_transformation = 'Пераўтварэньне MIME-тыпу браўзэрам';
+$strMIME_transformation_note = 'Для атрыманьня сьпісу даступных опцыяў трансфармацыі і пераўтварэньняў іхных MIME-тыпаў, націсьніце на %sапісаньні пераўтварэньняў%s';
+$strMIME_transformation_options = 'Опцыі пераўтварэньня';
+$strMIME_transformation_options_note = 'Калі ласка, уводзьце значэньні опцыяў пераўтварэньня выкарыстоўваючы гэты фармат: \'a\', 100, b,\'c\'...<br />Калі вам трэба ўжыць зваротны слэш ("\") або апостраф ("\'") у гэтых значэньнях, устаўце зваротны слэш перад імі (напрыклад, \'\\\\xyz\' або \'a\\\'b\').';
+$strMIMETypesForTable = 'MIME-тыпы табліцы';
+$strMIME_without = 'MIME-тыпы, вылучаныя курсівам, ня маюць асобнай функцыі пераўтварэньня';
+$strModifications = 'Мадыфікацыі былі захаваныя';
+$strModify = 'Зьмяніць';
+$strModifyIndexTopic = 'Зьмяніць індэкс';
+$strMoveTable = 'Перанесьці табліцу ў (база дадзеных<b>.</b>табліца):';
+$strMoveTableOK = 'Табліца %s была перанесеная ў %s.';
+$strMoveTableSameNames = 'Немагчыма перанесьці табліцу ў саму сябе!';
+$strMultilingual = 'шматмоўная';
+$strMyISAMDataPointerSizeDesc = 'Значэньне па змоўчаньні памеру ўказальніка ў байтах, для выкарыстаньня ў CREATE TABLE для табліц MyISAM, калі ня вызначаная опцыя MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Памер указальніка на дадзеныя';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Калі памер часовага файла, які выкарыстоўваецца для хуткага стварэньня індэксу MyISAM, будзе большы, чым выкарыстаньне для кэшу ключоў памеру, пазначанага тут, выберыце мэтад кэшаваньня ключоў.';
+$strMyISAMMaxExtraSortFileSize = 'Максымальны памер часовых файлаў для стварэньня індэксу';
+$strMyISAMMaxSortFileSizeDesc = 'Максымальны памер часовага файла MySQL, які дазволена выкарыстоўваць для перастварэньня індэксу MyISAM (падчас REPAIR TABLE, ALTER TABLE, або LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Максымальны памер для часовых файлаў сартаваньня';
+$strMyISAMRecoverOptionsDesc = 'Рэжым для аўтаматычнага ўзнаўленьня пашкоджаных табліц MyISAM, як вызначаны праз опцыю --myisam-recover загрузкі сэрвэра.';
+$strMyISAMRecoverOptions = 'Рэжым аўтаматычнага ўзнаўленьня';
+$strMyISAMRepairThreadsDesc = 'Калі гэтае значэньне большае за 1, індэксы табліц MyISAM будуць стварацца паралельна (кожны індэкс у сваім уласным патоку) падчас узнаўленьня працэсам сартаваньня.';
+$strMyISAMRepairThreads = 'Патокаў узнаўленьня';
+$strMyISAMSortBufferSizeDesc = 'Буфэр, які выдзяляецца для сартаваньня індэксаў MyISAM падчас REPAIR TABLE або падчас стварэньня індэксаў, выкарыстоўваючы CREATE INDEX ці ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Памер буфэру сартаваньня';
+$strMySQLCharset = 'Кадыроўка MySQL';
+$strMysqlClientVersion = 'Вэрсія кліента MySQL';
+$strMySQLConnectionCollation = 'Супастаўленьне падлучэньня да MySQL';
+$strMySQLSaid = 'Адказ MySQL: ';
+$strMySQLShowProcess = 'Паказаць працэсы';
+
+$strName = 'Назва';
+$strNext = 'Наступная старонка';
+$strNoActivity = 'Не было аніякай актыўнасьці на працягу %s сэкундаў. Калі ласка, увайдзіце зноў';
+$strNoDatabases = 'Базы дадзеных адсутнічаюць';
+$strNoDatabasesSelected = 'Ня выбраная база дадзеных.';
+$strNoDataReceived = 'Дадзеныя для імпартаваньня не атрыманыя. Альбо ніводны файл ня быў загружаны, альбо памер файла перавысіў максымальны памер, вызначаны канфігурацыяй PHP. Гл. FAQ 1.16.';
+$strNoDescription = 'няма апісаньня';
+$strNoDetailsForEngine = 'Для гэтай машыны захаваньня дадзеных дэтальная інфармацыя не даступная.';
+$strNoDropDatabases = 'Каманды "DROP DATABASE" адключаныя.';
+$strNoExplain = 'Не тлумачыць SQL';
+$strNoFilesFoundInZip = 'Файлы ў ZIP-архіве ня знойдзеныя!';
+$strNoFrames = 'Для работы phpMyAdmin патрэбны браўзэр з падтрымкай <b>фрэймаў</b>.';
+$strNo = 'Не';
+$strNoIndex = 'Індэкс ня вызначаны!';
+$strNoIndexPartsDefined = 'Часткі індэксу ня вызначаныя!';
+$strNoModification = 'Няма зьменаў';
+$strNone = 'Няма';
+$strNoOptions = 'Гэты фармат ня мае опцыяў';
+$strNoPassword = 'Без пароля';
+$strNoPermission = 'Вэб-сэрвэр ня мае дазволу для захаваньня ў файл %s.';
+$strNoPhp = 'Без PHP-коду';
+$strNoPrivileges = 'Без прывілеяў';
+$strNoRights = 'Вы ня маеце дастатковых прывілеяў быць у гэтым месцы ў гэты час!';
+$strNoRowsSelected = 'Ніводны радок ня выбраны';
+$strNoSpace = 'Недастаткова месца для захаваньня ў файл %s.';
+$strNoTablesFound = 'У базе дадзеных табліц ня выяўлена.';
+$strNoThemeSupport = 'Тэмы не падтрымліваюцца; калі ласка, праверце вашую канфігурацыю і/або вашыя тэмы ў тэчцы %s.';
+$strNotNumber = 'Гэта ня лік!';
+$strNotOK = 'не OK';
+$strNotSet = 'Табліца <b>%s</b> ня знойдзеная або ня вызначаная ў %s';
+$strNoUsersFound = 'Не знойдзены карыстальнік.';
+$strNoValidateSQL = 'Не правяраць SQL';
+$strNull = 'Нуль';
+$strNumberOfFields = 'Колькасьць палёў';
+$strNumSearchResultsInTable = '%s супадзеньняў у табліцы <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Агулам:</b> <i>%s</i> супадзеньняў';
+$strNumTables = 'Табліц';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Спэцыфікацыя Open Document';
+$strOpenDocumentText = 'Тэкст Open Document';
+$strOpenNewWindow = 'Адкрыць новае акно phpMyAdmin';
+$strOperations = 'Апэрацыі';
+$strOperator = 'Апэратар';
+$strOptimizeTable = 'Аптымізаваць табліцу';
+$strOr = 'Або';
+$strOverhead = 'Выкарыстаньне рэсурсаў';
+$strOverwriteExisting = 'Перазапісваць існуючы(я) файл(ы)';
+
+$strPageNumber = 'Старонка:';
+$strPagesToBeFlushed = 'Скінуць кэш старонак';
+$strPaperSize = 'Памер паперы';
+$strPartialImport = 'Частковы імпарт';
+$strPartialText = 'Частковыя тэксты';
+$strPasswordChanged = 'Пароль для %s пасьпяхова зьменены.';
+$strPasswordEmpty = 'Пусты пароль!';
+$strPasswordHashing = 'Хэшаваньне паролю';
+$strPassword = 'Пароль';
+$strPasswordNotSame = 'Паролі не супадаюць!';
+$strPdfDbSchema = 'Структура базы "%s" — старонка %s';
+$strPdfInvalidTblName = 'Табліцы "%s" не існуе!';
+$strPdfNoTables = 'Няма табліц';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Генэруе справаздачу з дадзенымі асобнай табліцы)';
+$strPDFReportTitle = 'Загаловак справаздачы';
+$strPerHour = 'у гадзіну';
+$strPerMinute = 'у хвіліну';
+$strPerSecond = 'у сэкунду';
+$strPersian = 'Пэрсыдзкая';
+$strPhoneBook = 'тэлефонная кніга';
+$strPhp = 'Стварыць PHP-код';
+$strPHPVersion = 'Вэрсія PHP';
+$strPmaDocumentation = 'Дакумэнтацыя па phpMyAdmin';
+$strPmaUriError = 'Дырэктыва <tt>$cfg[\'PmaAbsoluteUri\']</tt> ПАВІННА быць вызначаная ў вашым канфігурацыйным файле!';
+$strPolish = 'Польская';
+$strPortrait = 'Партрэт';
+$strPos1 = 'Першая старонка';
+$strPrevious = 'Папярэдняя старонка';
+$strPrimary = 'Першасны';
+$strPrimaryKeyHasBeenDropped = 'Першасны ключ быў выдалены';
+$strPrimaryKeyName = 'Імя першаснага ключа мусіць быць PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>мусіць</b> быць імем першаснага ключа і <b>толькі</b> яго!)';
+$strPrint = 'Друк';
+$strPrintView = 'Вэрсія для друку';
+$strPrintViewFull = 'Вэрсія для друку (з усім тэкстам)';
+$strPrivDescAllPrivileges = 'Уключае ўсе прывілеі, апроч GRANT.';
+$strPrivDescAlter = 'Дазваляе зьмяняць структуру існых табліц.';
+$strPrivDescAlterRoutine = 'Дазваляе зьмяняць і выдаляць праграмы, якія захоўваюцца.';
+$strPrivDescCreateDb = 'Дазваляе ствараць новыя базы дадзеных і табліцы.';
+$strPrivDescCreateRoutine = 'Дазваляе ствараць праграмы, якія захоўваюцца.';
+$strPrivDescCreateTbl = 'Дазваляе ствараць новыя табліцы.';
+$strPrivDescCreateTmpTable = 'Дазваляе ствараць часовыя табліцы.';
+$strPrivDescCreateUser = 'Дазваляе ствараць, выдаляць і пераймяноўваць уліковыя запісы карыстальнікаў';
+$strPrivDescCreateView = 'Дазваляе ствараць новыя прагляды.';
+$strPrivDescDelete = 'Дазваляе выдаляць дадзеныя.';
+$strPrivDescDropDb = 'Дазваляе выдаляць базы дадзеных і табліцы.';
+$strPrivDescDropTbl = 'Дазваляе выдаляць табліцы.';
+$strPrivDescExecute5 = 'Дазваляе выкананьне праграмаў, якія захоўваюцца.';
+$strPrivDescExecute = 'Дазваляе выкананьне захаваных працэдур; Не працуе ў гэтай вэрсіі MySQL.';
+$strPrivDescFile = 'Дазваляе імпартаваць дадзеныя з файлаў і экспартаваць дадзеныя ў файлы.';
+$strPrivDescGrant = 'Дазваляе дадаваць карыстальнікаў і прывілеі без перазагрузкі табліц прывілеяў.';
+$strPrivDescIndex = 'Дазваляе ствараць і выдаляць індэксы.';
+$strPrivDescInsert = 'Дазваляе ўстаўляць і замяняць дадзеныя.';
+$strPrivDescLockTables = 'Дазваляе блякаваць табліцы для бягучага патоку.';
+$strPrivDescMaxConnections = 'Абмяжоўвае колькасьць новых злучэньняў, якія карыстальнік можа адкрыць на працягу гадзіны.';
+$strPrivDescMaxQuestions = 'Абмяжоўвае колькасьць запытаў, якія карыстальнік можа адправіць на сэрвэр на працягу гадзіны.';
+$strPrivDescMaxUpdates = 'Абмяжоўвае колькасьць камандаў, зьмяняючых любую табліцу або базу дадзеных, якія карыстальнік можа выканаць на працягу гадзіны.';
+$strPrivDescMaxUserConnections = 'Абмяжоўвае колькасьць адначасовых злучэньняў, якія можа мець карыстальнік.';
+$strPrivDescReferences = 'Не працуе ў гэтай вэрсіі MySQL.';
+$strPrivDescReload = 'Дазваляе перазагружаць налады сэрвэра і ачышчаць кэш сэрвэра.';
+$strPrivDescReplClient = 'Дазваляе карыстальніку пытацца, дзе знаходзяцца slaves / masters.';
+$strPrivDescReplSlave = 'Неабходна для рэплікацыі slaves.';
+$strPrivDescSelect = 'Дазваляе чытаць дадзеныя.';
+$strPrivDescShowDb = 'Дае доступ да поўнага сьпісу базаў дадзеных.';
+$strPrivDescShowView = 'Дазваляе выкананьне запытаў SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Дазваляе спыняць сэрвэр.';
+$strPrivDescSuper = 'Дазваляе падлучэньне, нават калі дасягнуты максымальны лік падлучэньняў; Патрабуецца для большасьці адміністратыўных апэрацыяў, такіх як вызначэньне глябальных зьменных або спыненьне патокаў іншых карыстальнікаў.';
+$strPrivDescUpdate = 'Дазваляе зьмяняць дадзеныя.';
+$strPrivDescUsage = 'Без прывілеяў.';
+$strPrivileges = 'Прывілеі';
+$strPrivilegesReloaded = 'Прывілеі былі пасьпяхова перазагружаныя.';
+$strProcedures = 'Працэдуры';
+$strProcesses = 'Працэсы';
+$strProcesslist = 'Сьпіс працэсаў';
+$strProtocolVersion = 'Вэрсія пратаколу';
+$strPutColNames = 'Пазначыць назвы палёў у першым радку';
+
+$strQBE = 'Запыт згодна прыкладу';
+$strQBEDel = 'Выдаліць';
+$strQBEIns = 'Уставіць';
+$strQueryCache = 'Кэш запытаў';
+$strQueryFrame = 'Акно запыту';
+$strQueryOnDb = 'SQL-запыт да БД <b>%s</b>:';
+$strQueryResultsOperations = 'Дзеяньні з вынікамі запытаў';
+$strQuerySQLHistory = 'Гісторыя SQL';
+$strQueryStatistics = '<b>Статыстыка запытаў</b>: З моманту запуску %s запытаў было адпраўлена на сэрвэр.';
+$strQueryTime = 'Запыт выконваўся %01.4f сэк';
+$strQueryType = 'Тып запыту';
+$strQueryWindowLock = 'Не перазапісвайце гэты запыт у іншых вокнах';
+
+$strReadRequests = 'Запыты чытаньня';
+$strReceived = 'Атрымана';
+$strRecords = 'Запісы';
+$strReferentialIntegrity = 'Праверыць цэласнасьць дадзеных:';
+$strRefresh = 'Абнавіць';
+$strRelationalSchema = 'Рэляцыйная схема';
+$strRelationNotWorking = 'Дадатковыя магчымасьці работы з зьвязанымі табліцамі былі адключаныя. Каб высьветліць чаму, націсьніце %sтут%s.';
+$strRelationsForTable = 'Сувязі ў табліцы';
+$strRelations = 'Сувязі';
+$strRelationView = 'Прагляд залежнасьцяў';
+$strReloadingThePrivileges = 'Перазагрузіць прывілеі';
+$strReloadPrivileges = 'Перазагрузіць прывілеі';
+$strRemoveSelectedUsers = 'Выдаліць выбраных карыстальнікаў';
+$strRenameDatabaseOK = 'База дадзеных %s была перайменаваная ў %s';
+$strRenameTable = 'Перайменаваць табліцу ў';
+$strRenameTableOK = 'Табліца %s была перайменаваная ў %s';
+$strRepairTable = 'Рамантаваць табліцу';
+$strReplaceNULLBy = 'Замяняць NULL на';
+$strReplaceTable = 'Замяніць дадзеныя табліцы дадзенымі з файла';
+$strReplication = 'Рэплікацыя';
+$strReset = 'Скінуць';
+$strResourceLimits = 'Абмежаваньні рэсурсаў';
+$strReType = 'Пацьверджаньне';
+$strRevoke = 'Ануляваць';
+$strRevokeAndDelete = 'Ануляваць усе актыўныя прывілеі карыстальнікаў і пасьля выдаліць іх.';
+$strRevokeAndDeleteDescr = 'Карыстальнікі ўсё яшчэ будуць мець прывілеі карыстаньня (USAGE), пакуль прывілеі ня будуць перазагружаныя.';
+$strRevokeMessage = 'Вы анулявалі прывілеі для %s';
+$strRomanian = 'Румынская';
+$strRowLength = 'Даўжыня радка';
+$strRows = 'Радкі';
+$strRowsFrom = 'радкоў, пачынаючы з запісу #';
+$strRowSize = ' Памер радка ';
+$strRowsModeFlippedHorizontal = 'гарызантальна (павернутыя загалоўкі)';
+$strRowsModeHorizontal = 'гарызантальна';
+$strRowsModeOptions = 'у рэжыме %s і паўтараць загалоўкі праз кожныя %s радкоў';
+$strRowsModeVertical = 'вэртыкальна';
+$strRowsStatistic = 'Статыстыка радку';
+$strRunning = 'на %s';
+$strRunQuery = 'Выканаць запыт';
+$strRunSQLQuery = 'Выканаць SQL-запыт(ы) на базе дадзеных %s';
+$strRunSQLQueryOnServer = 'Выканаць SQL-запыт(ы) на сэрвэры %s';
+$strRussian = 'Расейская';
+
+$strSave = 'Захаваць';
+$strSaveOnServer = 'Захаваць на сэрвэры ў тэчцы %s';
+$strScaleFactorSmall = 'Маштаб замалы для таго, каб схема займала ўсю старонку';
+$strSearchFormTitle = 'Пошук у базе дадзеных';
+$strSearch = 'Пошук';
+$strSearchInTables = 'У табліцы(ах):';
+$strSearchNeedle = 'Слова(ы) або значэньне(і) для пошуку (маска: "%"):';
+$strSearchOption1 = 'прынамсі адно з словаў';
+$strSearchOption2 = 'усе словы';
+$strSearchOption3 = 'дакладную фразу';
+$strSearchOption4 = 'рэгулярны выраз';
+$strSearchResultsFor = 'Вынікі пошуку "<i>%s</i>" %s:';
+$strSearchType = 'Знайсьці:';
+$strSecretRequired = 'Канфігурацыйнаму файлу зараз патрэбная сакрэтная фраза (blowfish_secret).';
+$strSelectADb = 'Калі ласка, выберыце базу дадзеных';
+$strSelectAll = 'Выбраць усё';
+$strSelectBinaryLog = 'Вылучыце двайковы лог для прагляду';
+$strSelectFields = 'Выбраць палі (прынамсі адно):';
+$strSelectNumRows = 'па запыту';
+$strSelectTables = 'Выберыце табліцу(ы)';
+$strSend = 'Захаваць як файл';
+$strSent = 'Адпраўлена';
+$strServerChoice = 'Выбар сэрвэра';
+$strServerNotResponding = 'Сэрвэр не адказвае';
+$strServer = 'Сэрвэр';
+$strServers = 'Сэрвэры';
+$strServerStatus = 'Бягучая інфармацыя';
+$strServerStatusDelayedInserts = 'Адкладзеныя ўстаўкі';
+$strServerStatusUptime = 'Гэты сэрвэр MySQL працуе %s. Ён быў запушчаны %s.';
+$strServerTabVariables = 'Зьменныя';
+$strServerTrafficNotes = '<b>Трафік сэрвэра</b>: Гэтыя табліцы паказваюць статыстыку сеткавага трафіку гэтага сэрвэра MySQL ад моманту ягонага запуску.';
+$strServerVars = 'Налады і зьменныя сэрвэра';
+$strServerVersion = 'Вэрсія сэрвэра';
+$strSessionValue = 'Значэньне сэсіі';
+$strSetEnumVal = 'Калі тып поля "enum" або "set", калі ласка, уводзьце значэньні выкарыстоўваючы гэты фармат: \'a\',\'b\',\'c\'...<br />Калі вам патрэбна ўжыць зваротны слэш ("\") або апостраф ("\'") сярод гэтых значэньняў, пастаўце перад імі зваротны слэш (напрыклад, \'\\\\xyz\' або \'a\\\'b\').';
+$strShowAll = 'Паказаць усе';
+$strShowColor = 'Паказаць колер';
+$strShowDatadictAs = 'Фармат слоўніка дадзеных';
+$strShowFullQueries = 'Паказаць поўныя запыты';
+$strShowGrid = 'Паказаць сетку';
+$strShow = 'Паказаць';
+$strShowingBookmark = 'Паказваючы закладку';
+$strShowingRecords = 'Паказаныя запісы';
+$strShowOpenTables = 'Паказаць адкрытыя табліцы';
+$strShowPHPInfo = 'Паказаць інфармацыю пра PHP';
+$strShowSlaveHosts = 'Паказаць залежныя сэрвэры';
+$strShowSlaveStatus = 'Паказаць стан залежных сэрвэраў';
+$strShowStatusBinlog_cache_disk_useDescr = 'Колькасьць транзакцыяў, якія выкарыстоўвалі часовы двайковы кэш запытаў, але якія перавысілі значэньне binlog_cache_size і выкарыстоўвалі часовы файл для захоўваньня выразаў транзакцыі.';
+$strShowStatusBinlog_cache_useDescr = 'Колькасьць транзакцыяў, якія выкарыстоўвалі часовы двайковы кэш запытаў.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Колькасьць часовых табліц на дыску, створаных аўтаматычна сэрвэрам падчас выкананьня выразаў. Калі лік Created_tmp_disk_tables вялікі, вы можаце павялічыць значэньне tmp_table_size, каб часовыя табліцы захоўваліся ў памяці, а не на дыску.';
+$strShowStatusCreated_tmp_filesDescr = 'Колькасьць часовых файлаў, створаных mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'Колькасьць часовых табліц, разьмешчаных у памяці, якія былі аўтаматычна створаныя сэрвэрам падчас выкананьня выразаў.';
+$strShowStatusDelayed_errorsDescr = 'Колькасьць радкоў, запісаных з INSERT DELAYED, з-за якіх адбыліся пэўныя памылкі (пэўна, дубляваныя ключы).';
+$strShowStatusDelayed_insert_threadsDescr = 'Колькасьць апрацоўнікаў патокаў INSERT DELAYED, якія выкарыстоўваюцца. Кожная табліца, на якой выконваецца INSERT DELAYED атрымлівае свой уласны паток.';
+$strShowStatusDelayed_writesDescr = 'Колькасьць запісаных INSERT DELAYED радкоў.';
+$strShowStatusFlush_commandsDescr = 'Колькасьць выкананых FLUSH-выразаў.';
+$strShowStatusHandler_commitDescr = 'Колькасьць унутраных COMMIT-выразаў.';
+$strShowStatusHandler_deleteDescr = 'Колькасьць разоў выдаленьня радка з табліцы.';
+$strShowStatusHandler_discoverDescr = 'Сэрвэр MySQL можа запытацца машыну захаваньня дадзеных NDB Cluster, ці ведае яна табліцу з дадзеным імем. Гэта называецца высьвятленьнем. Handler_discover паказвае колькасьць высьвятленьняў табліц.';
+$strShowStatusHandler_read_firstDescr = 'Колькасьць разоў першы запіс быў прачытаны з індэксу. Калі гэтае значэньне вялікае, сэрвэру рэкамэндуецца рабіць вялікую колькасьць паўнаіндэксавых сканаваньняў; напрыклад, SELECT col1 FROM foo, улічваючы, што col1 індэксаваная.';
+$strShowStatusHandler_read_keyDescr = 'Колькасьць запытаў на чытаньне радка з выкарыстаньнем ключа. Калі яна вялікая, гэта добрая прыкмета таго, што запыты і табліцы добра індэксаваныя.';
+$strShowStatusHandler_read_nextDescr = 'Колькасьць запытаў чытаньня наступны радок у ключавым парадку. Яна павялічваецца, калі выконваецца запыт на індэксаваную калёнку з шэрагам абмежаваньняў або калі адбываецца сканаваньне індэксаў.';
+$strShowStatusHandler_read_prevDescr = 'Колькасьць запытаў чытаньня папярэдні радок у ключавым парадку. Гэты мэтад чытаньня выкарыстоўваецца пераважна для аптымізацыі ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Колькасьць запытаў чытаньня радка фіксаванай пазыцыі. Яна вялікая, калі выконваецца шмат запытаў, якія патрабуюць сартаваньне вынікаў. Магчыма, прысутнічае шмат запытаў, якія патрабуюць ад MySQL перагляд табліцы цалкам або выконваюцца аб\'яднаньні, якія няправільна выкарыстоўваюць ключы.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Колькасьць запытаў чытаньня наступнага радка ў файле дадзеных. Яна вялікая, калі выконваецца шмат праглядаў табліцы. У агульным выпадку гэта азначае, што табліцы індэксаваныя няправільна або запыты не напісаныя так, каб выкарыстоўваць перавагі індэксаў.';
+$strShowStatusHandler_rollbackDescr = 'Колькасьць унутраных выразаў ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'Колькасьць запытаў абнаўленьня радка ў табліцы.';
+$strShowStatusHandler_writeDescr = 'Колькасьць запытаў устаўкі радка ў табліцу.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Колькасьць старонак, якія ўтрымліваюць дадзеныя (зьмененых або нязьмененых).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Колькасьць зьмененых старонак.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Колькасьць старонак буфэрнага пулу, на якія быў атрыманы запыт на скід.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Колькасьць вольных старонак.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Колькасьць старонак, якія ўтрымліваюцца ў буфэрным пуле InnoDB. Гэта старонкі, якія ў бягучы момант чытаюцца ці запісваюцца або якія ня могуць быць скінутыя ці выдаленыя з-за пэўнай прычыны.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Колькасьць занятых старонак таму, што яны былі вызначаныя як адміністрыцыйныя дадзеныя такія, як блякаваньне радкоў або адаптыўны хэшаваны індэкс. Гэтае значэньне таксама можа быць вылічанае як Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Агульны памер буфэрнага пулу, у старонках.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Колькасьць «выпадковых» папярэдніх чытаньняў, зробленых InnoDB. Гэта адбываецца, калі запыт праглядае значную частку табліцы, але ў выпадковым парадку.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Колькасьць пасьлядоўных папярэдніх чытаньняў, зробленых InnoDB. Гэта адбываецца, калі InnoDB выконвае пасьлядоўны поўны прагляд табліцы.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Колькасьць лягічных запытаў чытаньня, зробленых InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Колькасьць лягічных чытаньняў, якія InnoDB не змагла аднавіць з буфэрнага пулу, а таму зрабіла аднастаронкавае чытаньне.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Звычайна, запісы ў буфэрны пул InnoDB, зробленыя ў фоне. Аднак, калі неабходна прачытаць або стварыьць старонку і чыстыя старонкі адсутнічаюць, неабхочна пачакаць, пакуль пэўныя старонкі ня будуць скінутыя. Гэты кампутар падлічвае колькасьць такіх чаканьняў. Калі памер буфэру быў вызначаны правільна, гэтае значэньне мусіць быць маленькім.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Колькасьць запісаў, зробленых у буфэрны пул InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Колькасьць апэрацыяў fsync() на бягучы момант.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Бягучая колькасьць апэрацыяў fsync(), якія чакаюць выкананьня.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Бягучая колькасьць чытаньняў, якія чакаюць выкананьня.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Бягучая колькасьць запісаў, якія чакаюць выкананьня.';
+$strShowStatusInnodb_data_readDescr = 'Колькасьць прачытаных на бягучы момант дадзеных, у байтах.';
+$strShowStatusInnodb_data_readsDescr = 'Агульная колькасьць чытаньняў дадзеных.';
+$strShowStatusInnodb_data_writesDescr = 'Агульная колькасьць запісаў дадзеных.';
+$strShowStatusInnodb_data_writtenDescr = 'Колькасьць запісаных на бягучы момант дадзеных, у байтах.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Колькасьць падвойных запісаў, якія былі выкананыя, і колькасьць старонак, якія былі запісаныя для гэтай мэты.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Колькасьць падвойных запісаў, якія былі выкананыя, і колькасьць старонак, якія былі запісаныя для гэтай мэты.';
+$strShowStatusInnodb_log_waitsDescr = 'Колькасьць выпадкаў чаканьня з-за таго, што буфэр логу быў занадта малы, і таму давялося чакаць, пакуль ён не ачысьціцца.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Колькасьць запісаў у лог.';
+$strShowStatusInnodb_log_writesDescr = 'Колькасьць фізычна выкананых запісаў у лог-файл.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Колькасьць сынхранізавыных запісаў, зробленых у лог-файл.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Колькасьць сынхранізаваньняў лог-файла, якія чакаюць выкананьня.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Колькасьць запісаў у лог-файл, якія чакаюць выкананьня.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Колькасьць байтаў, запісаных у лог-файл.';
+$strShowStatusInnodb_pages_createdDescr = 'Колькасьць створаных старонак.';
+$strShowStatusInnodb_page_sizeDescr = 'Памер закампіляванай старонкі InnoDB (па змоўчаньні 16КБ). Пэўныя велічыні вымяраюцца ў старонках; памер старонкі дазваляе хутка перавесьці яго ў байты.';
+$strShowStatusInnodb_pages_readDescr = 'Колькасьць прачытаных старонак.';
+$strShowStatusInnodb_pages_writtenDescr = 'Колькасьць запісаных старонак.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Колькасьць блякаваньняў радкоў, чаканьне якіх адбываецца на бягучы момант.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Сярэдні час атрыманьня магчымасьці блякаваньня радку, у мілісэкундах.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Агульны час чаканьня атрыманьня магчымасьці блякаваньня радку, у мілісэкундах.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Максымальны час атраманьня магчымасьці блякаваньня радку, у мілісэкундах.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Колькасьць разоў, калі даводзілася чакаць блякаваньне радку.';
+$strShowStatusInnodb_rows_deletedDescr = 'Колькасьць радкоў, выдаленых з табліц InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'Колькасьць радкоў, устаўленых у табліцы InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'Колькась радкоў, прачытаных з табліц InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'Колькасьць радкоў, абноўленых у табліцах InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Колькасьць блёкаў у кэшы ключоў, якія былі зьмененыя, але яшчэ не былі скінутыя на дыск. Выкарыстоўваецца як значэньне Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Колькасьць нявыкарыстаных блёкаў у кэшы ключоў. Гэтае значэньне можна выкарыстоўваць для вызначэньня ступені выкарыстаньня кэшу ключоў.';
+$strShowStatusKey_blocks_usedDescr = 'Колькасьць выкарыстаных блёкаў у кэшы ключоў. Гэтае значэньне з дастатковай ступеньню пэўнасьці сьведчыць пра максымальную за ўвесь час колькасьць блёкаў, якія выкарастоўваліся адначасова.';
+$strShowStatusKey_read_requestsDescr = 'Колькасьць запытаў на чытаньне блёку ключоў з кэшу.';
+$strShowStatusKey_readsDescr = 'Колькасьць фізычных чытаньняў блёку ключоў з дыска. Калі значэньне Key_reads вялікае, значэньне key_buffer_size, відаць, вельмі малое. Колькасьць промахаў у кэш можна вылічыць як Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Колькасьць запытаў на запіс блёку ключоў у кэш.';
+$strShowStatusKey_writesDescr = 'Колькасьць фізычных запісаў блёку ключоў на дыск.';
+$strShowStatusLast_query_costDescr = 'Агульны кошт апошняга зкампіляванага запыту, падлічанага аптымізатарам запытаў. Карысна для параўнаньня розных спосабаў рэалізацыі аднаго запыту. Значэньне па змоўчаньні 0 азначае, што ніводны запыт яшчэ ня быў зкампіляваны.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Колькасьць радкоў для запісу, адкладзеных запытамі INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Колькасьць табліц, якія былі адкрытыя. Калі адкрытыя табліцы вялікія, значэньне кэшу табліц імаверна вельмі малое.';
+$strShowStatusOpen_filesDescr = 'Колькасьць адкрытых файлаў.';
+$strShowStatusOpen_streamsDescr = 'Колькасьць адкрытых патокаў (выкарыстоўваюцца пераважна для лагаваньня).';
+$strShowStatusOpen_tablesDescr = 'Колькасьць адкрытых табліц.';
+$strShowStatusQcache_free_blocksDescr = 'Колькасьць вольных блёкаў памяці ў кэшы запытаў.';
+$strShowStatusQcache_free_memoryDescr = 'Колькасьць вольнай памяці для кэшу запытаў.';
+$strShowStatusQcache_hitsDescr = 'Колькасьць зваротаў да кэшу.';
+$strShowStatusQcache_insertsDescr = 'Колькасьць запытаў, якія былі даданыя ў кэш.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Колкасьць запытаў, якія былі выдаленыя з кэшу, каб вызваліць памяць для кэшаваньня новых запытаў. Гэтыя зьвесткі могуць дапамагчы вызначыць памер кэшу запытаў. Кэш запытаў выкарыстоўвае статэгію элемэнта, які выкарыстоўваўся найменш (LRU) для вызначэньня, якія запыты трэба выдаляць з кэшу.';
+$strShowStatusQcache_not_cachedDescr = 'Колькасьць некэшавальных запытаў (некэшавальных або некэшаваных з-за значэньня дырэктывы query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Колькасьць запытаў, якія прысутнічаюць у кэшы.';
+$strShowStatusQcache_total_blocksDescr = 'Агульная колькасьць блёкаў у кэшы запытыў.';
+$strShowStatusReset = 'Скінуць статыстыку';
+$strShowStatusRpl_statusDescr = 'Стан абароненай ад памылак рэплікацыі (яшчэ не рэалізаваная).';
+$strShowStatusSelect_full_joinDescr = 'Колькасьць аб\'яднаньняў, якія не выкарыстоўвяюць індэксы. Калі гэтае значэньне ня роўнае 0, варта праверыць індэксы ў табліцах.';
+$strShowStatusSelect_full_range_joinDescr = 'Колькасьць аб\'яднаньняў, якія выкарыстоўвалі пошук па масцы ў мэтавай табліцы.';
+$strShowStatusSelect_range_checkDescr = 'Колькасьць аб\'яднаньняў без выкарыстаньня ключоў, якія правяралі наяўнасьць ключа пасьля кожнага радка. (Калі гэтае значэньне ня роўнае 0, варта праверыць індэксы ў табліцах.)';
+$strShowStatusSelect_rangeDescr = 'Колькасьць аб\'яднаньняў, якія выкарыстоўвалі спалучэньні палёў у першай табліцы. (Звычайна не крытычна, нават калі гэтае значэньне вялікае.)';
+$strShowStatusSelect_scanDescr = 'Колькасьць аб\'яднаньняў, якія правялі поўны прагляд першай табліцы.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Колькасьць часовых табліц, якія ў бягучы момант адкрытыя залежным SQL-патокам.';
+$strShowStatusSlave_retried_transactionsDescr = 'Агульная (ад загрузкі) колькасьць разоў, калі залежны SQL-паток рэплікацыі паўтараў транзакцыі.';
+$strShowStatusSlave_runningDescr = 'Гэтае значэньне роўнае "ON", калі сэрвэр зьяўляецца залежным і падлучаным да сэрвэра, які яго кантралюе.';
+$strShowStatusSlow_launch_threadsDescr = 'Колькасьць патокаў, якім спатрэбілася больш за slow_launch_time сэкундаў для стварэньня.';
+$strShowStatusSlow_queriesDescr = 'Колькасьць запытаў, на выканантне якіх спатрэбілася больш, чым long_query_time сэкундаў.';
+$strShowStatusSort_merge_passesDescr = 'Колькасьць праходаў, якія былі зробленыя альгарытмам сартаваньня. Калі гэтае значэньне вялікае, варта разгледзіць павелічэньне значэньня сыстэмнай зьменнай sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Колькасьць сартаваньняў, якія былі зробленыя з выкарыстаньнем некалькіх слупкоў.';
+$strShowStatusSort_rowsDescr = 'Колькасьць адсартаваных радкоў.';
+$strShowStatusSort_scanDescr = 'Колькасьць сартаваньняў, якія былі зробленыя падчас прагляду табліцы.';
+$strShowStatusTable_locks_immediateDescr = 'Колькасьць разоў, калі блякаваньне табліцы было зробленае імгненна.';
+$strShowStatusTable_locks_waitedDescr = 'Колькасьць разоў, калі блякаваньне табліцы немагчыма было ажыцьцявіць імгненна і пэўны час пайшоў на чаканьне. Калі гэтае значэньне вялікае, і існуюць праблемы з прадукцыйнасьцю, варта спачатку аптымізаваць запыты, а пасьля або падзяліць табліцу або табліцы, або выкарыстоўваць рэплікацыю.';
+$strShowStatusThreads_cachedDescr = 'Колькасьць патокаў у кэшы патокаў. Ступень трапляньня ў кэш можа быць вылічаная як Threads_created/Connections. Калі гэтае значэньне пафарбаванае ў чырвоны колер, варта павялічыць значэньне thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Колькасьць адкрытых на бягучы момант злучэньняў.';
+$strShowStatusThreads_createdDescr = 'Колькасьць патокаў, створаных для кіраваньня злучэньнямі. Калі значэньне Threads_created вялікае, магчыма, варта павялічыць значэньне thread_cache_size. (Звычайна, гэта не дае якога-небудзь заўважнага павелічэньня прадукцыйнасьці, калі прысутнічае добрая рэалізацыя патокаў.)';
+$strShowStatusThreads_runningDescr = 'Колькасьць патокаў, якія не зьяўляюцца сьпячымі.';
+$strShowTableDimension = 'Паказаць разьмернасьць табліц';
+$strShowTables = 'Паказаць табліцы';
+$strShowThisQuery = ' Паказаць гэты запыт зноў ';
+$strSimplifiedChinese = 'Кітайская спрошчаная';
+$strSingly = '(асобна)';
+$strSize = 'Памер';
+$strSkipQueries = 'Колькасьць (запытаў), якія трэба прапусьціць ад пачатку';
+$strSlovak = 'Славацкая';
+$strSlovenian = 'Славенская';
+$strSocketProblem = '(або сокет лякальнага сэрвэра MySQL не сканфігураваны правільна)';
+$strSortByKey = 'Сартаваць па ключы';
+$strSort = 'Парадак';
+$strSorting = 'Сартаваньне';
+$strSpaceUsage = 'Выкарыстаньне прасторы';
+$strSpanish = 'Гішпанская';
+$strSplitWordsWithSpace = 'Словы, падзеленыя прагалам (" ").';
+$strSQLCompatibility = 'Рэжым сумяшчальнасьці SQL';
+$strSQLExportType = 'Тып экспарту';
+$strSQLParserBugMessage = 'Магчыма, вы знайшлі памылку ў SQL-парсэры. Калі ласка, уважліва праверце выш запыт і адпаведнасьць двукосьсяў у ім. Іншай магчымай прычынай памылкі можа быць тое, што вы загрузілі файл з двайковымі дадзенымі па-за межамі тэксту, вылучанага двукосьсямі. Вы таксама можаце паспрабаваць адправіць ваш запыт з каманднага радка MySQL. Паведамленьне пра памылку сэрвэра MySQL прыведзенае ніжэй, можа таксама дапамагчы вам высьветліць прычыну праблему. Калі вы ўсё яшчэ маеце праблемы або парсэр паведамляе пра памылку, а з каманднага радку запыт выконваецца, калі ласка, скараціце ваш уведзены SQL-запыт да аднаго запыту, які выклікае памылку, і адпраўце паведамленьне пра памылку з блёкам дадзеных, пададзеных у сэкыці CUT ніжэй:';
+$strSQLParserUserError = 'Здаецца, ваш SQL-запыт утрымлівае памылку. Паведамленьне пра памылку сэрвэра MySQL прыведзенае ніжэй, магчыма, таксама дапаможа вам высьветліць прычыну памылкі';
+$strSQLQuery = 'SQL-запыт';
+$strSQLResult = 'SQL-вынік';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Няправільны ідэнтыфікатар';
+$strSQPBugUnclosedQuote = 'Незакрытае двукосьсе';
+$strSQPBugUnknownPunctuation = 'Невядомы сымбаль пунктуацыі';
+$strStatCheckTime = 'Апошняя праверка';
+$strStatCreateTime = 'Створаная';
+$strStatement = 'Выразы';
+$strStatisticsOverrun = 'На загружаным сэрвэры байтавыя лічыльнікі могуць пераскокваць кола, таму статыстыка, якую паказвае MySQL-сэрвэр, можа быць няправільнай.';
+$strStatUpdateTime = 'Апошняе абнаўленьне';
+$strStatus = 'Стан';
+$strStorageEngine = 'Машына захаваньня дадзеных';
+$strStorageEngines = 'Машыны захаваньня дадзеных';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Структуру і дадзеныя';
+$strStrucExcelCSV = 'CSV для дадзеных MS Excel';
+$strStrucNativeExcel = 'Родны фармат MS Excel';
+$strStrucOnly = 'Толькі структуру';
+$strStructPropose = 'Прапанаваная структура табліцы';
+$strStructure = 'Структура';
+$strSubmit = 'Адправіць';
+$strSuccess = 'Ваш SQL-запыт быў пасьпяхова выкананы';
+$strSum = 'Усяго';
+$strSwedish = 'Швэдзкая';
+$strSwitchToDatabase = 'Перайсьці да скапіяванай базы дадзеных';
+$strSwitchToTable = 'Перайсьці да скапіяванай табліцы';
+
+$strTableAlreadyExists = 'Табліца %s ужо існуе!';
+$strTableComments = 'Камэнтар да табліцы';
+$strTableEmpty = 'Пустая назва табліцы!';
+$strTableHasBeenDropped = 'Табліца %s была выдаленая';
+$strTableHasBeenEmptied = 'Табліца %s была ачышчаная';
+$strTableHasBeenFlushed = 'Кэш табліцы %s быў ачышчаны';
+$strTableMaintenance = 'Абслугоўваньне табліцы';
+$strTable = 'Табліца';
+$strTableOfContents = 'Зьмест';
+$strTableOptions = 'Опцыі табліцы';
+$strTables = '%s табліц(ы)';
+$strTableStructure = 'Структура табліцы';
+$strTakeIt = 'гэтая';
+$strTblPrivileges = 'Прывілеі, спэцыфічныя для табліцы';
+$strTempData = 'Часовыя дадзеныя';
+$strTextAreaLength = ' З-за вялікай даўжыні,<br /> гэтае поле ня можа быць адрэдагаванае ';
+$strThai = 'Тайляндзкая';
+$strThemeDefaultNotFound = 'Тэма па змоўчаньні %s ня знойдзеная!';
+$strThemeNoPreviewAvailable = 'Папярэдні прагляд недаступны.';
+$strThemeNotFound = 'Тэма %s ня знойдзеная!';
+$strThemeNoValidImgPath = 'Дапушчальны шлях да малюнкаў тэмы %s ня знойдзены!';
+$strTheme = 'Тэма / Стыль';
+$strThemePathNotFound = 'Ня знойдзены шлях да тэмы %s!';
+$strThisHost = 'Гэты хост';
+$strThreads = 'Патокі';
+$strThreadSuccessfullyKilled = 'Паток %s быў пасьпяхова спынены.';
+$strTime = 'Час';
+$strTimeoutInfo = 'Папярэдняе імпартаваньне спынілася з-за недахопу часу. Пасьля новай загрузкі імпартаваньне будзе працягнутае з пазыцыі %d.';
+$strTimeoutNothingParsed = 'Аднак, падчас апошняга выкананьня ніякія дадзеныя былі апрацаваныя. Гэта звычайна значыць, што phpMyAdmin ня зможа скончыць гэтае імпартаваньня, калі вы не павялічыце ліміты выкананьня php-скрыптоў.';
+$strTimeoutPassed = 'Выйшаў дазволены час выкананьня скрыпта. Калі вы хочаце завершыць імпартаваньне, калі ласка, загрузіце файл зноў і імпартаваньне ўзнавіцца.';
+$strToggleScratchboard = 'Паказаць папярэдні прагляд';
+$strTotal = 'усяго';
+$strTotalUC = 'Агулам';
+$strTraditionalChinese = 'Традыцыйная кітайская';
+$strTraditionalSpanish = 'Традыцыйная гішпанская';
+$strTraffic = 'Трафік';
+$strTransactionCoordinator = 'Каардынатар перакладу';
+$strTransformation_application_octetstream__download = 'Паказвае спасылку для загрузкі двайковых дадзеных поля. Вы можаце выкарыстоўваць першую опцыю для вызначэньня імя файла або выкарыстоўвайце другую опцыю як імя поля, якое ўтрымлівае імя файла. Калі вы выкарыстоўваеце другую опцыю, вам трэба пакінуць першае поле пустым';
+$strTransformation_application_octetstream__hex = 'Паказвае дадзеныя ў шаснаццатковым выглядзе. Апцыянальны першы парамэтар вызначае частату дадаваньня прагала (па-змоўчаньні — праз кожныя 8 бітаў).';
+$strTransformation_image_jpeg__inline = 'Паказвае націскальны эскіз; Опцыі — максымальная шырыня і вышыня ў піксэлах. Захоўваюцца пачатковыя прапорцыі.';
+$strTransformation_image_jpeg__link = 'Паказвае спасылку для загрузкі гэтага малюнку.';
+$strTransformation_image_png__inline = 'Праглядзець малюнак image/jpeg: убудаваны';
+$strTransformation_text_plain__external = 'ТОЛЬКІ ДЛЯ LINUX: Запускае зьнешнюю праграму і перадае ёй дадзеныя поля праз стандартны ўвод. Вяртае стандартны вывад праграмы. Праграма па змоўчаньні — Tidy, якая друкуе чысты HTML-код. Зь меркаваньняў бясьпекі, вам трэба ўручную адрэдагаваць файл libraries/transformations/text_plain__external.inc.php і пазначыць сьпіс праграмаў, якія вы хочаце зрабіць даступнымі. Першая опцыя — тады нумар праграмы, якую вы хочаце выкарыстоўваць, другая опцыя — парамэтры для праграмы. Трэцяя опцыя, калі вызначаная як 1, сканвэртуе дадзеныя з стандартнага вываду выкарыстоўваючы htmlspecialchars() (Па змоўчаньні 1). Чацьвертая опцыя, калі вызначаная як 1, прадухіліць перанос па словах, каб пераканацца, што ўвесь выхадны паток будзе выведзены ў адзін радок (Па змоўчаньні 1).';
+$strTransformation_text_plain__formatted = 'Паказвае зьмесьціва поля як ёсьць, без апрацоўкі яго функцыяй htmlspecialchars(). Таму разумеецца, што поле ўтрымлівае карэктны HTML-код.';
+$strTransformation_text_plain__imagelink = 'Паказвае малюнак і спасылку, поле зьмяшчае назву файла. Першая опцыя — прэфікс адрасу кшталту "http://www.example.com/". Другая і трэцяя опцыі — шырыня і вышыня ў піксэлах.';
+$strTransformation_text_plain__link = 'Паказвае спасылку; поле зьмяшчае назву файла. Першая опцыя — прэфікс адрасу кшталту "http://www.example.com/". Другая опцыя — назва спасылкі.';
+$strTransformation_text_plain__sql = 'Фарматуе тэкст як SQL-запыт з падсьвечаным сынтаксісам.';
+$strTransformation_text_plain__substr = 'Паказвае толькі частку радка. Першая опцыя — колькасьць сымбаляў ад пачатку радка, якія трэба прапусьціць (Па змоўчаньні 0). Другая опцыя — колькасьць сымбаляў, якія трэба вярнуць (Па змоўчаньні: да канца радка). Трэцяя опцыя — радок, які трэба далучыць да канца і/або з пачатку радка, калі адбудзецца ўсячэньне (Па змоўчаньні: "...") .';
+$strTruncateQueries = 'Абразаць паказаныя запыты';
+$strTurkish = 'Турэцкая';
+$strType = 'Тып';
+
+$strUkrainian = 'Украінская';
+$strUncheckAll = 'Зьняць усе адзнакі';
+$strUnicode = 'Юнікод';
+$strUnique = 'Унікальнае';
+$strUnknown = 'невядома';
+$strUnselectAll = 'Зьняць усе адзнакі';
+$strUnsupportedCompressionDetected = 'Вы паспрабавалі загрузіць файл з мэтадам сьціску, які непадтрымліваецца (%s). Ягоная падтрымка або не рэалізаваная, або адключаная ў вашай канфігурацыі.';
+$strUpdatePrivMessage = 'Вы зьмянілі прывілеі для %s.';
+$strUpdateProfileMessage = 'Профіль быў адноўлены.';
+$strUpdateQuery = 'Абнавіць запыт';
+$strUpdComTab = 'За інфармацыяй як абнавіць табліцу column_comments зьвярніцеся, калі ласка, да дакумэнтацыі';
+$strUpgrade = 'Вам трэба абнавіць %s да вэрсіі %s ці пазьнейшай.';
+$strUploadLimit = 'Вы, мусіць, паспрабавалі загрузіць вельмі вялікі файл. Калі ласка, зьвярніцеся да %sдакумэнтацыі%s для высьвятленьня спосабаў абыйсьці гэтае абмежаваньне.';
+$strUploadsNotAllowed = 'Загрузкі файлаў не дазволеныя на гэтым сэрвэры.';
+$strUsage = 'Выкарыстаньне';
+$strUseBackquotes = 'Зваротнае двукосьсе ў імёнах табліц і палёў';
+$strUseHostTable = 'Выкарыстоўваць табліцу хостаў';
+$strUserAlreadyExists = 'Карыстальнік %s ужо існуе!';
+$strUser = 'Карыстальнік';
+$strUserEmpty = 'Пустое імя карыстальніка!';
+$strUserName = 'Імя карыстальніка';
+$strUserNotFound = 'Вылучаны карыстальнік ня знойдзены ў табліцы прывілеяў.';
+$strUserOverview = 'Карыстальнікі';
+$strUsersDeleted = 'Выбраныя карыстальнікі былі пасьпяхова выдаленыя.';
+$strUsersHavingAccessToDb = 'Карыстальнікі з правамі доступу да &quot;%s&quot;';
+$strUseTabKey = 'Выкарыстоўвайце клявішу TAB для перамяшчэньня ад значэньня да значэньня або CTRL+стрэлкі для перамяшчэньня ў любое іншае месца';
+$strUseTables = 'Выкарыстоўваць табліцы';
+$strUseTextField = 'Выкарыстоўваць тэкставае поле';
+$strUseThisValue = 'Выкарыстоўваць гэта значэньне';
+
+$strValidateSQL = 'Праверыць SQL';
+$strValidatorError = 'Немагчыма праініцыялізаваць праверку SQL. Калі ласка, праверце, ці ўсталяваныя ў вас неабходныя пашырэньні PHP, як гэта апісана ў %sдакумэнтацыі%s.';
+$strValue = 'Значэньне';
+$strVar = 'Зьменная';
+$strVersionInformation = 'Інфармацыя пра вэрсію';
+$strView = 'Выгляд';
+$strViewDumpDatabases = 'Праглядзець дамп (схему) базаў дадзеных';
+$strViewDumpDB = 'Праглядзець дамп (схему) базы дадзеных';
+$strViewDump = 'Праглядзець дамп (схему) табліцы';
+$strViewHasBeenDropped = 'Выгляд %s быў выдалены';
+
+$strWebServerUploadDirectoryError = 'Немагчыма адкрыць пазначаную вамі тэчку для загрузкі файлаў';
+$strWebServerUploadDirectory = 'тэчка вэб-сэрвэра для загрузкі файлаў';
+$strWelcome = 'Запрашаем у %s';
+$strWestEuropean = 'Заходнеэўрапейская';
+$strWildcard = 'шаблён';
+$strWindowNotFound = 'Немагчыма абнавіць мэтавае акно браўзэра. Магчыма, вы закрылі бацькоўскае акно або налады бясьпекі вашага браўзэра сканфігураныя на блякаваньне міжваконных ўзаемадзеяньняў';
+$strWithChecked = 'З адзначанымі:';
+$strWriteRequests = 'Запытаў запісу';
+$strWrongUser = 'Няправільны лагін/пароль. У доступе адмоўлена.';
+
+$strXML = 'XML';
+
+$strYes = 'Так';
+
+$strZeroRemovesTheLimit = 'Заўвага: Пазначэньне гэтых опцыяў як 0 (нуль) здымае абмежаваньне.';
+$strZip = 'архіваваны ў zip';
+
+$strTransformation_text_plain__dateformat = 'Паказвае TIME, TIMESTAMP, DATETIME альбо лікавую метку часу Unix як адфарматаваную дату. Першы парамэтар — гэта колькасьць гадзінаў, якія будуць дададзеныя да меткі часу (па змоўчаньні — 0). Другі парамэтар выкарыстоўвайце, каб пазначыць іншы фармат даты/часу. Трэці парамэтар вызначае тып даты, якая будзе паказаная: вашая лякальная дата альбо дата UTC (выкарыстоўвайце для гэтага парамэтры «local» і «utc» адпаведна). У залежнасьці ад гэтага фармат даты мае розныя значэньні: для атрыманьня парамэтраў лякальнай даты глядзіце дакумэнтацыю для функцыі PHP strftime(), а для грынвіцкага часу (парамэтар «utc») — дакумэнтацыю функцыі gmdate().';
+$strDocSQL = 'DocSQL';
+$strTableName = 'Імя табліцы';
+$strTableIsEmpty = 'Табліца — пустая!';
+$strDbIsEmpty = 'База дадзеных — пустая!';
+$strShowingPhp = 'У выглядзе PHP-коду';
+$strShowingSQL = 'У выглядзе SQL-запыту';
+$strDesigner = 'Дызайнэр';
+$strNumberOfTables = 'Колькасьць табліц';
+$strCreateTable = 'Стварыць табліцу';
+$strCreateRelation = 'Стварыць сувязь';
+$strSavePosition = 'Захаваць разьмяшчэньне табліц';
+$strSelectForeignKey = 'Выберыце зьнешні ключ';
+$strHide = 'Схаваць';
+$strShowHideLeftMenu = 'Паказаць/схаваць мэню зьлева';
+$strReload = 'Абнавіць';
+$strSmallBigAll = 'Згарнуць/разгарнуць адлюстраваньне ўсіх табліц';
+$strImportExportCoords = 'Імпартаваць/Экспартаваць каардынаты табліц ў PDF-схему';
+$strMoveMenu = 'Перасунуць мэню';
+$strAngularLinks = 'Вуглавыя лініі сувязяў';
+$strDirectLinks = 'Прамыя лініі сувязяў';
+$strHideShowAll = 'Схаваць/паказаць усе табліцы';
+$strHideShowNoRelation = 'Схаваць/паказаць табліцы бяз сувязяў';
+$strInternalRelationAdded = 'Унутраная сувязь дададзеная';
+$strRelationDeleted = 'Сувязь выдаленая';
+$strToSelectRelation = 'Каб выбраць сувязь, націсьніце на кропцы злучэньня, як паказана на выяве:';
+$strExportImportToScale = 'Маштаб';
+$strRecommended = 'рэкамэндаваны';
+$strToFromPage = 'старонка';
+$strSelectReferencedKey = 'Выберыце спасылкавы ключ';
+$strPleaseSelectPrimaryOrUniqueKey = 'Калі ласка, выберыце першасны (PRIMARY) альбо ўнікальны ключ (UNIQUE)';
+$strHelp = 'Дапамога';
+$strCancel = 'Скасаваць';
+$strDeleteRelation = 'Выдаліць сувязь';
+$strKnownExternalBug = 'Існуе вядомая памылка з выкарыстаньнем парамэтра %s, глядзіце апісаньне на %s';
+$strStructureForView = 'Структура для прагляду';
+$strStandInStructureForView = 'Замяняльная структура для прагляду';
+$strToggleSmallBig = 'Пераключыць маленькі/вялікі';
+$strIEUnsupported = 'Internet Explorer не падтрымлівае гэтую функцыю.';
+$strErrorRelationAdded = 'Памылка: сувязь не дададзеная.';
+$strErrorRelationExists = 'Памылка: сувязь ужо існуе.';
+$strErrorSaveTable = 'Памылка захаваньня каардынатаў.';
+$strSnapToGrid = 'Зьвяць зь сеткай';
+$strDesignerHelpDisplayField = 'Адлюстраваныя палі паказваюцца ружовым колерам. Каб зьмяніць сьпіс адлюстраваных палёў, націсьніце іконку «Выберыце поле для адлюстраваньня» і націсьніце на адпаведнае імя поля.';
+$strUploadErrorIniSize = 'Памер загружанага файла пераўзыходзіць парамэтар upload_max_filesize у php.ini.';
+$strUploadErrorFormSize = 'Памер загружанага файла пераўзыходзіць парамэтар MAX_FILE_SIZE, які быў вызначаны ў HTML-форме.';
+$strUploadErrorPartial = 'Файл быў загружаны толькі часткова.';
+$strUploadErrorNoTempDir = 'Адсутнічае часовая тэчка.';
+$strUploadErrorCantWrite = 'Памылка запісу на дыск.';
+$strUploadErrorExtension = 'Загрузка файла спыненая пашырэньнем.';
+$strUploadErrorUnknown = 'Падчас загрузкі файла адбылася невядомая памылка.';
+$strSessionStartupErrorGeneral = 'Немагчыма без памылак распачаць сэсію. Калі ласка, праверце памылкі ў вашым логу PHP і, магчыма, таксама ў логу вэб-сэрвэра і сканфігуруйце PHP правільна.';
+$strFieldInsertFromFileTempDirNotExists = 'Памылка перамяшчэньня загружанага файла. Глядзіце разьдзел 1.11 у FAQ';
+$strViewName = 'Назва прагляду';
+$strOptions = 'Налады';
+$strFiles = 'Файлы';
+$strMysqlLibDiffersServerVersion = 'Вэрсія вашай бібліятэкі MySQL для PHP %s адрозьніваецца ад вэрсіі вашага сэрвэра MySQL %s. Гэта можа выклікаць непрадказальныя паводзіны.';
+$strRoutines = 'Працэдуры';
+$strRoutineReturnType = 'Тып працэдуры';
+$strControluserFailed = 'Не атрымалася ўсталяваць злучэньне для controluser, вызначанае ў вашым канфігурацыйным файле.';
+$strHexForBLOB = 'Шаснаццатковыя значэньні для поляў тыпу BLOB';
+$strRestartInsertion = 'Пачаць устаўку зноў з %s-га радку';
+$strTriggers = 'Трыгеры';
+$strEvent = 'Падзея';
+$strProfiling = 'Прафіляваньне';
+$strPartitionDefinition = 'Азначэньне PARTITION';
+$strPrivDescTrigger = 'Дазваляе стварэньне і выдаленьне трыгераў';
+$strPrivDescEvent = 'Дазваляе ствараць падзеі ў пляніроўніку падзеяў';
+$strPrivDescProcess = 'Дазваляе праглядаць працэсы ўсіх карыстальнікаў';
+$strPartitioned = 'падзеленая на сэкцыі';
+$strTableAlteredSuccessfully = 'Табліца %1$s была пасьпяхова зьмененая';
+$strDatabaseHasBeenCreated = 'База дадзеных %1$s створаная.';
+$strTableHasBeenCreated = 'Табліца %1$s створаная.';
+$strForeignKeyError = 'Памылка стварэньня зьнешняга ключа на %1$s (праверце тыпы калёнак)';
+$strRowsDeleted = 'Выдалена радкоў: %1$d.';
+$strRowsAffected = 'Зьменена радкоў: %1$d.';
+$strRowsInserted = 'Устаўлена радкоў: %1$d.';
+$strInsertedRowId = 'ID устаўленага радку: %1$d';
+$strIndexesSeemEqual = 'Падобна, што індэксы %1$s і %2$s зьяўляюцца аднолькавымі, а таму адзін зь іх, магчыма, можна выдаліць.';
+$strPartitionMaintenance = 'Падтрымка падзелаў';
+$strPartition = 'Падзел %s';
+$strAnalyze = 'Прааналізаваць';
+$strCheck = 'Праверыць';
+$strOptimize = 'Аптымізаваць';
+$strRebuild = 'Перабудаваць';
+$strRepair = 'Адрамантаваць';
+$strRemovePartitioning = 'Скасаваць падзел на часткі';
+$strSearchInField = 'Унутры поля:';
+$strTexyText = 'Тэкст Texy!';
+$strDetails = 'Падрабязьней...';
+$strComment = 'Камэнтар';
+$strPacked = 'Сьціснутая';
+$strActions = 'Дзеяньні';
+$strInterface = 'Інтэрфэйс';
+$strSuhosin = 'На сэрвэры запушчаны Suhosin. Калі ласка, зьвярніцеся да %sдакумэнтацыі%s для атрыманьня апісаньня магчымых праблемаў.';
+$strEvents = 'Падзеі';
+$strForeignKeyRelationAdded = 'Сувязь FOREIGN KEY была дададзеная';
+$strInternalAndForeign = 'Унутраная сувязь не зьяўляецца абавязковай, калі існуе адпаведная сувязь FOREIGN KEY.';
+$strViewHasAtLeast = 'Гэты прагляд мае толькі такую колькасьць радкоў. Калі ласка, зьвярніцеся да %sдакумэнтацыі%s.';
+$strRelationalKey = 'Ключ сувязі';
+$strRelationalDisplayField = 'Адлюстраванае поле сувязі';
+$strSwekeyNoKey = 'Дзейны ключ аўтэнтыфікацыі не падключаны';
+$strSwekeyNoKeyId = 'Файл %s ня ўтрымлівае ніякага ідэнтыфікатара ключа';
+$strSwekeyAuthFailed = 'Апаратная аўтэнтыфікацыя скончылася няўдала';
+$strSwekeyAuthenticating = 'Аўтэнтыфікацыя...';
+$strPBXTIndexCacheSize = 'Памер кэшу індэксаў';
+$strPBXTRecordCacheSize = 'Памер кэшу запісаў';
+$strPBXTLogCacheSize = 'Памер кэшу логаў';
+$strPBXTLogFileThreshold = 'Парог файла логу';
+$strPBXTTransactionBufferSize = 'Памер буфэру транзакцый';
+$strPBXTCheckpointFrequency = 'Частата кантрольных кропак';
+$strPBXTDataLogThreshold = 'Парог лагаваньня дадзеных';
+$strPBXTGarbageThreshold = 'Парог сьмецьця';
+$strPBXTLogBufferSize = 'Памер буфэру логу';
+$strPBXTDataFileGrowSize = 'Памер павелічэньня файлаў з дадзенымі';
+$strPBXTRowFileGrowSize = 'Памер павелічэньня файлаў радкоў';
+$strPBXTRowFileGrowSizeDesc = 'Памер павелічэньня файлаў указальнікаў на радкі (.xtr).';
+$strPBXTDataFileGrowSizeDesc = 'Памер павелічэньня файлаў апрацоўкі дадзеных (.xtd).';
+$strPBXTLogBufferSizeDesc = 'Памер буфэру, які выкарыстоўваецца падчас запісу логу. Памер па змоўчаньні складае 256МБ. Машына захаваньня дадзеных выдзяляе па аднаму буфэру на кожны паток, але толькі калі патоку патрабуецца запісваць лог дадзеных.';
+$strPBXTGarbageThresholdDesc = 'Адсотак сьмецьця ў файле логу дадзеных перад тым, як ён будзе сьціснуты. Гэтае значэньне можа знаходзіцца ў межах ад 1 да 99. Значэньне па змоўчаньні — 50.';
+$strPBXTDataLogThresholdDesc = 'Максымальны памер файла логу дадзеных. Памер па змоўчаньні — 64МБ. PBXT мода ствараць да 32000 логаў дадзеных, якія выкарыстоўваюцца ўсімі табліцамі. Такім чынам, значэньне гэтай зьменнай можа быць павялічана, каб павялічаць агульную колькасьць дадзеных, якія могуць захоўвацца ў базе дадзеных.';
+$strPBXTCheckpointFrequencyDesc = 'Колькасьць дадзеных, якія запісваюцца ў лог транзакцый перад тым, як выканаецца кантрольная кропка. Значэньне па змоўчаньні — 24 МБ.';
+$strPBXTTransactionBufferSizeDesc = 'Памер глябальнага буфэру логу транзакцый (кожная машына захаваньня дадзеных выдзяляле 2 буфэры гэтага памеру). Памер па змоўчаньні — 1 МБ.';
+$strPBXTLogFileThresholdDesc = 'Памер логу транзакцый перад выкананьнем выкананьня, да моманту, пакуль будзе створаны новы файл. Значэньне па Памер — 16 МБ.';
+$strPBXTLogCacheSizeDesc = 'Колькасьць памяці, якая выдзяляецца для кэшу логу транзакцый, які выкарыстоўваецца для кэшаваньня дадзеныя логу транзакцый. Памер па змоўчаньні — 16 МБ.';
+$strPBXTRecordCacheSizeDesc = 'Колькасьць памяці, якая выдзяляецца для кэшу запісаў, што выкарыстоўваецца для кэшаваньня дадзеных табліцы. Памер па змоўчаньні — 32 МБ. Гэтая памяць выкарыстоўваецца для кэшаваньня зьменаў файлаў апрацоўкі дадзеных (.xtd) і файлаў указальнікаў радкоў (.xtr).';
+$strPBXTIndexCacheSizeDesc = 'Гэта памер памяці, якая выдзяляецца для кэшу індэксаў. Памер па змоўчаньні — 32 МБ. Гэта памяць выкарыстоўваецца толькі для кэшаваньня старонак індэксаў.';
+$strPBXTLogFileCount = 'Колькасьць файлаў логу';
+$strPBXTLogFileCountDesc = 'Гэта колькасьць файлаў логу транзакцый (pbxt/system/xlog*.xt), якія можа падтрымліваць сыстэма. У выпадку, калі колькасьць файлаў логу перавысіць гэтае значэньне, старыя файлы логу будуць выдаленыя. У іншым выпадку яны будуць перайменаваныя і ім будзе дадзены чарговы найвышэйшы нумар.';
+$strAsDefined = 'Як вызначана:';
+$strWiki = 'Wiki';
+$strWebServer = 'Вэб-сэрвэр';
+$strPHPExtension = 'Пашырэньне PHP';
+$strCustomColor = 'Іншы колер';
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/belarusian_latin-utf-8.inc.php b/lang/belarusian_latin-utf-8.inc.php
new file mode 100644
index 0000000000..44db2fd612
--- /dev/null
+++ b/lang/belarusian_latin-utf-8.inc.php
@@ -0,0 +1,1455 @@
+<?php
+/* $Id$ */
+
+/**
+* Translated by:
+* Jaska Zedlik
+* http://www.zedlik.com
+*/
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$day_of_week = array('Ndz', 'Pan', 'Aŭt', 'Sier', 'Cač', 'Piat', 'Sub');
+$month = array('Stu', 'Lut', 'Sak', 'Kra', 'Tra', 'Čer', 'Lip', 'Žni', 'Vier', 'Kas', 'Lis', 'Śn');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y, %H:%M';
+$timespanfmt = '%s dzion, %s hadzinaŭ, %s chvilinaŭ i %s sekundaŭ';
+
+$strAbortedClients = 'Spyniena';
+$strAccessDeniedCreateConfig = 'Imavierna, pryčyna hetaha ŭ tym, što nia stvorany kanfihuracyjny fajł. Kab jaho stvaryć, možna vykarystać %1$snaładačny skrypt%2$s.';
+$strAccessDeniedExplanation = 'phpMyAdmin pasprabavaŭ padłučycca da servera MySQL, ale server adchiliŭ złučeńnie. Praviercie imia chostu, karystalnika i parol u config.inc.php i ŭpeŭniciesia, što jany adpaviadajuć infarmacyi, jakuju daŭ administratar MySQL-servera.';
+$strAccessDenied = 'U dostupie admoŭlena';
+$strAction = 'Dziejańnie';
+$strAddAutoIncrement = 'Dadać značeńnie AUTO_INCREMENT';
+$strAddClause = 'Dadać %s';
+$strAddConstraints = 'Dadać abmiežavańni';
+$strAddDeleteColumn = 'Dadać/vydalić kalonku kryteru';
+$strAddDeleteRow = 'Dadać/vydalić radok kryteru';
+$strAddFields = 'Dadać %s novyja pali';
+$strAddHeaderComment = 'Dadać pryvatny kamentar u zahałovak (\\n padzialaje radki)';
+$strAddIntoComments = 'Dadać u kamentary';
+$strAddNewField = 'Dadać novaje pole';
+$strAddPrivilegesOnDb = 'Dadać pryvilei na nastupnuju bazu';
+$strAddPrivilegesOnTbl = 'Dadać pryvilei na nastupnuju tablicu';
+$strAddSearchConditions = 'Dadać umovy pošuku (cieła dla ŭmovy "where"):';
+$strAddToIndex = 'Dadać da indeksa %s kalonku(i)';
+$strAddUser = 'Dadać novaha karystalnika';
+$strAddUserMessage = 'Byŭ dadadzieny novy karystalnik.';
+$strAdministration = 'Administravańnie';
+$strAfter = 'Paśla %s';
+$strAfterInsertBack = 'Pierajści da papiaredniaj staronki';
+$strAfterInsertNewInsert = 'Dadać jašče adzin radok';
+$strAfterInsertNext = 'Redagavać nastupny radok';
+$strAfterInsertSame = 'Viarnucca da hetaj staronki';
+$strAll = 'Usie';
+$strAllowInterrupt = 'Dazvolić spynieńnie impartavańnia ŭ vypadku, kali skrypt vyśvietlić, što skončvajecca čas vykanańnia. Heta moža być dobrym sposabam impartavańnia vialikich fajłaŭ, adnak, heta moža pierapynić tranzakcyi.';
+$strAllTableSameWidth = 'Pakazać usie tablicy adnolkavaj šyryni?';
+$strAlterOrderBy = 'Źmianić paradak tablicy';
+$strAnalyzeTable = 'Analizavać tablicu';
+$strAnd = 'I';
+$strAndThen = 'i paśla';
+$strAnIndex = 'Byŭ dadadzieny indeks dla %s';
+$strAny = 'Luby';
+$strAnyHost = 'Luby chost';
+$strAnyUser = 'Luby karystalnik';
+$strApproximateCount = 'Značeńnie moža być prybliznym. Hł. FAQ 3.11';
+$strAPrimaryKey = 'Pieršasny kluč byŭ dadadzieny da %s';
+$strArabic = 'Arabskaja';
+$strArmenian = 'Armianskaja';
+$strAscending = 'pramy';
+$strAtBeginningOfTable = 'U pačatku tablicy';
+$strAtEndOfTable = 'U kancy tablicy';
+$strAttr = 'Atrybuty';
+$strAutomaticLayout = 'Aŭtamatyčnaje raźmiaščeńnie';
+
+$strBack = 'Nazad';
+$strBaltic = 'Bałtyjskaja';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Dvajkovy';
+$strBinaryDoNotEdit = 'Dvajkovyja dadzienyja — nie redagujucca';
+$strBinaryLog = 'Dvajkovy łog';
+$strBinLogEventType = 'Typ padziei';
+$strBinLogInfo = 'Infarmacyja';
+$strBinLogName = 'Imia łogu';
+$strBinLogOriginalPosition = 'Pieršapačatkovaja pazycyja';
+$strBinLogPosition = 'Pazycyja';
+$strBinLogServerId = 'ID servera';
+$strBookmarkAllUsers = 'Dać kožnamu karystalniku dostup da hetaj zakładki';
+$strBookmarkCreated = 'Zakładka %s stvoranaja';
+$strBookmarkDeleted = 'Zakładka była vydalenaja.';
+$strBookmarkLabel = 'Mietka';
+$strBookmarkQuery = 'Zakładzieny SQL-zapyt';
+$strBookmarkReplace = 'Zamianić isnuju zakładku z takim ža imiem';
+$strBookmarkThis = 'Dadać hety SQL-zapyt u zakładki';
+$strBookmarkView = 'Tolki prahlad';
+$strBrowseDistinctValues = 'Prahlad roznych značeńniaŭ';
+$strBrowseForeignValues = 'Prahladzieć źniešnija značeńni';
+$strBrowse = 'Prahlad';
+$strBufferPoolActivity = 'Aktyŭnaść pułu buferu';
+$strBufferPool = 'Puł buferu';
+$strBufferPoolUsage = 'Vykarystańnie pułu buferu';
+$strBufferReadMisses = 'Propuskaŭ čytańnia';
+$strBufferReadMissesInPercent = 'Propuskaŭ čytańnia ŭ %';
+$strBufferWriteWaits = 'Zatrymak zapisu';
+$strBufferWriteWaitsInPercent = 'Zatrymak zapisu ŭ %';
+$strBulgarian = 'Baŭharskaja';
+$strBusyPages = 'Zaniatych staronak';
+$strBzip = 'ściskać u bzip';
+
+$strCalendar = 'Kalandar';
+$strCanNotLoadExportPlugins = 'Niemahčyma zahruzić płahiny ekspartavańnia, kali łaska, praviercie ŭstalavanyja fajły!';
+$strCanNotLoadImportPlugins = 'Niemahčyma zahruzić płahiny impartavańnia, kali łaska, praviercie ŭstaloŭku!';
+$strCannotLogin = 'Niemahčyma załahavacca na server MySQL';
+$strCantLoad = 'niemahčyma zahruzić pašyreńnie %s;
+kali łaska, praviercie kanfihuracyju PHP';
+$strCantLoadRecodeIconv = 'Niemahčyma zahruzić pašyreńnie iconv abo pašyreńnie recode, nieabchodnyja dla pierakadavańnia symbalaŭ. Naładźcie PHP na vykarystańnie hetych pašyreńniaŭ abo ŭvohule adklučycie pierakadavańnie symbalaŭ u phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Niemahčyma pierajmienavać indeks u PRIMARY!';
+$strCantUseRecodeIconv = 'Niemahčyma vykarystać ni funkcyju iconv, ni libiconvr, ni recode_string u toj čas, jak pašyreńnie paviedamlaje, što jano zahružanaje. Praviercie vašuju kanfihuracyju PHP.';
+$strCardinality = 'Kolkaść elementaŭ';
+$strCaseInsensitive = 'biez uliku rehistru';
+$strCaseSensitive = 'z ulikam rehistru';
+$strCentralEuropean = 'Centralnaeŭrapiejskaja';
+$strChangeCopyModeCopy = '... pakinuć staroha.';
+$strChangeCopyModeDeleteAndReload = ' ... vydalić staroha z tablicy karystalnikaŭ i paśla pierazahruzić pryvilei.';
+$strChangeCopyModeJustDelete = ' ... vydalić staroha z tablicy karystalnikaŭ.';
+$strChangeCopyMode = 'Stvaryć novaha karystalnika z takimi ž pryvilejami i ...';
+$strChangeCopyModeRevoke = ' ... anulavać usie aktyŭnyja pryvilei staroha i paśla vydalić jaho.';
+$strChangeCopyUser = 'Źmianić rehistracyjnuju infarmacyju / Kapijavać karystalnika';
+$strChange = 'Źmianić';
+$strChangeDisplay = 'Vybierycie pole dla adlustravańnia';
+$strChangePassword = 'Źmianić parol';
+$strCharset = 'Kadyroŭka';
+$strCharsetOfFile = 'Kadyroŭka fajła:';
+$strCharsetsAndCollations = 'Raskładki i supastaŭleńni';
+$strCharsets = 'Kadyroŭki';
+$strCheckAll = 'Adznačyć usio';
+$strCheckOverhead = 'Adznačyć tyja, što patrabujuć aptymizacyi';
+$strCheckPrivs = 'Pravieryć pryvilei';
+$strCheckPrivsLong = 'Pravieryć pryvilei dla bazy "%s".';
+$strCheckTable = 'Pravieryć tablicu';
+$strChoosePage = 'Kali łaska, vybierycie staronku dla redagavańnia';
+$strColComFeat = 'Pakazvać kamentary kalonak';
+$strCollation = 'Supastaŭleńnie';
+$strColumnNames = 'Nazvy kalonak';
+$strColumnPrivileges = 'Specyfičnyja pryvilei kalonak';
+$strCommand = 'Kamanda';
+$strComments = 'Kamentary';
+$strCompatibleHashing = 'Sumiaščalnaje z MySQL 4.0';
+$strCompleteInserts = 'Poŭnaja ŭstaŭka';
+$strCompression = 'Ścisk';
+$strCompressionWillBeDetected = 'Metad ścisku impartavanaha fajła budzie vyznačanaja aŭtamatyčna z: %s';
+$strConfigDefaultFileError = 'Niemahčyma zahruzić kanfihuracyju pa zmoŭčańni z: "%1$s"';
+$strConfigFileError = 'phpMyAdmin nia moža pračytać kanfihuracyjny fajł!
+Heta moža adbycca ŭ vypadku, kali PHP znojdzie syntaksyčnuju pamyłku ŭ im abo kali PHP nia moža znajści fajł.
+Kali łaska, zahruzicie kanfihuracyjny fajł niepasredna, vykarystoŭvajučy spasyłku, pryviedzienuju nižej, i pračytajcie paviedamleńni PHP pra pamyłki. U bolšaści vypadkaŭ, niedzie prapuščany apostraf abo kropka z koskaj.
+Kali vy atrymajecie čystuju staronku, značyć, usio dobra.';
+$strConfigureTableCoord = 'Kali łaska, skanfihurujcie kaardynaty dla tablicy %s';
+$strConnectionError = 'Niemahčyma padłučycca: niapravilnyja nałady.';
+$strConnections = 'Padłučeńni';
+$strConstraintsForDumped = 'Abmiežavańni dla ekspartavanych tablic';
+$strConstraintsForTable = 'Abmiežavańni dla tablicy';
+$strCookiesRequired = 'Cookies musiać być uklučanymi paśla hetaha miesca.';
+$strCopyDatabaseOK = 'Baza dadzienych %s była skapijavanaja ŭ %s';
+$strCopy = 'Skapijavać';
+$strCopyTable = 'Skapijavać tablicu ŭ (baza dadzienych.tablica):';
+$strCopyTableOK = 'Tablica %s była skapijavanaja ŭ %s.';
+$strCopyTableSameNames = 'Niemahčyma skapijavać tablicu ŭ samu siabie!';
+$strCouldNotKill = 'phpMyAdmin nia moža spynić praces %s. Napeŭna, jon užo spynieny.';
+$strCreateDatabaseBeforeCopying = 'vykanać CREATE DATABASE pierad kapijavańniem';
+$strCreateIndex = 'Stvaryć indeks na %s kalonkach';
+$strCreateIndexTopic = 'Stvaryć novy indeks';
+$strCreateNewDatabase = 'Stvaryć novuju bazu dadzienych';
+$strCreateNewTable = 'Stvaryć novuju tablicu ŭ BD %s';
+$strCreate = 'Stvaryć';
+$strCreatePage = 'Stvaryć novuju staronku';
+$strCreatePdfFeat = 'Stvareńnie PDF-fajłaŭ';
+$strCreateUserDatabase = 'Baza dadzienych dla karystalnika';
+$strCreateUserDatabaseName = 'Stvaryć bazu dadzienych z takim samym imiem i nadzialić usimi pryvilejami';
+$strCreateUserDatabaseNone = 'Nijakaja';
+$strCreateUserDatabaseWildcard = 'Nadzialić usimi pryvilejami bazy z imienami pa mascy (imia karystalnika_%)';
+$strCreationDates = 'Stvareńnie/Abnaŭleńnie/Pravierka dat';
+$strCriteria = 'Kryter';
+$strCroatian = 'Charvackaja';
+$strCSV = 'CSV';
+$strCyrillic = 'Kiryličnaja';
+$strCzechSlovak = 'Čechasłavackaja';
+$strCzech = 'Českaja';
+
+$strDanish = 'Dackaja';
+$strData = 'Dadzienyja';
+$strDatabase = 'Baza dadzienych';
+$strDatabaseEmpty = 'Imia bazy dadzienych nie paznačanaje!';
+$strDatabaseExportOptions = 'Nałady ekspartu bazy dadzienych';
+$strDatabaseHasBeenDropped = 'Baza dadzienych %s była vydalenaja.';
+$strDatabases = 'Bazy dadzienych';
+$strDatabasesDropped = '%s bazaŭ dadzienych byli paśpiachova vydalenyja.';
+$strDatabasesStatsDisable = 'Adklučyć statystyku';
+$strDatabasesStatsEnable = 'Uklučyć statystyku';
+$strDatabasesStatsHeavyTraffic = 'Zaŭvaha: Uklučeńnie statystyki bazy dadzienych moža vyklikać vialikuju kolkaść trafiku pamiž web-serveram i serveram MySQL.';
+$strDatabasesStats = 'Statystyka bazaŭ dadzienych';
+$strDataDict = 'Słoŭnik dadzienych';
+$strDataOnly = 'Tolki dadzienyja';
+$strDataPages = 'Staronak z dadzienymi';
+$strDBComment = 'Kamentar da bazy dadzienych: ';
+$strDBCopy = 'Kapijavać bazu dadzienych u';
+$strDbPrivileges = 'Specyfičnyja pryvilei bazy dadzienych';
+$strDBRename = 'Pierajmienavać bazu dadzienych u';
+$strDbSpecific = 'specyfičny dla bazy dadzienych';
+$strDefaultEngine = '%s źjaŭlajecca mašynaj zachavańnia dadzienych pa zmoŭčańni na hetym MySQL-servery.';
+$strDefault = 'Pa zmoŭčańni';
+$strDefaultValueHelp = 'Dla značeńniaŭ pa zmoŭčańni, kali łaska, uviadzicie prosta značeńnie, biez vykarystańnia zvarotnych słešaŭ i dvukośsia, vykarystoŭvajučy farmat: a';
+$strDefragment = 'Defrahmentavać tablicu';
+$strDelayedInserts = 'Vykarystoŭvać adkładzienyja ŭstaŭki';
+$strDeleteAndFlush = 'Vydalić karystalnikaŭ i paśla pierazahruzić pryvilei.';
+$strDeleteAndFlushDescr = 'Heta lepšy sposab, ale pierazahruzka pryvilejaŭ moža zaniać peŭny čas.';
+$strDelete = 'Vydalić';
+$strDeleted = 'Radok byŭ vydaleny';
+$strDeleteNoUsersSelected = 'Na vybranyja karystalniki dla vydaleńnia!';
+$strDeleting = 'Vydaleńnie %s';
+$strDelimiter = 'Raździalalnik';
+$strDelOld = 'Biahučaja staronka ŭtrymlivaje spasyłki na tablicy, jakija bolš nie isnujuć. Ci žadajecie vy vydalić hetyja spasyłki?';
+$strDescending = 'advarotny';
+$strDescription = 'Apisańnie';
+$strDictionary = 'słoŭnik';
+$strDirtyPages = 'Brudnych staronak';
+$strDisabled = 'Adklučana';
+$strDisableForeignChecks = 'Adklučyć pravierku źniešnich klučoŭ';
+$strDisplayFeat = 'Pakazvać mahčymaści';
+$strDisplayOrder = 'Paradak prahladu:';
+$strDisplayPDF = 'Pakazać PDF-schiemu';
+$strDoAQuery = 'Vykanać "zapyt zhodna prykłada" (symbal padstanoŭki: "%")';
+$strDocu = 'Dakumentacyja';
+$strDoYouReally = 'Ci sapraŭdy vy žadajecie ';
+$strDrop = 'Vydalić';
+$strDropDatabaseStrongWarning = 'Vy źbirajecie VYDALIĆ bazu dadzienych całkam!';
+$strDropUsersDb = 'Vydalić bazy dadzienych, jakija majuć takija ž imiony jak i karystalniki.';
+$strDumpingData = 'Damp dadzienych tablicy';
+$strDumpSaved = 'Damp zachavany ŭ fajł %s.';
+$strDumpXRows = 'Damp %s radkoŭ, pačynajučy z %s.';
+$strDynamic = 'dynamičny';
+
+$strEditPDFPages = 'Redagavać PDF-staronki';
+$strEditPrivileges = 'Redagavać pryvilei';
+$strEdit = 'Redagavać';
+$strEffective = 'Efektyŭnaść';
+$strEmpty = 'Ačyścić';
+$strEmptyResultSet = 'MySQL viarnuła pusty vynik (to bok nul radkoŭ).';
+$strEnabled = 'Uklučana';
+$strEncloseInTransaction = 'Ekspartavać za adnu tranzakcyju';
+$strEndCut = 'END CUT';
+$strEnd = 'Apošniaja staronka';
+$strEndRaw = 'END RAW';
+$strEngineAvailable = '%s dastupnaja na hetym MySQL-servery.';
+$strEngineDisabled = '%s była adklučanaja dla retaha MySQL-servera.';
+$strEngines = 'Mašyny';
+$strEngineUnsupported = 'Hety server MySQL nie padtrymlivaje mašynu zachavańnia dadzienych %s.';
+$strEnglish = 'Anhielskaja';
+$strEnglishPrivileges = ' Zaŭvaha: imiony pryvilejaŭ MySQL zadajucca pa-anhielsku ';
+$strError = 'Pamyłka';
+$strErrorInZipFile = 'Pamyłka ŭ ZIP-archivie:';
+$strErrorRenamingTable = 'Pamyłka pierajmienavańnia tablicy %1$s u %2$s';
+$strEscapeWildcards = 'Symbali padstanoŭki _ i % musiać być ekranavanymi symbalem \ dla ich litaralnaha vykarystańnia';
+$strEsperanto = 'Esperanta';
+$strEstonian = 'Estonskaja';
+$strExcelEdition = 'Versija Excel';
+$strExecuteBookmarked = 'Vykanać zapyt z zakładak';
+$strExplain = 'Tłumačyć SQL';
+$strExportMustBeFile = 'Dadzienyja vybranaha typu ekspartavańnia musiać być zazavanymi ŭ fajł!';
+$strExport = 'Ekspart';
+$strExtendedInserts = 'Pašyranyja ŭstaŭki';
+$strExtra = 'Dadatkova';
+
+$strFailedAttempts = 'Niaŭdałych sprobaŭ';
+$strFieldHasBeenDropped = 'Pole %s było vydalenaje';
+$strField = 'Pole';
+$strFieldsEnclosedBy = 'Pali ŭziatyja ŭ';
+$strFieldsEscapedBy = 'Pali ekranujucca';
+$strFields = 'Pali';
+$strFieldsTerminatedBy = 'Pali padzielenyja';
+$strFileAlreadyExists = 'Fajł %s užo isnuje na servery, źmianicie imia fajła abo praviercie opcyju pierazapisu.';
+$strFileCouldNotBeRead = 'Niemahčyma pračytać fajł';
+$strFileNameTemplateDescription = 'Hetaje značeńnie interpretujecca z vykarystańniem %1$sstrftime%2$s, tamu možna vykarystoŭvać radki farmatavańnia času. Aproč hetaha, buduć praviedzienyja nastupnyja źmieny: %3$s. Astatni tekst zastaniecca jak jość.';
+$strFileNameTemplateDescriptionDatabase = 'imia bazy dadzienych';
+$strFileNameTemplateDescriptionServer = 'imia servera';
+$strFileNameTemplateDescriptionTable = 'imia tablicy';
+$strFileNameTemplate = 'Šablon nazvy fajła';
+$strFileNameTemplateRemember = 'zapomnić šablon';
+$strFileToImport = 'Impartavać fajł';
+$strFixed = 'fiksavany';
+$strFlushPrivilegesNote = 'Zaŭvaha: phpMyAdmin atrymlivaje pryvilei karystalnikaŭ naŭprostava z tablic pryvilejaŭ MySQL. Źmieściva hetych tablic moža adroźnivacca ad pryvilejaŭ, jakija vykarystoŭvaje server, kali jany byli źmienienyja ŭručnuju. U hetym vypadku vam treba %spierazahruzić pryvilei%s da taho, jak vy praciahniecie.';
+$strFlushQueryCache = 'Skinuć keš zapytaŭ';
+$strFlushTable = 'Skinuć keš tablicy ("FLUSH")';
+$strFlushTables = 'Skinuć (zakryć) usie tablicy';
+$strFontSize = 'Pamier šryfta';
+$strFormat = 'Farmat';
+$strFormEmpty = 'Nie zadadzienaje značeńnie ŭ formie!';
+$strFreePages = 'Volnych staronak';
+$strFullText = 'Poŭnyja teksty';
+$strFunction = 'Funkcyja';
+$strFunctions = 'Funkcyi';
+
+$strGenBy = 'Stvorany';
+$strGeneralRelationFeat = 'Mahčymaści asnoŭnych suviaziaŭ';
+$strGenerate = 'Zgieneravać';
+$strGeneratePassword = 'Zgieneravać parol';
+$strGenTime = 'Čas stvareńnia';
+$strGeorgian = 'Hruzinskaja';
+$strGerman = 'Niamieckaja';
+$strGlobal = 'hlabalny';
+$strGlobalPrivileges = 'Hlabalnyja pryvilei';
+$strGlobalValue = 'Hlabalnaje značeńnie';
+$strGo = 'Paniesłasia';
+$strGrantOption = 'Grant';
+$strGreek = 'Hreckaja';
+$strGzip = 'archivavany ŭ gzip';
+
+$strHandler = 'Apracoŭnik';
+$strHasBeenAltered = 'była źmienienaja.';
+$strHaveToShow = 'Vam nieabchodna vybrać prynamsi adnu kalonku dla adlustravańnia';
+$strHebrew = 'Habrejskaja';
+$strHome = 'Da pačatku';
+$strHomepageOfficial = 'Aficyjnaja staronka phpMyAdmin';
+$strHostEmpty = 'Pustoje imia chostu!';
+$strHost = 'Chost';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Vuhorskaja';
+
+$strIcelandic = 'Iślandzkaja';
+$strId = 'ID';
+$strIdxFulltext = 'Poŭnatekstekstavaje';
+$strIgnore = 'Ignaravać';
+$strIgnoreDuplicates = 'Ignaravać radki, jakija paŭtarajucca';
+$strIgnoreInserts = 'Vykarystoŭvać ustaŭki ignaravańniaŭ';
+$strImport = 'Imrart';
+$strImportFiles = 'Impartavać fajły';
+$strImportFormat = 'Farmat impartavanaha fajła';
+$strImportSuccessfullyFinished = 'Impartravańnie paśpiachova zavieršanaje, vykanana %d zapytaŭ.';
+$strIndex = 'Indeks';
+$strIndexes = 'Indeksy';
+$strIndexHasBeenDropped = 'Indeks %s byŭ vydaleny';
+$strIndexName = 'Imia indeksa:';
+$strIndexType = 'Typ indeksa:';
+$strIndexWarningTable = 'Prablemy z indeksami dla tablicy `%s`';
+$strInnoDBAutoextendIncrement = 'Aŭtapašyralnaje pryraščeńnie';
+$strInnoDBAutoextendIncrementDesc = ' Pamier pryraščeńnia dla pašyreńnia pamieru prastory aŭtapašyralnaj tablicy, kali jana zapoŭnicca.';
+$strInnoDBBufferPoolSizeDesc = 'Pamier buferu ŭ pamiaci, jaki InnoDB vykarystoŭvaje dla kešavańnia dadzienych i indeksaŭ tablic.';
+$strInnoDBBufferPoolSize = 'Pamier pułu buferu';
+$strInnoDBDataFilePath = 'Fajły dadzienych';
+$strInnoDBDataHomeDirDesc = 'Ahulnaja častka šlachu tečki da ŭsich fajłaŭ dadzienych InnoDB.';
+$strInnoDBDataHomeDir = 'Chatniaja tečka dadzienych';
+$strInnoDBPages = 'staronak';
+$strInnodbStat = 'Stan InnoDB';
+$strInsecureMySQL = 'Vaš kanfihuracyjny fajł utrymlivaje nałady (karystalnik root biez parolu), jakija adpaviadajuć pryvilejavanamu karystalniku MySQL pa zmoŭčańni. Vaš server MySQL pracuje z hetaj naładaj pa zmoŭčańni i źjaŭlajecca adkrytym dla źniešniaha ŭryvańnia, i tamu vam abaviazkova treba vypravić hetuju chibu ŭ biaśpiecy.';
+$strInsertAsNewRow = 'Ustavić jak novy radok';
+$strInsert = 'Ustavić';
+$strInternalRelations = 'Unutranyja suviazi';
+$strInUse = 'vykarystoŭvajecca';
+$strInvalidAuthMethod = 'U kanfihuracyi vyznačany niekarektny metad aŭtentyfikacyi:';
+$strInvalidColumn = 'Vyznačanaja niekarektnaja kalonka (%s)!';
+$strInvalidColumnCount = 'Kolkaść kalonak musić być bolšaj za nul.';
+$strInvalidCSVFieldCount = 'Niapravilnaja kolkaść paloŭ u CSV-dadzienych u radku %d.';
+$strInvalidCSVFormat = 'Niekarektny farmat CSV-dadzienych u radku %d.';
+$strInvalidCSVParameter = 'Niedapuščalny paremetar dla impartu dadzienych u CSV: %s';
+$strInvalidDatabase = 'Niapravilnaja baza dadzienych';
+$strInvalidFieldAddCount = 'Treba dadać prynamsi adno pole.';
+$strInvalidFieldCount = 'Tablica musić mieć prynamsi adno pole.';
+$strInvalidLDIImport = 'Hety płahin nie padtrymlivaje ścisnutyja dadzienyja!';
+$strInvalidRowNumber = '%d nie źjaŭlajecca karektnym numaram radka.';
+$strInvalidServerHostname = 'Niapravilnaje imia chostu dla servera %1$s. Kali łaska, praviercie kanfihurycyju.';
+$strInvalidServerIndex = 'Niekarektny indeks servera: "%s"';
+$strInvalidTableName = 'Niekarektnaje imia tablicy';
+
+$strJapanese = 'Japonskaja';
+$strJoins = 'Ab\'jadnańni';
+$strJumpToDB = 'Pierajści da bazy dadzienych "%s".';
+$strJustDeleteDescr = '"Vydalenyja" karystalniki ŭsio jašče zmohuć atrymać dostup da servera jak zvyčajna, pakul pryvilei nia buduć pierazahružanyja.';
+$strJustDelete = 'Prosta vydalić karystalnikaŭ z tablic pryvilejaŭ.';
+
+$strKeepPass = 'Nie źmianiać parol';
+$strKeyCache = 'Keš klučoŭ';
+$strKeyname = 'Imia kluča';
+$strKill = 'Spynić';
+$strKorean = 'Karejskaja';
+
+$strLandscape = 'Krajavid';
+$strLanguage = 'Mova';
+$strLanguageUnknown = 'Nieviadomaja mova: %1$s.';
+$strLatchedPages = 'Fiksavanyja staronki';
+$strLatexCaption = 'Zahałovak tablicy';
+$strLatexContent = 'Źmieściva tablicy __TABLE__';
+$strLatexContinuedCaption = 'Praciahnuty zahałovak tablicy';
+$strLatexContinued = '(praciah)';
+$strLatexIncludeCaption = 'Uklučyć zahałovak tablicy';
+$strLatexLabel = 'Kluč mietki';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktura tablicy __TABLE__';
+$strLatvian = 'Łatvijskaja';
+$strLDI = 'CSV z vykarystańniem LOAD DATA';
+$strLDILocal = 'Vykarystoŭvać klučavoje słova LOCAL';
+$strLengthSet = 'Daŭžynia/Značeńni*';
+$strLimitNumRows = 'Kolkaść radkoŭ na staronku';
+$strLinesTerminatedBy = 'Radki padzielenyja';
+$strLinkNotFound = 'Suviaź nia znojdzienaja';
+$strLinksTo = 'Źviazanaja z';
+$strLithuanian = 'Litoŭskaja';
+$strLocalhost = 'Lakalny';
+$strLocationTextfile = 'Miescaznachodžańnie tekstavaha fajła';
+$strLoginInformation = 'Infarmacyja pra ŭvachod';
+$strLogin = 'Uvachod u systemu';
+$strLogout = 'Vyjści z systemy';
+$strLogPassword = 'Parol:';
+$strLogServer = 'Server';
+$strLogUsername = 'Imia karystalnika:';
+$strLongOperation = 'Hetaja aperacyja moža zaniać šmat času. Praciahvać?';
+
+$strMaxConnects = 'maksymum adnačasovych złučeńniaŭ';
+$strMaximalQueryLength = 'Maksymalnaja daŭžynia stvoranaha zapytu';
+$strMaximumSize = 'Maksymalny pamier: %s%s';
+$strMbExtensionMissing = 'Pašyreńnie PHP mbstring nia znojdzienaje, a vy, zdajecca, vykarystoŭvajecie šmatbajtavuju kadyroŭku. Biez pašyreńnia mbstring phpMyAdmin nia moža padzialać radki karektna, i heta moža pryvieści da niečakanych vynikaŭ.';
+$strMbOverloadWarning = 'Vy ŭklučyli mbstring.func_overload u vašym kanfihuracyjnym fajle PHP. Hetaja opcyja niesumiaščalnaja z phpMyAdmin i moža vyklikać paškodžańnie dadzienych!';
+$strMIME_available_mime = 'Dastupnyja MIME-typy';
+$strMIME_available_transform = 'Dastupnyja pieraŭtvareńni';
+$strMIME_description = 'Apisańnie';
+$strMIME_MIMEtype = 'MIME-typ';
+$strMIME_nodescription = 'Niama dastupnych apisańniaŭ dla hetaha pieraŭtvareńnia.
+Kali łaska, spytajcie aŭtara, što robić %s.';
+$strMIME_transformation = 'Pieraŭtvareńnie MIME-typu braŭzeram';
+$strMIME_transformation_note = 'Dla atrymańnia śpisu dastupnych opcyjaŭ transfarmacyi i pieraŭtvareńniaŭ ichnych MIME-typaŭ, naciśnicie na %sapisańni pieraŭtvareńniaŭ%s';
+$strMIME_transformation_options = 'Opcyi pieraŭtvareńnia';
+$strMIME_transformation_options_note = 'Kali łaska, uvodźcie značeńni opcyjaŭ pieraŭtvareńnia vykarystoŭvajučy hety farmat: \'a\', 100, b,\'c\'...
+Kali vam treba ŭžyć zvarotny słeš ("\") abo apostraf ("\'") u hetych značeńniach, ustaŭcie zvarotny słeš pierad imi (naprykład, \'\\\\xyz\' abo \'a\\\'b\').';
+$strMIMETypesForTable = 'MIME-typy tablicy';
+$strMIME_without = 'MIME-typy, vyłučanyja kursivam, nia majuć asobnaj funkcyi pieraŭtvareńnia';
+$strModifications = 'Madyfikacyi byli zachavanyja';
+$strModify = 'Źmianić';
+$strModifyIndexTopic = 'Źmianić indeks';
+$strMoveTable = 'Pieranieści tablicu ŭ (baza dadzienych.tablica):';
+$strMoveTableOK = 'Tablica %s była pieraniesienaja ŭ %s.';
+$strMoveTableSameNames = 'Niemahčyma pieranieści tablicu ŭ samu siabie!';
+$strMultilingual = 'šmatmoŭnaja';
+$strMyISAMDataPointerSizeDesc = 'Značeńnie pa zmoŭčańni pamieru ŭkazalnika ŭ bajtach, dla vykarystańnia ŭ CREATE TABLE dla tablic MyISAM, kali nia vyznačanaja opcyja MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Pamier ukazalnika na dadzienyja';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Kali pamier časovaha fajła, jaki vykarystoŭvajecca dla chutkaha stvareńnia indeksu MyISAM, budzie bolšy, čym vykarystańnie dla kešu klučoŭ pamieru, paznačanaha tut, vybierycie metad kešavańnia klučoŭ.';
+$strMyISAMMaxExtraSortFileSize = 'Maksymalny pamier časovych fajłaŭ dla stvareńnia indeksu';
+$strMyISAMMaxSortFileSizeDesc = 'Maksymalny pamier časovaha fajła MySQL, jaki dazvolena vykarystoŭvać dla pierastvareńnia indeksu MyISAM (padčas REPAIR TABLE, ALTER TABLE, abo LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maksymalny pamier dla časovych fajłaŭ sartavańnia';
+$strMyISAMRecoverOptionsDesc = 'Režym dla aŭtamatyčnaha ŭznaŭleńnia paškodžanych tablic MyISAM, jak vyznačany praz opcyju --myisam-recover zahruzki servera.';
+$strMyISAMRecoverOptions = 'Režym aŭtamatyčnaha ŭznaŭleńnia';
+$strMyISAMRepairThreadsDesc = 'Kali hetaje značeńnie bolšaje za 1, indeksy tablic MyISAM buduć stvaracca paralelna (kožny indeks u svaim ułasnym patoku) padčas uznaŭleńnia pracesam sartavańnia.';
+$strMyISAMRepairThreads = 'Patokaŭ uznaŭleńnia';
+$strMyISAMSortBufferSizeDesc = 'Bufer, jaki vydzialajecca dla sartavańnia indeksaŭ MyISAM padčas REPAIR TABLE abo padčas stvareńnia indeksaŭ, vykarystoŭvajučy CREATE INDEX ci ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Pamier buferu sartavańnia';
+$strMySQLCharset = 'Kadyroŭka MySQL';
+$strMysqlClientVersion = 'Versija klijenta MySQL';
+$strMySQLConnectionCollation = 'Supastaŭleńnie padłučeńnia da MySQL';
+$strMySQLSaid = 'Adkaz MySQL: ';
+$strMySQLShowProcess = 'Pakazać pracesy';
+
+$strName = 'Nazva';
+$strNext = 'Nastupnaja staronka';
+$strNoActivity = 'Nie było anijakaj aktyŭnaści na praciahu %s sekundaŭ. Kali łaska, uvajdzicie znoŭ';
+$strNoDatabases = 'Bazy dadzienych adsutničajuć';
+$strNoDatabasesSelected = 'Nia vybranaja baza dadzienych.';
+$strNoDataReceived = 'Dadzienyja dla impartavańnia nie atrymanyja. Albo nivodny fajł nia byŭ zahružany, albo pamier fajła pieravysiŭ maksymalny pamier, vyznačany kanfihuracyjaj PHP. Hł. FAQ 1.16.';
+$strNoDescription = 'niama apisańnia';
+$strNoDetailsForEngine = 'Dla hetaj mašyny zachavańnia dadzienych detalnaja infarmacyja nie dastupnaja.';
+$strNoDropDatabases = 'Kamandy "DROP DATABASE" adklučanyja.';
+$strNoExplain = 'Nie tłumačyć SQL';
+$strNoFilesFoundInZip = 'Fajły ŭ ZIP-archivie nia znojdzienyja!';
+$strNoFrames = 'Dla raboty phpMyAdmin patrebny braŭzer z padtrymkaj frejmaŭ.';
+$strNo = 'Nie';
+$strNoIndex = 'Indeks nia vyznačany!';
+$strNoIndexPartsDefined = 'Častki indeksu nia vyznačanyja!';
+$strNoModification = 'Niama źmienaŭ';
+$strNone = 'Niama';
+$strNoOptions = 'Hety farmat nia maje opcyjaŭ';
+$strNoPassword = 'Biez parola';
+$strNoPermission = 'Web-server nia maje dazvołu dla zachavańnia ŭ fajł %s.';
+$strNoPhp = 'Biez PHP-kodu';
+$strNoPrivileges = 'Biez pryvilejaŭ';
+$strNoRights = 'Vy nia majecie dastatkovych pryvilejaŭ być u hetym miescy ŭ hety čas!';
+$strNoRowsSelected = 'Nivodny radok nia vybrany';
+$strNoSpace = 'Niedastatkova miesca dla zachavańnia ŭ fajł %s.';
+$strNoTablesFound = 'U bazie dadzienych tablic nia vyjaŭlena.';
+$strNoThemeSupport = 'Temy nie padtrymlivajucca; kali łaska, praviercie vašuju kanfihuracyju i/abo vašyja temy ŭ tečcy %s.';
+$strNotNumber = 'Heta nia lik!';
+$strNotOK = 'nie OK';
+$strNotSet = 'Tablica %s nia znojdzienaja abo nia vyznačanaja ŭ %s';
+$strNoUsersFound = 'Nie znojdzieny karystalnik.';
+$strNoValidateSQL = 'Nie praviarać SQL';
+$strNull = 'Nul';
+$strNumberOfFields = 'Kolkaść paloŭ';
+$strNumSearchResultsInTable = '%s supadzieńniaŭ u tablicy %s';
+$strNumSearchResultsTotal = 'Ahułam: %s supadzieńniaŭ';
+$strNumTables = 'Tablic';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Specyfikacyja Open Document';
+$strOpenDocumentText = 'Tekst Open Document';
+$strOpenNewWindow = 'Adkryć novaje akno phpMyAdmin';
+$strOperations = 'Aperacyi';
+$strOperator = 'Aperatar';
+$strOptimizeTable = 'Aptymizavać tablicu';
+$strOr = 'Abo';
+$strOverhead = 'Vykarystańnie resursaŭ';
+$strOverwriteExisting = 'Pierazapisvać isnujučy(ja) fajł(y)';
+
+$strPageNumber = 'Staronka:';
+$strPagesToBeFlushed = 'Skinuć keš staronak';
+$strPaperSize = 'Pamier papiery';
+$strPartialImport = 'Častkovy impart';
+$strPartialText = 'Častkovyja teksty';
+$strPasswordChanged = 'Parol dla %s paśpiachova źmienieny.';
+$strPasswordEmpty = 'Pusty parol!';
+$strPasswordHashing = 'Chešavańnie parolu';
+$strPassword = 'Parol';
+$strPasswordNotSame = 'Paroli nie supadajuć!';
+$strPdfDbSchema = 'Struktura bazy "%s" — staronka %s';
+$strPdfInvalidTblName = 'Tablicy "%s" nie isnuje!';
+$strPdfNoTables = 'Niama tablic';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Hieneruje spravazdaču z dadzienymi asobnaj tablicy)';
+$strPDFReportTitle = 'Zahałovak spravazdačy';
+$strPerHour = 'u hadzinu';
+$strPerMinute = 'u chvilinu';
+$strPerSecond = 'u sekundu';
+$strPersian = 'Persydzkaja';
+$strPhoneBook = 'telefonnaja kniha';
+$strPhp = 'Stvaryć PHP-kod';
+$strPHPVersion = 'Versija PHP';
+$strPmaDocumentation = 'Dakumentacyja pa phpMyAdmin';
+$strPmaUriError = 'Dyrektyva $cfg[\'PmaAbsoluteUri\'] PAVINNA być vyznačanaja ŭ vašym kanfihuracyjnym fajle!';
+$strPolish = 'Polskaja';
+$strPortrait = 'Partret';
+$strPos1 = 'Pieršaja staronka';
+$strPrevious = 'Papiaredniaja staronka';
+$strPrimary = 'Pieršasny';
+$strPrimaryKeyHasBeenDropped = 'Pieršasny kluč byŭ vydaleny';
+$strPrimaryKeyName = 'Imia pieršasnaha kluča musić być PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" musić być imiem pieršasnaha kluča i tolki jaho!)';
+$strPrint = 'Druk';
+$strPrintView = 'Versija dla druku';
+$strPrintViewFull = 'Versija dla druku (z usim tekstam)';
+$strPrivDescAllPrivileges = 'Uklučaje ŭsie pryvilei, aproč GRANT.';
+$strPrivDescAlter = 'Dazvalaje źmianiać strukturu isnych tablic.';
+$strPrivDescAlterRoutine = 'Dazvalaje źmianiać i vydalać pragramy, jakija zachoŭvajucca.';
+$strPrivDescCreateDb = 'Dazvalaje stvarać novyja bazy dadzienych i tablicy.';
+$strPrivDescCreateRoutine = 'Dazvalaje stvarać pragramy, jakija zachoŭvajucca.';
+$strPrivDescCreateTbl = 'Dazvalaje stvarać novyja tablicy.';
+$strPrivDescCreateTmpTable = 'Dazvalaje stvarać časovyja tablicy.';
+$strPrivDescCreateUser = 'Dazvalaje stvarać, vydalać i pierajmianoŭvać ulikovyja zapisy karystalnikaŭ';
+$strPrivDescCreateView = 'Dazvalaje stvarać novyja prahlady.';
+$strPrivDescDelete = 'Dazvalaje vydalać dadzienyja.';
+$strPrivDescDropDb = 'Dazvalaje vydalać bazy dadzienych i tablicy.';
+$strPrivDescDropTbl = 'Dazvalaje vydalać tablicy.';
+$strPrivDescExecute5 = 'Dazvalaje vykanańnie pragramaŭ, jakija zachoŭvajucca.';
+$strPrivDescExecute = 'Dazvalaje vykanańnie zachavanych pracedur; Nie pracuje ŭ hetaj versii MySQL.';
+$strPrivDescFile = 'Dazvalaje impartavać dadzienyja z fajłaŭ i ekspartavać dadzienyja ŭ fajły.';
+$strPrivDescGrant = 'Dazvalaje dadavać karystalnikaŭ i pryvilei biez pierazahruzki tablic pryvilejaŭ.';
+$strPrivDescIndex = 'Dazvalaje stvarać i vydalać indeksy.';
+$strPrivDescInsert = 'Dazvalaje ŭstaŭlać i zamianiać dadzienyja.';
+$strPrivDescLockTables = 'Dazvalaje blakavać tablicy dla biahučaha patoku.';
+$strPrivDescMaxConnections = 'Abmiažoŭvaje kolkaść novych złučeńniaŭ, jakija karystalnik moža adkryć na praciahu hadziny.';
+$strPrivDescMaxQuestions = 'Abmiažoŭvaje kolkaść zapytaŭ, jakija karystalnik moža adpravić na server na praciahu hadziny.';
+$strPrivDescMaxUpdates = 'Abmiažoŭvaje kolkaść kamandaŭ, źmianiajučych lubuju tablicu abo bazu dadzienych, jakija karystalnik moža vykanać na praciahu hadziny.';
+$strPrivDescMaxUserConnections = 'Abmiažoŭvaje kolkaść adnačasovych złučeńniaŭ, jakija moža mieć karystalnik.';
+$strPrivDescReferences = 'Nie pracuje ŭ hetaj versii MySQL.';
+$strPrivDescReload = 'Dazvalaje pierazahružać nałady servera i ačyščać keš servera.';
+$strPrivDescReplClient = 'Dazvalaje karystalniku pytacca, dzie znachodziacca slaves / masters.';
+$strPrivDescReplSlave = 'Nieabchodna dla replikacyi slaves.';
+$strPrivDescSelect = 'Dazvalaje čytać dadzienyja.';
+$strPrivDescShowDb = 'Daje dostup da poŭnaha śpisu bazaŭ dadzienych.';
+$strPrivDescShowView = 'Dazvalaje vykanańnie zapytaŭ SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Dazvalaje spyniać server.';
+$strPrivDescSuper = 'Dazvalaje padłučeńnie, navat kali dasiahnuty maksymalny lik padłučeńniaŭ; Patrabujecca dla bolšaści administratyŭnych aperacyjaŭ, takich jak vyznačeńnie hlabalnych źmiennych abo spynieńnie patokaŭ inšych karystalnikaŭ.';
+$strPrivDescUpdate = 'Dazvalaje źmianiać dadzienyja.';
+$strPrivDescUsage = 'Biez pryvilejaŭ.';
+$strPrivileges = 'Pryvilei';
+$strPrivilegesReloaded = 'Pryvilei byli paśpiachova pierazahružanyja.';
+$strProcedures = 'Pracedury';
+$strProcesses = 'Pracesy';
+$strProcesslist = 'Śpis pracesaŭ';
+$strProtocolVersion = 'Versija pratakołu';
+$strPutColNames = 'Paznačyć nazvy paloŭ u pieršym radku';
+
+$strQBE = 'Zapyt zhodna prykładu';
+$strQBEDel = 'Vydalić';
+$strQBEIns = 'Ustavić';
+$strQueryCache = 'Keš zapytaŭ';
+$strQueryFrame = 'Akno zapytu';
+$strQueryOnDb = 'SQL-zapyt da BD %s:';
+$strQueryResultsOperations = 'Dziejańni z vynikami zapytaŭ';
+$strQuerySQLHistory = 'Historyja SQL';
+$strQueryStatistics = 'Statystyka zapytaŭ: Z momantu zapusku %s zapytaŭ było adpraŭlena na server.';
+$strQueryTime = 'Zapyt vykonvaŭsia %01.4f sek';
+$strQueryType = 'Typ zapytu';
+$strQueryWindowLock = 'Nie pierazapisvajcie hety zapyt u inšych voknach';
+
+$strReadRequests = 'Zapyty čytańnia';
+$strReceived = 'Atrymana';
+$strRecords = 'Zapisy';
+$strReferentialIntegrity = 'Pravieryć cełasnaść dadzienych:';
+$strRefresh = 'Abnavić';
+$strRelationalSchema = 'Relacyjnaja schiema';
+$strRelationNotWorking = 'Dadatkovyja mahčymaści raboty z źviazanymi tablicami byli adklučanyja. Kab vyśvietlić čamu, naciśnicie %stut%s.';
+$strRelationsForTable = 'Suviazi ŭ tablicy';
+$strRelations = 'Suviazi';
+$strRelationView = 'Prahlad zaležnaściaŭ';
+$strReloadingThePrivileges = 'Pierazahruzić pryvilei';
+$strReloadPrivileges = 'Pierazahruzić pryvilei';
+$strRemoveSelectedUsers = 'Vydalić vybranych karystalnikaŭ';
+$strRenameDatabaseOK = 'Baza dadzienych %s była pierajmienavanaja ŭ %s';
+$strRenameTable = 'Pierajmienavać tablicu ŭ';
+$strRenameTableOK = 'Tablica %s była pierajmienavanaja ŭ %s';
+$strRepairTable = 'Ramantavać tablicu';
+$strReplaceNULLBy = 'Zamianiać NULL na';
+$strReplaceTable = 'Zamianić dadzienyja tablicy dadzienymi z fajła';
+$strReplication = 'Replikacyja';
+$strReset = 'Skinuć';
+$strResourceLimits = 'Abmiežavańni resursaŭ';
+$strReType = 'Paćvierdžańnie';
+$strRevoke = 'Anulavać';
+$strRevokeAndDelete = 'Anulavać usie aktyŭnyja pryvilei karystalnikaŭ i paśla vydalić ich.';
+$strRevokeAndDeleteDescr = 'Karystalniki ŭsio jašče buduć mieć pryvilei karystańnia (USAGE), pakul pryvilei nia buduć pierazahružanyja.';
+$strRevokeMessage = 'Vy anulavali pryvilei dla %s';
+$strRomanian = 'Rumynskaja';
+$strRowLength = 'Daŭžynia radka';
+$strRows = 'Radki';
+$strRowsFrom = 'radkoŭ, pačynajučy z zapisu #';
+$strRowSize = ' Pamier radka ';
+$strRowsModeFlippedHorizontal = 'haryzantalna (paviernutyja zahałoŭki)';
+$strRowsModeHorizontal = 'haryzantalna';
+$strRowsModeOptions = 'u režymie %s i paŭtarać zahałoŭki praz kožnyja %s radkoŭ';
+$strRowsModeVertical = 'vertykalna';
+$strRowsStatistic = 'Statystyka radku';
+$strRunning = 'na %s';
+$strRunQuery = 'Vykanać zapyt';
+$strRunSQLQuery = 'Vykanać SQL-zapyt(y) na bazie dadzienych %s';
+$strRunSQLQueryOnServer = 'Vykanać SQL-zapyt(y) na servery %s';
+$strRussian = 'Rasiejskaja';
+
+$strSave = 'Zachavać';
+$strSaveOnServer = 'Zachavać na servery ŭ tečcy %s';
+$strScaleFactorSmall = 'Maštab zamały dla taho, kab schiema zajmała ŭsiu staronku';
+$strSearchFormTitle = 'Pošuk u bazie dadzienych';
+$strSearch = 'Pošuk';
+$strSearchInTables = 'U tablicy(ach):';
+$strSearchNeedle = 'Słova(y) abo značeńnie(i) dla pošuku (maska: "%"):';
+$strSearchOption1 = 'prynamsi adno z słovaŭ';
+$strSearchOption2 = 'usie słovy';
+$strSearchOption3 = 'dakładnuju frazu';
+$strSearchOption4 = 'rehularny vyraz';
+$strSearchResultsFor = 'Vyniki pošuku "%s" %s:';
+$strSearchType = 'Znajści:';
+$strSecretRequired = 'Kanfihuracyjnamu fajłu zaraz patrebnaja sakretnaja fraza (blowfish_secret).';
+$strSelectADb = 'Kali łaska, vybierycie bazu dadzienych';
+$strSelectAll = 'Vybrać usio';
+$strSelectBinaryLog = 'Vyłučycie dvajkovy łog dla prahladu';
+$strSelectFields = 'Vybrać pali (prynamsi adno):';
+$strSelectNumRows = 'pa zapytu';
+$strSelectTables = 'Vybierycie tablicu(y)';
+$strSend = 'Zachavać jak fajł';
+$strSent = 'Adpraŭlena';
+$strServerChoice = 'Vybar servera';
+$strServerNotResponding = 'Server nie adkazvaje';
+$strServer = 'Server';
+$strServers = 'Servery';
+$strServerStatus = 'Biahučaja infarmacyja';
+$strServerStatusDelayedInserts = 'Adkładzienyja ŭstaŭki';
+$strServerStatusUptime = 'Hety server MySQL pracuje %s. Jon byŭ zapuščany %s.';
+$strServerTabVariables = 'Źmiennyja';
+$strServerTrafficNotes = 'Trafik servera: Hetyja tablicy pakazvajuć statystyku sietkavaha trafiku hetaha servera MySQL ad momantu jahonaha zapusku.';
+$strServerVars = 'Nałady i źmiennyja servera';
+$strServerVersion = 'Versija servera';
+$strSessionValue = 'Značeńnie sesii';
+$strSetEnumVal = 'Kali typ pola "enum" abo "set", kali łaska, uvodźcie značeńni vykarystoŭvajučy hety farmat: \'a\',\'b\',\'c\'...
+Kali vam patrebna ŭžyć zvarotny słeš ("\") abo apostraf ("\'") siarod hetych značeńniaŭ, pastaŭcie pierad imi zvarotny słeš (naprykład, \'\\\\xyz\' abo \'a\\\'b\').';
+$strShowAll = 'Pakazać usie';
+$strShowColor = 'Pakazać koler';
+$strShowDatadictAs = 'Farmat słoŭnika dadzienych';
+$strShowFullQueries = 'Pakazać poŭnyja zapyty';
+$strShowGrid = 'Pakazać sietku';
+$strShow = 'Pakazać';
+$strShowingBookmark = 'Pakazvajučy zakładku';
+$strShowingRecords = 'Pakazanyja zapisy';
+$strShowOpenTables = 'Pakazać adkrytyja tablicy';
+$strShowPHPInfo = 'Pakazać infarmacyju pra PHP';
+$strShowSlaveHosts = 'Pakazać zaležnyja servery';
+$strShowSlaveStatus = 'Pakazać stan zaležnych serveraŭ';
+$strShowStatusBinlog_cache_disk_useDescr = 'Kolkaść tranzakcyjaŭ, jakija vykarystoŭvali časovy dvajkovy keš zapytaŭ, ale jakija pieravysili značeńnie binlog_cache_size i vykarystoŭvali časovy fajł dla zachoŭvańnia vyrazaŭ tranzakcyi.';
+$strShowStatusBinlog_cache_useDescr = 'Kolkaść tranzakcyjaŭ, jakija vykarystoŭvali časovy dvajkovy keš zapytaŭ.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Kolkaść časovych tablic na dysku, stvoranych aŭtamatyčna serveram padčas vykanańnia vyrazaŭ. Kali lik Created_tmp_disk_tables vialiki, vy možacie pavialičyć značeńnie tmp_table_size, kab časovyja tablicy zachoŭvalisia ŭ pamiaci, a nie na dysku.';
+$strShowStatusCreated_tmp_filesDescr = 'Kolkaść časovych fajłaŭ, stvoranych mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'Kolkaść časovych tablic, raźmieščanych u pamiaci, jakija byli aŭtamatyčna stvoranyja serveram padčas vykanańnia vyrazaŭ.';
+$strShowStatusDelayed_errorsDescr = 'Kolkaść radkoŭ, zapisanych z INSERT DELAYED, z-za jakich adbylisia peŭnyja pamyłki (peŭna, dublavanyja klučy).';
+$strShowStatusDelayed_insert_threadsDescr = 'Kolkaść apracoŭnikaŭ patokaŭ INSERT DELAYED, jakija vykarystoŭvajucca. Kožnaja tablica, na jakoj vykonvajecca INSERT DELAYED atrymlivaje svoj ułasny patok.';
+$strShowStatusDelayed_writesDescr = 'Kolkaść zapisanych INSERT DELAYED radkoŭ.';
+$strShowStatusFlush_commandsDescr = 'Kolkaść vykananych FLUSH-vyrazaŭ.';
+$strShowStatusHandler_commitDescr = 'Kolkaść unutranych COMMIT-vyrazaŭ.';
+$strShowStatusHandler_deleteDescr = 'Kolkaść razoŭ vydaleńnia radka z tablicy.';
+$strShowStatusHandler_discoverDescr = 'Server MySQL moža zapytacca mašynu zachavańnia dadzienych NDB Cluster, ci viedaje jana tablicu z dadzienym imiem. Heta nazyvajecca vyśviatleńniem. Handler_discover pakazvaje kolkaść vyśviatleńniaŭ tablic.';
+$strShowStatusHandler_read_firstDescr = 'Kolkaść razoŭ pieršy zapis byŭ pračytany z indeksu. Kali hetaje značeńnie vialikaje, serveru rekamendujecca rabić vialikuju kolkaść paŭnaindeksavych skanavańniaŭ; naprykład, SELECT col1 FROM foo, uličvajučy, što col1 indeksavanaja.';
+$strShowStatusHandler_read_keyDescr = 'Kolkaść zapytaŭ na čytańnie radka z vykarystańniem kluča. Kali jana vialikaja, heta dobraja prykmieta taho, što zapyty i tablicy dobra indeksavanyja.';
+$strShowStatusHandler_read_nextDescr = 'Kolkaść zapytaŭ čytańnia nastupny radok u klučavym paradku. Jana pavialičvajecca, kali vykonvajecca zapyt na indeksavanuju kalonku z šeraham abmiežavańniaŭ abo kali adbyvajecca skanavańnie indeksaŭ.';
+$strShowStatusHandler_read_prevDescr = 'Kolkaść zapytaŭ čytańnia papiaredni radok u klučavym paradku. Hety metad čytańnia vykarystoŭvajecca pieravažna dla aptymizacyi ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Kolkaść zapytaŭ čytańnia radka fiksavanaj pazycyi. Jana vialikaja, kali vykonvajecca šmat zapytaŭ, jakija patrabujuć sartavańnie vynikaŭ. Mahčyma, prysutničaje šmat zapytaŭ, jakija patrabujuć ad MySQL pierahlad tablicy całkam abo vykonvajucca ab\'jadnańni, jakija niapravilna vykarystoŭvajuć klučy.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Kolkaść zapytaŭ čytańnia nastupnaha radka ŭ fajle dadzienych. Jana vialikaja, kali vykonvajecca šmat prahladaŭ tablicy. U ahulnym vypadku heta aznačaje, što tablicy indeksavanyja niapravilna abo zapyty nie napisanyja tak, kab vykarystoŭvać pieravahi indeksaŭ.';
+$strShowStatusHandler_rollbackDescr = 'Kolkaść unutranych vyrazaŭ ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'Kolkaść zapytaŭ abnaŭleńnia radka ŭ tablicy.';
+$strShowStatusHandler_writeDescr = 'Kolkaść zapytaŭ ustaŭki radka ŭ tablicu.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Kolkaść staronak, jakija ŭtrymlivajuć dadzienyja (źmienienych abo niaźmienienych).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Kolkaść źmienienych staronak.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Kolkaść staronak bufernaha pułu, na jakija byŭ atrymany zapyt na skid.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Kolkaść volnych staronak.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Kolkaść staronak, jakija ŭtrymlivajucca ŭ bufernym pule InnoDB. Heta staronki, jakija ŭ biahučy momant čytajucca ci zapisvajucca abo jakija nia mohuć być skinutyja ci vydalenyja z-za peŭnaj pryčyny.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Kolkaść zaniatych staronak tamu, što jany byli vyznačanyja jak administrycyjnyja dadzienyja takija, jak blakavańnie radkoŭ abo adaptyŭny chešavany indeks. Hetaje značeńnie taksama moža być vyličanaje jak Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Ahulny pamier bufernaha pułu, u staronkach.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Kolkaść «vypadkovych» papiarednich čytańniaŭ, zroblenych InnoDB. Heta adbyvajecca, kali zapyt prahladaje značnuju častku tablicy, ale ŭ vypadkovym paradku.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Kolkaść paśladoŭnych papiarednich čytańniaŭ, zroblenych InnoDB. Heta adbyvajecca, kali InnoDB vykonvaje paśladoŭny poŭny prahlad tablicy.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Kolkaść lagičnych zapytaŭ čytańnia, zroblenych InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Kolkaść lagičnych čytańniaŭ, jakija InnoDB nie zmahła adnavić z bufernaha pułu, a tamu zrabiła adnastaronkavaje čytańnie.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Zvyčajna, zapisy ŭ buferny puł InnoDB, zroblenyja ŭ fonie. Adnak, kali nieabchodna pračytać abo stvaryć staronku i čystyja staronki adsutničajuć, nieabchočna pačakać, pakul peŭnyja staronki nia buduć skinutyja. Hety kamputar padličvaje kolkaść takich čakańniaŭ. Kali pamier buferu byŭ vyznačany pravilna, hetaje značeńnie musić być maleńkim.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Kolkaść zapisaŭ, zroblenych u buferny puł InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Kolkaść aperacyjaŭ fsync() na biahučy momant.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Biahučaja kolkaść aperacyjaŭ fsync(), jakija čakajuć vykanańnia.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Biahučaja kolkaść čytańniaŭ, jakija čakajuć vykanańnia.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Biahučaja kolkaść zapisaŭ, jakija čakajuć vykanańnia.';
+$strShowStatusInnodb_data_readDescr = 'Kolkaść pračytanych na biahučy momant dadzienych, u bajtach.';
+$strShowStatusInnodb_data_readsDescr = 'Ahulnaja kolkaść čytańniaŭ dadzienych.';
+$strShowStatusInnodb_data_writesDescr = 'Ahulnaja kolkaść zapisaŭ dadzienych.';
+$strShowStatusInnodb_data_writtenDescr = 'Kolkaść zapisanych na biahučy momant dadzienych, u bajtach.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Kolkaść padvojnych zapisaŭ, jakija byli vykananyja, i kolkaść staronak, jakija byli zapisanyja dla hetaj mety.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Kolkaść padvojnych zapisaŭ, jakija byli vykananyja, i kolkaść staronak, jakija byli zapisanyja dla hetaj mety.';
+$strShowStatusInnodb_log_waitsDescr = 'Kolkaść vypadkaŭ čakańnia z-za taho, što bufer łogu byŭ zanadta mały, i tamu daviałosia čakać, pakul jon nie ačyścicca.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Kolkaść zapisaŭ u łog.';
+$strShowStatusInnodb_log_writesDescr = 'Kolkaść fizyčna vykananych zapisaŭ u łog-fajł.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Kolkaść synchranizavynych zapisaŭ, zroblenych u łog-fajł.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Kolkaść synchranizavańniaŭ łog-fajła, jakija čakajuć vykanańnia.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Kolkaść zapisaŭ u łog-fajł, jakija čakajuć vykanańnia.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Kolkaść bajtaŭ, zapisanych u łog-fajł.';
+$strShowStatusInnodb_pages_createdDescr = 'Kolkaść stvoranych staronak.';
+$strShowStatusInnodb_page_sizeDescr = 'Pamier zakampilavanaj staronki InnoDB (pa zmoŭčańni 16KB). Peŭnyja vieličyni vymiarajucca ŭ staronkach; pamier staronki dazvalaje chutka pieravieści jaho ŭ bajty.';
+$strShowStatusInnodb_pages_readDescr = 'Kolkaść pračytanych staronak.';
+$strShowStatusInnodb_pages_writtenDescr = 'Kolkaść zapisanych staronak.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Kolkaść blakavańniaŭ radkoŭ, čakańnie jakich adbyvajecca na biahučy momant.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Siaredni čas atrymańnia mahčymaści blakavańnia radku, u milisekundach.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Ahulny čas čakańnia atrymańnia mahčymaści blakavańnia radku, u milisekundach.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maksymalny čas atramańnia mahčymaści blakavańnia radku, u milisekundach.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Kolkaść razoŭ, kali davodziłasia čakać blakavańnie radku.';
+$strShowStatusInnodb_rows_deletedDescr = 'Kolkaść radkoŭ, vydalenych z tablic InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'Kolkaść radkoŭ, ustaŭlenych u tablicy InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'Kolkaś radkoŭ, pračytanych z tablic InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'Kolkaść radkoŭ, abnoŭlenych u tablicach InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Kolkaść blokaŭ u kešy klučoŭ, jakija byli źmienienyja, ale jašče nie byli skinutyja na dysk. Vykarystoŭvajecca jak značeńnie Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Kolkaść niavykarystanych blokaŭ u kešy klučoŭ. Hetaje značeńnie možna vykarystoŭvać dla vyznačeńnia stupieni vykarystańnia kešu klučoŭ.';
+$strShowStatusKey_blocks_usedDescr = 'Kolkaść vykarystanych blokaŭ u kešy klučoŭ. Hetaje značeńnie z dastatkovaj stupieńniu peŭnaści śviedčyć pra maksymalnuju za ŭvieś čas kolkaść blokaŭ, jakija vykarastoŭvalisia adnačasova.';
+$strShowStatusKey_read_requestsDescr = 'Kolkaść zapytaŭ na čytańnie bloku klučoŭ z kešu.';
+$strShowStatusKey_readsDescr = 'Kolkaść fizyčnych čytańniaŭ bloku klučoŭ z dyska. Kali značeńnie Key_reads vialikaje, značeńnie key_buffer_size, vidać, vielmi małoje. Kolkaść promachaŭ u keš možna vyličyć jak Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Kolkaść zapytaŭ na zapis bloku klučoŭ u keš.';
+$strShowStatusKey_writesDescr = 'Kolkaść fizyčnych zapisaŭ bloku klučoŭ na dysk.';
+$strShowStatusLast_query_costDescr = 'Ahulny košt apošniaha zkampilavanaha zapytu, padličanaha aptymizataram zapytaŭ. Karysna dla paraŭnańnia roznych sposabaŭ realizacyi adnaho zapytu. Značeńnie pa zmoŭčańni 0 aznačaje, što nivodny zapyt jašče nia byŭ zkampilavany.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Kolkaść radkoŭ dla zapisu, adkładzienych zapytami INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Kolkaść tablic, jakija byli adkrytyja. Kali adkrytyja tablicy vialikija, značeńnie kešu tablic imavierna vielmi małoje.';
+$strShowStatusOpen_filesDescr = 'Kolkaść adkrytych fajłaŭ.';
+$strShowStatusOpen_streamsDescr = 'Kolkaść adkrytych patokaŭ (vykarystoŭvajucca pieravažna dla łahavańnia).';
+$strShowStatusOpen_tablesDescr = 'Kolkaść adkrytych tablic.';
+$strShowStatusQcache_free_blocksDescr = 'Kolkaść volnych blokaŭ pamiaci ŭ kešy zapytaŭ.';
+$strShowStatusQcache_free_memoryDescr = 'Kolkaść volnaj pamiaci dla kešu zapytaŭ.';
+$strShowStatusQcache_hitsDescr = 'Kolkaść zvarotaŭ da kešu.';
+$strShowStatusQcache_insertsDescr = 'Kolkaść zapytaŭ, jakija byli dadanyja ŭ keš.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Kołkaść zapytaŭ, jakija byli vydalenyja z kešu, kab vyzvalić pamiać dla kešavańnia novych zapytaŭ. Hetyja źviestki mohuć dapamahčy vyznačyć pamier kešu zapytaŭ. Keš zapytaŭ vykarystoŭvaje statehiju elementa, jaki vykarystoŭvaŭsia najmienš (LRU) dla vyznačeńnia, jakija zapyty treba vydalać z kešu.';
+$strShowStatusQcache_not_cachedDescr = 'Kolkaść niekešavalnych zapytaŭ (niekešavalnych abo niekešavanych z-za značeńnia dyrektyvy query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Kolkaść zapytaŭ, jakija prysutničajuć u kešy.';
+$strShowStatusQcache_total_blocksDescr = 'Ahulnaja kolkaść blokaŭ u kešy zapytyŭ.';
+$strShowStatusReset = 'Skinuć statystyku';
+$strShowStatusRpl_statusDescr = 'Stan abaronienaj ad pamyłak replikacyi (jašče nie realizavanaja).';
+$strShowStatusSelect_full_joinDescr = 'Kolkaść ab\'jadnańniaŭ, jakija nie vykarystoŭviajuć indeksy. Kali hetaje značeńnie nia roŭnaje 0, varta pravieryć indeksy ŭ tablicach.';
+$strShowStatusSelect_full_range_joinDescr = 'Kolkaść ab\'jadnańniaŭ, jakija vykarystoŭvali pošuk pa mascy ŭ metavaj tablicy.';
+$strShowStatusSelect_range_checkDescr = 'Kolkaść ab\'jadnańniaŭ biez vykarystańnia klučoŭ, jakija praviarali najaŭnaść kluča paśla kožnaha radka. (Kali hetaje značeńnie nia roŭnaje 0, varta pravieryć indeksy ŭ tablicach.)';
+$strShowStatusSelect_rangeDescr = 'Kolkaść ab\'jadnańniaŭ, jakija vykarystoŭvali spałučeńni paloŭ u pieršaj tablicy. (Zvyčajna nie krytyčna, navat kali hetaje značeńnie vialikaje.)';
+$strShowStatusSelect_scanDescr = 'Kolkaść ab\'jadnańniaŭ, jakija praviali poŭny prahlad pieršaj tablicy.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Kolkaść časovych tablic, jakija ŭ biahučy momant adkrytyja zaležnym SQL-patokam.';
+$strShowStatusSlave_retried_transactionsDescr = 'Ahulnaja (ad zahruzki) kolkaść razoŭ, kali zaležny SQL-patok replikacyi paŭtaraŭ tranzakcyi.';
+$strShowStatusSlave_runningDescr = 'Hetaje značeńnie roŭnaje "ON", kali server źjaŭlajecca zaležnym i padłučanym da servera, jaki jaho kantraluje.';
+$strShowStatusSlow_launch_threadsDescr = 'Kolkaść patokaŭ, jakim spatrebiłasia bolš za slow_launch_time sekundaŭ dla stvareńnia.';
+$strShowStatusSlow_queriesDescr = 'Kolkaść zapytaŭ, na vykanantnie jakich spatrebiłasia bolš, čym long_query_time sekundaŭ.';
+$strShowStatusSort_merge_passesDescr = 'Kolkaść prachodaŭ, jakija byli zroblenyja algarytmam sartavańnia. Kali hetaje značeńnie vialikaje, varta razhledzić pavieličeńnie značeńnia systemnaj źmiennaj sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Kolkaść sartavańniaŭ, jakija byli zroblenyja z vykarystańniem niekalkich słupkoŭ.';
+$strShowStatusSort_rowsDescr = 'Kolkaść adsartavanych radkoŭ.';
+$strShowStatusSort_scanDescr = 'Kolkaść sartavańniaŭ, jakija byli zroblenyja padčas prahladu tablicy.';
+$strShowStatusTable_locks_immediateDescr = 'Kolkaść razoŭ, kali blakavańnie tablicy było zroblenaje imhnienna.';
+$strShowStatusTable_locks_waitedDescr = 'Kolkaść razoŭ, kali blakavańnie tablicy niemahčyma było ažyćciavić imhnienna i peŭny čas pajšoŭ na čakańnie. Kali hetaje značeńnie vialikaje, i isnujuć prablemy z pradukcyjnaściu, varta spačatku aptymizavać zapyty, a paśla abo padzialić tablicu abo tablicy, abo vykarystoŭvać replikacyju.';
+$strShowStatusThreads_cachedDescr = 'Kolkaść patokaŭ u kešy patokaŭ. Stupień traplańnia ŭ keš moža być vyličanaja jak Threads_created/Connections. Kali hetaje značeńnie pafarbavanaje ŭ čyrvony koler, varta pavialičyć značeńnie thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Kolkaść adkrytych na biahučy momant złučeńniaŭ.';
+$strShowStatusThreads_createdDescr = 'Kolkaść patokaŭ, stvoranych dla kiravańnia złučeńniami. Kali značeńnie Threads_created vialikaje, mahčyma, varta pavialičyć značeńnie thread_cache_size. (Zvyčajna, heta nie daje jakoha-niebudź zaŭvažnaha pavieličeńnia pradukcyjnaści, kali prysutničaje dobraja realizacyja patokaŭ.)';
+$strShowStatusThreads_runningDescr = 'Kolkaść patokaŭ, jakija nie źjaŭlajucca śpiačymi.';
+$strShowTableDimension = 'Pakazać raźmiernaść tablic';
+$strShowTables = 'Pakazać tablicy';
+$strShowThisQuery = ' Pakazać hety zapyt znoŭ ';
+$strSimplifiedChinese = 'Kitajskaja sproščanaja';
+$strSingly = '(asobna)';
+$strSize = 'Pamier';
+$strSkipQueries = 'Kolkaść (zapytaŭ), jakija treba prapuścić ad pačatku';
+$strSlovak = 'Słavackaja';
+$strSlovenian = 'Słavienskaja';
+$strSocketProblem = '(abo sokiet lakalnaha servera MySQL nie skanfihuravany pravilna)';
+$strSortByKey = 'Sartavać pa klučy';
+$strSort = 'Paradak';
+$strSorting = 'Sartavańnie';
+$strSpaceUsage = 'Vykarystańnie prastory';
+$strSpanish = 'Hišpanskaja';
+$strSplitWordsWithSpace = 'Słovy, padzielenyja prahałam (" ").';
+$strSQLCompatibility = 'Režym sumiaščalnaści SQL';
+$strSQLExportType = 'Typ ekspartu';
+$strSQLParserBugMessage = 'Mahčyma, vy znajšli pamyłku ŭ SQL-parsery. Kali łaska, uvažliva praviercie vyš zapyt i adpaviednaść dvukośsiaŭ u im. Inšaj mahčymaj pryčynaj pamyłki moža być toje, što vy zahruzili fajł z dvajkovymi dadzienymi pa-za miežami tekstu, vyłučanaha dvukośsiami. Vy taksama možacie pasprabavać adpravić vaš zapyt z kamandnaha radka MySQL. Paviedamleńnie pra pamyłku servera MySQL pryviedzienaje nižej, moža taksama dapamahčy vam vyśvietlić pryčynu prablemu. Kali vy ŭsio jašče majecie prablemy abo parser paviedamlaje pra pamyłku, a z kamandnaha radku zapyt vykonvajecca, kali łaska, skaracicie vaš uviedzieny SQL-zapyt da adnaho zapytu, jaki vyklikaje pamyłku, i adpraŭcie paviedamleńnie pra pamyłku z blokam dadzienych, padadzienych u sekyci CUT nižej:';
+$strSQLParserUserError = 'Zdajecca, vaš SQL-zapyt utrymlivaje pamyłku. Paviedamleńnie pra pamyłku servera MySQL pryviedzienaje nižej, mahčyma, taksama dapamoža vam vyśvietlić pryčynu pamyłki';
+$strSQLQuery = 'SQL-zapyt';
+$strSQLResult = 'SQL-vynik';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Niapravilny identyfikatar';
+$strSQPBugUnclosedQuote = 'Niezakrytaje dvukośsie';
+$strSQPBugUnknownPunctuation = 'Nieviadomy symbal punktuacyi';
+$strStatCheckTime = 'Apošniaja pravierka';
+$strStatCreateTime = 'Stvoranaja';
+$strStatement = 'Vyrazy';
+$strStatisticsOverrun = 'Na zahružanym servery bajtavyja ličylniki mohuć pieraskokvać koła, tamu statystyka, jakuju pakazvaje MySQL-server, moža być niapravilnaj.';
+$strStatUpdateTime = 'Apošniaje abnaŭleńnie';
+$strStatus = 'Stan';
+$strStorageEngine = 'Mašyna zachavańnia dadzienych';
+$strStorageEngines = 'Mašyny zachavańnia dadzienych';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Strukturu i dadzienyja';
+$strStrucExcelCSV = 'CSV dla dadzienych MS Excel';
+$strStrucNativeExcel = 'Rodny farmat MS Excel';
+$strStrucOnly = 'Tolki strukturu';
+$strStructPropose = 'Prapanavanaja struktura tablicy';
+$strStructure = 'Struktura';
+$strSubmit = 'Adpravić';
+$strSuccess = 'Vaš SQL-zapyt byŭ paśpiachova vykanany';
+$strSum = 'Usiaho';
+$strSwedish = 'Švedzkaja';
+$strSwitchToDatabase = 'Pierajści da skapijavanaj bazy dadzienych';
+$strSwitchToTable = 'Pierajści da skapijavanaj tablicy';
+
+$strTableAlreadyExists = 'Tablica %s užo isnuje!';
+$strTableComments = 'Kamentar da tablicy';
+$strTableEmpty = 'Pustaja nazva tablicy!';
+$strTableHasBeenDropped = 'Tablica %s była vydalenaja';
+$strTableHasBeenEmptied = 'Tablica %s była ačyščanaja';
+$strTableHasBeenFlushed = 'Keš tablicy %s byŭ ačyščany';
+$strTableMaintenance = 'Absłuhoŭvańnie tablicy';
+$strTable = 'Tablica';
+$strTableOfContents = 'Źmiest';
+$strTableOptions = 'Opcyi tablicy';
+$strTables = '%s tablic(y)';
+$strTableStructure = 'Struktura tablicy';
+$strTakeIt = 'hetaja';
+$strTblPrivileges = 'Pryvilei, specyfičnyja dla tablicy';
+$strTempData = 'Časovyja dadzienyja';
+$strTextAreaLength = ' Z-za vialikaj daŭžyni,
+hetaje pole nia moža być adredagavanaje ';
+$strThai = 'Tajlandzkaja';
+$strThemeDefaultNotFound = 'Tema pa zmoŭčańni %s nia znojdzienaja!';
+$strThemeNoPreviewAvailable = 'Papiaredni prahlad niedastupny.';
+$strThemeNotFound = 'Tema %s nia znojdzienaja!';
+$strThemeNoValidImgPath = 'Dapuščalny šlach da malunkaŭ temy %s nia znojdzieny!';
+$strTheme = 'Tema / Styl';
+$strThemePathNotFound = 'Nia znojdzieny šlach da temy %s!';
+$strThisHost = 'Hety chost';
+$strThreads = 'Patoki';
+$strThreadSuccessfullyKilled = 'Patok %s byŭ paśpiachova spynieny.';
+$strTime = 'Čas';
+$strTimeoutInfo = 'Papiaredniaje impartavańnie spyniłasia z-za niedachopu času. Paśla novaj zahruzki impartavańnie budzie praciahnutaje z pazycyi %d.';
+$strTimeoutNothingParsed = 'Adnak, padčas apošniaha vykanańnia nijakija dadzienyja byli apracavanyja. Heta zvyčajna značyć, što phpMyAdmin nia zmoža skončyć hetaje impartavańnia, kali vy nie pavialičycie limity vykanańnia php-skryptoŭ.';
+$strTimeoutPassed = 'Vyjšaŭ dazvoleny čas vykanańnia skrypta. Kali vy chočacie zavieršyć impartavańnie, kali łaska, zahruzicie fajł znoŭ i impartavańnie ŭznavicca.';
+$strToggleScratchboard = 'Pakazać papiaredni prahlad';
+$strTotal = 'usiaho';
+$strTotalUC = 'Ahułam';
+$strTraditionalChinese = 'Tradycyjnaja kitajskaja';
+$strTraditionalSpanish = 'Tradycyjnaja hišpanskaja';
+$strTraffic = 'Trafik';
+$strTransactionCoordinator = 'Kaardynatar pierakładu';
+$strTransformation_application_octetstream__download = 'Pakazvaje spasyłku dla zahruzki dvajkovych dadzienych pola. Vy možacie vykarystoŭvać pieršuju opcyju dla vyznačeńnia imia fajła abo vykarystoŭvajcie druhuju opcyju jak imia pola, jakoje ŭtrymlivaje imia fajła. Kali vy vykarystoŭvajecie druhuju opcyju, vam treba pakinuć pieršaje pole pustym';
+$strTransformation_application_octetstream__hex = 'Pakazvaje dadzienyja ŭ šasnaccatkovym vyhladzie. Apcyjanalny pieršy parametar vyznačaje častatu dadavańnia prahała (pa-zmoŭčańni — praz kožnyja 8 bitaŭ).';
+$strTransformation_image_jpeg__inline = 'Pakazvaje naciskalny eskiz; Opcyi — maksymalnaja šyrynia i vyšynia ŭ piksełach. Zachoŭvajucca pačatkovyja praporcyi.';
+$strTransformation_image_jpeg__link = 'Pakazvaje spasyłku dla zahruzki hetaha malunku.';
+$strTransformation_image_png__inline = 'Prahladzieć malunak image/jpeg: ubudavany';
+$strTransformation_text_plain__external = 'TOLKI DLA LINUX: Zapuskaje źniešniuju pragramu i pieradaje joj dadzienyja pola praz standartny ŭvod. Viartaje standartny vyvad pragramy. Pragrama pa zmoŭčańni — Tidy, jakaja drukuje čysty HTML-kod. Ź mierkavańniaŭ biaśpieki, vam treba ŭručnuju adredagavać fajł libraries/transformations/text_plain__external.inc.php i paznačyć śpis pragramaŭ, jakija vy chočacie zrabić dastupnymi. Pieršaja opcyja — tady numar pragramy, jakuju vy chočacie vykarystoŭvać, druhaja opcyja — parametry dla pragramy. Treciaja opcyja, kali vyznačanaja jak 1, skanvertuje dadzienyja z standartnaha vyvadu vykarystoŭvajučy htmlspecialchars() (Pa zmoŭčańni 1). Čaćviertaja opcyja, kali vyznačanaja jak 1, praduchilić pieranos pa słovach, kab pierakanacca, što ŭvieś vychadny patok budzie vyviedzieny ŭ adzin radok (Pa zmoŭčańni 1).';
+$strTransformation_text_plain__formatted = 'Pakazvaje źmieściva pola jak jość, biez apracoŭki jaho funkcyjaj htmlspecialchars(). Tamu razumiejecca, što pole ŭtrymlivaje karektny HTML-kod.';
+$strTransformation_text_plain__imagelink = 'Pakazvaje malunak i spasyłku, pole źmiaščaje nazvu fajła. Pieršaja opcyja — prefiks adrasu kštałtu "http://www.example.com/". Druhaja i treciaja opcyi — šyrynia i vyšynia ŭ piksełach.';
+$strTransformation_text_plain__link = 'Pakazvaje spasyłku; pole źmiaščaje nazvu fajła. Pieršaja opcyja — prefiks adrasu kštałtu "http://www.example.com/". Druhaja opcyja — nazva spasyłki.';
+$strTransformation_text_plain__sql = 'Farmatuje tekst jak SQL-zapyt z padśviečanym syntaksisam.';
+$strTransformation_text_plain__substr = 'Pakazvaje tolki častku radka. Pieršaja opcyja — kolkaść symbalaŭ ad pačatku radka, jakija treba prapuścić (Pa zmoŭčańni 0). Druhaja opcyja — kolkaść symbalaŭ, jakija treba viarnuć (Pa zmoŭčańni: da kanca radka). Treciaja opcyja — radok, jaki treba dałučyć da kanca i/abo z pačatku radka, kali adbudziecca ŭsiačeńnie (Pa zmoŭčańni: "...") .';
+$strTruncateQueries = 'Abrazać pakazanyja zapyty';
+$strTurkish = 'Tureckaja';
+$strType = 'Typ';
+
+$strUkrainian = 'Ukrainskaja';
+$strUncheckAll = 'Źniać usie adznaki';
+$strUnicode = 'Junikod';
+$strUnique = 'Unikalnaje';
+$strUnknown = 'nieviadoma';
+$strUnselectAll = 'Źniać usie adznaki';
+$strUnsupportedCompressionDetected = 'Vy pasprabavali zahruzić fajł z metadam ścisku, jaki niepadtrymlivajecca (%s). Jahonaja padtrymka abo nie realizavanaja, abo adklučanaja ŭ vašaj kanfihuracyi.';
+$strUpdatePrivMessage = 'Vy źmianili pryvilei dla %s.';
+$strUpdateProfileMessage = 'Profil byŭ adnoŭleny.';
+$strUpdateQuery = 'Abnavić zapyt';
+$strUpdComTab = 'Za infarmacyjaj jak abnavić tablicu column_comments źviarniciesia, kali łaska, da dakumentacyi';
+$strUpgrade = 'Vam treba abnavić %s da versii %s ci paźniejšaj.';
+$strUploadLimit = 'Vy, musić, pasprabavali zahruzić vielmi vialiki fajł. Kali łaska, źviarniciesia da %sdakumentacyi%s dla vyśviatleńnia sposabaŭ abyjści hetaje abmiežavańnie.';
+$strUploadsNotAllowed = 'Zahruzki fajłaŭ nie dazvolenyja na hetym servery.';
+$strUsage = 'Vykarystańnie';
+$strUseBackquotes = 'Zvarotnaje dvukośsie ŭ imionach tablic i paloŭ';
+$strUseHostTable = 'Vykarystoŭvać tablicu chostaŭ';
+$strUserAlreadyExists = 'Karystalnik %s užo isnuje!';
+$strUser = 'Karystalnik';
+$strUserEmpty = 'Pustoje imia karystalnika!';
+$strUserName = 'Imia karystalnika';
+$strUserNotFound = 'Vyłučany karystalnik nia znojdzieny ŭ tablicy pryvilejaŭ.';
+$strUserOverview = 'Karystalniki';
+$strUsersDeleted = 'Vybranyja karystalniki byli paśpiachova vydalenyja.';
+$strUsersHavingAccessToDb = 'Karystalniki z pravami dostupu da "%s"';
+$strUseTabKey = 'Vykarystoŭvajcie klavišu TAB dla pieramiaščeńnia ad značeńnia da značeńnia abo CTRL+strełki dla pieramiaščeńnia ŭ luboje inšaje miesca';
+$strUseTables = 'Vykarystoŭvać tablicy';
+$strUseTextField = 'Vykarystoŭvać tekstavaje pole';
+$strUseThisValue = 'Vykarystoŭvać heta značeńnie';
+
+$strValidateSQL = 'Pravieryć SQL';
+$strValidatorError = 'Niemahčyma prainicyjalizavać pravierku SQL. Kali łaska, praviercie, ci ŭstalavanyja ŭ vas nieabchodnyja pašyreńni PHP, jak heta apisana ŭ %sdakumentacyi%s.';
+$strValue = 'Značeńnie';
+$strVar = 'Źmiennaja';
+$strVersionInformation = 'Infarmacyja pra versiju';
+$strView = 'Vyhlad';
+$strViewDumpDatabases = 'Prahladzieć damp (schiemu) bazaŭ dadzienych';
+$strViewDumpDB = 'Prahladzieć damp (schiemu) bazy dadzienych';
+$strViewDump = 'Prahladzieć damp (schiemu) tablicy';
+$strViewHasBeenDropped = 'Vyhlad %s byŭ vydaleny';
+
+$strWebServerUploadDirectoryError = 'Niemahčyma adkryć paznačanuju vami tečku dla zahruzki fajłaŭ';
+$strWebServerUploadDirectory = 'tečka web-servera dla zahruzki fajłaŭ';
+$strWelcome = 'Zaprašajem u %s';
+$strWestEuropean = 'Zachodnieeŭrapiejskaja';
+$strWildcard = 'šablon';
+$strWindowNotFound = 'Niemahčyma abnavić metavaje akno braŭzera. Mahčyma, vy zakryli baćkoŭskaje akno abo nałady biaśpieki vašaha braŭzera skanfihuranyja na blakavańnie mižvakonnych ŭzajemadziejańniaŭ';
+$strWithChecked = 'Z adznačanymi:';
+$strWriteRequests = 'Zapytaŭ zapisu';
+$strWrongUser = 'Niapravilny łahin/parol. U dostupie admoŭlena.';
+
+$strXML = 'XML';
+
+$strYes = 'Tak';
+
+$strZeroRemovesTheLimit = 'Zaŭvaha: Paznačeńnie hetych opcyjaŭ jak 0 (nul) zdymaje abmiežavańnie.';
+$strZip = 'archivavany ŭ zip';
+
+$strTransformation_text_plain__dateformat = 'Pakazvaje TIME, TIMESTAMP, DATETIME albo likavuju mietku času Unix jak adfarmatavanuju datu. Pieršy parametar — heta kolkaść hadzinaŭ, jakija buduć dadadzienyja da mietki času (pa zmoŭčańni — 0). Druhi parametar vykarystoŭvajcie, kab paznačyć inšy farmat daty/času. Treci parametar vyznačaje typ daty, jakaja budzie pakazanaja: vašaja lakalnaja data albo data UTC (vykarystoŭvajcie dla hetaha parametry «local» i «utc» adpaviedna). U zaležnaści ad hetaha farmat daty maje roznyja značeńni: dla atrymańnia parametraŭ lakalnaj daty hladzicie dakumentacyju dla funkcyi PHP strftime(), a dla hrynvickaha času (parametar «utc») — dakumentacyju funkcyi gmdate().';
+$strDocSQL = 'DocSQL';
+$strTableName = 'Imia tablicy';
+$strTableIsEmpty = 'Tablica — pustaja!';
+$strDbIsEmpty = 'Baza dadzienych — pustaja!';
+$strShowingPhp = 'U vyhladzie PHP-kodu';
+$strShowingSQL = 'U vyhladzie SQL-zapytu';
+$strDesigner = 'Dyzajner';
+$strNumberOfTables = 'Kolkaść tablic';
+$strCreateTable = 'Stvaryć tablicu';
+$strCreateRelation = 'Stvaryć suviaź';
+$strSavePosition = 'Zachavać raźmiaščeńnie tablic';
+$strSelectForeignKey = 'Vybierycie źniešni kluč';
+$strHide = 'Schavać';
+$strShowHideLeftMenu = 'Pakazać/schavać meniu źleva';
+$strReload = 'Abnavić';
+$strSmallBigAll = 'Zharnuć/razharnuć adlustravańnie ŭsich tablic';
+$strImportExportCoords = 'Impartavać/Ekspartavać kaardynaty tablic ŭ PDF-schiemu';
+$strMoveMenu = 'Pierasunuć meniu';
+$strAngularLinks = 'Vuhłavyja linii suviaziaŭ';
+$strDirectLinks = 'Pramyja linii suviaziaŭ';
+$strHideShowAll = 'Schavać/pakazać usie tablicy';
+$strHideShowNoRelation = 'Schavać/pakazać tablicy biaz suviaziaŭ';
+$strInternalRelationAdded = 'Unutranaja suviaź dadadzienaja';
+$strRelationDeleted = 'Suviaź vydalenaja';
+$strToSelectRelation = 'Kab vybrać suviaź, naciśnicie na kropcy złučeńnia, jak pakazana na vyjavie:';
+$strExportImportToScale = 'Maštab';
+$strRecommended = 'rekamendavany';
+$strToFromPage = 'staronka';
+$strSelectReferencedKey = 'Vybierycie spasyłkavy kluč';
+$strPleaseSelectPrimaryOrUniqueKey = 'Kali łaska, vybierycie pieršasny (PRIMARY) albo ŭnikalny kluč (UNIQUE)';
+$strHelp = 'Dapamoha';
+$strCancel = 'Skasavać';
+$strDeleteRelation = 'Vydalić suviaź';
+$strKnownExternalBug = 'Isnuje viadomaja pamyłka z vykarystańniem parametra %s, hladzicie apisańnie na %s';
+$strStructureForView = 'Struktura dla prahladu';
+$strStandInStructureForView = 'Zamianialnaja struktura dla prahladu';
+$strToggleSmallBig = 'Pieraklučyć maleńki/vialiki';
+$strIEUnsupported = 'Internet Explorer nie padtrymlivaje hetuju funkcyju.';
+$strErrorRelationAdded = 'Pamyłka: suviaź nie dadadzienaja.';
+$strErrorRelationExists = 'Pamyłka: suviaź užo isnuje.';
+$strErrorSaveTable = 'Pamyłka zachavańnia kaardynataŭ.';
+$strSnapToGrid = 'Źviać ź sietkaj';
+$strDesignerHelpDisplayField = 'Adlustravanyja pali pakazvajucca ružovym koleram. Kab źmianić śpis adlustravanych paloŭ, naciśnicie ikonku «Vybierycie pole dla adlustravańnia» i naciśnicie na adpaviednaje imia pola.';
+$strUploadErrorIniSize = 'Pamier zahružanaha fajła pieraŭzychodzić parametar upload_max_filesize u php.ini.';
+$strUploadErrorFormSize = 'Pamier zahružanaha fajła pieraŭzychodzić parametar MAX_FILE_SIZE, jaki byŭ vyznačany ŭ HTML-formie.';
+$strUploadErrorPartial = 'Fajł byŭ zahružany tolki častkova.';
+$strUploadErrorNoTempDir = 'Adsutničaje časovaja tečka.';
+$strUploadErrorCantWrite = 'Pamyłka zapisu na dysk.';
+$strUploadErrorExtension = 'Zahruzka fajła spynienaja pašyreńniem.';
+$strUploadErrorUnknown = 'Padčas zahruzki fajła adbyłasia nieviadomaja pamyłka.';
+$strSessionStartupErrorGeneral = 'Niemahčyma biez pamyłak raspačać sesiju. Kali łaska, praviercie pamyłki ŭ vašym łogu PHP i, mahčyma, taksama ŭ łogu web-servera i skanfihurujcie PHP pravilna.';
+$strFieldInsertFromFileTempDirNotExists = 'Pamyłka pieramiaščeńnia zahružanaha fajła. Hladzicie raździeł 1.11 u FAQ';
+$strViewName = 'Nazva prahladu';
+$strOptions = 'Nałady';
+$strFiles = 'Fajły';
+$strMysqlLibDiffersServerVersion = 'Versija vašaj biblijateki MySQL dla PHP %s adroźnivajecca ad versii vašaha servera MySQL %s. Heta moža vyklikać niepradkazalnyja pavodziny.';
+$strRoutines = 'Pracedury';
+$strRoutineReturnType = 'Typ pracedury';
+$strControluserFailed = 'Nie atrymałasia ŭstalavać złučeńnie dla controluser, vyznačanaje ŭ vašym kanfihuracyjnym fajle.';
+$strHexForBLOB = 'Šasnaccatkovyja značeńni dla polaŭ typu BLOB';
+$strRestartInsertion = 'Pačać ustaŭku znoŭ z %s-ha radku';
+$strTriggers = 'Tryhiery';
+$strEvent = 'Padzieja';
+$strProfiling = 'Prafilavańnie';
+$strPartitionDefinition = 'Aznačeńnie PARTITION';
+$strPrivDescTrigger = 'Dazvalaje stvareńnie i vydaleńnie tryhieraŭ';
+$strPrivDescEvent = 'Dazvalaje stvarać padziei ŭ planiroŭniku padziejaŭ';
+$strPrivDescProcess = 'Dazvalaje prahladać pracesy ŭsich karystalnikaŭ';
+$strPartitioned = 'padzielenaja na sekcyi';
+$strTableAlteredSuccessfully = 'Tablica %1$s była paśpiachova źmienienaja';
+$strDatabaseHasBeenCreated = 'Baza dadzienych %1$s stvoranaja.';
+$strTableHasBeenCreated = 'Tablica %1$s stvoranaja.';
+$strForeignKeyError = 'Pamyłka stvareńnia źniešniaha kluča na %1$s (praviercie typy kalonak)';
+$strRowsDeleted = 'Vydalena radkoŭ: %1$d.';
+$strRowsAffected = 'Źmieniena radkoŭ: %1$d.';
+$strRowsInserted = 'Ustaŭlena radkoŭ: %1$d.';
+$strInsertedRowId = 'ID ustaŭlenaha radku: %1$d';
+$strIndexesSeemEqual = 'Padobna, što indeksy %1$s i %2$s źjaŭlajucca adnolkavymi, a tamu adzin ź ich, mahčyma, možna vydalić.';
+$strPartitionMaintenance = 'Padtrymka padziełaŭ';
+$strPartition = 'Padzieł %s';
+$strAnalyze = 'Praanalizavać';
+$strCheck = 'Pravieryć';
+$strOptimize = 'Aptymizavać';
+$strRebuild = 'Pierabudavać';
+$strRepair = 'Adramantavać';
+$strRemovePartitioning = 'Skasavać padzieł na častki';
+$strSearchInField = 'Unutry pola:';
+$strTexyText = 'Tekst Texy!';
+$strDetails = 'Padrabiaźniej...';
+$strComment = 'Kamentar';
+$strPacked = 'Ścisnutaja';
+$strActions = 'Dziejańni';
+$strInterface = 'Interfejs';
+$strSuhosin = 'Na servery zapuščany Suhosin. Kali łaska, źviarniciesia da %sdakumentacyi%s dla atrymańnia apisańnia mahčymych prablemaŭ.';
+$strEvents = 'Padziei';
+$strForeignKeyRelationAdded = 'Suviaź FOREIGN KEY była dadadzienaja';
+$strInternalAndForeign = 'Unutranaja suviaź nie źjaŭlajecca abaviazkovaj, kali isnuje adpaviednaja suviaź FOREIGN KEY.';
+$strViewHasAtLeast = 'Hety prahlad maje tolki takuju kolkaść radkoŭ. Kali łaska, źviarniciesia da %sdakumentacyi%s.';
+$strRelationalKey = 'Kluč suviazi';
+$strRelationalDisplayField = 'Adlustravanaje pole suviazi';
+$strSwekeyNoKey = 'Dziejny kluč aŭtentyfikacyi nie padklučany';
+$strSwekeyNoKeyId = 'Fajł %s nia ŭtrymlivaje nijakaha identyfikatara kluča';
+$strSwekeyAuthFailed = 'Aparatnaja aŭtentyfikacyja skončyłasia niaŭdała';
+$strSwekeyAuthenticating = 'Aŭtentyfikacyja...';
+$strPBXTIndexCacheSize = 'Pamier kešu indeksaŭ';
+$strPBXTRecordCacheSize = 'Pamier kešu zapisaŭ';
+$strPBXTLogCacheSize = 'Pamier kešu łogaŭ';
+$strPBXTLogFileThreshold = 'Paroh fajła łogu';
+$strPBXTTransactionBufferSize = 'Pamier buferu tranzakcyj';
+$strPBXTCheckpointFrequency = 'Častata kantrolnych kropak';
+$strPBXTDataLogThreshold = 'Paroh łahavańnia dadzienych';
+$strPBXTGarbageThreshold = 'Paroh śmiećcia';
+$strPBXTLogBufferSize = 'Pamier buferu łogu';
+$strPBXTDataFileGrowSize = 'Pamier pavieličeńnia fajłaŭ z dadzienymi';
+$strPBXTRowFileGrowSize = 'Pamier pavieličeńnia fajłaŭ radkoŭ';
+$strPBXTRowFileGrowSizeDesc = 'Pamier pavieličeńnia fajłaŭ ukazalnikaŭ na radki (.xtr).';
+$strPBXTDataFileGrowSizeDesc = 'Pamier pavieličeńnia fajłaŭ apracoŭki dadzienych (.xtd).';
+$strPBXTLogBufferSizeDesc = 'Pamier buferu, jaki vykarystoŭvajecca padčas zapisu łogu. Pamier pa zmoŭčańni składaje 256MB. Mašyna zachavańnia dadzienych vydzialaje pa adnamu buferu na kožny patok, ale tolki kali patoku patrabujecca zapisvać łog dadzienych.';
+$strPBXTGarbageThresholdDesc = 'Adsotak śmiećcia ŭ fajle łogu dadzienych pierad tym, jak jon budzie ścisnuty. Hetaje značeńnie moža znachodzicca ŭ miežach ad 1 da 99. Značeńnie pa zmoŭčańni — 50.';
+$strPBXTDataLogThresholdDesc = 'Maksymalny pamier fajła łogu dadzienych. Pamier pa zmoŭčańni — 64MB. PBXT moda stvarać da 32000 łogaŭ dadzienych, jakija vykarystoŭvajucca ŭsimi tablicami. Takim čynam, značeńnie hetaj źmiennaj moža być pavialičana, kab pavialičać ahulnuju kolkaść dadzienych, jakija mohuć zachoŭvacca ŭ bazie dadzienych.';
+$strPBXTCheckpointFrequencyDesc = 'Kolkaść dadzienych, jakija zapisvajucca ŭ łog tranzakcyj pierad tym, jak vykanajecca kantrolnaja kropka. Značeńnie pa zmoŭčańni — 24 MB.';
+$strPBXTTransactionBufferSizeDesc = 'Pamier hlabalnaha buferu łogu tranzakcyj (kožnaja mašyna zachavańnia dadzienych vydzialale 2 bufery hetaha pamieru). Pamier pa zmoŭčańni — 1 MB.';
+$strPBXTLogFileThresholdDesc = 'Pamier łogu tranzakcyj pierad vykanańniem vykanańnia, da momantu, pakul budzie stvorany novy fajł. Značeńnie pa Pamier — 16 MB.';
+$strPBXTLogCacheSizeDesc = 'Kolkaść pamiaci, jakaja vydzialajecca dla kešu łogu tranzakcyj, jaki vykarystoŭvajecca dla kešavańnia dadzienyja łogu tranzakcyj. Pamier pa zmoŭčańni — 16 MB.';
+$strPBXTRecordCacheSizeDesc = 'Kolkaść pamiaci, jakaja vydzialajecca dla kešu zapisaŭ, što vykarystoŭvajecca dla kešavańnia dadzienych tablicy. Pamier pa zmoŭčańni — 32 MB. Hetaja pamiać vykarystoŭvajecca dla kešavańnia źmienaŭ fajłaŭ apracoŭki dadzienych (.xtd) i fajłaŭ ukazalnikaŭ radkoŭ (.xtr).';
+$strPBXTIndexCacheSizeDesc = 'Heta pamier pamiaci, jakaja vydzialajecca dla kešu indeksaŭ. Pamier pa zmoŭčańni — 32 MB. Heta pamiać vykarystoŭvajecca tolki dla kešavańnia staronak indeksaŭ.';
+$strPBXTLogFileCount = 'Kolkaść fajłaŭ łogu';
+$strPBXTLogFileCountDesc = 'Heta kolkaść fajłaŭ łogu tranzakcyj (pbxt/system/xlog*.xt), jakija moža padtrymlivać systema. U vypadku, kali kolkaść fajłaŭ łogu pieravysić hetaje značeńnie, staryja fajły łogu buduć vydalenyja. U inšym vypadku jany buduć pierajmienavanyja i im budzie dadzieny čarhovy najvyšejšy numar.';
+$strAsDefined = 'Jak vyznačana:';
+$strWiki = 'Wiki';
+$strWebServer = 'Web-server';
+$strPHPExtension = 'Pašyreńnie PHP';
+$strCustomColor = 'Inšy koler';
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/bosnian-utf-8.inc.php b/lang/bosnian-utf-8.inc.php
new file mode 100644
index 0000000000..7941f143c4
--- /dev/null
+++ b/lang/bosnian-utf-8.inc.php
@@ -0,0 +1,1471 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by:
+ * Samir Kobiljak <kobiljak@aon.at>
+ * http://www.kobiljak.com
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('bajta', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Ned', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub');
+$month = array('jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d. %B %Y. u %H:%M';
+$timespanfmt = '%s dana, %s sati, %s minuta i %s sekundi';
+
+$strAbortedClients = 'Prekinuto';
+$strAccessDeniedExplanation = 'phpMyAdmin je pokušao da se poveže na MySQL server, ali je server odbio povezivanje. Provjerite naziv hosta, korisničko ime i lozinku u config.inc.php i uvjerite se da odgovaraju podacima koje ste dobili od administratora MySQL servera.';
+$strAccessDenied = 'Ulaz nije dozvoljen';
+$strAction = 'Akcija';
+$strAddAutoIncrement = 'Dodaj AUTO_INCREMENT vrijednost';
+$strAddDeleteColumn = 'Dodaj/obriši kolonu';
+$strAddDeleteRow = 'Dodaj/obriši polje za kriterij';
+$strAddIntoComments = 'Dodaj u komentare';
+$strAddNewField = 'Dodaj novo polje';
+$strAddPrivilegesOnDb = 'Dodaj privilegije na slijedećoj bazi';
+$strAddPrivilegesOnTbl = 'Dodaj privilegije na slijedećoj tabeli';
+$strAddSearchConditions = 'Dodaj uslove pretraživanja (dio "WHERE" upita):';
+$strAddToIndex = 'Dodaj u ključ &nbsp;%s&nbsp;kolona(e)';
+$strAddUser = 'Dodaj novog korisnika';
+$strAddUserMessage = 'Dodali ste novog korisnika.';
+$strAdministration = 'Administracija';
+$strAfterInsertBack = 'Nazad na prethodnu stranu';
+$strAfterInsertNewInsert = 'Dodaj još jedan novi red';
+$strAfter = 'Poslije %s';
+$strAll = 'Sve';
+$strAllTableSameWidth = 'prikaz svih tabela iste širine?';
+$strAlterOrderBy = 'Promijeni redoslijed u tabeli';
+$strAnalyzeTable = 'Analiziraj tabelu';
+$strAnd = 'i';
+$strAnIndex = 'Ključ je upravo dodan %s';
+$strAny = 'Bilo koji';
+$strAnyHost = 'Bilo koji host';
+$strAnyUser = 'Bilo koji korisnik';
+$strAPrimaryKey = 'Osnovni ključ je upravo dodan %s';
+$strArabic = 'Arapski';
+$strArmenian = 'Jermenski';
+$strAscending = 'Rastući';
+$strAtBeginningOfTable = 'Na početku tabele';
+$strAtEndOfTable = 'Na kraju tabele';
+$strAttr = 'Atributi';
+$strAutomaticLayout = 'Automatski raspored';
+
+$strBack = 'Nazad';
+$strBaltic = 'Baltički';
+$strBeginCut = 'POČETAK REZ';
+$strBeginRaw = 'POČETAK SIROVO';
+$strBinary = 'Binarni';
+$strBinaryDoNotEdit = 'Binarni - ne mijenjaj';
+$strBookmarkDeleted = 'Obilježivač je upravo obrisan.';
+$strBookmarkLabel = 'Naziv';
+$strBookmarkQuery = 'Obilježen SQL-upit';
+$strBookmarkThis = 'Obilježi SQL-upit';
+$strBookmarkView = 'Vidi samo';
+$strBrowseForeignValues = 'Pregledaj strane vrijednosti';
+$strBrowse = 'Pregled';
+$strBulgarian = 'Bugarski';
+$strBzip = '"bzip-ovano"';
+
+$strCannotLogin = 'Ne mogu da se prijavim na MySQL server';
+$strCantLoad = 'ne mogu da učitam ekstenziju %s,<br />molim provjerite PHP konfiguraciju';
+$strCantLoadRecodeIconv = 'Ne mogu da učitam iconv ili recode ekstenzije potrebne za konverziju skupova znakova, podesite PHP da dozvoli korišćenje ovih ekstenzija ili onemogućite konverziju skupova znakova u phpMyAdmin-u.';
+$strCantRenameIdxToPrimary = 'Ne mogu da promenim ključ u PRIMARY (primarni) !';
+$strCantUseRecodeIconv = 'Ne mogu da koristim iconv ili libiconv ili recode_string funkcije iako ekstenzija prijavljuje da je učitana. Proverite vašu PHP konfiguraciju.';
+$strCardinality = 'Kardinalnost';
+$strCaseInsensitive = 'Ne razlikuje mala i velika slova';
+$strCaseSensitive = 'Razlikuje mala i velika slova';
+$strCentralEuropean = 'Centralnoevropski';
+$strChangeCopyModeCopy = '... sačuvaj stare.';
+$strChangeCopyModeDeleteAndReload = ' ... obriši starog iz tabele korisnika i zatim ponovo učitaj privilegije.';
+$strChangeCopyModeJustDelete = ' ... obriši stare iz tabela korisnika.';
+$strChangeCopyMode = 'Napravi novog korisnika sa istim privilegijama i ...';
+$strChangeCopyModeRevoke = ' ... obustavi sve privilegije starog korisnika i zatim ga obriši.';
+$strChangeCopyUser = 'Promeni informacije o prijavi / Kopiraj korisnika';
+$strChangeDisplay = 'Izaberi polja za prikaz';
+$strChangePassword = 'Promeni lozinku';
+$strChange = 'Promijeni';
+$strCharset = 'Karakter set';
+$strCharsetOfFile = 'Karakter set datoteke:';
+$strCharsetsAndCollations = 'Karakter setovi i sortiranje';
+$strCharsets = 'Kodne strane';
+$strCheckAll = 'Označi sve';
+$strCheckPrivsLong = 'Provjeri privilegije za bazu &quot;%s&quot;.';
+$strCheckPrivs = 'Provjeri privilegije';
+$strCheckTable = 'Provjeri tabelu';
+$strChoosePage = 'Izaberite stranu koju menjate';
+$strColComFeat = 'Prikazujem komentare kolone';
+$strCollation = 'Sortiranje';
+$strColumnNames = 'Imena kolona';
+$strColumnPrivileges = 'Privilegije vezane za kolone';
+$strCommand = 'Naredba';
+$strComments = 'Komentari';
+$strCompleteInserts = 'Kompletan INSERT (sa imenima polja)';
+$strCompression = 'Kompresija';
+$strConfigFileError = 'phpMyAdmin nije mogao da pročita vaš konfiguracioni fajl!<br />Ovo se može destiti ako PHP nađe grešku u procesiranju ili ne može da pronađe fajl.<br />Pozovite konfiguracioni fajl direktno koristeći donji link u pročitajte poruke o grešci koje dobijate. U većini slučajeve negde nedostaje navodnik ili tačka-zarez.<br />Ako dobijete praznu stranu, sve je u redu.';
+$strConfigureTableCoord = 'Podesite koordinate za tabelu %s';
+$strConnections = 'Konekcije';
+$strCookiesRequired = 'Kolačići (Cookies) moraju u ovom slučaju biti aktivirani.';
+$strCopyTable = 'Kopiraj tabelu u (baza<b>.</b>tabela):';
+$strCopyTableOK = 'Tabela %s je kopirana u %s.';
+$strCopyTableSameNames = 'Ne mogu da kopiram tabelu u samu sebe!';
+$strCouldNotKill = 'phpMyAdmin nije mogao da prekine proces %s. Vjerovatno je već zatvoren.';
+$strCreateIndex = 'Napravi ključ na&nbsp;%s&nbsp;kolona';
+$strCreateIndexTopic = 'Napravi novi ključ';
+$strCreate = 'Napravi';
+$strCreateNewDatabase = 'Napravi novu bazu podataka';
+$strCreateNewTable = 'Napravi novu tabelu u bazi %s';
+$strCreatePage = 'Napravi novu stranu';
+$strCreatePdfFeat = 'Pravljenje PDF-ova';
+$strCriteria = 'Kriterijum';
+$strCroatian = 'Hrvatski';
+$strCyrillic = 'Ćirilični';
+$strCzech = 'Češki';
+
+$strDanish = 'Danski';
+$strDatabase = 'Baza podataka';
+$strDatabaseExportOptions = 'Opcije za izvoz baze';
+$strDatabaseHasBeenDropped = 'Baza %s je odbačena.';
+$strDatabases = 'Baze';
+$strDatabasesDropped = '%s baza je uspješno odbačena.';
+$strDatabasesStatsDisable = 'Isključi statistike';
+$strDatabasesStatsEnable = 'Uključi statistike';
+$strDatabasesStatsHeavyTraffic = 'Napomena: uključivanje statistika može prouzrokovati veliki protok podataka između web i MySQL servera.';
+$strDatabasesStats = 'Statistika baze';
+$strDataDict = 'Rečnik podataka';
+$strDataOnly = 'Samo podaci';
+$strData = 'Podaci';
+$strDBComment = 'Komentar baze:';
+$strDbPrivileges = 'Privilegije vezane za bazu';
+$strDbSpecific = 'Specifično za bazu';
+$strDefault = 'Podrazumjevano';
+$strDefaultValueHelp = 'Za podrazumjevanu vrijednost, unesite samo jednu vrijednost, bez kosih crta ili navodnika u ovom obliku: a';
+$strDeleteAndFlushDescr = 'Ovo je najčistiji način, ali ponovno učitavanje privilegina može da potraje.';
+$strDeleteAndFlush = 'Obriši korisnike i ponovo učitaj privilegije.';
+$strDeleted = 'Red je obrisan';
+$strDelete = 'Obriši';
+$strDeleting = 'Brišem %s';
+$strDelOld = 'Trenutna strana ima reference na tabele koje više ne postoje. Želite li da obrišete te reference?';
+$strDescending = 'Opadajući';
+$strDescription = 'Opis';
+$strDictionary = 'riječnik';
+$strDisabled = 'Onemogućeno';
+$strDisplayFeat = 'Prikaži osobine';
+$strDisplayOrder = 'Redosled prikaza:';
+$strDisplayPDF = 'Prikaži PDF shemu';
+$strDoAQuery = 'Napravi "upit po primjeru" (džoker: "%")';
+$strDocu = 'Dokumentacija';
+$strDoYouReally = 'Da li stvarno hoćete da ';
+$strDrop = 'Odbaci';
+$strDropUsersDb = 'Odbaci baze koje se zovu isto kao korisnici.';
+$strDumpingData = 'Prikaz podataka tabele';
+$strDumpSaved = 'Sadržaj baze je sačuvan u fajl %s.';
+$strDumpXRows = 'Prikaži %s redova počevši od reda %s.';
+$strDynamic = 'dinamički';
+
+$strEditPDFPages = 'Izmena PDF strana';
+$strEditPrivileges = 'Promijeni privilegije';
+$strEdit = 'Promeni';
+$strEffective = 'Efektivne';
+$strEmpty = 'Isprazni';
+$strEmptyResultSet = 'MySQL je vratio prazan rezultat (nula redova).';
+$strEnabled = 'Omogućeno';
+$strEndCut = 'KRAJ REZ';
+$strEnd = 'Kraj';
+$strEndRaw = 'KRAJ SIROVO';
+$strEnglish = 'Engleski';
+$strEnglishPrivileges = ' Napomena: MySQL imena privilegija moraju da budu na engleskom ';
+$strError = 'Greška';
+$strEstonian = 'Estonski';
+$strExecuteBookmarked = 'Izvrši upamćen upit';
+$strExplain = 'Objasni SQL';
+$strExport = 'Izvoz';
+$strExtendedInserts = 'Prošireni INSERT';
+$strExtra = 'Dodatno';
+
+$strFailedAttempts = 'Neuspelih pokušaja';
+$strFieldHasBeenDropped = 'Polje %s je obrisano';
+$strField = 'Polje';
+$strFieldsEnclosedBy = 'Polja ograničena sa';
+$strFieldsEscapedBy = 'Escape karakter &nbsp; &nbsp; &nbsp;';
+$strFields = 'Polja';
+$strFieldsTerminatedBy = 'Polja razdvojena sa';
+$strFileAlreadyExists = 'Datoteka %s već postoji na serveru, promijenite ime datoteke ili uključite opciju prepisivanja.';
+$strFileCouldNotBeRead = 'Datoteku nije moguće pročitati';
+$strFileNameTemplateRemember = 'zapamti šablon';
+$strFileNameTemplate = 'Šablon imena datoteke';
+$strFixed = 'urađeno';
+$strFlushPrivilegesNote = 'Napomena: phpMyAdmin uzima privilegije korisnika direktno iz MySQL tabela privilegija. Sadržaj ove tabele može se razlikovati od privilegija koje server koristi ako su izvršene ručne izmjene. U tom slučaju %sponovo učitajte privilegije%s pre nego što nastavite.';
+$strFlushTable = 'Osvježi tabelu ("FLUSH")';
+$strFormat = 'Format';
+$strFormEmpty = 'Nedostaje vrijednost u obrascu!';
+$strFullText = 'Pun tekst';
+$strFunction = 'Funkcija';
+
+$strGenBy = 'Generirao';
+$strGeneralRelationFeat = 'Opšte osobine relacija';
+$strGenTime = 'Vrijeme kreiranja';
+$strGerman = 'Njemački';
+$strGlobal = 'globalno';
+$strGlobalPrivileges = 'Globalne privilegije';
+$strGlobalValue = 'Globalna vrednost';
+$strGo = 'Kreni';
+$strGrantOption = 'Omogući';
+$strGreek = 'Grčki';
+$strGzip = '"gzip-ovano"';
+
+$strHasBeenAltered = 'je promijenjen(a).';
+$strHaveToShow = 'Morate izabrati bar jednu kolonu za prikaz';
+$strHebrew = 'Jevrejski';
+$strHomepageOfficial = 'phpMyAdmin veb sajt';
+$strHome = 'Početna strana';
+$strHostEmpty = 'Ime hosta je prazno!';
+$strHost = 'Host';
+$strHungarian = 'Mađarski';
+
+$strId = 'ID';
+$strIdxFulltext = 'Tekst ključ';
+$strIgnore = 'Ignoriši';
+$strImportFiles = 'Uvoz fajlova';
+$strIndexes = 'Ključevi';
+$strIndexHasBeenDropped = 'Ključ %s je obrisan';
+$strIndex = 'Ključ';
+$strIndexName = 'Ime ključa :';
+$strIndexType = 'Tip ključa :';
+$strInnodbStat = 'InnoDB status';
+$strInsecureMySQL = 'Vaš konfiguracioni fajl sadrži podešavanja (root bez lozinke) koja odgovaraju standardnom MySQL privilegovanom nalogu. Vaš MySQL server radi sa ovim podešavanjima, otvoren je za hakovanje, i zaista treba da ispravite ovaj sigurnosni rizik.';
+$strInsertAsNewRow = 'Unesi kao novi red';
+$strInsert = 'Novi zapis';
+$strInUse = 'se koristi';
+
+$strJapanese = 'Japanski';
+$strJumpToDB = 'Pređi na bazu &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Obrisani&quot; korisnici će i dalje imati pristup serveru dok privilegije ne budu ponovo učitane.';
+$strJustDelete = 'Samo obriši korisnike iz tabele privilegija.';
+
+$strKeepPass = 'Nemoj da mijenjaš lozinku';
+$strKeyname = 'Ime ključa';
+$strKill = 'Obustavi';
+$strKorean = 'Korejski';
+
+$strLandscape = 'Položeno';
+$strLaTeX = 'LaTeX';
+$strLengthSet = 'Dužina/Vrijednost*';
+$strLimitNumRows = 'Broj redova po strani';
+$strLinesTerminatedBy = 'Linije se završavaju sa';
+$strLinkNotFound = 'Veza nije pronađena';
+$strLinksTo = 'Veze ka';
+$strLithuanian = 'Litvanski';
+$strLocalhost = 'Lokalni';
+$strLocationTextfile = 'Lokacija tekstualne datoteke';
+$strLoginInformation = 'Podatci o prijavi';
+$strLogin = 'Prijavljivanje';
+$strLogout = 'Odjavljivanje';
+$strLogPassword = 'Lozinka:';
+$strLogUsername = 'Korisničko ime:';
+
+$strMIME_available_mime = 'Dostupni MIME-tipovi';
+$strMIME_available_transform = 'Dostupne transformacije';
+$strMIME_description = 'Opis';
+$strMIME_MIMEtype = 'MIME-tipovi';
+$strMIME_nodescription = 'Nema opisa za ovu transformaciju.<br />Molimo pitajte autora šta %s radi.';
+$strMIME_transformation_note = 'Za listu dostupnih opcija transformacije i njihove transformacije MIME-tipova, kliknite na %sopise transformacija%s';
+$strMIME_transformation_options_note = 'Molimo unesite vrijednosti za opcije transformacije koristeći ovaj oblik: \'a\', 100, b,\'c\'...<br />Ako treba da unesete obrnutu kosu crtu ("\\") ili apostrof ("\'") u te vrijednosti, stavite obrnutu kosu crtu ispred njih (na primjer \'\\\\xyz\' ili \'a\\\'b\').';
+$strMIME_transformation_options = 'Opcije transformacije';
+$strMIME_transformation = 'Tranformacije čitača';
+$strMIME_without = 'MIME-tipovi prikazani u kursivu nemaju odvojene funkcije transformacije.';
+$strModifications = 'Izmjene su sačuvane';
+$strModifyIndexTopic = 'Izmijeni ključ';
+$strModify = 'Promijeni';
+$strMoveTableOK = 'Tabela %s je pomjerena u %s.';
+$strMoveTable = 'Pomjeri tabelu u (baza<b>.</b>tabela):';
+$strMoveTableSameNames = 'Ne mogu da premjestim tabelu u samu sebe!';
+$strMultilingual = 'višejezički';
+$strMySQLCharset = 'MySQL set karaktera';
+$strMySQLSaid = 'MySQL kaže: ';
+$strMySQLShowProcess = 'Prikaži listu procesa';
+
+$strName = 'Ime';
+$strNext = 'Slijedeći';
+$strNoDatabases = 'Baza ne postoji';
+$strNoDatabasesSelected = 'Nije izabrana ni jedna baza.';
+$strNoDescription = 'nema opisa';
+$strNoDropDatabases = '"DROP DATABASE" komanda je onemogućena.';
+$strNoExplain = 'Preskoči objašnjavanje SQL-a';
+$strNoFrames = 'phpMyAdmin preferira čitače koji podržavaju okvire.';
+$strNoIndex = 'Ključ nije definisan!';
+$strNoIndexPartsDefined = 'Dijelovi ključa nisu definisani!';
+$strNoModification = 'Nema izmjena';
+$strNo = 'Ne';
+$strNone = 'nema';
+$strNoOptions = 'Ne postoje opcije za ovaj format';
+$strNoPassword = 'Nema lozinke';
+$strNoPermission = 'Veb serveru nije dozvoljeno da sačuva datoteku %s.';
+$strNoPhp = 'bez PHP koda';
+$strNoPrivileges = 'Nema privilegija';
+$strNoRights = 'Nije Vam dozvoljeno da budete ovdje!';
+$strNoSpace = 'Nedovoljno prostora za snimanje datoteke %s.';
+$strNoTablesFound = 'Tabele nisu pronađene u bazi.';
+$strNotNumber = 'Ovo nije broj!';
+$strNotOK = 'nije u redu';
+$strNotSet = '<b>%s</b> tabela nije pronađena ili nije postavljena u %s';
+$strNoUsersFound = 'Korisnik nije nađen.';
+$strNoValidateSQL = 'Preskoči provjeru SQL-a';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s pogodaka unutar tabele <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Ukupno:</b> <i>%s</i> pogodaka';
+$strNumTables = 'Tabele';
+
+$strOK = 'U redu';
+$strOperations = 'Operacije';
+$strOptimizeTable = 'Optimiziraj tabelu';
+$strOr = 'ili';
+$strOverhead = 'Prekoračenje';
+$strOverwriteExisting = 'Prepiši postojeće fajlove';
+
+$strPageNumber = 'Broj strane:';
+$strPaperSize = 'Dimenzije papira';
+$strPartialText = 'Dio teksta';
+$strPasswordChanged = 'Lozinka za %s je uspješno promjenjena.';
+$strPasswordEmpty = 'Lozinka je prazna!';
+$strPassword = 'Lozinka';
+$strPasswordNotSame = 'Lozinke nisu identične!';
+$strPdfDbSchema = 'Shema baze "%s" - Strana %s';
+$strPdfInvalidTblName = 'Tabela "%s" ne postoji!';
+$strPdfNoTables = 'Nema tabela';
+$strPerHour = 'na sat';
+$strPerMinute = 'u minuti';
+$strPerSecond = 'u sekundi';
+$strPhoneBook = 'telefonski imenik';
+$strPhp = 'Napravi PHP kod';
+$strPHPVersion = 'verzija PHP-a';
+$strPmaDocumentation = 'phpMyAdmin dokumentacija';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> direktiva MORA biti podješena u konfiguracionoj datoteci!';
+$strPortrait = 'Uspravno';
+$strPos1 = 'Početak';
+$strPrevious = 'Prethodna';
+$strPrimaryKeyHasBeenDropped = 'Primarni ključ je obrisan';
+$strPrimaryKeyName = 'Ime primarnog ključa mora da bude... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>mora</b> biti ime <b>samo</b> primarnog ključa!)';
+$strPrimary = 'Primarni';
+$strPrint = 'Štampaj';
+$strPrintView = 'Za štampu';
+$strPrivDescAllPrivileges = 'Uključuje sve privilegije osim GRANT.';
+$strPrivDescAlter = 'Dozvoljava izmjenu struktura postojećih tabela.';
+$strPrivDescCreateDb = 'Dozvoljava kreiranje novih baza i tabela.';
+$strPrivDescCreateTbl = 'Dozvoljava kreiranje novih tabela.';
+$strPrivDescCreateTmpTable = 'Dozvoljava kreiranje privremenih tabela..';
+$strPrivDescDelete = 'Dozvoljava brisanje podataka.';
+$strPrivDescDropDb = 'Dozvoljava odbacivanje baza i tabela.';
+$strPrivDescDropTbl = 'Dozvoljava odbacivanje tabela.';
+$strPrivDescExecute = 'Dozvoljava pokretanje sačuvanih procedura. Nema efekta u ovoj verziji MySQL-a.';
+$strPrivDescFile = 'Dozvoljava uvoz podataka i njihov izvoz u datoteke.';
+$strPrivDescGrant = 'Dozvoljava dodavanje korisnika i privilegija bez ponovnog učitavanja tabela privilegija.';
+$strPrivDescIndex = 'Dozvoljava kreiranje i brisanje ključeva.';
+$strPrivDescInsert = 'Dozvoljava umetanje i zamjenu podataka.';
+$strPrivDescLockTables = 'Dozvoljava zaključavanje tabela tekućim procesima.';
+$strPrivDescMaxConnections = 'Ograničava broj novih konekcija koje korisnik može ta otvori na sat.';
+$strPrivDescMaxQuestions = 'Ograničava broj upita koje korisnik može da uputi serveru za sat.';
+$strPrivDescMaxUpdates = 'Ograničava broj komandi koje menjaju tabele ili baze koje korisnik može da izvrši na sat.';
+$strPrivDescReferences = 'Nema efekta u ovoj verziji MySQL-a.';
+$strPrivDescReload = 'Dozvoljava ponovno učitavanje podešavanja servera i pražnjenje keša servera.';
+$strPrivDescReplClient = 'Daje pravo korisniku da pita gde su glavni/pomoćni serveri.';
+$strPrivDescReplSlave = 'Potrebno zbog pomoćnih servera za replikaciju.';
+$strPrivDescSelect = 'Dozvoljava čitanje podataka.';
+$strPrivDescShowDb = 'Daje pristup kompletnoj listi baza.';
+$strPrivDescShutdown = 'Dozvoljava gašenje servera.';
+$strPrivDescSuper = ' Dozvoljava povezivanje iako je dostignut maksimalan broj dozvoljenih veza; Neophodno za većinu administrativnih opcija kao što su podešavanje globalnih promenljivih ili prekidanje procesa ostalih korisnika.';
+$strPrivDescUpdate = 'Dozvoljava izmenu podataka.';
+$strPrivDescUsage = 'Nema privilegija.';
+$strPrivileges = 'Privilegije';
+$strPrivilegesReloaded = 'Privilegije su uspešno ponovo učitane.';
+$strProcesses = 'Procesi';
+$strProcesslist = 'Lista procesa';
+$strPutColNames = 'Stavi imena polja u prvi red';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Upit po primeru';
+$strQueryFrame = 'Prozor za upite';
+$strQueryOnDb = 'SQL upit na bazi <b>%s</b>:';
+$strQuerySQLHistory = 'SQL istorijat';
+$strQueryStatistics = '<b>Statistike upita</b>: %s upita je postavljeno serveru od njegovog pokretanja.';
+$strQueryTime = 'Upit je trajao %01.4f sekundi';
+$strQueryType = 'Vrsta upita';
+$strQueryWindowLock = 'Ne prepisuj ovaj upit izvan prozora';
+
+$strReceived = 'Primljeno';
+$strRecords = 'Zapisi';
+$strReferentialIntegrity = 'Proveri referencijalni integritet:';
+$strRelationalSchema = 'Relaciona shema';
+$strRelationNotWorking = 'Dodatne mogućnosti za rad sa povezanim tabelama su isključene. Da biste saznali zašto, kliknite %sovde%s.';
+$strRelations = 'Relacije';
+$strRelationView = 'Relacioni pogled';
+$strReloadingThePrivileges = 'Ponovo učitavam privilegije';
+$strRemoveSelectedUsers = 'Ukloni izabrane korisnike';
+$strRenameTableOK = 'Tabeli %s promjenjeno ime u %s';
+$strRenameTable = 'Promjeni ime tabele u ';
+$strRepairTable = 'Popravi tabelu';
+$strReplaceNULLBy = 'Zamijeni NULL sa';
+$strReplaceTable = 'Zamijeni podatke u tabeli sa podatcima iz datoteke';
+$strReset = 'Resetuj';
+$strResourceLimits = 'Ograničenja resursa';
+$strReType = 'Ponovite unos';
+$strRevokeAndDeleteDescr = 'Korisnici će i dalje imati USAGE privilegije dok se privilegije ponovo ne učitaju.';
+$strRevokeAndDelete = 'Obustavi sve aktivne privilegije korisnika i zatim ih obriši.';
+$strRevokeMessage = 'Zabranili ste privilegije za %s';
+$strRevoke = 'Zabrani';
+$strRowLength = 'Dužina reda';
+$strRowsFrom = ' redova počev od reda';
+$strRowSize = 'Veličina reda';
+$strRowsModeFlippedHorizontal = 'horizontalnom (rotirana zaglavlja)';
+$strRowsModeHorizontal = 'horizontalnom';
+$strRowsModeOptions = 'u %s modu i ponovi zaglavlje posle svakog %s reda';
+$strRowsModeVertical = 'vertikalnom';
+$strRows = 'Redova';
+$strRowsStatistic = 'Statistike reda';
+$strRunning = 'na serveru %s';
+$strRunQuery = 'Izvrši SQL upit';
+$strRunSQLQuery = 'Izvrši SQL upit(e) na bazi %s';
+$strRussian = 'Ruski';
+
+$strSaveOnServer = 'Sačuvaj na server u direktorijum %s';
+$strSave = 'Sačuvaj';
+$strScaleFactorSmall = 'Faktor umanjenja je premali da bi shema stala na jednu stranu';
+$strSearchFormTitle = 'Pretraživanje baze';
+$strSearchInTables = 'Unutar tabela:';
+$strSearchNeedle = 'Riječi ili vrednosti koje se traže (džoker: "%"):';
+$strSearchOption1 = 'bar jednu od riječi';
+$strSearchOption2 = 'sve riječi';
+$strSearchOption3 = 'tačan izraz';
+$strSearchOption4 = 'kao regularni izraz';
+$strSearch = 'Pretraživanje';
+$strSearchResultsFor = 'Rezultati pretrage za "<i>%s</i>" %s:';
+$strSearchType = 'Traži:';
+$strSecretRequired = 'Konfiguraciona datoteka zahtjeva tajnu lozinku (blowfish_secret).';
+$strSelectADb = 'Izaberite bazu';
+$strSelectAll = 'Izaberi sve';
+$strSelectFields = 'Izaberi polja (najmanje jedno)';
+$strSelectNumRows = 'u upitu';
+$strSelectTables = 'Izaberi tabele';
+$strSend = 'Sačuvaj kao datoteku';
+$strSent = 'Poslato';
+$strServerChoice = 'Izbor servera';
+$strServer = 'Server';
+$strServerStatus = 'Informacije o toku rada';
+$strServerStatusUptime = 'Ovaj MySQL server radi već %s. Pokrenut je %s.';
+$strServerTabVariables = 'Promjenljive';
+$strServerTrafficNotes = '<b>Saobraćaj servera</b>: Tabele pokazuju statistike mrežnog saobraćaja na ovom MySQL serveru od njegovog pokretanja.';
+$strServerVars = 'Serverske promenljive i podešavanja';
+$strServerVersion = 'Verzija servera';
+$strSessionValue = 'Vrijednost sesije';
+$strSetEnumVal = 'Ako je polje "enum" ili "set", unesite vrijednosti u formatu: \'a\',\'b\',\'c\'...<br />Ako vam treba obrnuta kosa crta ("\\") ili apostrof ("\'") koristite ih u "izbjegnutom" (escaped) obliku (na primer \'\\\\xyz\' ili \'a\\\'b\').';
+$strShowAll = 'Prikaži sve';
+$strShowColor = 'Prikaži boju';
+$strShowDatadictAs = 'Format riječnika podataka';
+$strShowFullQueries = 'Prikaži kompletne upite';
+$strShowGrid = 'Prikaži mrežu';
+$strShowingRecords = 'Prikaz zapisa';
+$strShowPHPInfo = 'Prikaži informacije o PHP-u';
+$strShow = 'Prikaži';
+$strShowTableDimension = 'Prikaži dimenzije tabele';
+$strShowTables = 'Prikaži tabele';
+$strShowThisQuery = 'Prikaži ponovo ovaj upit';
+$strSimplifiedChinese = 'Pojednostavljeni kineski';
+$strSingly = '(po jednom polju)';
+$strSize = 'Veličina';
+$strSort = 'Sortiranje';
+$strSpaceUsage = 'Zauzeće';
+$strSplitWordsWithSpace = 'Riječi se odvajaju razmakom (" ").';
+$strSQLParserBugMessage = 'Postoji mogućnost da ste pronašli gresku u SQL parseru. Molimo ispitajte svoj upit pažljivo, i provjerite da su navodnici ispravni i da ne nedostaju. Ostali mogući razlozi greške mogu biti da ste poslali binarni fajl van oblasti za običan tekst. Možete probati svoj upit u MySQL interfejsu komandne linije. Donja poruka o grešci MySQL servera, ako je ima, može vam pomoći u otkrivanju problema. Ako i dalje imate probleme ili ako parser ne uspjeva tamo gde uspeva interfejs komandne linije, svedite svoj SQL upit na jedan jedini upit koji stvara probleme i pošaljite nam izvještaj o grešci sa delom koda u donjoj REZ sekciji:';
+$strSQLParserUserError = 'Izgleda da postoji greška u vašem SQL upitu. Ovde je poruka o greški MySQL servera, koja vam može pomoći u otkrivanju problema';
+$strSQLQuery = 'SQL upit';
+$strSQLResult = 'SQL rezultat';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Neispravan identifikator';
+$strSQPBugUnclosedQuote = 'Navodnik nije zatvoren';
+$strSQPBugUnknownPunctuation = 'Nepoznat string interpunkcije';
+$strStatCheckTime = 'Posljednja provjera';
+$strStatCreateTime = 'Napravljeno';
+$strStatement = 'Ime';
+$strStatUpdateTime = 'Posljednja izmjena';
+$strStatus = 'Status';
+$strStrucCSV = 'CSV format';
+$strStrucData = 'Struktura i podatci';
+$strStrucExcelCSV = 'CSV za MS Excel';
+$strStrucOnly = 'Samo struktura';
+$strStructPropose = 'Predloži strukturu tabele';
+$strStructure = 'Struktura';
+$strSubmit = 'Pošalji';
+$strSuccess = 'Vaš SQL upit je uspešno izvršen';
+$strSum = 'Ukupno';
+$strSwedish = 'Švedski';
+$strSwitchToTable = 'Pređi na kopiranu tabelu';
+
+$strTableComments = 'Komentari tabele';
+$strTableEmpty = 'Ima tabele je prazno!';
+$strTableHasBeenDropped = 'Tabela %s je odbačena';
+$strTableHasBeenEmptied = 'Tabela %s je ispražnjena';
+$strTableHasBeenFlushed = 'Tabela %s je osvežena';
+$strTableMaintenance = 'Radnje na tabeli';
+$strTableOfContents = 'Sadržaj';
+$strTableOptions = 'Opcije tabele';
+$strTables = '%s tabela';
+$strTableStructure = 'Struktura tabele';
+$strTable = 'Tabela';
+$strTblPrivileges = 'Privilegije vezane za tabele';
+$strTextAreaLength = 'Zbog njehove veličine, polje<br />možda nećete moći da izmenite';
+$strThai = 'Tajlandski ';
+$strThisHost = 'Ovaj server';
+$strThreadSuccessfullyKilled = 'Proces %s je uspješno prekinut.';
+$strTime = 'Vrijeme';
+$strToggleScratchboard = 'Uključuje/isključuje scratchboard';
+$strTotalUC = 'Ukupno';
+$strTotal = 'ukupno';
+$strTraditionalChinese = 'Tradicionalni kineski';
+$strTraffic = 'Saobraćaj';
+$strTransformation_image_jpeg__inline = 'Prikazuje umanjenu sliku na koju je moguće kliknuti; opcije: širina, visina u pikselima (čuva originalni odnos)';
+$strTransformation_image_jpeg__link = 'Prikazuje link ka ovoj slici (npr. direktno preuzimanje iz BLOB-a).';
+$strTransformation_image_png__inline = 'Prikaži JPEG slike na strani';
+$strTransformation_text_plain__external = 'SAMO LINUX: Pokreće eksternu aplikaciju i popunjava podatke u poljima preko standardnog ulaza. Vraća standardni izlaz aplikacije. Podrazumevano je Tidy, za lepši prikaz HTML koda. Zbog sigurnosnih razloga, morate ručno izmeniti datoteku libraries/transformations/text_plain__external.inc.php i dodati alate koje želite da koristite. Prva opcija je broj programa koje želite da koristite, a druga su parametri programa. Ako se treći parametar postavi na 1 izlaz će biti konvertovan koristeći htmlspecialchars() (podrazumevano je 1). Ako je četvrti parametar postavljen na 1, NOWRAP će biti dodato ćeliji sa sadržajem tako da će izlaz biti prikazan bez izmena. (podrazumevano 1)';
+$strTransformation_text_plain__formatted = 'Čuva originalno formatiranje polja. Escaping se ne vrši.';
+$strTransformation_text_plain__imagelink = 'Prikazuje sliku i link, polje sadrži naziv datoteke; prva opcija je prefiks kao "http://domain.com/", druga opcija je širina u pikselima, treća je visina.';
+$strTransformation_text_plain__link = 'Prikazuje link, polje sadrži naziv datoteke; prva opcija je prefiks kao "http://domain.com/", druga opcija je naslov za link.';
+$strTransformation_text_plain__substr = 'Pokazuje samo deo stringa. Prva opcija je ofset koji definiše gde počinje izlaz vašeg teksta (podrazumevano 0). Druga opcija je ofset koji pokazuje koliko će teksta biti prikazano. Ako je nema, sav preostali tekst će biti prikazan. Treća opcija određuje koji će znaci biti dodati izlazu kada se prikaže podstring (podrazumevano: ...) .';
+$strTruncateQueries = 'Prikaži skraćene upite';
+$strTurkish = 'Turski';
+$strType = 'Tip';
+
+$strUkrainian = 'Ukrajinski';
+$strUncheckAll = 'nijedno';
+$strUnicode = 'Unikod';
+$strUnique = 'Jedinstveni';
+$strUnknown = 'nepoznat';
+$strUnselectAll = 'ništa';
+$strUpdatePrivMessage = 'Ažurirali ste privilegije za %s.';
+$strUpdateProfileMessage = 'Profil je promjenjen.';
+$strUpdateQuery = 'Ažuriraj upit';
+$strUpdComTab = 'Molimo pogledajte u dokumentaciji kako se ažurira tabela Column_comments';
+$strUsage = 'Zauzeće';
+$strUseBackquotes = 'Koristi \' za ograničavanje imena polja';
+$strUseHostTable = 'Koristi tabelu hosta';
+$strUserAlreadyExists = 'Korisnik %s već postoji!';
+$strUserEmpty = 'Ime korisnika nije unijeto!';
+$strUser = 'Korisnik';
+$strUserName = 'Ime korisnika';
+$strUserNotFound = 'Izabrani korisnik nije pronađen u tabeli privilegija.';
+$strUserOverview = 'Pregled korisnika';
+$strUsersDeleted = 'Izabrani korisnici su uspješno obrisani.';
+$strUsersHavingAccessToDb = 'Korisnici koji imaju pristup &quot;%s&quot;';
+$strUseTables = 'Koristi tabele';
+$strUseTextField = 'Koristi tekst polje';
+$strUseThisValue = 'Koristi ovu vrijednost';
+
+$strValidateSQL = 'Provjeri SQL';
+$strValidatorError = 'SQL validator nije mogao da bude pokrenut. Proverite da li su instalirane neophodne PHP ekstenzije opisane u %sdokumentaciji%s.';
+$strValue = 'Vrijednost';
+$strVar = 'Promjenljiva';
+$strViewDumpDatabases = 'Prikaži sadržaj (shemu) baze';
+$strViewDumpDB = 'Prikaži sadržaj (shemu) baze';
+$strViewDump = 'Prikaži sadržaj (shemu) tabele';
+
+$strWebServerUploadDirectory = 'direkcija za slanje web servera ';
+$strWebServerUploadDirectoryError = 'Direkcija koju ste izabrali za slanje nije dostupna';
+$strWelcome = 'Dobrodošli na %s';
+$strWestEuropean = 'Zapadnoevropski';
+$strWildcard = 'Džoker';
+$strWindowNotFound = 'Odredišnji prozor pretraživača nije mogao da bude ažuriran. Možda ste zatvorili matični prozor, ili vaš preraživač onemogućava ažuriranje među prozorima zbog sigurnosnih podešavanja';
+$strWithChecked = 'Označeno:';
+$strWrongUser = 'Pogrešno korisničko ime/lozinka. Ulaz nije dozvoljen.';
+
+$strXML = 'XML';
+
+$strYes = 'Da';
+
+$strZeroRemovesTheLimit = 'Napomena: Postavljanje ovih opcija na 0 (nulu) uklanja limite.';
+$strZip = '"zipovano"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption'; //to translate
+$strLatexContent = 'Content of table __TABLE__'; //to translate
+$strLatexContinuedCaption = 'Continued table caption'; //to translate
+$strLatexContinued = '(continued)'; //to translate
+$strLatexIncludeCaption = 'Include table caption'; //to translate
+$strLatexLabel = 'Label key'; //to translate
+$strLatexStructure = 'Structure of table __TABLE__'; //to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/brazilian_portuguese-utf-8.inc.php b/lang/brazilian_portuguese-utf-8.inc.php
new file mode 100644
index 0000000000..fd2f3b7d0a
--- /dev/null
+++ b/lang/brazilian_portuguese-utf-8.inc.php
@@ -0,0 +1,1445 @@
+<?php
+/* $Id$ */
+/* translated by: Airon Luis Pereira <airon(dot)pereira(at)gmail(dot)com> */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' da esquerda para direita, 'rtl' da direita para esquerda)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// abreviações para Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$mysql_4_1_doc_lang = 'pt';
+
+$day_of_week = array('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab');
+$month = array('Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez');
+// Veja http://www.php.net/manual/en/function.strftime.php para definir
+// as variáveis abaixo
+$datefmt = '%B %d, %Y as %I:%M %p';
+
+$timespanfmt = '%s dias, %s horas, %s minutos e %s segundos';
+
+$strAbortedClients = 'Abortado';
+$strAccessDenied = 'Acesso negado';
+$strAccessDeniedCreateConfig = 'A provável razão para isso é que você não criou o arquivo de configuração. Você deve usar o %1$ssetup script%2$s para criar um.';
+$strAccessDeniedExplanation = 'phpMyAdmin tentou se conectar no servidor MySQL e a conxão foi recusada. Você deve checar o servidor, nome de usuário e senha no config.inc.php e se certificar que correspondam com as informações fornecidas pelo administrador do servidor MySQL.';
+$strAction = 'Ação';
+$strAddAutoIncrement = 'Adicionar valor AUTO_INCREMENT';
+$strAddClause = 'Adicionar %s';
+$strAddConstraints = 'Adicionar restrições';
+$strAddDeleteColumn = 'Adicionar/Remover colunas';
+$strAddDeleteRow = 'Adicionar/Remover critérios de busca';
+$strAddFields = 'Adicionar %s campo(s)';
+$strAddHeaderComment = 'Adicionar comentário pessoal no cabeçalho (\\n quebra linhas)';
+$strAddIntoComments = 'Adicionar nos comentários';
+$strAddNewField = 'Adicionar novo campo';
+$strAddPrivilegesOnDb = 'Adicionar privilégios nas seguintes Banco de Dados';
+$strAddPrivilegesOnTbl = 'Adicionar privilégios nas seguintes tabelas';
+$strAddSearchConditions = 'Condição de Pesquisa (complemento da cláusula "onde"):';
+$strAddToIndex = 'Adicionar ao índice &nbsp;%s&nbsp;coluna(s)';
+$strAddUser = 'Adicionar novo usuário';
+$strAddUserMessage = 'Adicionado usuário';
+$strAdministration = 'Administração';
+$strAfter = 'Depois %s';
+$strAfterInsertBack = 'Retornar';
+$strAfterInsertNewInsert = 'Inserir novo registro';
+$strAfterInsertNext = 'Editar próximo registro';
+$strAfterInsertSame = 'Voltar para esta página';
+$strAllowInterrupt = 'Permitir interromper a importação caso se detecte que o script demorará perto do tempo limite. Isso pode ser um bom caminho para importar arquivos grandes, entretanto isso pode interromper as transações.';
+$strAllTableSameWidth = 'mostrar todas as tabelas com o mesmo tamanho?';
+$strAll = 'Todos';
+$strAlterOrderBy = 'Alterar tabela ordenada por';
+$strAnalyzeTable = 'Analizar tabela';
+$strAnd = 'E';
+$strAndThen = 'e então';
+$strAngularLinks = 'Links Angulares';
+$strAnIndex = 'Um índice foi adicionado a %s';
+$strAnyHost = 'Qualquer servidor';
+$strAny = 'Qualquer';
+$strAnyUser = 'Qualquer usuário';
+$strApproximateCount = 'Pode ser aproximado. Veja o FAQ 3.11';
+$strAPrimaryKey = 'Uma chave primária foi adicionada a %s';
+$strArabic = 'Árabe';
+$strArmenian = 'Armêno';
+$strAscending = 'Ascendente';
+$strAtBeginningOfTable = 'No início da tabela';
+$strAtEndOfTable = 'No final da tabela';
+$strAttr = 'Atributos';
+$strAutomaticLayout = 'Leiaute automático';
+
+$strBack = 'Voltar';
+$strBaltic = 'Báltico';
+$strBeginCut = 'INICIO CORTE';
+$strBeginRaw = 'INICIO CRU';
+$strBinary = ' Binário ';
+$strBinaryDoNotEdit = ' Binário - não edite ';
+$strBinaryLog = 'Log binário';
+$strBinLogEventType = 'Tipo de evento';
+$strBinLogInfo = 'Informação';
+$strBinLogName = 'Nome do log';
+$strBinLogOriginalPosition = 'Posição original';
+$strBinLogPosition = 'Posição';
+$strBinLogServerId = 'ID do Servidor';
+$strBookmarkAllUsers = 'Deixar qualquer usuário acessar esse marcador';
+$strBookmarkCreated = 'Marcador %s criado';
+$strBookmarkDeleted = 'O marcador foi removido.';
+$strBookmarkLabel = 'Nome';
+$strBookmarkQuery = 'Consulta SQL gravada';
+$strBookmarkReplace = 'Substituir marcador de mesmo nome existente';
+$strBookmarkThis = 'Gravar essa consulta SQL';
+$strBookmarkView = 'Apenas visualizar';
+$strBrowseDistinctValues = 'Navegador distingue valores';
+$strBrowseForeignValues = 'Visualizar valores estrangeiros';
+$strBrowse = 'Visualizar';
+$strBufferPoolActivity = 'Atividade do Buffer Pool';
+$strBufferPool = 'Buffer Pool';
+$strBufferPoolUsage = 'Uso do Buffer Pool';
+$strBufferReadMissesInPercent = 'Leitura falhou em %';
+$strBufferReadMisses = 'Leitura falhou';
+$strBufferWriteWaits = 'Escrever as esperas';
+$strBufferWriteWaitsInPercent = 'Escrita esperada em %';
+$strBulgarian = 'Bulgaro';
+$strBusyPages = 'Página ocupadas';
+$strBzip = '"compactado com bzip"';
+
+$strCalendar = 'Calendário';
+$strCancel = 'Cancelar';
+$strCanNotLoadExportPlugins = 'Não pode carregar exportação dos plugins, verifique sua instalação!';
+$strCanNotLoadImportPlugins = 'Não foi possível importar plugins, verifique sua instalação!';
+$strCannotLogin = 'Não foi possível se logar no servidor MySQL';
+$strCantLoad = 'não carregou extensão %s,<br />verifique a configurações do php';
+$strCantLoadRecodeIconv = 'Não é possível carregar <i>iconv</i> ou recodificar a extensão necessária para a conversão do Conjunto de Caracteres, configure o PHP de modo a permitir utilizar estas extensões ou desligue a conversão do Conjunto de Caracteres no phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Não foi possível renomear o índice para "PRIMARY"!';
+$strCantUseRecodeIconv = 'Não é possível usar <i>iconv</i> nem <i>libiconv</i> nem a função <i>recode_string</i> enquanto a extensão reportar que está ligada. Confira a configuração do seu php.';
+$strCardinality = 'Cardinalidade';
+$strCaseInsensitive = 'Não diferencia maiúsculas/minúsculas';
+$strCaseSensitive = 'Diferencia maiúsculas/minúsculas';
+$strCentralEuropean = 'Europeu Central';
+$strChange = 'Alterar';
+$strChangeCopyModeCopy = '... manter o antigo.';
+$strChangeCopyMode = 'Criar um novo usuário com os mesmos privilégios e ...';
+$strChangeCopyModeDeleteAndReload = ' ... apagar o antigo da tabela de usuários e depois recarregar os privilégios.';
+$strChangeCopyModeJustDelete = ' ... apagar o antigo da tabela de usuários.';
+$strChangeCopyModeRevoke = ' ... revogar todos privilégios do usuário antigo e depois apagar ele.';
+$strChangeCopyUser = 'Mudar informações de login / Copiar usuário';
+$strChangeDisplay = 'Escolha o campo para exibir';
+$strChangePassword = 'Alterar a senha';
+$strCharset = 'Conjunto de caracteres';
+$strCharsetOfFile = 'Conjunto de caracteres do arquivo';
+$strCharsetsAndCollations = 'Conjuntos de caracteres e Collations';
+$strCharsets = 'Conjuntos de caracteres';
+$strCheckAll = 'Marcar todos';
+$strCheckOverhead = 'Verificar sobre-carga';
+$strCheckPrivsLong = 'Verificar privilégios para a Banco de Dados &quot;%s&quot;.';
+$strCheckPrivs = 'Verificar privilégios';
+$strCheckTable = 'Verificar tabela';
+$strChoosePage = 'Escolha a página para editar';
+$strColComFeat = 'Exibindo comentários da coluna';
+$strCollation = 'Collation';
+$strColumnNames = 'Nome das colunas';
+$strColumnPrivileges = 'Privilégios específicos da coluna';
+$strCommand = 'Comando';
+$strComments = 'Comentários';
+$strCompatibleHashing = 'Compatível com MySQL&nbsp;4.0';
+$strCompleteInserts = 'Inserções completas';
+$strCompression = 'Compressão';
+$strCompressionWillBeDetected = 'Compressão do arquivo importado será automaticamente detectada de: %s';
+$strConfigDefaultFileError = 'Não foi possível carregar configuração padrão de: "%1$s"';
+$strConfigFileError = 'O phpMyAdmin não foi capaz de ler o arquivo de configuração!<br />Isto pode acontecer se o php encontrar um erro no <i>parsing</i> ou se não conseguir encontrar o arquivo.<br />Chame o arquivo de configuração diretamente usando o <i>link</i> abaixo e leia a(s) mensagem(ns) de erro do php. Na maior parte dos casos, trata-se de uma falta de aspas ou de um ponto e vírgula errado.<br />Se receber uma página em branco, está tudo certo.';
+$strConfigureTableCoord = 'Configure as coordenadas para a tabela %s';
+$strConnectionError = 'Não pode conectar: configurações inválidas.';
+$strConnections = 'Conexões';
+$strConstraintsForDumped = 'Restrições para as tabelas dumpadas';
+$strConstraintsForTable = 'Restrições para a tabela';
+$strControluserFailed = 'Conexão para controle do usuário como definido nas configurações falhou.';
+$strCookiesRequired = 'Cookies devem estar ativos após este ponto.';
+$strCopy = 'Copiar';
+$strCopyDatabaseOK = 'Banco de Dados %s copiado para %s';
+$strCopyTable = 'Copiar tabela para (Banco de Dados<b>.</b>tabela):';
+$strCopyTableOK = 'Tabela %s copiada para %s.';
+$strCopyTableSameNames = 'Não pode copiar a tabela para ela mesma!';
+$strCouldNotKill = 'phpMyAdmin não foi capaz de matar o processo %s. É possível que ele já esteja fechado.';
+$strCreate = 'Criar';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE antes de copiar';
+$strCreateIndex = 'Criar um índice em&nbsp;%s&nbsp;colunas';
+$strCreateIndexTopic = 'Criar um novo índice';
+$strCreateNewDatabase = 'Criar novo Banco de Dados';
+$strCreateNewTable = 'Criar nova tabela no Banco de Dados %s';
+$strCreatePage = 'Criar uma nova página';
+$strCreatePdfFeat = 'Criação de PDFs';
+$strCreateRelation = 'Criar relacionamento';
+$strCreateTable = 'Criar tabela';
+$strCreateUserDatabase = 'Banco de Dados para usuário';
+$strCreateUserDatabaseName = 'Criar Banco de Dados com o mesmo nome e conceder todos os privilégios';
+$strCreateUserDatabaseNone = 'Nenhum';
+$strCreateUserDatabaseWildcard = 'Conceder todos os privilégios no nome coringa (nome_do_usuário_%)';
+$strCreationDates = 'Criar/Atualizar/Verificar datas';
+$strCriteria = 'Critério';
+$strCroatian = 'Croata';
+$strCSV = 'CSV';
+$strCyrillic = 'Cirílico';
+$strCzechSlovak = 'Tcheco-Eslováquio';
+$strCzech = 'Tcheco';
+
+$strDanish = 'Dinamarquês';
+$strDatabase = 'Banco de Dados';
+$strDatabaseEmpty = 'O nome do Banco de Dados está em branco!';
+$strDatabaseExportOptions = 'Opções de exportação do Banco de Dados';
+$strDatabaseHasBeenDropped = 'Banco de Dados %s foi eliminado.';
+$strDatabases = 'Banco de Dados';
+$strDatabasesDropped = 'Banco de Dados %s foi eliminado com sucesso!';
+$strDatabasesStatsDisable = 'Disabilitar estatísticas';
+$strDatabasesStatsEnable = 'Habilitar estatísticas';
+$strDatabasesStats = 'Estatísticas do Banco de Dados';
+$strDatabasesStatsHeavyTraffic = 'Nota: Ativar as estatísticas pode causar um grande volume de tráfego de dados entre o servidor web e o servidor MySQL.';
+$strData = 'Dados';
+$strDataDict = 'Dicionário de dados';
+$strDataOnly = 'Dados apenas';
+$strDataPages = 'Páginas contendo dados';
+$strDBComment = 'Comentário do Banco de Dados: ';
+$strDBCopy = 'Copiar Banco de Dados para';
+$strDbIsEmpty = 'Banco de Dados parece estar vazio!';
+$strDbPrivileges = 'Privilégios específicos do Banco de Dados';
+$strDBRename = 'Renomear Banco de Dados para';
+$strDbSpecific = 'Específico do Banco de Dados';
+$strDefaultEngine = '%s é o stored engine padrão neste servidor MySQL.';
+$strDefault = 'Padrão';
+$strDefaultValueHelp = 'Para valores padrão, digite um valor simples, sem barras de escape ou aspas, use este formato: a';
+$strDefragment = 'Desfragmentar tabela';
+$strDelayedInserts = 'Usar inserções demoradas';
+$strDeleteAndFlush = 'Apagar usuário e depois recarregar os privilégios.';
+$strDeleteAndFlushDescr = 'Esse é o caminho mais claro, mas recarregar os privilégios pode demorar um pouco.';
+$strDeleted = 'Registro eliminado';
+$strDeleteNoUsersSelected = 'Nenhum usuário selecionado para exclusão!';
+$strDeleteRelation = 'Apagar relacionamento';
+$strDelete = 'Remover';
+$strDeleting = 'Eliminando %s';
+$strDelimiter = 'Delimitadores';
+$strDelOld = 'A Página atual contêm referências para uma tabela que não existe. Gostaria de eliminar estas referências?';
+$strDescending = 'Descendente';
+$strDescription = 'Descrição';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'O campo de exibição está em rosa. Para ajustar/desajustar um campo como campo de exibição, clique no ícone "Escolher campo para exibição", então clique no nome do campo apropriado.';
+$strDictionary = 'dicionário';
+$strDirectLinks = 'Links diretos';
+$strDirtyPages = 'Páginas sujas';
+$strDisabled = 'Desabilitado';
+$strDisableForeignChecks = 'Desabilitar verificação de chaves estrangeiras';
+$strDisplayFeat = 'Exibir recursos';
+$strDisplayOrder = 'Ordenado por:';
+$strDisplayPDF = 'Exibir esquema PDF';
+$strDoAQuery = 'Faça uma "consulta por exemplo" (coringa: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentação';
+$strDoYouReally = 'Confirmar';
+$strDropDatabaseStrongWarning = 'Você está prestes à DESTRUIR completamente o Banco de Dados!';
+$strDrop = 'Eliminar';
+$strDropUsersDb = 'Eliminar o Banco de Dados que possui o mesmo nome dos usuários.';
+$strDumpingData = 'Extraindo dados da tabela';
+$strDumpSaved = 'Dump foi salvo no arquivo %s.';
+$strDumpXRows = 'Dumpar %s registros, começando pelo registro %s.';
+$strDynamic = 'dinâmico';
+
+$strEdit = 'Editar';
+$strEditPDFPages = 'Editar Páginas PDF';
+$strEditPrivileges = 'Editar Privilégios';
+$strEffective = 'Efetivo';
+$strEmpty = 'Limpar';
+$strEmptyResultSet = 'MySQL retornou um conjunto vazio (ex. zero registros).';
+$strEnabled = 'Habilitado';
+$strEncloseInTransaction = 'Encapsular exportação numa transação';
+$strEndCut = 'FIM CORTE';
+$strEnd = 'Fim';
+$strEndRaw = 'FIM CRU';
+$strEngineAvailable = '%s está disponível neste servidor MySQL.';
+$strEngineDisabled = '%s está desabilitado neste servidor MySQL.';
+$strEngines = 'Engines'; //sem traducao
+$strEngineUnsupported = 'Esse servidor MySQL não suporta o stored engine %s.';
+$strEnglish = 'Inglês';
+$strEnglishPrivileges = ' Nota: nomes de privilégios do MySQL são expressos em inglês ';
+$strError = 'Erro';
+$strErrorInZipFile = 'Erro no arquivo ZIP:';
+$strErrorRelationAdded = 'Erro: relacionamento não adicionado.';
+$strErrorRelationExists = 'Erro: relacionamento já existe.';
+$strErrorRenamingTable = 'Erro ao renomear tabela %1$s para %2$s';
+$strErrorSaveTable = 'Erro ao salvar coordenada para o Designer.';
+$strEscapeWildcards = 'Coringas _ e % precisam ser precedidos com uma \ para serem usados literalmente';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estoniano';
+$strEvent = 'Evento';
+$strExcelEdition = 'Edição do Excel';
+$strExecuteBookmarked = 'Executar consulta marcada';
+$strExplain = 'Explicar SQL';
+$strExport = 'Exportar';
+$strExportImportToScale = 'Exportar/Importar para escala';
+$strExportMustBeFile = 'Tipo de exportação selecionada tem que ser salva no arquivo!';
+$strExtendedInserts = 'Inserções extendidas';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Tentativas falharam';
+$strField = 'Campo';
+$strFieldHasBeenDropped = 'Campo %s foi deletado';
+$strFieldInsertFromFileTempDirNotExists = 'Erro ao mover o arquivo carregado, veja FAQ 1.11';
+$strFields = 'Campos';
+$strFieldsEnclosedBy = 'Campos delimitados por';
+$strFieldsEscapedBy = 'Campos contornados por';
+$strFieldsTerminatedBy = 'Campos terminados por';
+$strFileAlreadyExists = 'O arquivo %s já existe no servidor, mude o nome do arquivo ou verifique sua opção de sobrescrever.';
+$strFileCouldNotBeRead = 'O arquivo não pode ser lido';
+$strFileNameTemplateDescriptionDatabase = 'nome do Banco de Dados';
+$strFileNameTemplateDescription = 'Esse valor é interpretado usando %1$sstrftime%2$s, então você pode usar as strings de formatação de tempo. Adicionalmente a seguinte transformação ocorrerá: %3$s. Outros textos serão mantidos como são.';
+$strFileNameTemplateDescriptionServer = 'nome do servidor';
+$strFileNameTemplateDescriptionTable = 'nome da tabela';
+$strFileNameTemplate = 'Nome do arquivo do modelo';
+$strFileNameTemplateRemember = 'lembrar modelo';
+$strFiles = 'Arquivos';
+$strFileToImport = 'Arquivo para importar';
+$strFixed = 'fixo';
+$strFlushPrivilegesNote = 'Nota: O phpMyAdmin recebe os privilégios dos usuário diretamente da tabela de privilégios do MySQL. O conteúdo destas tabelas pode divergir dos privilégios que o servidor usa se alterações manuais forem feitas nele. Neste caso, você deve usar %sRELOAD PRIVILEGES%s antes de continuar..';
+$strFlushQueryCache = 'Nivelar cache da consulta'; //está correto isso?
+$strFlushTable = 'Limpar a tabela ("LIMPAR")';
+$strFlushTables = 'Nivelar (fechar) todas as tabelas'; //está correto isso?
+$strFontSize = 'Tamanho da fonte';
+$strFormat = 'Formato';
+$strFormEmpty = 'Faltando valores no formulário!';
+$strFreePages = 'Páginas livres';
+$strFullText = 'Textos completos';
+$strFunction = 'Funções';
+$strFunctions = 'Funções';
+
+$strGenBy = 'Gerado por';
+$strGeneralRelationFeat = 'Recursos de relações gerais';
+$strGenerate = 'Gerar';
+$strGeneratePassword = 'Gerar Senha';
+$strGenTime = 'Tempo de Geração';
+$strGeorgian = 'Georgiano';
+$strGerman = 'Alemão';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Privilégios globais';
+$strGlobalValue = 'Valor global';
+$strGo = 'Executar';
+$strGrantOption = 'Conceder/Grant';
+$strGreek = 'Grego';
+$strGzip = '"compactado com gzip"';
+
+$strHandler = 'Alimentador'; //está correto isso? seria Gestor??
+$strHasBeenAltered = 'foi alterado.';
+$strHaveToShow = 'Deve escolher pelo menos uma coluna para exibir';
+$strHebrew = 'Hebreu';
+$strHelp = 'Ajuda';
+$strHexForBLOB = 'Usar hexadecimal para BLOB';
+$strHide = 'Ocultar';
+$strHideShowAll = 'Ocultar/Exibir tudo';
+$strHideShowNoRelation = 'Ocultar/Exibir Tabelas sem relacionamento';
+$strHomepageOfficial = 'Página Oficial do phpMyAdmin';
+$strHome = 'Principal';
+$strHostEmpty = 'O nome do servidor está vazio!';
+$strHost = 'Servidor';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Húngaro';
+
+$strIcelandic = 'Islandês';
+$strId = 'ID';
+$strIdxFulltext = 'Texto completo';
+$strIEUnsupported = 'Internet Explorer não suporta esta função.';
+$strIgnoreDuplicates = 'Ignorar linhas duplicadas';
+$strIgnore = 'Ignorar';
+$strIgnoreInserts = 'Usar inserções ignoradas';
+$strImportExportCoords = 'Importar/Exportar coordenadas para esquema PDF';
+$strImportFiles = 'Importar arquivos';
+$strImportFormat = 'Formato do arquivo importado';
+$strImport = 'Importar';
+$strImportSuccessfullyFinished = 'Importação finalizada com sucesso, %d consultas executadas.';
+$strIndexes = 'Índices';
+$strIndexHasBeenDropped = 'Índice %s foi eliminado';
+$strIndex = 'Índice';
+$strIndexName = 'Nome do índice:';
+$strIndexType = 'Tipo de índice:';
+$strIndexWarningTable = 'Problemas com o índice da tabela `%s`';
+$strInnoDBAutoextendIncrementDesc = 'O tamanho do incremento para extender o tamanho de um tamanho de tabela autoextendida quando ela começar à ficar cheia.';
+$strInnoDBAutoextendIncrement = 'Incremento autoextendido';
+$strInnoDBBufferPoolSizeDesc = 'O tamanho do buffer de memória que o InnoDB usa para dados do cache e índices nas suas tabelas.';
+$strInnoDBBufferPoolSize = 'Tamanho do Buffer Pool';
+$strInnoDBDataFilePath = 'Arquivos de dados';
+$strInnoDBDataHomeDirDesc = 'A parte comum do caminho do diretório para todos os arquivos de dados do InnoDB.';
+$strInnoDBDataHomeDir = 'Diretório raiz de dados';
+$strInnoDBPages = 'páginas';
+$strInnodbStat = 'Status do InnoDB';
+$strInsecureMySQL = 'O seu arquivo de configuração contém configurações (root sem senha) que correspondem à conta privilegiada padrão do MySQL. O servidor MySQL rodando com esse padrão estará aberto a invasões, você realmente deveria corrigir este furo de segurança.';
+$strInsertAsNewRow = 'Inserir como um novo registro';
+$strInsert = 'Inserir';
+$strInternalRelationAdded = 'Adicionado relacionamento Interno';
+$strInternalRelations = 'Relações internas';
+$strInUse = 'em uso';
+$strInvalidAuthMethod = 'Método de autenticação inválido informado nas configurações:';
+$strInvalidColumn = 'Coluna especificada (%s) é inválida!';
+$strInvalidColumnCount = 'Contador da coluna deve ser maior que zero.';
+$strInvalidCSVFieldCount = 'Contador de campo inválido na linha %d da entrada CSV.';
+$strInvalidCSVFormat = 'Formato inválido na linha %d da entrada CSV.';
+$strInvalidCSVParameter = 'Parâmetro inválido para importação CSV: %s';
+$strInvalidDatabase = 'Banco de Dados inválido';
+$strInvalidFieldAddCount = 'Você deve adicionar pelo menos um campo.';
+$strInvalidFieldCount = 'Tabela deve ter pelo menos um campo.';
+$strInvalidLDIImport = 'Esse plugin não suporta importações comprimidas!';
+$strInvalidRowNumber = '%d não é um número de linha válido.';
+$strInvalidServerHostname = 'Nome de serivdor inválido para o servidor %1$s. Verifique suas configurações.';
+$strInvalidServerIndex = 'Índice de servidor inválido: "%s"';
+$strInvalidTableName = 'Nome de tabela inválida';
+
+$strJapanese = 'Japonês';
+$strJoins = 'Junções';
+$strJumpToDB = 'Ir para o Banco de Dados &quot;%s&quot;.';
+$strJustDelete = 'Apenas apagar o usuário da tabela de privilégios';
+$strJustDeleteDescr = 'O usuário &quot;apagado&quot; ainda podera continuar acessando o servidor normalmente até que os privilégios sejam recarregados.';
+
+$strKeepPass = 'Não mudar a senha';
+$strKeyCache = 'Chave do cache';
+$strKeyname = 'Nome chave';
+$strKill = 'Matar';
+$strKnownExternalBug = 'A funcionalidade %s é afetada por um bug conhecido, veja %s';
+$strKorean = 'Coreano';
+
+$strLandscape = 'Paisagem';
+$strLanguage = 'Linguagem';
+$strLanguageUnknown = 'Linguagem desconhecida: %1$s.';
+$strLatchedPages = 'Páginas trancadas';
+$strLatexCaption = 'Leganda da Tabela';
+$strLatexContent = 'Conteúdo da tabela __TABLE__';
+$strLatexContinuedCaption = 'Continuação da legenda da tabela';
+$strLatexContinued = '(continuação)';
+$strLatexIncludeCaption = 'Incluir legenda da tabela';
+$strLatexLabel = 'Rótulo da chave';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Estrutura da tabela __TABLE__';
+$strLatvian = 'Letonês';
+$strLDI = 'CSV usando LOAD DATA';
+$strLDILocal = 'Usar palavra-chave LOCAL';
+$strLengthSet = 'Tamanho/Definir*';
+$strLimitNumRows = 'registros por página';
+$strLinesTerminatedBy = 'Linhas terminadas por';
+$strLinkNotFound = 'Link não encontrado';
+$strLinksTo = 'Links para';
+$strLithuanian = 'Lituânio';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Localização do arquivo texto';
+$strLogin = 'Autenticação';
+$strLoginInformation = 'Informação de login';
+$strLogout = 'Sair';
+$strLogPassword = 'Senha:';
+$strLogServer = 'Servidor';
+$strLogUsername = 'Usuário:';
+$strLongOperation = 'Esta operação pode ser demorada. Deseja prosseguir?';
+
+$strMaxConnects = 'máx. de conexões concorrentes';
+$strMaximalQueryLength = 'Tamanho máximo da consulta gerada';
+$strMaximumSize = 'Tamanho máximo: %s%s';
+$strMbExtensionMissing = 'A extensão mbstring do PHP não foi encontrada e você parece estar usando conjuntos de caracteres multibyte. Sem a extensão mbstring o phpMyAdmin não será capaz de dividir as strings corretamente isso pode causar resultados inesperados.';
+$strMbOverloadWarning = 'Você habilitou mbstring.func_overload nas configurações do PHP. Essa opção é incompatível com o phpMyAdmin e certamente causará a perda de algum dado!';
+$strMIME_available_mime = 'MIME-type disponíveis';
+$strMIME_available_transform = 'Transformações disponíveis';
+$strMIME_description = 'Descrição';
+$strMIME_MIMEtype = 'MIME-type'; // MIME-types nao tem traducao
+$strMIME_nodescription = 'Sem descrição disponível para essa transformação.<br />Pergunte ao autor o que %s faz.';
+$strMIME_transformation_note = 'Para uma lista de opções de transformação disponíveis e suas transformações MIME-type, clique em %sdescrição de transformações%s';
+$strMIME_transformation_options_note = 'Digite os valores para as opções de transformação usando este formato: \'a\', 100, b,\'c\'...<br />Se por acaso precisar inserir uma contra-barra ("\") ou aspas ("\'") no meio desses valores, faça-o usando outra contra-barra (por exemplo \'\\\\xyz\' ou \'a\\\'b\').';
+$strMIME_transformation_options = 'Opções de transformação';
+$strMIME_transformation = 'Transformações do navegador';
+$strMIMETypesForTable = 'MIME-TYPES PARA AS TABELAS';
+$strMIME_without = 'MIME-types em itálico não têm uma função de transformação separada';
+$strModifications = 'Modificações foram salvas';
+$strModifyIndexTopic = 'Modificar um índice';
+$strModify = 'Modificar';
+$strMoveMenu = 'Mover Menu';
+$strMoveTable = 'Mover tabela para (Banco de Dados<b>.</b>tabela):';
+$strMoveTableOK = 'Tabela %s foi movida para %s.';
+$strMoveTableSameNames = 'Não pode mover a tabela para ela mesma!';
+$strMultilingual = 'multi-linguagem';
+$strMyISAMDataPointerSizeDesc = 'O tamanho padrão do ponteiro em bytes, para ser usado por CREATE TABLE para tabelas MyISAM quando a opção MAX_ROWS não é especificada.';
+$strMyISAMDataPointerSize = 'Tamanho do ponteiro de dados';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Se os arquivos temporários usados para rápida criação de índices MyISAM forem maiores do que usando a chave do cache pela quantidade especificada aqui, prefira o método chave do cache.';
+$strMyISAMMaxExtraSortFileSize = 'Tamanho máximo para arquivos temporários na criação do índice';
+$strMyISAMMaxSortFileSizeDesc = 'O tamanho máximo do arquivo temporário MySQL que é permitido usar quando for recriar um índice MyISAM (durante REPAIR TABLE, ALTER TABLE ou LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Tamanho máximo para os arquivos temporários de ordenação';
+$strMyISAMRecoverOptionsDesc = 'O modo para recuperação automática de tabelas MyISAM danificadas, como configurado pela opção de inicialização do servidor --myisam-recover.';
+$strMyISAMRecoverOptions = 'Modo de recuperação automático';
+$strMyISAMRepairThreadsDesc = 'Se este valor for maior que 1, índices das tabelas MyISAM são criados em paralelo (cada índice tem seu próprio processo) durante o Reparo pelo processo de ordenação.';
+$strMyISAMRepairThreads = 'Processos de reparo';
+$strMyISAMSortBufferSizeDesc = 'O buffer que é alocado quando são ordenados índices MyISAM durante um REPAIR TABLE ou quando são criados índices com CREATE INDEX ou ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Tamanho do buffer de ordenação';
+$strMySQLCharset = 'Conjunto de caracteres MySQL';
+$strMysqlClientVersion = 'Versão do cliente MySQL';
+$strMySQLConnectionCollation = 'Collation de conexão do MySQL'; // Collation nao tem traducao
+$strMysqlLibDiffersServerVersion = 'Sua versão %s da biblioteca MySQL do PHP difere da versão %s do seu servidor MySQL. Isso pode causar um comportamento estranho.';
+$strMySQLSaid = 'Mensagens do MySQL : ';
+$strMySQLShowProcess = 'Mostrar os Processos';
+
+$strName = 'Nome';
+$strNext = 'Próximo';
+$strNoActivity = 'Sem atividade por %s segundos ou mais, faça o login novamente';
+$strNoDatabasesSelected = 'Nenhum Banco de Dados selecionado.';
+$strNoDatabases = 'Sem bases';
+$strNoDataReceived = 'Nenhum dado foi recebido pra importar. Tampouco um nome de arquivo foi submetido, ou o tamanho do arquivo excedeu o tamanho máximo permitido pelas suas configurações do PHP. Veja FAQ 1.16.';
+$strNoDescription = 'sem Descrição';
+$strNoDetailsForEngine = 'Não há nenhuma informação detalhada do status disponível para esta storage engine.';
+$strNoDropDatabases = 'O comando "DROP DATABASE" está desabilitado.';
+$strNoExplain = 'Pular Explicação SQL';
+$strNoFilesFoundInZip = 'Nenhum arquivo encontrado dentro do arquivo ZIP!';
+$strNoFrames = 'phpMyAdmin é mais amigável com um navegador <b>capaz de exibir frames</b>.';
+$strNoIndex = 'Nenhum índice definido!';
+$strNoIndexPartsDefined = 'Nenhuma parte de índice definida!';
+$strNoModification = 'Sem Mudança';
+$strNo = 'Não';
+$strNone = 'Nenhum';
+$strNoOptions = 'Esse formato não tem opções';
+$strNoPassword = 'Sem senha';
+$strNoPermission = 'O servidor web não tem permissão para salvar o arquivo %s.';
+$strNoPhp = 'sem código PHP';
+$strNoPrivileges = 'Sem privilégios';
+$strNoRights = 'Você não tem direitos suficientes para estar aqui agora!';
+$strNoRowsSelected = 'Nenhum registro selecionado';
+$strNoSpace = 'Espaço insuficiente para salvar o arquivo %s.';
+$strNoTablesFound = 'Nenhuma tabela encontrada no Banco de Dados';
+$strNoThemeSupport = 'Sem suporte a Temas, verifique suas configurações e/ou seus Temas no diretório %s.';
+$strNotNumber = 'Isto não é um número!';
+$strNotOK = 'não está OK';
+$strNotSet = '<b>%s</b> tabela não encontrada ou não configurada em %s';
+$strNoUsersFound = 'Nenhum usuário(s) encontrado.';
+$strNoValidateSQL = 'Pular validação SQL';
+$strNull = 'Nulo';
+$strNumberOfFields = 'Número de arquivos';
+$strNumberOfTables = 'Numero de tabelas';
+$strNumSearchResultsInTable = '%s resultado(s) dentro da tabela <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> resultado(s)';
+$strNumTables = 'Tabelas';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Abrir Documento Planilha';
+$strOpenDocumentText = 'Abrir Documento de Texto';
+$strOpenNewWindow = 'Abrir nova janela do phpMyAdmin';
+$strOperations = 'Operações';
+$strOperator = 'Operador';
+$strOptimizeTable = 'Otimizar tabela';
+$strOptions = 'Opções';
+$strOr = 'Ou';
+$strOverhead = 'Sobrecarga';
+$strOverwriteExisting = 'Sobrescrever arquivo(s) existente(s)';
+
+$strPageNumber = 'Numero da página:';
+$strPagesToBeFlushed = 'Páginas para serem niveladas';
+$strPaperSize = 'Tamanho do papel';
+$strPartialImport = 'Importação parcial';
+$strPartialText = 'Textos parciais';
+$strPasswordChanged = 'A senha para %s foi modificada com sucesso.';
+$strPasswordEmpty = 'A senhas está em branco!';
+$strPasswordHashing = 'Hashing da senha'; // Hashing nao tem traducao
+$strPasswordNotSame = 'As senhas não são iguais!';
+$strPassword = 'Senha';
+$strPdfDbSchema = 'Esquema do Banco de Dados "%s" - Página %s';
+$strPdfInvalidTblName = 'A tabela "%s" não existe!';
+$strPdfNoTables = 'Sem tabelas';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Gerado um relatório contendo dados da tabela simples)';
+$strPDFReportTitle = 'Título do Relatório';
+$strPerHour = 'por hora';
+$strPerMinute = 'por minuto';
+$strPerSecond = 'por segundo';
+$strPersian = 'Pérsa';
+$strPhoneBook = 'Agenda de telefones';
+$strPhp = 'Criar código PHP';
+$strPHPVersion = 'Versão do PHP';
+$strPleaseSelectPrimaryOrUniqueKey = 'Por favor, selecione uma chave primária ou uma chave única';
+$strPmaDocumentation = 'Documentação do phpMyAdmin ';
+$strPmaUriError = 'A variável <tt>$cfg[\'PmaAbsoluteUri\']</tt> deve ser setada';
+$strPolish = 'Polonês';
+$strPortrait = 'Retrato';
+$strPos1 = 'Início';
+$strPrevious = 'Anterior';
+$strPrimaryKeyHasBeenDropped = 'A chave primária foi deletada';
+$strPrimaryKeyName = 'O nome da chave primária deve ser... "PRIMARY"!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>precisa</b> ser o nome <b>de</b> e <b>apenas da</b> chave primária!)';
+$strPrimary = 'Primária';
+$strPrint = 'Imprimir';
+$strPrintViewFull = 'Ver impressão (com textos completos)';
+$strPrintView = 'Visualização para impressão';
+$strPrivDescAllPrivileges = 'Incluir todos os privilégios, exceto GRANT.';
+$strPrivDescAlter = 'Permitir alterar a estrutura das tabelas existentes.';
+$strPrivDescAlterRoutine = 'Permitir alterar e apagar stored routines.';
+$strPrivDescCreateDb = 'Permitir criar novas tabelas e Banco de Dados.';
+$strPrivDescCreateRoutine = 'Permitir criar stored routines.';
+$strPrivDescCreateTbl = 'Permitir criar novas tabelas.';
+$strPrivDescCreateTmpTable = 'Permitir criar tabelas temporárias.';
+$strPrivDescCreateUser = 'Permitir criar, apagar e renomear contas dos usuários.';
+$strPrivDescCreateView = 'Permitir criar novas visões.';
+$strPrivDescDelete = 'Permitir apagar dados.';
+$strPrivDescDropDb = 'Permitir eliminar Banco de Dados e tabelas.';
+$strPrivDescDropTbl = 'Permitir eliminar tabelas.';
+$strPrivDescExecute5 = 'Permitir executar stored routines.';
+$strPrivDescExecute = 'Permitir rodar "stored procedures"; Sem efeitos nesta versão do MySQL.';
+$strPrivDescFile = 'Permitir importar dados e exportar dados em arquivos.';
+$strPrivDescGrant = 'Permitir adicionar usuários e privilégios sem recarregar a tabela de privilégios.';
+$strPrivDescIndex = 'Permitir criar e eliminar índices.';
+$strPrivDescInsert = 'Permitir inserir e substituir dados.';
+$strPrivDescLockTables = 'Permitir bloquear tabelas para a processo atual.';
+$strPrivDescMaxConnections = 'Limitar o numero de novas conexões que o usuário pode abrir por hora.';
+$strPrivDescMaxQuestions = 'Limitar o número de consultas que podem ser enviadas ao servidor por hora.';
+$strPrivDescMaxUpdates = 'Limitar o número de comandos que alteram Bancos de Dados ou tabelas que o usuário pode executar por hora.';
+$strPrivDescMaxUserConnections = 'Limitar o número de conexões simultâneas que o usuário pode ter.';
+$strPrivDescReferences = 'Sem efeitos nesta versão do MySQL.';
+$strPrivDescReload = 'Permitir recarregar configurações do servidor e descarregar o cache do servidor.';
+$strPrivDescReplClient = 'Permitir que o usuário pergunte onde estão os escravos / mestres.';
+$strPrivDescReplSlave = 'Precisar dos escravos de replicação.';
+$strPrivDescSelect = 'Permitir leitura dos dados.';
+$strPrivDescShowDb = 'Permitir acesso completo à lista de Bancos de Dados.';
+$strPrivDescShowView = 'Permitir executar consultas SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Permitir desligar o servidor.';
+$strPrivDescSuper = 'Permitir conectar, se o numero máximo de conexões for alcançado; Necessário para muitas operações administrativas, como setar variáveis globais e matar processos de outros usuários.';
+$strPrivDescUpdate = 'Permitir modificar dados.';
+$strPrivDescUsage = 'Sem privilégios.';
+$strPrivileges = 'Privilégios';
+$strPrivilegesReloaded = 'Os privilégios foram recarregados com sucesso.';
+$strProcedures = 'Procedimentos';
+$strProcesses = 'Processos';
+$strProcesslist = 'Lista de processos';
+$strProtocolVersion = 'Versão do Protocolo';
+$strPutColNames = 'Colocar nome do campo na primeira linha';
+
+$strQBEDel = 'Del'; // (used in tbl_qbe.php)
+$strQBEIns = 'Ins'; // (used in tbl_qbe.php)
+$strQBE = 'Procurar por exemplo';
+$strQueryCache = 'Consulta do cache';
+$strQueryFrame = 'Janela de consulta';
+$strQueryOnDb = 'Consulta no Banco de Dados <b>%s</b>:';
+$strQueryResultsOperations = 'Operações resultantes das consultas';
+$strQuerySQLHistory = 'Histórico de consultas';
+$strQueryStatistics = '<b>Estatísticas das consultas</b>: Desde o início, %s consultas foram enviadas para o servidor.';
+$strQueryTime = 'Consulta levou %01.4f segundos';
+$strQueryType = 'Tipo de consulta';
+$strQueryWindowLock = 'Não sobrescrever esta consulta fora desta janela';
+
+$strReadRequests = 'Leitura requisitada';
+$strReceived = 'Recebido';
+$strRecommended = 'recomendado';
+$strRecords = 'Registros';
+$strReferentialIntegrity = 'Verificar integridade referencial:';
+$strRefresh = 'Atualizar';
+$strRelationalSchema = 'Esquema relacional';
+$strRelationDeleted = 'Relacionamento apagado';
+$strRelationNotWorking = 'Os recursos adicionais para trabalhar com tabelas linkadas foram desativadas. Para descobrir o motivo clique %saqui%s.';
+$strRelationsForTable = 'RELAÇÕES PARA A TABELA';
+$strRelations = 'Relações';
+$strRelationView = 'Ver relações';
+$strReloadingThePrivileges = 'Recarregando os privilégios';
+$strReloadPrivileges = 'Recarregar privilégios';
+$strReload = 'Recarregar';
+$strRemoveSelectedUsers = 'Remover os usuários selecionados';
+$strRenameDatabaseOK = 'O Banco de Dados %s foi renomeado para %s';
+$strRenameTableOK = 'Tabela %s renomeada para %s';
+$strRenameTable = 'Renomear a tabela para ';
+$strRepairTable = 'Reparar tabela';
+$strReplaceNULLBy = 'Substituir NULL por';
+$strReplaceTable = 'Substituir os dados da tabela pelos do arquivo';
+$strReplication = 'Replicação';
+$strReset = 'Resetar';
+$strResourceLimits = 'Limite dos recursos';
+$strRestartInsertion = 'Reiniciar inserção com %s registros';
+$strReType = 'Re-digite';
+$strRevokeAndDeleteDescr = 'Os usuários manterão o privilégio de USAGE até que os privilégios sejam recarregados.';
+$strRevokeAndDelete = 'Revogar todos os privilégios ativos dos usuarios e depois apagar eles.';
+$strRevokeMessage = 'Você revogou os privilégios para %s';
+$strRevoke = 'Revogar';
+$strRomanian = 'Romêno';
+$strRoutineReturnType = 'Tipo de returno';
+$strRoutines = 'Rotinas';
+$strRowLength = 'Tamanho do registro';
+$strRowsFrom = 'registro(s) começando de';
+$strRowSize = ' Tamanho do registro ';
+$strRowsModeFlippedHorizontal = 'horizontal (cabeçalhos rotacionados)';
+$strRowsModeHorizontal = 'horizontal';
+$strRowsModeOptions = 'no modo %s e repetindo cabeçalhos após %s células';
+$strRowsModeVertical = 'vertical';
+$strRows = 'Registros';
+$strRowsStatistic = 'Estatísticas do registros';
+$strRunning = 'Rodando em %s';
+$strRunQuery = 'Enviar consulta SQL';
+$strRunSQLQuery = 'Fazer consulta SQL no Banco de Dados %s';
+$strRunSQLQueryOnServer = 'Rodar consulta(s) SQL no servidor %s';
+$strRussian = 'Russo';
+
+$strSaveOnServer = 'Salvar no servidor no diretório %s';
+$strSavePosition = 'Salvar posição';
+$strSave = 'Salvar';
+$strScaleFactorSmall = 'A escala é muito pequena para ajustar o esquema em uma página';
+$strSearchFormTitle = 'Procurar no Banco de Dados';
+$strSearchInTables = 'Dentro da(s) tabela(s):';
+$strSearchNeedle = 'Palavra(s) ou valor(es) para procurar (coringa: "%"):';
+$strSearchOption1 = 'pelo menos uma das palavras';
+$strSearchOption2 = 'todas as palavras';
+$strSearchOption3 = 'a frase exata';
+$strSearchOption4 = 'como expressão regular';
+$strSearch = 'Procurar';
+$strSearchResultsFor = 'Procurar resultados por "<i>%s</i>" %s:';
+$strSearchType = 'Encontrar:';
+$strSecretRequired = 'O arquivo de configuração agora precisa de uma frase secreta com senha (blowfish_secret).';
+$strSelectADb = 'Selecionar um Banco de Dados';
+$strSelectAll = 'Selecionar Todos';
+$strSelectBinaryLog = 'Selecionar log binário para exibir';
+$strSelectFields = 'Selecionar os campos (no mínimo 1)';
+$strSelectForeignKey = 'Selecionar Chave Estrangeira';
+$strSelectNumRows = 'na consulta';
+$strSelectReferencedKey = 'Seleciona chave referenciada';
+$strSelectTables = 'Tabelas selecionadas';
+$strSend = 'Enviado';
+$strSent = 'Enviar';
+$strServerChoice = 'Seleção do Servidor';
+$strServerNotResponding = 'O servidor não está respondendo';
+$strServer = 'Servidor';
+$strServers = 'Servidores';
+$strServerStatusDelayedInserts = 'Inserções demoradas';
+$strServerStatus = 'Informações de Runtime';
+$strServerStatusUptime = 'Esse servidor MySQL está rodando por %s. Ele foi iniciado em %s.';
+$strServerTabVariables = 'Variáveis';
+$strServerTrafficNotes = '<b>Tráfico do servidor</b>: Essas tabelas mostram as estatísticas do tráfico da rede neste servidor MySQL desde o início.';
+$strServerVars = 'Variáveis e configurações do servidor';
+$strServerVersion = 'Versão do Servidor';
+$strSessionStartupErrorGeneral = 'Não pôde iniciar a sessão sem erros, cheque os erros ocorridos nos logs do PHP e/ou do seu servidor web e configure a instalação do PHP corretamente.';
+$strSessionValue = 'Valor da sessão';
+$strSetEnumVal = 'Se um tipo de campo é "enum" ou "set", por favor entre valores usando este formato: \'a\',\'b\',\'c\'...<br />Se você for colocar uma barra contrária ("\") ou aspas simples ("\'") entre os valores, coloque uma barra contrária antes (por exemplo \'\\\\xyz\' ou \'a\\\'b\').';
+$strShowAll = 'Mostrar todos';
+$strShowColor = 'Mostrar cor';
+$strShowDatadictAs = 'Formato do dicionário de dados';
+$strShowFullQueries = 'Mostrar consultas completas';
+$strShowGrid = 'Mostrar grade';
+$strShowHideLeftMenu = 'Exibir/Ocultar menu da esquerda';
+$strShowingBookmark = 'Exibindo marcadores';
+$strShowingPhp = 'Exibindo como código PHP';
+$strShowingRecords = 'Mostrando registros ';
+$strShowingSQL = 'Exibindo consulta SQL';
+$strShow = 'Mostrar';
+$strShowOpenTables = 'Exibir tabelas abertas';
+$strShowPHPInfo = 'Mostrar informações do PHP';
+$strShowSlaveHosts = 'Exibir servidores escravos';
+$strShowSlaveStatus = 'Exibir status dos escravos';
+$strShowStatusBinlog_cache_disk_useDescr = 'O número de transações que usaram o cache do log binário temporário mas que excederam o valor do binlog_cache_size e usaram o arquivo temporário para armazenar enunciados da transação.';
+$strShowStatusBinlog_cache_useDescr = 'O número de transações que usaram o cache do log binário temporário.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'O número de tabelas temporárias no disco criadas automaticamente pelo servidor enquanto executava os enunciados. Se Created_tmp_disk_tables é grande, você pode aumentar o valor de tmp_table_size para fazer as tabelas temporárias serem baseadas na memória ou invés de baseadas no disco';
+$strShowStatusCreated_tmp_filesDescr = 'Quantos arquivos temporários o MySQL tinha criado.';
+$strShowStatusCreated_tmp_tablesDescr = 'O número de tabelas temporárias na memória criadas automaticamente pelo servidor enquanto executava os enunciados.';
+$strShowStatusDelayed_errorsDescr = 'O número de linhas escritas com INSERT DELAYED para cada erro ocorrido (provavelmente chave duplicada).';
+$strShowStatusDelayed_insert_threadsDescr = 'O número de processos manipuladores de INSERT DELAYED em uso. Cada tabela diferente em que se usa INSERT DELAYED começa seu próprio processo.';
+$strShowStatusDelayed_writesDescr = 'O número de linhas INSERT DELAYED escritas.';
+$strShowStatusFlush_commandsDescr = 'O número de enunciados FLUSH executados.';
+$strShowStatusHandler_commitDescr = 'O número de enunciados COMMIT internos.';
+$strShowStatusHandler_deleteDescr = 'O número de vezes que uma linha foi deletada de uma tabela.';
+$strShowStatusHandler_discoverDescr = 'O servidor MySQL pode perguntar ao motor de armazenamento do NDB Cluster se ele sabe sobre uma tabela com um nome dado. Isto é chamado descoberta. Handler_discover indica o número de vezes que tabelas foram descobertas.';
+$strShowStatusHandler_read_firstDescr = 'O número de vezes que a primeira entrada foi lida de um índice. Se isto for alto, sugere que o usuário está fazendo muitas varreduras completas do índice; por exemplo, SELECT col1 FROM foo, supondo que col1 é um índice.';
+$strShowStatusHandler_read_keyDescr = 'O número de requisições para ler uma linha baseada em uma chave. Se isto for alto, é uma boa indicação de que suas consultas e tabelas estejam corretamente indexadas.';
+$strShowStatusHandler_read_nextDescr = 'O número de requisições para ler a linha seguinte na ordem da chave. Isto é incrementado se você estiver consultando uma coluna do índice com uma restrição da escala ou se você estiver fazendo uma varredura do índice.';
+$strShowStatusHandler_read_prevDescr = 'O número de requisições para ler a linha precedente na ordem da chave. Este método de leitura é usado principalmente para otimizar ORDER BY… DESC.';
+$strShowStatusHandler_read_rndDescr = 'O número de requisições pra ler uma linha baseada em uma posição fixa. Isto é alto se você estiver fazendo muitas consultas que requerem a ordenação do resultado. Você tem provavelmente muitas consultas que requerem que o MySQL faça a varredura de tabelas inteiras ou você tem junções que não usam as chaves corretamente.';
+$strShowStatusHandler_read_rnd_nextDescr = 'O número de requisições para ler a linha seguinte no arquivo de dados. Isto é alto se você estiver fazendo muitas varreduras da tabela. Geralmente isto sugere que suas tabelas não estão corretamente indexadas ou que suas consultas não estão escritas para tomar vantagem dos índices que você têm.';
+$strShowStatusHandler_rollbackDescr = 'O número de enunciados ROLLBACK internos.';
+$strShowStatusHandler_updateDescr = 'O número de requisições para atualizar uma linha na tabela.';
+$strShowStatusHandler_writeDescr = 'O número de requisições para inserir uma linha na tabela.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'O número de páginas que contém dados (sujos ou limpos).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'O número de páginas atualmente sujas.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'O número de páginas do buffer pool que foram requisitadas para serem niveladas.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'O número de páginas livres.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'O número de páginas trancadas no buffer pool do InnoDB. Estas são páginas que estão sendo lidas ou escritas atualmente ou aquela não pode ser nivelada ou removido por alguma outra razão.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'O número de páginas ocupadas porque foram alocados para rotinas administrativas tais como trancamento de linhas ou índice hash adaptável. Este valor pode também ser calculado como Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Tamanho total do buffer pool, em páginas.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'O número de ler-adiante "aleatórios" InnoDB iniciado. Isto acontece quando uma consulta faz a varredura de uma parcela grande de uma tabela mas na ordem aleatória.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'O número de ler-adiante sequenciais InnoDB iniciado. Isto acontece quando o InnoDB faz uma varredura sequencial completa da tabela.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'O número de requisições de leitura lógica InnoDB que foram feitas.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'O número de leituras lógicas que o InnoDB não pode satisfer do buffer pool e teria que fazer uma leitura de página simples';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalmente, escreve para o buffer pool do InnoDB rodando em segundo plano. Entretanto, se for necessário ler ou criar uma página e nenhuma página limpa estiver disponível, é necessário esperar as páginas serem niveladas primeiramente. Este contador conta instâncias dessas esperas. Se o tamanho do buffer pool for ajustado corretamente, este valor deve ser pequeno.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'O número de escritas feitas para o buffer pool do InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'O número de operações fsync() à fazer.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'O número atual de operações fsync() pendentes.';
+$strShowStatusInnodb_data_pending_readsDescr = 'O número atual de leituras pendentes.';
+$strShowStatusInnodb_data_pending_writesDescr = 'O número atual de escritas pendentes.';
+$strShowStatusInnodb_data_readDescr = 'O montante de leitura de dados à fazer, em bytes.';
+$strShowStatusInnodb_data_readsDescr = 'O número total de dados lidos.';
+$strShowStatusInnodb_data_writesDescr = 'O número total de dados escritos.';
+$strShowStatusInnodb_data_writtenDescr = 'O montante de escrita de dados à fazer, em bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'O número de escritas doublewrite que foram executadas e o número de páginas que foram escritas para esta finalidade.';
+$strShowStatusInnodb_dblwr_writesDescr = 'O número de escritas doublewrite que foram executadas e o número de páginas que foram escritas para esta finalidade.';
+$strShowStatusInnodb_log_waitsDescr = 'O número de esperas geradas porque o buffer do log era muito pequeno e teve que esperar que fosse nivelada antes de continuar.';
+$strShowStatusInnodb_log_write_requestsDescr = 'O número de requisições de escrita de log.';
+$strShowStatusInnodb_log_writesDescr = 'O número de escritas físicas para o arquivo de log.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'O número de escritas fsyncs feitas no arquivo de log.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'O número de arquivos de log fsyncs pendentes.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Escrita de arquivos de log pendentes.';
+$strShowStatusInnodb_os_log_writtenDescr = 'O número de bytes escritos para o arquivo de log.';
+$strShowStatusInnodb_pages_createdDescr = 'O número de páginas criadas.';
+$strShowStatusInnodb_page_sizeDescr = 'O tamanho de página compilada do InnoDB (padrão 16KB). Muitos valores são contados em páginas; o tamanho de página permite que sejam facilmente convertidos em bytes.';
+$strShowStatusInnodb_pages_readDescr = 'O número de páginas lidas.';
+$strShowStatusInnodb_pages_writtenDescr = 'O número de páginas escritas.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'O número de linhas trancadas que estão esperando atualmente.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'O tempo médio para recuperar uma linha trancada, em milísegundo.';
+$strShowStatusInnodb_row_lock_timeDescr = 'O tempo total gasto para recuperar linhas trancadas, em milísegundo.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'O máximo de tempo para recuperar uma linha trancada, em milísegundo.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'O número de vezes que uma linhas trancada teve que esperar para ser escrita.';
+$strShowStatusInnodb_rows_deletedDescr = 'O número de linhas deletadas de tabelas InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'O número de linhas inseridas em tabelas InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'O número de linhas lidas de tabelas InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'O número de linhas atualizadas em tabelas InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'O número de blocos chave no cache chave que mudaram mas não foram nivelados ainda ao disco. Antes era chamado de Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'O número de blocos não usados no cache chave. Você pode usar este valor para determinar quanto do cache chave está no uso.';
+$strShowStatusKey_blocks_usedDescr = 'O número de blocos usados no cache chave. Este valor é uma marca d\'água que indica o número máximo de blocos que estiveram sempre em uso em algum momento.';
+$strShowStatusKey_read_requestsDescr = 'O número de requisições para ler um bloco chave do cache.';
+$strShowStatusKey_readsDescr = 'O número de leituras físicas de um bloco chave do disco. Se Key_reads for alto, então seu valor do key_buffer_size é provavelmente muito baixo. A taxa de falta de cache pode ser calculada como Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'O número de requisições para escrever um bloco chave para o cache.';
+$strShowStatusKey_writesDescr = 'O número de escritas físicas para um bloco chave para o disco.';
+$strShowStatusLast_query_costDescr = 'O custo total da última consulta compilada como computado pelo otimizador de consultas. Útil para comparar o custo de diferentes planos de consulta para a mesma consulta. O valor padrão 0 significa que nenhuma consulta foi compilada ainda.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'O número de linhas esperando para serem escritas na fila de INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'O número de tabelas que devem estar abertas. Se aberta, as tabelas são grandes, o valor do cache de suas tabelas é provavelmente muito pequeno.';
+$strShowStatusOpen_filesDescr = 'O número de arquivos que estão abertos.';
+$strShowStatusOpen_streamsDescr = 'O número de streams que estão abertos (usados principalmente para log).';
+$strShowStatusOpen_tablesDescr = 'O número de tabelas que estão abertas.';
+$strShowStatusQcache_free_blocksDescr = 'O número de blocos de memória livre na consulta do cache.';
+$strShowStatusQcache_free_memoryDescr = 'O montante de memória livre para a consulta do cache.';
+$strShowStatusQcache_hitsDescr = 'O número de hits do cache.';
+$strShowStatusQcache_insertsDescr = 'O número de consultas adicionadas no cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'O número de consultas que foram removidas do cache para liberar memória para novas consultas. Essa informação pode ajudar você a ajustar o tamanho da consulta do cache. A consulta do cache usa a estratégia do "usado menos recentemente" (LRU - least recently used) para decidir qual consulta remover do cache.';
+$strShowStatusQcache_not_cachedDescr = 'O número de consultas sem cache (não cacheável, ou não pode ser cacheável devido à configuração em query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'O número de consultas registradas no cache.';
+$strShowStatusQcache_total_blocksDescr = 'O número total de blocos na consulta do cache.';
+$strShowStatusReset = 'Resetar';
+$strShowStatusRpl_statusDescr = 'O status da replicação à prova de falhas (não implementado).';
+$strShowStatusSelect_full_joinDescr = 'O número de junções que não usaram índices. Se este valor não for 0, você deve cuidadosamente verificar os índices de suas tabelas.';
+$strShowStatusSelect_full_range_joinDescr = 'O número de junções que usaram uma pesquisa de escala na tabela de referência.'; //está correto isso?
+$strShowStatusSelect_range_checkDescr = 'O número de junções sem chaves que verificam para ver se há o uso da chave após cada linha. (Se este não for 0, você deve cuidadosamente verificar os índices de suas tabelas.)';
+$strShowStatusSelect_rangeDescr = 'O número de junções que usaram escalas na primeira tabela. (Não é normalmente crítico mesmo se este for grande.)';
+$strShowStatusSelect_scanDescr = 'O número junções que fez uma varredura completa da primeira tabela.';
+$strShowStatusSlave_open_temp_tablesDescr = 'O número de tabelas temporárias abertas atualmente pelo processo SQL escravo.';
+$strShowStatusSlave_retried_transactionsDescr = 'Número total (desde o início) de vezes que o processo SQL escravo de replicação teve que tentar transações.';
+$strShowStatusSlave_runningDescr = 'Isto é ON se este servidor é um escravo conectado à um mestre.';
+$strShowStatusSlow_launch_threadsDescr = 'O número de processos que levaram mais que slow_launch_time segundos para serem criadas.';
+$strShowStatusSlow_queriesDescr = 'O número de consultas que levaram mais que long_query_time segundos.';
+$strShowStatusSort_merge_passesDescr = 'O número de fusões que o algoritmo de ordenação teve que fazer. Se este valor for alto, você deve considerar aumentar o valor da variável sort_buffer_size do sistema.';
+$strShowStatusSort_rangeDescr = 'O número de ordenações que foram feitas com escalas.'; //está correto isso? ranges = escalas??
+$strShowStatusSort_rowsDescr = 'O número de linhas ordenadas.';
+$strShowStatusSort_scanDescr = 'O número de ordenações que foram feitas scaneando a tabela.';
+$strShowStatusTable_locks_immediateDescr = 'O número de vezes que uma tabela trancada foi recuperada imediatamente.';
+$strShowStatusTable_locks_waitedDescr = 'O número de vezes que uma tabela trancada não foi recuperada imediatamente e uma espera foi necessária. Se isso foi alto e você tem problemas de performance, você precisa primeiramente otimizar suas consultas e então, ou dividir sua tabela ou usar replicação.';
+$strShowStatusThreads_cachedDescr = 'O número de processos no cache de processos. A taxa de hits do cache pode ser calculada como Threads_created/conexões. Se este valor for vermelho você deve aumentar seu thread_cache_size';
+$strShowStatusThreads_connectedDescr = 'O número de conexões atualmente abertas.';
+$strShowStatusThreads_createdDescr = 'O número de processos criadas para manipular conexões. Se Threads_created é grande, você deveria aumentar o valor de thread_cache_size. (Normalmente isso não da um aumento notável de performance se você tem uma boa implementação de processos.)';
+$strShowStatusThreads_runningDescr = 'O número de processos que não estão dormindo.';
+$strShowTableDimension = 'Mostrar dimensão das tabelas';
+$strShowTables = 'Mostrar tabelas';
+$strShowThisQuery = ' Mostrar esta consulta SQL novamente ';
+$strSimplifiedChinese = 'Chinês Simplificado';
+$strSingly = '(singularmente)';
+$strSize = 'Tamanho';
+$strSkipQueries = 'Número de registros (consultas) ignoradas no início';
+$strSlovak = 'Eslováquio';
+$strSlovenian = 'Eslovênio';
+$strSmallBigAll = 'Tudo Pequeno/Grande';
+$strSnapToGrid = 'Ajustar à grade';
+$strSocketProblem = '(ou o soquete do servidor MySQL local não está configurado corretamente)';
+$strSortByKey = 'Ordenar pela chave';
+$strSorting = 'Ordenando';
+$strSort = 'Ordenar';
+$strSpaceUsage = 'Uso do espaço';
+$strSpanish = 'Espanhol';
+$strSplitWordsWithSpace = 'Palavras são separadas por um caracter de espaço (" ").';
+$strSQLCompatibility = 'Modo de compatibilidade SQL';
+$strSQLExportType = 'Tipo de exportação';
+$strSQLParserBugMessage = 'Talvez tenha encontrado um bug no analizador (parser) do SQL. Analise a sua Consulta SQL com atenção, e verifique se as aspas estão corretas e não estão desencontradas. Outra possibilidade de falha é o fato de estar tentando subir um arquivo com saída binária de uma área de texto citada. Pode também experimentar a sua consulta SQL no prompt de comandos do MySQL. A saída de erro do MySQL, isto se existir alguma, também poderá ajudar a diagnosticar o problema. Se continuar a ter problemas ou se o analisador (parser) falhar onde a interface da linha de comandos tiver sucesso, reduza por favor a entrada da consulta SQL até aquele que causou o problema, e envie o relatório de bug com os dados do chunk da seção CORTE abaixo:';
+$strSQLParserUserError = 'Parece haver um erro na sua consulta SQL. A saída do servidor MySQL abaixo, isto se existir alguma, também poderá ajudar a diagnosticar o problema.';
+$strSQLQuery = 'consulta SQL';
+$strSQLResult = 'Resultado SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identificador inválido';
+$strSQPBugUnclosedQuote = 'Aspas não fechada';
+$strSQPBugUnknownPunctuation = 'String de pontuação desconhecida';
+$strStandInStructureForView = 'Estrutura stand-in para visualizar';
+$strStatCheckTime = 'Última verificação';
+$strStatCreateTime = 'Criação';
+$strStatement = 'Comandos';
+$strStatisticsOverrun = 'Em servidores ocupados, os contadores de byte podem sobrecarregar, então as estatísticas como relatadas pelo servidor MySQL podem estar incorretas.';
+$strStatUpdateTime = 'Última atualização';
+$strStatus = 'Status';
+$strStorageEngines = 'Storage Engines'; // sem traducao
+$strStorageEngine = 'Storage Engine'; // sem traducao
+$strStrucCSV = 'Dados CSV';
+$strStrucData = 'Estrutura e dados';
+$strStrucExcelCSV = 'CSV para dados MS Excel';
+$strStrucNativeExcel = 'Dados nativos do MS Excel';
+$strStrucOnly = 'Somente estrutura';
+$strStructPropose = 'Propor estrutura da tabela';
+$strStructure = 'Estrutura';
+$strStructureForView = 'Estrutura para visualizar';
+$strSubmit = 'Submeter';
+$strSuccess = 'Seu comando SQL foi executado com sucesso';
+$strSum = 'Soma';
+$strSwedish = 'Suéco';
+$strSwitchToDatabase = 'Mudar para o Banco de Dados copiado';
+$strSwitchToTable = 'Mudar para a tabela copiada';
+
+$strTableAlreadyExists = 'Tabela %s já existe!';
+$strTableComments = 'Comentários da tabela';
+$strTableEmpty = 'O Nome da Tabela está vazio!';
+$strTableHasBeenDropped = 'Tabela %s foi eliminada';
+$strTableHasBeenEmptied = 'Tabela %s foi esvaziada';
+$strTableHasBeenFlushed = 'Tabela %s foi limpa';
+$strTableIsEmpty = 'Tabela para estar vazia!';
+$strTableMaintenance = 'Tabela de Manutenção';
+$strTableName = 'Nome da Tabela';
+$strTableOfContents = 'Tabela de conteúdos';
+$strTableOptions = 'Opções da tabela';
+$strTables = '%s tabela(s)';
+$strTableStructure = 'Estrutura da tabela';
+$strTable = 'Tabela';
+$strTakeIt = 'tome';
+$strTblPrivileges = 'Privilégios específicos da tabela';
+$strTempData = 'Dados temporários';
+$strTextAreaLength = ' Por causa da sua largura,<br /> esse campo pode não ser editável ';
+$strThai = 'Thailandês';
+$strThemeDefaultNotFound = 'Tema padrão %s não encontrado!';
+$strThemeNoPreviewAvailable = 'Nenhuma pré-visualização disponível.';
+$strThemeNotFound = 'Tema %s não encontrado!';
+$strThemeNoValidImgPath = 'Encontrado caminho inválido para imagens para o tema %s!';
+$strThemePathNotFound = 'Encontrado caminho inválido para o tema %s!';
+$strTheme = 'Tema / Estilo';
+$strThisHost = 'Esse Servidor';
+$strThreads = 'Processos';
+$strThreadSuccessfullyKilled = 'Processo %s foi morto com sucesso.';
+$strTimeoutInfo = 'Importação anterior passou do tempo limite, depois de reenviar, irá continuar na posição %d.';
+$strTimeoutNothingParsed = 'Entretanto na última vez nenhum dado foi passado, isso normalmente significa que o phpMyAdmin não é capaz de finalizar essa importação à menos que você aumente o tempo limite do PHP.';
+$strTimeoutPassed = 'Script passou do tempo limite, se você deseja terminar a importação, reenvie o mesmo arquivo que a importação será resumida.';
+$strTime = 'Tempo';
+$strToFromPage = 'página de/para';
+$strToggleScratchboard = 'mudar o estado do Scratchboard'; //isso está correto? mas nao descobri o q eh
+$strToggleSmallBig = 'Mudar para pequeno/grande';
+$strToSelectRelation = 'Para selecionar relacionamento, clique :';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'Chinês Tradicional';
+$strTraditionalSpanish = 'Espanhol Traditional';
+$strTraffic = 'Tráfego';
+$strTransactionCoordinator = 'Coordenador da transação';
+$strTransformation_application_octetstream__download = 'Mostrar o link para baixar os dados binários do campo. Primeira opção é o nome do arquivo binário. Segunda opção é um possível nome de campo de uma linha da tabela que contém o nome do arquivo. Se você usar a segunda opção precisa colocar na primeira opção uma string em branco';
+$strTransformation_application_octetstream__hex = 'Exibir representação hexadecimal dos dados. Primeiro parâmetro opcional especifica como frequentemente espaços serão adicionados (padrão para 2 mordidelas).'; //ta certo isso? nibbles, traduzi como mordidelas
+$strTransformation_image_jpeg__inline = 'Mostrar uma miniatura clicável; opções: largura,altura em pixels (mantém a proporção original)';
+$strTransformation_image_jpeg__link = 'Mostrar o link para esta imagem (ex.: blob download direto).';
+$strTransformation_image_png__inline = 'Ver imagem/jpeg: em linha';
+$strTransformation_text_plain__dateformat = 'Exibir um TIME, TIMESTAMP, DATETIME ou campo numérico unix timestamp formatado como data. A primeira opção é o offset (em horas) que será adicionado ao timestamp (Padrão: 0). Use a segunda opção para especificar uma string de formatação data/tempo diferente. A terceira opção determina se você deseja ver data local ou UTC (use a string "local" ou "utc") para isso. De acordo com isso, o formatdo da data terá valores diferentes - para "local" veja a documentação do PHP para função strftime() e para "utc" isso é feito usando a função gmdate().';
+$strTransformation_text_plain__external = 'LINUX APENAS: Rode uma aplicação externa e alimente os campos de dados pela entrada padrão. Retorna a saída padrão da aplicação. Padrão é Limpo, para uma bonita impressão do código HTML. Por razões de segurança, você deve editar manualmente o arquivo libraries/transformations/text_plain__external.inc.php e inserir as ferramentas que você permite rodar. A primeira opção é o número do programa que você quer rodar e a segunda opção são os parâmetros para o programa. A terceira opção, se setada para 1 irá converter a saída usando htmlspecialchars() (Padrão é 1). A quarta opção, se setada como 1 irá por um NOWRAP para o conteúdo da célula, de forma que a saída inteira será mostrada sem reformatação(Padrão é 1)';
+$strTransformation_text_plain__formatted = 'Preservar a formatação original campo. Sem escape.';
+$strTransformation_text_plain__imagelink = 'Mostrar uma imagem e um link, o campo contém um nome de arquivo; primeira opção é um prefixo tipo "http://domain.com/", segunda opção é a largura em pixels, o terceiro é a altura.';
+$strTransformation_text_plain__link = 'Mostrar um link, o campo contém o nome do arquivo, primeira opção é um prefixo tipo "http://domain.com/", segunda opção é um título para o link.';
+$strTransformation_text_plain__sql = 'Formatar texto como consulta SQL com síntaxe colorida.';
+$strTransformation_text_plain__substr = 'Mostrar apenas parte da string. Primeira opção é um offset para definir onde a saída do seu texto deve iniciar (Padrão: 0). Segunda opção é o quanto do texto deverá ser retornado. Se estiver em branco, retorna todo o restante do texto. Terceira opção define quais caracteres serão acrescentados na substring retornada (Padrão: ...).';
+$strTriggers = 'Gatilhos';
+$strTruncateQueries = 'Truncar as consultas SQL exibidas';
+$strTurkish = 'Turco';
+$strType = 'Tipo';
+
+$strUkrainian = 'Ucraniano';
+$strUncheckAll = 'Desmarcar todos';
+$strUnicode = 'Unicode';
+$strUnique = 'Único';
+$strUnknown = 'desconhecido';
+$strUnselectAll = 'Desmarcar Todos';
+$strUnsupportedCompressionDetected = 'Você tentou carregar um arquivo com compressão não suportada (%s). Pode o suporte para isso não ter sido implementado ou pode ter sido desabilitado por sua configuração PHP.';
+$strUpdatePrivMessage = 'Você mudou os priviléios para %s.';
+$strUpdateProfileMessage = 'A configuração foi atualizada.';
+$strUpdateQuery = 'Atualizar a consulta SQL';
+$strUpdComTab = 'Consulte a documentação sobre como atualizar sua tabela Column_comments';
+$strUpgrade = 'Você deveria atualizar para %s %s ou posterior.';
+$strUploadErrorCantWrite = 'Falhou ao salvar arquivo no disco.';
+$strUploadErrorExtension = 'Carregamento do arquivo parado pela extenção.';
+$strUploadErrorFormSize = 'O arquivo carregado excede o tamanho definido na diretriz MAX_FILE_SIZE do formulário HTM.';
+$strUploadErrorIniSize = 'O arquivo carregado excede o tamanho definido na diretriz upload_max_filesize no php.ini.';
+$strUploadErrorNoTempDir = 'Pasta temporária não encontrada.';
+$strUploadErrorPartial = 'Carregamento do arquivo foi apenas parcial.';
+$strUploadErrorUnknown = 'Erro desconhecido no carregamento do arquivo.';
+$strUploadLimit = 'Você provavelmente tentou carregar um arquivo muito grande. Veja referências na %sdocumentation%s para burlar esses limites.';
+$strUploadsNotAllowed = 'Não é permitido subir arquivos neste servidor.';
+$strUsage = 'Uso';
+$strUseBackquotes = 'Usar aspas simples nos nomes de tabelas e campos';
+$strUseHostTable = 'Usar Tabela do Servidor';
+$strUserAlreadyExists = 'O usuário %s já existe!';
+$strUserEmpty = 'O nome do usuário está em branco!';
+$strUserName = 'Nome do usuário';
+$strUserNotFound = 'O usuário selecionado não foi encontrado na tabela de privilégios.';
+$strUserOverview = 'Avaliação dos usuários';
+$strUsersDeleted = 'Os usuários selecionados foram apagados com sucesso.';
+$strUsersHavingAccessToDb = 'Usuários que têm acesso à &quot;%s&quot;';
+$strUser = 'Usuário';
+$strUseTabKey = 'Usar a teclar TAB para se mover de valor em valor, ou CTRL+setas para mover em qualquer direção';
+$strUseTables = 'Usar tabelas';
+$strUseTextField = 'Usar campo texto';
+$strUseThisValue = 'Usar este valor';
+
+$strValidateSQL = 'Validar SQL';
+$strValidatorError = 'O Validador SQL não pode ser inicializado. Verifique se você instalou a extenção necessária do php conforme está escrito em %sdocumentation%s.';
+$strValue = 'Valor';
+$strVar = 'Variáveis';
+$strVersionInformation = 'Informações da versão';
+$strViewDumpDatabases = 'Ver dump (esquema) dos Bancos de Dados';
+$strViewDumpDB = 'Ver o esquema do Banco de Dados';
+$strViewDump = 'Ver o esquema da tabela';
+$strViewHasBeenDropped = 'Visão %s foi apagada';
+$strViewName = 'Nome da VISÃO';
+$strView = 'Visão';
+
+$strWebServerUploadDirectoryError = 'O diretório que você especificou para subir arquivos não foi encontrado.';
+$strWebServerUploadDirectory = 'Servidor web subiu o diretório';
+$strWelcome = 'Bem vindo ao %s';
+$strWestEuropean = 'Oeste Europeu';
+$strWildcard = 'coringa';
+$strWindowNotFound = 'A janela alvo do navegador não pode ser atualizada. Talvez você tenha fechado a janela alvo ou o seu navegador tenha bloqueado a comunicação entre janelas nas configurações de segurança.';
+$strWithChecked = 'Com marcados:';
+$strWriteRequests = 'Escrita requisitada';
+$strWrongUser = 'Usuário ou senha incorreta. Acesso negado.';
+
+$strXML = 'XML';
+
+$strYes = 'Sim';
+
+$strZeroRemovesTheLimit = 'Nota: Ajustar essa opção para 0 (zero) remove os limites.';
+$strZip = '"compactado com zip"';
+
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/bulgarian-utf-8.inc.php b/lang/bulgarian-utf-8.inc.php
new file mode 100644
index 0000000000..da1f590db6
--- /dev/null
+++ b/lang/bulgarian-utf-8.inc.php
@@ -0,0 +1,1468 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by Stanislav Yordanov <stanprog at stanprog.com>
+ * Based on translation made by Georgi Georgiev <chutz at chubaka.homeip.net>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('байта', 'КБ', 'МБ', 'ГБ', 'ТБ', 'ПБ', 'ЕБ');
+
+$day_of_week = array('нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб');
+$month = array('януари', 'февруари', 'март', 'април', 'май', 'юни', 'юли', 'август', 'септември', 'октомври', 'ноември', 'декември');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%e %B %Y в %H:%M';
+
+$timespanfmt = '%s дена, %s часа, %s минути и %s секунди';
+
+$strAbortedClients = 'Прекъснати';
+$strAccessDeniedExplanation = 'phpMyAdmin направи опит да се свърже към MySQL сървъра, но сървъра отхвърли конекцията. Трябва да проверите хоста, потребителското име и паролата в config.inc.php файла и да се уверите, че те отговарят на информацията предоставена от администратора на MySQL сървъра.';
+$strAccessDenied = 'Отказан достъп';
+$strAction = 'Действие';
+$strAddAutoIncrement = 'Добавяне на AUTO_INCREMENT';
+$strAddClause = 'Добавяне на %s';
+$strAddConstraints = 'Добавяне на ограничение';
+$strAddDeleteColumn = 'Добави/изтрий колона по критерий';
+$strAddDeleteRow = 'Добави/изтрий ред по критерий';
+$strAddFields = 'Добавяне на %s поле(та)';
+$strAddHeaderComment = 'Добавяне на коментар в хедъра (\\n нов ред)';
+$strAddIntoComments = 'Добавяне в коментарите';
+$strAddNewField = 'Добавяне на ново поле';
+$strAddPrivilegesOnDb = 'Добавяне на привилегии към следната база от данни';
+$strAddPrivilegesOnTbl = 'Добавяне на привилегии към следната таблица';
+$strAddSearchConditions = 'Добавяне на условие за търсене (съдържание на "where" клаузата):';
+$strAddToIndex = ' &nbsp;%s&nbsp;колона(и) беше(яха)добавени към индекса ';
+$strAddUserMessage = 'Вие добавихте нов потребител.';
+$strAddUser = 'Добавяне на нов потребител.';
+$strAdministration = 'Администрация';
+$strAfterInsertBack = 'връщане обратно';
+$strAfterInsertNewInsert = 'вмъкване на нов запис';
+$strAfterInsertNext = 'редактиране на следващия ред';
+$strAfterInsertSame = 'връщане към тази страница';
+$strAfter = 'след %s';
+$strAll = 'всички';
+$strAllTableSameWidth = 'показване на всички Таблици с една и съща ширина?';
+$strAlterOrderBy = 'Подреждане на таблицата по';
+$strAnalyzeTable = 'Анализиране на таблицата';
+$strAndThen = 'и след това';
+$strAnd = 'и';
+$strAnIndex = 'Беше добавен индекс на %s';
+$strAny = 'всеки';
+$strAnyHost = 'Всеки хост';
+$strAnyUser = 'Всеки потребител';
+$strApproximateCount = 'Може да има приблизителна стойност. Виж FAQ 3.11';
+$strAPrimaryKey = 'Беше добавен първичен ключ към ';
+$strArabic = 'Арабски';
+$strArmenian = 'Арменски';
+$strAscending = 'Възходящо';
+$strAtBeginningOfTable = 'в началото на таблицата';
+$strAtEndOfTable = 'в края на таблицата';
+$strAttr = 'Атрибути';
+$strAutomaticLayout = 'Автоматичен лейаут';
+
+$strBack = 'Назад';
+$strBaltic = 'Балтийски';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = ' Двоично ';
+$strBinaryDoNotEdit = ' Двоично - не се редактира ';
+$strBinLogEventType = 'Тип на събитието';
+$strBinLogInfo = 'Информация';
+$strBookmarkAllUsers = 'Нека всеки потребител има достъп до този показалец';
+$strBookmarkCreated = 'Показалец %s беше създаден успешно';
+$strBookmarkDeleted = 'Показалецът беше изтрит.';
+$strBookmarkLabel = 'Етикет';
+$strBookmarkQuery = 'Запазване на SQL заявка';
+$strBookmarkReplace = 'Препокриване не съществуващия показалец със същото име';
+$strBookmarkThis = 'Запази тази SQL заявка';
+$strBookmarkView = 'Само показване';
+$strBrowseForeignValues = 'Преглеждане на външните(foreign) стойности';
+$strBrowse = 'Прелистване';
+$strBulgarian = 'Български';
+$strBzip = '"bzip-нато"';
+
+$strCalendar = 'Календар';
+$strCanNotLoadExportPlugins = 'Приставките за експортиране не могат да бъдат заредени, моля проверете инсталацията!';
+$strCanNotLoadImportPlugins = 'Plugin-ите за импортиране не могат да бъдат заредени, моля проверете инсталацията на phpMyAdmin!';
+$strCannotLogin = 'Не мога да се логна към MySQL сървъра';
+$strCantLoad = 'не мога да заредя разширението %s,<br />моля проверете конфигурацията на PHP';
+$strCantLoadRecodeIconv = 'Не може да се заредят iconv или recode разширенията необходими за конвертиране на набора от знаци, конфигурирайте PHP така, че да позволява използване на тези разширения или отменете конвертирането на набора от знаци в phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Не мога да преименувам индекса на PRIMARY!';
+$strCantUseRecodeIconv = 'Не може да се използва нито iconv нито libiconv нито recode_string функцията докато протоколите за разширенията са заредени. Проверете конфигурацията на PHP.';
+$strCardinality = 'Кардиналност';
+$strCaseInsensitive = 'нечувствително към регистъра';
+$strCaseSensitive = 'чувствително към регистъра';
+$strCentralEuropean = 'Централно европейски';
+$strChangeCopyModeCopy = '... запазване на стария.';
+$strChangeCopyModeDeleteAndReload = ' ... изтриване на стария от таблицата на потребителите и след това презареждане на привилегиите.';
+$strChangeCopyModeJustDelete = ' ... изтриване на стария от таблицата на потребителите.';
+$strChangeCopyMode = 'Създаване нов потребител със същите привилегии и ...';
+$strChangeCopyModeRevoke = ' ... отменяне на всички активни привилегии от стария и след това изтриване.';
+$strChangeCopyUser = 'Промяна на логин информацията / Копиране на потребител';
+$strChangeDisplay = 'Изберете Полета за показване';
+$strChange = 'Променяне';
+$strChangePassword = 'Смяна на паролата';
+$strCharsetOfFile = 'Набор от знаци на файла:';
+$strCharsetsAndCollations = 'Набори от знаци и колации';
+$strCharsets = 'Набори от знации';
+$strCharset = 'Набор от знаци';
+$strCheckAll = 'Маркиране на всичко';
+$strCheckOverhead = 'Маркиране на таблиците със загубено място';
+$strCheckPrivsLong = 'Провери привилегиите за база от данни &quot;%s&quot;.';
+$strCheckPrivs = 'Проверка на привилегиите';
+$strCheckTable = 'Проверка на таблицата';
+$strChoosePage = 'Моля изберете страница за редактиране';
+$strColComFeat = 'Показване на коментари към Колоните';
+$strCollation = 'Колация';
+$strColumnNames = 'Име на колона';
+$strColumnPrivileges = 'Привилегии специфични за колоната';
+$strCommand = 'Команда';
+$strComments = 'Коментари';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 съвместимо';
+$strCompleteInserts = 'Пълни INSERT-и';
+$strCompressionWillBeDetected = 'Компресията на файла за импортиране ще бъде автоматично избрана от: %s';
+$strCompression = 'Компресия';
+$strConfigDefaultFileError = 'Конфигурацията по подразбиране не може да бъде заредена от: "%1$s"';
+$strConfigFileError = 'phpMyAdmin не може да прочете конфигурационният Ви файл!<br />Това може да се случи ако PHP открие синтактична грешка в него или не може да открие файла.<br />Моля извикайте конфигурационния файл директно като използвате линка по-долу и прочетете съобщението за грешка което PHP връща. В по-голяма част от случаите, някъде липсват кавички или точка и запетая.<br />Ако се изведе празна страница, всички е наред.';
+$strConfigureTableCoord = 'Моля конфигурирайте координатите за таблица %s';
+$strConnectionError = 'Връзката не може да бъде осъществена: невалидни настройки.';
+$strConnections = 'Конекции';
+$strConstraintsForDumped = 'Ограничения за дъмпнати таблици';
+$strConstraintsForTable = 'Ограничения за таблица';
+$strCookiesRequired = 'Оттук нататък са необходими "Cookies".';
+$strCopyDatabaseOK = 'База от данни %s беше копирана като %s';
+$strCopyTableOK = 'Таблица %s беше копирана в %s.';
+$strCopyTableSameNames = 'Не може да се копира таблицата към себе си!';
+$strCopyTable = 'Копиране на таблица (база от данни<b>.</b>таблица):';
+$strCopy = 'Копиране';
+$strCouldNotKill = 'phpMyAdmin не можа да спре нишка %s. Вероятно вече е била затворена.';
+$strCreateDatabaseBeforeCopying = 'Изпълняване на CREATE DATABASE преди копирането';
+$strCreateIndex = 'Създаване на индекс върху &nbsp;%s&nbsp;колони';
+$strCreateIndexTopic = 'Създай нов индекс';
+$strCreateNewDatabase = 'Създаване на нова БД';
+$strCreateNewTable = 'Създаване на нова таблица в БД %s';
+$strCreate = 'Създай';
+$strCreatePage = 'Създай нова Страница';
+$strCreatePdfFeat = 'Създаване на PDF-и';
+$strCreationDates = 'Създаване/Обновяване/Проверка на дати';
+$strCriteria = 'Критерий';
+$strCroatian = 'Хърватски';
+$strCyrillic = 'Кирилица';
+$strCzech = 'Чешки';
+$strCzechSlovak = 'Чехословашки';
+
+$strDanish = 'Датски';
+$strDatabase = 'БД';
+$strDatabaseEmpty = 'Името на базата от данни е празно!';
+$strDatabaseExportOptions = 'Опции за експортиране на база от данни';
+$strDatabaseHasBeenDropped = 'Базата данни %s беше изтрита.';
+$strDatabasesDropped = '%s бази от данни бяха изтрити успешно.';
+$strDatabasesStatsDisable = 'Забрани статистика';
+$strDatabasesStatsEnable = 'Разрешаване на статистика';
+$strDatabasesStatsHeavyTraffic = 'Забележка: Разрешаването на статистика на базата от данни може да коства много голям трафик между уеб сървъра и MySQL сървъра.';
+$strDatabasesStats = ' Статистика за базите данни';
+$strDatabases = 'Бази от данни';
+$strDataDict = 'Речник на данните';
+$strData = 'Данни';
+$strDataOnly = 'Само данните';
+$strDataPages = 'Страници съдържащи данни';
+$strDBComment = 'Коментар към базата от данни: ';
+$strDBCopy = 'Копиране на базата от данни в';
+$strDbPrivileges = 'Привилегии специфични за базата от данни';
+$strDBRename = 'Преименуване на базата от данни на';
+$strDbSpecific = 'специфични за базата от данни';
+$strDefaultEngine = '%s е хранилището на данни по подразбиране на този MySQL сървър.';
+$strDefaultValueHelp = 'За стойностите по подразбиране, моля въведете само една стойност, без обратни черти или апостроф, използвайки следния формат: a';
+$strDefault = 'По подразбиране';
+$strDefragment = 'Дефрагментиране на таблица';
+$strDelayedInserts = 'Използване на отложени вмъквания';
+$strDeleteAndFlushDescr = 'Това е най-чистия начин, но презареждането на привилегиите може да отнеме известно време.';
+$strDeleteAndFlush = 'Изтриване на потребителите и след това презареждане на привилегиите.';
+$strDeleted = 'Редът беше изтрит';
+$strDelete = 'Изтриване';
+$strDeleteNoUsersSelected = 'Не за избрани потребители за изтриване!';
+$strDeleting = 'Изтриване на %s';
+$strDelimiter = 'Разделител';
+$strDelOld = 'Текущата Страница има Референции към Таблици които вече не съществуват. Желаете ли да изтриете тези Референции?';
+$strDescending = 'Низходящо';
+$strDescription = 'Описание';
+$strDictionary = 'речник';
+$strDisabled = 'Забранено';
+$strDisableForeignChecks = 'Забраняване на проверките за външен ключ';
+$strDisplayFeat = 'Покажи възможностите';
+$strDisplayOrder = 'Подреждане по:';
+$strDisplayPDF = 'Покажи PDF схема';
+$strDoAQuery = 'Изпълняване на "заявка по шаблон" (знак за заместване: "%")';
+$strDocu = 'Документация';
+$strDoYouReally = 'Действително ли желаете да изпълните заявката';
+$strDropDatabaseStrongWarning = 'Вие ще УНИЩОЖИТЕ цялата база от данни!';
+$strDrop = 'Унищожаване';
+$strDropUsersDb = 'Изтриване на базите от данни които имат имена като тези на потребителите.';
+$strDumpingData = 'Дъмп (схема) на данните в таблицата';
+$strDumpSaved = 'Схемата(дъмп) беше записана във файл %s.';
+$strDumpXRows = 'Дъмп-ни %s реда като започнеш от %s.';
+$strDynamic = 'динамичен';
+
+$strEdit = 'Редактиране';
+$strEditPDFPages = 'Редактиране на PDF Страници';
+$strEditPrivileges = 'Редактиране на привилегиите';
+$strEffective = 'Ефективни';
+$strEmpty = 'Изчистване';
+$strEmptyResultSet = 'MySQL върна празен резултат (т.е. нула редове).';
+$strEnabled = 'Позволено';
+$strEncloseInTransaction = 'Изолиране на експорта в транзакция';
+$strEndCut = 'END CUT';
+$strEnd = 'Край';
+$strEndRaw = 'END RAW';
+$strEngineAvailable = '%s е разрешен на този MySQL сървър.';
+$strEngineDisabled = '%s е изключен за този MySQL сървър.';
+$strEngines = 'Хранилища';
+$strEngineUnsupported = 'Този MySQL сървър не поддържа хранилището на данни %s.';
+$strEnglish = 'Английски';
+$strEnglishPrivileges = ' Забележка: Имената на привилегиите на MySQL са показани на английски. ';
+$strErrorInZipFile = 'Грешка в ZIP архива:';
+$strError = 'Грешка';
+$strErrorRenamingTable = 'Грешка при преименуване на таблица %1$s в %2$s';
+$strEsperanto = 'Есперанто';
+$strEstonian = 'Естонски';
+$strExcelEdition = 'Версия на Excel';
+$strExecuteBookmarked = 'Стартиране на запазена SQL-заявка';
+$strExplain = 'Explain SQL';
+$strExport = 'Експортиране';
+$strExtendedInserts = 'Разширени INSERT-и';
+$strExtra = 'Допълнително';
+
+$strFailedAttempts = 'Провалили се опити';
+$strFieldHasBeenDropped = 'Полето %s беше изтрито';
+$strFieldsEnclosedBy = 'Полетата са оградени с';
+$strFieldsEscapedBy = 'Представка на специалните знаци';
+$strFieldsTerminatedBy = 'Полетата завършват с';
+$strFields = 'Полета';
+$strField = 'Поле';
+$strFileAlreadyExists = 'Файлът %s вече съществува на сървъра, сменете името на файла или включете опцията за препокриване.';
+$strFileCouldNotBeRead = 'Файлът не може да бъде прочетен';
+$strFileNameTemplateDescriptionDatabase = 'име на базата от данни';
+$strFileNameTemplateDescriptionServer = 'име на сървъра';
+$strFileNameTemplateDescriptionTable = 'име на таблицата';
+$strFileNameTemplateRemember = 'запомняне на шаблона';
+$strFileNameTemplate = 'Шаблон на файловото име';
+$strFileToImport = 'Файл за импортиране';
+$strFixed = 'Фиксиран';
+$strFlushPrivilegesNote = 'Забележка: phpMyAdmin взема потребителските привилегии директно от таблицата на привилегиите на MySQL. Съдържанието на тази таблица може да се различава от привилегиите които използва сървъра ако към него са направени промени на ръка. В този случай, трябва да %sпрезаредите привилегиите%s преди да продължите.';
+$strFlushTable = 'Изчистване на кеша на таблицата ("FLUSH")';
+$strFontSize = 'Размер на шрифта';
+$strFormat = 'Формат';
+$strFormEmpty = 'Липсва стойност във полето на формата!';
+$strFullText = 'Пълни текстове';
+$strFunction = 'Функция';
+$strFunctions = 'Функции';
+
+$strGenBy = 'Генерирано от';
+$strGeneralRelationFeat = 'Общи възможности на релациите';
+$strGenerate = 'Генериране';
+$strGeneratePassword = 'Генериране на парола';
+$strGenTime = 'Време на генериране';
+$strGeorgian = 'Грузински';
+$strGerman = 'Немски';
+$strGlobal = 'глобален';
+$strGlobalPrivileges = 'Глобални привилегии';
+$strGlobalValue = 'Глобална стойност';
+$strGo = 'Изпълнение';
+$strGrantOption = 'Дадени';
+$strGreek = 'Гръцки';
+$strGzip = '"gzip-нато"';
+
+$strHasBeenAltered = 'беше променена.';
+$strHaveToShow = 'Трябва да изберете поне една Колона за показване';
+$strHebrew = 'Иврит';
+$strHome = 'Начало';
+$strHomepageOfficial = 'Официалната уеб страница на phpMyAdmin ';
+$strHostEmpty = 'Името на хоста е празно!';
+$strHost = 'Хост';
+$strHungarian = 'Унгарски';
+
+$strIcelandic = 'Исландски';
+$strId = 'ID';
+$strIdxFulltext = 'Пълнотекстово';
+$strIgnore = 'Игнориране';
+$strIgnoreDuplicates = 'Игнориране на дублиращите се редове';
+$strIgnoreInserts = 'Използване на INSERT IGNORE';
+$strImportFiles = 'Импортиране на файлове';
+$strImportFormat = 'Формат на импортирания файл';
+$strImport = 'Импортиране';
+$strImportSuccessfullyFinished = 'Импортирането приключи успещно. Бяха изпълнени %d заявки.';
+$strIndexes = 'Индекси';
+$strIndexHasBeenDropped = 'Индекса %s беше изтрит';
+$strIndexName = 'Име на индекса&nbsp;:';
+$strIndex = 'Индекс';
+$strIndexType = 'Тип на индекса&nbsp;:';
+$strIndexWarningTable = 'Проблем с индексите на таблица `%s`';
+$strInnoDBPages = 'страници';
+$strInnodbStat = 'InnoDB Състояние';
+$strInsecureMySQL = 'Вашият конфигурационен файл съдържа настройки (root без парола), които съответстват на привилегирования акаунт на MySQL по подразбиране. Вашият MySQL сървър е стартиран с това по подразбиране и може да бъде лесно хакнат. Трябва да оправите тази дупка в сигурността.';
+$strInsertAsNewRow = 'Вмъкване като нов ред';
+$strInsert = 'Вмъкване';
+$strInternalRelations = 'Вътрешни релации';
+$strInUse = 'Заето';
+$strInvalidColumn = 'Невалидна колона (%s)!';
+$strInvalidColumnCount = 'Броя на колоните трябва да е по-голям от нула.';
+$strInvalidDatabase = 'Невалидна база от данни';
+$strInvalidFieldAddCount = 'Трябва да добавите поне едно поле.';
+$strInvalidFieldCount = 'Таблицата трябва да има поне едно поле.';
+$strInvalidRowNumber = '%d не е валиден номер на ред.';
+$strInvalidTableName = 'Невалидно име на таблица';
+
+$strJapanese = 'Японски';
+$strJumpToDB = 'Скочи към база от данни &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Изтритите&quot; потребители ще имат достъп до сървъра както обикновено, докато не се презаредят привилегиите.';
+$strJustDelete = 'Изтриване на потребителите от таблицата с привилегиите.';
+
+$strKeepPass = 'Да не се сменя паролата';
+$strKeyname = 'Име на ключа';
+$strKill = 'СТОП';
+$strKorean = 'Корейски';
+
+$strLandscape = 'Пейзажно';
+$strLanguage = 'Език';
+$strLatexCaption = 'Заглавие на таблицата';
+$strLatexContent = 'Съдържание на таблица __TABLE__';
+$strLatexContinuedCaption = 'Продължение на заглавието на таблицата';
+$strLatexContinued = '(продължение)';
+$strLatexIncludeCaption = 'Включване на заглавие на таблицата';
+$strLatexLabel = 'Етикет на ключа';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Структура на таблица __TABLE__';
+$strLatvian = 'Латвийски';
+$strLDI = 'CSV с LOAD DATA';
+$strLDILocal = 'Използване на ключовата дума LOCAL ';
+$strLengthSet = 'Дължина/Стойност*';
+$strLimitNumRows = 'редове на страница';
+$strLinesTerminatedBy = 'Редовете завършват с';
+$strLinkNotFound = 'Връзките не са намерени';
+$strLinksTo = 'Сочи към';
+$strLithuanian = 'Литовски';
+$strLocalhost = 'Локален';
+$strLocationTextfile = 'Местоположение на текстовия файл';
+$strLoginInformation = 'Информация за логване';
+$strLogin = 'Вход';
+$strLogout = 'Изход от системата';
+$strLogPassword = 'Парола:';
+$strLogServer = 'Сървър';
+$strLogUsername = 'Име:';
+$strLongOperation = 'Операцията може да продължи дълго. Да продължи ли въпреки това?';
+
+$strMaxConnects = 'Максимален брой на едновременните конекции';
+$strMaximalQueryLength = 'Максимална дължина на създадената заявка';
+$strMaximumSize = 'Максимален размер: %s%s';
+$strMIME_available_mime = 'Достъпни MIME-типове';
+$strMIME_available_transform = 'Достъпни трансформации';
+$strMIME_description = 'Описание';
+$strMIME_MIMEtype = 'MIME-тип';
+$strMIME_nodescription = 'Няма Описание за тази трансформация.<br />Моля обърнете се към автора относно това какво прави %s.';
+$strMIME_transformation = 'Браузърна трансформация';
+$strMIME_transformation_note = 'За списъка на достъпните опции на трансформацията и техните MIME-type трансформации кликнете на %sописания на трансформацията%s';
+$strMIME_transformation_options_note = 'Моля въведете стойностите за опциите на трансформацията като използвате следния формат: \'a\', 100, b,\'c\'...<br />Ако трябва да поставите обратно наклонена черта ("\") или единична кавичка ("\'") между тези стойности, поставете пред тях допълнителна обратно наклонена черта (например \'\\\\xyz\' или \'a\\\'b\').';
+$strMIME_transformation_options = 'Опции на трансформацията';
+$strMIMETypesForTable = 'MIME ТИПОВЕ ЗА ТАБЛИЦА';
+$strMIME_without = 'MIME-types показани в наклонен шрифт не притежават отделна функция за трансформация';
+$strModifications = 'Промените бяха съхранени';
+$strModifyIndexTopic = 'Промяна на индекс';
+$strModify = 'Промени';
+$strMoveTable = 'Преместване на таблица към (база от данни<b>.</b>таблица):';
+$strMoveTableOK = 'Таблицата %s беше преместена към %s.';
+$strMoveTableSameNames = 'Не може да се премести таблицата към себе си!';
+$strMultilingual = 'многоезичен';
+$strMyISAMMaxExtraSortFileSize = 'Максимален размер на временните файлове при създаване на индекс';
+$strMyISAMRecoverOptions = 'Режим на автоматично възстановяване';
+$strMyISAMRepairThreads = 'Поправка на нишките';
+$strMyISAMSortBufferSize = 'Размер на буфера за сортиране';
+$strMySQLCharset = 'Набор от знаци на MySQL';
+$strMysqlClientVersion = 'Версия на клиента за MySQL';
+$strMySQLConnectionCollation = 'Колация на MySQL';
+$strMySQLSaid = 'MySQL отговори: ';
+$strMySQLShowProcess = 'MySQL процеси';
+
+$strName = 'Име';
+$strNext = 'Следващ';
+$strNoDatabases = 'Няма бази от данни';
+$strNoDatabasesSelected = 'Няма избрани бази от данни.';
+$strNoDescription = 'няма Описание';
+$strNoDetailsForEngine = 'Няма детайлна информация за състоянието на това хранилище на данни.';
+$strNoDropDatabases = '"DROP DATABASE" заявката е забранена.';
+$strNoExplain = 'Пропусни Explain SQL';
+$strNoFilesFoundInZip = 'Не са открити файлове в ZIP архива!';
+$strNoFrames = 'phpMyAdmin е по дружелюбен ако използвате браузър, който поддържа <b>frames</b>.';
+$strNoIndexPartsDefined = 'Не са дефинирани части на индекс!';
+$strNoIndex = 'Не е дефиниран индекс!';
+$strNoModification = 'Няма промяна';
+$strNone = 'Няма';
+$strNo = 'не';
+$strNoOptions = 'Този формат няма опции';
+$strNoPassword = 'Няма парола';
+$strNoPermission = 'Уеб сървъра няма права за запис на файла %s.';
+$strNoPhp = 'без PHP код';
+$strNoPrivileges = 'Няма привилегии';
+$strNoRights = 'В момента не разполагате с достатъчно права за да се намирате тук!';
+$strNoRowsSelected = 'Няма върнати редове';
+$strNoSpace = 'Недостатъчно свободно пространство за записване на файла %s.';
+$strNoTablesFound = 'В базата от данни няма таблици.';
+$strNotNumber = 'Това не е число!';
+$strNotOK = 'не е OK';
+$strNotSet = 'таблица <b>%s</b> не е намерена или не е установена в %s';
+$strNoUsersFound = 'Няма потребител(и).';
+$strNoValidateSQL = 'Пропусни Validate SQL';
+$strNull = 'Празно';
+$strNumberOfFields = 'Брой полета';
+$strNumSearchResultsInTable = '%s съвпадение(я) в таблица <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Общо:</b> <i>%s</i> съвпадение(я)';
+$strNumTables = 'Таблици';
+
+$strOK = 'OK';
+$strOpenNewWindow = 'Отваряне на нов прозорец с phpMyAdmin';
+$strOperations = 'Операции';
+$strOperator = 'Оператор';
+$strOptimizeTable = 'Оптимизация на таблицата';
+$strOr = 'или';
+$strOverhead = 'Загубено място';
+$strOverwriteExisting = 'Препокриване на съществуващите файлове';
+
+$strPageNumber = 'Номер на страницата:';
+$strPaperSize = 'Размер на хартията';
+$strPartialImport = 'Частично импортиране';
+$strPartialText = 'Частични текстове';
+$strPasswordChanged = 'Паролата на %s беше променена успешно.';
+$strPasswordEmpty = 'Паролата е празна!';
+$strPasswordNotSame = 'Паролата не е същата!';
+$strPassword = 'Парола';
+$strPdfDbSchema = 'Схемата на база от данни "%s" - Страница %s';
+$strPdfInvalidTblName = 'Таблица "%s" не съществува!';
+$strPdfNoTables = 'Няма таблици';
+$strPDFReportExplanation = '(Генерира доклад съдържащ данните в определена таблица)';
+$strPDFReportTitle = 'Файл на доклада';
+$strPerHour = 'на час';
+$strPerMinute = 'на минута';
+$strPerSecond = 'на секунда';
+$strPersian = 'Персийски';
+$strPhoneBook = 'Телефонен бележник';
+$strPhp = 'Създаване на PHP код';
+$strPHPVersion = 'Версия на PHP';
+$strPmaDocumentation = 'phpMyAdmin документация';
+$strPmaUriError = 'На <tt>$cfg[\'PmaAbsoluteUri\']</tt> ТРЯБВА да се зададе стойност в конфигурационния файл!';
+$strPolish = 'Полски';
+$strPortrait = 'Портретно';
+$strPos1 = 'Начало';
+$strPrevious = 'Предишен';
+$strPrimaryKeyHasBeenDropped = ' Главния ключ беше изтрит.';
+$strPrimaryKeyName = 'Името на главния ключ трябва да е... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>трябва</b> да е името на <b>и единствено на</b> главния ключ!)';
+$strPrimary = 'PRIMARY';
+$strPrint = 'Печат';
+$strPrintViewFull = 'Преглед за печат (с пълните текстове)';
+$strPrintView = 'Преглед за печат';
+$strPrivDescAllPrivileges = 'Включва всички привилегии освен GRANT.';
+$strPrivDescAlterRoutine = 'Позволяване на променяне и издриване на Съхранени Процедури.';
+$strPrivDescAlter = 'Позволява променяне на структурата на съществуващи таблици.';
+$strPrivDescCreateDb = 'Позволява създаване на нови бази от данни и таблици.';
+$strPrivDescCreateRoutine = 'Позволяване на създаването на Съхранени Процедури.';
+$strPrivDescCreateTbl = 'Позволява създаване на нови таблици.';
+$strPrivDescCreateTmpTable = 'Позволява създаването на временни таблици.';
+$strPrivDescCreateUser = 'Позволяване на създаването, изтриването и преименуването на потребителски акаунти.';
+$strPrivDescCreateView = 'Позволяване на създаването на нови Изгледи.';
+$strPrivDescDelete = 'Позволява изтриване на данни.';
+$strPrivDescDropDb = 'Позволява изтриване на бази от данни и таблици.';
+$strPrivDescDropTbl = 'Позволява изтриване на таблици.';
+$strPrivDescExecute5 = 'Позволяване на стартирането на Съхранени Процедури.';
+$strPrivDescExecute = 'Позволява стартирането на съхранени процедури; Няма ефект в тази версия на MySQL.';
+$strPrivDescFile = 'Позволява импортиране на данни от и експортиране на данни във файлове.';
+$strPrivDescGrant = 'Позволява добавяне на потребители и привилегии без презареждане на таблицата с привилегиите.';
+$strPrivDescIndex = 'Позволява създаване и премахване на индекси.';
+$strPrivDescInsert = 'Позволява вмъкване и заменяне на данни.';
+$strPrivDescLockTables = 'Позволява заключване на таблици за текущата нишка.';
+$strPrivDescMaxConnections = 'Ограничава броя на новите конекции, които потребителя може да отвори на час.';
+$strPrivDescMaxQuestions = 'Ограничава броя на заявките, които потребителя може да изпрати към сървъра на час.';
+$strPrivDescMaxUpdates = 'Ограничава броя на командите, които променят някоя таблица или база от данни, които даден потребител може да стартира за час.';
+$strPrivDescReferences = 'Няма ефект в тази версия на MySQL.';
+$strPrivDescReload = 'Позволява презареждане на сървърните настройки и изчистване(flashing) на кеша на сървъра.';
+$strPrivDescReplClient = 'Дава правото на потребител да знае къде са slaves / masters.';
+$strPrivDescReplSlave = 'Нужно за replication slaves.';
+$strPrivDescSelect = 'Позволява четене на данни.';
+$strPrivDescShowDb = 'Дава достъп до пълния списък на базите данни.';
+$strPrivDescShowView = 'Позволяване на изпълнението на SHOW CREATE VIEW заявки.';
+$strPrivDescShutdown = 'Позволява спиране на сървъра.';
+$strPrivDescSuper = 'Позволява конектвне, дори ако е достигнат максималния брой на конекциите; Изисква се за повечето административни операции, като установяване на глобални променливи или спиране на нишка на други потребители.';
+$strPrivDescUpdate = 'Позволява промяна на данни.';
+$strPrivDescUsage = 'Няма привилегии.';
+$strPrivileges = 'Привилегии';
+$strPrivilegesReloaded = 'Привилегиите бяха презаредени успешно.';
+$strProcedures = 'Процедури';
+$strProcesses = 'Процеси';
+$strProcesslist = 'Списък на процесите';
+$strProtocolVersion = 'Версия на протокола';
+$strPutColNames = 'Поставяне имената на полетата на първия ред';
+
+$strQBEDel = 'Изтрий';
+$strQBEIns = 'Вмъкни';
+$strQBE = 'Запитване по пример';
+$strQueryCache = 'Кеш на заявките';
+$strQueryFrame = 'Прозорец за заявки';
+$strQueryOnDb = 'SQL-заявка към базата от данни <b>%s</b>:';
+$strQueryResultsOperations = 'Операции с резулатата от заявката';
+$strQuerySQLHistory = 'SQL-хронология';
+$strQueryStatistics = '<b>Статистика на заявките</b>: От както е стартиран %s заявки са изпратени към сървъра.';
+$strQueryTime = 'Заявката отне %01.4f секунди';
+$strQueryType = 'Тип на заявката';
+$strQueryWindowLock = 'Не препокривайте тази заявка извън този прозорец';
+
+$strReceived = 'Получени';
+$strRecords = 'Записи';
+$strReferentialIntegrity = 'Проверка на интегритета на връзките';
+$strRefresh = 'Презареждане';
+$strRelationalSchema = 'Релационна схема';
+$strRelationNotWorking = 'Допълнителните възможности за работа със свързани (linked) таблици са деактивирани. За да разберете защо кликнете %sтук%s.';
+$strRelations = 'Релации';
+$strRelationsForTable = 'РЕЛАЦИИ ЗА ТАБЛИЦА';
+$strRelationView = 'Преглед на релациите';
+$strReloadingThePrivileges = 'Презареждане на привилегиите';
+$strReloadPrivileges = 'Презареждане на привилегиите';
+$strRemoveSelectedUsers = 'Отстраняване на избраните потребители';
+$strRenameDatabaseOK = 'Базата данни %s беше преименувана на %s';
+$strRenameTable = 'Преименуване на таблицата на';
+$strRenameTableOK = 'Таблица %s беше преименувана на %s';
+$strRepairTable = 'Поправяне на таблицата';
+$strReplaceNULLBy = 'Заменяй NULL с';
+$strReplaceTable = 'Заместване на данните от таблицата с данните от файла';
+$strReplication = 'Репликация';
+$strReset = 'Изчистване';
+$strResourceLimits = 'Ресурсни ограничения';
+$strReType = 'Отново';
+$strRevokeAndDeleteDescr = 'Потребителите все още ще имат USAGE привилегия докато не се презаредят привилегиите.';
+$strRevokeAndDelete = 'Отмяна на всички активни привилегии от потребителите и след това изтриване.';
+$strRevokeMessage = 'Вие отменихте привилегиите за %s';
+$strRevoke = 'Отменяне';
+$strRomanian = 'Румънски';
+$strRowLength = 'Дължина на реда';
+$strRows = 'Редове';
+$strRowsFrom = 'реда започвайки от';
+$strRowSize = ' Размер на ред ';
+$strRowsModeFlippedHorizontal = 'хоризонтален (обърнати хедъри)';
+$strRowsModeHorizontal = 'хоризонтален';
+$strRowsModeOptions = 'в %s вид и повтаряне на имената на колоните през всеки %s<br />';
+$strRowsModeVertical = 'вертикален';
+$strRowsStatistic = 'Статистика за редовете';
+$strRunning = 'работи на %s';
+$strRunQuery = 'Изпълни заявката';
+$strRunSQLQuery = 'Изпълнение на SQL заявка/заявки към база от данни %s';
+$strRunSQLQueryOnServer = 'Изпълняване на SQL заявка/заявки на сървър %s';
+$strRussian = 'Руски';
+
+$strSaveOnServer = 'Записване на сървъра в директория %s';
+$strSave = 'Записване';
+$strScaleFactorSmall = 'Мащаба е твърде малък за да се събере схемата на една страница';
+$strSearchFormTitle = 'Търсене в базата от данни';
+$strSearchInTables = 'В таблиците:';
+$strSearchNeedle = 'Думи или стойности за търсене (знак за заместване: "%"):';
+$strSearch = 'Търсене';
+$strSearchOption1 = 'поне една от думите';
+$strSearchOption2 = 'всички думи';
+$strSearchOption3 = 'точната фраза';
+$strSearchOption4 = 'като регулярен израз';
+$strSearchResultsFor = 'Резултати от търсенето на "<i>%s</i>" %s:';
+$strSearchType = 'Намери:';
+$strSecretRequired = 'Конфигурационния файл има нужда от тайна парола (blowfish_secret).';
+$strSelectADb = 'Моля изберете база от данни';
+$strSelectAll = 'Селектиране на всичко';
+$strSelectBinaryLog = 'Изберете двоичен журнал за преглед';
+$strSelectFields = 'Избор на поле (поне едно):';
+$strSelectNumRows = 'в запитването';
+$strSelectTables = 'Избери таблици';
+$strSend = 'Изпращане';
+$strSent = 'Изпратени';
+$strServerChoice = 'Избор на сървър';
+$strServer = 'Сървър';
+$strServerNotResponding = 'Няма отговор от сървъра';
+$strServers = 'Сървъри';
+$strServerStatus = 'Информация за състоянието на MySQL сървъра';
+$strServerStatusUptime = 'Този MySQL сървър работи от %s. Стартиран е на %s.';
+$strServerTabVariables = 'Променливи';
+$strServerTrafficNotes = '<b>Трафик на сървъра</b>: Тези таблици показват статистика за мрежовия трафик на MySQL сървъра от както е стартиран.';
+$strServerVars = 'Сървърни променливи и настройки';
+$strServerVersion = 'Версия на сървъра';
+$strSessionValue = 'Сесийна стойност';
+$strSetEnumVal = 'Ако типа на полето е "enum" или "set", моля въведете стойностите използвайки този формат: \'a\',\'b\',\'c\'...<br />Ако е необходимо да сложите обратна черта ("\") или апостроф ("\'") между тези стойности, сложите обратна черта пред тях (например: \'\\\\xyz\' или \'a\\\'b\').';
+$strShowAll = 'Покажи всички';
+$strShowColor = 'Покажи цвят';
+$strShowDatadictAs = 'Формат на речника на данните';
+$strShowFullQueries = 'Показване на пълните заявки';
+$strShowGrid = 'Покажи мрежа';
+$strShowingRecords = 'Показване на записи ';
+$strShowOpenTables = 'Показване на отворените теблици';
+$strShowPHPInfo = 'Информация за PHP ';
+$strShowStatusCreated_tmp_filesDescr = 'Брой на създадените от mysqld временни файлове.';
+$strShowStatusDelayed_writesDescr = 'Брой на вмъкнатите посредством INSERT DELAYED редове.';
+$strShowStatusHandler_updateDescr = 'Брой заявки за обновяване на ред в таблица.';
+$strShowStatusHandler_writeDescr = 'Брой заявки за вмъкване на ред в таблица.';
+$strShowStatusOpen_filesDescr = 'Брой на отворените файлове.';
+$strShowStatusOpen_streamsDescr = 'Брой на отворените потоци (използва се главно за логове).';
+$strShowStatusOpen_tablesDescr = 'Брой на отвотените таблици.';
+$strShowStatusSort_rowsDescr = 'Брой на сортираните редове.';
+$strShowTableDimension = 'Покажи размерността на таблиците';
+$strShowTables = 'Покажи таблиците';
+$strShowThisQuery = ' Показване на заявката отново';
+$strShow = 'Показване';
+$strSimplifiedChinese = 'Опростен китайски';
+$strSingly = '(еднократно)';
+$strSize = 'Размер';
+$strSkipQueries = 'Брой записи(завки), които да бъдат пропуснати от началото';
+$strSlovak = 'Словашки';
+$strSlovenian = 'Словенски';
+$strSortByKey = 'Сортиране по ключ';
+$strSorting = 'Сортиране';
+$strSort = 'Сортиране';
+$strSpaceUsage = 'Използвано място';
+$strSpanish = 'Испански';
+$strSplitWordsWithSpace = 'Думите трябва да се разделят с интервал (" ").';
+$strSQLCompatibility = 'Режим на съвместимост на SQL';
+$strSQLExportType = 'Тип на експортирането';
+$strSQLParserBugMessage = 'Има известна вероятност да сте намерили бъг в SQL парсера. Моля проучете по-добре, и проверете коректността на кавичките. Друга вероятна причина за грешката може да бъде, че ъплоудвате файл с изпълним код извън областта заградена с кавички. Можете също така да се опитате да изпълните заявката чрез интерфейса за команден ред на MySQL. Грешката генерирана от MySQL сървъра по-долу, ако има такава, може също да ви помогне при откриването на проблема. Ако все още имате проблеми или парсера дава грешка там където интерфейса на командния ред не връща такава, моля ограничете вашите SQL заявки само до проблемната заявка, и изпратете съобщение за бъг с парчето от данните в CUT секцията по-долу:';
+$strSQLParserUserError = 'Изглежда, че има грешка в SQL заявката ви. Грешката върната от MySQL сървъра по долу, ако има такава, би могла да ви помогне в определянето на проблема';
+$strSQLQuery = 'SQL заявка';
+$strSQLResult = 'SQL резултат';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Невалиден идентификатор';
+$strSQPBugUnclosedQuote = 'Незатворени кавички';
+$strSQPBugUnknownPunctuation = 'Непозната пунктуация на стринг';
+$strStatCheckTime = 'Последна проверка';
+$strStatCreateTime = 'Дата на създаване';
+$strStatement = 'Заявление';
+$strStatUpdateTime = 'Последно обновление';
+$strStatus = 'Състояние';
+$strStorageEngine = 'Хранилище на данни';
+$strStorageEngines = 'Хранилища на данни';
+$strStrucCSV = 'CSV данни';
+$strStrucData = 'Структурата и данните';
+$strStrucExcelCSV = 'CSV за MS Excel данни';
+$strStrucOnly = 'Само структурата';
+$strStructPropose = 'Анализ на таблицата';
+$strStructure = 'Структура';
+$strSubmit = 'Изпълнение';
+$strSuccess = 'SQL заявката беше изпълнена успешно';
+$strSum = 'Сума';
+$strSwedish = 'Шведски';
+$strSwitchToDatabase = 'Прехвърляна към копираната база от данни';
+$strSwitchToTable = 'Превключване към копираната таблица';
+
+$strTableAlreadyExists = 'Таблица %s вече съществува!';
+$strTableComments = 'Коментари към таблицата';
+$strTableEmpty = 'Името на таблицата е празно!';
+$strTableHasBeenDropped = 'Таблицата %s беше изтрита';
+$strTableHasBeenEmptied = 'Таблицата %s беше изчистена';
+$strTableHasBeenFlushed = 'Кеша на таблица %s беше изчистен';
+$strTableMaintenance = 'Поддръжка на таблицата';
+$strTableOfContents = 'Съдържание';
+$strTableOptions = 'Опции на таблицата';
+$strTables = '%s таблица(и)';
+$strTableStructure = 'Структура на таблица';
+$strTable = 'Таблица ';
+$strTblPrivileges = 'Привилегии специфични за таблицата';
+$strTempData = 'Временни данни';
+$strTextAreaLength = ' Поради дължината си,<br /> това поле може да не е редактируемо ';
+$strThai = 'Тайландски';
+$strThemeDefaultNotFound = 'Темата по подразбиране %s не е намерена!';
+$strThemeNotFound = 'Тема %s не е намерена!';
+$strThemeNoValidImgPath = 'Не е открит валиден път на тема %s!';
+$strTheme = 'Тема / Стил';
+$strThemePathNotFound = 'Не е открит пътя на тема %s!';
+$strThisHost = 'Този Хост';
+$strThreadSuccessfullyKilled = 'Нишка %s беше успешно отстранена.';
+$strThreads = 'Нишки';
+$strTime = 'Време';
+$strTotal = 'Общо';
+$strTotalUC = 'Общо';
+$strTraditionalChinese = 'Традиционен китайски';
+$strTraditionalSpanish = 'Традиционен Испански';
+$strTraffic = 'Трафик';
+$strTransactionCoordinator = 'Координатор на транзакциите';
+$strTransformation_application_octetstream__download = 'Показва връзка за сваляне на двоичните данни нa полето. Първата опция е файловото име на двоичния файл. Втората опция е вероятното име на полето на реда на таблицата съдържащо файловото име. Ако напишете втора опция, трябва първата ви опция да е установена на празен низ.';
+$strTransformation_image_jpeg__inline = 'Показва thumbnail; опции: ширина, височина в пиксели (запазва оригиналната пропорция)';
+$strTransformation_image_jpeg__link = 'Показва връзката на това изображение (за директно сваляне, i.e.).';
+$strTransformation_image_png__inline = 'Виж image/jpeg: inline';
+$strTransformation_text_plain__external = 'САМО ЗА ЛИНУКС: Стартира външното приложение и попълва данните в полетата чрез стандартния вход. Връща стандартния изход на приложението. По подразбиране е Tidy, за да покаже HTML кода. От съображения за сигурност, трябва ръчно да редактирате файла libraries/transformations/text_plain__external.inc.php и да вмъкнете програмите на които вие позволявате да бъдат стартирани. Първата опция тогава е номера на програмата която бихте искали да използвате а втората опция са параметрите за програмата. Ако третият параметър е установен в 1, ще конвертира изхода използвайки htmlspecialchars() (По подразбиране е 1). Ако четвъртият параметър е установен в 1, ще постави NOWRAP на клетката на съдържанието, така че целия изход ще бъде показан без преформатиране (По подразбиране е 1)';
+$strTransformation_text_plain__formatted = 'Запазва оригиналното форматиране на полето.';
+$strTransformation_text_plain__imagelink = 'Показва изображение и връзка на полето съдържащо файлово име; първата опция е префикс като "http://domain.com/", втората опция е ширината в пиксели, третата е височината.';
+$strTransformation_text_plain__link = 'Показва връзката на полето съдържащо файлово име; първата опция е префикс като "http://domain.com/", втората опция е заглавието на връзката.';
+$strTransformation_text_plain__substr = 'Показва част от низ. Първата опция е отместването от което ще се извежда вашият текст (По подразбиране е 0). Втората опция указва колко текст ще се изведе. Ако е празна, се връща целия оставащ текст. Третата опция указва кои зкаци ще бъдат изведени (По подразбиране: ...) .';
+$strTruncateQueries = 'Съкращаване на показаните заявки';
+$strTurkish = 'Турски';
+$strType = 'Тип';
+
+$strUkrainian = 'Украински';
+$strUncheckAll = 'Размаркиране на всичко';
+$strUnicode = 'Unicode';
+$strUnique = 'Уникално';
+$strUnknown = 'непознат';
+$strUnselectAll = 'Деселектиране на всичко';
+$strUpdatePrivMessage = 'Вие променихте привилегиите за %s.';
+$strUpdateProfileMessage = 'Профила беше обновен.';
+$strUpdateQuery = 'Допълни Запитването';
+$strUpdComTab = 'Моля прегледайте информацията в Документацията относно това как да обновите вашата Column_comments таблица';
+$strUpgrade = 'Трябва да ъпгрейднете към %s %s или по-късно.';
+$strUploadLimit = 'Вероятно сте направили опит да качите твърде голям файл. Моля, обърнете се към %sdдокументацията%s за да намерите начин да избегнете това ограничение.';
+$strUploadsNotAllowed = 'На този сървър не е позволени качване на файлове.';
+$strUsage = 'Използвани';
+$strUseBackquotes = 'Използване на обратни кавички около имена на таблици и полета';
+$strUseHostTable = 'Използвай таблица Host';
+$strUserAlreadyExists = 'Потребител %s вече съществува!';
+$strUserEmpty = 'Потребителското име е празно!';
+$strUserName = 'Потребителско име';
+$strUserNotFound = 'Избрания потребител не беше открит в таблицата с привилегиите.';
+$strUserOverview = 'Преглед на потребителите';
+$strUsersDeleted = 'Избраните потребители бяха изтрити успешно.';
+$strUsersHavingAccessToDb = 'Потребители които имат достъп до &quot;%s&quot;';
+$strUser = 'Потребител';
+$strUseTabKey = 'Използвайте клавиша TAB за да премествате крурсора от стойност на стойност или CTRL+стрелка за да премествате курсора в съответната посока';
+$strUseTables = 'Използвай таблицата';
+$strUseTextField = 'Използвай текстовото поле';
+$strUseThisValue = 'Използвахте тази стойност';
+
+$strValidateSQL = 'Валидирай SQL-а';
+$strValidatorError = 'SQL валидатора не може да бъде инициализиран. Моля проверете дали сте инсталирали необходимите PHP разширения, така както е описано в %sдокументацията%s.';
+$strValue = 'Стойност';
+$strVar = 'Променлива';
+$strVersionInformation = 'Информация за весията';
+$strView = 'Изглед';
+$strViewDumpDatabases = 'Преглед на схемата на базата от данни';
+$strViewDumpDB = 'Схема на БД';
+$strViewDump = 'Схема на таблицата';
+$strViewHasBeenDropped = 'Изглед %s беше изтрит';
+
+$strWebServerUploadDirectoryError = 'Директорията която сте указали за upload не може да бъде достигната';
+$strWebServerUploadDirectory = 'директорията за upload на уеб сървъра';
+$strWelcome = 'Добре дошли в %s';
+$strWestEuropean = 'Западно-европейски';
+$strWildcard = 'знак за заместване';
+$strWindowNotFound = 'Прозореца на браузъра не може да бъде обновен. Може би сте затворили отварящият го прозорец или браузърът Ви е блокирал обновяване на данни от един прозорец в друг от съображения за сигурност';
+$strWithChecked = 'Когато има отметка:';
+$strWrongUser = 'Грешно име/парола. Достъп отказан.';
+
+$strXML = 'XML';
+
+$strYes = 'да';
+
+$strZeroRemovesTheLimit = 'Забележка: Установяването на тези опции с 0 (нула) премахва ограничението.';
+$strZip = '"zip-нато"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseNone = 'Няма'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDirtyPages = 'Dirty pages'; //to translate
+
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Неразпознат език: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+
+$strTakeIt = 'take it'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTransformation_application_octetstream__hex = 'Показва шестнадесетично представяне на данните. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/catalan-utf-8.inc.php b/lang/catalan-utf-8.inc.php
new file mode 100644
index 0000000000..093924e97d
--- /dev/null
+++ b/lang/catalan-utf-8.inc.php
@@ -0,0 +1,1444 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$allow_recoding = TRUE;
+$text_dir = 'ltr'; // ('ltr' d'esquerra a dreta, 'rtl' de dreta a esquerra)
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// abreviatures de Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+$timespanfmt = '%s dies, %s hores, %s minuts i %s segons';
+
+$day_of_week = array('Diu', 'Dll', 'Dma', 'Dcr', 'Dij', 'Div', 'Dis');
+$month = array('Gen', 'Feb', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Oct', 'Nov', 'Dec');
+// Veure http://www.php.net/manual/es/function.strftime.php per a definir
+// la variable seguent
+$datefmt = '%d-%m-%Y a les %H:%M:%S';
+
+$strAbortedClients = 'Avortat';
+$strAccessDenied = 'Accés denegat';
+$strAccessDeniedCreateConfig = 'La raó més probable d\'aixó és que no heu creat l\'arxiu de configuració. Podriau voler utilitzar %1$ssetup script%2$s per crear-ne un.';
+$strAccessDeniedExplanation = 'phpMyAdmin ha intentat connectar amb el servidor de MySQL, pero el servidor ha rebutjat la connexió. Comprova el host, el num d\' usuari i la contrasenya a l\'arxiu config.inc.php i mira que es correspongui amb la informació facilitada per l\' administrador del servidor de MySQL.';
+$strAction = 'Acció';
+$strAddAutoIncrement = 'Afegir valor AUTO_INCREMENT';
+$strAddClause = 'Afegir %s';
+$strAddConstraints = 'Afegir restriccions';
+$strAddDeleteColumn = 'Afegir/esborrar Camps de Columna';
+$strAddDeleteRow = 'Afegir/esborrar fila de criteri';
+$strAddFields = 'Afegir %s camp(s)';
+$strAddHeaderComment = 'Afegir comentari personalitzat a la capçalera (\\n divideix linies)';
+$strAddIntoComments = 'Afegir en comentaris';
+$strAddNewField = 'Afegir un camp nou';
+$strAddPrivilegesOnDb = 'Afegir permissos a la següent base de dades';
+$strAddPrivilegesOnTbl = 'Afegir permissos a la següent taula';
+$strAddSearchConditions = 'Afegeix condicions de recerca (cos de la clàusula "WHERE"):';
+$strAddToIndex = 'Afegir a l\'índex %s columna(es) &nbsp;';
+$strAddUser = 'Afegir un usuari nou';
+$strAddUserMessage = 'Has afegit un usuari nou.';
+$strAdministration = 'Administració';
+$strAfter = 'Darrere de %s';
+$strAfterInsertBack = 'Tornar';
+$strAfterInsertNewInsert = 'Insereix un nou registre';
+$strAfterInsertNext = 'Editar el següent registre';
+$strAfterInsertSame = 'Tornar a aquesta pàgina';
+$strAllowInterrupt = 'Permetre l\'interrupció de l\'importació en cas de que l\'arxiu d\'ordres detecti que s\'acosta el limit del temps. Pot ser una bona solució per importar arxius grans, però pot trencar transaccions.';
+$strAllTableSameWidth = 'Mostrar totes les taules amb la mateixa amplada?';
+$strAll = 'Tot';
+$strAlterOrderBy = 'Altera la taula i ordena per';
+$strAnalyzeTable = 'Analitza la taula';
+$strAnd = 'I';
+$strAndThen = 'i llavors';
+$strAngularLinks = 'Enllaços angulars';
+$strAnIndex = 'S\'ha afegit un índex a %s';
+$strAnyHost = 'Qualsevol servidor';
+$strAny = 'Qualsevol';
+$strAnyUser = 'Qualsevol usuari';
+$strApproximateCount = 'Pot ser aproximat. Veieu PFC (FAQ) 3.11';
+$strAPrimaryKey = 'S\'ha afegit una clau principal a %s';
+$strArabic = 'Àrab';
+$strArmenian = 'Armeni';
+$strAscending = 'Ascendent';
+$strAtBeginningOfTable = 'Al principi de la taula';
+$strAtEndOfTable = 'Al final de la taula';
+$strAttr = 'Atributs';
+$strAutomaticLayout = 'Disseny automàtic';
+
+$strBack = 'Enrere';
+$strBaltic = 'Bàltic';
+$strBeginCut = 'INICI DEL TALL';
+$strBeginRaw = 'INICI DEL BOLCAT';
+$strBinary = ' Binari ';
+$strBinaryDoNotEdit = ' Binari - no editeu ';
+$strBinaryLog = 'Registre binari';
+$strBinLogEventType = 'Tipus d\'event';
+$strBinLogInfo = 'Informació';
+$strBinLogName = 'Nom del registre';
+$strBinLogOriginalPosition = 'Posició original';
+$strBinLogPosition = 'Posició';
+$strBinLogServerId = 'ID de Servidor';
+$strBookmarkAllUsers = 'Deixar accedir a cada usuari a aquesta consulta desada';
+$strBookmarkCreated = '%s creat com a consulta desada';
+$strBookmarkDeleted = 'S\'ha esborrat la consulta desada.';
+$strBookmarkLabel = 'Etiqueta';
+$strBookmarkQuery = 'Consulta SQL desada';
+$strBookmarkReplace = 'Reemplaçar una consulta desada ja existent amb el mateix nom';
+$strBookmarkThis = 'Desa aquesta consulta SQL';
+$strBookmarkView = 'Només mirar';
+$strBrowseDistinctValues = 'Navega per valors diferents';
+$strBrowseForeignValues = 'Navega valors externs';
+$strBrowse = 'Navega';
+$strBufferPoolActivity = 'Activitat de la Memòria intermitja';
+$strBufferPool = 'Grup de memòries intermitges';
+$strBufferPoolUsage = 'Ús del grup de memòries intermitges';
+$strBufferReadMissesInPercent = 'Lectures omeses en %';
+$strBufferReadMisses = 'Lectures omeses';
+$strBufferWriteWaits = 'Esperes d\'escriptura';
+$strBufferWriteWaitsInPercent = 'Esperes d\'escriptura en %';
+$strBulgarian = 'Búlgar';
+$strBusyPages = 'Pàgines ocupades';
+$strBzip = '"comprimit amb bzip"';
+
+$strCalendar = 'Calendari';
+$strCancel = 'Cancel.lar';
+$strCanNotLoadExportPlugins = 'No es poden carregar les extensions d\'exportació, comprova l\'instal.lació!';
+$strCanNotLoadImportPlugins = 'No es poden carregar les extensions d\'importació, comprova l\'instal.lació!';
+$strCannotLogin = 'No podem connectar amb el servidor MySQL';
+$strCantLoad = 'No puc carregar l\'extensió %s,<br />Comprova la configuració de PHP.';
+$strCantLoadRecodeIconv = 'No es pot carregar iconv o recodificar una extensió necessària per la conversió de jocs de caràcters, Configura php per permetre l\'ús d\'aquestes extensions o bé desactiva la conversió de jocs de caràcters en phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'No pots canviar el nom d\'un índex a "PRIMARY"!';
+$strCantUseRecodeIconv = 'No es pot utilitzar iconv ni libiconv ni la funció recode_string mentre es carrega l\'extensió d\'informes. Comprova la configuració de php.';
+$strCardinality = 'Cardinalitat';
+$strCaseInsensitive = 'No sensible a majúscules';
+$strCaseSensitive = 'sensible a majúscules';
+$strCentralEuropean = 'Europa Central';
+$strChange = 'Canvi';
+$strChangeCopyModeCopy = '... respecta l\'antic.';
+$strChangeCopyMode = 'Crea un nou usuari amb els mateixos permissos i ...';
+$strChangeCopyModeDeleteAndReload = ' ... esborra l\'antic de les taules d\'usuaris i recarrega els permissos després.';
+$strChangeCopyModeJustDelete = ' ... esborra l\'antic de les taules d\'usuaris.';
+$strChangeCopyModeRevoke = ' ... treu tots els permissos actius de l\'antic i esborra\'l després.';
+$strChangeCopyUser = 'Canvi d\'Informació de Connexió / Copia d\'Usuari';
+$strChangeDisplay = 'Tria el camp a mostrar';
+$strChangePassword = 'Canvi de contrasenya';
+$strCharset = 'Joc de Caracters';
+$strCharsetOfFile = 'Joc de caràcters de l\'arxiu:';
+$strCharsetsAndCollations = 'Jocs de Caracters i ordenacions';
+$strCharsets = 'Jocs de caracters';
+$strCheckAll = 'Marcar-ho tot';
+$strCheckOverhead = 'Comprovar taules desfragmentades';
+$strCheckPrivs = 'Comprova els Permissos';
+$strCheckPrivsLong = 'Comprova els Permissos per la Base de dades &quot;%s&quot;.';
+$strCheckTable = 'Verifica la taula';
+$strChoosePage = 'Tria una pàgina per editar';
+$strColComFeat = 'Mostrant comentaris de les columnes';
+$strCollation = 'Ordenació';
+$strColumnNames = 'Nom de les columnes';
+$strColumnPrivileges = 'Permissos específics de columna';
+$strCommand = 'Ordre';
+$strComments = 'Comentaris';
+$strCompatibleHashing = 'Compatible amb MySQL&nbsp;4.0';
+$strCompleteInserts = 'Completar insercions';
+$strCompression = 'Compressió';
+$strCompressionWillBeDetected = 'La compresió de l\'arxiu importat es detectarà automàticament des de: %s';
+$strConfigDefaultFileError = 'No es pot carregar la configuració per defecte des de: "%1$s"';
+$strConfigFileError = 'phpMyAdmin és incapaç de llegir l\'arxiu de configuració!<br />Això pot succeir si php troba un error sintàctic en ell o bé php no pot trobar l\'arxiu.<br />Intenta obrir l\'arxiu de configuració directament fent servir l\'enllaç següent i comprova el(s) missatge(s) d\'error que rebs. En moltes ocasions una coma o punt i coma falta en algun lloc.<br />Si rebs una pàgina en blanc, tot està bé.';
+$strConfigureTableCoord = 'Configura les coordinades per la taula %s';
+$strConnectionError = 'No puc connectar: paràmetres incorrectes.';
+$strConnections = 'Connexions';
+$strConstraintsForDumped = 'Restriccions per taules bolcades';
+$strConstraintsForTable = 'Restriccions per la taula';
+$strControluserFailed = 'La connexió de l\'usuari de control ha fallat, tal com està definida ara a la configuració.';
+$strCookiesRequired = 'A partir d\'aquest punt és necessari tenir les galetes (cookies) activades.';
+$strCopy = 'Copiar';
+$strCopyDatabaseOK = 'La Base de dades %s s\'ha copiat a %s';
+$strCopyTable = 'Copia taula a (base-de-dades<b>.</b>taula):';
+$strCopyTableOK = 'La taula %s s\'ha copiat a %s.';
+$strCopyTableSameNames = 'No es pot copiar la taula sobre ella mateixa';
+$strCouldNotKill = 'phpMyAdmin no pot cancelar el fil %s. Probablement, ja és tancat.';
+$strCreate = 'Crear';
+$strCreateDatabaseBeforeCopying = 'Inclou CREATE DATABASE abans de copiar';
+$strCreateIndex = 'Crea un índex de columnes %s:&nbsp;';
+$strCreateIndexTopic = 'Crea un nou índex';
+$strCreateNewDatabase = 'Crea una nova base de dades';
+$strCreateNewTable = 'Crear una taula nova a la base de dades %s';
+$strCreatePage = 'Crea una nova Pàgina';
+$strCreatePdfFeat = 'Creació de PDFs';
+$strCreateRelation = 'Crear relació';
+$strCreateTable = 'Crear taula';
+$strCreateUserDatabase = 'Base de dades per usuari';
+$strCreateUserDatabaseName = 'Crear base de dades amb el mateix nom i atorgar tots els permissos';
+$strCreateUserDatabaseNone = 'Cap';
+$strCreateUserDatabaseWildcard = 'Atorgar tots els permissos en un nom comodí (nomusuari_%)';
+$strCreationDates = 'Datas de Creació/Modificació/Comprovació';
+$strCriteria = 'Criteris';
+$strCroatian = 'Croata';
+$strCSV = 'CSV';
+$strCyrillic = 'Ciríl.lic';
+$strCzechSlovak = 'Txec-Eslovac';
+$strCzech = 'Txec';
+
+$strDanish = 'Danès';
+$strDatabase = 'Base de dades';
+$strDatabaseEmpty = 'El nom de la base de dades és buit!';
+$strDatabaseExportOptions = 'Opcions d\'exportació de Bases de Dades';
+$strDatabaseHasBeenDropped = 'La Base de Dades %s s\'ha eliminat.';
+$strDatabases = 'bases de dades';
+$strDatabasesDropped = '%s Bases de dades s\'han esborrat correctament.';
+$strDatabasesStatsDisable = 'Desactiva Estadístiques';
+$strDatabasesStatsEnable = 'Activa Estadístiques';
+$strDatabasesStats = 'Estadístiques de les bases de dades';
+$strDatabasesStatsHeavyTraffic = 'Nota: Activant les estadístiques de Base de Dades aqui pot provocar elevat tràfic entre el servidor Web i el de MySQL.';
+$strData = 'Dades';
+$strDataDict = 'Diccionari de Dades';
+$strDataOnly = 'Només dades';
+$strDataPages = 'Pàgines contenint dades';
+$strDBComment = 'Comentaris de la Base de Dades: ';
+$strDBCopy = 'Copiar base de dades a';
+$strDbIsEmpty = 'La base de dades sembla buida!';
+$strDbPrivileges = 'Permissos especifics de Base de dades';
+$strDBRename = 'Reanomenar base de dades a';
+$strDbSpecific = 'específic de la base de dades';
+$strDefault = 'Defecte';
+$strDefaultEngine = '%s és el motor d\'emmagatzematge per defecte en aquest servidor MySQL.';
+$strDefaultValueHelp = 'Per a valors per defecte, només entra un valor, sense barres invertides ni cometes, fent servir aquest format: a';
+$strDefragment = 'Desfragmentar taula';
+$strDelayedInserts = 'Usa insercions diferides';
+$strDeleteAndFlushDescr = 'Aquesta és la forma més clara, pero recarregar els permissos pot tardar una mica.';
+$strDeleteAndFlush = 'Esborra els usuaris i recarrega els permissos seguidament.';
+$strDeleted = 'S\'ha esborrat la fila';
+$strDelete = 'Esborrar';
+$strDeleteNoUsersSelected = 'No s\han triat usuaris per esborrar!';
+$strDeleteRelation = 'Esborrar relació';
+$strDeleting = 'Esborrant %s';
+$strDelimiter = 'Separador';
+$strDelOld = 'La pàgina actual té referències a taules que no existeixen. Vols esborrar aquestes referències?';
+$strDescending = 'Descendent';
+$strDescription = 'Descripció';
+$strDesigner = 'Dissenyador';
+$strDesignerHelpDisplayField = 'El camp a visualitzar es mostra en rosa. Per establir/treure un camp com a camp de visualització, clica la icona "Tria camp a visualitzar", i clica també en el nom de camp adient.';
+$strDictionary = 'diccionari';
+$strDirectLinks = 'Enllaços directes';
+$strDirtyPages = 'Pàgines brutes';
+$strDisabled = 'Desactivat';
+$strDisableForeignChecks = 'Desactivar comprovacions de claus externes';
+$strDisplayFeat = 'Mostrar característiques';
+$strDisplayOrder = 'Ordre del llistat:';
+$strDisplayPDF = 'Mostrar esquema PDF';
+$strDoAQuery = 'Fer una "petició segons exemple" (comodí: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentació';
+$strDoYouReally = 'Realment vols fer?';
+$strDropDatabaseStrongWarning = 'Ets a punt d\' ELIMINAR completament una base de dades!';
+$strDrop = 'Eliminar';
+$strDropUsersDb = 'Esborra les bases de dades que tenen els mateixos noms que els usuaris.';
+$strDumpingData = 'Bolcant dades de la taula';
+$strDumpSaved = 'El bolcat s\'ha desat amb el nom d\'arxiu %s.';
+$strDumpXRows = 'Bolcar %s files començant a la fila %s.';
+$strDynamic = 'dinàmic';
+
+$strEdit = 'Editar';
+$strEditPDFPages = 'Editar pàgines PDF';
+$strEditPrivileges = 'Editar permissos';
+$strEffective = 'Efectiu';
+$strEmpty = 'Buidar';
+$strEmptyResultSet = 'MySQL ha retornat un conjunt buit (p.e. cap fila).';
+$strEnabled = 'Activat';
+$strEncloseInTransaction = 'Incloure exportació en la transacció';
+$strEndCut = 'FI DEL TALL';
+$strEnd = 'Final';
+$strEndRaw = 'FI DEL BOLCAT';
+$strEngineAvailable = '%s està disponible en aquest servidor MySQL.';
+$strEngineDisabled = '%s s\'ha desactivat en aquest servidor MySQL.';
+$strEngines = 'Motors';
+$strEngineUnsupported = 'Aquest servidor MySQL no suporta el motor d\'emmagatzematge %s.';
+$strEnglish = 'Anglès';
+$strEnglishPrivileges = ' Nota: Els noms dels privilegis del MySQL són en idioma anglès ';
+$strError = 'Errada';
+$strErrorInZipFile = 'Error en arxiu ZIP:';
+$strErrorRelationAdded = 'Error: La relació no s\'ha afegit.';
+$strErrorRelationExists = 'Error: La relació ja existeix.';
+$strErrorRenamingTable = 'Error reanomenant la taula %1$s a %2$s';
+$strErrorSaveTable = 'Error desant coordenades per al Dissenyador.';
+$strEscapeWildcards = 'Els comodins _ i % han de marcar-se amb una \ per usar-los literalment';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonià ';
+$strEvent = 'Esdevenivent';
+$strExcelEdition = 'Edició per Excel';
+$strExecuteBookmarked = 'Executa una consulta desada';
+$strExplain = 'Explicació de l\'SQL';
+$strExport = 'Exportar';
+$strExportImportToScale = 'Exporta/Importa a escala';
+$strExportMustBeFile = 'El tipus d\'exportació triat s\'ha de desar en un arxiu!';
+$strExtendedInserts = 'Insercions ampliades';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Intents erronis';
+$strField = 'Camp';
+$strFieldHasBeenDropped = 'S\'ha esborrat el camp %s';
+$strFieldInsertFromFileTempDirNotExists = 'Error movent l\'arxiu pujat, consulta la FAQ 1.11';
+$strFields = 'Camps';
+$strFieldsEnclosedBy = 'Camps englobats per';
+$strFieldsEscapedBy = 'Camps amb marca d\'escapada';
+$strFieldsTerminatedBy = 'Camps acabats per';
+$strFileAlreadyExists = 'L\'arxiu %s ja existeix al servidor, canvia el nom o marca l\'opció de sobreescriure.';
+$strFileCouldNotBeRead = 'No es pot llegir l\'arxiu';
+$strFileNameTemplateDescription = 'Aquest valor es interpretat usant %1$sstrftime%2$s, pel que podeu usar les cadenes de formateig de temps. Ademès, es faràn aquestes transformacions: %3$s. Altre text es deixarà sense variació.';
+$strFileNameTemplateDescriptionDatabase = 'nom de base de dades';
+$strFileNameTemplateDescriptionServer = 'nom de servidor';
+$strFileNameTemplateDescriptionTable = 'nom de taula';
+$strFileNameTemplate = 'Nom d\'arxiu de plantilla';
+$strFileNameTemplateRemember = 'Recordar plantilla';
+$strFiles = 'Arxius';
+$strFileToImport = 'Arxiu a importar';
+$strFixed = 'fixe';
+$strFlushPrivilegesNote = 'Nota: phpMyAdmin obté els permissos de l\'usuari directament de les taules de permissos de l\' MySQL. El contingut d\'aquestes taules pot diferir dels permissos que utilitza el servidor si s\'han fet canvis manualment. En aquest cas, es necessari %srecarregar els permissos%s abans de continuar.';
+$strFlushQueryCache = 'Buidar la memòria intermèdia de consultes';
+$strFlushTable = 'Buidar la memòria cau de la taula ("FLUSH")';
+$strFlushTables = 'Sincronitzar (tancar) totes les taules';
+$strFontSize = 'Tamany de lletra';
+$strFormat = 'Format';
+$strFormEmpty = 'Falta un valor al formulari !';
+$strFreePages = 'Pàgines lliures';
+$strFullText = 'Texts sencers';
+$strFunction = 'Funció';
+$strFunctions = 'Funcions';
+
+$strGenBy = 'Generat per';
+$strGeneralRelationFeat = 'Característiques generals de relacions';
+$strGenerate = 'Generar';
+$strGeneratePassword = 'Generar Contrasenya';
+$strGenTime = 'Temps de generació';
+$strGeorgian = 'Georgià';
+$strGerman = 'Alemany';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Permissos generals';
+$strGlobalValue = 'Valor global';
+$strGo = 'Executar';
+$strGrantOption = 'Atorgar';
+$strGreek = 'Grec';
+$strGzip = '"comprimit amb gzip"';
+
+$strHandler = 'Gestor';
+$strHasBeenAltered = 'ha estat alterada.';
+$strHaveToShow = 'Has de triar al menys una columna per mostrar';
+$strHebrew = 'Hebreu';
+$strHelp = 'Ajuda';
+$strHexForBLOB = 'Usa hexadecimal per a BLOB';
+$strHide = 'Amaga';
+$strHideShowAll = 'Amaga/Mostra tot';
+$strHideShowNoRelation = 'Amaga/Mostra taules sense relacions';
+$strHome = 'Inici';
+$strHomepageOfficial = 'Pàgina oficial del phpMyAdmin';
+$strHostEmpty = 'El nom del servidor és buit!';
+$strHost = 'Servidor';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Húngar';
+
+$strIcelandic = 'Islandès';
+$strId = 'ID';
+$strIdxFulltext = 'Text sencer';
+$strIEUnsupported = 'Internet Explorer no suporta aquesta funció.';
+$strIgnoreDuplicates = 'Ignorar files duplicades';
+$strIgnore = 'Ignora';
+$strIgnoreInserts = 'Utilitzar "ignore inserts"';
+$strImportExportCoords = 'Importa/Exporta coordenades per a esquema PDF';
+$strImportFiles = 'Importar arxius';
+$strImportFormat = 'Format de l\'arxiu importat';
+$strImport = 'Importar';
+$strImportSuccessfullyFinished = 'Importació finalitzada correctament, %d consultes executades.';
+$strIndexes = 'Indexos';
+$strIndexHasBeenDropped = 'S\'ha esborrat l\'índex %s';
+$strIndexName = 'Nom d\'índex:';
+$strIndex = 'Índex';
+$strIndexType = 'Tipus d\'índex:';
+$strIndexWarningTable = 'Problemes amb els index de la taula `%s`';
+$strInnoDBAutoextendIncrementDesc = ' La quantitat a incrementar per ampliar el tamany d\'una taula autoextensible quan estigui a punt d\'omplir-se.';
+$strInnoDBAutoextendIncrement = 'Increment d\'autoextensió';
+$strInnoDBBufferPoolSizeDesc = 'El tamany de memòria intermitja que InnoDB fa servir per desar les dades i indexos de les seves taules.';
+$strInnoDBBufferPoolSize = 'Tamany de la memòria intermitja';
+$strInnoDBDataFilePath = 'Arxius de dades';
+$strInnoDBDataHomeDirDesc = 'La part comuna de la ruta al directori per tots els arxius de dades InnoDB.';
+$strInnoDBDataHomeDir = 'Directori local de dades';
+$strInnoDBPages = 'pàgines';
+$strInnodbStat = 'Estat InnoDB';
+$strInsecureMySQL = 'El vostre arxiu de configuració té paràmetres (root sense contrasenya) que corresponen al compte privilegiat predetermitat de MySQL. El servidor MySQL està funcionant amb aquests valors, el que significa un forat de seguretat, i s\'exposa a intrusions, pel que recomanem la reparació urgent d\'aquest forat de seguretat.';
+$strInsertAsNewRow = 'Inserir com a nova fila';
+$strInsert = 'Insereix';
+$strInternalRelationAdded = 'Afegida relació interna';
+$strInternalRelations = 'Relacions internes';
+$strInUse = 'en ús';
+$strInvalidAuthMethod = 'Mètode d\'identificació incorrecte establert a la configuració:';
+$strInvalidColumnCount = 'El comptador de columnes ha de ser més gran que zero.';
+$strInvalidColumn = 'S\'ha especificat una columna incorrecta (%s)!';
+$strInvalidCSVFieldCount = 'Comptador de camps incorrecte en l\'entrada CSV a la línia %d.';
+$strInvalidCSVFormat = 'Format incorrecte a l\'entrada CSV a la línia %d.';
+$strInvalidCSVParameter = 'Paràmetre incorrecte per importació CSV: %s';
+$strInvalidDatabase = 'Base de dades incorrecte';
+$strInvalidFieldAddCount = 'Heu d\'afegir al menys un camp.';
+$strInvalidFieldCount = 'La taula ha de tenir al menys un camp.';
+$strInvalidLDIImport = 'Aquesta extensió no suporta importacions comprimides!';
+$strInvalidRowNumber = '%d no és un num. vàlid de fila.';
+$strInvalidServerHostname = 'Nom de host invàlid pel servidor %1$s. Si us plau, reviseu la configuració.';
+$strInvalidServerIndex = 'Index de servidor invàlid: "%s"';
+$strInvalidTableName = 'Nom de taula incorrecte';
+
+$strJapanese = 'Japonès';
+$strJoins = 'Unions';
+$strJumpToDB = 'Vés a la Base de Dades &quot;%s&quot;.';
+$strJustDeleteDescr = 'Els usuaris &quot;esborrats&quot; encara tindrán accés al servidor com fins ara mentre no es recarreguin els permissos.';
+$strJustDelete = 'Només esborra els usuaris de les taules de permissos.';
+
+$strKeepPass = 'No canviïs la contrasenya';
+$strKeyCache = 'Memòria intermèdia de claus';
+$strKeyname = 'Nom Clau';
+$strKill = 'Finalitzar';
+$strKnownExternalBug = 'La funcionalitat %s es veu afectada per un error conegut, veieu %s';
+$strKorean = 'Coreà';
+
+$strLandscape = 'Horitzontal';
+$strLanguage = 'Idioma';
+$strLanguageUnknown = 'Idioma desconegut: %1$s.';
+$strLatchedPages = 'Pàgines inalterables';
+$strLatexCaption = 'Titol de Taula';
+$strLatexContent = 'Contingut de la taula __TABLE__';
+$strLatexContinuedCaption = 'Continuació del Titol de taula';
+$strLatexContinued = '(continúa)';
+$strLatexIncludeCaption = 'Inclusió del titol de taula';
+$strLatexLabel = 'Etiqueta de clau';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Estructura de la taula __TABLE__';
+$strLatvian = 'Letó';
+$strLDI = 'CSV usant LOAD DATA';
+$strLDILocal = 'Usa clau LOCAL';
+$strLengthSet = 'Longitud/Valors*';
+$strLimitNumRows = 'registres per pàgina';
+$strLinesTerminatedBy = 'Línies acabades amb';
+$strLinkNotFound = 'No s\'ha trobat l\'enllaç ';
+$strLinksTo = 'Enllaços a';
+$strLithuanian = 'Lituà ';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Ubicació de l\'arxiu de text';
+$strLogin = 'Identificació';
+$strLoginInformation = 'Informació d\'Identificació';
+$strLogout = 'Sortir';
+$strLogPassword = 'Contrasenya:';
+$strLogServer = 'Servidor';
+$strLogUsername = 'Nom d\'Usuari:';
+$strLongOperation = 'Aquesta operació pot ser bastant llarga. Procedim igualment?';
+
+$strMaxConnects = 'max. connexions alhora';
+$strMaximalQueryLength = 'Tamany màxim de la consulta creada';
+$strMaximumSize = 'Tamany Màxim: %s%s';
+$strMbExtensionMissing = 'No s\'ha trobat l\'extensió de PHP mbstring i sembla que feu servir un joc de caracters multibyte. Sense la extensió mbstring, phpMyAdmin és incapaç de dividir cadenes de text correctament i pot generar resultats inesperats.';
+$strMbOverloadWarning = 'Teniu activada la funció mbstring.func_overload a la configuració del vostre PHP. Aquesta opció és incompatible amb phpMyAdmin i pot provocar la perdua de dades!';
+$strMIME_available_mime = 'Tipus MIME disponibles';
+$strMIME_available_transform = 'Transformacions disponibles';
+$strMIME_description = 'Descripció';
+$strMIME_MIMEtype = 'Tipus MIME';
+$strMIME_nodescription = 'No hi ha cap descripció disponible per a aquesta transformació.<br />Demana a l\'autor qué fa %s.';
+$strMIME_transformation_note = 'Per veure una llista d\'opcions de transformació disponibles i els seus tipus MIME de transformació, prem a %sdescripcions de transformació%s';
+$strMIME_transformation_options_note = 'Entra els valors per a transformar utilitzant aquest format: \'a\', 100, b,\'c\'...<br />Si mai necessites escriure una barra invertida ("\") o un apòstrof ("\'") entre aquests valors, posa una barra invertida devant (per exemple \'\\\\xyz\' o \'a\\\'b\').';
+$strMIME_transformation_options = 'Opcions de Transformació';
+$strMIME_transformation = 'Transformació del Navegador';
+$strMIMETypesForTable = 'TIPUS MIME PER LA TAULA';
+$strMIME_without = 'Els tipus MIME en cursiva no tenen funcions de transformació a part';
+$strModifications = 'Les modificacions han estat desades';
+$strModifyIndexTopic = 'Modifica un índex';
+$strModify = 'Modificar';
+$strMoveMenu = 'Menú Mou';
+$strMoveTable = 'Mou taula a (base-de-dades<b>.</b>taula):';
+$strMoveTableOK = 'Taula %s moguda a %s.';
+$strMoveTableSameNames = 'No es pot moure la taula sobre ella mateixa!';
+$strMultilingual = 'multilingüe';
+$strMyISAMDataPointerSizeDesc = 'El tamany per defecte de l\'apuntador en bytes, usat en CREATE TABLE per a taules MyISAM quan no s\'especifica l\'opció MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Tamany de l\'apuntador de dades';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Si l\'arxiu temporal usat per creació ràpida d\'un índex MyISAM pot ser més gran que usant el cau principal per la quantitat especificada aquí, es recomana fer servir el cau principal.';
+$strMyISAMMaxExtraSortFileSize = 'Màxim tamany per arxius temporals en creació d\'índex';
+$strMyISAMMaxSortFileSizeDesc = 'El tamany màxim per arxius temporals de MySQL es permet usar-lo mentre es torna acrear un índex MyISAM (mentre es fa un REPAIR TABLE, ALTER TABLE, o LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Tamany màxim per arxius temporals de classificació';
+$strMyISAMRecoverOptionsDesc = 'El modus per a recuperació automàtica en taules MyISAM corruptes, com s\'estableix via l\'opció d\'inici del servidor --myisam-recover.';
+$strMyISAMRecoverOptions = 'Modus de recuperació automàtic';
+$strMyISAMRepairThreadsDesc = 'Si aquest valor és més gran que 1, els índexos de taules MyISAM es creen en paralel (cada índex en el seu propi fil) mentre s\'executa el procés de reparació per classificació.';
+$strMyISAMRepairThreads = 'Reparar fils';
+$strMyISAMSortBufferSizeDesc = 'Ârea assignada per classificar índexos MyISAM mentre es fa un REPAIR TABLE o mentre es creen índexos amb CREATE INDEX o ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Tamany de l\'àrea de classificació';
+$strMySQLCharset = 'Joc de caràcters de MySQL';
+$strMysqlClientVersion = 'Versió del client MySQL';
+$strMySQLConnectionCollation = 'Ordenació de la connexió MySQL';
+$strMysqlLibDiffersServerVersion = 'La teva llibreria MySQL de PHP MySQL versió %s és diferent del teu servidor MySQL versió %s. Aixó pot provocar comportaments inesperats.';
+$strMySQLSaid = 'MySQL diu: ';
+$strMySQLShowProcess = 'Mostrar processos';
+
+$strName = 'Nom';
+$strNext = 'Següent';
+$strNoActivity = 'Sense activitat des de fa %s segons o més, entra de nou';
+$strNoDatabases = 'No hi ha Bases de Dades';
+$strNoDatabasesSelected = 'No s\'han triat Bases de dades.';
+$strNoDataReceived = 'No s\'han rebut dades per importar. O bé no s\'ha especificat un nom d\'arxiu, o el tamany de l\'arxiu es més gran que el permés per la configuració del vostre PHP. Veieu PFC(FAQ) 1.16.';
+$strNoDescription = 'Sense Descripció';
+$strNoDetailsForEngine = 'No hi ha informació detallada de l\'estat disponible per a aquest motor d\'emmagatzematge.';
+$strNoDropDatabases = 'Instrucció "DROP DATABASE" desactivada.';
+$strNoExplain = 'Saltar l\'explicació de l\'SQL';
+$strNoFilesFoundInZip = 'No s\'han trobat arxius dins de l\'arxiu ZIP!';
+$strNoFrames = 'phpMyAdmin és més fàcil amb un navegador que <b>suporti marcs (frames)</b>.';
+$strNoIndex = 'No s\'ha definit l\'índex!';
+$strNoIndexPartsDefined = 'No s\'han definit parts de l\'índex!';
+$strNoModification = 'Sense canvis';
+$strNone = 'Res';
+$strNo = 'No';
+$strNoOptions = 'Aquest format no té opcions';
+$strNoPassword = 'Sense contrasenya';
+$strNoPermission = 'El servidor web no té permissos per a desar l\'arxiu %s.';
+$strNoPhp = 'Sense codi PHP';
+$strNoPrivileges = 'Sense permissos';
+$strNoRights = 'No tens prou permissos per visualitzar aquesta informació!';
+$strNoRowsSelected = 'No s\'han triat arxius';
+$strNoSpace = 'No hi ha prou espai per desar l\'arxiu %s.';
+$strNoTablesFound = 'Base de dades sense taules.';
+$strNoThemeSupport = 'No hi ha suport pels temes, si et plau comprova la teva configuració i/o els teus temes al directori %s.';
+$strNotNumber = 'Aquest valor no és un número!';
+$strNotOK = 'Incorrecte';
+$strNotSet = 'Taula <b>%s</b> no trobada o no definida a %s';
+$strNoUsersFound = 'No s\'han trobat usuaris.';
+$strNoValidateSQL = 'Saltar la Validació de l\'SQL';
+$strNull = 'Nul';
+$strNumberOfFields = 'Nombre de camps';
+$strNumberOfTables = 'Nombre de taules';
+$strNumSearchResultsInTable = '%s resultat(s) a la taula <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> resultat(s)';
+$strNumTables = 'Taules';
+
+$strOK = 'Correcte';
+$strOpenDocumentSpreadsheet = 'Full de càlcul Open Document';
+$strOpenDocumentText = 'Text format Open Document';
+$strOpenNewWindow = 'Obrir nova finestra de phpMyAdmin';
+$strOperations = 'Operacions';
+$strOperator = 'Operador';
+$strOptimizeTable = 'Optimitza la taula';
+$strOptions = 'Opcions';
+$strOr = 'O';
+$strOverhead = 'Defragmentat';
+$strOverwriteExisting = 'Sobreescriure arxiu(s) existent(s)';
+
+$strPageNumber = 'Número de pàgina:';
+$strPagesToBeFlushed = 'Pàgines per a purgar';
+$strPaperSize = 'Tamany de paper';
+$strPartialImport = 'Importació parcial';
+$strPartialText = 'Texts Parcials';
+$strPasswordChanged = 'La contrasenya per a %s s\'ha canviat correctament.';
+$strPassword = 'Contrasenya';
+$strPasswordEmpty = 'La contrasenya és buida!';
+$strPasswordHashing = 'Contrasenya Hashing';
+$strPasswordNotSame = 'Les contrasenyes no coincideixen!';
+$strPdfDbSchema = 'Esquema de la base de dades "%s" - Pàgina %s';
+$strPdfInvalidTblName = 'La taula "%s" no existeix!';
+$strPdfNoTables = 'No hi ha taules';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Crea un llistat que conté les dades d\'una sola taula)';
+$strPDFReportTitle = 'Títol de llistat';
+$strPerHour = 'per hora';
+$strPerMinute = 'per minut';
+$strPerSecond = 'per segon';
+$strPersian = 'Persa';
+$strPhoneBook = 'Libreta d\' adreces';
+$strPhp = 'Crear codi PHP';
+$strPHPVersion = 'PHP versió';
+$strPleaseSelectPrimaryOrUniqueKey = 'Tria la clau principal o una clau única';
+$strPmaDocumentation = 'Documentació de phpMyAdmin';
+$strPmaUriError = 'La directiva <tt>$cfg[\'PmaAbsoluteUri\']</tt> HA d\'estar a l\'arxiu de configuració!';
+$strPolish = 'Polac';
+$strPortrait = 'Vertical';
+$strPos1 = 'Inici';
+$strPrevious = 'Anterior';
+$strPrimaryKeyHasBeenDropped = 'S\'ha esborrat la clau principal';
+$strPrimaryKeyName = 'El nom de la clau principal ha de ser ... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>ha de ser</b> el nom i <b>només</b> el nom de la clau principal!)';
+$strPrimary = 'Principal';
+$strPrint = 'Imprimir';
+$strPrintViewFull = 'Vista d\'impresió (amb texts sencers)';
+$strPrintView = 'Imprimir vista';
+$strPrivDescAllPrivileges = 'Inclou tots els permissos excepte GRANT (atorgar).';
+$strPrivDescAlter = 'Permet alterar l\'estructura de taules existents.';
+$strPrivDescAlterRoutine = 'Permet alterar i esborrar rutines enmagatzemades.';
+$strPrivDescCreateDb = 'Permet crear noves bases de dades i taules.';
+$strPrivDescCreateRoutine = 'Permet crear rutines enmgatzemades.';
+$strPrivDescCreateTbl = 'Permet crear noves taules.';
+$strPrivDescCreateTmpTable = 'Permet crear taules temporals.';
+$strPrivDescCreateUser = 'Permet crear, esborrar i reanomenar comptes d\'usuari.';
+$strPrivDescCreateView = 'Permet crear noves vistes.';
+$strPrivDescDelete = 'Permet esborrar dades.';
+$strPrivDescDropDb = 'Permet eliminar bases de dades i taules.';
+$strPrivDescDropTbl = 'Permet eliminar taules.';
+$strPrivDescExecute5 = 'Permet executar rutines enmagatzemades.';
+$strPrivDescExecute = 'Permet executar processos enmagatzemats (stored procedures); No té efecte en aquesta versió de MySQL.';
+$strPrivDescFile = 'Permet importar i exportar dades amb arxius externs.';
+$strPrivDescGrant = 'Permet afegir usuaris i permissos sense tenir que recarregar les taules de permissos.';
+$strPrivDescIndex = 'Permet crear i eliminar indexos.';
+$strPrivDescInsert = 'Permet inserir i modificar dades.';
+$strPrivDescLockTables = 'Permet bloquejar taules per l\'actual fil d\'execució.';
+$strPrivDescMaxConnections = 'Limita el numero de noves connexions que pot obrir l\'usuari per hora.';
+$strPrivDescMaxQuestions = 'Limita el numero de consultes que pot enviar l\'usuari al servidor per hora.';
+$strPrivDescMaxUpdates = 'Limita el numero d\'ordres que pot executar l\'usuari canviant qualsevol taula o base de dades per hora.';
+$strPrivDescMaxUserConnections = 'Límita el nombre de connexions simultànies que l\'usuari pot tenir.';
+$strPrivDescReferences = 'No té efecte en aquesta versió de MySQL.';
+$strPrivDescReload = 'Permet recarregar les configuracions del servidor i buidar les seves memòries cau.';
+$strPrivDescReplClient = 'Dona el dret a l\'usuari de preguntar quins servidors mestres / esclaus hi ha.';
+$strPrivDescReplSlave = 'Es necessari per a la replicació en servidors esclaus.';
+$strPrivDescSelect = 'Permet llegir dades.';
+$strPrivDescShowDb = 'Dona accés a la llista completa de bases de dades.';
+$strPrivDescShowView = 'Permet fer consultes de tipus SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Permet parar el servidor.';
+$strPrivDescSuper = 'Permet connectar, encara que s\'hagi arribat al máxim numero de connexions permés; Es necessari per moltes operacions d\'administració com ara establir variables globals o bé cancel.lar fils d\'execució d\'altres usuaris.';
+$strPrivDescUpdate = 'Permet canviar dades.';
+$strPrivDescUsage = 'Sense permissos.';
+$strPrivileges = 'Permissos';
+$strPrivilegesReloaded = 'Els permissos s\'han recarregat correctament.';
+$strProcedures = 'Procediments';
+$strProcesses = 'Processos';
+$strProcesslist = 'Llista de processos';
+$strProfiling = 'Perfils';
+$strProtocolVersion = 'Versió del protocol';
+$strPutColNames = 'Posa els noms de camp a la primera fila';
+
+$strQBE = 'Consulta segons exemple';
+$strQBEDel = 'Sup';
+$strQBEIns = 'Ins';
+$strQueryCache = 'Memòria cau de consultes';
+$strQueryFrame = 'Finestra de la Consulta';
+$strQueryOnDb = 'Consulta SQL a la base de dades <b>%s</b>:';
+$strQueryResultsOperations = 'Operacions de resultats de consultes';
+$strQuerySQLHistory = 'Historial SQL';
+$strQueryStatistics = '<b>Estadístiques de Consultes</b>: Des de l\'últim inici, s\'han enviat %s consultes al servidor.';
+$strQueryTime = 'La consulta tarda %s seg';
+$strQueryType = 'Tipus de consulta';
+$strQueryWindowLock = 'No sobreescriure aquesta consulta des de fora de la finestra';
+
+$strReadRequests = 'Peticions de lectura';
+$strReceived = 'Rebut';
+$strRecommended = 'recomanat';
+$strRecords = 'Registres';
+$strReferentialIntegrity = 'Comprova la integritat referencial:';
+$strRefresh = 'Actualitzar';
+$strRelationalSchema = 'Esquema Relacional';
+$strRelationDeleted = 'Relació esborrada';
+$strRelationNotWorking = 'Les característiques addicionals per treballar amb taules enllaçades s\'han desactivat. Per saber perquè prem a %saquí%s.';
+$strRelationsForTable = 'RELACIONS DE LA TAULA';
+$strRelations = 'Relacions';
+$strRelationView = 'Vista de Relacions';
+$strReloadingThePrivileges = 'Recarregant permissos';
+$strReloadPrivileges = 'Recarregar permissos';
+$strReload = 'Recarregar';
+$strRemoveSelectedUsers = 'Treure els usuaris triats';
+$strRenameDatabaseOK = 'Base de dades %s reanomenada a %s';
+$strRenameTableOK = 'La taula %s ha canviat de nom. Ara es diu %s';
+$strRenameTable = 'Reanomenar les taules a';
+$strRepairTable = 'Reparar taula';
+$strReplaceNULLBy = 'Canvía NULL per';
+$strReplaceTable = 'Canviar les dades de la taula per l\'arxiu ';
+$strReplication = 'Replicació';
+$strReset = 'Esborrar';
+$strResourceLimits = 'Limit de recursos';
+$strRestartInsertion = 'Reiniciar l\'inserció amb %s files';
+$strReType = 'Reescriure';
+$strRevokeAndDelete = 'Denega tots els permissos actius dels usuaris i els esborra després.';
+$strRevokeAndDeleteDescr = 'Els usuaris encara tindran el permís USAGE fins que es recarreguin els permissos.';
+$strRevokeMessage = 'Has tret els permissos per %s';
+$strRevoke = 'Treure';
+$strRomanian = 'Romanés';
+$strRoutineReturnType = 'Tipus de retorn';
+$strRoutines = 'Rutines';
+$strRowLength = 'Tamany de fila';
+$strRows = 'Fila';
+$strRowsFrom = 'Files començant des de';
+$strRowSize = 'Mida de fila ';
+$strRowsModeFlippedHorizontal = 'horitzontal (capçaleres rotades)';
+$strRowsModeHorizontal = 'horitzontal';
+$strRowsModeOptions = ' en mode %s i repeteix capçaleres després de %s cel·les ';
+$strRowsModeVertical = 'vertical';
+$strRowsStatistic = 'Estadística de files';
+$strRunning = 'funcionant a %s';
+$strRunQuery = 'Executa consulta';
+$strRunSQLQuery = 'Executa consulta/s SQL a la Base de Dades %s';
+$strRunSQLQueryOnServer = 'Executar consulta/es SQL al servidor %s';
+$strRussian = 'Rus';
+
+$strSave = 'Desar';
+$strSaveOnServer = 'Desar al servidor al directori %s';
+$strSavePosition = 'Desar posició';
+$strScaleFactorSmall = 'El factor de l\'escala és massa petit per posar l\'esquema en una pàgina';
+$strSearch = 'Cercar';
+$strSearchFormTitle = 'Cercar a la base de dades';
+$strSearchInTables = 'A la(les) taula(es):';
+$strSearchNeedle = 'Paraula(es) o valor(s) a cercar (comodí: "%"):';
+$strSearchOption1 = 'al menys una d\'aquestes paraules';
+$strSearchOption2 = 'Totes les paraules';
+$strSearchOption3 = 'La frase exacta';
+$strSearchOption4 = 'com a expressió regular';
+$strSearchResultsFor = 'Resultats de la recerca per a "<i>%s</i>" %s:';
+$strSearchType = 'Trobat:';
+$strSecretRequired = 'L\'arxiu de configuració necessita ara una frase de pas secreta (blowfish_secret).';
+$strSelectADb = 'Tria una Base de Dades';
+$strSelectAll = 'Tria Tot';
+$strSelectBinaryLog = 'Tria el registre binari per veure';
+$strSelectFields = 'Tria els camps (un com a mínim):';
+$strSelectForeignKey = 'Triar clau externa';
+$strSelectNumRows = 'en consulta';
+$strSelectReferencedKey = 'Tria la clau referenciada';
+$strSelectTables = 'Tria Taules';
+$strSend = 'enviar';
+$strSent = 'Enviat';
+$strServerChoice = 'Elecció de Servidor';
+$strServerNotResponding = 'El servidor no respon';
+$strServer = 'Servidor';
+$strServers = 'Servidors';
+$strServerStatusDelayedInserts = 'Insercions demorades';
+$strServerStatus = 'Informació d\'execució';
+$strServerStatusUptime = 'Aquest servidor MySQL és en marxa durant %s. Es va iniciar en %s.';
+$strServerTabVariables = 'Variables';
+$strServerTrafficNotes = '<b>Ocupació de servidor</b>: Aquestes taules mostren la ocupació de la xarxa d\'aquest servidor MySQL des de l\'últim inici.';
+$strServerVars = 'Variables i configuracions del servidor';
+$strServerVersion = 'Versió del servidor';
+$strSessionStartupErrorGeneral = 'No es pot iniciar una sessió sense errors, comprova els error obtinguts al teu registre de PHP i/o servidor web i configura el teu entorn de PHP acuradament.';
+$strSessionValue = 'Valor de sessió';
+$strSetEnumVal = 'Si el tipus de camp és "enum" o "set", entra els valors fent servir el format: \'a\',\'b\',\'c\'...<br />Si mai necessites escriure la barra invertida ("\") o la cometa simple ("\'") abans d\'aquests valors, escriu barres invertides (per exemple \'\\\\xyz\' o \'a\\\'b\').';
+$strShowAll = 'Mostra tot';
+$strShowColor = 'Mostra color';
+$strShowDatadictAs = 'Format del Diccionari de Dades';
+$strShowFullQueries = 'Mostra Consultes completes';
+$strShowGrid = 'Mostra graella';
+$strShowHideLeftMenu = 'Menú esquerre Mostra/Amaga';
+$strShowingBookmark = 'Mostrant consultes desades';
+$strShowingPhp = 'Mostrant com a codi PHP';
+$strShowingRecords = 'Mostrant registres: ';
+$strShowingSQL = 'Mostrant consulta SQL';
+$strShow = 'Mostra';
+$strShowOpenTables = 'Mostrar taules obertes';
+$strShowPHPInfo = 'Mostra informació de PHP';
+$strShowSlaveHosts = 'Mostrar servidors esclaus';
+$strShowSlaveStatus = 'Mostrar estat d\'esclaus';
+$strShowStatusBinlog_cache_disk_useDescr = 'El nombre de transaccions que han fet servir el registre binari temporal però que excedeixen el valor de binlog_cache_size i usen un arxiu temporal per desar elements de la transacció.';
+$strShowStatusBinlog_cache_useDescr = 'El nombre de transaccions que han fet servir el registre binari temporal.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'El nombre de taules temporals en disc creades automàticament per el servidor mentre executa instruccions. Si Created_tmp_disk_tables és gran, potser vols incrementar el valor de tmp_table_size per fer que les taules temporals treballin en memòria en lloc de treballar en disc.';
+$strShowStatusCreated_tmp_filesDescr = 'Arxius temporals creats per mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'El nombre de taules temporals creades en memòria per el servidor mentre executa instruccions.';
+$strShowStatusDelayed_errorsDescr = 'El nombre de files escrites amb INSERT DELAYED en les que s\'ha detectat quelcom error (possile clau duplicada).';
+$strShowStatusDelayed_insert_threadsDescr = 'El nombre de gestors de fils de INSERT DELAYED en ús. Cada taula diferent ón s\'usa INSERT DELAYED té el seu propi fil.';
+$strShowStatusDelayed_writesDescr = 'El nombre de files escrites amb INSERT DELAYED.';
+$strShowStatusFlush_commandsDescr = 'El nombre d\'instruccions FLUSH executades.';
+$strShowStatusHandler_commitDescr = 'El nombre d\'instruccions COMMIT internes.';
+$strShowStatusHandler_deleteDescr = 'El nombre de vegades que s\'ha esborrat una fila d\'una taula.';
+$strShowStatusHandler_discoverDescr = 'El servidor MySQL pot preguntar al motor d\'enmagatzemament NDB Cluster si coneix quelcom taula amb el nom especificat. Aixó s\'anomena descobriment. Handler_discover indica el nombre de taules descobertes.';
+$strShowStatusHandler_read_firstDescr = 'El nombre de vegades que s\'ha llegit la primera entrada des d\'un índex. Si és alt, suggereix que el servidor està fent moltes cerques d\'índex complet; per exemple, SELECT col1 FROM taula, assumint que col1 és indexat.';
+$strShowStatusHandler_read_keyDescr = 'El nombre de peticions basades en una clau per llegir una fila. Si és alt, és una bona indicació de que les consultes i taules estàn indexades adequadament.';
+$strShowStatusHandler_read_nextDescr = 'El nombre de peticions per llegir la següent fila en l\'ordre de la clau. Aixó s\'incrementa si s\'està consultant una columna d\'index amb limitació de rang o si s\'està fent una cerca d\'index.';
+$strShowStatusHandler_read_prevDescr = 'El nombre de peticions per llegir la fila anterior en l\'ordre de la clau. Aquest mètode de lectura s\'utilitza principalment per optimizar ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'El nombre de peticions per llegir una fila basada en una posició fixa. Aixó és alt si es fan moltes consultes que requereixen ordenació del resultat. Probablement tens moltes consultes que fan que MySQL cerqui les taules senceres o bé hi ha joins que no fan servir les claus adequadament.';
+$strShowStatusHandler_read_rnd_nextDescr = 'El nombre de peticions per llegir la següent fila a l\'arxiu de dades. Aixó és alt si es fan moltes cerques de taula. Generalment, suggereix que les taules no estàn indexades adequadament o bé les consultes no estàn fetes per aprofitar les avantatges dels índexos definits.';
+$strShowStatusHandler_rollbackDescr = 'El nombre d\'instruccions ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'El nombre de peticions per a actualitzar una fila en una taula.';
+$strShowStatusHandler_writeDescr = 'El nombre de peticions per a insertar una fila en una taula.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'El nombre de pàgines contenint dades (brutes o netes).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'El nombre de pàgines actualment brutes.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'El nombre de pàgines a la memòria intermitja que s\'han demanat per ser actualitzades.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'El nombre de pàgines lliures.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'El nombre de pàgines bloquejades a la memòria intermitja de InnoDB. Aquestes pàgines s\'estàn llegint o escrivint actualment o no es poden actualitzar o esborrar per qualsevol altra raó.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'El nombre de pàgines en ús degut a que s\'han marcat per tasques administratives com a bloqueixos de files o l\'index del hash adaptatiu. Aquest valor es pot calcular com Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Tamany total de la memòria intermitja, en pàgines.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'El nombre de lectures aleatòries d\'InnoDB iniciades. Aixó passa quan una consulta cerca en una gran part de una taula però en ordre aleatori.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'El nombre de lectures secuencials d\'InnoDB iniciades. Aixó passa quan InnoDB fa una cerca secuencial a la taula sencera.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'El nombre de peticions de lectures lògiques que InnoDB ha fet.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'El nombre de peticions de lectures lògiques que InnoDB no pot satisfer de la memòria intermitja i ha de fer lectures de pàgines individuals.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalment, les escritures a la memòria intermitja d\'InnoDB es fan en segon pla. En canvi, si és necessari llegir o crear una pàgina i no hi ha pàgines netes disponibles, fa falta esperar a que primer s\'actualitzin pàgines. Aquest comptador mostra instàncies d\'aquestes esperes. Si el tamany de la memòria intermitja és adequat, aquest valor sól ser petit.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'El nombre d\'escriptures fetes a la memòria intermitja d\'InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'El nombre d\'operacions fsync() aproximades.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'El nombre actual d\'operacions fsync() pendents.';
+$strShowStatusInnodb_data_pending_readsDescr = 'El nombre actual de lectures pendents.';
+$strShowStatusInnodb_data_pending_writesDescr = 'El nombre actual d\'escritures pendents.';
+$strShowStatusInnodb_data_readDescr = 'La quantitat aproximada de dades llegides, en bytes.';
+$strShowStatusInnodb_data_readsDescr = 'El nombre total de dades llegides.';
+$strShowStatusInnodb_data_writesDescr = 'El nombre total de dades escrites.';
+$strShowStatusInnodb_data_writtenDescr = 'La quantitat aproximada de dades escrites, en bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'El nombre de dobles escriptures realitzades i el nombre de pàgines escrites per a aquest propòsit.';
+$strShowStatusInnodb_dblwr_writesDescr = 'El nombre de dobles escriptures realitzades i el nombre de pàgines escrites per a aquest propòsit.';
+$strShowStatusInnodb_log_waitsDescr = 'El nombre d\'esperes fetes degut al petit tamany de la memòria intermèdia del registre i a esperar a que s\'actualitzés abans de continuar.';
+$strShowStatusInnodb_log_write_requestsDescr = 'El nombre de peticions d\'escriptura al registre.';
+$strShowStatusInnodb_log_writesDescr = 'El nombre d\'escriptures físiques a l\'arxiu de registre.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'El nombre d\'escriptures fsync fetes a l\'arxiu de registre.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'El nombre d\'operacions fsync pendents a l\'arxiu de registre.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Escriptures pendents a l\'arxiu de registre.';
+$strShowStatusInnodb_os_log_writtenDescr = 'El nombre de bytes escrits a l\'arxiu de registre.';
+$strShowStatusInnodb_pages_createdDescr = 'El nombre de pàgines creades.';
+$strShowStatusInnodb_page_sizeDescr = 'El tamany de pàgina d\'InnoDB compilat (per defecte 16KB). Bastants valors es comptabilitzen en pàgines; el tamany de pàgina permet convertir-lo fàcilment a bytes.';
+$strShowStatusInnodb_pages_readDescr = 'El nombre de pàgines llegides.';
+$strShowStatusInnodb_pages_writtenDescr = 'El nombre de pàgines escrites.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'El nombre de bloquejos de files actualment en espera.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'El temps promig en fer un bloqueig de fila, en milisegons.';
+$strShowStatusInnodb_row_lock_timeDescr = 'El temps total emprat en fer bloquejos de files, en milisegons.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'El temps màxim en fer un bloqueig de fila, en milisegons.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'El nombre de vegades que un bloqueig de fila ha estat en espera.';
+$strShowStatusInnodb_rows_deletedDescr = 'El nombre de files esborrades de taules InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'El nombre de files afegides a taules InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'El nombre de files llegides de taules InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'El nombre de files actualitzades en taules InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'El nombre de bloquejos de clau a la memòria cau de les claus que han canviat però que encara no han estat actualitzades a disc. Es coneix com a Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'El nombre de blocs no usats a la memòria cau de les claus. Aquest valor es pot fer servir per saber quànta memòria cau de les claus s\'utilitza.';
+$strShowStatusKey_blocks_usedDescr = 'El nombre de blocs usats a la memòria cau de les claus. Aquest valor és la marca indicativa del màxim nombre de blocs usats mai a l\'hora.';
+$strShowStatusKey_read_requestsDescr = 'El nombre de peticions de lectura d\'un bloc de clau de la memòria cau.';
+$strShowStatusKey_readsDescr = 'El nombre de lectures físiques d\'un bloc de clau del disc. Si Key_reads és gran, llavors el valor de key_buffer_size probablement és massa petit. El rati de la memòria cau es pot calcular com Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'El nombre de peticions d\'escriptura d\'un bloc de clau a la memòria cau.';
+$strShowStatusKey_writesDescr = 'El nombre d\'escriptures físiques d\'un bloc de clau a disc.';
+$strShowStatusLast_query_costDescr = 'El cost total de la darrera consulta compilada tal com el valora l\'optimitzador de consultes. És útil per comparar el cost de diferents plans de consulta per a la mateixa consulta. El valor 0 vol dr que encara no s\'ha compilat cap consulta.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'El nombre de files esperant a ser escrites en cues INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'El nombre de taules que han estat obertes. Si el nombre de taules obertes és gran, probablement el valor de memòria cau de taula és massa petit.';
+$strShowStatusOpen_filesDescr = 'El nombre d\'arxius que estàn oberts.';
+$strShowStatusOpen_streamsDescr = 'El nombre de fluxes que estàn oberts (usats principalment per a registre).';
+$strShowStatusOpen_tablesDescr = 'El nombre de taules que estàn obertes.';
+$strShowStatusQcache_free_blocksDescr = 'El nombre de blocs de memòria lliures a la memòria cau de consultes.';
+$strShowStatusQcache_free_memoryDescr = 'La quantitat de memòria liure per a memòria cau de consultes.';
+$strShowStatusQcache_hitsDescr = 'El nombre d\'encerts a memòria cau.';
+$strShowStatusQcache_insertsDescr = 'El nombre de consultes afegides a la memòria cau.';
+$strShowStatusQcache_lowmem_prunesDescr = 'El nombre de consultes tretes de la memòria cau per alliberar memòria per deixar lloc a noves consultes. Aquesta informació pot ajudar a ajustar el tamany de la memòria cau de consultes. La memòria cau de consultes utilitza l\'estratègia menys recentment usada(least recently used - LRU) per decidir quines consultes treure de la memòria cau.';
+$strShowStatusQcache_not_cachedDescr = 'El nombre de consultes no enviades a la memòria cau (no enviables, o no enviades degut al paràmetre query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'El nombre de consultes registrades a la memòria cau.';
+$strShowStatusQcache_total_blocksDescr = 'El nombre total de blocs a la memòria cau de consultes.';
+$strShowStatusReset = 'Reiniciar';
+$strShowStatusRpl_statusDescr = 'L\'estat de la replicació a prova d\'errades (no implementat encara).';
+$strShowStatusSelect_full_joinDescr = 'El nombre de joins que no usen indexos. Si aquest valor no és 0, s\'haurien de comprovar acuradament els indexos de les taules.';
+$strShowStatusSelect_full_range_joinDescr = 'El nombre de joins que han usat un rang de cerca en una taula de referència.';
+$strShowStatusSelect_range_checkDescr = 'El nombre de joins sense claus que comproven per l\'ús de claus després de cada fila. (Si aquiest valor no és 0, s\'haurien de comprovar acuradament els indexos de les taules.)';
+$strShowStatusSelect_rangeDescr = 'El nombre de joins que han usat rangs a la primera taula. (Normalment no és crític si el valor no és molt gran.)';
+$strShowStatusSelect_scanDescr = 'El nombre de joins que han fet una cerca a la primera taula sencera.';
+$strShowStatusSlave_open_temp_tablesDescr = 'El nombre de taules temporals obertes actualment pel fil esclau de SQL.';
+$strShowStatusSlave_retried_transactionsDescr = 'Nombre total (des de l\'arrencada) de vegades que el fil esclau de replicació de SQL ha recuperat transaccions.';
+$strShowStatusSlave_runningDescr = 'Aixó és ACTIU (ON) si aquest servidor és un esclau que està connectat a un mestre.';
+$strShowStatusSlow_launch_threadsDescr = 'El nombre de fils que han tardat més que slow_launch_time segons a crear.';
+$strShowStatusSlow_queriesDescr = 'El nombre de consultes que han tardat més que long_query_time segons.';
+$strShowStatusSort_merge_passesDescr = 'El nombre de passades d\'intercal.lació que l\'algorisme de classificació ha hagut de fer. Si aquest valor és gran, s\'hauria de considerar incrementar el valor de la variable de sistema sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'El nombre de classificacions fetes amb rangs.';
+$strShowStatusSort_rowsDescr = 'El nombre de files classificades.';
+$strShowStatusSort_scanDescr = 'El nombre de classificacions fetes cercant la taula.';
+$strShowStatusTable_locks_immediateDescr = 'El nombre de vegades que un bloqueig de taula s\'ha fet immediatament.';
+$strShowStatusTable_locks_waitedDescr = 'El nombre de vegades que un bloqueig de taula no s\'ha pogut fer immediatament i s\'ha necessitat una espera. Si aixó és alt, i es detecten problemes de rendiment, s\'hauria de considerar l\'optimització de les consultes, o també dividir la taula o taules en vàries o bé utilitzar la replicació.';
+$strShowStatusThreads_cachedDescr = ' El nombre de fils a la memòria cau de fil. L\'index de memòria cau es pot comptar com Threads_created/Connections. Si aquest valor és vermell s\'hauria d\'augmentar el valor de thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'El nombre de connexions obertes simultàniament.';
+$strShowStatusThreads_createdDescr = ' El nombre de fils creats per gestionar connexions. Si Threads_created és gran, pots voler augmentar el valor de thread_cache_size. (Normalment això no dóna una millora de rendiment notable si es té una bona aplicació de fil.)';
+$strShowStatusThreads_runningDescr = 'El nombre de fils que no estàn dormint.';
+$strShowTableDimension = 'Mostra dimensió de les taules';
+$strShowTables = 'Mostra taules';
+$strShowThisQuery = ' Mostra aquesta consulta de nou ';
+$strSimplifiedChinese = 'Xinés Simplificat';
+$strSingly = '(només)';
+$strSize = 'Mida';
+$strSkipQueries = 'Nombre de registres(consultes) a saltar des de l\'inici';
+$strSlovak = 'Eslovac';
+$strSlovenian = 'Eslové';
+$strSmallBigAll = 'Tot Petit/Gran';
+$strSnapToGrid = 'Aliniar a la graella';
+$strSocketProblem = '(o el sòcol del servidor local MySQL no està configurat correctament)';
+$strSortByKey = 'Classifica per la clau';
+$strSort = 'Classificació';
+$strSorting = 'Classificant';
+$strSpaceUsage = 'Utilització d\'espai';
+$strSpanish = 'Espanyol';
+$strSplitWordsWithSpace = 'Paraules separades per un espai (" ").';
+$strSQLCompatibility = 'Modus de compatibilitat SQL';
+$strSQLExportType = 'Tipus d\' Exportació';
+$strSQLParserBugMessage = 'És possible que hagueu trobat un error a l\'intèrpret SQL. Si us plau, comproveu la sintaxi de la consulta i verifiqueu que les cometes estiguin al seu lloc i facin parelles. Un altra possible causa de l\'errada és que estigueu pujant un arxiu amb dades binàries per fora de l\'àrea de text delimitada. També podeu provar la consulta a la interfície de comandes de MySQL. La sortida següent generada pel servidor MySQL, si n\'hi ha, pot ajudar-vos a diagnosticar el problema. Si encara teniu problemes o si l\'intèrpret falla i l\'interfície de comandes funciona, reduïu la consulta a la part de l\'SQL que produeix l\'errada, i envieu un informe d\'error amb la cadena de dades de la secció de TALL indicada avall:';
+$strSQLParserUserError = 'Sembla que hi ha un error a la consulta SQL. La sortida següent generada pel servidor MySQL, si n\'hi ha, pot ajudar-vos a diagnosticar el problema';
+$strSQLQuery = 'crida SQL';
+$strSQLResult = 'Resultat SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identificador Incorrecte';
+$strSQPBugUnclosedQuote = 'Cometa no tancada';
+$strSQPBugUnknownPunctuation = 'Signe de puntuació desconegut';
+$strStandInStructureForView = 'Stand-in estructura per a vista';
+$strStatCheckTime = 'Darrera comprovació';
+$strStatCreateTime = 'Creació';
+$strStatement = 'Sentències';
+$strStatisticsOverrun = 'En un servidor ocupat, els comptadors de bytes poden excedir el seu tamany, llavors les estadístiques donades pel servidor MySQL poden ser incorrectes.';
+$strStatUpdateTime = 'Darrera actualització';
+$strStatus = 'Estat';
+$strStorageEngine = 'Motor d\'emmagatzematge';
+$strStorageEngines = 'Motors d\'emmagatzematge';
+$strStrucCSV = 'dades CSV ';
+$strStrucData = 'Estructura i dades';
+$strStrucExcelCSV = 'CSV per dades de MS Excel';
+$strStrucNativeExcel = 'Dades Natives MS Excel';
+$strStrucOnly = 'Només l\'estructura';
+$strStructPropose = 'Proposa una estructura de taula';
+$strStructure = 'Estructura';
+$strStructureForView = 'Estructura per a vista';
+$strSubmit = 'Enviar';
+$strSuccess = 'La vostra comanda SQL ha estat executada amb èxit';
+$strSum = 'Suma';
+$strSwedish = 'Suec';
+$strSwitchToDatabase = 'Canviar a la base de dades copiada';
+$strSwitchToTable = 'Canvia a una taula copiada';
+
+$strTableAlreadyExists = 'La taula %s ja existeix!';
+$strTableComments = 'Comentaris de la taula';
+$strTableEmpty = 'El nom de la taula és buit!';
+$strTableHasBeenDropped = 'S\'ha esborrat la taula %s';
+$strTableHasBeenEmptied = 'S\'ha buidat la taula %s';
+$strTableHasBeenFlushed = 'S\'ha buidat la memòria cau de la taula %s';
+$strTableIsEmpty = 'La taula sembla buida!';
+$strTableMaintenance = 'Manteniment de la taula';
+$strTableName = 'Nom de taula';
+$strTableOfContents = 'Taula de continguts';
+$strTableOptions = 'Opcions de Taula';
+$strTables = '%s taula(es)';
+$strTableStructure = 'Estructura de la taula';
+$strTable = 'Taula';
+$strTakeIt = 'agafa';
+$strTblPrivileges = 'Permissos especifics de taula';
+$strTempData = 'Dades temporals';
+$strTextAreaLength = ' A causa de la seva longitud,<br /> aquest camp pot no ser editable ';
+$strThai = 'Tailandès';
+$strThemeDefaultNotFound = 'Tema per defecte %s no trobat!';
+$strThemeNoPreviewAvailable = 'No hi ha vista prèvia disponible.';
+$strThemeNotFound = 'Tema %s no trobat!';
+$strThemeNoValidImgPath = 'El camí de les imatges del tema %s és incorrecte!';
+$strThemePathNotFound = 'No s\'ha trobat el camí de les imatges del tema %s!';
+$strTheme = 'Tema / Estil';
+$strThisHost = 'Aquest Host';
+$strThreads = 'Fils';
+$strThreadSuccessfullyKilled = 'Fil %s cancel.lat correctament.';
+$strTimeoutInfo = 'La darrera importació ha esgotat el temps, després de reenviar continuarà des de la posició %d.';
+$strTimeoutNothingParsed = 'Però a la darrera importació no s\'han processat dades, el que normalment indica que phpMyAdmin no ha pogut finalitzar aquesta importació a menys que incrementeu els límits de temps de php.';
+$strTimeoutPassed = 'Temps exaurit de l\'arxiu d\'ordres, si voleu finalitzar l\'importació, torneu a enviar el mateix arxiu a importar i el procés continuarà.';
+$strTime = 'Temps';
+$strToFromPage = 'plana a/de';
+$strToggleScratchboard = 'Canvia l\' scratchboard';
+$strToggleSmallBig = 'Canviar petit/gran';
+$strToSelectRelation = 'Per triar una relació, clica :';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'Xinés Tradicional';
+$strTraditionalSpanish = 'Espanyol Tradicional';
+$strTraffic = 'Tràfic';
+$strTransactionCoordinator = 'Coordinador de transaccions';
+$strTransformation_application_octetstream__download = 'Mostra un enllaç per descarregar les dades binàries d\'un camp. La primera dada és el nom d\'arxiu binari. La segona dada és un possible nom de camp d\'una taula que contingui el nom d\'arxiu. Si es facilita la segona dada és necessari tenir la primera dada buida';
+$strTransformation_application_octetstream__hex = 'Mostra la representació hexadecimal de les dades. El primer paràmetre és opcional i especifica cóm de sovint s\'afegirá l\'espai (per defecte a 2 \"nibbles\").';
+$strTransformation_image_jpeg__inline = 'Mostra una miniatura amb enllaç; opcions: ample,alt en pixels (respecta la proporció original)';
+$strTransformation_image_jpeg__link = 'Es mostra com a enllaç a la imatge.';
+$strTransformation_image_png__inline = 'Veure image/jpeg: en linia';
+$strTransformation_text_plain__dateformat = 'Mostra un camp TIME, TIMESTAMP, DATETIME o camp de data unix com a data formatejada. La primera opció és la diferéncia (en hores) que s\'afegiràn a la data (Defecte: 0). Usa la segona opció per indicar un format diferent de data/hora. La tercera opció determina si es vol visualitzar l\'hora local o UTC (usant els texts "local" o "utc"). Segons aixó, el format de data té diferent valor - per a "local" veieu la documentació de la funció strftime() de PHP i per a "utc" s\'obté amb l\'ús de la funció gmdate().';
+$strTransformation_text_plain__external = 'NOMÉS LINUX: Llença una aplicació externa i facilita el camp de dades via standard input. Retorna per standard output de l\'aplicació. El defecte és Tidy, per interpretar codi HTML. Per raons de seguretat, has d\' editar manualment l\'arxiu libraries/transformations/text_plain__external.inc.php i afegir les eines que vulguis fer servir. La primera opció és, llavors, el numero del programa que vols fer servir i la segona opció són els paràmetres per el programa. El tercer paràmetre, si es posa a 1, convertirà la sortida fent servir htmlspecialchars() (El defecte és 1). El quart paràmetre, si val 1, posarà un NOWRAP al contingut de les cel.les de forma que la sortida sencera es mostrarà sense reformatejar (Per defecte 1)';
+$strTransformation_text_plain__formatted = 'Conserva el format original del camp. No es fa cap canvi.';
+$strTransformation_text_plain__imagelink = 'Mostra una imatge i un enllaç, el camp conté el nom de l\'arxiu; la primera opció és un prefixe com "http://domini.com/", la segona opció és l\'amplada en pixels, la tercera és l\'alçada.';
+$strTransformation_text_plain__link = 'Mostra un enllaç, el camp conté el nom de l\'arxiu; la primera opció és un prefixe com "http://domini.com/", la segona opció és el titol del enllaç.';
+$strTransformation_text_plain__sql = 'Formateig del text com a consulta SQL amb resaltat de sintaxi.';
+$strTransformation_text_plain__substr = 'Mostra una part d\'una cadena de text. La primera opció és el nombre de caracters a saltar des de l\'inici de la cadena (Per defecte 0). La segona opció és el nombre de caracters a retornar (Per defecte: fins al final de la cadena). La tercera opció és la cadena a afegir a l\'inici o al final quan hi ha truncament (Per defecte: "...").';
+$strTriggers = 'Disparadors';
+$strTruncateQueries = 'Talla les consultes mostrades';
+$strTurkish = 'Turc';
+$strType = 'Tipus';
+
+$strUkrainian = 'Ucrainès ';
+$strUncheckAll = 'Desmarcar tot';
+$strUnicode = 'Unicode';
+$strUnique = 'Única';
+$strUnknown = 'Desconegut';
+$strUnselectAll = 'Desmarca tot';
+$strUnsupportedCompressionDetected = 'S\'intenta carregar un arxiu amb una compresió no suportada (%s). O bé aquest suport no s\'ha implementat encara o bé el teniu desactivat a la configuració.';
+$strUpdatePrivMessage = 'Heu actualitzat els permissos de %s.';
+$strUpdateProfileMessage = 'S\'ha actualitzat el perfil.';
+$strUpdateQuery = 'Actualitza consulta';
+$strUpdComTab = 'Mira a la documentació cóm actualitzar la teva Taula de Comentaris de les Columnes';
+$strUpgrade = 'Es necessari actualitzar a %s %s o posterior.';
+$strUploadErrorCantWrite = 'Error en gravar l\'arxiu al disc.';
+$strUploadErrorExtension = 'Pujada de l\'arxiu aturada per l\'extensió.';
+$strUploadErrorFormSize = 'El tamany d\'arxiu pujat supera la directiva MAX_FILE_SIZE especificada al formulari HTML.';
+$strUploadErrorIniSize = 'El tamany d\'arxiu pujat supera la directiva upload_max_filesize de php.ini.';
+$strUploadErrorNoTempDir = 'No es troba la carpeta temporal.';
+$strUploadErrorPartial = 'Només s\'ha pujat parcialment l\'arxiu.';
+$strUploadErrorUnknown = 'Error desconegut al pujar l\'arxiu.';
+$strUploadLimit = 'Probablement has triat d\'enviar un arxiu massa gran. Consulta la %sdocumentació%s per trobar formes de modificar aquest límit.';
+$strUploadsNotAllowed = 'No es permet pujar arxius en aquest servidor.';
+$strUsage = 'Ús';
+$strUseBackquotes = 'Usa &quot;backquotes&quot; amb taules i noms de camps';
+$strUseHostTable = 'Utilitza la Taula de Hosts';
+$strUserAlreadyExists = 'L\'usuari %s ja existeix!';
+$strUserEmpty = 'El nom d\'usuari és buit!';
+$strUserName = 'Nom d\'usuari';
+$strUserNotFound = 'No s\'ha trobat l\'usuari triat a la taula de permissos.';
+$strUserOverview = 'Informació general de l\'usuari';
+$strUsersDeleted = 'S\'han esborrat correctament els usuaris triats.';
+$strUsersHavingAccessToDb = 'Usuaris amb accés a &quot;%s&quot;';
+$strUser = 'Usuari';
+$strUseTabKey = 'Usa la tecla TAB per moure\'t de valor en valor, o CTRL+fletxes per moure\'t on vulguis';
+$strUseTables = 'Usa Taules';
+$strUseTextField = 'Usa camp de text';
+$strUseThisValue = 'Fes servir aquest valor';
+
+$strValidateSQL = 'Validar l\'SQL';
+$strValidatorError = 'No s\'ha pogut iniciar el validador SQL. Si us plau, comproveu que teniu instal·lats els mòduls de PHP necessaris tal i com s\'indica a la %sdocumentació%s.';
+$strValue = 'Valor';
+$strVar = 'Variable';
+$strVersionInformation = 'Informació de Versió';
+$strViewDumpDatabases = 'Veure volcat (esquema) de les bases de dades';
+$strViewDumpDB = 'Veure l\'esquema de la base de dades';
+$strViewDump = 'Veure un esquema de la taula';
+$strViewHasBeenDropped = 'Vista %s esborrada';
+$strViewName = 'Nom de VISTA';
+$strView = 'Vista';
+
+$strWebServerUploadDirectory = 'Directori de pujada d\'arxius del servidor web';
+$strWebServerUploadDirectoryError = 'No està disponible el directori indicat per pujar arxius';
+$strWelcome = 'Benvingut a %s';
+$strWestEuropean = 'Europa Occidental';
+$strWildcard = 'comodins';
+$strWindowNotFound = 'La finestra destí del navegador no s\'ha pogut actualitzar. Potser has tancat la finestra "pare" o bé el teu navegador bloqueja actualitzacions entre finestres per la teva configuració de seguretat';
+$strWithChecked = 'Amb marca:';
+$strWriteRequests = 'Peticions d\'escriptura';
+$strWrongUser = 'Usuari i/o clau erronis. Accés denegat.';
+
+$strXML = 'XML';
+
+$strYes = 'Si';
+
+$strZeroRemovesTheLimit = 'Nota: Es treu el limit establint aquestes opcions a 0 (zero).';
+$strZip = '"comprimit amb zip"';
+
+// To translate:
+
+$strPartitionDefinition = 'Definicio de PARTICIÓ';
+$strPrivDescTrigger = 'Permet crear i eliminar disparadors (triggers)';
+$strPrivDescEvent = 'Permet establir events per al planificador d\'events';
+$strPrivDescProcess = 'Permet veure processos de tots els usuaris';
+$strPartitioned = 'particionat';
+$strTableAlteredSuccessfully = 'S\'ha modificat la taula %1$s correctament';
+$strDatabaseHasBeenCreated = 'S\'ha creat la base de dades %1$s.';
+$strTableHasBeenCreated = 'S\'ha creat la taula %1$s.';
+$strForeignKeyError = 'Error creant clau externa (foreign key) a %1$s (comprovar tipus de dades)';
+$strRowsDeleted = '%1$d fila(es) esborrada(es).';
+$strRowsAffected = '%1$d fila(es) afectada(es).';
+$strRowsInserted = '%1$d fila(es) inserida(es).';
+$strInsertedRowId = 'Id de la fila inserida: %1$d';
+$strIndexesSeemEqual = 'Els indexos %1$s i %2$s semblen iguals i un d\'ells possiblement es podria esborrar.';
+$strPartitionMaintenance = 'Manteniment de particions';
+$strPartition = 'Particio %s';
+$strAnalyze = 'Analitza';
+$strCheck = 'Comprova';
+$strOptimize = 'Optimitza';
+$strRebuild = 'Reconstrueix';
+$strRepair = 'Repara';
+$strRemovePartitioning = 'Eliminar particionament';
+$strSearchInField = 'Camp interior:';
+$strTexyText = 'Text Texy!';
+$strDetails = 'Detalls...';
+$strComment = 'Comentari';
+$strPacked = 'Comprimit';
+$strActions = 'Accions';
+$strInterface = 'Interficie';
+$strSuhosin = 'Servidor executant-se amb Suhosin. Si us plau, consulta %sdocumentation% per a possibles assumptes.';
+$strEvents = 'Events';
+$strForeignKeyRelationAdded = 'Afegida relació de FOREIGN KEY';
+$strInternalAndForeign = 'No es necessita una relació interna quan existeix una relació corresponent de FOREIGN KEY.';
+$strViewHasAtLeast = 'Aquesta vista té al menys aques nombre de files. Consulta %sdocumentation%.';
+$strRelationalKey = 'Clau relacional';
+$strRelationalDisplayField = 'Camp relacional per mostrar';
+$strSwekeyNoKey = 'Cap clau d\'autenticació vàlida endollada';
+$strSwekeyNoKeyId = 'L \'arxiu %s no conté cap identificació de clau';
+$strSwekeyAuthFailed = 'Error a l\'autenticació de maquinari';
+$strSwekeyAuthenticating = 'Autenticant...';
+$strPBXTIndexCacheSize = 'Tamany del cau d\'index';
+$strPBXTRecordCacheSize = 'Tamany del cau de registre';
+$strPBXTLogCacheSize = 'Tamany del cau del Registre (Log)';
+$strPBXTLogFileThreshold = 'LLindar de l\'arxiu de Registre (Log)';
+$strPBXTTransactionBufferSize = 'Tamany de la memòria intermèdia de transaccions';
+$strPBXTCheckpointFrequency = 'Frequència dels controls';
+$strPBXTDataLogThreshold = 'Llindar del registre de dades (Data log)';
+$strPBXTGarbageThreshold = 'Llindar de les escombraries';
+$strPBXTLogBufferSize = 'Tamany de la memòria intermèdia del Registre';
+$strPBXTDataFileGrowSize = 'Tamany de creixement de l\'arxiu de dades';
+$strPBXTRowFileGrowSize = 'Tamany de creixement de l\'arxiu de files';
+$strPBXTRowFileGrowSizeDesc = 'El tamany de creixement dels arxius d\'indicadors de fila (.xtr).';
+$strPBXTDataFileGrowSizeDesc = 'El tamany de creixement dels arxius del gestor de dades (.xtd).';
+$strPBXTLogBufferSizeDesc = 'El tamany de la memòria intermèdia usada quan s\'escriu un registre de dades. El valor per defecte és 256MB. El motor assigna una memòria intermèdia per fil, però només si es requereix el fil per escriure un registre de dades.';
+$strPBXTGarbageThresholdDesc = 'El percentatge d\'escombraries en un registre de dades abans de compactar. És un valor entre 1 i 99. El valor per defecte és 50.';
+$strPBXTDataLogThresholdDesc = 'El tamany màxim d\'un arxiu de registre de dades. El valor per defecte és 64MB. PBXT pot crear un màxim de 32000 registres de dades, que s\'utilitzen per totes les taules. Així el valor d\'aquesta variable es pot augmentar per augmentar la quantitat total de dades que es poden emmagatzemar en la base de dades.';
+$strPBXTCheckpointFrequencyDesc = 'La quantitat de dades escrites al registre de transaccions abans de executar un control. El valor per defecte és 24MB.';
+$strPBXTTransactionBufferSizeDesc = 'El tamany de la memòria intermèdia global del registre de transaccions (el motor assigna 2 memòries intermèdies d\'aquest tamany). El valor per defecte és 1MB.';
+$strPBXTLogFileThresholdDesc = 'El tamany del registre de transaccions abans d\'un ajornament, i un nou registre es crea. El valor per defecte és 16MB.';
+$strPBXTLogCacheSizeDesc = 'La quantitat de memòria assignada al cau del registre de transaccions usat en registres de transacció de dades. El valor per defecte és 16MB.';
+$strPBXTRecordCacheSizeDesc = 'Aquest és el tamany de memòria assingnada al cau de registres usat com a cau de dades de taula. El valor per defecte és 32MB. Aquesta memòria s\'utilitza com a cau de canvis dels arxius del gestor de dades (.xtd) i indicadors de fila (.xtr).';
+$strPBXTIndexCacheSizeDesc = 'Aquest és el tamany de memòria assingnada al cau d\'indexos. El valor per defecte és 32MB. La memòria assignada aqui només s\'utilitza per cau de pàgines d\'index.';
+$strPBXTLogFileCount = 'Comptador de l\'arxiu de registre';
+$strPBXTLogFileCountDesc = 'Aquest és el nombre d\'arxius de registre de transaccions (pbxt/system/xlog*.xt) que el sistema mantindrà. Si el nombre de registres supera aquest valor, llavors els registres vells s\'esborraràn, altrament es reanomenaràn i es donarà el pròxim número més alt.';
+$strAsDefined = 'Com definit:';
+$strWiki = 'Wiki';
+$strWebServer = 'Servidor Web';
+$strPHPExtension = 'Extensió PHP';
+$strCustomColor = 'Color triat';
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/check_lang.sh b/lang/check_lang.sh
new file mode 100755
index 0000000000..8e2a2300a0
--- /dev/null
+++ b/lang/check_lang.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+# $Id$
+##
+# Shell script to check that all language files are syncronized
+# Catches duplicate/missing strings
+#
+# Robin Johnson <robbat2@users.sourceforge.net>
+# August 9, 2002
+##
+
+MASTER="english-utf-8.inc.php"
+TMPDIR="tmp-check"
+FILEPAT="*.inc.php"
+STRINGMATCH='^[[:space:]]*\$[[:alnum:]_]+[[:blank:]]+='
+IGNOREMATCH='strEncto|strKanjiEncodConvert|strXkana|allow_recoding|doc_lang'
+
+if [ "`which diffstat`" = "" ] ; then
+ echo 'You need diffstat to use this!'
+ exit 1
+fi
+
+rm -rf $TMPDIR
+mkdir -p $TMPDIR
+
+# Build the list of variables in each file
+echo "Building data"
+for f in $FILEPAT;
+do
+ awk "/$STRINGMATCH/ && ! /$IGNOREMATCH/ { print \$1 }" $f | sort > $TMPDIR/$f
+done
+
+
+# Build the diff files used for checking
+# And if there are no differences, delete the empty files
+echo "Comparing data"
+for f in $FILEPAT;
+do
+ if [ ! $MASTER = $f ]; then
+ if diff -u $TMPDIR/$MASTER $TMPDIR/$f >$TMPDIR/$f.diff ; then
+ rm -f $TMPDIR/$f.diff $TMPDIR/$f
+ fi
+ fi
+done
+
+# Cleanup
+rm -f $TMPDIR/$MASTER
+
+# Build the nice difference table
+echo "Differences"
+diffstat -f 0 $TMPDIR/*.diff >$TMPDIR/diffstat 2>/dev/null
+echo "Dupe Miss Filename"
+head -n -1 $TMPDIR/diffstat | \
+while read filename sep change add plus sub minus edits exclaim;
+do
+ echo "$add $sub $filename";
+done
+
+echo
+echo "Dupe = Duplicate Variables"
+echo "Miss = Missing Variables"
+echo "For exact problem listings, look in the $TMPDIR/ directory"
+echo "Please remember to remove '$TMPDIR/' once you are done"
diff --git a/lang/chinese_simplified-utf-8.inc.php b/lang/chinese_simplified-utf-8.inc.php
new file mode 100644
index 0000000000..c8354a2867
--- /dev/null
+++ b/lang/chinese_simplified-utf-8.inc.php
@@ -0,0 +1,1473 @@
+<?php
+/* $Id$ */
+
+/**
+ * Last translation by: Funda Wang <fundawang@en2china.com>
+ * update by Simon <simon@venustech.com.cn>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('字节', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$mysql_5_1_doc_lang = 'zh';
+
+$day_of_week = array('周日', '周一', '周二', '周三', '周四', '周五', '周六');
+$month = array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%Y 年 %m 月 %d 日 %H:%M';
+
+$timespanfmt = '%s 天 %s 小时,%s 分 %s 秒';
+
+$strAbortedClients = '中止';
+$strAccessDenied = '访问被拒绝';
+$strAccessDeniedExplanation = 'phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接。您应该检查 config.inc.php 中的主机、用户名和密码,并且确定这些信息与 MySQL 服务器的管理员所给出的信息一致。';
+$strAction = '操作';
+$strAddAutoIncrement = '添加 AUTO_INCREMENT 值';
+$strAddConstraints = '强制添加';
+$strAddDeleteColumn = '添加/删除字段列';
+$strAddDeleteRow = '添加/删除条件行';
+$strAddFields = '添加 %s 字段';
+$strAddHeaderComment = '在标题中增加一个定制的注释 (\\n 行隔离符)';
+$strAddIntoComments = '添加进注释';
+$strAddNewField = '添加新字段';
+$strAddPrivilegesOnDb = '在下列数据库添加权限';
+$strAddPrivilegesOnTbl = '在下列表添加权限';
+$strAddSearchConditions = '添加搜索条件(“where”语句的主体):';
+$strAddToIndex = '添加到 %s 列';
+$strAddUserMessage = '您已添加了一个新用户。';
+$strAddUser = '添加新用户';
+$strAdministration = '管理';
+$strAfterInsertBack = '后退到上一页';
+$strAfterInsertNewInsert = '插入新的一行';
+$strAfterInsertNext = '编辑下一行';
+$strAfterInsertSame = '返回这一页';
+$strAfter = '于 %s 之后';
+$strAll = '全部';
+$strAllTableSameWidth = '以相同宽度显示所有表吗?';
+$strAlterOrderBy = '更改表顺序,依据';
+$strAnalyzeTable = '分析表';
+$strAnd = '与';
+$strAnIndex = '索引已经添加到 %s';
+$strAny = '任意';
+$strAnyHost = '任意主机';
+$strAnyUser = '任意用户';
+$strApproximateCount = '可能接近. 请参看 FAQ 3.11';
+$strAPrimaryKey = '主键已经添加到 %s';
+$strArabic = '阿拉伯语';
+$strArmenian = '亚美尼亚语';
+$strAscending = '递增';
+$strAtBeginningOfTable = '于表开头';
+$strAtEndOfTable = '于表结尾';
+$strAttr = '属性';
+$strAutomaticLayout = '自动套用格式';
+
+$strBack = '返回';
+$strBaltic = '巴拉克语';
+$strBeginCut = '开始剪切';
+$strBeginRaw = '开始原文';
+$strBinary = '二进制';
+$strBinaryDoNotEdit = '二进制 - 无法编辑';
+$strBinaryLog = '二进制日志';
+$strBinLogEventType = '事件类型';
+$strBinLogInfo = '信息';
+$strBinLogName = '日志文件名';
+$strBinLogOriginalPosition = '初始位置';
+$strBinLogPosition = '位置';
+$strBinLogServerId = '服务器ID';
+$strBookmarkAllUsers = '让每个用户都可以访问这个书签';
+$strBookmarkDeleted = '书签已经删除。';
+$strBookmarkLabel = '标签';
+$strBookmarkQuery = '已加书签的 SQL 查询';
+$strBookmarkThis = '将此 SQL 查询加为书签';
+$strBookmarkView = '只查看';
+$strBrowse = '浏览';
+$strBrowseForeignValues = '浏览不相关的值';
+$strBulgarian = '保加利亚语';
+$strBzip = 'bzip 压缩';
+
+$strCalendar = '日历';
+$strCannotLogin = '无法登入 MySQL 服务器';
+$strCantLoadRecodeIconv = '无法载入 iconv 或者进行字符集转换所需的重编码扩展程序,请配置 php 允许使用这些扩展或者在 phpMyAdmin 中禁用字符集转换功能。';
+$strCantLoad = '无法载入 %s 扩展,<br />请检查 PHP 配置';
+$strCantRenameIdxToPrimary = '无法将索引更名为 PRIMARY!';
+$strCantUseRecodeIconv = '载入扩展报告时 iconv,libiconv 和 recode_string 都无法使用。请检查您的 php 配置。';
+$strCardinality = '基数';
+$strCaseInsensitive = '不区分大小写';
+$strCaseSensitive = '区分大小写';
+$strCentralEuropean = '中欧';
+$strChange = '更改';
+$strChangeCopyModeCopy = '... 保留旧用户。';
+$strChangeCopyModeDeleteAndReload = ' ... 从用户表中删除旧用户,然后重新载入权限。';
+$strChangeCopyModeJustDelete = ' ... 从用户表中删除旧用户。';
+$strChangeCopyModeRevoke = ' ... 收回旧用户的所有激活权限,然后删除旧用户。';
+$strChangeCopyMode = '创建带有相同权限的新用户并 ...';
+$strChangeCopyUser = '更改登录信息/复制用户';
+$strChangeDisplay = '选择要显示的字段';
+$strChangePassword = '更改密码';
+$strCharset = '字符集';
+$strCharsetOfFile = '文件的字符集:';
+$strCharsets = '字符集';
+$strCharsetsAndCollations = '字符集和整理';
+$strCheckAll = '全选';
+$strCheckOverhead = '彻底检查';
+$strCheckPrivs = '检查权限';
+$strCheckPrivsLong = '检查数据库“%s”的权限。';
+$strCheckTable = '检查表';
+$strChoosePage = '请选择需要编辑的页号';
+$strColComFeat = '显示列注解';
+$strCollation = '整理';
+$strColumnNames = '列名';
+$strColumnPrivileges = '按列指定权限';
+$strCommand = '命令';
+$strComments = '注释';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 兼容';
+$strCompleteInserts = '完整插入';
+$strCompression = '压缩';
+$strConfigFileError = 'phpMyAdmin 无法读取您的配置文件!<br />这可能是因为 php 发现了语法错误或 php 未能找到文档。<br />请直接使用下面的链接调用配置文件,然后读取您收到的 php 错误提示。通常的错误都是因为某处漏了引号或分号。<br />如果您看到的是一个空白页,则代表没有任何问题。';
+$strConfigureTableCoord = '请配置表 %s 的坐标';
+$strConnectionError = '无法连接:非法设置。';
+$strConnections = '连接';
+$strConstraintsForDumped = '限制导出的表';
+$strConstraintsForTable = '限制表';
+$strCookiesRequired = 'Cookies 必须启用才能登入。';
+$strCopyDatabaseOK = '数据库 %s已经被复制到%s';
+$strCopyTable = '将表复制到(数据库名<b>.</b>表名):';
+$strCopyTableOK = '表 %s 已经成功复制为 %s。';
+$strCopyTableSameNames = '无法将表复制为相同名称!';
+$strCouldNotKill = 'phpMyAdmin 无法杀死线程 %s。可能该线程已经关闭。';
+$strCreate = '创建';
+$strCreateIndex = '在第 %s 列创建索引';
+$strCreateIndexTopic = '创建新索引';
+$strCreateNewDatabase = '创建一个新的数据库';
+$strCreateNewTable = '在数据库 %s 中创建一个新表';
+$strCreatePage = '创建新页';
+$strCreatePdfFeat = '创建 PDF';
+$strCreationDates = '创建/更新/日期检查';
+$strCriteria = '条件';
+$strCroatian = '克罗地亚语';
+$strCyrillic = '西里尔语';
+$strCzech = '捷克语';
+$strCzechSlovak = '捷克斯洛伐克语';
+
+$strDanish = '丹麦语';
+$strData = '数据';
+$strDatabase = '数据库';
+$strDatabaseEmpty = '这个数据库名字是空!';
+$strDatabaseExportOptions = '数据库导出选项';
+$strDatabaseHasBeenDropped = '数据库 %s 已被删除。';
+$strDatabases = '数据库';
+$strDatabasesDropped = '已经成功删除了 %s 个数据库。';
+$strDatabasesStats = '数据库统计';
+$strDatabasesStatsDisable = '禁用统计';
+$strDatabasesStatsEnable = '启用统计';
+$strDatabasesStatsHeavyTraffic = '注意:在此启用数据库统计可能导致网站服务器和 MySQL 服务器之间的流量骤增。';
+$strDataDict = '数据字典';
+$strDataOnly = '只有数据';
+$strDBComment = '数据库注释:';
+$strDBCopy = '复制数据库到';
+$strDbPrivileges = '按数据库指定权限';
+$strDBRename = '重新命名数据库为 ';
+$strDbSpecific = '按数据库指定';
+$strDefault = '默认';
+$strDefaultValueHelp = '对于默认值,请只输入单个值,不要加反斜线或引号,请用此格式:a';
+$strDefragment = '整理表碎片';
+$strDelayedInserts = '延时插入';
+$strDelete = '删除';
+$strDeleteAndFlushDescr = '这是一个最干净的做法,但重新读取权限需一段时间。';
+$strDeleteAndFlush = '删除用户并重新读取权限。';
+$strDeleted = '该行已经被删除。';
+$strDeleting = '正在删除 %s';
+$strDelOld = '当前页所引用的表不存在了。您是否想要删除这些引用?';
+$strDescending = '递减';
+$strDescription = '描述';
+$strDictionary = '字典';
+$strDisabled = '已禁用';
+$strDisableForeignChecks = '禁止选定不相关的主键';
+$strDisplayFeat = '显示特性';
+$strDisplayOrder = '显示顺序';
+$strDisplayPDF = '显示 PDF 大纲';
+$strDoAQuery = '执行“按例查询”(通配符:“%”)';
+$strDocu = '文档';
+$strDoYouReally = '您真的要';
+$strDrop = '删除';
+$strDropDatabaseStrongWarning = '您将要删除一个完整的数据库!';
+$strDropUsersDb = '删除与用户名称相同的数据库。';
+$strDumpingData = '导出表中的数据';
+$strDumpSaved = '转存已经保存到文件 %s 中了。';
+$strDumpXRows = '转存 %s 行,从记录 #%s 开始。';
+$strDynamic = '动态';
+
+$strEdit = '编辑';
+$strEditPDFPages = '编辑 PDF 页';
+$strEditPrivileges = '编辑权限';
+$strEffective = '有效';
+$strEmpty = '清空';
+$strEmptyResultSet = 'MySQL 返回的查询结果为空(即零行)。';
+$strEnabled = '已启用';
+$strEncloseInTransaction = '处理事务中封装输出';
+$strEnd = '结束';
+$strEndCut = '结束剪切';
+$strEndRaw = '结束原文';
+$strEnglish = '英语';
+$strEnglishPrivileges = ' 注意:MySQL 权限名称会以英文显示 ';
+$strError = '错误';
+$strEscapeWildcards = '通配符 _ 及 % 应正确地加入 \ ';
+$strEstonian = '爱沙尼亚语';
+$strExcelEdition = 'Excel 版本';
+$strExecuteBookmarked = '执行书签中的查询';
+$strExplain = '解释 SQL';
+$strExport = '导出';
+$strExtendedInserts = '扩展插入';
+$strExtra = '额外';
+
+$strFailedAttempts = '尝试失败';
+$strField = '字段';
+$strFieldHasBeenDropped = '字段 %s 已被删除';
+$strFields = '字段数';
+$strFieldsEnclosedBy = '包裹字段的字符';
+$strFieldsEscapedBy = '转义字段的字符';
+$strFieldsTerminatedBy = '分隔字段的字符';
+$strFileAlreadyExists = '文件 %s 已经存在于服务器上,请更改文件名或者选中覆盖选项。';
+$strFileCouldNotBeRead = '文件无法读取';
+$strFileNameTemplate = '文件名模板';
+$strFileNameTemplateRemember = '记住模板';
+$strFixed = '固定';
+$strFlushPrivilegesNote = '注意:phpMyAdmin 直接由 MySQL 权限表取得用户权限。如果用户手动更改表,表内容将可能与服务器使用的用户权限有异。在这种情况下,您应在继续前%s重新载入权限%s。';
+$strFlushTable = '强制更新资料表("FLUSH")';
+$strFormat = '格式';
+$strFormEmpty = '表单内缺少值!';
+$strFullText = '完整文字';
+$strFunction = '函数';
+
+$strGenBy = '生成者';
+$strGeneralRelationFeat = '一般关系特性';
+$strGenTime = '生成日期';
+$strGeorgian = '乔治亚语';
+$strGerman = '德语';
+$strGlobal = '全局';
+$strGlobalPrivileges = '全局权限';
+$strGlobalValue = '全局值';
+$strGo = '执行';
+$strGrantOption = '授权';
+$strGreek = '希腊语';
+$strGzip = 'gzip 压缩';
+
+$strHasBeenAltered = '已经被修改。';
+$strHaveToShow = '您需要最少选择显示一列';
+$strHebrew = '希伯来语';
+$strHome = '主目录';
+$strHomepageOfficial = 'phpMyAdmin 官方网站';
+$strHost = '主机';
+$strHostEmpty = '主机名称是空的!';
+$strHungarian = '匈牙利语';
+
+$strIcelandic = '冰岛语';
+$strId = 'ID'; // use eng
+$strIdxFulltext = '全文搜索';
+$strIgnore = '忽略';
+$strIgnoreInserts = '忽略插入';
+$strImportFiles = '导入文件';
+$strIndex = '索引';
+$strIndexes = '索引';
+$strIndexHasBeenDropped = '索引 %s 已被删除';
+$strIndexName = '索引名称:';
+$strIndexType = '索引类型:';
+$strIndexWarningTable = '警告:数据表 `%s`的索引存在问题';
+$strInnodbStat = 'InnoDB 状态';
+$strInsecureMySQL = '您配置文件中的设定与 MySQL 默认权限账户对应(没有密码的 root)。您的 MySQL 服务器使用默认值运行当然没有问题,不过这样的话,被入侵的可能性会很大,您真的应该先补上这个安全漏洞。';
+$strInsert = '插入';
+$strInsertAsNewRow = '以新行插入';
+$strInternalRelations = '内在联系';
+$strInUse = '使用中';
+
+$strJapanese = '日语';
+$strJumpToDB = '跳到数据库“%s”。';
+$strJustDeleteDescr = '“删除”的用户仍然能像往常一样登入数据库,直至重新载入权限。';
+$strJustDelete = '只从权限数据库删除用户。';
+
+$strKeepPass = '请不要更改密码';
+$strKeyname = '键名';
+$strKill = 'Kill'; //should expressed in English
+$strKorean = '朝鲜语';
+
+$strLandscape = '横向';
+$strLatexCaption = '表的标题';
+$strLatexContent = '__TABLE__ 表的内容';
+$strLatexContinued = '(延续的)';
+$strLatexContinuedCaption = '延续的表的标题';
+$strLatexIncludeCaption = '包含表的标题';
+$strLatexLabel = '关键标签';
+$strLaTeX = 'LaTeX'; // use eng
+$strLatexStructure = '__TABLE__ 表的结构';
+$strLatvian = '拉脱维亚语';
+$strLengthSet = '长度/值*';
+$strLimitNumRows = '每页行数';
+$strLinesTerminatedBy = '行终止的字符';
+$strLinkNotFound = '找不到链接';
+$strLinksTo = '链接到';
+$strLithuanian = '立陶宛语';
+$strLocalhost = '本地';
+$strLocationTextfile = '文本文件的位置';
+$strLogin = '登入';
+$strLoginInformation = '登入信息';
+$strLogout = '登出';
+$strLogPassword = '密码:';
+$strLogServer = '服务器';
+$strLogUsername = '登入名称:';
+
+$strMaximumSize = '最大限制:%s %s';
+$strMbExtensionMissing = '没有发现 PHP 的扩展设置mbstring, 而当前系统好像在使用宽字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确识别字符串,可能产生不可意料的结果.';
+$strMbOverloadWarning = '警告:你在PHP设置文件中设置了 mbstring.func_overload. 这个选项和phpMyAdmin不兼容,可能会导致一些数据被截断!';
+$strMIME_available_mime = '可用的 MIME 类型';
+$strMIME_available_transform = '可用的变换';
+$strMIME_description = '描述';
+$strMIME_MIMEtype = 'MIME 类型';
+$strMIME_nodescription = '此变换无可用的描述。<br />详细功能请询问 %s 的作者。';
+$strMIME_transformation_note = '要获得可用变换选项的清单及对应的 MIME 类型变换,请单击%s变换描述%s';
+$strMIME_transformation_options_note = '请使用此格式输入变换选项的值:\'a\', 100, b,\'c\'...<br />如果您需要在值中输入反斜线(“\”)或者单引号(“\'”),请在前面加上反斜线(如 \'\\\\xyz\' 或 \'a\\\'b\')。';
+$strMIME_transformation_options = '变换选项';
+$strMIME_transformation = '浏览器变换';
+$strMIMETypesForTable = 'MIME 类型表';
+$strMIME_without = '以斜体打印的 MIME 类型没有单独的变换函数';
+$strModifications = '修改已经保存。';
+$strModify = '修改';
+$strModifyIndexTopic = '修改索引';
+$strMoveTable = '将表移动到(数据库名<b>.</b>表名):';
+$strMoveTableOK = '表 %s 已经移动到 %s。';
+$strMoveTableSameNames = '无法将表移动为相同名称!';
+$strMultilingual = '多语言';
+$strMySQLCharset = 'MySQL 字符集';
+$strMySQLConnectionCollation = 'MySQL 连接校对';
+$strMySQLSaid = 'MySQL 返回:';
+$strMySQLShowProcess = '显示进程';
+
+$strName = '名字';
+$strNext = '下一个';
+$strNo = '否';
+$strNoActivity = '持续 %s 秒以上的非活动状态,导致超时,请重新登录';
+$strNoDatabases = '无数据库';
+$strNoDatabasesSelected = '没有选中数据库。';
+$strNoDescription = '无描述';
+$strNoDropDatabases = '已经禁用“DROP DATABASE”语句。';
+$strNoExplain = '略过解释 SQL';
+$strNoFrames = 'phpMyAdmin 更适合在支持<b>框架</b>的浏览器中使用。';
+$strNoIndexPartsDefined = '没有定义的索引部分!';
+$strNoIndex = '没有已定义的索引!';
+$strNoModification = '无更改';
+$strNone = '无';
+$strNoOptions = '这种格式并无选项';
+$strNoPassword = '无密码';
+$strNoPermission = '网站服务器不允许保存文件 %s。';
+$strNoPhp = '无 PHP 代码';
+$strNoPrivileges = '无权限';
+$strNoRights = '您现在没有足够的权限在此出现!';
+$strNoRowsSelected = '未选择行';
+$strNoSpace = '没有足够的空间保存文件 %s。';
+$strNoTablesFound = '数据库中没有表。';
+$strNoThemeSupport = '不支持主题,检查你的设置以及主题文件夹 %s.';
+$strNotNumber = '这不是一个数字!';
+$strNotOK = '不好';
+$strNotSet = '<b>%s</b> 表找不到或还未在 %s 设定';
+$strNoUsersFound = '找不到用户。';
+$strNoValidateSQL = '略过校验 SQL';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s 个匹配项 - 于表 <i>%s</i> 中';
+$strNumSearchResultsTotal = '<b>总计:</b> <i>%s</i> 个匹配项';
+$strNumTables = '个表';
+
+$strOK = '确定';
+$strOperations = '操作';
+$strOperator = '操作员';
+$strOptimizeTable = '优化表';
+$strOr = '或';
+$strOverhead = '多余';
+$strOverwriteExisting = '覆盖已有文件';
+
+$strPageNumber = '页号:';
+$strPaperSize = '纸张大小';
+$strPartialText = '部分文字';
+$strPassword = '密码';
+$strPasswordChanged = '%s 的密码已成功更改。';
+$strPasswordEmpty = '密码是空的!';
+$strPasswordHashing = '密码哈希';
+$strPasswordNotSame = '密码并非相同!';
+$strPdfDbSchema = '“%s”数据库大纲 - 第 %s 页';
+$strPdfInvalidTblName = '表“%s”不存在!';
+$strPdfNoTables = '没有表';
+$strPerHour = '每小时';
+$strPerMinute = '每分钟';
+$strPerSecond = '每秒';
+$strPersian = '波斯语';
+$strPhoneBook = '电话本';
+$strPhp = '创建 PHP 代码';
+$strPHPVersion = 'PHP 版本';
+$strPmaDocumentation = 'phpMyAdmin 文档';
+$strPmaUriError = '必须在您的配置文件中设定 <tt>$cfg[\'PmaAbsoluteUri\']</tt> 指令!';
+$strPolish = '波兰语';
+$strPortrait = '纵向';
+$strPos1 = '开始';
+$strPrevious = '前一个';
+$strPrimary = '主键';
+$strPrimaryKeyHasBeenDropped = '主键已被删除';
+$strPrimaryKeyName = '主键的名称必须称为 PRIMARY!';
+$strPrimaryKeyWarning = '(“PRIMARY”<b>必须</b>是主键的名称,并且主键必须<b>唯一</b>!)';
+$strPrint = '打印';
+$strPrintView = '打印预览';
+$strPrintViewFull = '打印预览 (全文显示)';
+$strPrivDescAllPrivileges = '包括所有权限除了授权 (GRANT)。';
+$strPrivDescAlter = '允许修改现有表的结构。';
+$strPrivDescCreateDb = '允许创建新数据库和表。';
+$strPrivDescCreateTbl = '允许创建新表。';
+$strPrivDescCreateTmpTable = '允许创建暂时表。';
+$strPrivDescDelete = '允许删除数据。';
+$strPrivDescDropDb = '允许删除数据库和表。';
+$strPrivDescDropTbl = '允许删除表。';
+$strPrivDescExecute = '允许运行存储过程;在此版本的 MySQL 中无效。';
+$strPrivDescFile = '允许从文件中导入数据以及将数据导出至文件。';
+$strPrivDescGrant = '允许添加用户和权限,而不允许重新载入权限表。';
+$strPrivDescIndex = '允许创建和删除索引。';
+$strPrivDescInsert = '允许插入和替换数据。';
+$strPrivDescLockTables = '允许锁住当前线索的表。';
+$strPrivDescMaxConnections = '限制用户每小时打开的新连接数。';
+$strPrivDescMaxQuestions = '限制用户每小时可发送的查询数。';
+$strPrivDescMaxUpdates = '限制用户每小时可执行的将会更改任何表或数据库的命令数。';
+$strPrivDescReferences = '在此版本的 MySQL 中无效。';
+$strPrivDescReload = '允许重新载入服务器设置并刷新服务器的缓存。';
+$strPrivDescReplClient = '用户有权询问附属者/控制者在哪里。';
+$strPrivDescReplSlave = '回复附属者所需。';
+$strPrivDescSelect = '允许读取数据。';
+$strPrivDescShowDb = '允许访问完整的数据库列表。';
+$strPrivDescShutdown = '允许关闭服务器。';
+$strPrivDescSuper = '允许在达到最大允许数目时仍进行连接;对于大多数像设置全局变量或杀死其它用户线程这样的管理操作是必需的。';
+$strPrivDescUpdate = '允许更改数据。';
+$strPrivDescUsage = '无权限。';
+$strPrivileges = '权限';
+$strPrivilegesReloaded = '权限已经成功载入。';
+$strProcesses = '进程';
+$strProcesslist = '进程列表';
+$strPutColNames = '将字段名称放在首行';
+
+$strQBE = '查询';
+$strQBEDel = '删除';
+$strQBEIns = '添加';
+$strQueryFrame = '查询窗口';
+$strQueryOnDb = '在数据库 <b>%s</b> 执行 SQL 语句:';
+$strQuerySQLHistory = 'SQL 历史';
+$strQueryStatistics = '<b>查询统计</b>:自从启动后,服务器共收到了 %s 次查询。';
+$strQueryTime = '查询花费 %01.4f 秒';
+$strQueryType = '查询方式';
+$strQueryWindowLock = '不从窗口外覆盖此查询';
+
+$strReceived = '已收到';
+$strRecords = '记录数';
+$strReferentialIntegrity = '检查引用完整性:';
+$strRefresh = '刷新';
+$strRelationalSchema = '关系大纲';
+$strRelationNotWorking = '使用链接表的额外特性尚未激活。要查出原因,请单击%s此处%s。';
+$strRelations = '关系';
+$strRelationsForTable = '表的关联';
+$strRelationView = '关系查看';
+$strReloadingThePrivileges = '重新载入权限';
+$strRemoveSelectedUsers = '删除选中用户';
+$strRenameDatabaseOK = '数据库 %s 已经被重命名为 %s';
+$strRenameTableOK = '表 %s 名字已经被改成 %s。';
+$strRenameTable = '将表改名为';
+$strRepairTable = '修复表';
+$strReplaceNULLBy = '将 NULL 替换为';
+$strReplaceTable = '将表的数据用此文件替换:';
+$strReset = '重置';
+$strResourceLimits = '资源限制';
+$strReType = '重新输入';
+$strRevoke = '收回';
+$strRevokeAndDeleteDescr = '用户仍然拥有 USAGE 权限,直到权限重载。';
+$strRevokeAndDelete = '收回用户的所有激活权限,然后删除用户。';
+$strRevokeMessage = '您已收回 %s 的权限';
+$strRomanian = '罗马尼亚语';
+$strRowLength = '行长度';
+$strRows = '行数';
+$strRowsFrom = '行,开始行数:';
+$strRowSize = ' 行大小 ';
+$strRowsModeFlippedHorizontal = '水平(旋转标题)';
+$strRowsModeHorizontal = '水平';
+$strRowsModeOptions = '以 %s 模式显示,并且在 %s 个单元格后重复标题';
+$strRowsModeVertical = '垂直';
+$strRowsStatistic = '行统计';
+$strRunning = '运行于 %s';
+$strRunQuery = '提交查询';
+$strRunSQLQuery = '在数据库 %s 运行 SQL 查询';
+$strRussian = '俄语';
+
+$strSave = '保存';
+$strSaveOnServer = '保存于服务器的 %s 目录';
+$strScaleFactorSmall = '比例因子太小,无法在一页中显示大纲';
+$strSearch = '搜索';
+$strSearchFormTitle = '搜索数据库';
+$strSearchInTables = '于以下表:';
+$strSearchNeedle = '查找的文字或数值(通配符:“%”):';
+$strSearchOption1 = '至少一个单词';
+$strSearchOption2 = '所有单词';
+$strSearchOption3 = '精确短语';
+$strSearchOption4 = '按正规表达式';
+$strSearchResultsFor = '“<i>%s</i>”的搜索结果 %s:';
+$strSearchType = '查找:';
+$strSecretRequired = '配置文件现在需要绝密的短语密码(blowfish_secret)。';
+$strSelectADb = '请选择数据库';
+$strSelectAll = '全选';
+$strSelectBinaryLog = '选择查看二进制日志';
+$strSelectFields = '至少选择一个字段:';
+$strSelectNumRows = '查询中';
+$strSelectTables = '选择表';
+$strSend = '另存为文件';
+$strSent = '送出';
+$strServer = '服务器';
+$strServerChoice = '选择服务器';
+$strServerNotResponding = '服务器没有响应';
+$strServerStatusUptime = '此 MySQL 服务器已经运行了 %s,启动时间为 %s。';
+$strServerStatus = '运行信息';
+$strServerTabVariables = '变量';
+$strServerTrafficNotes = '<b>服务器流量</b>:这些表显示了此 MySQL 服务器自启动以来的网络流量统计。';
+$strServerVars = '服务器变量和设置';
+$strServerVersion = '服务器版本';
+$strSessionValue = '会话值';
+$strSetEnumVal = '如字段类型是“enum”或“set”,请使用以下的格式输入:\'a\',\'b\',\'c\'...<br />如果您需要在值中输入反斜线(“\”)或者单引号(“\'”),请在前面加上反斜线(如 \'\\\\xyz\' 或 \'a\\\'b\')。';
+$strShow = '显示';
+$strShowAll = '全部显示';
+$strShowColor = '显示颜色';
+$strShowDatadictAs = '数据字典格式';
+$strShowFullQueries = '显示完整查询';
+$strShowGrid = '显示网格';
+$strShowingRecords = '显示行';
+$strShowPHPInfo = '显示 PHP 信息';
+$strShowTableDimension = '显示表格大小';
+$strShowTables = '显示表';
+$strShowThisQuery = ' 在此再次显示此查询 ';
+$strSimplifiedChinese = '简体中文';
+$strSingly = '(逐一)';
+$strSize = '大小';
+$strSlovak = '斯洛伐克语';
+$strSlovenian = '斯洛文尼亚语';
+$strSort = '排序';
+$strSortByKey = '主键排序';
+$strSpaceUsage = '已使用空间';
+$strSpanish = '西班牙语';
+$strSplitWordsWithSpace = '每个单词以空格 (" ") 分隔。';
+$strSQLExportType = '导出类型';
+$strSQLParserBugMessage = '有可能您发现了 SQL 分析器的臭虫。请仔细检查您的查询,包括引号是否正确及是否匹配。其它可能的失败原因可能由于您上传了超过引用文本区域外的二进制数据。您还可以在 MySQL 命令行界面试一下您的查询。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。如果您仍然有问题,或者命令行界面执行成功而分析器出错,请将您的 SQL 查询缩减到导致问题的某一条语句,然后和下面剪切区中的数据一起提交一个臭虫报告:';
+$strSQLParserUserError = '您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。';
+$strSQLQuery = 'SQL 查询';
+$strSQLResult = 'SQL 查询结果';
+$strSQL = 'SQL'; // should express in english
+$strSQPBugInvalidIdentifer = '无效的标识符';
+$strSQPBugUnclosedQuote = '引号不配对';
+$strSQPBugUnknownPunctuation = '未知的标点符号字符串';
+$strStatCheckTime = '最后检查时间';
+$strStatCreateTime = '创建时间';
+$strStatement = '语句';
+$strStatUpdateTime = '最后更新时间';
+$strStatus = '状态';
+$strStrucCSV = 'CSV 数据';
+$strStrucData = '结构和数据';
+$strStrucExcelCSV = 'MS Excel 的 CSV 格式';
+$strStrucNativeExcel = '本地 MS Excel 数据';
+$strStrucOnly = '只结构';
+$strStructPropose = '规划表结构';
+$strStructure = '结构';
+$strSubmit = '提交';
+$strSuccess = '您运行的 SQL 语句已经成功运行了。';
+$strSum = '总计';
+$strSwedish = '瑞典语';
+$strSwitchToDatabase = '选择被复制的数据库';
+$strSwitchToTable = '切换到复制的表';
+
+$strTable = '表 ';
+$strTableComments = '表注释';
+$strTableEmpty = '表名称是空的!';
+$strTableHasBeenDropped = '表 %s 已被删除';
+$strTableHasBeenEmptied = '表 %s 已被清空';
+$strTableHasBeenFlushed = '表 %s 已被强制更新';
+$strTableMaintenance = '表维护';
+$strTableOfContents = '目录';
+$strTableOptions = '表选项';
+$strTables = '%s 个表';
+$strTableStructure = '表的结构';
+$strTakeIt = '断定';
+$strTblPrivileges = '按表指定权限';
+$strTextAreaLength = ' 由于长度限制<br />此字段可能无法编辑 ';
+$strThai = '泰语';
+$strTheme = '主题 / 风格';
+$strThisHost = '此主机';
+$strThreadSuccessfullyKilled = '线程 %s 已成功杀死。';
+$strTime = '时间';
+$strToggleScratchboard = '切换刮板';
+$strTotal = '总计';
+$strTotalUC = '统计';
+$strTraditionalChinese = '繁体中文';
+$strTraditionalSpanish = '传统西班牙语';
+$strTraffic = '流量';
+$strTransformation_application_octetstream__download = '字段中显示一个二进制文件的下载连接。第一个选项是二进制数据的名字。第二个选项是表列中可能包含文件名的字段。 如果你提供第二个选项那么第一个选项必须设置为空字符串。';
+$strTransformation_image_jpeg__inline = '显示可点击的缩略图;选项:以像素指定的宽度、高度(保留原有比例)';
+$strTransformation_image_jpeg__link = '显示到此图像的链接(即直接二进制下载)。';
+$strTransformation_image_png__inline = '查看 image/jpeg: 嵌入';
+$strTransformation_text_plain__external = '只对 LINUX:调用外部程序并通过标准输入填充字段数据。返回此应用程序的标准输出。默认为 Tidy,可以很好的打印 HTML 代码。为了安全起见,您需要手动编辑文件 libraries/transformations/text_plain__external.inc.php 然后插入允许您运行的工具。第一个选项是您想要使用的程序编号,而第二个选项是程序的参数。至于第三个参数,如果设为 1 的话将会用 htmlspecialchars() 转换其输出(默认为 1)。第四个参数如果设为 1 的话,将会在内容单元格中输出 NOWRAP,这样全部输出就会不经重新格式化直接输出了(默认为 1)';
+$strTransformation_text_plain__formatted = '保留字段的原始格式。不进行转码。';
+$strTransformation_text_plain__imagelink = '显示图像和链接,字段内包含文件名;第一个选项是类似“http://domain.com/”这样的前缀,第二个选项是以像素为单位的宽度,第三个参数是高度。';
+$strTransformation_text_plain__link = '显示链接,字段内包含文件名;第一个选项是类似“http://domain.com/”这样的前缀,第二个选项是链接的标题(弹出提示)。';
+$strTransformation_text_plain__substr = '只显示字符串的一部分。第一个选项定义了文本开始输出的偏移量(默认为 0)。第二个选项是所返回文字数量的偏移量。如果为空的话,将返回剩下的所有文本。第三个选项是将会追加到子字符串之后的输出(默认为:...) .';
+$strTruncateQueries = '截断显示的查询';
+$strTurkish = '土耳其语';
+$strType = '类型';
+
+$strUkrainian = '乌克兰语';
+$strUncheckAll = '全部不选';
+$strUnicode = 'Unicode'; //USE ENG
+$strUnique = '唯一';
+$strUnknown = '未知';
+$strUnselectAll = '全部不选';
+$strUpdatePrivMessage = '您已经更新了 %s 的权限。';
+$strUpdateProfileMessage = '配置文件己更新。';
+$strUpdateQuery = '更新查询';
+$strUpdComTab = '请参看文档中关于如何更新您的 Column_comments 表的部分';
+$strUpgrade = '您应该升级到 %s %s 或者更高。';
+$strUsage = '用法';
+$strUseBackquotes = '请在表名及字段名使用引号';
+$strUseHostTable = '使用主机表';
+$strUserAlreadyExists = '用户 %s 己存在!';
+$strUserEmpty = '用户名称是空的!';
+$strUserName = '用户名';
+$strUserNotFound = '选中的用户在权限表内找不到。';
+$strUserOverview = '用户一览';
+$strUsersDeleted = '选中的用户已成功删除。';
+$strUsersHavingAccessToDb = '用户可访问“%s”';
+$strUser = '用户';
+$strUseTabKey = '按 TAB 键跳到下一个数值, 或 CTRL+方向键 作随意移动';
+$strUseTables = '使用表';
+$strUseTextField = '使用文本域';
+$strUseThisValue = '使用此值';
+
+$strValidateSQL = '校验 SQL';
+$strValidatorError = 'SQL 校验程序无法初始化。请检查是否已经安装了%s文档%s内描述的必需 PHP 扩展。';
+$strValue = '值';
+$strVar = '变量';
+$strViewDumpDatabases = '查看数据库的转存(大纲)';
+$strViewDumpDB = '查看数据库的转存(大纲)。';
+$strViewDump = '查看表的转存(大纲)。';
+
+$strWebServerUploadDirectoryError = '设定的上载目录错误,未能使用';
+$strWebServerUploadDirectory = '网站服务器上载目录';
+$strWelcome = '欢迎使用 %s';
+$strWestEuropean = '西欧';
+$strWildcard = '通配符';
+$strWindowNotFound = '目标浏览窗口不可更新。可能你已经关闭了父窗口或者您浏览器的安全设置阻断了更新窗口。';
+$strWithChecked = '选中项:';
+$strWrongUser = '用户名/密码错误,访问被拒绝。';
+
+$strXML = 'XML'; //USE ENG
+
+$strYes = '是';
+
+$strZeroRemovesTheLimit = '注意:将这些选项设为 0(零) 将删除限制。';
+$strZip = 'zip 压缩';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDataPages = 'Pages containing data'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/chinese_traditional-utf-8.inc.php b/lang/chinese_traditional-utf-8.inc.php
new file mode 100644
index 0000000000..bf9ccbd932
--- /dev/null
+++ b/lang/chinese_traditional-utf-8.inc.php
@@ -0,0 +1,1452 @@
+<?php
+/* $Id$ */
+
+/**
+ * Last translation by: Siu Sun <siusun@best-view.net>
+ * Follow by the original translation of Taiyen Hung 洪泰元<yen789@pchome.com.tw>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$mysql_5_1_doc_lang = 'zh';
+
+$day_of_week = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y, %I:%M %p';
+
+$timespanfmt = '%s 日, %s 小時, %s 分鐘 %s 秒';
+
+$strAbortedClients = '取消';
+$strAccessDenied = '拒絕存取';
+$strAccessDeniedCreateConfig = '有可能你未建立設定檔. 你可利用此 %1$s安裝程序%2$s 建立設定檔.';
+$strAccessDeniedExplanation = 'phpMyAdmin 嘗試連線到 MySQL 伺服器, 但伺服器拒絕了連線. 您應於 config.inc.php 內檢查主機名稱, 登入名稱及密碼及確保這些資料是與系統管理人員所提供的 MySQL 伺服器資料相同';
+$strAction = '執行';
+$strAddAutoIncrement = "新增 AUTO_INCREMENT 數值";
+$strAddConstraints = '加入限制';
+$strAddDeleteColumn = '新增/減少 選擇欄';
+$strAddDeleteRow = '新增/減少 篩選列';
+$strAddFields = '新增 %s 個欄位';
+$strAddHeaderComment = '於標題加入個人註解 (\\n 開新行)';
+$strAddIntoComments = '加入註解文字';
+$strAddNewField = '增加新欄位';
+$strAddPrivilegesOnDb = '於以下資料庫加入權限';
+$strAddPrivilegesOnTbl = '於以下資料表加入權限';
+$strAddSearchConditions = '增加檢索條件 ("where" 子句的主體)';
+$strAddToIndex = '新增 &nbsp;%s&nbsp; 組索引欄';
+$strAddUser = '新增使用者';
+$strAddUserMessage = '您已新增了一個新使用者.';
+$strAdministration = '系統管理';
+$strAfter = '在 %s 之後';
+$strAfterInsertBack = '返回';
+$strAfterInsertNewInsert = '新增一筆記錄';
+$strAfterInsertNext = '編輯新一列';
+$strAfterInsertSame = '返回這頁';
+$strAll = '全部';
+$strAllTableSameWidth = '以相同寬度顯示所有資料表?';
+$strAlterOrderBy = '根據欄位內容排序記錄';
+$strAnalyzeTable = '分析資料表';
+$strAnd = '與';
+$strAndThen = '然後';
+$strAnIndex = '索引已經新增到 %s';
+$strAny = '任何';
+$strAnyHost = '任何主機';
+$strAnyUser = '任何使用者';
+$strApproximateCount = '可能接近. 請參看 FAQ 3.11';
+$strAPrimaryKey = '主鍵已經新增到 %s';
+$strArabic = '阿拉伯語';
+$strArmenian = '美式英語';
+$strAscending = '遞增';
+$strAtBeginningOfTable = '於資料表開頭';
+$strAtEndOfTable = '於資料表尾端';
+$strAttr = '屬性';
+$strAutomaticLayout = '自動格式';
+
+$strBack = '回上一頁';
+$strBaltic = '波羅的海語';
+$strBeginCut = '開始 剪取';
+$strBeginRaw = '開始 原始資料';
+$strBinary = '二進制碼';
+$strBinaryDoNotEdit = '二進制碼 - 不能編輯';
+$strBinaryLog = '二進制記錄';
+$strBinLogEventType = '事件方式';
+$strBinLogInfo = '資料';
+$strBinLogName = '記錄檔案稱';
+$strBinLogOriginalPosition = '原有位置';
+$strBinLogPosition = '位置';
+$strBinLogServerId = '伺服器 ID';
+$strBookmarkAllUsers = '所有用者可讀取此書籤';
+$strBookmarkCreated = '書籤 %s 已建立';
+$strBookmarkDeleted = '書籤已經刪除.';
+$strBookmarkLabel = '書籤名稱';
+$strBookmarkQuery = 'SQL 語法書籤';
+$strBookmarkReplace = '取代相同名稱之書籤';
+$strBookmarkThis = '將此 SQL 語法加入書籤';
+$strBookmarkView = '查看';
+$strBrowse = '瀏覽';
+$strBrowseDistinctValues = '瀏覽不同數值';
+$strBrowseForeignValues = '瀏覽外來值';
+$strBufferPool = '緩衝區';
+$strBufferPoolActivity = '緩衝區活動率';
+$strBufferPoolUsage = '緩衝區使用空間';
+$strBufferReadMisses = '讀取遺漏';
+$strBufferReadMissesInPercent = '讀取遺漏 %';
+$strBufferWriteWaits = '寫入等候';
+$strBufferWriteWaitsInPercent = '寫入等候 %';
+$strBulgarian = '保加利亞語';
+$strBusyPages = '繁忙頁';
+$strBzip = '"bzipped"';
+
+$strCalendar = '日曆';
+$strCanNotLoadImportPlugins = '無法讀取載入的外掛程式, 請檢查安裝程序!';
+$strCannotLogin = '無法登入 MySQL 伺服器';
+$strCantLoad = '無法讀取 %s 模組,<br />請檢查 PHP 設定';
+$strCantLoadRecodeIconv = '未能讀取 iconv 或重新編碼程式來作文字編碼轉換, 請設定 php 來啟動這些模組或取消 phpMyAdmin 使用文字編碼轉換功能.';
+$strCantRenameIdxToPrimary = '無法將索引更名為 PRIMARY!';
+$strCantUseRecodeIconv = '當文編碼模組讀取後,未能使用 iconv, libiconv 或 recode_string 功能. 請檢查您的 php 設定.';
+$strCardinality = '組別';
+$strCaseInsensitive = '大小寫不相符';
+$strCaseSensitive = '大小寫相符';
+$strCentralEuropean = '中歐語';
+$strChange = '修改';
+$strChangeCopyMode = '建立新使用者及使用相同之權限, 及 ...';
+$strChangeCopyModeCopy = '... 保留舊使用者.';
+$strChangeCopyModeDeleteAndReload = ' ... 刪除舊使用者及重新讀取權限資料表.';
+$strChangeCopyModeJustDelete = ' ... 刪除舊使用者.';
+$strChangeCopyModeRevoke = ' ... 廢除所有舊使用者有效之權限並刪除.';
+$strChangeCopyUser = '更改登入資訊 / 複製使用者';
+$strChangeDisplay = '選擇顯示之欄位';
+$strChangePassword = '更改密碼';
+$strCharset = '文字編碼 (Charset)';
+$strCharsetOfFile = '文字編碼檔案:';
+$strCharsets = '文字編碼';
+$strCharsetsAndCollations = '文字編碼及校對';
+$strCheckAll = '全選';
+$strCheckOverhead = '檢查額外記錄 (overhead)'; // nor sure yet.
+$strCheckPrivs = '查詢權限';
+$strCheckPrivsLong = '查詢資料庫 &quot;%s&quot; 之權限.';
+$strCheckTable = '檢查資料表';
+$strChoosePage = '請選擇需要編輯的頁碼';
+$strColComFeat = '顯示欄位註解';
+$strCollation = '校對';
+$strColumnNames = '欄位名稱';
+$strColumnPrivileges = '指定欄位權限';
+$strCommand = '指令';
+$strComments = '註解';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 相容';
+$strCompleteInserts = '使用完整新增指令';
+$strCompression = '壓縮';
+$strCompressionWillBeDetected = '載入檔案壓縮會自動檢查: %s';
+$strConfigDefaultFileError = '無法讀取預設設定: "%1$s"';
+$strConfigFileError = 'phpMyAdmin 未能讀取您的設定檔! 這可能是因為 php 找到語法上的錯誤或 php 未能找到檔案而成.<br />請嘗試直接按下下方的連結開啟並查看 php 的錯誤信息. 通常的錯誤都來自某處漏了引號或分別.<br />如果按下連結後出現空白頁, 即代表沒有任何問題.';
+$strConfigureTableCoord = '請設定表格 %s 內的坐標';
+$strConnectionError = '無法連線: 錯誤設定.';
+$strConnections = '連線';
+$strConstraintsForDumped = '備份資料表限制';
+$strConstraintsForTable = '資料表限制';
+$strCookiesRequired = 'Cookies 必須啟動才能登入.';
+$strCopy = '複製';
+$strCopyDatabaseOK = '資料庫 %s 已複製到 %s';
+$strCopyTable = '複製資料表到: (格式為 資料庫名稱<b>.</b>資料表名稱):';
+$strCopyTableOK = '已經將資料表 %s 複製為 %s.';
+$strCopyTableSameNames = '無法複製到相同資料表!';
+$strCouldNotKill = 'phpMyAdmin 無法中斷指令 %s. 可能這指令已經結束.';
+$strCreate = '建立';
+$strCreateDatabaseBeforeCopying = '複製前建立資料庫 (CREATE DATABASE)';
+$strCreateIndex = '新增 &nbsp;%s&nbsp; 組索引欄';
+$strCreateIndexTopic = '新增一組索引';
+$strCreateNewDatabase = '建立新資料庫';
+$strCreateNewTable = '建立新資料表於資料庫 %s';
+$strCreatePage = '建立新一頁';
+$strCreatePdfFeat = '建立 PDF';
+$strCreationDates = '建立/更新/檢查 日期';
+$strCriteria = '篩選';
+$strCroatian = '克羅西亞語';
+$strCSV = 'CSV'; //USE ENG
+$strCyrillic = '西里爾語';
+$strCzech = '捷克語';
+$strCzechSlovak = '捷克語';
+
+$strDanish = '丹麥語';
+$strData = '資料';
+$strDatabase = '資料庫';
+$strDatabaseEmpty = '資料庫名稱並未輸入!!';
+$strDatabaseExportOptions = '資料庫輸出選項';
+$strDatabaseHasBeenDropped = '資料庫 %s 已被刪除';
+$strDatabases = '資料庫';
+$strDatabasesDropped = '%s 個資料庫已成功刪除.';
+$strDatabasesStats = '資料庫統計';
+$strDatabasesStatsDisable = '停止統計數據';
+$strDatabasesStatsEnable = '啟動統計數據';
+$strDatabasesStatsHeavyTraffic = '註: 啟動資料庫統計數據可能會產生大量由 Web 伺服器及 MySQL 之間的流量.';
+$strDataDict = '數據字典';
+$strDataOnly = '只有資料';
+$strDataPages = '包含資料頁';
+$strDBComment = '資料庫註解文字: ';
+$strDBCopy = '複製資料庫到';
+$strDbPrivileges = '指定資料庫權限';
+$strDBRename = '更改資料庫名稱到';
+$strDbSpecific = '指定資料庫';
+$strDefault = '預設值';
+$strDefaultEngine = '這 MySQL 伺服器的預設儲存引擎是 %s ';
+$strDefaultValueHelp = '預設值: 請只輸入該預設值, 無需加上任何反斜線或引號';
+$strDefragment = '整理資料表';
+$strDelayedInserts = '使用延遲式新增';
+$strDelete = '刪除';
+$strDeleteAndFlush = '刪除使用者及重新讀取權限.';
+$strDeleteAndFlushDescr = '這是一個最清潔的做法,但重新讀取權限需一段時間.';
+$strDeleted = '記錄已被刪除';
+$strDeleteNoUsersSelected = '並未選擇需要刪除之使用者!';
+$strDeleting = '刪除 %s';
+$strDelOld = '本頁的參考到資料表已不存在. 您希望刪除這些參考嗎?';
+$strDescending = '遞減';
+$strDescription = '說明';
+$strDictionary = '字典';
+$strDirtyPages = '問題頁';
+$strDisabled = '未啟動';
+$strDisableForeignChecks = '暫定外來鍵 (Foreign Key) 檢查';
+$strDisplayFeat = '功能顯示';
+$strDisplayOrder = '顯示次序';
+$strDisplayPDF = '顯示 PDF 概要';
+$strDoAQuery = '以範例查詢 (萬用字元 : "%")';
+$strDocu = '說明文件';
+$strDoYouReally = '您確定要 ';
+$strDrop = '刪除';
+$strDropDatabaseStrongWarning = '您將會刪除整個資料庫!';
+$strDropUsersDb = '刪除與使用者相同名稱之資料庫.';
+$strDumpingData = '列出以下資料庫的數據:';
+$strDumpSaved = '備份已儲到檔案 %s.';
+$strDumpXRows = '備份 %s 行, 由 %s 行開始.';
+$strDynamic = '動態';
+
+$strEdit = '編輯';
+$strEditPDFPages = '編輯 PDF 頁碼';
+$strEditPrivileges = '編輯權限';
+$strEffective = '實際';
+$strEmpty = '清空';
+$strEmptyResultSet = 'MySQL 傳回的查詢結果為空 (原因可能為:沒有找到符合條件的記錄)';
+$strEnabled = '啟動';
+$strEncloseInTransaction = '使用事務塊 (Transaction) 方式';
+$strEnd = '最後一頁';
+$strEndCut = '結束 剪取';
+$strEndRaw = '結束 原始資料';
+$strEngineAvailable = '%s 已支援這 MySQL 伺服器.';
+$strEngineDisabled = '%s 己於這個 MySQL 伺服器中停用.';
+$strEngines = '引擎';
+$strEngineUnsupported = '這 MySQL 版本並不接受 %s 儲存引擎.';
+$strEnglish = '英語';
+$strEnglishPrivileges = '注意: MySQL 權限名稱會以英語顯示';
+$strError = '錯誤';
+$strErrorInZipFile = 'ZIP 檔案錯誤:';
+$strEscapeWildcards = '萬用符號 _ 及 % 應正確地加入 \ ';
+$strEsperanto = '世界語';
+$strEstonian = '愛沙尼亞語';
+$strExcelEdition = 'Excel 版本';
+$strExecuteBookmarked = '執行書籤查詢';
+$strExplain = '說明 SQL';
+$strExport = '輸出';
+$strExtendedInserts = '伸延新增模式';
+$strExtra = '附加';
+
+$strFailedAttempts = '嘗試失敗';
+$strField = '欄位';
+$strFieldHasBeenDropped = '資料表 %s 已被刪除';
+$strFields = '欄位';
+$strFieldsEnclosedBy = '「欄位」使用字元:';
+$strFieldsEscapedBy = '「ESCAPE」使用字元:';
+$strFieldsTerminatedBy = '「欄位分隔」使用字元:';
+$strFileAlreadyExists = '檔案 %s 已存在,請更改檔案名稱或選擇「覆寫己存在檔案」選項.';
+$strFileCouldNotBeRead = '讀案無法讀取';
+$strFileNameTemplate = '檔案名稱樣式';
+$strFileNameTemplateDescriptionDatabase = '資料庫名稱';
+$strFileNameTemplateDescriptionServer = '伺服器名稱';
+$strFileNameTemplateDescriptionTable = '資料表名稱';
+$strFileNameTemplateRemember = '保留樣式名稱';
+$strFileToImport = '載入檔案';
+$strFixed = '固定';
+$strFlushPrivilegesNote = '註: phpMyAdmin 直接由 MySQL 權限資料表取得使用者權限. 如果使用者自行更改資料表, 資料表內容將可能與實際使用者情況有異. 在這情況下, 您應在繼續前 %s重新載入%s 權限資料表.';
+$strFlushQueryCache = '強迫更新語法快取';
+$strFlushTable = '強迫更新資料表 ("FLUSH")';
+$strFlushTables = '強迫更新 (關閉) 所有資料表';
+$strFormat = '格式';
+$strFormEmpty = '表格內漏填一些資料!';
+$strFreePages = '閒置頁';
+$strFullText = '顯示完整文字';
+$strFunction = '函數';
+
+$strGenBy = '建立';
+$strGeneralRelationFeat = '一般關聯功能';
+$strGenerate = '產生';
+$strGeneratePassword = '產生密碼';
+$strGenTime = '建立日期';
+$strGeorgian = '格魯吉亞語';
+$strGerman = '德語';
+$strGlobal = '整體';
+$strGlobalPrivileges = '整體權限';
+$strGlobalValue = '整體值';
+$strGo = '執行';
+$strGrantOption = '授權';
+$strGreek = '希臘語';
+$strGzip = '"gzipped"';
+
+$strHandler = '操作者';
+$strHasBeenAltered = '已經修改';
+$strHaveToShow = '您需要選擇最少顯示一行欄位';
+$strHebrew = '希伯來語';
+$strHome = '主目錄';
+$strHomepageOfficial = 'phpMyAdmin 官方網站';
+$strHost = '主機';
+$strHostEmpty = '請輸入主機名稱!';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = '匈牙利語';
+
+$strIcelandic = '冰島語';
+$strId = 'ID'; // use eng
+$strIdxFulltext = '全文檢索';
+$strIgnore = '忽略';
+$strIgnoreDuplicates = '略過重覆列';
+$strIgnoreInserts = '使用忽略加入 (insert)';
+$strImport = '載入';
+$strImportFiles = '輸入檔案';
+$strImportFormat = '載入檔案格式';
+$strImportSuccessfullyFinished = '載入成功, 共 %d 句語法已執行.';
+$strIndex = '索引鍵 INDEX';
+$strIndexes = '索引';
+$strIndexHasBeenDropped = '索引 %s 已被刪除';
+$strIndexName = '索引名稱&nbsp;:';
+$strIndexType = '索引類型&nbsp;:';
+$strIndexWarningTable = '於資料表 `%s` 中有索引問題';
+$strInnoDBAutoextendIncrement = '自動伸延大小';
+$strInnoDBAutoextendIncrementDesc = '當資料表容量接近滿時, 自動增大容量的大小.';
+$strInnoDBBufferPoolSize = '緩衝區大小';
+$strInnoDBBufferPoolSizeDesc = 'InnoDB 資料表用於快取資料及索引時使用的記憶體綬緩衝大小.';
+$strInnoDBDataFilePath = '資料檔案';
+$strInnoDBDataHomeDir = '資料主目錄';
+$strInnoDBDataHomeDirDesc = '所有 InnoDB 資料檔案的主資料目錄位置.';
+$strInnoDBPages = '頁';
+$strInnodbStat = 'InnoDB 狀態';
+$strInsecureMySQL = '設定檔內有關設定 (root登入及沒有密碼) 與預設的 MySQL 權限戶口相同。 MySQL 伺服器在這預設的設定運行的話會很容易被入侵,您應更改有關設定去防止安全漏洞。';
+$strInsert = '新增';
+$strInsertAsNewRow = '儲存為新記錄';
+$strInternalRelations = '內部關聯';
+$strInUse = '使用中';
+$strInvalidAuthMethod = '於設定內設定錯誤認證方式:';
+$strInvalidColumn = '欄 (%s) 區分錯誤.!';
+$strInvalidColumnCount = '欄位數目需要大於零.';
+$strInvalidCSVFieldCount = 'CSV 檔案第 %d 行中之欄位總數錯誤.';
+$strInvalidCSVFormat = 'Invalid format of CSV 檔案第 %d 行中之格式錯誤.';
+$strInvalidCSVParameter = 'CSV 載入時參數錯誤: %s';
+$strInvalidFieldAddCount = '你最少要加入一個欄位.';
+$strInvalidFieldCount = '資料表最少需要有一個欄位.';
+$strInvalidLDIImport = '這外掛程式不支援壓縮輸入!';
+$strInvalidRowNumber = '%d 不是一個有效的列數數目.';
+$strInvalidServerHostname = '伺服器 %1$s 主機名稱錯誤, 請翻查設定值.';
+$strInvalidServerIndex = '伺服器索引錯誤: "%s"';
+
+$strJapanese = '日語';
+$strJoins = '結合';
+$strJumpToDB = '跳到資料庫 &quot;%s&quot;.';
+$strJustDelete = '只從權限資料庫刪除使用者.';
+$strJustDeleteDescr = ' &quot;刪除&quot; 的使用者仍然能夠登入資料庫直至重新載入資料庫為止.';
+
+$strKeepPass = '請不要更改密碼';
+$strKeyCache = '鍵快取';
+$strKeyname = '鍵名';
+$strKill = 'Kill'; //should expressed in English
+$strKorean = '韓語';
+
+$strLandscape = '橫向';
+$strLanguageUnknown = '不知名語言: %1$s.';
+$strLatchedPages = '鎖上頁';
+$strLaTeX = 'LaTeX'; // use eng
+$strLatexCaption = '資料表標題';
+$strLatexContent = '資料表 __TABLE__ 內容';
+$strLatexContinued = '(連續)';
+$strLatexContinuedCaption = '連續資料表標題';
+$strLatexIncludeCaption = '包括資料表標題';
+$strLatexLabel = '標記鍵名';
+$strLatexStructure = '資料表 __TABLE__ 結構';
+$strLatvian = '拉脫維亞語';
+$strLDI = 'CSV 使用 LOAD DATA';
+$strLDILocal = '使用 LOCAL 關鍵字';
+$strLengthSet = '長度/集合*';
+$strLimitNumRows = '筆記錄/每頁';
+$strLinesTerminatedBy = '「下一行」使用字元:';
+$strLinkNotFound = '找不到連結';
+$strLinksTo = '連結到';
+$strLithuanian = '立陶宛語';
+$strLocalhost = '本地';
+$strLocationTextfile = '文字檔案的位置';
+$strLogin = '登入';
+$strLoginInformation = '登入資訊';
+$strLogout = '登出系統';
+$strLogPassword = '密碼:';
+$strLogServer = '伺服器';
+$strLogUsername = '登入名稱:';
+$strLongOperation = '這個作業所用時間會較長, 繼續?';
+
+$strMaxConnects = '最大連線數目';
+$strMaximalQueryLength = '建立之查詢最大長度';
+$strMaximumSize = '最大容量: %s%s';
+$strMbExtensionMissing = '找不到 PHP 內的 mbstring 編碼模組, 沒有這個模組, phpMyAdmin 無法準確地分割雙字元文字, 而可能產生問題.';
+$strMbOverloadWarning = '你在 PHP 設定內啟動了 mbstring.func_overload 選項, 這個選項暫時不兼容 phpMyAdmin , 你可能會損失部份資料!';
+$strMIME_available_mime = '可使用 MIME 類型';
+$strMIME_available_transform = '可使用轉換方式';
+$strMIME_description = '說明';
+$strMIME_MIMEtype = 'MIME 類型';
+$strMIME_nodescription = '這個轉換方式沒有說明.<br />請向作者查詢 %s 是甚麼用途.';
+$strMIME_transformation = '瀏覽器轉換方式';
+$strMIME_transformation_note = '有關可使用之轉換方式選項及 MINE 類型轉換選項, 請查看 %s轉換方式說明%s';
+$strMIME_transformation_options = '轉換方式選項';
+$strMIME_transformation_options_note = '請用以下的格式輸入轉換選項值: \'a\', 100, b,\'c\'...<br />如您需要輸入反斜線 ("\") 或單引號 ("\'") 請再加上反斜線 (例如 \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_without = 'MIME 類型以斜體顯示是沒有分隔轉換功能';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; // keep in SQL statement
+$strModifications = '修改已儲存';
+$strModify = '修改';
+$strModifyIndexTopic = '修改索引';
+$strMoveTable = '移動資料表到:(格式為 資料庫名稱<b>.</b>資料表名稱)';
+$strMoveTableOK = '資料表 %s 已經移動到 %s.';
+$strMoveTableSameNames = '無法移動到相同資料表!';
+$strMultilingual = '多語言';
+$strMyISAMDataPointerSize = '資料指標大小';
+$strMyISAMDataPointerSizeDesc = '預設的資料指標大小時當以 CREATE TABLE 建立 MyISAM 資料表, 而並無設定最大列數 (MAX_ROWS) 時, 將會以位完組為設定大小';
+$strMyISAMMaxExtraSortFileSize = '臨時檔案建立索引時最大的容量';
+$strMyISAMMaxExtraSortFileSizeDesc = '如臨時檔案用作快速 MyISAM 索引時大於這個設定的容量, 建議使用鍵名快取方式.';
+$strMyISAMMaxSortFileSize = '臨時排序檔案最大容量';
+$strMyISAMMaxSortFileSizeDesc = 'MySQL 用於重建 MyISAM 索引 (REPAIR TABLE, ALTER TABLE, 或 LOAD DATA INFILE) 時的臨時檔案大小.';
+$strMyISAMRecoverOptions = '自動修復模式';
+$strMyISAMRecoverOptionsDesc = '這個模式將會自動修復損壞之 MyISAM 資料表, 如同於伺服器啟動設定加入 --myisam-recover 選項.';
+$strMyISAMRepairThreads = '修復工作';
+$strMyISAMRepairThreadsDesc = '如數值大於 1 , MyISAM 資料表於修復時之索引將會以同步建立.';
+$strMyISAMSortBufferSize = '排序緩衝大小';
+$strMyISAMSortBufferSizeDesc = '這個緩衝大小是分配給在執行修復資料表指令 (REPAIR TABLE) 、執行 CREATE INDEX 或 ALTER TABLE 指令時, 用於排序 MyISAM 索引之用';
+$strMySQLCharset = 'MySQL 文字編碼';
+$strMysqlClientVersion = 'MySQL 客戶端版本';
+$strMySQLConnectionCollation = 'MySQL 連線校對';
+$strMySQLSaid = 'MySQL 傳回: ';
+$strMySQLShowProcess = '顯示程序 (Process)';
+
+$strName = '名稱';
+$strNext = '下一個';
+$strNo = ' 否 ';
+$strNoActivity = '由於已閒置了達 %s 秒, 請重新登入';
+$strNoDatabases = '沒有資料庫';
+$strNoDatabasesSelected = '沒有資料庫選擇.';
+$strNoDescription = '沒有說明';
+$strNoDetailsForEngine = '這儲存引擎並無詳細的狀態資料.';
+$strNoDropDatabases = '"DROP DATABASE" 指令已經停用.';
+$strNoExplain = '略過說明 SQL';
+$strNoFilesFoundInZip = '於 ZIP 檔案內找不到任何檔案!';
+$strNoFrames = 'phpMyAdmin 較為適合使用在支援<b>頁框</b>的瀏覽器.';
+$strNoIndex = '沒有已定義的索引!';
+$strNoIndexPartsDefined = '部份索引資料還未定義!';
+$strNoModification = '沒有變更';
+$strNone = '不適用';
+$strNoOptions = '這種格式並無選項';
+$strNoPassword = '不用密碼';
+$strNoPermission = 'Web 伺服器沒有權限儲存檔案 %s.';
+$strNoPhp = '移除 PHP 程式碼';
+$strNoPrivileges = '沒有權限';
+$strNoRights = '您現在沒有足夠的權限!';
+$strNoRowsSelected = '並無資料列已選擇';
+$strNoSpace = '空間不足儲存檔案 %s.';
+$strNoTablesFound = '資料庫中沒有資料表';
+$strNoThemeSupport = '不支援款式功能, 請查看設定案及儲存款式檔案的資料夾 %s.';
+$strNotNumber = '這不是一個數字!';
+$strNotOK = '未能確定';
+$strNotSet = '<b>%s</b> 資料表找不到或還未在 %s 設定';
+$strNoUsersFound = '找不到使用者';
+$strNoValidateSQL = '略過檢查 SQL';
+$strNull = 'Null'; //should expressed in English
+$strNumberOfFields = '欄位數目';
+$strNumSearchResultsInTable = '%s 項資料符合 - 於資料表 <i>%s</i>';
+$strNumSearchResultsTotal = '<b>總計:</b> <i>%s</i> 項資料符合';
+$strNumTables = '個資料表';
+
+$strOK = '確定';
+$strOpenNewWindow = '開啟新 phpMyAdmin 視窗';
+$strOperations = '管理';
+$strOperator = '操作員';
+$strOptimizeTable = '最佳化資料表';
+$strOr = '或';
+$strOverhead = '多餘';
+$strOverwriteExisting = '覆寫已存在檔案';
+
+$strPageNumber = '頁碼:';
+$strPagesToBeFlushed = '強迫更新頁';
+$strPaperSize = '紙張大小';
+$strPartialImport = '部份載入';
+$strPartialText = '顯示部份文字';
+$strPassword = '密碼';
+$strPasswordChanged = '%s 的密碼已成功更改.';
+$strPasswordEmpty = '請輸入密碼!';
+$strPasswordHashing = '密碼雜湊';
+$strPasswordNotSame = '第二次輸入的密碼不同!';
+$strPDF = 'PDF'; // USE ENG
+$strPdfDbSchema = '"%s" 資料庫概要 - 第 %s 頁';
+$strPdfInvalidTblName = '資料表 "%s" 不存在!';
+$strPdfNoTables = '沒有資料表';
+$strPDFReportTitle = '報告標題';
+$strPerHour = '每小時';
+$strPerMinute = '每分鐘';
+$strPerSecond = '每秒';
+$strPersian = '波斯語';
+$strPhoneBook = '電話簿';
+$strPhp = '建立 PHP 程式碼';
+$strPHPVersion = 'PHP 版本';
+$strPmaDocumentation = 'phpMyAdmin 說明文件';
+$strPmaUriError = ' 必須在設定檔內設定 <tt>$cfg[\'PmaAbsoluteUri\']</tt> !';
+$strPolish = '波蘭語';
+$strPortrait = '直向';
+$strPos1 = '第一頁';
+$strPrevious = '前一頁';
+$strPrimary = '主鍵 PRIMARY';
+$strPrimaryKeyHasBeenDropped = '主鍵已被刪除';
+$strPrimaryKeyName = '主鍵的名稱必須稱為 PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>必須</b>是主鍵的名稱以及是<b>唯一</b>一組主鍵!)';
+$strPrint = '列印';
+$strPrintView = '列印檢視';
+$strPrintViewFull = '列印檢視 (顯示完整文字)';
+$strPrivDescAllPrivileges = '包括所有權限除了授權 (GRNANT).';
+$strPrivDescAlter = '容許修改現有資料表的結構.';
+$strPrivDescAlterRoutine = '容許修改及刪除儲存程序.';
+$strPrivDescCreateDb = '容許建立新資料庫及資料表.';
+$strPrivDescCreateRoutine = '容許建立儲存程序';
+$strPrivDescCreateTbl = '容許建立新資料表.';
+$strPrivDescCreateTmpTable = '容許建立暫時性資料表.';
+$strPrivDescCreateUser = '容許建立、刪除及重新命名使用者戶口.';
+$strPrivDescCreateView = '容許建立新的檢視.';
+$strPrivDescDelete = '容許刪除記錄.';
+$strPrivDescDropDb = '容許刪除資料庫及資料表.';
+$strPrivDescDropTbl = '容許刪除資料表.';
+$strPrivDescExecute = '容許 執行預先儲存之程式. 於本 MySQL 版本無效.';
+$strPrivDescExecute5 = '容許執行儲存程序.';
+$strPrivDescFile = '容許輸入及輸出數據到檔案.';
+$strPrivDescGrant = '容許新增使用者及權限而無需重新讀取權限資料表.';
+$strPrivDescIndex = '容許建立及刪除索引.';
+$strPrivDescInsert = '容許新增及取代數據.';
+$strPrivDescLockTables = '容許鎖上現時連線之資料表.';
+$strPrivDescMaxConnections = '限制每小時使用者開啟新連線的數目.';
+$strPrivDescMaxQuestions = '限制每小時使用者查詢的數目.';
+$strPrivDescMaxUpdates = '限制每小時使用者更改資料表及數據表之指令的數目.';
+$strPrivDescMaxUserConnections = '限制每個使用者之同步連線.';
+$strPrivDescReferences = '於本 MySQL 版本無效.';
+$strPrivDescReload = '容許重新讀取伺服器設定及強行更新伺服器快取記憶.';
+$strPrivDescReplClient = '容許用戶查詢 slaves / masters 在何處.';
+$strPrivDescReplSlave = '需要複製的 slaves.';
+$strPrivDescSelect = '容許讀取數據.';
+$strPrivDescShowDb = '可讀取整個資料庫清單.';
+$strPrivDescShowView = '容許執行 SHOW CREATE VIEW 查詢.';
+$strPrivDescShutdown = '容許停止伺服器.';
+$strPrivDescSuper = '容許連線, 就算超過了最大連線限制; 用於最高系統管理如設定整體權限或中止其他使用者指令.';
+$strPrivDescUpdate = '容許更新數據.';
+$strPrivDescUsage = '沒有權限.';
+$strPrivileges = '權限';
+$strPrivilegesReloaded = '權限已成功重新讀取.';
+$strProcesses = '處理';
+$strProcesslist = '系統執行清單';
+$strProtocolVersion = '通訊協定版本';
+$strPutColNames = '將欄位名稱放在首行';
+
+$strQBE = '依範例查詢 (QBE)';
+$strQBEDel = '移除';
+$strQBEIns = '新增';
+$strQueryCache = '查詢快取';
+$strQueryFrame = '查詢視窗';
+$strQueryOnDb = '在資料庫 <b>%s</b> 執行 SQL 語法:';
+$strQueryResultsOperations = '查詢結果操作';
+$strQuerySQLHistory = 'SQL 歷程';
+$strQueryStatistics = '<b>查詣統計</b>: 當統計啟動後, 共有 %s 個查詢傳送到此伺服器.';
+$strQueryTime = '查詢需時 %01.4f 秒';
+$strQueryType = '查詢方式';
+$strQueryWindowLock = '不要將這語法覆蓋到本視窗外的SQL語法';
+
+$strReadRequests = '讀取要求';
+$strReceived = '接收';
+$strRecords = '記錄';
+$strReferentialIntegrity = '檢查指示完整性:';
+$strRefresh = '更新';
+$strRelationalSchema = '關聯概要';
+$strRelationNotWorking = '關聯資料表的附加功能未能啟動, %s請按此%s 查出問題原因.';
+$strRelations = '關聯';
+$strRelationsForTable = 'RELATIONS FOR TABLE'; // keep in SQL statement
+$strRelationView = '關聯檢視';
+$strReloadingThePrivileges = '重新讀取權限';
+$strReloadPrivileges = '重新讀取權限'; //to translate
+$strRemoveSelectedUsers = '移除已選擇使用者';
+$strRenameDatabaseOK = '資料庫 %s 已更改名稱為 %s';
+$strRenameTable = '將資料表改名為';
+$strRenameTableOK = '已經將資料表 %s 改名成 %s';
+$strRepairTable = '修復資料表';
+$strReplaceNULLBy = '將 NULL 取代為';
+$strReplaceTable = '以檔案取代資料表資料';
+$strReplication = '複製';
+$strReset = '重置';
+$strResourceLimits = '資源限制';
+$strReType = '確認密碼';
+$strRevoke = '移除';
+$strRevokeAndDelete = '廢除使用者所有有效之權限並刪除.';
+$strRevokeAndDeleteDescr = '使用者仍然有 USAGE 權限直至權限資料表更新讀取.';
+$strRevokeMessage = '您已移除這位使用者的權限: %s';
+$strRomanian = '羅馬尼亞語';
+$strRowLength = '資料列長度';
+$strRows = '資料列列數';
+$strRowsFrom = '筆記錄,開始列數:';
+$strRowSize = '資料列大小';
+$strRowsModeFlippedHorizontal = '垂直 (旋轉標題)';
+$strRowsModeHorizontal = '水平';
+$strRowsModeOptions = '顯示為 %s 方式 及 每隔 %s 行顯示欄名';
+$strRowsModeVertical = '垂直';
+$strRowsStatistic = '資料列統計數值';
+$strRunning = '在 %s 執行';
+$strRunQuery = '執行語法';
+$strRunSQLQuery = '在資料庫 %s 執行以下指令';
+$strRunSQLQueryOnServer = '於伺服器 %s 執行 SQL 語法';
+$strRussian = '俄語';
+
+$strSave = '儲存';
+$strSaveOnServer = '儲存到伺服器於 %s 目錄';
+$strScaleFactorSmall = '比例倍數太細, 無法將圖表放在一頁內';
+$strSearch = '搜索';
+$strSearchFormTitle = '搜索資料庫';
+$strSearchInTables = '於以下資料表:';
+$strSearchNeedle = '尋找之文字或數值 (萬用字元: "%"):';
+$strSearchOption1 = '任何一組文字';
+$strSearchOption2 = '所有文字';
+$strSearchOption3 = '完整詞語';
+$strSearchOption4 = '以規則表示法 (regular expression) 搜索';
+$strSearchResultsFor = '搜索 "<i>%s</i>" 的結果 %s:';
+$strSearchType = '尋找:';
+$strSecretRequired = '設定檔案現在需要密碼 (passphrase) (blowfish_secret).';
+$strSelectADb = '請選擇資料庫';
+$strSelectAll = '全選';
+$strSelectBinaryLog = '選擇檢視二進制記錄';
+$strSelectFields = '選擇欄位 (至少一個)';
+$strSelectNumRows = '查詢中';
+$strSelectTables = '選擇資料表';
+$strSend = '下載儲存';
+$strSent = '送出';
+$strServer = '伺服器';
+$strServerChoice = '選擇伺服器';
+$strServerNotResponding = '伺服器並無回應';
+$strServerStatus = '運行資訊';
+$strServerStatusDelayedInserts = '延遲插入';
+$strServerStatusUptime = '這 MySQL 伺服器已啟動了 %s. 伺服器於 %s 啟動.';
+$strServerTabVariables = '資訊';
+$strServerTrafficNotes = '<b>伺服器流量</b>: 這些表顯示了此 MySQL 伺服器自啟動以來的網絡流量統計。';
+$strServerVars = '伺服器資訊及設定';
+$strServerVersion = '伺服器版本';
+$strSessionValue = '程序數值';
+$strSetEnumVal = '如欄位格式是 "enum" 或 "set", 請使用以下的格式輸入: \'a\',\'b\',\'c\'...<br />如在數值上需要輸入反斜線 (\) 或單引號 (\') , 請再加上反斜線 (例如 \'\\\\xyz\' or \'a\\\'b\').';
+$strShow = '顯示';
+$strShowAll = '顯示全部';
+$strShowColor = '顯示顏色';
+$strShowDatadictAs = '數據字典格式';
+$strShowFullQueries = '顯示完整查詢';
+$strShowGrid = '顯示框格';
+$strShowingBookmark = '顯示書籤';
+$strShowingRecords = '顯示記錄';
+$strShowOpenTables = '顯示開啟資料表';
+$strShowPHPInfo = '顯示 PHP 資訊';
+$strShowSlaveHosts = '顯示 slave 主機';
+$strShowSlaveStatus = '顯示 slave 狀態';
+$strShowStatusReset = '重設';
+$strShowTableDimension = '顯示表格大小';
+$strShowTables = '顯示資料表';
+$strShowThisQuery = '重新顯示 SQL 語法 ';
+$strSimplifiedChinese = '簡體中文';
+$strSingly = '(只會排序現時的記錄)';
+$strSize = '大小';
+$strSkipQueries = '開始時略過多少行記錄 (語法)';
+$strSlovak = '斯洛伐克語';
+$strSlovenian = '斯洛文尼亞語';
+$strSocketProblem = '( 或者本機 MySQL 伺服器之 socket 並未正確設定)';
+$strSort = '排序';
+$strSortByKey = '依鍵名排序';
+$strSorting = '排序';
+$strSpaceUsage = '已使用空間';
+$strSpanish = '西班牙語';
+$strSplitWordsWithSpace = '每組文字以空格 (" ") 分隔.';
+$strSQL = 'SQL'; // should express in english
+$strSQLCompatibility = 'SQL 兼容模式';
+$strSQLExportType = '輸出方式';
+$strSQLParserBugMessage = '這可能是您找到了 SQL 分析程式的一些程式錯誤,請細心查看您的語法,檢查一下引號是正確及沒有遺漏,其他可能出錯的原因可能來自您上載檔案時在引號外的地方使用了二進制碼。您可以嘗試在 MySQL 命令列介面執行該語法。如 MySQL 伺服器發出錯誤信息,這可能幫助您去找出問題所在。如您仍然未能解決問題,或在分析程式出現錯誤,但在命令列模式能正常執行,請將該句出現錯誤的 SQL 語法抽出,並將以下的"剪取"部份一同提交到臭虫區:';
+$strSQLParserUserError = '可能是您的 SQL 語法出現錯誤,如 MySQL 伺服器發出錯誤信息,這可能幫助您去找出問題所在。';
+$strSQLQuery = 'SQL 語法';
+$strSQLResult = 'SQL 查詢結果';
+$strSQPBugInvalidIdentifer = '無效的識別碼 (Invalid Identifer)';
+$strSQPBugUnclosedQuote = '未完結的引號 (Unclosed quote)';
+$strSQPBugUnknownPunctuation = '不知明的標點符號 (Unknown Punctuation String)';
+$strStatCheckTime = '最後檢查';
+$strStatCreateTime = '建立';
+$strStatement = '敘述';
+$strStatisticsOverrun = '於較繁忙的伺服器, 計算器可能會溢出, 令 MySQL 伺服器提供之統計有誤差.';
+$strStatUpdateTime = '最後更新';
+$strStatus = '狀態';
+$strStorageEngine = '儲存引擎';
+$strStorageEngines = '儲存引擎';
+$strStrucCSV = 'CSV 資料';
+$strStrucData = '結構與資料';
+$strStrucExcelCSV = 'MS Excel 的 CSV 格式';
+$strStrucNativeExcel = '原始 MS Excel 資料';
+$strStrucOnly = '只有結構';
+$strStructPropose = '分析資料表結構';
+$strStructure = '結構';
+$strSubmit = '送出';
+$strSuccess = '您的SQL語法已順利執行';
+$strSum = '總計';
+$strSwedish = '瑞典語';
+$strSwitchToDatabase = '轉移到複製之資料庫';
+$strSwitchToTable = '跳到已複製之資料表';
+
+$strTable = '資料表';
+$strTableAlreadyExists = '資料表 %s 已存在!';
+$strTableComments = '資料表註解文字';
+$strTableEmpty = '請輸入資料表名稱!';
+$strTableHasBeenDropped = '資料表 %s 已被刪除';
+$strTableHasBeenEmptied = '資料表 %s 已被清空';
+$strTableHasBeenFlushed = '資料表 %s 已被強迫更新';
+$strTableMaintenance = '資料表維護';
+$strTableOfContents = '目錄';
+$strTableOptions = '資料表選項';
+$strTables = '%s 資料表';
+$strTableStructure = '資料表格式:';
+$strTakeIt = '選用';
+$strTblPrivileges = '指定資料表權限';
+$strTempData = '暫存資料';
+$strTextAreaLength = ' 由於長度限制<br /> 此欄位不能編輯 ';
+$strThai = '泰語';
+$strTheme = '款式';
+$strThemeDefaultNotFound = '找不到預設佈景主題 %s !';
+$strThemeNoPreviewAvailable = '並無預覽.';
+$strThemeNotFound = '找不到佈景主題 %s !';
+$strThemeNoValidImgPath = '找不到佈景主題 %s 設定圖像之路徑!';
+$strThemePathNotFound = '找不到佈景主題 %s 之設定路徑!';
+$strThisHost = '指定主機';
+$strThreads = '線程';
+$strThreadSuccessfullyKilled = '指令 %s 已成功中止.';
+$strTime = '時間';
+$strToggleScratchboard = '轉換便條';
+$strTotal = '總計';
+$strTotalUC = '總共';
+$strTraditionalChinese = '繁體中文';
+$strTraditionalSpanish = '傳統西班牙語';
+$strTraffic = '流量';
+$strTransactionCoordinator = '交易協調器';
+$strTransformation_application_octetstream__download = '於欄位顯示連線來下載二進制資料. 第一個選項是二進制的檔案名稱. 第二個選項可設定可用的欄位名稱用作檔案名稱. 如您設定了第二個選項, 第一個選項無需設定';
+$strTransformation_application_octetstream__hex = '以十六進制方式顯示.';
+$strTransformation_image_jpeg__inline = '顯示可按式圖像; 選項; 寬度,高度[以像素為單位] (保時原有比例)';
+$strTransformation_image_jpeg__link = '顯示圖像的連線 (直接下載).';
+$strTransformation_image_png__inline = '參看 image/jpeg: 內建';
+$strTransformation_text_plain__external = '只限於 LINUX : 執行外部程式及將內容以標準輸入模式輸入. 輸出程式之標準輸出. 預設是整齊的, 方便顯示 HTML 碼. 由於保安理由, 您需要自行編輯 libraries/transformations/text_plain__external.inc.php 及加入需要使用工具作為執行. 第一個選項為有多少個程式需要使用, 第二個選項為這式程式的參數, 第三個選項, 如設定為 1 將會使用 htmlspecialchars() 轉換輸出 (預設: 1). 第四個選項, 如設定為 1 將會加入 NOWRAP 於內容的表格內, 令輸出之所有內容都不會重新排位 (預設: 1)';
+$strTransformation_text_plain__formatted = '保存原本內容之格式. 不進行任何 Escaping 處理.';
+$strTransformation_text_plain__imagelink = '顯示圖像及連結, 數據內容是檔案名稱; 第一個選項是網址前段 (例 "http://domain.com/" ), 第二個選項是寬度的像素,第三個選項是高度的像素.';
+$strTransformation_text_plain__link = '顯示連結, 數據內容是檔案名稱; 第一個選項是網址前段 (例 "http://domain.com/" ), 第二選項是連結的標題.';
+$strTransformation_text_plain__sql = '格式化文字為 SQL 查詢及特出語法.';
+$strTransformation_text_plain__substr = '只顯示部份的字串. 第一個選項為字串開始輸出的位置 (offset) (預設: 0). 第二個選項為多少個字串輸出. 留空為輸出餘下所有字串. 第三個選項為當部份字串取回後顯示什麼字串於結尾 (預設: ...) .';
+$strTruncateQueries = '刪除已顯示查詢';
+$strTurkish = '土耳其語';
+$strType = '型態';
+
+$strUkrainian = '烏克蘭語';
+$strUncheckAll = '全部取消';
+$strUnicode = '統一碼 (Unicode)';
+$strUnique = '唯一鍵 UNIQUE';
+$strUnknown = '不詳';
+$strUnselectAll = '全部取消';
+$strUpdatePrivMessage = '您已經更新了 %s 的權限.';
+$strUpdateProfileMessage = '資料己經更新.';
+$strUpdateQuery = '更新語法';
+$strUpdComTab = '請參看說明文件查詢如何更新 Column_comments 資料表';
+$strUpgrade = '您應該更新到 %s %s 或之後.';
+$strUploadLimit = '你正嘗試上載大容量檔案,請查看此 %s文件%s 如何略過此限制.';
+$strUsage = '使用';
+$strUseBackquotes = '在資料表及欄位使用引號';
+$strUseHostTable = '使用主機資料表';
+$strUser = '使用者';
+$strUserAlreadyExists = '使用者 %s 己存在!';
+$strUserEmpty = '請輸入使用者名稱!';
+$strUserName = '使用者名稱';
+$strUserNotFound = '選擇的使用者在權限資料表內找不到.';
+$strUserOverview = '使用者一覽';
+$strUsersDeleted = '選擇的使用者已成功刪除.';
+$strUsersHavingAccessToDb = '可讀取 &quot;%s&quot; 之使用者';
+$strUseTabKey = '按 TAB 鍵跳到下一個數值, 或 CTRL+方向鍵 作隨意移動';
+$strUseTables = '使用資料表';
+$strUseTextField = '文字輸入';
+$strUseThisValue = '使用此值';
+
+$strValidateSQL = '檢查 SQL';
+$strValidatorError = 'SQL 分析程式未能啟動,請檢查是否已將 %s文件%s 內的 PHP 檔案安裝。';
+$strValue = '值';
+$strVar = '資訊';
+$strVersionInformation = '版本資訊';
+$strView = '檢視';
+$strViewDump = '檢視資料表的備份概要 (dump schema)';
+$strViewDumpDatabases = '顯示資料庫概要 (schema)';
+$strViewDumpDB = '檢視資料庫的備份概要 (dump schema)';
+$strViewHasBeenDropped = '檢視 %s 己被刪除.';
+
+$strWebServerUploadDirectory = 'Web 伺服器上載目錄';
+$strWebServerUploadDirectoryError = '設定之上載目錄錯誤,未能使用';
+$strWelcome = '歡迎使用 %s';
+$strWestEuropean = '西歐語文';
+$strWildcard = '萬用字元';
+$strWindowNotFound = '目地的視窗無法更新. 可能你已關閉此視窗或你的瀏覽器於安全設定內啟動了無法跨視窗更新';
+$strWithChecked = '選擇的資料表:';
+$strWriteRequests = '寫入要求';
+$strWrongUser = '錯誤的使用者名稱或密碼,拒絕存取';
+
+$strXML = 'XML'; //USE ENG
+
+$strYes = ' 是 ';
+
+$strZeroRemovesTheLimit = '註: 設定這些選項為 0 (零) 可解除限制.';
+$strZip = '"zipped"';
+
+
+// To translate:
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/croatian-utf-8.inc.php b/lang/croatian-utf-8.inc.php
new file mode 100644
index 0000000000..736f1f7303
--- /dev/null
+++ b/lang/croatian-utf-8.inc.php
@@ -0,0 +1,1449 @@
+<?php
+/* $Id$ */
+
+/**
+ * Croatian language file by
+ * Renato Pavičić <renato<at>translator-shop.org>
+ */
+
+$charset = 'utf-8';
+$allow_recoding = TRUE;
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Ned', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub');
+$month = array('Sij', 'Velj', 'Ožu', 'Tra', 'Svi', 'Lip', 'Srp', 'Kol', 'Ruj', 'Lis', 'Stu', 'Pro');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y u %I:%M %p';
+$timespanfmt = '%s dana, %s sati, %s minuta i %s sekunda';
+
+
+$strAbortedClients = 'Prekinuto';
+$strAccessDeniedCreateConfig = 'Vjerojatan razlog je nepostojeća konfiguracijska datoteka. Za izradu možete upotrijebiti naredbu %1$ssetup script%2$s';
+$strAccessDeniedExplanation = 'phpMyAdmin pokušao je uspostaviti vezu s MySQL poslužiteljem, ali je poslužitelj odbio povezivanje. U datoteci config.inc.php provjerite naziv računala, korisničko ime i lozinku, te provjerite da se odgovaraju podacima koje vam je dao administrator MySQL poslužitelja.';
+$strAccessDenied = 'Pristup odbijen';
+$strAction = 'Aktivnost';
+$strAddAutoIncrement = 'Dodaj vrijednost AUTO_INCREMENT';
+$strAddClause = 'Dodaj %s';
+$strAddConstraints = 'Dodaj prisile';
+$strAddDeleteColumn = 'Dodaj/Izbriši stupce polja';
+$strAddDeleteRow = 'Dodaj/Izbriši redak kriterija';
+$strAddFields = 'Dodaj %s polja';
+$strAddHeaderComment = 'Dodaj prilagođeni komentar u zaglavlje ("\\n" razdvaja retke)';
+$strAddIntoComments = 'Dodaj u komentare';
+$strAddNewField = 'Dodaj novo polje';
+$strAddPrivilegesOnDb = 'Dodaj privilegije za sljedeće baze podataka';
+$strAddPrivilegesOnTbl = 'Dodaj privilegije za sljedeću tablicu';
+$strAddSearchConditions = 'Dodaj uvjete pretrage (sadržaj uvjeta "gdje"):';
+$strAddToIndex = 'Dodaj u indeks &nbsp;%s&nbsp;stupci';
+$strAddUser = 'Dodaj novog korisnika';
+$strAddUserMessage = 'Dodali ste novog korisnika.';
+$strAdministration = 'Administracija';
+$strAfterInsertBack = 'Kreni nazad na prethodnu stranicu';
+$strAfterInsertNewInsert = 'Umetni dodatni novi redak';
+$strAfterInsertNext = 'Uredi sljedeći redak';
+$strAfterInsertSame = 'Kreni nazad na ovu stranicu';
+$strAfter = 'Poslije %s';
+$strAllowInterrupt = 'Dopusti prekid uvoza u slučaju da skripta otkrije blizinu vremenskog ograničenja. Ovo bi mogao biti dobar način uvoza velikih datoteka, ali može prekinuti transakcije.';
+$strAll = 'Sve';
+$strAllTableSameWidth = 'Prikazati sve tablice uz istu širinu?';
+$strAlterOrderBy = 'Izmijeni rasporede tablice po';
+$strAnalyzeTable = 'Analiziraj tablicu';
+$strAnd = 'I';
+$strAndThen = 'i potom';
+$strAngularLinks = 'Kutne veze';
+$strAnIndex = 'Indeks je pridodan na %s';
+$strAny = 'Bilo koji';
+$strAnyHost = 'Bilo koje računalo';
+$strAnyUser = 'Bilo koji korisnik';
+$strApproximateCount = 'Može biti približno. Pogledajte ČPP 3.11';
+$strAPrimaryKey = 'Primarni ključ je dodan na %s';
+$strArabic = 'Arapski';
+$strArmenian = 'Armenski';
+$strAscending = 'Uzlazno';
+$strAtBeginningOfTable = 'Pri početku tablice';
+$strAtEndOfTable = 'Pri završetku tablice';
+$strAttr = 'Atributi';
+$strAutomaticLayout = 'Automatski raspored';
+
+$strBack = 'Nazad';
+$strBaltic = 'Baltički';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Binarno';
+$strBinaryDoNotEdit = 'Binarno - ne uređuj';
+$strBinaryLog = 'Binarni zapisnik';
+$strBinLogEventType = 'Vrsta događaja';
+$strBinLogInfo = 'Podaci';
+$strBinLogName = 'Naziv zapisnika';
+$strBinLogOriginalPosition = 'Izvorni položaj';
+$strBinLogPosition = 'Položaj';
+$strBinLogServerId = 'ID poslužitelja';
+$strBookmarkAllUsers = 'Neka svi korisnici imaju pristup ovom favoritu';
+$strBookmarkCreated = 'Izrađen je favorit %s';
+$strBookmarkDeleted = 'Favorit je izbrisan.';
+$strBookmarkLabel = 'Oznaka';
+$strBookmarkQuery = 'Favorizirani SQL upit';
+$strBookmarkReplace = 'Zamijeni postojećim favoritom istog naziva';
+$strBookmarkThis = 'Favoriziraj ovaj SQL upit';
+$strBookmarkView = 'Samo prikaz';
+$strBrowseDistinctValues = 'Pretraži prepoznatljive vrijednosti';
+$strBrowseForeignValues = 'Pretraži strane vrijednosti';
+$strBrowse = 'Pretraživanje';
+$strBufferPoolActivity = 'Aktivnost međuspremnika';
+$strBufferPool = 'Međuspremnik';
+$strBufferPoolUsage = 'Iskoristivost međuspremnika';
+$strBufferReadMissesInPercent = 'Propuštena čitanja pri %';
+$strBufferReadMisses = 'Propuštena čitanja';
+$strBufferWriteWaitsInPercent = 'Zapisivanje čeka pri %';
+$strBufferWriteWaits = 'Zapisivanje čeka';
+$strBulgarian = 'Bugarski';
+$strBusyPages = 'Zaposlene stranice';
+$strBzip = '"bzipano"';
+
+$strCalendar = 'Kalendar';
+$strCancel = 'Odustani';
+$strCanNotLoadExportPlugins = 'Nije moguće učitati dodatke za izvoz. Provjerite svoju instalaciju!';
+$strCanNotLoadImportPlugins = 'Nije moguće učitati dodatke za uvoz. Provjerite svoju instalaciju!';
+$strCannotLogin = 'Prijavljivanje na MySQL poslužitelj nije moguće';
+$strCantLoad = 'Nije moguće učitati proširenje [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] . Provjerite svoju PHP konfiguraciju.';
+$strCantLoadRecodeIconv = 'Nije moguće učitati proširenja iconv ili recode potrebna za pretvaranje znakova. Potrebno je konfigurirati PHP radi omogućavanja ovih proširenja ili unutar phpMyAdmin onemogućiti pretvaranje znakova.';
+$strCantRenameIdxToPrimary = 'Preimenovanje indeksa u PRIMARY nije moguće!';
+$strCantUseRecodeIconv = 'Nije moguće upotrijebiti funkcije iconv, libiconv ili recode_string, iako izgleda da su sva potrebna proširenja učitana. Provjerite svoju PHP konfiguraciju.';
+$strCardinality = 'Najvažnije';
+$strCaseInsensitive = 'nebitna veličina znakova';
+$strCaseSensitive = 'veličina znakova je važna';
+$strCentralEuropean = 'Srednjoeuropski';
+$strChangeCopyModeCopy = '... zadržati staru.';
+$strChangeCopyModeDeleteAndReload = ' ... izbriši starog iz korisničkih tablica i potom ponovo učitaj privilegije.';
+$strChangeCopyMode = 'Izradi novog korisnika s istim privilegijama i...';
+$strChangeCopyModeJustDelete = ' ... izbriši starog iz korisničkih tablica.';
+$strChangeCopyModeRevoke = ' ... opozovi sve aktivne privilegije iz stare i potom je izbriši.';
+$strChangeCopyUser = 'Promjena podataka prijave / Kopiranje korisnika';
+$strChangeDisplay = 'Odaberi polje za prikaz';
+$strChangePassword = 'Promijeni lozinku';
+$strChange = 'Promijeni';
+$strCharsetOfFile = 'Tablica znakova za datoteku:';
+$strCharsetsAndCollations = 'Tablica znakova i uspoređivanja';
+$strCharsets = 'Tablice znakova';
+$strCharset = 'Tablica znakova';
+$strCheckAll = 'Označi sve';
+$strCheckOverhead = 'Provjeri za prepunjene tablice';
+$strCheckPrivsLong = 'Provjeri privilegije za bazu podataka "%s".';
+$strCheckPrivs = 'Provjeri privilegije';
+$strCheckTable = 'Provjeri tablicu';
+$strChoosePage = 'Odaberite tablicu za uređivanje';
+$strColComFeat = 'Prikazivanje stupca komentara';
+$strCollation = 'Uspoređivanje';
+$strColumnNames = 'Nazivi stupaca';
+$strColumnPrivileges = 'Privilegije specifične za stupac';
+$strCommand = 'Naredba';
+$strComments = 'Komentari';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 kompatibilno';
+$strCompleteInserts = 'Dovrši umetanja';
+$strCompression = 'Kompresija';
+$strCompressionWillBeDetected = 'Kompresija uvezene datoteke bit će automatski prepoznata iz: %s';
+$strConfigDefaultFileError = 'Nije moguće učitati zadanu konfiguraciju iz: "%1$s"';
+$strConfigFileError = 'phpMyAdmin nije mogao pročitati vašu konfiguracijsku datoteku!<br />Mogući razlog je ako PHP pronađe pogrešku u njezinom raščlanjivanju ili ako PHP ne može pronaći datoteku.<br />Potrebno je izravno pozvati konfiguracijsku datoteku putem donje veze i proučiti prikazane PHP poruke o pogreškama. U većini slučajeva na nekom mjestu nedostaje znak navodnika ili točke-zareza.<br />Ako se prikaže prazna stranica, sve je u redu.';
+$strConfigureTableCoord = 'Konfigurirajte koordinate tablice %s';
+$strConnectionError = 'Povezivanje nije moguće: neispravna postavka.';
+$strConnections = 'Veze';
+$strConstraintsForDumped = 'Ograničenja za izbačene tablice';
+$strConstraintsForTable = 'Ograničenja za tablicu';
+$strControluserFailed = 'Povezivanje kontrolnih korisnika na način kako je definirano u vašoj konfiguraciji nije uspjelo.';
+$strCookiesRequired = 'Od ovog mjesta potrebno je omogućiti kolačiće.';
+$strCopyDatabaseOK = 'Baza podataka %s kopirana je u %s';
+$strCopy = 'Kopiraj';
+$strCopyTable = 'Kopiraj tablicu u (bazapodataka<b>.</b>tablica):';
+$strCopyTableOK = 'Tablica %s kopirana je u %s.';
+$strCopyTableSameNames = 'Kopiranje u istu tablicu nije moguće!';
+$strCouldNotKill = 'phpMyAdmin nije mogao ugasiti granu %s. Vjerojatno je već zatvorena.';
+$strCreateDatabaseBeforeCopying = 'Prije kopiranja izradi bazu podataka (CREATE DATABASE)';
+$strCreateIndex = 'Izradi indeks &nbsp;%s&nbsp;stupaca';
+$strCreateIndexTopic = 'Izradi novi indeks';
+$strCreate = 'Izradi';
+$strCreateNewDatabase = 'Izradi novu bazu podataka';
+$strCreateNewTable = 'Izradi novu tablicu u bazi podataka %s';
+$strCreatePage = 'Izradi novu stranicu';
+$strCreatePdfFeat = 'Izrada PDF datoteka';
+$strCreateRelation = 'Izradi relaciju';
+$strCreateTable = 'Izradi tablicu';
+$strCreateUserDatabase = 'Baza podataka za korisnika';
+$strCreateUserDatabaseName = 'Izradi bazu podataka istog naziva i podari sve privilegije';
+$strCreateUserDatabaseNone = 'Nijedan';
+$strCreateUserDatabaseWildcard = 'Podari sve privilegije imenima s džokerima (korisničkoime_%)';
+$strCreationDates = 'Izrada/Ažuriranje/Provjera datuma';
+$strCriteria = 'Kriterij';
+$strCroatian = 'Hrvatski';
+$strCSV = 'CSV';
+$strCyrillic = 'Ćirilica';
+$strCzech = 'Češki';
+$strCzechSlovak = 'Češki ili Slovački';
+
+$strDanish = 'Danski';
+$strDatabase = 'Baza podataka';
+$strDatabaseEmpty = 'Naziv baze podataka je prazan!';
+$strDatabaseExportOptions = 'Opcije izvoza baze podataka';
+$strDatabaseHasBeenDropped = 'Baza podataka %s je odbačena.';
+$strDatabases = 'Baze podataka';
+$strDatabasesDropped = 'Baza podataka %s uspješno je odbačena.';
+$strDatabasesStatsDisable = 'Onemogući statistike';
+$strDatabasesStatsEnable = 'Omogući statistike';
+$strDatabasesStatsHeavyTraffic = 'Napomena: Omogućavanja statistika baze podataka može prouzrokovati izuzetno velik promet između web poslužitelja i MySQL poslužitelja.';
+$strDatabasesStats = 'Statistike baza podataka';
+$strDataDict = 'Rječnik podataka';
+$strDataOnly = 'Samo podatke';
+$strDataPages = 'Stranice koje sadrže podatke';
+$strData = 'Podaci';
+$strDBComment = 'Komentar baze podataka: ';
+$strDBCopy = 'Kopiraj bazu podataka u';
+$strDbIsEmpty = 'Baza podataka izgleda praznom!';
+$strDbPrivileges = 'Privilegije specifične za bazu podataka';
+$strDBRename = 'Preimenuj bazu podataka u';
+$strDbSpecific = 'specifično za bazu podataka';
+$strDefaultEngine = '%s je zadani pogon pohranjivanja na ovom MySQL poslužitelju.';
+$strDefaultValueHelp = 'Za zadane vrijednosti unesite samo jednu vrijednost, bez kosih crta ili navodnika, u sljedećem obliku: a';
+$strDefault = 'Zadano';
+$strDefragment = 'Defragmentiraj tablicu';
+$strDelayedInserts = 'Upotrijebi odgođena umetanja';
+$strDeleteAndFlushDescr = 'Ovo je najčišći način, ali ponovno učitavanje privilegija može potrajati.';
+$strDeleteAndFlush = 'Izbriši korisnike i potom ponovo učitaj privilegije.';
+$strDeleted = 'Redak je izbrisan';
+$strDelete = 'Izbriši';
+$strDeleteNoUsersSelected = 'Nema odabranih korisnika za uklanjanje!';
+$strDeleteRelation = 'Izbriši relaciju';
+$strDeleting = 'Brisanje %s';
+$strDelimiter = 'Razgraničavanje';
+$strDelOld = 'Trenutna stranica sadrži reference prema tablicama koje više ne postoje. Želite li izbrisati te reference?';
+$strDescending = 'Silazno';
+$strDescription = 'Opis';
+$strDesignerHelpDisplayField = 'Polje pregledavanja prikazano je u rozoj boji. Kako biste za polje odabrali ili uklonili opciju polja za prikazivanje pritisnite ikonu "Odaberite polje za prikazivanje", a zatim pritisnite odgovarajući naziv polja.';
+$strDesigner = 'Kreator';
+$strDictionary = 'rječnik';
+$strDirectLinks = 'Izravne veze';
+$strDirtyPages = 'Prljave stranice';
+$strDisabled = 'Onemogućeno';
+$strDisableForeignChecks = 'Onemogući provjere stranih znakova';
+$strDisplayFeat = 'Osobine prikaza';
+$strDisplayOrder = 'Redoslijed prikaza:';
+$strDisplayPDF = 'Prikaži PDF shemu';
+$strDoAQuery = 'Izvedi "upit po primjeru" (džoker: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentacija';
+$strDoYouReally = 'Želite li zaista ';
+$strDropDatabaseStrongWarning = 'UNIŠTIT ĆETE CJELOKUPNU BAZU PODATAKA!';
+$strDrop = 'Ispusti';
+$strDropUsersDb = 'Ispusti baze podataka koje imaju iste nazive i korisnike.';
+$strDumpingData = 'Izbacivanje podataka za tablicu';
+$strDumpSaved = 'Izbacivanje je spremljeno u datoteku %s.';
+$strDumpXRows = 'Izbaci %s redaka, počevši od zapisa # %s.';
+$strDynamic = 'dinamički';
+
+$strEditPDFPages = 'Uredi PDF stranice';
+$strEditPrivileges = 'Uredi privilegije';
+$strEdit = 'Uređivanje';
+$strEffective = 'Na snazi';
+$strEmpty = 'Isprazni';
+$strEmptyResultSet = 'MySQL je vratio prazan komplet rezultata (npr. nula redova).';
+$strEnabled = 'Omogućeno';
+$strEncloseInTransaction = 'Izvoz uključi u transakciju';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'Završetak';
+$strEngineAvailable = '%s je raspoloživ na ovom MySQL poslužitelju.';
+$strEngineDisabled = '%s je onemogućen za ovaj MySQL poslužitelj.';
+$strEngines = 'Pogoni';
+$strEngineUnsupported = 'Ovaj MySQL poslužitelj ne podržava pogon pohranjivanja %s.';
+$strEnglish = 'Engleski';
+$strEnglishPrivileges = ' Napomena: Nazivi MySQL privilegija navedeni su na engleskom jeziku ';
+$strErrorInZipFile = 'Pogreška u ZIP arhivi:';
+$strError = 'Pogreška';
+$strErrorRelationAdded = 'Pogreška: Relacija nije dodana.';
+$strErrorRelationExists = 'Pogreška: Relacija već postoji.';
+$strErrorRenamingTable = 'Pogreška tijekom preimenovanja tablice %1$s u %2$s';
+$strErrorSaveTable = 'Pogreška tijekom spremanja koordinata za Kreatora.';
+$strEscapeWildcards = 'Kako bi se mogli upotrebljavati u doslovnom smislu, džokerima \_ i \% mora prethoditi znak \\';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonski';
+$strEvent = 'Događaj';
+$strExcelEdition = 'Excel izdanje';
+$strExecuteBookmarked = 'Izvrši favorizirani upit';
+$strExplain = 'Objasni SQL';
+$strExportImportToScale = 'Uvoz / Izvor prema omjeru';
+$strExport = 'Izvoz';
+$strExportMustBeFile = 'Odabrana vrsta izvoza mora biti spremljena u datoteku!';
+$strExtendedInserts = 'Proširena umetanja';
+$strExtra = 'Dodatno';
+
+$strFailedAttempts = 'Neuspjeli pokušaji';
+$strFieldHasBeenDropped = 'Polje %s je odbačeno';
+$strFieldInsertFromFileTempDirNotExists = 'Pogreška tijekom premještanja učitane datoteke. Pogledajte ČPP 1.11';
+$strField = 'Polje';
+$strFieldsEnclosedBy = 'Polja obuhvaćena po';
+$strFieldsEscapedBy = 'Polja izostavljena po';
+$strFields = 'Polja';
+$strFieldsTerminatedBy = 'Polja završena s';
+$strFileAlreadyExists = 'Datoteka %s već postoji na poslužitelju. Promijenite naziv ili označite opciju za prepisivanje.';
+$strFileCouldNotBeRead = 'Datoteku nije moguće pročitati';
+$strFileNameTemplateDescriptionDatabase = 'naziv baze podataka';
+$strFileNameTemplateDescriptionServer = 'naziv poslužitelja';
+$strFileNameTemplateDescriptionTable = 'naziv tablice';
+$strFileNameTemplateDescription = 'Vrijednost se interpretira pomoću %1$sstrftime%2$s, pa možete upotrijebiti naredbe oblikovanja vremena. Dodatno se mogu dogoditi sljedeća preoblikovanja: "%3$s". Ostatak teksta bit će zadržan u izvornom obliku.';
+$strFileNameTemplate = 'Predložak naziva datoteka';
+$strFileNameTemplateRemember = 'zapamti predložak';
+$strFiles = 'Datoteke';
+$strFileToImport = 'Datoteka za uvoz';
+$strFixed = 'fiksirano';
+$strFlushPrivilegesNote = 'Napomena: phpMyAdmin preuzima korisničke privilegije izravno iz MySQL tablica privilegija. U slučaju da su ručno mijenjane, sadržaj ovih tablica može se razlikovati od privilegija koje upotrebljava poslužitelj. U tom je slučaju potrebno %sponovo učitati privilegije%s prije nastavljanja rada.';
+$strFlushQueryCache = 'Isprazni pohranu upita';
+$strFlushTable = 'Isprazni tablicu ("FLUSH")';
+$strFlushTables = 'Isprazni (zatvori) sve tablice';
+$strFontSize = 'Veličina fonta';
+$strFormat = 'Oblikovanje';
+$strFormEmpty = 'U obrascu nedostaje vrijednost!';
+$strFreePages = 'Slobodne stranice';
+$strFullText = 'Potpuni tekstovi';
+$strFunction = 'Funkcija';
+$strFunctions = 'Funkcije';
+
+$strGenBy = 'Generirano s';
+$strGeneralRelationFeat = 'Opće osobine relacija';
+$strGenerate = 'Generiraj';
+$strGeneratePassword = 'Generiraj lozinku';
+$strGenTime = 'Vrijeme generiranja';
+$strGeorgian = 'Gruzijski';
+$strGerman = 'Njemački';
+$strGlobal = 'opće';
+$strGlobalPrivileges = 'Opće privilegije';
+$strGlobalValue = 'Opća vrijednost';
+$strGo = 'Kreni';
+$strGrantOption = 'Podarivanje';
+$strGreek = 'Grčki';
+$strGzip = '"gzipano"';
+
+$strHandler = 'Hvatišta';
+$strHasBeenAltered = 'izmijenjeno je.';
+$strHaveToShow = 'Morate odabrati najmanje jedan stupac za prikazivanje';
+$strHebrew = 'Hebrejski';
+$strHelp = 'Pomoć';
+$strHexForBLOB = 'Za BLOB upotrijebi heksadecimalno';
+$strHide = 'Sakrij';
+$strHideShowAll = 'Prikaži / Sakrij sve';
+$strHideShowNoRelation = 'Prikaži / Sakrij tablice bez relacija';
+$strHomepageOfficial = 'Službena stranica programa phpMyAdmin';
+$strHome = 'Početna stranica';
+$strHostEmpty = 'Naziv računala je prazan!';
+$strHost = 'Računalo';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Mađarski';
+
+$strIcelandic = 'Islandski';
+$strId = 'ID';
+$strIdxFulltext = 'Puni tekst';
+$strIEUnsupported = 'Internet Explorer ne podržava ovu funkciju.';
+$strIgnoreDuplicates = 'Ignoriraj istovjetne redove';
+$strIgnore = 'Ignoriraj';
+$strIgnoreInserts = 'Upotrijebi ignoriranje umetaka';
+$strImportExportCoords = 'Uvoz / Izvoz koordinate iz PDF sheme';
+$strImportFiles = 'Uvezi datoteke';
+$strImportFormat = 'Oblikovanje uvezene datoteke';
+$strImportSuccessfullyFinished = 'Uvoz je uspješno dovršen. Izvršeno upita: %d .';
+$strImport = 'Uvoz';
+$strIndexes = 'Indeksi';
+$strIndexHasBeenDropped = 'Index %s je odbačen';
+$strIndex = 'Indeks';
+$strIndexName = 'Naziv indeksa:';
+$strIndexType = 'Vrsta indeksa:';
+$strIndexWarningTable = 'Problemi s indeksima tablice `%s`';
+$strInnoDBAutoextendIncrementDesc = ' Veličina koraka za proširivanje veličine automatski proširujućeg prostora tablice u slučaju njezinog ispunjavanja.';
+$strInnoDBAutoextendIncrement = 'Korak autoproširenja';
+$strInnoDBBufferPoolSizeDesc = 'Veličina memorijskog međuspremnika koju InnoDB upotrebljava za privremenu pohranu podataka i indeksa svojih tablica.';
+$strInnoDBBufferPoolSize = 'Veličina međuspremnika';
+$strInnoDBDataFilePath = 'Podatkovne datoteke';
+$strInnoDBDataHomeDirDesc = 'Uobičajeni dio putanje mapa za sve InnoDB podatkovne datoteke.';
+$strInnoDBDataHomeDir = 'Osnovna mapa podataka';
+$strInnoDBPages = 'stranice';
+$strInnodbStat = 'InnoDB stanje';
+$strInsecureMySQL = 'Vaša konfiguracijska datoteka sadrži postavke (root korisnik bez lozinke) koja odgovara zadanom privilegiranom nalogu MySQL-a. Vaš MySQL poslužitelj pokrenut je sa zadanim postavkama i kao takav otvoren je upadima. Potrebno je ispraviti ovaj sigurnosni nedostatak.';
+$strInsertAsNewRow = 'Umetni kao novi redak';
+$strInsert = 'Umetni';
+$strInternalRelationAdded = 'Dodane interne relacije';
+$strInternalRelations = 'Interne relacije';
+$strInUse = 'u upotrebi';
+$strInvalidAuthMethod = 'Neispravan komplet načina provjere vjerodostojnosti u konfiguraciji:';
+$strInvalidColumnCount = 'Broj stupaca mora biti veći od nule.';
+$strInvalidColumn = 'Određen je neispravan stupac (%s) !';
+$strInvalidCSVFieldCount = 'Neispravan broj polja u CSV unosu unutar retka %d.';
+$strInvalidCSVFormat = 'Neispravno oblikovanje u CSV unosu unutar retka %d.';
+$strInvalidCSVParameter = 'Neispravan parametar za CSV uvoz: %s';
+$strInvalidDatabase = 'Neispravna baza podataka';
+$strInvalidFieldAddCount = 'Morate dodati najmanje jedno polje.';
+$strInvalidFieldCount = 'Tablica mora sadržavati najmanje jedno polje.';
+$strInvalidLDIImport = 'Ovaj dodatak ne podržava uvoz komprimiranih datoteka!';
+$strInvalidRowNumber = '%d nije valjani broj retka.';
+$strInvalidServerHostname = 'Neispravan naziv za poslužitelj %1$s. Molimo, pregledajte svoju konfiguraciju.';
+$strInvalidServerIndex = 'Neispravan indeks poslužitelja: "%s"';
+$strInvalidTableName = 'Neispravan naziv tablice';
+
+$strJapanese = 'Japanski';
+$strJoins = 'Spojevi';
+$strJumpToDB = 'Skoči do baze podataka "%s".';
+$strJustDeleteDescr = '"Izbrisani" će korisnici i dalje moći pristupati poslužitelju sve dok se privilegije ne učitaju ponovo.';
+$strJustDelete = 'Samo izbriši korisnike iz tablice privilegija.';
+
+$strKeepPass = 'Ne mijenjaj lozinku';
+$strKeyCache = 'Pohrana ključeva';
+$strKeyname = 'Naziv ključa';
+$strKill = 'Eliminiraj';
+$strKnownExternalBug = 'Na funkcionalnost %s utječe poznati nedostatak. Pogledajte %s';
+$strKorean = 'Korejski';
+
+$strLandscape = 'Položeno';
+$strLanguage = 'Jezik';
+$strLanguageUnknown = 'Nepoznati jezik: %1$s.';
+$strLatchedPages = 'Vezane stranice';
+$strLatexCaption = 'Naslov tablice';
+$strLatexContent = 'Sadržaj tablice __TABLE__';
+$strLatexContinuedCaption = 'Nastavljeni naslov tablice';
+$strLatexContinued = '(nastavljeno)';
+$strLatexIncludeCaption = 'Uključi naslov tablice';
+$strLatexLabel = 'Ključ oznake';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktura tablice __TABLE__';
+$strLatvian = 'Latvijski';
+$strLDI = 'CSV upotrebom LOAD DATA';
+$strLDILocal = 'Upotrijebi lokalnu ključnu riječ';
+$strLengthSet = 'Duljina/Vrijednosti';
+$strLimitNumRows = 'Broj redaka po stranici';
+$strLinesTerminatedBy = 'Redovi završeni s';
+$strLinkNotFound = 'Veza nije pronađena';
+$strLinksTo = 'Povezano s';
+$strLithuanian = 'Litavski';
+$strLocalhost = 'Lokalno';
+$strLocationTextfile = 'Lokacija tekstualne datoteke';
+$strLoginInformation = '_Podaci prijave';
+$strLogin = 'Prijava';
+$strLogout = 'Odjava';
+$strLogPassword = 'Lozinka:';
+$strLogServer = 'Poslužitelj';
+$strLogUsername = 'Korisničko ime:';
+$strLongOperation = 'Ovaj postupak može potrajati dulje vrijeme. Ipak nastaviti?';
+
+$strMaxConnects = 'najv. uzastopnih veza';
+$strMaximalQueryLength = 'Najveća duljina izrađenog upita';
+$strMaximumSize = 'Najv: %s%s';
+$strMbExtensionMissing = 'PHP proširenje mbstring nije pronađeno i izgleda da upotrebljavate multibyte tablicu znakova. Bez proširenja mbstring, phpMyAdmin nije u mogućnosti pravilno razdjeljivati naredbe i može doći do neočekivanih rezultata.';
+$strMbOverloadWarning = 'Omogućili ste funkciju mbstring.func_overload u vašoj PHP konfiguraciji. Ova opcija nije kompatibilna s programom phpMyAdmin i može prouzrokovati oštećivanje nekih podataka!';
+$strMIME_available_mime = 'Raspoložive MIME vrste';
+$strMIME_available_transform = 'Raspoloživa preoblikovanja';
+$strMIME_description = 'Opis';
+$strMIME_MIMEtype = 'MIME vrsta';
+$strMIME_nodescription = 'Za ovo preoblikovanje ne postoji raspoloživ opis.<br />Molimo da od autora zatražite objašnjenje rada %s .';
+$strMIME_transformation_note = 'Za popis raspoloživih opcija preoblikovanja i njihovih MIME vrsta oblikovanja, pritisnite %sopcije preoblikovanja%s';
+$strMIME_transformation_options_note = 'Unesite vrijednosti za opcije preoblikovanja upotrebom ovog oblika: \'a\', 100, b,\'c\'...<br />Ako je potrebno unijeti lijevu kosu crtu ("\") ili jednostruki navodnik ("\'") unutar ovih vrijednosti, ispred znaka stavite lijevu kosu crtu (na primjer: \'\\\\xyz\' ili \'a\\\'B\').';
+$strMIME_transformation_options = 'Opcije preoblikovanja';
+$strMIME_transformation = 'Pretvaranje preglednika';
+$strMIMETypesForTable = 'MIME VRSTE ZA TABLICU';
+$strMIME_without = 'MIME vrste ispisane kurzivom nemaju posebnu funkciju preoblikovanja';
+$strModifications = 'Izmjene su spremljene';
+$strModifyIndexTopic = 'Uredi indeks';
+$strModify = 'Uredi';
+$strMoveMenu = 'Premjesti izbornik';
+$strMoveTableOK = 'Tablica %s premještena je u %s.';
+$strMoveTable = 'Premjesti tablicu u (bazapodataka<b>.</b>tablica):';
+$strMoveTableSameNames = 'Premještanje u istu tablicu nije moguće!';
+$strMultilingual = 'višejezično';
+$strMyISAMDataPointerSizeDesc = 'Zadana veličina pokazatelja podataka u bajtovima, koju će upotrijebiti naredba CREATE TABLE za MyISAM tablice ako opcija MAX_ROWS nije određena.';
+$strMyISAMDataPointerSize = 'Veličina pokazatelja podataka';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Ako bi privremena datoteka za brzu izradu MyISAM indeksa mogla biti veća od pohrane ključeva, uz ovdje navedenu vrijednost, preferiraj način pohrane ključeva.';
+$strMyISAMMaxExtraSortFileSize = 'Najveća veličina privremenih datoteka pri izradi indeksa';
+$strMyISAMMaxSortFileSizeDesc = 'Najveća veličina privremene datoteke koju MySQL smije upotrijebiti tijekom ponovne izrade MyISAM indeksa (tijekom izvođenja naredbi REPAIR TABLE, ALTER TABLE ili LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Najveća veličina datoteke za privremeno preslagivanje';
+$strMyISAMRecoverOptionsDesc = 'Način rada za automatski povrat srušenih MyISAM tablica, na način kojim je određen putem opcije --myisam-recover.';
+$strMyISAMRecoverOptions = 'Rad s automatskim povratom';
+$strMyISAMRepairThreadsDesc = 'Ako je ova vrijednost veća od 1, MyISAM indeksi tablica izrađuju se paralelno (svaki indeks unutar vlastite grane) tijekom popravka putem postupka preslagivanja.';
+$strMyISAMRepairThreads = 'Popravi grane';
+$strMyISAMSortBufferSizeDesc = 'Međuspremnik koji je predodređen za potrebe preslagivanja MyISAM indeksa tijekom naredbe REPAIR TABLE ili tijekom izrade indeksa naredbama CREATE INDEX ili ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Veličina međuspremnika preslagivanja';
+$strMySQLCharset = 'MySQL tablica znakova';
+$strMysqlClientVersion = 'MySQL verzija klijenta';
+$strMySQLConnectionCollation = 'MySQL uspoređivanje veza';
+$strMysqlLibDiffersServerVersion = 'Verzija %s vaše PHP MySQL biblioteke razlikuje se oda vaše verzije %s MySQL poslužitelja. Ovo bi moglo prouzrokovati nepredviđeno ponašanje.';
+$strMySQLSaid = 'MySQL je poručio: ';
+$strMySQLShowProcess = 'Prikaži procese';
+
+$strName = 'Naziv';
+$strNext = 'Sljedeće';
+$strNoActivity = 'Nije bilo nikakvih aktivnosti tijekom %s sekunda. Prijavite se ponovo.';
+$strNoDatabases = 'Nema baza podataka';
+$strNoDatabasesSelected = 'Nema odabrane baze podataka.';
+$strNoDataReceived = 'Nisu primljeni nikakvi podaci za uvoz. Ili nije dat naziv datoteke ili veličina datoteke prelazi najveću dopuštenu veličinu od strane vaše PHP konfiguracije. Pogledajte ČPP 1.16.';
+$strNoDescription = 'bez opisa';
+$strNoDetailsForEngine = 'Za ovaj pogon pohranjivanje ne postoje raspoloživi podaci.';
+$strNoDropDatabases = '"DROP DATABASE" izjave su onemogućene.';
+$strNoExplain = 'Preskoči Objasni SQL';
+$strNoFilesFoundInZip = 'Datoteke nisu pronađene unutar ZIP arhive!';
+$strNoFrames = 'phpMyAdmin je jednostavniji za upotrebu s preglednikom koji <b>podržava okvire</b>.';
+$strNoIndex = 'Nema definiranog indeksa!';
+$strNoIndexPartsDefined = 'Nema definiranih dijelova indeksa!';
+$strNoModification = 'Bez izmjena';
+$strNo = 'Ne';
+$strNone = 'bez kompresije';
+$strNoOptions = 'Ovaj oblik nema raspoložive opcije';
+$strNoPassword = 'Bez lozinke';
+$strNoPermission = 'Web poslužitelj nema dopuštenja za spremanje datoteke %s.';
+$strNoPhp = 'Bez PHP koda';
+$strNoPrivileges = 'Bez privilegija';
+$strNoRights = 'Nemate dovoljno privilegija da boravite ovdje!';
+$strNoRowsSelected = 'Nema odabranih redova';
+$strNoSpace = 'Nema dovoljno prostora za spremanje datoteke %s.';
+$strNoTablesFound = 'U bazi podataka nisu pronađene tablice.';
+$strNoThemeSupport = 'Podrška za teme ne postoji. Provjerite vašu konfiguraciju i/ili vaše teme u mapi %s.';
+$strNotNumber = 'Ovo nije brojka!';
+$strNotOK = 'nije OK';
+$strNotSet = 'tablica <b>%s</b> nije pronađena ili nije zadana u %s';
+$strNoUsersFound = 'Korisnici nisu pronađeni.';
+$strNoValidateSQL = 'Preskoči provjeru valjanosti SQL-a';
+$strNull = 'Null';
+$strNumberOfFields = 'Broj polja';
+$strNumberOfTables = 'Broj tablica';
+$strNumSearchResultsInTable = '%s poklapanja unutar tablice <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Ukupno:</b> <i>%s</i> poklapanja';
+$strNumTables = 'Tablice';
+
+$strOK = 'U redu ';
+$strOpenDocumentSpreadsheet = 'Otvori izračunsku tablicu dokumenta';
+$strOpenDocumentText = 'Otvori tekst dokumenta';
+$strOpenNewWindow = 'Otvori novi phpMyAdmin prozor';
+$strOperations = 'Operacije';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optimiziraj tablicu';
+$strOptions = 'Opcije';
+$strOr = 'Ili';
+$strOverhead = 'Prepunjenje';
+$strOverwriteExisting = 'Prepiši postojeće datoteke';
+
+$strPageNumber = 'Broj stranice:';
+$strPagesToBeFlushed = 'Stranice za pražnjenje';
+$strPaperSize = 'Veličina papira';
+$strPartialImport = 'Djelomičan uvoz';
+$strPartialText = 'Djelomični tekstovi';
+$strPasswordChanged = 'Lozinka za %s uspješno je promijenjena.';
+$strPasswordEmpty = 'Lozinka je prazna!';
+$strPasswordHashing = 'Izrada presjeka lozinke';
+$strPassword = 'Lozinka';
+$strPasswordNotSame = 'Lozinke se ne podudaraju!';
+$strPdfDbSchema = 'Shema "%s" baza podataka - stranica %s';
+$strPdfInvalidTblName = 'Tablica "%s" ne postoji!';
+$strPdfNoTables = 'Nema tablica';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Generira izvještaj koji sadrži podatke samo jedne tablice)';
+$strPDFReportTitle = 'Naslov izvještaja';
+$strPerHour = 'po satu';
+$strPerMinute = 'po minuti';
+$strPerSecond = 'po sekundi';
+$strPersian = 'Perzijski';
+$strPhoneBook = 'telefonski imenik';
+$strPhp = 'Izradi PHP kod';
+$strPHPVersion = 'PHP verzija';
+$strPleaseSelectPrimaryOrUniqueKey = 'Odaberite primarni ključ ili jedinstveni ključ';
+$strPmaDocumentation = 'phpMyAdmin dokumentacija';
+$strPmaUriError = 'Direktiva <tt>$cfg[\'PmaAbsoluteUri\']</tt> MORA BITI postavljena u vašoj konfiguracijskoj datoteci!';
+$strPolish = 'Poljski';
+$strPortrait = 'Portret';
+$strPos1 = 'Na vrh stranice';
+$strPrevious = 'Prethodni';
+$strPrimaryKeyHasBeenDropped = 'Primarni ključ je odbačen';
+$strPrimaryKeyName = 'Naziv primarnog ključa mora biti "PRIMARY"!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>mora biti</b> naziv i <b>samo naziv</b> primarnog ključa!)';
+$strPrimary = 'Primarni';
+$strPrint = 'Ispiši';
+$strPrintViewFull = 'Prikaz ispisa (s potpunim tekstovima)';
+$strPrintView = 'Prikaz ispisa';
+$strPrivDescAllPrivileges = 'Obuhvaća sve privilegije osim GRANT (Podari).';
+$strPrivDescAlter = 'Dopušta izmjenu strukture postojećih tablice.';
+$strPrivDescAlterRoutine = 'Dopušta izmjenu i odbacivanje pohranjenih rutina.';
+$strPrivDescCreateDb = 'Dopušta izradu novih baze podataka i tablice.';
+$strPrivDescCreateRoutine = 'Dopušta izradu pohranjenih rutina.';
+$strPrivDescCreateTbl = 'Dopušta izradu novih tablica.';
+$strPrivDescCreateTmpTable = 'Dopušta izradu privremenih tablica.';
+$strPrivDescCreateUser = 'Dopušta izradu, odbacivanje i preimenovanje korisničkih naloga.';
+$strPrivDescCreateView = 'Dopušta izradu novih prikaza.';
+$strPrivDescDelete = 'Dopušta brisanje podataka.';
+$strPrivDescDropDb = 'Dopušta odbacivanje baza podataka i tablica.';
+$strPrivDescDropTbl = 'Dopušta odbacivanje tablica.';
+$strPrivDescExecute5 = 'Dopušta pokretanje pohranjenih rutina.';
+$strPrivDescExecute = 'Dopušta izvršavanje pohranjenih postupaka. Nema učinka u ovoj verziji MySQL-a.';
+$strPrivDescFile = 'Dopušta uvoz i izvoz podataka iz datoteka.';
+$strPrivDescGrant = 'Dopušta dodavanje korisnika i privilegija bez ponovnog učitavanja tablica.';
+$strPrivDescIndex = 'Dopušta izradu i odbacivanje indeksa.';
+$strPrivDescInsert = 'Dopušta umetanje i zamjenu podataka.';
+$strPrivDescLockTables = 'Dopušta zaključavanje tablica u trenutnoj grani.';
+$strPrivDescMaxConnections = 'Ograničava broj novih povezivanja koje korisnik može otvoriti, po satu.';
+$strPrivDescMaxQuestions = 'Ograničava broj upita koje korisnik može poslati poslužitelju, po satu.';
+$strPrivDescMaxUpdates = 'Ograničava broj naredbi koje korisnik može pokrenuti, a čija je namjena mijenjanje bilo koje tablice ili baze podataka, po satu.';
+$strPrivDescMaxUserConnections = 'Ograničava broj istovremenih povezivanja koje korisnik može imati.';
+$strPrivDescReferences = 'Nema učinka u ovoj verziji MySQL-a.';
+$strPrivDescReload = 'Dopušta ponovno učitavanje postavki poslužitelja i pražnjenje privremene pohrane poslužitelja.';
+$strPrivDescReplClient = 'Dopušta korisnik postavljanje upita o lokaciji potčinjenih i gospodara.';
+$strPrivDescReplSlave = 'Potrebno za replikacijske potčinjene.';
+$strPrivDescSelect = 'Dopušta čitanje podataka.';
+$strPrivDescShowDb = 'Daje pristup cjelokupnom popisu baza podataka.';
+$strPrivDescShowView = 'Dopušta izvođenje upita SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Dopušta gašenje poslužitelja.';
+$strPrivDescSuper = 'Dopušta povezivanje čak i kad je dostignut najveći broj veza. Potrebno za većinu administrativnih operacija poput postavljanja općih varijabli ili eliminiranje grana drugih korisnika.';
+$strPrivDescUpdate = 'Dopušta mijenjanje podataka.';
+$strPrivDescUsage = 'Bez privilegija.';
+$strPrivileges = 'Privilegije';
+$strPrivilegesReloaded = 'Privilegije su uspješno učitane.';
+$strProcedures = 'Postupci';
+$strProcesses = 'Procesi';
+$strProcesslist = 'Popis procesa';
+$strProfiling = 'Izrada profila';
+$strProtocolVersion = 'Verzija protokola';
+$strPutColNames = 'Nazive polja stavi u prvi red';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Upit';
+$strQueryCache = 'Pohrana upita';
+$strQueryFrame = 'Prozor za upite';
+$strQueryOnDb = 'SQL upit nad bazom podataka <b>%s</b>:';
+$strQueryResultsOperations = 'Operacije rezultata upita';
+$strQuerySQLHistory = 'SQL povijest';
+$strQueryStatistics = '<b>Statistike upita</b>: Od pokretanja poslužitelju je upućeno %s upita.';
+$strQueryTime = 'Upit je trajao %01,4f sek';
+$strQueryType = 'Vrsta upita';
+$strQueryWindowLock = 'Ne prepisuj ovaj upit iz vanjskog prozora';
+
+$strReadRequests = 'Pročitaj zahtjeve';
+$strReceived = 'Primljeno';
+$strRecommended = 'preporučeno';
+$strRecords = 'Zapisi';
+$strReferentialIntegrity = 'Provjeri referencijalan integritet:';
+$strRefresh = 'Osvježi';
+$strRelationalSchema = 'Shema relacija';
+$strRelationDeleted = 'Relacija je izbrisana';
+$strRelationNotWorking = 'Dodatne osobine za rad s relacijski tablicama su isključene. Kako biste saznali razloge, pritisnite %sovdje%s.';
+$strRelationsForTable = 'RELACIJE TABLICE';
+$strRelations = 'Relacije';
+$strRelationView = 'Prikaz relacija';
+$strReloadingThePrivileges = 'Ponovno učitavanje privilegija';
+$strReload = 'Osvježi';
+$strReloadPrivileges = 'Ponovno učitaj privilegije';
+$strRemoveSelectedUsers = 'Ukloni odabrane korisnike';
+$strRenameDatabaseOK = 'Baza podataka %s preimenovana je u %s';
+$strRenameTableOK = 'Tablica %s preimenovana je u %s';
+$strRenameTable = 'Preimenuj tablicu u';
+$strRepairTable = 'Popravi tablicu';
+$strReplaceNULLBy = 'NULL zamijeni s';
+$strReplaceTable = 'Podatke tablice zamijeni datotekom';
+$strReplication = 'Replikacija';
+$strReset = 'Povrat';
+$strResourceLimits = 'Ograničenja resursa';
+$strRestartInsertion = 'Ponovno pokreni umetanje s %s redaka';
+$strReType = 'Ponovite';
+$strRevokeAndDeleteDescr = 'Korisnici će i dalje imati privilegiju USAGE (Upotreba) sve dok se privilegije ponovno ne učitaju.';
+$strRevokeAndDelete = 'Opozovi sve aktivne privilegije korisnika i potom ih izbriši.';
+$strRevokeMessage = 'Opozvali ste privilegije za %s';
+$strRevoke = 'Opozovi';
+$strRomanian = 'Rumunjski';
+$strRoutineReturnType = 'Vrsta povratka';
+$strRoutines = 'Rutine';
+$strRowLength = 'Duljina retka';
+$strRowsFrom = 'redovi koji započinju zapisom #';
+$strRowSize = ' Veličina retka ';
+$strRowsModeFlippedHorizontal = 'vodoravno (okrenuta zaglavlja)';
+$strRowsModeHorizontal = 'vodoravno';
+$strRowsModeOptions = 'u načinu %s i ponavljaj zaglavlja nakon %s ćelija';
+$strRowsModeVertical = 'uspravno';
+$strRows = 'Redaka';
+$strRowsStatistic = 'Statistike redova';
+$strRunning = 'Izvršava se pri %s';
+$strRunQuery = 'Podnesi upit';
+$strRunSQLQueryOnServer = 'Pokreni SQL upit na poslužitelju %s';
+$strRunSQLQuery = 'Pokreni SQL upit na bazi podataka %s';
+$strRussian = 'Ruski';
+
+$strSaveOnServer = 'Spremi na poslužitelju u mapi %s';
+$strSavePosition = 'Spremi položaj';
+$strSave = 'Spremi';
+$strScaleFactorSmall = 'Vrijednost omjera suviše je malen kako bi shema stala na jednu stranicu';
+$strSearchFormTitle = 'Traži u bazi podataka';
+$strSearchInTables = 'Unutar tablica:';
+$strSearchNeedle = 'Riječi ili vrijednost za pretraživanje (džoker: "%"):';
+$strSearchOption1 = 'najmanje jedna riječ';
+$strSearchOption2 = 'sve riječi';
+$strSearchOption3 = 'točan izraz';
+$strSearchOption4 = 'kao regularan izraz';
+$strSearchResultsFor = 'Rezultati pretraživanja za "<i>%s</i>" %s:';
+$strSearch = 'Traži';
+$strSearchType = 'Traži:';
+$strSecretRequired = 'Konfiguracijska datoteka potražuje tajnu lozinku (blowfish_secret).';
+$strSelectADb = 'Odaberite bazu podataka';
+$strSelectAll = 'Odaberi sve';
+$strSelectBinaryLog = 'Odaberite binarni zapisnik za prikaz';
+$strSelectFields = 'Odaberite polja (najmanje jedno):';
+$strSelectForeignKey = 'Odaberite strani ključ';
+$strSelectNumRows = 'unutar upita';
+$strSelectReferencedKey = 'Odaberite referentni ključ';
+$strSelectTables = 'Odaberite tablice';
+$strSend = 'Spremi kao datoteku';
+$strSent = 'Poslano';
+$strServerChoice = 'Odabir poslužitelja';
+$strServerNotResponding = 'Poslužitelj ne odgovara';
+$strServer = 'Poslužitelj';
+$strServers = 'Poslužitelji';
+$strServerStatusDelayedInserts = 'Odgođena umetanja';
+$strServerStatus = 'Podaci o razini izvršavanja';
+$strServerStatusUptime = 'Ovaj MySQL poslužitelj radi tijekom %s. Pokrenut je %s.';
+$strServerTabVariables = 'Varijable';
+$strServerTrafficNotes = '<b>Promet poslužitelja</b>: Ove tablice prikazuju statistike mrežnog prometa na ovom MySQL poslužitelju od trenutka njegovog pokretanja.';
+$strServerVars = 'Varijable i postavke poslužitelja';
+$strServerVersion = 'Verzija poslužitelja';
+$strSessionStartupErrorGeneral = 'Pokretanje sesije nije moguće uslijed pogrešaka. Provjerite pogreške koje ispisuje vaš PHP i/ili datoteku zapisnika poslužitelja i pravilno konfigurirajte vašu instalaciju PHP-a.';
+$strSessionValue = 'Vrijednost sesije';
+$strSetEnumVal = 'Ako je vrata polja "enum" ili "set", unesite vrijednosti u sljedećem obliku: \'a\',\'B\',\'c\'...<br />Ako je potrebno unijeti lijevu kosu crtu ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'Prikaži sve';
+$strShowColor = 'Prikaži boju';
+$strShowDatadictAs = 'Oblikovanje rječnika podataka';
+$strShowFullQueries = 'Prikaži pune upite';
+$strShowGrid = 'Prikaži mrežu';
+$strShowHideLeftMenu = 'Prikaži/sakrij lijevi izbornik';
+$strShowingBookmark = 'Prikazivanje oznake';
+$strShowingPhp = 'Prikazivanje kao PHP koda';
+$strShowingRecords = 'Prikazivanje redaka';
+$strShowingSQL = 'Prikazivanje SQL upita';
+$strShowOpenTables = 'Prikaži otvorene tablice';
+$strShowPHPInfo = 'Prikaži PHP podatke';
+$strShow = 'Prikaži';
+$strShowSlaveHosts = 'Prikaži potčinjena računala';
+$strShowSlaveStatus = 'Prikaži stanje potčinjenog';
+$strShowStatusBinlog_cache_disk_useDescr = 'Broj transakcija koje su upotrebljavale privremeni binarni zapisnik pohrane, ali su nadmašile vrijednost binlog_cache_size i upotrijebile privremenu datoteku za pohranjivanje izjava transakcija.';
+$strShowStatusBinlog_cache_useDescr = 'Broj transakcija koje su upotrebljavale privremeni binarni zapisnik pohrane.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Broj privremenih tablica koje poslužitelj automatski izrađuje na disku tijekom izvršavanja izjava. Ako je stavka Created_tmp_disk_tables velika, moglo bi biti potrebno da povećate vrijednost tmp_table_size, kako biste privremene tablice smjestili u radnu memoriju, a ne na tvrdi disk.';
+$strShowStatusCreated_tmp_filesDescr = 'Koliko je privremenih tablica izradio mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'Broj privremenih tablica u memoriji koje je poslužitelj automatski izradio tijekom izvršavanja izjava.';
+$strShowStatusDelayed_errorsDescr = 'Broj redaka upisanih pomoću naredbe INSERT DELAYED, a kod kojih je došlo do neke vrste pogreške (vjerojatan razlog je udvojen ključ).';
+$strShowStatusDelayed_insert_threadsDescr = 'Broj hvatište grana INSERT DELAYED u upotrebi. Svaka druga tablica na koju se primjeni INSERT DELAYED dobiva vlastitu granu.';
+$strShowStatusDelayed_writesDescr = 'Broj redaka zapisanih pomoću INSERT DELAYED.';
+$strShowStatusFlush_commandsDescr = 'Broj izvršenih izjava FLUSH.';
+$strShowStatusHandler_commitDescr = 'Broj internih izjava COMMIT.';
+$strShowStatusHandler_deleteDescr = 'Brojka koja prokazuje koliko puta je redak bio izbrisan iz tablice.';
+$strShowStatusHandler_discoverDescr = 'MySQL poslužitelj može upitati pogon pohranjivanja NDB skupine, zna li za tablicu s traženim nazivom. Ovaj se postupak naziva otkrivanje. Handler_discover naznačuje koliko je puta tablica bila otkrivenom.';
+$strShowStatusHandler_read_firstDescr = 'Brojka koja prokazuje koliko puta je prvi unos bio čitan iz indeksa. Velik broj je pokazatelj da poslužitelj izvodi mnogo potpunih pretraživanja indeksa, npr. SELECT col1 FROM foo, pri čemu je col1 indeksiran.';
+$strShowStatusHandler_read_keyDescr = 'Broj zahtjeva za čitanje retka zasnovan na ključu. Velik broj je pokazatelj da su vaši upiti i tablice pravilno indeksirani.';
+$strShowStatusHandler_read_nextDescr = 'Broj zahtjeva za čitanje sljedećeg retka u redoslijedu ključa. Ovaj se broj povećava ako izvodite upite stupca indeksa s ograničenjem opsega ili ako izvodite pretraživanje indeksa.';
+$strShowStatusHandler_read_prevDescr = 'Broj zahtjeva za čitanje prethodnog retka u redoslijedu ključa. Ovaj način čitanja uglavnom se upotrebljava za optimiziranje opcije ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Broj zahtjeva za čitanje retka zasnovanog na fiksnom položaju. Ovaj iznos je velik ako izvodite mnogo upita koji zahtjevaju preslagivanje rezultata. Vjerojatno imate mnogo upita koji zahtijevaju da MySQL pretražuje cjelokupne tablice ili imate spojeve koji ne upotrebljavaju ključ na pravilan način.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Broj zahtjeva za čitanje sljedećeg retka u datoteci s podacima. Ovaj broj je velik ako izvodite mnogo pretraživanja tablice. Općenito, ovaj iznos naznačuje da vaša tablice nisu pravilno indeksirane ili da vaši upiti nisu napisani na način koji iskorištava prednosti raspoloživih indeksa.';
+$strShowStatusHandler_rollbackDescr = 'Broj internih izjava ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'Broj zahtjeva za ažuriranje retka u tablici.';
+$strShowStatusHandler_writeDescr = 'Broj zahtjeva za umetanje retka u tablici.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Broj stranice koje sadrže podatke (dirty ili clean).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Broj stranica koje su trenutno \'dirty\'.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Broj stranica međuspremnika za koje je podnesen zahtjev za pražnjenjem.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Broj slobodnih stranica.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Broj vezanih stranica u InnoDB međuspremniku. Ove se stranice trenutno čitaju ili zapisuju, ili ih nije moguće isprazniti ili ukloniti iz nekog drugog razloga.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Broj stranica koje su zauzete jer su dodijeljene za administrativna prepunjenja, poput zaključavanja redaka ili adaptivni indeks presjeka. Ovu je vrijednost moguće izračunati i kao Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Ukupna veličina međuspremnika, u stranicama.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Broj "nasumičnih" pripremnih čitanja koje je InnoDB inicijalizirao. Događa se kad upit mora pretražiti veliki dio tablice, ali nasumičnim redoslijedom.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Broj slijednih pripremnih čitanja koje je inicijalizirao InnoDB. Ovo se događa kad InnoDB izvodi potpuno pretraživanje tablice.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Broj logičkih zahtjeva za čitanjem koje je obavio InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Broj logičkih čitanja koje InnoDB nije mogao zadovoljiti iz međuspremnik i morao je izvesti čitanje po jedne stranice.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Uobičajeno, zapisivanja u InnoDB međuspremnik izvode se u pozadini. Ipak, ako je potrebno iščitati ili izraditi stranicu, a nema raspoložive prazne stranice, bit će potrebno pričekati pražnjenje stranice. Ovaj brojač prikazuje stanje ovog čekanja. Ako je veličina međuspremnika pravilno postavljena, ova bi vrijednost trebala biti malenom.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Broj izvršenih zapisivanja u InnoDB međuspremnik.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Broj dosadašnjih fsync() operacija.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Trenutan broj fsync() operacija u čekanju.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Trenutan broj čitanja u čekanju.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Trenutan broj zapisivanja u čekanju.';
+$strShowStatusInnodb_data_readDescr = 'Količina podataka pročitanih do ovog trenutka, u bajtovima.';
+$strShowStatusInnodb_data_readsDescr = 'Ukupan broj iščitavanja podataka.';
+$strShowStatusInnodb_data_writesDescr = 'Ukupan broj zapisivanja podataka.';
+$strShowStatusInnodb_data_writtenDescr = 'Količina podataka zapisanih do ovog trenutka, u bajtovima.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Broj dvostrukih zapisivanja do ovog trenutka i broj stranica zapisanih za ovu potrebu.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Broj dvostrukih zapisivanja do ovog trenutka i broj stranica zapisanih za ovu potrebu.';
+$strShowStatusInnodb_log_waitsDescr = 'Broj čekanja koja su se dogodila zbog nedovoljno velikog zapisnika međuspremnika, te je bilo potrebno čekati njegovo pražnjenje prije nastavka rada.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Broj zahtjeva za zapisivanje u zapisnik.';
+$strShowStatusInnodb_log_writesDescr = 'Broj fizičkih zapisivanja u zapisnik.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Broj fsyncs zapisivanja izvršenih u datoteci zapisnika.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Broj naredbi fsyncs za zapisnik, a koje su na čekanju.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Zapisivanja u zapisnik na čekanju.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Broj bajtova zapisanih u zapisnik.';
+$strShowStatusInnodb_pages_createdDescr = 'Broj izrađenih stranica.';
+$strShowStatusInnodb_page_sizeDescr = 'Izrađena veličina InnoDB stranice (zadana vrijednost je 16kB). Mnoge se vrijednosti prebrojavaju u stranicama. Veličina stranice dopušta njihovo jednostavno pretvaranje u bajtove.';
+$strShowStatusInnodb_pages_readDescr = 'Broj iščitanih stranica.';
+$strShowStatusInnodb_pages_writtenDescr = 'Broj zapisanih stranica.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Broj zaključavanja redaka na koje se trenutno čeka.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Prosječno vrijeme postizanja zaključanosti retka, u milisekundama.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Ukupno vrijeme utrošeno na postizanja zaključanosti retka, u milisekundama.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Najdulje vrijeme postizanja zaključanosti retka, u milisekundama.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Broj okolnosti kad je bilo potrebno čekati na zaključanost retka.';
+$strShowStatusInnodb_rows_deletedDescr = 'Broj redaka izbrisanih iz InnoDB tablica.';
+$strShowStatusInnodb_rows_insertedDescr = 'Broj redaka umetnutih u InnoDB tablice.';
+$strShowStatusInnodb_rows_readDescr = 'Broj redaka iščitanih iz InnoDB tablica.';
+$strShowStatusInnodb_rows_updatedDescr = 'Broj ažuriranih redaka u InnoDB tablicama.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Broj ključnih blokova u pohrani ključeva koji su izmijenjeni ali još nisu ispražnjeni na disk. Nekoć se nazivalo: Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Broj neiskorištenih blokova u pohrani ključeva. Ovu vrijednost možete upotrijebiti za određivanje veličine pohrane ključeva koja je u upotrebi.';
+$strShowStatusKey_blocks_usedDescr = 'Broj iskorištenih blokova u pohrani ključeva. Ova je vrijednost oznaka gornje razine koja označuje najveći broj blokova koji su ikad bili u istovremenoj upotrebi.';
+$strShowStatusKey_read_requestsDescr = 'Broj zahtjeva za čitanje ključnog bloka iz pohrane.';
+$strShowStatusKey_readsDescr = 'Broj fizičkih čitanja ključnih blokova s diska. Ako je iznos Key_reads velik, vjerojatno je vaša vrijednost key_buffer_size premala. Stupanj promašivanja pohrane moguće je izračunati putem naredbi Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Broj zahtjeva za zapisivanje ključnog bloka u pohranu.';
+$strShowStatusKey_writesDescr = 'Broj fizičkih zapisivanja ključnih blokova na disk. ';
+$strShowStatusLast_query_costDescr = 'Ukupan trošak posljednjeg složenog upita, izračunat od strane optimizatora upita. Korisno za uspoređivanje troškova različitih planova upita za isti upit. Zadana vrijednost je 0 i podrazumijeva da još nema složenog upita.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Broj redaka koji čekaju svoje upisivanje u red čekanja INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Broj tablica koje su otvorene. Ako je iznos otvorenih tablica velik, vaša vrijednost za pohranu tablica vjerojatno je premala.';
+$strShowStatusOpen_filesDescr = 'Broj otvorenih datoteka.';
+$strShowStatusOpen_streamsDescr = 'Broj otvorenih protoka (uglavnom se upotrebljava za vođenje zapisnika).';
+$strShowStatusOpen_tablesDescr = 'Broj otvorenih tablica.';
+$strShowStatusQcache_free_blocksDescr = 'Broj slobodnih memorijskih blokova u pohrani upita.';
+$strShowStatusQcache_free_memoryDescr = 'Količina slobodne memorije za pohranu upita.';
+$strShowStatusQcache_hitsDescr = 'Broj pronalaženja u pohrani.';
+$strShowStatusQcache_insertsDescr = 'Broj upita pridodanih u pohranu.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Broj upita koji su uklonjeni iz pohrane radi oslobađanja memorije za potrebe pohranjivanja novih upita. Ovaj vam podatak može pomoći pri podešavanju veličine pohrane upita. Pohrana upita upotrebljava strategiju posljednjeg nedavno upotrebljavanog (LRU - least recently used) radi odlučivanja koje će upite ukloniti iz pohrane.';
+$strShowStatusQcache_not_cachedDescr = 'Broj upita koji nisu pohranjeni (nisu za pohranu ili nisu pohranjeni zbog postavke query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Broj upita registriranih u pohrani.';
+$strShowStatusQcache_total_blocksDescr = 'Ukupan broj blokova u pohrani upita.';
+$strShowStatusReset = 'Povrat';
+$strShowStatusRpl_statusDescr = 'Stanje replikacije sigurnosti protiv otkaza (još nije implementirano).';
+$strShowStatusSelect_full_joinDescr = 'Broj spojeva koji ne upotrebljavaju indekse. Ako ovaj iznos nije 0, bit će potrebno da pažljivo provjerite indekse vaših tablica.';
+$strShowStatusSelect_full_range_joinDescr = 'Broj spojeva koji nad referentnom tablicom upotrebljavaju opseg traženja.';
+$strShowStatusSelect_range_checkDescr = 'Broj spojeva bez ključeva koji provjeravaju upotrebu ključa nakon svakog retka. (Ako ovaj iznos nije 0, bit će potrebno da pažljivo provjerite indekse vaših tablica.';
+$strShowStatusSelect_rangeDescr = 'Broj spojeva koji su upotrijebili opsege nad prvom tablicom. (Općenito nije kritično ako je ovaj iznos velik.)';
+$strShowStatusSelect_scanDescr = 'Broj spojeva koji su izveli potpuno pretraživanje prve tablice.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Broj privremenih tablica koje su trenutno otvorene od strane potčinjene SQL grane.';
+$strShowStatusSlave_retried_transactionsDescr = 'Ukupna količina (od pokretanja) ponovnih pokušaja transakcija od strane replikacijske potčinjene SQL grane.';
+$strShowStatusSlave_runningDescr = 'Uključeno (ON) ako je ovaj poslužitelj potčinjen i povezan na gospodara.';
+$strShowStatusSlow_launch_threadsDescr = 'Broj grana kojima je bilo potrebno više vremena za izradu, nego što je to definirano u slow_launch_time (sporo vrijeme pokretanja), u sekundama.';
+$strShowStatusSlow_queriesDescr = 'Broj upita kojima je bilo potrebno više vremena nego što je to definirano u long_query_time (dugo vrijeme upita), u sekundama.';
+$strShowStatusSort_merge_passesDescr = 'Broj prolaza udruživanja koje je algoritam za preslagivanje morao izvesti. Ako je ovaj iznos velik, razmotrite mogućnost povećanja vrijednosti sistemske varijable sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Broj preslagivanja učinjenih pomoću opsega.';
+$strShowStatusSort_rowsDescr = 'Broj presloženih redaka.';
+$strShowStatusSort_scanDescr = 'Broj preslagivanja učinjenih pomoću pretraživanja tablice.';
+$strShowStatusTable_locks_immediateDescr = 'Količina trenutno postignutih zaključavanja tablica.';
+$strShowStatusTable_locks_waitedDescr = 'Količina zaključavanja tablica koji nisu mogli biti trenutno postignuti i bilo je potrebno određeno čekanje. Ako je ovaj iznos visok i ako imate problema s performansama, bit će potrebno da prvo optimizirate svoje upite i potom ili podijelite svoje tablice ili upotrijebite replikaciju.';
+$strShowStatusThreads_cachedDescr = 'Broj grana u pohrani grana. Stupanj pogodaka u pohrani može se izračunati kao Threads_created/Connections. Ako je ovaj iznos prikazan crvenom bojom, bit će potrebno da povećate svoju vrijednost thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Broj trenutno otvorenih veza.';
+$strShowStatusThreads_createdDescr = 'Broj grana izrađenih za rukovanje vezama. Ako je iznos Threads_created velik, moglo bi biti potrebno da povećate vrijednost thread_cache_size. (Uobičajeno, ako imate dobru implementaciju grana, ova opcija neće pružiti primjetna poboljšanja performansi.)';
+$strShowStatusThreads_runningDescr = 'Broj grana koje nisu uspavane.';
+$strShowTableDimension = 'Prikaži dimenzije tablice';
+$strShowTables = 'Prikaži tablice';
+$strShowThisQuery = 'Ovaj upit ponovno prikaži ovdje';
+$strSimplifiedChinese = 'Kineski, pojednostavljen';
+$strSingly = '(pojedinačno)';
+$strSize = 'Veličina';
+$strSkipQueries = 'Broj zapisa (upita) koje je potrebno preskočiti od početka';
+$strSlovak = 'Slovački';
+$strSlovenian = 'Slovenski';
+$strSmallBigAll = 'Malo / Sve veliko';
+$strSnapToGrid = 'Poravnaj s mrežom';
+$strSocketProblem = '(ili priključak lokalnog MySQL poslužitelja nije ispravno konfiguriran)';
+$strSortByKey = 'Presloži po ključu';
+$strSorting = 'Preslagivanje';
+$strSort = 'Presloži';
+$strSpaceUsage = 'Iskorištenost prostora';
+$strSpanish = 'Španjolski';
+$strSplitWordsWithSpace = 'Riječi su razdvojene znakom razmaka (" ").';
+$strSQLCompatibility = 'Način rada SQL kompatibilnosti';
+$strSQLExportType = 'Vrsta izvoza';
+$strSQLParserBugMessage = 'Postoji mogućnost da ste pronašli nedostatak u SQL raščlanjivaču. Temeljito proučite vaš upit i provjerite ispravan unos navodnika. Jedan od mogućih razloga je i da ste učitali datoteku s binarnim vrijednosti izvan prostora s navodnicima. Vaš upit također možete provjeriti u naredbenom retku MySQL-a. Ispis pogreške MySQL poslužitelja može vam pomoći u dijagnosticiranju problema. Ako i dalje postoje problemi ili ako raščlanjivač ne uspijeva u zadacima koji uspijevaju u naredbenom retku, suzite svoj unos SQL upita na samo onaj upit koji izaziva probleme i podnesite prijavu o nedostatku zajedno s dijelom podatka u donjem odjeljku CUT:';
+$strSQLParserUserError = 'Izgleda da postoji pogreška u vašem SQL upitu. Ispis pogreške MySQL poslužitelja može vam pomoći u dijagnosticiranju problema.';
+$strSQLQuery = 'SQL upit';
+$strSQLResult = 'SQL rezultat';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Neispravna ID oznaka';
+$strSQPBugUnclosedQuote = 'Navodnik nije zatvoren';
+$strSQPBugUnknownPunctuation = 'Nepoznat niz interpunkcija';
+$strStandInStructureForView = 'Unutarnja struktura za pregledavanje';
+$strStatCheckTime = 'Posljednja provjera';
+$strStatCreateTime = 'Izrada';
+$strStatement = 'Izjave';
+$strStatisticsOverrun = 'Na zaposlenom poslužitelju brojač bajtova mogao bi preletjeti svoj raspon prikaza, pri čemu bi statistike koje prikazuje MySQL poslužitelj mogle biti netočne.';
+$strStatUpdateTime = 'Posljednje ažuriranje';
+$strStatus = 'Stanje';
+$strStorageEngine = 'Pogon pohrane';
+$strStorageEngines = 'Pogoni pohrane';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Strukturu i podatke';
+$strStrucExcelCSV = 'CSV za MS Excel';
+$strStrucNativeExcel = 'Izvorno MS Excel oblikovanje';
+$strStrucOnly = 'Samo strukturu';
+$strStructPropose = 'Predloži strukturu tablice';
+$strStructureForView = 'Struktura za pregledavanje';
+$strStructure = 'Strukturu';
+$strSubmit = 'Podnesi';
+$strSuccess = 'Vaš SQL upit uspješno je izvršen';
+$strSum = 'Zbroj';
+$strSwedish = 'Švedski';
+$strSwitchToDatabase = 'Prebaci se na kopiranu bazu podataka';
+$strSwitchToTable = 'Prebaci se na kopiranu tablicu';
+
+$strTableAlreadyExists = 'Tablica %s već postoji!';
+$strTableComments = 'Komentari tablice';
+$strTableEmpty = 'Naziv tablice je prazan!';
+$strTableHasBeenDropped = 'Tablica %s je odbačen';
+$strTableHasBeenEmptied = 'Tablica %s je očišćena';
+$strTableHasBeenFlushed = 'Tablica %s je ispražnjena';
+$strTableIsEmpty = 'Tablica izgleda praznom!';
+$strTableMaintenance = 'Održavanje tablice';
+$strTableName = 'Naziv tablice';
+$strTableOfContents = 'Sadržaj tablice';
+$strTableOptions = 'Opcije tablice';
+$strTables = '%s tablica';
+$strTableStructure = 'Tablična struktura za tablicu';
+$strTable = 'Tablica';
+$strTakeIt = 'Dodijeli';
+$strTblPrivileges = 'Privilegije specifične za tablicu';
+$strTempData = 'Privremeni podaci';
+$strTextAreaLength = ' Zbog svoje duljine,<br /> uređivanje ovog polja možda neće biti moguće ';
+$strThai = 'Thai';
+$strThemeDefaultNotFound = 'Zadana tema %s nije pronađena!';
+$strThemeNoPreviewAvailable = 'Nema raspoloživog pregleda.';
+$strThemeNotFound = 'Tema %s nije pronađena!';
+$strThemeNoValidImgPath = 'Valjana putanja slika za temu %s nije pronađena!';
+$strThemePathNotFound = 'Za temu %s nije pronađena putanje tema!';
+$strTheme = 'Tema / Stil';
+$strThisHost = 'Ovo računalo';
+$strThreads = 'Grane';
+$strThreadSuccessfullyKilled = 'Grana %s uspješno je prekinuta.';
+$strTimeoutInfo = 'Vrijeme prethodnog uvoza je isteklo. Nakon ponovno podnošenja bit će nastavljeno od položaja %d.';
+$strTimeoutNothingParsed = 'Ipak, pri posljednjem prijelazu nikakvi podaci nisu bili raščlanjeni. To znači da phpMyAdmin neće biti u mogućnosti završiti ovaj uvoz sve dok ne povećate vremenska ograničenja unutar php.';
+$strTimeoutPassed = 'Vrijeme za skriptu je isteklo. Ako želite završiti uvoz, ponovo podnesite istu datoteku i uvoz će nastaviti.';
+$strTime = 'Vrijeme';
+$strToFromPage = 'stranica od / prema';
+$strToggleScratchboard = 'Uključi bilješke';
+$strToggleSmallBig = 'Malo / Veliko';
+$strToSelectRelation = 'Za odabir relacije pritisnite:';
+$strTotalUC = 'Ukupno';
+$strTotal = 'ukupno';
+$strTraditionalChinese = 'Kineski, tradicionalan';
+$strTraditionalSpanish = 'Španjolski, tradicionalan';
+$strTraffic = 'Promet';
+$strTransactionCoordinator = 'Koordinator transakcije';
+$strTransformation_application_octetstream__download = 'Prikazuje vezu prema preuzimanju binarnih podataka polja. Možete upotrijebiti prvu opciju kako biste sami odredili naziv datoteke ili drugu opciju kako biste upotrijebili naziv polja koje sadrži naziv datoteke. Ako upotrijebite drugu opciju, u prvu opciju morate unijeti prazan niz.';
+$strTransformation_application_octetstream__hex = 'Prikazuje podatke u heksadecimalnom obliku. Opcionalan prvi parametar određuje koliko često će prazna mjesta biti dodavana (zadana vrijednost je 2).';
+$strTransformation_image_jpeg__inline = 'Prikazuje sličicu s mogućnošću pritiskanja. Opcije su najveća širina i visina u pikselima. Izvorne proporcije su očuvane.';
+$strTransformation_image_jpeg__link = 'Prikazuje vezu za preuzimanje ove slike.';
+$strTransformation_image_png__inline = 'Pogledajte slika/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Polja TIME (vrijeme), TIMESTAMP (vremenska oznaka), DATETIME (datum i vrijeme) ili brojčanu uniksoidnu oznaku vremena prikazuje kao oblikovani datum. Prva opcija je odmak (u satima) koji će biti pridodan vremenskoj oznaci (zadano: 0). Druga opcije određuje drukčiji oblik izražavanja datuma i vremena. Treća opcija određuje želite li prikazati lokalni datum ili u skladu s UTC (upotrijebite izraz "local" ili "utc"). Sukladno tome, oblik datuma ima različite vrijednosti - za opciju "local" pogledajte dokumentaciju o upotrebi PHP funkcije strftime(), a za "utc" pogledajte dokumentaciju o upotrebi funkcije gmdate().';
+$strTransformation_text_plain__external = 'SAMO ZA LINUX: Pokreće vanjsku aplikaciju i predaje joj podatke polja putem standardnog unosa. Vraća standardan ispis aplikacije. Zadana aplikacija je Tidy, uredno ispisivanje HTML koda. Iz sigurnosnih razloga morate ručno urediti datoteku libraries/transformations/text_plain__external.inc.php i izraditi popis alata koje želite učiniti raspoloživim. Prva opcija će biti redni broj programa kojeg želite upotrebljavati a druga opcija su parametri programa. Ako je treća opcija postavljena na vrijednost 1, pretvorit će ispis pomoću htmlspecialchars(), (zadano: 1). Ako je četvrta opcija postavljena na vrijednost 1, spriječit će omatanje i osigurati prikaz ispisa u jednom retku (zadano: 1).';
+$strTransformation_text_plain__formatted = 'Prikazuje sadržaj polje u izvornom obliku, bez njegovog provlačenja kroz htmlspecialchars(). Odnosno, za polje se pretpostavlja da ne sadrži valjani HTML kod.';
+$strTransformation_text_plain__imagelink = 'Prikazuje sliku i vezu. Polje sadrži naziv datoteke. Prva opcija je URL prefiks, poput "http://www.example.com/". Druga i treća opcija predstavljaju širinu i visinu u pikselima.';
+$strTransformation_text_plain__link = 'Prikazuje vezu. Polje sadrži naziv datoteke. Prva opcija je URL prefiks, poput "http://www.example.com/". Druga opcija je naziv veze.';
+$strTransformation_text_plain__sql = 'Oblikuje tekst kao SQL upit s naglašavanjem sintakse.';
+$strTransformation_text_plain__substr = 'Prikazuje dio niza. Prva opcija je broj znakova koje je potrebno preskočiti, od početka niza (zadano: 0). Druga opcija je broj znakova za povrat (zadano: do završetka niza). Treća opcija je niz koji je potrebno pridodati iza završetka i/ili prije početka kad započne srezivanje (zadano: "...").';
+$strTriggers = 'Okidači';
+$strTruncateQueries = 'Sreži prikazane rezultate';
+$strTurkish = 'Turski';
+$strType = 'Vrsta';
+
+$strUkrainian = 'Ukrajinski';
+$strUncheckAll = 'Ukloni sve oznake';
+$strUnicode = 'Unicode';
+$strUnique = 'Jedinstveno';
+$strUnknown = 'nepoznato';
+$strUnselectAll = 'Ukloni sav odabir';
+$strUnsupportedCompressionDetected = 'Pokušali ste učitati datoteku s nepodržanim načinom komprimiranja (%s). Takva podrška još nije implementirana ili je onemogućena u vašoj konfiguraciji.';
+$strUpdatePrivMessage = 'Ažurirali ste privilegije za %s.';
+$strUpdateProfileMessage = 'Profil je ažuriran.';
+$strUpdateQuery = 'Ažuriraj upit';
+$strUpdComTab = 'Pogledajte dokumentaciju radi uputa o ažuriranju tablice column_comments.';
+$strUpgrade = 'Trebali biste nadograditi na %s %s ili kasniju.';
+$strUploadErrorCantWrite = 'Zapisivanje datoteke na disk nije uspjelo.';
+$strUploadErrorExtension = 'Učitavanje datoteke prekinuto je uslijed ekstenzije.';
+$strUploadErrorFormSize = 'Učitana datoteka nadmašuje uputu MAX_FILE_SIZE (najveća veličina datoteke), određenu u HTML obliku.';
+$strUploadErrorIniSize = 'Učitana datoteka nadmašuje uputu upload_max_filesize (najveća veličina datoteke) u datoteci php.ini.';
+$strUploadErrorNoTempDir = 'Nedostaje mapa privremene pohrane.';
+$strUploadErrorPartial = 'Učitana datoteka bila je djelomično učitana.';
+$strUploadErrorUnknown = 'Nepoznata pogreška tijekom učitavanja datoteke.';
+$strUploadLimit = 'Vjerojatno ste pokušali s učitavanjem prevelike datoteke. Pogledajte %sdokumentaciju%s radi uputa o načinima rješavanja ovog ograničenja.';
+$strUploadsNotAllowed = 'Učitavanje datoteka nije dopušteno na ovom poslužitelju.';
+$strUsage = 'Upotreba';
+$strUseBackquotes = 'Unesi nazive tablica i polja sa stražnjim navodnicima';
+$strUseHostTable = 'Upotrijebi tablicu poslužitelja';
+$strUserAlreadyExists = 'Korisnik %s već postoji!';
+$strUserEmpty = 'Korisničko ime je prazno!';
+$strUser = 'Korisnik';
+$strUserName = 'Korisničko ime';
+$strUserNotFound = 'Odabrani korisnik nije pronađen u tablici privilegija.';
+$strUserOverview = 'Pregled korisnika';
+$strUsersDeleted = 'Odabrani korisnici uspješno su izbrisani.';
+$strUsersHavingAccessToDb = 'Korisnici koji imaju pristup u "%s"';
+$strUseTabKey = 'Pomoću tipke TAB premještate se od jedne vrijednost do druge vrijednost, odnosno s tipkama CTRL+Strelice za premještanje bilo kamo';
+$strUseTables = 'Upotrijebi tablice';
+$strUseTextField = 'Upotrijebi tekstualno polje';
+$strUseThisValue = 'Upotrijebi ovu vrijednost';
+
+$strValidateSQL = 'Provjera valjanosti SQL-a';
+$strValidatorError = 'SQL validator nije bilo moguće pokrenuti. Provjerite jeste li instalirali potrebna PHP proširenja, na način opisan u %sdokumentaciji%s.';
+$strValue = 'Vrijednost';
+$strVar = 'Varijabla';
+$strVersionInformation = 'Podaci o verziji';
+$strViewDumpDatabases = 'Prikaži ispis (shemu) baza podataka';
+$strViewDumpDB = 'Prikaži ispis (shemu) baze podataka';
+$strViewDump = 'Prikaži ispis (shemu) tablice';
+$strViewHasBeenDropped = 'Index %s je ispušten';
+$strViewName = 'Naziv prikaza';
+$strView = 'Prikaz';
+
+$strWebServerUploadDirectoryError = 'Mapu koju ste odabrali za potrebe učitavanja nije moguće dohvatiti';
+$strWebServerUploadDirectory = 'mapa učitavanja web poslužitelja';
+$strWelcome = 'Dobro došli u %s';
+$strWestEuropean = 'Zapadno europski';
+$strWildcard = 'džoker';
+$strWindowNotFound = 'Ciljani prozor preglednika nije bilo moguće osvježiti. Možda ste zatvorili nadređeni prozor ili su postavke sigurnosti vašeg preglednika konfigurirane za blokiranje ažuriranja preko više prozora.';
+$strWithChecked = 'S odabirom:';
+$strWriteRequests = 'Zahtjevi zapisivanja';
+$strWrongUser = 'Pogrešno korisničko ime ili lozinka. Pristup odbijen.';
+
+$strXML = 'XML';
+
+$strYes = 'Da';
+
+$strZeroRemovesTheLimit = 'Napomena: Postavljanje ovih opcija na vrijednost 0 (nula) uklanja ograničenje.';
+$strZip = '"zipano"';
+$strPartitionDefinition = 'Definicija PARTICIJE';
+$strPrivDescTrigger = 'Omogućuje izradu i uklanjanje okidača';
+$strPrivDescEvent = 'Omogućuje postavljanje događaja za planer';
+$strPrivDescProcess = 'Omogućuje pregledavanje procesa za sve korisnike';
+$strPartitioned = 'particionirano';
+$strTableAlteredSuccessfully = 'Tablica %1$s uspješno je izmijenjena.';
+$strDatabaseHasBeenCreated = 'Baza podataka %1$s uspješno je izrađena.';
+$strTableHasBeenCreated = 'Tablica %1$s je izrađena.';
+$strForeignKeyError = 'Pogreška tijekom izrade stranog ključa na %1$s (provjerite vrste podataka)';
+$strRowsDeleted = 'Izbrisano redaka: %1$d.';
+$strRowsAffected = 'Zahvaćeno redaka: %1$d.';
+$strRowsInserted = 'Umetnuto redaka: %1$d.';
+$strInsertedRowId = 'Umetnut ID retka: %1$d';
+$strIndexesSeemEqual = 'Indeksi %1$s i %2$s izgledaju jednakim i jednog od njih moguće je ukloniti.';
+$strPartitionMaintenance = 'Održavanje particije';
+$strPartition = 'Particija %s';
+$strAnalyze = 'Analiziraj';
+$strCheck = 'Provjeri';
+$strOptimize = 'Optimiziraj';
+$strRebuild = 'Ponovno izgradi';
+$strRepair = 'Popravi';
+$strRemovePartitioning = 'Ukloni particioniranje';
+$strSearchInField = 'Unutar polja:';
+$strTexyText = 'Texy! tekst';
+$strDetails = 'Detalji...';
+$strComment = 'Komentar';
+$strPacked = 'Pakirano';
+$strActions = 'Aktivnosti';
+$strInterface = 'Sučelje';
+$strSuhosin = 'Poslužitelj pokrenut sa Suhosin. Proučite %sdokumentaciju%s radi mogućih problema.';
+$strEvents = 'Događaji';
+$strForeignKeyRelationAdded = 'Dodana je relacija FOREIGN KEY';
+$strInternalAndForeign = 'Interna relacija nije potrebna ako postoji odgovarajuća relacija FOREIGN KEY.';
+$strViewHasAtLeast = 'Ovaj prikaz sadrži najmanje ovoliko redaka. Proučite %sdokumentaciju%s.';
+$strRelationalKey = 'Relacijski ključ';
+$strRelationalDisplayField = 'Polje za prikaz relacija';
+$strPBXTIndexCacheSize = 'Veličina pohrane indeksa';
+$strPBXTRecordCacheSize = 'Veličina pohrane zapisa';
+$strPBXTLogCacheSize = 'Veličina pohrane zapisnika';
+$strPBXTLogFileThreshold = 'Najveća veličina datoteke zapisnika';
+$strPBXTTransactionBufferSize = 'Veličina međuspremnika transakcije';
+$strPBXTCheckpointFrequency = 'Učestalost točke provjere';
+$strPBXTDataLogThreshold = 'Najveća veličina zapisnika podataka';
+$strPBXTGarbageThreshold = 'Najveća veličina otpada';
+$strPBXTLogBufferSize = 'Veličina međuspremnika zapisnika';
+$strPBXTDataFileGrowSize = 'Veličina porasta datoteke podataka';
+$strPBXTRowFileGrowSize = 'Veličina porasta datoteke redaka';
+$strPBXTRowFileGrowSizeDesc = 'Veličina porasta datoteka pokazivača retka (.xtr).';
+$strPBXTDataFileGrowSizeDesc = 'Veličina porasta rukovanim datotekama podataka (.xtr).';
+$strPBXTLogBufferSizeDesc = 'Veličina međuspremnika tijekom zapisivanja podataka zapisnika. Zadana vrijednost je 256 MB. Pogon dodjeljuje jedan međuspremnik po grani, ali samo ako je grana potrebna za zapisivanje zapisnika podataka.';
+$strPBXTGarbageThresholdDesc = 'Postotak otpada u datoteci zapisnika podataka prije sređivanja. Vrijednost može biti od 1 do 99. Zadana vrijednost je 50.';
+$strPBXTDataLogThresholdDesc = 'Najveća dopuštena veličina datoteke zapisnika podataka. Zadana vrijednost je 64 MB. PBXT može izraditi najviše 32.000 zapisnika koje koriste sve tablice. Vrijednost ove varijable može se povećati kako bi se povećao ukupan broj podataka koji se mogu pohraniti u bazu podataka.';
+$strPBXTCheckpointFrequencyDesc = 'Količina podataka zapisana u zapisnik transakcija prije izvođenja točke provjere. Zadana vrijednost je 24 MB.';
+$strPBXTTransactionBufferSizeDesc = 'Veličina globalnog međuspremnika zapisnika transakcija (pogon dodjeljuje 2 međuspremnika ove veličine). Zadana vrijednost je 1 MB.';
+$strPBXTLogFileThresholdDesc = 'Veličina zapisnika transakcija prije povrata i izrade novog zapisnika. Zadana vrijednost je 16 MB.';
+$strPBXTLogCacheSizeDesc = 'Količina memorije dodijeljena međuspremniku zapisnika transakcija. Zadana vrijednost je 16 MB.';
+$strPBXTRecordCacheSizeDesc = 'Količina memorije dodijeljena međuspremniku zapisnika koja se koristi za međuspremanje podataka tablice. Zadana vrijednost je 32 MB. Ova se memorija upotrebljava za međuspremanje izmjena u datotekama rukovanim podacima (.xtd) pokazivača retka (.xtr).';
+$strPBXTIndexCacheSizeDesc = 'Količina memorije dodijeljena međuspremniku indeksa. Zadana vrijednost je 32 MB. Ovdje dodijeljena memorija koristi se samo za međupohranjivanje stranica indeksa.';
+$strPBXTLogFileCount = 'Najveći broj datoteka zapisnika';
+$strPBXTLogFileCountDesc = 'Broj datoteka zapisnika transakcija (pbxt/system/xlog*.xt) koje će sustav održavati. Ako broj zapisnika premašuje ovu vrijednost, stari zapisnici bit će izbrisani. U protivnom se preimenuju i daje im se sljedeći veći redni broj.';
+$strAsDefined = 'Kako je definirano:';
+$strWiki = 'Wiki';
+$strWebServer = 'Web poslužitelj';
+$strPHPExtension = 'PHP ekstenzija';
+$strCustomColor = 'Prilagođena boja';
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/czech-utf-8.inc.php b/lang/czech-utf-8.inc.php
new file mode 100644
index 0000000000..abadea0273
--- /dev/null
+++ b/lang/czech-utf-8.inc.php
@@ -0,0 +1,1450 @@
+<?php
+/* $Id$ */
+
+/**
+ * Czech language file by
+ * Michal Čihař <michal@cihar.com>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ' ';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$day_of_week = array('Neděle', 'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota');
+$month = array('ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%a %d. %b %Y, %H:%M';
+
+$timespanfmt = '%s dnů, %s hodin, %s minut a %s sekund';
+
+$strAbortedClients = 'Přerušené';
+$strAccessDeniedCreateConfig = 'Pravděpodobná příčina je, že nemáte vytvořený konfigurační soubor. Pro jeho vytvoření by se vám mohl hodit %1$snastavovací skript%2$s.';
+$strAccessDeniedExplanation = 'phpMyAdmin se pokusil připojit k MySQL serveru, a ten odmítl připojení. Zkontrolujte jméno serveru, uživatelské jméno a heslo v souboru config.inc.php a ujistěte se, že jsou totožné s těmi, které máte od administrátora MySQL serveru.';
+$strAccessDenied = 'Přístup odepřen';
+$strAction = 'Akce';
+$strActions = 'Akce';
+$strAddAutoIncrement = 'Přidat hodnotu AUTO_INCREMENT';
+$strAddClause = 'Přidat %s';
+$strAddConstraints = 'Přidat integritní omezení';
+$strAddDeleteColumn = 'Přidat nebo odebrat sloupec';
+$strAddDeleteRow = 'Přidat nebo odebrat řádek';
+$strAddFields = 'Přidat %s sloupců';
+$strAddHeaderComment = 'Přidat vlastní komentář do hlavičky (\\n odděluje řádky)';
+$strAddIntoComments = 'Do komentářů přidat';
+$strAddNewField = 'Přidat sloupec';
+$strAddPrivilegesOnDb = 'Přidat oprávnění pro databázi';
+$strAddPrivilegesOnTbl = 'Přidat oprávnění pro tabulku';
+$strAddSearchConditions = 'Přidat vyhledávací parametry (část dotazu po příkazu „WHERE“):';
+$strAddToIndex = 'Přidat %s sloupců do indexu';
+$strAddUserMessage = 'Uživatel byl přidán.';
+$strAddUser = 'Přidat nového uživatele';
+$strAdministration = 'Správa';
+$strAfterInsertBack = 'Návrat na předchozí stránku';
+$strAfterInsertNewInsert = 'Vložit další řádek';
+$strAfterInsertNext = 'Upravit následující řádek';
+$strAfterInsertSame = 'Návrat na tuto stránku';
+$strAfter = 'Po %s';
+$strAllowInterrupt = 'Povolit přerušení importu v případě že skript pozná, že se blíží časový limit nastavený v PHP. Tímto způsobem můžete importovat i velké soubory, ale může to způsobit problémy s transakcemi.';
+$strAllTableSameWidth = 'Použít pro všechny tabulky stejnou šířku';
+$strAll = 'Všechno';
+$strAlterOrderBy = 'Změnit pořadí tabulky podle';
+$strAnalyze = 'Analyzovat';
+$strAnalyzeTable = 'Analyzovat tabulku';
+$strAnd = 'a';
+$strAndThen = 'a poté';
+$strAngularLinks = 'Pravoúhlé spoje';
+$strAnIndex = 'K tabulce %s byl přidán index';
+$strAnyHost = 'Jakýkoliv počítač';
+$strAny = 'Jakýkoliv';
+$strAnyUser = 'Jakýkoliv uživatel';
+$strApproximateCount = 'Může být nepřesné, viz FAQ 3.11';
+$strAPrimaryKey = 'V tabulce %s byl vytvořen primární klíč';
+$strArabic = 'Arabština';
+$strArmenian = 'Arménština';
+$strAscending = 'Vzestupně';
+$strAsDefined = 'Dle zadání:';
+$strAtBeginningOfTable = 'Na začátku tabulky';
+$strAtEndOfTable = 'Na konci tabulky';
+$strAttr = 'Vlastnosti';
+$strAutomaticLayout = 'automatické rozvržení';
+
+$strBack = 'Zpět';
+$strBaltic = 'Baltické';
+$strBeginCut = 'ZAČÁTEK VÝPISU';
+$strBeginRaw = 'ZAČÁTEK VÝPISU';
+$strBinary = ' Binární ';
+$strBinaryDoNotEdit = ' Binární - neupravujte ';
+$strBinaryLog = 'Binární log';
+$strBinLogEventType = 'Typ události';
+$strBinLogInfo = 'Informace';
+$strBinLogName = 'Jméno logu';
+$strBinLogOriginalPosition = 'Původní pozice';
+$strBinLogPosition = 'Pozice';
+$strBinLogServerId = 'ID serveru';
+$strBLOBRepositoryDamaged = 'Poškozené';
+$strBLOBRepositoryDisableAreYouSure = 'Chcete vypnout všechny odkazy do skladiště BLOBů v databázi %s?';
+$strBLOBRepositoryDisabled = 'Vypnuté';
+$strBLOBRepositoryDisableStrongWarning = 'Chystáte se vypnout skladiště BLOBů!';
+$strBLOBRepositoryDisable = 'Vypnout';
+$strBLOBRepositoryEnabled = 'Zapnuté';
+$strBLOBRepositoryEnable = 'Zapnout';
+$strBLOBRepositoryRemove = 'Odstranit odkaz do skladiště BLOBů';
+$strBLOBRepositoryRepair = 'Opravit';
+$strBLOBRepository = 'Skladiště BLOBů';
+$strBLOBRepositoryStatus = 'Stav';
+$strBLOBRepositoryUpload = 'Nahrát do skladiště BLOBů';
+$strBookmarkAllUsers = 'Umožnit všem uživatelům používat tuto položku';
+$strBookmarkCreated = 'Vytvořen oblíbený dotaz %s';
+$strBookmarkDeleted = 'Položka byla smazána z oblíbených.';
+$strBookmarkLabel = 'Název';
+$strBookmarkQuery = 'Oblíbený SQL dotaz';
+$strBookmarkReplace = 'Přepsat existující oblíbený dotaz stejného jména';
+$strBookmarkThis = 'Přidat tento SQL dotaz do oblíbených';
+$strBookmarkView = 'Zobrazit';
+$strBrowseDistinctValues = 'Procházet odlišné hodnoty';
+$strBrowseForeignValues = 'Projít hodnoty cizích klíčů';
+$strBrowse = 'Projít';
+$strBufferPoolActivity = 'Aktivita vyrovnávací paměti';
+$strBufferPoolUsage = 'Využití vyrovnávací paměti';
+$strBufferPool = 'Vyrovnávací paměť';
+$strBufferReadMissesInPercent = 'Výpadků při čtení v %';
+$strBufferReadMisses = 'Výpadků při čtení';
+$strBufferWriteWaits = 'Čekání na zápis';
+$strBufferWriteWaitsInPercent = 'Čekání na zápis v %';
+$strBulgarian = 'Bulharština';
+$strBusyPages = 'Zpracovávaných stránek';
+$strBzip = '„zabzipováno“';
+
+$strCalendar = 'Kalendář';
+$strCancel = 'Zrušit';
+$strCanNotLoadExportPlugins = 'Nepodařilo se nahrát pluginy pro export, zkontrolujte prosím vaší instalaci!';
+$strCanNotLoadImportPlugins = 'Nepodařilo se nahrát pluginy pro import, zkontrolujte prosím vaší instalaci!';
+$strCannotLogin = 'Nepodařilo se přihlášení k MySQL serveru';
+$strCantLoad = 'nelze nahrát rozšíření %s,<br />zkontrolujte prosím nastavení PHP';
+$strCantLoadRecodeIconv = 'Nelze nahrát rozšíření iconv ani recode potřebná pro převod znakových sad. Upravte nastavení PHP tak, aby umožňovalo použít tyto rozšíření nebo vypněte převod znakových sad v phpMyAdminovi.';
+$strCantRenameIdxToPrimary = 'Index nemůžete přejmenovat na „PRIMARY“!';
+$strCantUseRecodeIconv = 'Nelze použít funkce iconv ani libiconv ani recode_string, přestože rozšíření jsou nahrána. Zkontrolujte nastavení PHP.';
+$strCardinality = 'Mohutnost';
+$strCaseInsensitive = 'nerozlišovat velká a malá písmena';
+$strCaseSensitive = 'rozlišovat velká a malá písmena';
+$strCentralEuropean = 'Střední Evropa';
+$strColComFeat = 'Zobrazuji komentáře sloupců';
+$strCollation = 'Porovnávání';
+$strColumnNames = 'Názvy sloupců';
+$strColumnPrivileges = 'Oprávnění pro jednotlivé sloupce';
+$strCommand = 'Příkaz';
+$strComment = 'Komentář';
+$strComments = 'Komentáře';
+$strCompatibleHashing = 'Kompatibilní s MySQL 4.0';
+$strCompleteInserts = 'Úplné inserty';
+$strCompression = 'Komprese';
+$strCompressionWillBeDetected = 'Komprimace importovaného souboru bude automaticky rozpoznána. Podporovány jsou: %s';
+$strConfigDefaultFileError = 'Nepodařilo se nahrát výchozí konfiguraci ze souboru: „%1$s“';
+$strConfigFileError = 'phpMyAdmin nemohl načíst konfigurační soubor!<br />Tato chyba může nastat, pokud v něm PHP najde chybu nebo nemůže tento soubor najít.<br />Po kliknutí na následující odkaz se PHP pokusí přímo interpretovat tento soubor a zobrazí informace o chybě, ke které došlo. Pak opravte tuto chybu (nejčastěji se jedná o chybějící středník).<br />Pokud získáte prázdnou stránku, všechno je v pořádku.';
+$strConfigureTableCoord = 'Prosím, nastavte souřadnice pro tabulku %s';
+$strConnectionError = 'Nepodařilo se připojit: chybné nastavení.';
+$strConnections = 'Připojení';
+$strConstraintsForDumped = 'Omezení pro exportované tabulky';
+$strConstraintsForTable = 'Omezení pro tabulku';
+$strControluserFailed = 'Nepodařilo se připojit jako controluser, který je nadefinován v nastaveních.';
+$strCookiesRequired = 'Přihlášení vyžaduje povolené cookies.';
+$strCopyDatabaseOK = 'Databáze %s byla zkopírována na %s';
+$strCopy = 'Kopírovat';
+$strCopyTable = 'Kopírovat tabulku do (databáze<b>.</b>tabulka):';
+$strCopyTableOK = 'Tabulka %s byla zkopírována do %s.';
+$strCopyTableSameNames = 'Nelze kopírovat tabulku na sebe samu!';
+$strCouldNotKill = 'phpMyAdminovi se nepodařilo ukončit vlákno %s. Pravděpodobně jeho běh již skončil.';
+$strCreateDatabaseBeforeCopying = 'Vytvořit databázi před kopírováním (CREATE DATABASE)';
+$strCreateIndexTopic = 'Vytvořit nový index';
+$strCreateIndex = 'Vytvořit index na %s sloupcích';
+$strCreateNewDatabase = 'Vytvořit novou databázi';
+$strCreateNewTable = 'Vytvořit novou tabulku v databázi %s';
+$strCreatePage = 'Vytvořit novou stránku';
+$strCreatePdfFeat = 'Vytváření PDF';
+$strCreateRelation = 'Vytvořit relaci';
+$strCreateTable = 'Vytvořit tabulku';
+$strCreateUserDatabase = 'Databáze pro uživatele';
+$strCreateUserDatabaseName = 'Vytvořit databázi stejného jména a přidělit všechna oprávnění';
+$strCreateUserDatabaseNone = 'Žádná';
+$strCreateUserDatabaseWildcard = 'Přidělit všechna oprávnění na jméno odpovídající masce (uživatel_%)';
+$strCreate = 'Vytvořit';
+$strCreationDates = 'Datum vytvoření, poslední změny a kontroly';
+$strCriteria = 'Podmínka';
+$strCroatian = 'Chorvatština';
+$strCSV = 'CSV';
+$strCustomColor = 'Vlastní barva';
+$strCyrillic = 'Cyrilika';
+$strCzech = 'Čeština';
+$strCzechSlovak = 'Čeština/Slovenština';
+$strChangeCopyModeCopy = '... zachovat původního uživatele.';
+$strChangeCopyModeDeleteAndReload = ' ... smazat uživatele a poté znovu načíst oprávnění.';
+$strChangeCopyModeJustDelete = ' ... smazat původního uživatele ze všech tabulek.';
+$strChangeCopyModeRevoke = ' ... odebrat všechna oprávnění původnímu uživateli a poté ho smazat.';
+$strChangeCopyMode = 'Vytvořit nového uživatele se stejnými oprávněními a ...';
+$strChangeCopyUser = 'Změnit informace o uživateli / Kopírovat uživatele';
+$strChangeDisplay = 'Zvolte které sloupce zobrazit';
+$strChangePassword = 'Změnit heslo';
+$strChange = 'Změnit';
+$strCharsetOfFile = 'Znaková sada souboru:';
+$strCharsetsAndCollations = 'Znakové sady a porovnávání';
+$strCharsets = 'Znakové sady';
+$strCharset = 'Znaková sada';
+$strCheckAll = 'Zaškrtnout vše';
+$strCheckOverhead = 'Zaškrtnout neoptimální';
+$strCheckPrivsLong = 'Zkontrolovat oprávnění pro databázi „%s“.';
+$strCheckPrivs = 'Zkontrolovat oprávnění';
+$strCheckTable = 'Zkontrolovat tabulku';
+$strCheck = 'Zkontrolovat';
+$strChoosePage = 'Zvolte stránku, kterou chcete změnit';
+
+$strDanish = 'Dánština';
+$strDatabase = 'Databáze';
+$strDatabaseEmpty = 'Jméno databáze je prázdné!';
+$strDatabaseExportOptions = 'Nastavení exportu databází';
+$strDatabaseHasBeenCreated = 'Byla vytvořena databáze %1$s.';
+$strDatabaseHasBeenDropped = 'Databáze %s byla zrušena.';
+$strDatabases = 'Databáze';
+$strDatabasesDropped = '%s databáze byla úspěšně zrušena.';
+$strDatabasesStatsDisable = 'Skrýt podrobnosti';
+$strDatabasesStatsEnable = 'Zobrazit podrobnosti';
+$strDatabasesStatsHeavyTraffic = 'Poznámka: Zobrazení podrobností o databázích může způsobit značné zvýšení provozu mezi webserverem a MySQL serverem.';
+$strDatabasesStats = 'Statistiky databází';
+$strData = 'Data';
+$strDataDict = 'Datový slovník';
+$strDataOnly = ' Jen data';
+$strDataPages = 'Stránek obsahujících data';
+$strDBComment = 'Komentář k databázi: ';
+$strDBCopy = 'Zkopírovat databázi na';
+$strDbIsEmpty = 'Databáze se zdá být prázdná!';
+$strDbPrivileges = 'Oprávnění pro jednotlivé databáze';
+$strDBRename = 'Přejmenovat databázi na';
+$strDbSpecific = 'závislé na databázi';
+$strDefaultEngine = '%s je výchozí úložiště na tomto MySQL serveru.';
+$strDefaultValueHelp = 'Výchozí hodnotu zadejte jen jednu hodnotu bez uvozovek a escapování znaků, například: a';
+$strDefault = 'Výchozí';
+$strDefragment = 'Defragmentovat tabulku';
+$strDelayedInserts = 'Používat zpožděné inserty';
+$strDeleteAndFlushDescr = 'Toto je nejčistší řešení, ale načítání oprávnění může trvat dlouho.';
+$strDeleteAndFlush = 'Odstranit uživatele a znovu načíst oprávnění.';
+$strDeleted = 'Řádek byl smazán';
+$strDeleteNoUsersSelected = 'Musíte vybrat uživatele, které chcete odstranit!';
+$strDelete = 'Odstranit';
+$strDeleteRelation = 'Odstranit relaci';
+$strDeleting = 'Odstraňuji %s';
+$strDelimiter = 'Oddělovač';
+$strDelOld = 'Aktuální stránka se odkazuje na tabulky, které již neexistují. Chcete odstranit tyto odkazy?';
+$strDescending = 'Sestupně';
+$strDescription = 'Popis';
+$strDesignerHelpDisplayField = 'Zobrazované pole je označeno růžovou barvou. Pro jeho změnu klikněte na ikonu „Zvolte které sloupce zobrazit“ a poté zvolte odpovídající sloupec.';
+$strDesigner = 'Návrhář';
+$strDetails = 'Podrobnosti...';
+$strDictionary = 'slovník';
+$strDirectLinks = 'Přímé spoje';
+$strDirtyPages = 'Změněných stránek';
+$strDisabled = 'Vypnuto';
+$strDisableForeignChecks = 'Vypnout kontrolu cizích klíčů';
+$strDisplayFeat = 'Zobrazení funkcí';
+$strDisplayOrder = 'Seřadit podle:';
+$strDisplayPDF = 'Zobrazit jako schéma v PDF';
+$strDoAQuery = 'Provést „dotaz podle příkladu“ (zástupný znak: „%“)';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentace';
+$strDownloadFile = 'Stáhnout soubor';
+$strDoYouReally = 'Opravdu si přejete vykonat příkaz';
+$strDropDatabaseStrongWarning = 'Chystáte se ZRUŠIT celou databázi!';
+$strDrop = 'Odstranit';
+$strDropUsersDb = 'Odstranit databáze se stejnými jmény jako uživatelé.';
+$strDumpingData = 'Vypisuji data pro tabulku';
+$strDumpSaved = 'Výpis byl uložen do souboru %s.';
+$strDumpXRows = 'Vypsat %s řádků od %s.';
+$strDynamic = 'dynamický';
+
+$strEditPDFPages = 'Upravit PDF stránky';
+$strEditPrivileges = 'Upravit oprávnění';
+$strEdit = 'Upravit';
+$strEffective = 'Efektivní';
+$strEmptyResultSet = 'MySQL vrátil prázdný výsledek (tj. nulový počet řádků).';
+$strEmpty = 'Vyprázdnit';
+$strEnabled = 'Zapnuto';
+$strEncloseInTransaction = 'Uzavřít příkazy v transakci';
+$strEndCut = 'KONEC VÝPISU';
+$strEnd = 'Konec';
+$strEndRaw = 'KONEC VÝPISU';
+$strEngineAvailable = 'Úložiště %s je dostupné na tomto MySQL serveru.';
+$strEngineDisabled = 'Úložiště %s je vypnuté na tomto MySQL serveru.';
+$strEngines = 'Úložiště';
+$strEngineUnsupported = 'Tento MySQL server nepodporuje úložiště %s.';
+$strEnglish = 'Anglicky';
+$strEnglishPrivileges = 'Poznámka: názvy oprávnění v MySQL jsou uváděny anglicky';
+$strError = 'Chyba';
+$strErrorInZipFile = 'Chyba v ZIP archívu:';
+$strErrorRelationAdded = 'Chyba: relace nebyla přidána.';
+$strErrorRelationExists = 'Chyba: relace již existuje.';
+$strErrorRenamingTable = 'Chyba při přejmenování tabulky %1$s na %2$s';
+$strErrorSaveTable = 'Chyba při ukládání souřadnic pro Návrháře.';
+$strEscapeWildcards = 'Zástupné znaky _ a % by měly být escapovány pomocí \, pokud je chcete použít jako znak';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonština';
+$strEvents = 'Události';
+$strEvent = 'Událost';
+$strExcelEdition = 'Verze Excelu';
+$strExecuteBookmarked = 'Spustit oblíbený dotaz';
+$strExplain = 'Vysvětlit dotaz';
+$strExport = 'Export';
+$strExportImportToScale = 'Exportovat/Importovat v měřítku';
+$strExportMustBeFile = 'Zvolený export musí být uložen do souboru!';
+$strExtendedInserts = 'Rozšířené inserty';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Nepovedených pokusů';
+$strFieldHasBeenDropped = 'Sloupec %s byl odstraněn';
+$strFieldInsertFromFileTempDirNotExists = 'Chyba při přejmenování nahraného soubory, viz FAQ 1.11';
+$strFieldsEnclosedBy = 'Názvy sloupců uzavřené';
+$strFieldsEscapedBy = 'Názvy sloupců escapovány';
+$strField = 'Sloupec';
+$strFields = 'Sloupce';
+$strFieldsTerminatedBy = 'Sloupce oddělené';
+$strFileAlreadyExists = 'Soubor %s již na serveru existuje, změňte jméno souboru, nebo zvolte přepsání souboru.';
+$strFileCouldNotBeRead = 'Soubor nelze přečíst';
+$strFileNameTemplateDescriptionDatabase = 'jméno databáze';
+$strFileNameTemplateDescriptionServer = 'jméno serveru';
+$strFileNameTemplateDescriptionTable = 'jméno tabulky';
+$strFileNameTemplateDescription = 'Tato hodnota je interpretována pomocí %1$sstrftime%2$s, takže můžete použít libovolné řetězce pro formátování data a času. Dále budou provedena následující nahrazení: %3$s. Jakýkoliv jiný text zůstane zachován beze změny.';
+$strFileNameTemplateRemember = 'zapamatovat si hodnotu';
+$strFileNameTemplate = 'Vzor pro jméno souboru';
+$strFiles = 'Soubory';
+$strFileToImport = 'Soubor pro importování';
+$strFixed = 'pevný';
+$strFlushPrivilegesNote = 'Poznámka: phpMyAdmin získává oprávnění přímo z tabulek MySQL. Obsah těchto tabulek se může lišit od oprávnění, která server právě používá, pokud byly tyto tabulky upravovány. V tomto případě je vhodné provést %snové načtení oprávnění%s před pokračováním.';
+$strFlushQueryCache = 'Vyprázdnit vyrovnávací paměť dotazů';
+$strFlushTables = 'Zavřít všechny tabulky';
+$strFlushTable = 'Vyprázdnit vyrovnávací paměť pro tabulku („FLUSH“)';
+$strFontSize = 'Velikost písma';
+$strForeignKeyError = 'Chyba při vytváření cizího klíče na %1$s (zkotrolujte typ sloupce)';
+$strForeignKeyRelationAdded = 'Relace FOREIGN KEY byla vytvořena';
+$strFormat = 'Formát';
+$strFormEmpty = 'Chybějící hodnota ve formuláři!';
+$strFreePages = 'Volných stránek';
+$strFullText = 'Celé texty';
+$strFunction = 'Funkce';
+$strFunctions = 'Funkce';
+
+$strGenBy = 'Vygeneroval';
+$strGeneralRelationFeat = 'Obecné funkce relací';
+$strGeneratePassword = 'Vytvořit heslo';
+$strGenerate = 'Vytvořit';
+$strGenTime = 'Vygenerováno';
+$strGeorgian = 'Gruzínština';
+$strGerman = 'Německy';
+$strGlobal = 'globální';
+$strGlobalPrivileges = 'Globální oprávnění';
+$strGlobalValue = 'Globální hodnota';
+$strGo = 'Proveď';
+$strGrantOption = 'Přidělování';
+$strGreek = 'Řečtina';
+$strGzip = '„zagzipováno“';
+
+$strHandler = 'Obslužné rutiny';
+$strHasBeenAltered = 'byla změněna.';
+$strHaveToShow = 'Musíte zvolit alespoň jeden sloupec, který chcete zobrazit.';
+$strHebrew = 'Hebrejština';
+$strHelp = 'Nápověda';
+$strHexForBLOB = 'Použít šestnáctkové zobrazení pro BLOB';
+$strHideShowAll = 'Skrýt/Zobrazit vše';
+$strHideShowNoRelation = 'Skrýt/Zobrazit tabulky bez relací';
+$strHide = 'Skrýt';
+$strHome = 'Hlavní strana';
+$strHomepageOfficial = 'Oficiální stránka phpMyAdmina';
+$strHostEmpty = 'Jméno počítače je prázdné!';
+$strHost = 'Počítač';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Maďarština';
+
+$strIcelandic = 'Islandština';
+$strId = 'ID';
+$strIdxFulltext = 'Fulltext';
+$strIEUnsupported = 'Prohlížeč Internet Explorer tuto funkci nepodporuje.';
+$strIgnoreDuplicates = 'Ignorovat duplicitní řádky';
+$strIgnore = 'Ignorovat';
+$strIgnoreInserts = 'Použít IGNORE';
+$strImportExportCoords = 'Import/Export souřadnic pro PDF schéma';
+$strImportFiles = 'Importovat soubory';
+$strImportFormat = 'Formát importovaného souboru';
+$strImport = 'Import';
+$strImportSuccessfullyFinished = 'Import byl úspěšně dokončen, bylo provedeno %d dotazů.';
+$strIndexes = 'Indexy';
+$strIndexesSeemEqual = 'Indexy %1$s a %2$s vypadají stejné a jeden z nich by pravděpodobně mohl být odstraněn.';
+$strIndexHasBeenDropped = 'Index %s byl odstraněn';
+$strIndex = 'Index';
+$strIndexName = 'Jméno indexu :';
+$strIndexType = 'Typ indexu :';
+$strIndexWarningTable = 'Problémy s indexy v tabulce `%s`';
+$strInnoDBAutoextendIncrementDesc = 'Velikost o kterou je zvětšen soubor s daty, pokud je zaplněný.';
+$strInnoDBAutoextendIncrement = 'Krok automatického zvětšování';
+$strInnoDBBufferPoolSizeDesc = 'Velikost vyrovnávací paměti, kterou InnoDB používá pro vyrovnávací paměť dat a indexů tabulek.';
+$strInnoDBBufferPoolSize = 'Velikost vyrovnávací paměti';
+$strInnoDBDataFilePath = 'Soubor s daty';
+$strInnoDBDataHomeDirDesc = 'Společná část cesty pro všechny soubory obsahující data InnoDB.';
+$strInnoDBDataHomeDir = 'Domovský adresář pro data';
+$strInnoDBPages = 'stránek';
+$strInnodbStat = 'Stav InnoDB';
+$strInsecureMySQL = 'Máte standardní nastavení hesla uživatele root v MySQL. Doporučujeme změnit toto nastavení a tím podstatně zvýšit zabezpečení vašeho serveru.';
+$strInsertAsNewRow = 'Vložit jako nový řádek';
+$strInsertedRowId = 'ID vloženého řádku: %1$d';
+$strInsert = 'Vložit';
+$strInterface = 'Rozhraní';
+$strInternalAndForeign = 'Interní relace není potřebná pokud existuje stejná relace pomocí FOREIGN KEY.';
+$strInternalRelationAdded = 'Interní relace vytvořena';
+$strInternalRelations = 'Interní relace';
+$strInUse = 'právě se používá';
+$strInvalidAuthMethod = 'V konfiguraci máte špatnou autentizační metodu:';
+$strInvalidColumn = 'Byl zadán chybný sloupec (%s)!';
+$strInvalidColumnCount = 'Počet sloupců musí být větší než nula.';
+$strInvalidCSVFieldCount = 'Chybný počet položek v CSV datech na řádku %d.';
+$strInvalidCSVFormat = 'Chybný formát CSV dat na řádku %d.';
+$strInvalidCSVParameter = 'Neznámý parametr pro import CSV: %s';
+$strInvalidDatabase = 'Chybná databáze';
+$strInvalidFieldAddCount = 'Musíte přidat alespoň jeden sloupec.';
+$strInvalidFieldCount = 'Tabulka musí mít alespoň jeden sloupec.';
+$strInvalidLDIImport = 'Tento plugin nepodporuje komprimované soubory!';
+$strInvalidRowNumber = '%d není platné číslo řádku.';
+$strInvalidServerHostname = 'Chybné jméno serveru pro server %1$s. Prosím zkontrolujte nastavení.';
+$strInvalidServerIndex = 'Chybný index serveru: „%s“';
+$strInvalidTableName = 'Chybné jméno tabulky';
+
+$strJapanese = 'Japonština';
+$strJoins = 'Použité výběry';
+$strJumpToDB = 'Přejít na databázi „%s“.';
+$strJustDeleteDescr = 'Odstranění uživatelé stále budou mít přístup na server, dokud nebudou znovu načtena oprávnění.';
+$strJustDelete = 'Jen odstranit uživatele z tabulek s oprávněními.';
+
+$strKeepPass = 'Neměnit heslo';
+$strKeyCache = 'Vyrovnávací paměť klíčů';
+$strKeyname = 'Klíčový název';
+$strKill = 'Ukončit';
+$strKnownExternalBug = 'Funkčnost %s je omezena známou chybou, viz %s.';
+$strKorean = 'Korejština';
+
+$strLandscape = 'Na šířku';
+$strLanguage = 'Jazyk';
+$strLanguageUnknown = 'Neznámý jazyk: %1$s.';
+$strLatexCaption = 'Titulek tabulky';
+$strLatexContent = 'Obsah tabulky __TABLE__';
+$strLatexContinuedCaption = 'Titulek pokračování tabulky';
+$strLatexContinued = '(pokračování)';
+$strLatexIncludeCaption = 'Použít titulek tabulky';
+$strLatexLabel = 'Návěstí';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktura tabulky __TABLE__';
+$strLatchedPages = 'Zamčených stránek';
+$strLatvian = 'Lotyština';
+$strLDI = 'CSV pomocí LOAD DATA';
+$strLDILocal = 'Použít klíčové slovo LOCAL';
+$strLengthSet = 'Délka/Množina';
+$strLimitNumRows = 'záznamů na stránku';
+$strLinesTerminatedBy = 'Řádky ukončené';
+$strLinkNotFound = 'Odkaz nenalezen';
+$strLinksTo = 'Odkazuje na';
+$strLithuanian = 'Litevština';
+$strLocalhost = 'Lokální';
+$strLocationTextfile = 'textový soubor';
+$strLoginInformation = 'Přihlašování';
+$strLogin = 'Přihlášení';
+$strLogout = 'Odhlásit se';
+$strLogPassword = 'Heslo:';
+$strLogServerHelp = 'Můžete zadat jméno počítače (nebo IP adresu) a port oddělené mezerou.';
+$strLogServer = 'Server:';
+$strLogUsername = 'Jméno:';
+$strLongOperation = 'Tato operace může trvat velmi dlouho. Chcete je přesto provést?';
+
+$strMaxConnects = 'Maximum současných připojení';
+$strMaximalQueryLength = 'Maximální velikost vytvořeného dotazu';
+$strMaximumSize = 'Maximální velikost: %s%s';
+$strMbExtensionMissing = 'Rozšíření mbstring pro PHP nebylo nalezeno a zdá se, že požíváte více bajtovou znakovou sadu. Bez rozšíření mbstring neumí phpMyAdmin správně rozdělovat řetězce a proto to může mít nečekané následky.';
+$strMbOverloadWarning = 'V nastavení PHP máte zapnuto mbstring.func_overload. Toto nastavení není kompatibilní s phpMyAdminem a může způsobit poškození dat!';
+$strMIME_available_mime = 'Dostupné MIME typy';
+$strMIME_available_transform = 'Dostupné transformace';
+$strMIME_description = 'Popis';
+$strMIME_MIMEtype = 'MIME typ';
+$strMIME_nodescription = 'Pro tuto transformaci není dostupný žádný popis.<br />Zeptejte se autora co %s dělá.';
+$strMIME_transformation_note = 'Pro seznam dostupných parametrů transformací a jejich MIME typů klikněte na %spopisy transformací%s';
+$strMIME_transformation_options_note = 'Zadejte parametry transformací v následujícím tvaru: \'a\', 100, b,\'c\'...<br />Pokud potřebujete použít zpětné lomítko („\“) nebo jednoduché uvozovky („\'“) mezi těmito hodnotami, vložte před ně zpětné lomítko (například \'\\\\xyz\' nebo \'a\\\'b\').';
+$strMIME_transformation_options = 'Parametry transformace';
+$strMIME_transformation = 'Transformace při prohlížení';
+$strMIMETypesForTable = 'MIME TYPY PRO TABULKU';
+$strMIME_without = 'MIME typy zobrazené kurzívou nemají vlastní transformační funkci';
+$strModifications = 'Změny byly uloženy';
+$strModifyIndexTopic = 'Upravit index';
+$strModify = 'Úpravy';
+$strMoveMenu = 'Přesun menu';
+$strMoveTableOK = 'Tabulka %s byla přesunuta do %s.';
+$strMoveTable = 'Přesunout tabulku do (databáze<b>.</b>tabulka):';
+$strMoveTableSameNames = 'Nelze přesunout tabulku na sebe samu!';
+$strMultilingual = 'mnohojazyčný';
+$strMyISAMDataPointerSizeDesc = 'Výchozí velikost ukazatele v bajtech, která bude použita pro vytváření MyISAM tabulek, pokud není uvedeno MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Velikost ukazatele na data';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Pokud by byl soubor pro vytváření MyISAM indexu byl větší než zde uvedená hodnota, použije se pomalejší metoda vyrovnávací paměti klíčů.';
+$strMyISAMMaxExtraSortFileSize = 'Maximální velikost dočasných souborů při vytváření indexu';
+$strMyISAMMaxSortFileSizeDesc = 'Maximální velikost dočasných souborů, které smí MySQL použít při obnově indexu (při REPAIR TABLE, ALTER TABLE nebo LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maximální velikost dočasných souborů pro řazení';
+$strMyISAMRecoverOptions = 'Automatický režim obnovy';
+$strMyISAMRecoverOptionsDesc = 'Režim automatické obnovy poškozených MyISAM tabulek. Nastavuje se parametrem --myisam-recover při spouštění serveru.';
+$strMyISAMRepairThreadsDesc = 'Pokud je tato hodnota větší než 1, indexy v MyISAM tabulkách jsou vytvářeny paralelně (každý index vlastním vláknem) při obnově nebo řazení.';
+$strMyISAMRepairThreads = 'Vláken pro opravování';
+$strMyISAMSortBufferSizeDesc = 'Paměť, která je alokována při řazení MyISAM indexů během jejich vytváření nebo opravování.';
+$strMyISAMSortBufferSize = 'Velikost paměti pro řazení';
+$strMysqlClientVersion = 'Verze MySQL klienta';
+$strMySQLConnectionCollation = 'Porovnávání pro toto připojení k MySQL';
+$strMySQLCharset = 'Znaková sada v MySQL';
+$strMysqlLibDiffersServerVersion = 'Používaný MySQL modul v PHP je kompilován pro MySQL %s a server používá verzi %s. Používání různých verzí může způsobit problémy.';
+$strMySQLSaid = 'MySQL hlásí: ';
+$strMySQLShowProcess = 'Zobrazit procesy';
+
+$strName = 'Název';
+$strNext = 'Další';
+$strNoActivity = 'Byli jste příliš dlouho neaktivní (déle než %s sekund), prosím přihlaste se znovu';
+$strNoDatabasesSelected = 'Nebyla vybrána žádná databáze.';
+$strNoDatabases = 'Žádné databáze';
+$strNoDataReceived = 'Nepodařilo se načíst žádná data k importu. Buďto nebyl odeslán žádný soubor, nebo jeho velikost překročila velikost povolenou v nastavení PHP. Viz FAQ 1.16.';
+$strNoDescription = 'žádný popisek';
+$strNoDetailsForEngine = 'Nejsou dostupné podrobnější informace o tomto úložišti.';
+$strNoDropDatabases = 'Příkaz „DROP DATABASE“ je vypnutý.';
+$strNoExplain = 'Bez vysvětlení (EXPLAIN) SQL';
+$strNoFilesFoundInZip = 'V ZIP archívu nebyly nalezeny žádné soubory!';
+$strNoFrames = 'phpMyAdmin se lépe používá v prohlížeči podporujícím rámy („FRAME“).';
+$strNoIndex = 'Není definován žádný index!';
+$strNoIndexPartsDefined = 'Nebyla zadána žádná část indexu!';
+$strNoModification = 'Žádná změna';
+$strNo = 'Ne';
+$strNone = 'Žádná';
+$strNoOptions = 'Tento formát nemá žádná nastavení';
+$strNoPassword = 'Žádné heslo';
+$strNoPermission = 'Web server nemá oprávnění uložit výpis do souboru %s.';
+$strNoPhp = 'Bez PHP kódu';
+$strNoPrivileges = 'Nemáte oprávnění';
+$strNoRights = 'Nemáte dostatečná práva na provedení této akce!';
+$strNoRowsSelected = 'Nebyl vybrán žádný řádek';
+$strNoSpace = 'Nedostatek místa pro uložení souboru %s.';
+$strNoTablesFound = 'V databázi nebyla nalezena žádná tabulka.';
+$strNoThemeSupport = 'Není podporována změna tématu, zkontrolujte nastavení a témata v adresáři %s.';
+$strNotNumber = 'Nebylo zadáno číslo!';
+$strNotOK = 'není v pořádku';
+$strNotSet = '<b>%s</b> tabulka nenalezena nebo není nastavena v %s';
+$strNoUsersFound = 'Žádný uživatel nenalezen.';
+$strNoValidateSQL = 'Bez kontroly SQL';
+$strNull = 'Nulový';
+$strNumberOfFields = 'Počet sloupců';
+$strNumberOfTables = 'Počet tabulek';
+$strNumSearchResultsInTable = '%s odpovídající(ch) záznam(ů) v tabulce <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Celkem:</b> <i>%s</i> odpovídající(ch) záznam(ů)';
+$strNumTables = 'Tabulek';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Sešit OpenDocument';
+$strOpenDocumentText = 'Text OpenDocument';
+$strOpenNewWindow = 'Otevřít nové okno phpMyAdmina';
+$strOperations = 'Úpravy';
+$strOperator = 'Operátor';
+$strOptimize = 'Optimalizovat';
+$strOptimizeTable = 'Optimalizovat tabulku';
+$strOptions = 'Nastavení';
+$strOr = 'nebo';
+$strOverhead = 'Navíc';
+$strOverwriteExisting = 'Přepsat existující soubor(y)';
+
+$strPacked = 'Zabaleno';
+$strPageNumber = 'Strana číslo:';
+$strPagesToBeFlushed = 'Stránek určených k uvolnění';
+$strPaperSize = 'Velikost stránky';
+$strPartialImport = 'Částečný import';
+$strPartialText = 'Zkrácené texty';
+$strPartitionDefinition = 'Definice PARTITION';
+$strPartitioned = 'používá oddíly';
+$strPartitionMaintenance = 'Údržba oddílů';
+$strPartition = 'Oddíl %s';
+$strPasswordEmpty = 'Heslo je prázdné!';
+$strPasswordHashing = 'Hašovací funkce pro heslo';
+$strPassword = 'Heslo';
+$strPasswordChanged = 'Heslo pro %s bylo úspěšně změněno.';
+$strPasswordNotSame = 'Hesla nejsou stejná!';
+$strPBXTDataFileGrowSizeDesc = 'Velikost nárůstu souborů se zpracovávanými daty (.xtd).';
+$strPBXTDataFileGrowSize = 'Velikost nárůstu souboru s daty';
+$strPBXTDataLogThresholdDesc = 'Nejvyšší velikost datového logu. Výchozí hodnota je 64MB. PBXT může vytvořit až 32000 datových logů, které jsou používany všemi tabulkami. Hodnota této proměnné tedy může být zvýšena, aby se zvýšilo celkové množství dat, které může být uloženo v databázi.';
+$strPBXTDataLogThreshold = 'Nejvyšší velikost datového logu';
+$strPBXTGarbageThresholdDesc = 'Procentuální podíl odpadu (garbage) v souboru datového logu předtím, než je soubor stlačen. Tato hodnota se může pohybovat mezi 1 a 99. Výchozí hodnota je 50.';
+$strPBXTGarbageThreshold = 'Největší velikost odpadu (garbage)';
+$strPBXTCheckpointFrequency = 'Četnost vytváření kontrolních bodů.';
+$strPBXTCheckpointFrequencyDesc = 'Množství dat zapsaných do logu transakcí předtím, než dojde k vytvoření kontrolního bodu. Výchozí velikost je 24MB.';
+$strPBXTIndexCacheSizeDesc = 'Toto je množství paměti alokované pro vyrovnávací paměť indexu. Výchozí velikost je 32MB. Zde alokovaná paměť se používá pouze pro vyrovnávací pamět stránek indexu.';
+$strPBXTIndexCacheSize = 'Velikost vyrovnávací paměti indexu';
+$strPBXTLogBufferSizeDesc = 'Velikost vyrovnávací paměti používané při zápisu datového logu. Výchozí velikost je 256MB. Vyrovnávací paměť se alokuje pro každé vlákno, ale pouze pokud toto vlákno potřebuje zapsat datový log.';
+$strPBXTLogBufferSize = 'Velikost vyrovnávací paměti logu';
+$strPBXTLogCacheSizeDesc = 'Množství paměti alokované pro vyrovnávací pamět transakčního logu, která se využívá pro dočasné ukládání dat transakčního logu. Výchozí velikost je 16MB.';
+$strPBXTLogCacheSize = 'Velikost vyrovnávací paměti logů';
+$strPBXTLogFileCountDesc = 'Toto je počet souborů transakčních logů (pbxt/system/xlog*.xt), které bude systém udržovat. Pokud množství logů překročí tuto hodnotu, budou staré soubory vymazány. Jinak jsou soubory přejmenovány a označeny vyšším číslem.';
+$strPBXTLogFileCount = 'Počet souborů s logy';
+$strPBXTLogFileThresholdDesc = 'Velikost, jaké musí transakční log dosáhnout předtím, než je vytvořen nový soubor. Východzí velikost je 16MB.';
+$strPBXTLogFileThreshold = 'Prahová hodnota logového souboru';
+$strPBXTRecordCacheSizeDesc = 'Toto je velikost vyrovnávací paměti pro záznamy používané k dočasnému ukládání dat tabulky. Výchozí velikost je 32MB. Tato pamět se používá k ukládání změn souborů zpracovávaných dat (.xtd) a ukazatelů řádků (.xtr).';
+$strPBXTRecordCacheSize = 'Velikost vyrovnávací paměti záznamu';
+$strPBXTRowFileGrowSizeDesc = 'Velikost nárůstu souboru ukazatelů řádku (.xtr).';
+$strPBXTRowFileGrowSize = 'Velikost nárůstu souboru řádků';
+$strPBXTTransactionBufferSizeDesc = 'Velikost vyrovnávací paměti logu souhrných transakcí (vyrovnávací paměť se vytváří dvakrát). Výchozí velikost je 1MB.';
+$strPBXTTransactionBufferSize = 'Velikost vyrovnávací paměti transakcí';
+$strPdfDbSchema = 'Schéma databáze „%s“ - Strana %s';
+$strPdfInvalidTblName = 'Tabulka „%s“ neexistuje!';
+$strPdfNoTables = 'žádné tabulky';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Vygeneruje dokument obsahující data jedné tabulky)';
+$strPDFReportTitle = 'Název výpisu';
+$strPerHour = 'za hodinu';
+$strPerMinute = 'za minutu';
+$strPerSecond = 'za sekundu';
+$strPersian = 'Perština';
+$strPhoneBook = 'adresář';
+$strPHPExtension = 'Rozšíření PHP';
+$strPHPVersion = 'Verze PHP';
+$strPhp = 'Vytvořit PHP kód';
+$strPlayAudio = 'Přehrát zvuk';
+$strPleaseSelectPrimaryOrUniqueKey = 'Zvolte, prosím, primární nebo unikátní klíč';
+$strPmaDocumentation = 'Dokumentace phpMyAdmina';
+$strPmaUriError = 'Parametr <tt>$cfg[\'PmaAbsoluteUri\']</tt> MUSÍ být nastaven v konfiguračním souboru!';
+$strPolish = 'Polština';
+$strPortrait = 'Na výšku';
+$strPos1 = 'Začátek';
+$strPrevious = 'Předchozí';
+$strPrimaryKeyHasBeenDropped = 'Primární klíč byl odstraněn';
+$strPrimaryKeyName = 'Jméno primárního klíče musí být „PRIMARY“!';
+$strPrimaryKeyWarning = '(„PRIMARY“ <b>musí</b> být jméno <b>pouze</b> primárního klíče!)';
+$strPrimary = 'Primární';
+$strPrintViewFull = 'Náhled pro tisk (s kompletními texty)';
+$strPrintView = 'Náhled pro tisk';
+$strPrint = 'Vytisknout';
+$strPrivDescAllPrivileges = 'Všechna oprávnění kromě GRANT.';
+$strPrivDescAlterRoutine = 'Umožňuje měnit a rušit uložené procedury.';
+$strPrivDescAlter = 'Umožňuje měnit strukturu existujících tabulek.';
+$strPrivDescCreateDb = 'Umožňuje vytvářet nové databáze a tabulky.';
+$strPrivDescCreateRoutine = 'Umožňuje vytvářet uložené procedury.';
+$strPrivDescCreateTbl = 'Umožňuje vytvářet nové tabulky.';
+$strPrivDescCreateTmpTable = 'Umožňuje vytvářet dočasné tabulky.';
+$strPrivDescCreateUser = 'Umožňuje vytvářet, rušit a přejmenovávat účty uživatelů.';
+$strPrivDescCreateView = 'Umožňuje vytvářet nové pohledy.';
+$strPrivDescDelete = 'Umožňuje mazat data.';
+$strPrivDescDropDb = 'Umožňuje odstranit databáze a tabulky.';
+$strPrivDescDropTbl = 'Umožňuje odstranit tabulky.';
+$strPrivDescEvent = 'Umožňuje plánovat úlohy pomocí plánovače';
+$strPrivDescExecute = 'Umožňuje spouštět uložené procedury. V této verzi MySQL se nepoužívá.';
+$strPrivDescExecute5 = 'Umožňuje spouštět uložené procedury.';
+$strPrivDescFile = 'Umožňuje importovat a exportovat data z/do souborů na serveru.';
+$strPrivDescGrant = 'Umožňuje přidávat uživatele a oprávnění bez znovunačítání tabulek s oprávněními.';
+$strPrivDescIndex = 'Umožňuje vytvářet a rušit indexy.';
+$strPrivDescInsert = 'Umožňuje vkládat a přepisovat data.';
+$strPrivDescLockTables = 'Umožňuje zamknout tabulku pro aktuální vlákno.';
+$strPrivDescMaxConnections = 'Omezuje počet nových připojení, která může uživatel vytvořit za hodinu.';
+$strPrivDescMaxQuestions = 'Omezuje, kolik dotazů může uživatel odeslat serveru za hodinu.';
+$strPrivDescMaxUpdates = 'Omezuje, kolik dotazů měnících nějakou tabulku nebo databázi může uživatel spustit za hodinu.';
+$strPrivDescMaxUserConnections = 'Omezuje počet současných připojení uživatele.';
+$strPrivDescProcess = 'Umožňuje prohlížet procesy všech uživatelů';
+$strPrivDescReferences = 'Nemá žádný vliv v této verzi MySQL.';
+$strPrivDescReload = 'Umožňuje znovu načíst nastavení a vyprázdnění vyrovnávacích pamětí MySQL serveru.';
+$strPrivDescReplClient = 'Umožní uživateli zjistit, kde je hlavní / pomocný server.';
+$strPrivDescReplSlave = 'Potřebné pro replikaci pomocných serverů.';
+$strPrivDescSelect = 'Umožňuje vybírat data.';
+$strPrivDescShowDb = 'Umožňuje přístup k úplnému seznamu databází.';
+$strPrivDescShowView = 'Umožňuje spuštění dotazu SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Umožňuje vypnout server.';
+$strPrivDescSuper = 'Umožňuje připojení, i když je dosažen maximální počet připojení. Potřebné pro většinu operací pro správu serveru jako nastavování globálních proměnných a zabíjení vláken jiných uživatelů.';
+$strPrivDescTrigger = 'Umožňuje vytváření a mazání spouští';
+$strPrivDescUpdate = 'Umožňuje měnit data.';
+$strPrivDescUsage = 'Žádná oprávnění.';
+$strPrivileges = 'Oprávnění';
+$strPrivilegesReloaded = 'Oprávnění byla načtena úspěšně.';
+$strProcedures = 'Procedury';
+$strProcesses = 'Procesy';
+$strProcesslist = 'Seznam procesů';
+$strProfiling = 'Profilování';
+$strProtocolVersion = 'Verze protokolu';
+$strPutColNames = 'Přidat jména sloupců na první řádek';
+
+$strQBEDel = 'smazat';
+$strQBE = 'Dotaz';
+$strQBEIns = 'přidat';
+$strQueryCache = 'Vyrovnávací paměť dotazů';
+$strQueryFrame = 'SQL okno';
+$strQueryOnDb = 'SQL dotaz na databázi <b>%s</b>:';
+$strQueryResultsOperations = 'Operace s výsledky dotazu';
+$strQuerySQLHistory = 'SQL historie';
+$strQueryStatistics = '<b>Statistika dotazů</b>: Od spuštění bylo serveru posláno %s dotazů.';
+$strQueryTime = 'Dotaz zabral %01.4f sekund';
+$strQueryType = 'Typ dotazu';
+$strQueryWindowLock = 'Nepřepisovat tento dotaz z hlavního okna';
+
+$strReadRequests = 'Požadavků na zápis';
+$strRebuild = 'Přestavět';
+$strReceived = 'Přijato';
+$strRecommended = 'doporučené';
+$strRecords = 'Záznamů';
+$strReferentialIntegrity = 'Zkontrolovat integritu odkazů:';
+$strRefresh = 'Obnovit';
+$strRelationalDisplayField = 'Položka k zobrazení v relacích';
+$strRelationalKey = 'Relační klíč';
+$strRelationalSchema = 'Relační schéma';
+$strRelationDeleted = 'Relace smazána';
+$strRelationNotWorking = 'Některé z rozšířených funkcí phpMyAdmina nelze používat. %sZde%s zjistíte proč.';
+$strRelationsForTable = 'RELACE PRO TABULKU';
+$strRelations = 'Relace';
+$strRelationView = 'Zobrazit relace';
+$strReloadingThePrivileges = 'Načítám oprávnění';
+$strReloadPrivileges = 'Znovu načíst oprávnění';
+$strReload = 'Znovu načíst';
+$strRemovePartitioning = 'Zrušit oddíly';
+$strRemoveSelectedUsers = 'Odstranit vybrané uživatele';
+$strRenameDatabaseOK = 'Databáze %s byla přejmenována na %s';
+$strRenameTableOK = 'Tabulka %s byla přejmenována na %s';
+$strRenameTable = 'Přejmenovat tabulku na';
+$strRepair = 'Opravit';
+$strRepairTable = 'Opravit tabulku';
+$strReplaceNULLBy = 'Nahradit NULL hodnoty';
+$strReplaceTable = 'Přepsat data tabulky souborem';
+$strReplication = 'Replikace';
+$strReset = 'Původní';
+$strResourceLimits = 'Omezení zdrojů';
+$strRestartInsertion = 'Začít znovu vkládání s %s řádky';
+$strReType = 'Heslo znovu';
+$strRevokeAndDeleteDescr = 'Uživatelé budou mít oprávnění „USAGE“ (používání), dokud nebudou znovu načtena oprávnění.';
+$strRevokeAndDelete = 'Odebrat uživatelům veškerá oprávnění a poté je odstranit z tabulek.';
+$strRevokeMessage = 'Byla zrušena práva pro %s';
+$strRevoke = 'Zrušit';
+$strRomanian = 'Rumunština';
+$strRoutineReturnType = 'Návratový typ';
+$strRoutines = 'Rutiny';
+$strRowLength = 'Délka řádku';
+$strRowsAffected = 'Ovlivněno %1$d řádků.';
+$strRowsDeleted = 'Smazáno %1$d řádků.';
+$strRowsFrom = 'řádků začínající od';
+$strRowsInserted = 'Vloženo %1$d řádků.';
+$strRowSize = ' Velikost řádku ';
+$strRowsModeFlippedHorizontal = 'vodorovném (otočené hlavičky)';
+$strRowsModeHorizontal = 'vodorovném';
+$strRowsModeOptions = 've %s režimu a opakovat hlavičky po %s řádcích.';
+$strRowsModeVertical = 'svislém';
+$strRows = 'Řádků';
+$strRowsStatistic = 'Statistika řádků';
+$strRunning = 'na %s';
+$strRunQuery = 'Provést dotaz';
+$strRunSQLQueryOnServer = 'Spustit SQL dotaz(y) na serveru %s';
+$strRunSQLQuery = 'Spustit SQL dotaz(y) na databázi %s';
+$strRussian = 'Ruština';
+
+$strSaveOnServer = 'Uložit na serveru v adresáři %s';
+$strSavePosition = 'Uložit rozmístění';
+$strSave = 'Ulož';
+$strScaleFactorSmall = 'Měřítko je příliš malé, aby se schéma vešlo na jednu stránku';
+$strSearchFormTitle = 'Vyhledávání v databázi';
+$strSearchInField = 'Uvnitř pole:';
+$strSearchInTables = 'V tabulkách:';
+$strSearchNeedle = 'Slova nebo hodnoty, které chcete vyhledat (zástupný znak: „%“):';
+$strSearchOption1 = 'alespoň jedno ze slov';
+$strSearchOption2 = 'všechna slova';
+$strSearchOption3 = 'přesnou frázi';
+$strSearchOption4 = 'jako regulární výraz';
+$strSearchResultsFor = 'Výsledky vyhledávání pro „<i>%s</i>“ %s:';
+$strSearchType = 'Najít:';
+$strSearch = 'Vyhledávání';
+$strSecretRequired = 'Nastavte klíč pro šifrování cookies (blowfish_secret) v konfiguračním souboru (config.inc.php).';
+$strSelectADb = 'Prosím vyberte databázi';
+$strSelectAll = 'Vybrat vše';
+$strSelectBinaryLog = 'Zvolte binární log pro zobrazení';
+$strSelectFields = 'Zvolte sloupec (alespoň jeden):';
+$strSelectForeignKey = 'Zvolte cizí klíč';
+$strSelectNumRows = 'v dotazu';
+$strSelectReferencedKey = 'Zvolte odkazovaný klíč';
+$strSelectTables = 'Vybrat tabulky';
+$strSend = 'Do souboru';
+$strSent = 'Odesláno';
+$strServerChoice = 'Server';
+$strServerNotResponding = 'Server neodpovídá';
+$strServer = 'Server';
+$strServers = 'Servery';
+$strServerStatusDelayedInserts = 'Odložené inserty';
+$strServerStatus = 'Stav serveru';
+$strServerStatusUptime = 'Tento MySQL server běží %s. Čas spuštění: %s.';
+$strServerTabVariables = 'Proměnné';
+$strServerTrafficNotes = '<b>Provoz serveru</b>: Informace o síťovém provozu MySQL serveru od jeho spuštění.';
+$strServerVars = 'Proměnné a nastavení serveru';
+$strServerVersion = 'Verze MySQL';
+$strSessionStartupErrorGeneral = 'Vytváření sezení selhalo, prosím zkontrolujte chyby v logu PHP a/nebo webserveru a pečlivě nastavte podporu sezení v PHP.';
+$strSessionValue = 'Hodnota sezení';
+$strSetEnumVal = 'Pokud je sloupec typu „enum“ nebo „set“, zadávejte hodnoty v následujícím formátu: \'a\',\'b\',\'c\'...<br />Pokud potřebujete zadat zpětné lomítko („\“) nebo jednoduché uvozovky („\'“) mezi těmito hodnotami, napište před ně zpětné lomítko (příklad: \'\\\\xyz\' nebo \'a\\\'b\').';
+$strSetupAllowAnywhereRecoding_name = 'Povolit převod znakových sad';
+$strSetupAllowArbitraryServer_desc = 'Pokud je povoleno, může uživatel zadat libovolný MySQL server do přihlašovacího formuláře pro autorizaci pomocí cookie';
+$strSetupAllowArbitraryServerMsg = 'Tato [a@?page=form&amp;formset=features#tab_Security]volba[/a] by měla být zakázána, protože umožňuje útočníkům prolomit přihlašování k libovolnému MySQL serveru útokem hrobou silou. V případě nutnosti použijte [a@?page=form&amp;formset=features#tab_Security]seznam důvěryhodných proxy[/a]. Nicméně ochrana založená na kotrole IP adres, nemusí být spolehlivá, pokud Vaše IP adresa patří poskytovateli internetových služeb, ke kterému jsou připojeny tisíce uživatelů.';
+$strSetupAllowArbitraryServer_name = 'Povolit přihlášení k libovolnému MySQL serveru';
+$strSetupAllowUserDropDatabase_name = 'Zobrazit příkaz &quot;Zrušit databázi&quot; běžným uživatelům';
+$strSetupblowfish_secret_desc = 'Tajné heslo (fráze) používané pro šifrování cookies při autentizaci pomocí [kbd]cookie[/kbd]';
+$strSetupBlowfishSecretCharsMsg = 'Tajný klíč by měl obsahovat číslice, písmena [em]A[/em] zvláštní znaky';
+$strSetupBlowfishSecretLengthMsg = 'Tajný klíč je příliš krátký, měl by obsahovat alespoň 8 znaků';
+$strSetupBlowfishSecretMsg = 'Něměl jste nastavený tajný klíč pro šifru blowfish (blowfish_secret) a povolenou autentizaci pomocí cookie, takže byl Váš tajný klíč vygenerován. Klíč bude použit pro zašifrování cookies.';
+$strSetupblowfish_secret_name = 'Klíč pro šifrování cookies (blowfish_secret)';
+$strSetupBrowseMarkerEnable_desc = 'Zvýrazní označené řádky';
+$strSetupBrowseMarkerEnable_name = 'Zvýrazňovač vybraných řádků';
+$strSetupBrowsePointerEnable_desc = 'Zvýrazní řádky, na které ukazuje kurzor myši';
+$strSetupBrowsePointerEnable_name = 'Zvýrazňovač řádků při ukázání';
+$strSetupBZipDump_desc = 'Povolit [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] kompresi pro importování a exportování';
+$strSetupBZipDump_name = 'Komprese bzip2';
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Komprese a dekomprese bzip2[/a] vyžaduje funkce (%s) které nejsou dostupné na tomto systému.';
+$strSetupCannotLoadConfigMsg = 'Prosím, vytvořte adresář [em]config[/em] zapisovatelný pro web server v kořenovém adresáři phpMyAdmin, jak je popsáno v [a@../Documentation.html#setup_script]dokumentaci[/a]. Jinak budete moci nastavení pouze stáhnout nebo zobrazit.';
+$strSetupCannotLoadConfig = 'Nelze načíst nebo uložit nastavení';
+$strSetupClear = 'Vyčistit';
+$strSetupCompressOnFly_desc = 'Komprimovat exporty pomocí gzip/bzip2 za letu bez velkých nároků na paměť; pokud narazíte na problémy s takto vytvořenými gzip/bzip2 archivy, zakažte tuto funkci.';
+$strSetupCompressOnFly_name = 'Komprimovat za letu';
+$strSetupConfigurationFile = 'Konfigurační soubor';
+$strSetupConfirm_desc = 'Zda se má zobrazovat varování (&quot;Jste si opravdu jistý...&quot;), když hrozí ztráta dat';
+$strSetupConfirm_name = 'Potvrzovat DROP dotazy';
+$strSetupDefaultCharset_desc = 'Výchozí znaková sada používaná pro převody';
+$strSetupDefaultCharset_name = 'Výchozí znaková sada';
+$strSetupDefaultLanguage = 'Výchozí jazyk';
+$strSetupDefaultServer = 'Výchozí server';
+$strSetupDefaultTabDatabase_desc = 'Panel, který je zobrazen při přístupu k databázi.';
+$strSetupDefaultTabDatabase_name = 'Výchozí panel databáze';
+$strSetupDefaultTabServer_desc = 'Panel, který je zobrazen při přístupu k serveru';
+$strSetupDefaultTabServer_name = 'Výchozí panel serveru';
+$strSetupDefaultTabTable_desc = 'Panel, který je zobrazen při přístupu k tabulce';
+$strSetupDefaultTabTable_name = 'Výchozí panel tabulky';
+$strSetupDirectoryNotice = 'Tato hodnota by měla být důkladně zkontrolována, aby se zajistilo, že tento adresář není dostupný zvenčí, ani není čitelný nebo zapisovatelný pro ostatní uživatele na Vašem serveru.';
+$strSetupDisplayDatabasesList_desc = 'Zobrazit přehled databází jako seznam namísto rozbalovacího menu';
+$strSetupDisplayDatabasesList_name = 'Zabrazit databáze jako seznam';
+$strSetupDisplayServersList_desc = 'Zobrazit přehled serverů jako seznam namísto rozbalovacího menu';
+$strSetupDisplayServersList_name = 'Zobrazit servery jako seznam';
+$strSetupDisplay = 'Zobrazení';
+$strShowAll = 'Zobrazit vše';
+$strShowColor = 'Barevné šipky';
+$strShowDatadictAs = 'Formát datového slovníku';
+$strShowFullQueries = 'Zobrazit celé dotazy';
+$strShowGrid = 'Zobrazit mřížku';
+$strShowHideLeftMenu = 'Zobrazit/Skrýt levé menu';
+$strShowingBookmark = 'Zobrazuji oblíbený dotaz';
+$strShowingPhp = 'Zobrazuji jako PHP kód';
+$strShowingRecords = 'Zobrazeny záznamy';
+$strShowingSQL = 'Zobrazuji SQL dotaz';
+$strShowOpenTables = 'Zobrazit otevřené tabulky';
+$strShowPHPInfo = 'Zobrazit informace o PHP';
+$strShowSlaveHosts = 'Zobrazit podřízené servery';
+$strShowSlaveStatus = 'Zobrazit stav podřízených serverů';
+$strShowStatusBinlog_cache_disk_useDescr = 'Počet transakcí, které použily dočasný binární log, ale překročily hodnotu binlog_cache_size a musely použít dočasný soubor pro uložení příkazů transakce.';
+$strShowStatusBinlog_cache_useDescr = 'Počet transakcí, které využily dočasný binární log.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Počet dočasných tabulek vytvořených serverem na disku při provádění dotazů. Pokud je tato hodnota velká, můžete zvětšit parametr tmp_table_size a MySQL bude používat větší dočasné tabulky v paměti.';
+$strShowStatusCreated_tmp_filesDescr = 'Počet vytvořených dočasných souborů.';
+$strShowStatusCreated_tmp_tablesDescr = 'Počet dočasných tabulek vytvořených serverem v paměti při provádění dotazů.';
+$strShowStatusDelayed_errorsDescr = 'Počet řádků provedených pomocí INSERT DELAYED, u kterých se vyskytla chyba (pravděpodobně duplicitní klíč).';
+$strShowStatusDelayed_insert_threadsDescr = 'Počet vláken používaných pro INSERT DELAYED. Každá tabulka na které je použit INSERT DEKAYED má přiděleno jedno vlákno.';
+$strShowStatusDelayed_writesDescr = 'Počet řádků zapsaných pomocí INSERT DELAYED.';
+$strShowStatusFlush_commandsDescr = 'Počet provedených příkazů FLUSH.';
+$strShowStatusHandler_commitDescr = 'Počet interních příkazů COMMIT.';
+$strShowStatusHandler_deleteDescr = 'Počet požadavků na smazání řádku.';
+$strShowStatusHandler_discoverDescr = 'Počet zjišťování tabulek. Tímto se nazývá dotaz NDB clusteru, jestli ví o tabulce daného jména.';
+$strShowStatusHandler_read_firstDescr = 'Počet přečtení první položky indexu. Příliš vysoká hodnota znamení, že server provádí mnoho kompletních procházení indexu. Na příklad SELECT col1 FROM foo, pokud je col1 indexována.';
+$strShowStatusHandler_read_keyDescr = 'Počet požadavků na přečtení řádku vycházející z indexu. Vysoká hodnota znamená, že dotazy správně využívají indexy.';
+$strShowStatusHandler_read_nextDescr = 'Počet požadavků na přečtení dalšího řádku podle indexu. Tato hodnota se zvětšuje pokud provádíte dotaz na indexovaný sloupec s omezením rozsahu nebo prohledáváte index.';
+$strShowStatusHandler_read_prevDescr = 'Počet požadavků na přečtení předchozího řádku z indexu. Používané pro optimalizaci dotazů ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Počet požadavků na přečtení konkrétního řádku tabulky. Vysoká hodnota znamená, že provádíte mnoho dotazů, které vyžadují řazení výsledků. Pravděpodobně používáte mnoho dotazů, které vyžadují prohlížení celé tabulky nebo používáte spojení tabulek, která nevyužívají indexů.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Počet požadavků na přečtení dalšího řádku ze souboru. Tato hodnota je vysoká pokud dotazy procházejí celé tabulky, pravděpodobně tedy nemají vhodné indexy.';
+$strShowStatusHandler_rollbackDescr = 'Počet interních příkazů ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'Počet požadavků na aktualizaci řádku.';
+$strShowStatusHandler_writeDescr = 'Počet požadavků na vložení řádku.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Počet stránek obsahujících data (změněné i nezměněné).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Počet změněných stránek.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Počet stránek, na které je požadavek na vyprázdnění.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Počet volných stránek.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Počet zamčených stránek, tzn. stránek, které jsou právě zapisovány nebo čteny nebo nemohou být odstraněny z jakéhokoliv důvodu.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Počet stránek zablokovaných pro administrativní účely jako zamykání řádků nebo hashe indexů. Tato hodnota také může být vypočítána jako Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Celková velikost InnoDB bufferů, ve stránkách.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Počet provedených „náhodných“ dopředných čtení. Tato situace nastává pokud dotaz prochází velkou část tabulky v náhodném pořadí.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Počet provedených sekvenčních dopředných čtení. Toto nastává pokud InnoDB musí procházet celou tabulku.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Počet provedených logických čtení.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Počet logických čtení, které nemohly být uspokojeny z bufferu, ale bylo nutné přečíst stránku ze souboru.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Počet čekání na zápis do InnoDB bufferů. Tyto zápisy obvykle probíhají na pozadí, ale pokud je nutné přečíst nebo vytvořit stránku a žádná volná není k dispozici, musí se čekat. Pokud je velikost bufferů nastavena správně, měla by tato hodnota být malá.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Počet zápisů provedených do InnoDB bufferu.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Počet provedených synchronizací.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Počet nevyřízených synchronizací.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Počet nevyřízených čtení.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Počet nevyřízených zápisů.';
+$strShowStatusInnodb_data_readDescr = 'Velikost přečtených dat, v bajtech.';
+$strShowStatusInnodb_data_readsDescr = 'Počet provedených čtení dat.';
+$strShowStatusInnodb_data_writesDescr = 'Počet provedených zápisů dat.';
+$strShowStatusInnodb_data_writtenDescr = 'Velikost zapsaných dat, v bajtech.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Počet provedených dvojitých zapsání a počet stránek, které byly takto zapsány.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Počet provedených dvojitých zapsání a počet stránek, které byly takto zapsány.';
+$strShowStatusInnodb_log_waitsDescr = 'Počet čekání kvůli plnému bufferu logu, který musel být vyprázdněn před pokračováním.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Počet požadavků na zápis do logovacího souboru.';
+$strShowStatusInnodb_log_writesDescr = 'Počet skutečných zápisů do logovacího souboru.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Počet synchronizací provedených na logovacích souborech.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Počet nevyřízených synchronizací logovacích souborů.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Počet nevyřízených zápisů do logovacích souborů.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Počet bajtů zapsaných do logovacího souboru.';
+$strShowStatusInnodb_pages_createdDescr = 'Počet vytvořených stránek.';
+$strShowStatusInnodb_page_sizeDescr = 'Zakompilovaná velikost stránky InnoDB (výchozí je 16 kB). Mnoho hodnot je uváděno ve stránkách, pomocí této hodnoty je můžete přepočítat na velikost.';
+$strShowStatusInnodb_pages_readDescr = 'Počet přečtených stránek.';
+$strShowStatusInnodb_pages_writtenDescr = 'Počet zapsaných stránek.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Počet zámků řádku, na které se v současné době čeká.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Průměrný čas potřebný pro získání zámku řádku, v milisekundách.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Celkový čas strávený čekáním na zámek řádku, v milisekundách.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maximální čas potřebný pro získání zámku řádku, v milisekundách.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Kolikrát se muselo čekat na zámek řádku.';
+$strShowStatusInnodb_rows_deletedDescr = 'Počet řádků odstraněných z InnoDB tabulek.';
+$strShowStatusInnodb_rows_insertedDescr = 'Počet řádků vložených do InnoDB tabulek.';
+$strShowStatusInnodb_rows_readDescr = 'Počet řádků přečtených z InnoDB tabulek.';
+$strShowStatusInnodb_rows_updatedDescr = 'Počet řádků aktualizovaných v InnoDB tabulkách.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Počet bloků ve vyrovnávací paměti klíčů, které byly změněny, ale nebyly zapsány na disk. Dříve se tato hodnota jmenovala Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Počet nepoužitých bloků ve vyrovnávací paměti klíčů. Pomocí této hodnoty poznáte jak moc je vyrovnávací paměť využitá.';
+$strShowStatusKey_blocks_usedDescr = 'Počet použitých bloků ve vyrovnávací paměti klíčů. Tato hodnota určuje maximum bloků, které kdy byly obsazeny najednou.';
+$strShowStatusKey_read_requestsDescr = 'Počet požadavků na přečtení klíče z vyrovnávací paměti.';
+$strShowStatusKey_readsDescr = 'Počet skutečných čtení bloku zklíče z disku. Pokud je hodnota příliš velká, pravděpodobně máte malou vyrovnávací paměť (key_buffer_size). Úspěšnost vyrovnávací paměti můžete spočítat jako Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Počet požadavků na zápis bloku klíče na disk.';
+$strShowStatusKey_writesDescr = 'Počet skutečných zápisů bloku klíče na disk.';
+$strShowStatusLast_query_costDescr = 'Celková cena posledního kompilovaného dotazu spočítaná optimalizátorem dotazů. Užitečné pro porovnání různých dotazů. Výchozí hodnota 0 znamená, že žádný dotaz ještě nebyl kompilován.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Počet řádků čekajících na zapsání ve frontě INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Celkem otevřených tabulek. Pokud je tato hodnota příliš vysoká, pravděpodobně máte malou vyrovnávací paměť pro tabulky.';
+$strShowStatusOpen_filesDescr = 'Počet otevřených souborů.';
+$strShowStatusOpen_streamsDescr = 'Počet otevřených streamů (používané převážně pro logování).';
+$strShowStatusOpen_tablesDescr = 'Počet aktuálně otevřených tabulek.';
+$strShowStatusQcache_free_blocksDescr = 'Počet volných bloků paměti ve vyrovnávací paměti dotazů.';
+$strShowStatusQcache_free_memoryDescr = 'Velikost volné paměti ve vyrovnávací paměti dotazů.';
+$strShowStatusQcache_hitsDescr = 'Počet zásahů vyrovnávací paměti dotazů.';
+$strShowStatusQcache_insertsDescr = 'Počet dotazů přidaných do vyrovnávací paměti dotazů.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Počet dotazů odstraněných z vyrovnávací paměti dotazů aby uvolnily místo pro nové. Tato hodnota může pomoci v nastavení velikosti vyrovnávací paměti. Vyrovnávací paměť používá strategii LRU (nejdéle nepoužité) pro vyřazování dotazů z vyrovnávací paměti.';
+$strShowStatusQcache_not_cachedDescr = 'Počet necachovaných dotazů (necachovatelných nebo necachovaných kvůli nastavení query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Počet dotazů ve vyrovnávací paměti dotazů.';
+$strShowStatusQcache_total_blocksDescr = 'Celkový počet bloků ve vyrovnávací paměti dotazů.';
+$strShowStatusReset = 'Vynulovat statistiky';
+$strShowStatusRpl_statusDescr = 'Stav failsafe replikace.';
+$strShowStatusSelect_full_joinDescr = 'Počet spojení, které nevyužívaly indexy. Pokud tato hodnota není 0, měli byste zkontrolovat indexy tabulek.';
+$strShowStatusSelect_full_range_joinDescr = 'Počet spojení, které používaly intervalové vyhledávání na referenční tabulce.';
+$strShowStatusSelect_rangeDescr = 'Počet spojení, které používaly intervalové vyhledávání na první tabulce. Tato hodnota obvykle není kritická i když je vysoká.';
+$strShowStatusSelect_range_checkDescr = 'Počet spojení bez klíčů, které kontrolovaly použití klíčů po každém řádku. Pokud tato hodnota není 0, měli byste zkontrolovat indexy tabulek.';
+$strShowStatusSelect_scanDescr = 'Počet spojení, které prováděly kompletní procházení první tabulky.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Počet dočasných tabulek v současné době otevřených podřízeným serverem.';
+$strShowStatusSlave_retried_transactionsDescr = 'Celkový počet, kolikrát musel podřízený server opakovat transakce.';
+$strShowStatusSlave_runningDescr = 'Tato položka je zapnutá, pokud server pracuje jako podřízený.';
+$strShowStatusSlow_launch_threadsDescr = 'Počet vláken jejichž vytvoření trvalo déle než slow_launch_time sekund.';
+$strShowStatusSlow_queriesDescr = 'Počet dotazů, které trvaly déle než long_query_time sekund.';
+$strShowStatusSort_merge_passesDescr = 'Počet průchodů slučování, které musel provést řadicí algoritmus. Při příliš vysoké hodnotě zvažte zvýšení sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Počet řazení, které byly omezeny rozsahem.';
+$strShowStatusSort_rowsDescr = 'Počet řazených řádek.';
+$strShowStatusSort_scanDescr = 'Počet řazení provedených procházením tabulky.';
+$strShowStatusTable_locks_immediateDescr = 'Počet okamžitých získání zámku tabulky.';
+$strShowStatusTable_locks_waitedDescr = 'Počet čekání na získání zámku tabulky. Pokud je tato hodnota vysoká a máte problémy s výkonem, měli byste optimalizovat dotazy a případně rozdělit tabulky nebo použít replikaci.';
+$strShowStatusThreads_cachedDescr = 'Počet vláken ve vyrovnávací paměti. Úspěšnost vyrovnávací paměti může být spočítána jako Threads_created/Connections. Pokud je tato hodnota červená, měli byste zvýšit thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Počet aktuálně otevřených připojení.';
+$strShowStatusThreads_createdDescr = 'Počet vláken vytvořených pro obsluhu připojení. Pokud je hodnota příliš velká, můžete zvětšit parametr thread_cache_size. Na platformách, které mají dobrou implementaci vláken však toto nemá příliš velký vliv.';
+$strShowStatusThreads_runningDescr = 'Počet vláken, která nespí.';
+$strShowTableDimension = 'Rozměry tabulek';
+$strShowTables = 'Zobrazit tabulky';
+$strShowThisQuery = 'Zobrazit zde tento dotaz znovu';
+$strShow = 'Zobrazit';
+$strSimplifiedChinese = 'Zjednodušená čínština';
+$strSingly = '(po jednom)';
+$strSize = 'Velikost';
+$strSkipQueries = 'Počet záznamů (dotazů) od začátku, které se mají přeskočit';
+$strSlovak = 'Slovenština';
+$strSlovenian = 'Slovinština';
+$strSmallBigAll = 'Vše malé/velké';
+$strSnapToGrid = 'Zachytávat na mřížku';
+$strSocketProblem = '(nebo není správně nastaven lokální socket MySQL serveru)';
+$strSortByKey = 'Setřídit podle klíče';
+$strSorting = 'Řazení';
+$strSort = 'Řadit';
+$strSpaceUsage = 'Využití místa';
+$strSpanish = 'Španělština';
+$strSplitWordsWithSpace = 'Slova jsou oddělena mezerou („ “).';
+$strSQLCompatibility = 'Režim kompatibility SQL';
+$strSQLExportType = 'Typ vytvořených dotazů';
+$strSQLParserBugMessage = 'Je možné, že jste našli chybu v SQL parseru. Prosím prozkoumejte podrobně SQL dotaz, především jestli jsou správně uvozovky a jestli nejsou proházené. Další možnost selhání je pokud nahráváte soubor s binárními daty nezapsanými v uvozovkách. Můžete také vyzkoušet příkazovou řádku MySQL. Níže uvedený výstup z MySQL serveru (pokud je nějaký) vám také může pomoci při zkoumání problému. Pokud stále máte problémy nebo pokud SQL parser ohlásí chybu u dotazu, který na příkazové řádce funguje, prosím pokuste se zredukovat dotaz na co nejmenší, ve kterém se problém ještě vyskytne, a ohlaste chybu na stránkách phpMyAdmina spolu se sekcí VÝPIS uvedenou níže:';
+$strSQLParserUserError = 'Pravděpodobně máte v SQL dotazu chybu. Níže uvedený výstup MySQL serveru (pokud je nějaký) vám také může pomoci při zkoumání problému';
+$strSQLQuery = 'SQL-dotaz';
+$strSQLResult = 'Výsledek SQL dotazu';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Chybný identifikátor';
+$strSQPBugUnclosedQuote = 'Neuzavřené uvozovky';
+$strSQPBugUnknownPunctuation = 'Neznámé interpunkční znaménko';
+$strStandInStructureForView = 'Zástupná struktura pro pohled';
+$strStatCreateTime = 'Vytvoření';
+$strStatement = 'Údaj';
+$strStatCheckTime = 'Poslední kontrola';
+$strStatisticsOverrun = 'Na hodně zatíženém serveru mohou čítače přetéct, takže statistiky MySQL serveru mohou být nepřesné.';
+$strStatUpdateTime = 'Poslední změna';
+$strStatus = 'Stav';
+$strStorageEngines = 'Úložiště';
+$strStorageEngine = 'Úložiště';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Strukturu a data';
+$strStrucExcelCSV = 'CSV pro MS Excel';
+$strStrucNativeExcel = 'Nativní formát MS Excelu';
+$strStrucOnly = 'Pouze strukturu';
+$strStructPropose = 'Navrhnout strukturu tabulky';
+$strStructureForView = 'Struktura pro pohled';
+$strStructure = 'Struktura';
+$strSubmit = 'Provést';
+$strSuccess = 'Váš SQL-dotaz byl úspěšně vykonán';
+$strSuhosin = 'Server používá Suhosin. Prosím podívejte se do %sdokumentace%s pro popis problémů, které tím mohou být způsobeny.';
+$strSum = 'Celkem';
+$strSwedish = 'Švédština';
+$strSwekeyAuthenticating = 'Authentizuji...';
+$strSwekeyAuthFailed = 'Hardwarová autentizace selhala';
+$strSwekeyNoKeyId = 'Soubor %s neobsahuje ID klíče';
+$strSwekeyNoKey = 'Nebyl připojen autentizační klíč';
+$strSwitchToDatabase = 'Přepnout na zkopírovanou databázi';
+$strSwitchToTable = 'Přepnout na zkopírovanou tabulku';
+
+$strTableAlreadyExists = 'Tabulka %s již existuje!';
+$strTableAlteredSuccessfully = 'Tabulka %1$s byla úspěšně změněna';
+$strTableComments = 'Komentář k tabulce';
+$strTableEmpty = 'Jméno tabulky je prázdné!';
+$strTableHasBeenCreated = 'Byla vytvořena tabulka %1$s.';
+$strTableHasBeenDropped = 'Tabulka %s byla odstraněna';
+$strTableHasBeenEmptied = 'Tabulka %s byla vyprázdněna';
+$strTableHasBeenFlushed = 'Vyrovnávací paměť pro tabulku %s byla vyprázdněna';
+$strTableIsEmpty = 'Tabulka se zdá být prázdná!';
+$strTableMaintenance = ' Údržba tabulky ';
+$strTableName = 'Jméno tabulky';
+$strTableOfContents = 'Obsah';
+$strTableOptions = 'Parametry tabulky';
+$strTables = '%s tabulek';
+$strTableStructure = 'Struktura tabulky';
+$strTable = 'Tabulka';
+$strTakeIt = 'zvolit';
+$strTblPrivileges = 'Oprávnění pro jednotlivé tabulky';
+$strTempData = 'Dočasná data';
+$strTextAreaLength = 'Tento sloupec možná nepůjde <br />(kvůli délce) upravit ';
+$strTexyText = 'Texy! text';
+$strThai = 'Thajština';
+$strThemeDefaultNotFound = 'Výchozí vzhled %s nebyl nalezen!';
+$strThemeNoPreviewAvailable = 'Náhled není k dispozici.';
+$strThemeNotFound = 'Vzhled %s nebyl nalezen!';
+$strThemeNoValidImgPath = 'Nebyla nalezena platná cesta k obrázkům pro vzhled %s!';
+$strThemePathNotFound = 'Nebyla nalezena platná cesta k vzhledu %s!';
+$strTheme = 'Vzhled';
+$strThisHost = 'Tento počítač';
+$strThreads = 'Počet vláken';
+$strThreadSuccessfullyKilled = 'Vlákno %s bylo úspěšně zabito.';
+$strTime = 'Čas';
+$strTimeoutInfo = 'Předchozí ímport vyčerpal veškerý čas, po dalším odeslání bude import pokračovat od pozice %d.';
+$strTimeoutNothingParsed = 'Bohužel během posledního pokusu nebyla žádná data načtena. Toto obvykle znamená, že phpMyAdmin nebude schopen načíst tento soubor, pokud nezvýšíte časové limity v PHP.';
+$strTimeoutPassed = 'Limit pro běh importu vypršel, prosím odešlete formulář znovu se stejným souborem a import bude pokračovat.';
+$strToFromPage = 'do/ze stránky';
+$strToggleScratchboard = 'Zobrazit grafický návrh';
+$strToggleSmallBig = 'Přepnout malé/velké';
+$strToSelectRelation = 'Pro výběr relace klikněte :';
+$strTotal = 'celkem';
+$strTotalUC = 'Celkem';
+$strTraditionalChinese = 'Tradiční čínština';
+$strTraditionalSpanish = 'Tradiční španělština';
+$strTraffic = 'Provoz';
+$strTransactionCoordinator = 'Koordinátor transakcí';
+$strTransformation_application_octetstream__download = 'Zobrazí odkaz na stáhnutí dat. První parametr je jméno souboru, druhý jméno sloupce v tabulce obsahující jméno souboru. Pokud zadáte druhý parametr, první musí být prázdný.';
+$strTransformation_application_octetstream__hex = 'Zobrazí data šestnáctkově. Nepovinný parametr určuje po kolika znacích má být přidána mezera (výchozí hodnota je 2).';
+$strTransformation_image_jpeg__inline = 'Zobrazí náhled obrázku s odkazem na obrázek; parametry šířka a výška v bodech (poměr stran obrázku zůstane zachován)';
+$strTransformation_image_jpeg__link = 'Zobrazí odkaz na obrázek (například stáhnutí pole blob).';
+$strTransformation_image_png__inline = 'Viz image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Zobrazí datum nebo čas (TIME, TIMESTAMP, DATETIME nebo unixový timestamp v numerickém sloupci). První parametr je posun (v hodinách), který bude přidán k času (výchozí je 0). Druhý parametr je formátovací řetězec. Třetí určuje jestli chcete zobrazit datum podle místního nastavení nebo UTC čas (použijte text „local“ nebo „utc“). Podle tohoto nastavení, formát má buďto syntaxi funkce strftime() pokud použijete „local“ nebo pro gmtime() pokud použijete „utc“.';
+$strTransformation_text_plain__external = 'JEN PRO LINUX: Spustí externí program, na jeho standardní vstup pošle obsah pole a zobrazí výstup programu. Výchozí je program Tidy, který pěkně zformátuje HTML. Z bezpečnostních důvodů musíte jména povolených programů zapsat do souboru libraries/transformations/text_plain__external.inc.php. První parametr je číslo programu, který má být spuštěn a druhý parametr udává parametry tohoto programu. Třetí parametr určuje, zda mají být ve výstupu nahrazeny HTML entity (např. pro zobrazení zdrojového kódu HTML) (výchozí je 1, tedy převádět na entity), čtvrtý (při nastavení na 1) zajistí přidání parametru NOWRAP k vypisovanému textu, čímž se zachová formátování (výchozí je 1).';
+$strTransformation_text_plain__formatted = 'Zachová původní formátování sloupce, tak jak je uložen v databázi.';
+$strTransformation_text_plain__imagelink = 'Zobrazí obrázek a odkaz z pole obsahujícího odkaz na obrázek. První parametr je prefix URL (například „http://mojedomena.cz/“), druhý a třetí určuje šířku a výšku obrázku.';
+$strTransformation_text_plain__link = 'Zobrazí odkaz z pole obsahujícího odkaz. První parametr je prefix URL (například „http://mojedomena.cz/“), druhý text odkazu.';
+$strTransformation_text_plain__sql = 'Zobrazí text jako SQL dotaz se zvýrazňováním syntaxe.';
+$strTransformation_text_plain__substr = 'Zobrazí jen část textu. První parametr je posun od začátku (výchozí je 0) a druhý určuje délku textu, který se má zobrazit, pokud není uveden, bude zobrazen zbytek textu. Třetí parametr určuje, jaký text má být přidán za zkrácený text (výchozí je ...).';
+$strTriggers = 'Spouště';
+$strTruncateQueries = 'Zobrazit zkrácené dotazy';
+$strTurkish = 'Turecky';
+$strType = 'Typ';
+
+$strUkrainian = 'Ukrajinština';
+$strUncheckAll = 'Odškrtnout vše';
+$strUnicode = 'Unicode';
+$strUnique = 'Unikátní';
+$strUnknown = 'neznámý';
+$strUnselectAll = 'Odznačit vše';
+$strUnsupportedCompressionDetected = 'Pokusili jste se importovat soubor s nepodporovanou kompresí (%s). Buďto podpora není implementována nebo je vypnuta ve vaší konfiguraci.';
+$strUpdatePrivMessage = 'Byla aktualizována oprávnění pro %s.';
+$strUpdateProfileMessage = 'Přístup byl změněn.';
+$strUpdateQuery = 'Aktualizovat dotaz';
+$strUpdComTab = 'Podívejte se prosím do dokumentace, jak aktualizovat tabulku s informacemi o sloupcích (tabulka column_comments)';
+$strUpgrade = 'Měli byste aktualizovat %s na verzi %s nebo vyšší.';
+$strUploadErrorCantWrite = 'Chyba při zapisování souboru na disk.';
+$strUploadErrorExtension = 'Nahrávání souboru zastaveno rozšířením.';
+$strUploadErrorFormSize = 'Velikost nahraného souboru přesahuje hodnotu MAX_FILE_SIZE, která byla zadána v HTML formuláři.';
+$strUploadErrorIniSize = 'Velikost nahraného souboru přesahuje nastavení upload_max_filesize v php.ini.';
+$strUploadErrorNoTempDir = 'Chybějící adresář pro dočasné soubory.';
+$strUploadErrorPartial = 'Soubor byl nahrán jen částečně.';
+$strUploadErrorUnknown = 'Neznámá chyba při nahrávání souboru.';
+$strUploadLimit = 'Pravděpodobně jste se pokusili nahrát příliš velký soubor. Přečtěte si prosím %sdokumentaci%s, jak toto omezení obejít.';
+$strUploadsNotAllowed = 'Upload souborů není na tomto serveru povolen.';
+$strUsage = 'Používá';
+$strUseBackquotes = 'Použít zpětné uvozovky u jmen tabulek a sloupců';
+$strUseHostTable = 'Použít tabulku s počítači';
+$strUserAlreadyExists = 'Uživatel %s již existuje!';
+$strUserEmpty = 'Jméno uživatele je prázdné!';
+$strUserName = 'Jméno uživatele';
+$strUserNotFound = 'Zvolený uživatel nebyl nalezen v tabulce oprávnění.';
+$strUserOverview = 'Přehled uživatelů';
+$strUsersDeleted = 'Vybraní uživatelé byli úspěšně odstraněni.';
+$strUsersHavingAccessToDb = 'Uživatelé mající přístup k „%s“';
+$strUser = 'Uživatel';
+$strUseTabKey = 'Použijte klávesu TAB pro pohyb mezi hodnotami nebo CTRL+šipky po pohyb všemi směry.';
+$strUseTables = 'Použít tabulky';
+$strUseTextField = 'Použít textové pole';
+$strUseThisValue = 'Použít tuto hodnotu';
+
+$strValidateSQL = 'Zkontrolovat SQL';
+$strValidatorError = 'SQL validátor nemohl být inicializován. Prosím zkontrolujte, jestli máte požadovaná rozšíření PHP, která jsou uvedena v %sdokumentaci%s.';
+$strValue = 'Hodnota';
+$strVar = 'Proměnná';
+$strVersionInformation = 'Informace o verzi';
+$strViewDumpDatabases = 'Export databází';
+$strViewDumpDB = 'Export databáze';
+$strViewDump = 'Export tabulky';
+$strViewHasAtLeast = 'Tento pohled má alespoň tolik řádek. Podrobnosti naleznete v %sdokumentaci%s.';
+$strViewHasBeenDropped = 'Pohled %s byl odstraněn';
+$strViewImage = 'Zobrazit obrázek';
+$strViewName = 'Jméno pohledu';
+$strView = 'Pohled';
+$strViewVideo = 'Přehrát video';
+
+$strWebServerUploadDirectoryError = 'Adresář určený pro upload souborů nemohl být otevřen';
+$strWebServerUploadDirectory = 'soubor z adresáře pro upload';
+$strWebServer = 'Webserver';
+$strWelcome = 'Vítejte v %s';
+$strWestEuropean = 'Západní Evropa';
+$strWiki = 'Wiki';
+$strWildcard = 'maska';
+$strWindowNotFound = 'Cílové okno prohlížeče nemohlo být aktualizováno. Možná jste zavřel rodičovské okno, nebo prohlížeč blokuje operace mezi okny z důvodu bezpečnostních nastavení.';
+$strWithChecked = 'Zaškrtnuté:';
+$strWriteRequests = 'Požadavků na čtení';
+$strWrongUser = 'Špatné uživatelské jméno nebo heslo. Přístup odepřen.';
+
+$strXML = 'XML';
+
+$strYes = 'Ano';
+
+$strZeroRemovesTheLimit = 'Poznámka: Nastavení těchto parametrů na 0 (nulu) odstraní omezení.';
+$strZip = '„zazipováno“';
+
+// To translate:
+
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+
+?>
diff --git a/lang/danish-utf-8.inc.php b/lang/danish-utf-8.inc.php
new file mode 100644
index 0000000000..e8c1d3d477
--- /dev/null
+++ b/lang/danish-utf-8.inc.php
@@ -0,0 +1,1447 @@
+<?php
+/* $Id$ */ /* danish - Dansk v 2.20 (based on english rev. 10226) 2007/04/03 01:23:45 - oversætter AlleyKat kan kontaktes på < phpmyadmin (at) phpbb2.dk > */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// forkortelser for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+// MySQL manual sprogdefinition, ikke påkrævet, en bruges hvis
+// ikke defineret - da findes endnu ikke
+$mysql_4_1_doc_lang = 'en';
+$mysql_5_0_doc_lang = 'en';
+$mysql_5_1_doc_lang = 'en';
+
+$day_of_week = array('søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør');
+$month = array('jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec');
+// Se http://www.php.net/manual/en/function.strftime.php
+// for at definere variablen herunder
+$datefmt = '%d. %m %Y kl. %H:%M:%S';
+$timespanfmt = '%s dage, %s timer, %s minutter og %s sekunder';
+
+$strAbortedClients = 'Afbrudt';
+$strAccessDenied = 'Adgang Nægtet';
+$strAccessDeniedCreateConfig = 'Sandsynlig årsag til dette er at du ikke har oprettet en konfigurationsfil. Du kan bruge %1$sopsætningsscriptet%2$s til at oprette en.';
+$strAccessDeniedExplanation = 'phpMyAdmin forsøgte at forbinde til MySQL-serveren, og serveren afviste forbindelsen. Du bør tjekke host, brugernavn og kodeord i config.inc.php og sikre dig at de svarer til den information du har fået af administratoren af MySQL-serveren.';
+$strAction = 'Handling';
+$strAddAutoIncrement = 'Tilføj AUTO_INCREMENT værdi';
+$strAddClause = 'Tilføj %s';
+$strAddConstraints = 'Tilføj begrænsninger';
+$strAddDeleteColumn = 'Tilføj/Slet felt-kolonne';
+$strAddDeleteRow = 'Tilføj/Slet kriterie-række';
+$strAddFields = 'Tilføj %s felt(er)';
+$strAddHeaderComment = 'Tilføj tilpassede kommentarer i headeren (\\n deler linjer)';
+$strAddIntoComments = 'Tilføj til kommentarer';
+$strAddNewField = 'Tilføj nyt felt';
+$strAddPrivilegesOnDb = 'Tilføj privilegier på følgende database';
+$strAddPrivilegesOnTbl = 'Tilføj privileges på følgende tabel';
+$strAddSearchConditions = 'Tilføj søgekriterier (kroppen af "WHERE" sætningen):';
+$strAddToIndex = 'Føj til indeks &nbsp;%s&nbsp;kolonne(r)';
+$strAddUserMessage = 'Du har tilføjet en ny bruger.';
+$strAddUser = 'Tilføj en ny bruger';
+$strAdministration = 'Administration';
+$strAfter = 'Efter %s';
+$strAfterInsertBack = 'Tilbage til foregående side';
+$strAfterInsertNewInsert = 'Indsæt endnu en ny række';
+$strAfterInsertNext = 'Redigér næste række';
+$strAfterInsertSame = 'Gå tilbage til denne side';
+$strAll = 'Alle';
+$strAllowInterrupt = 'Tillad afbrydelse af import hvis scriptet er tæt på tidsgrænsen. Dette kan være en god metode til at importere større filer, men kan knække transaktioner.';
+$strAllTableSameWidth = 'vis alle tabeller med samme bredde?';
+$strAlterOrderBy = 'Arrangér tabelrækkefølge efter';
+$strAnalyzeTable = 'Analysér tabel';
+$strAnd = 'Og';
+$strAndThen = 'og derefter';
+$strAngularLinks = 'Angulære links';
+$strAnIndex = 'Der er tilføjet et indeks til %s';
+$strAny = 'Enhver';
+$strAnyHost = 'Enhver vært';
+$strAnyUser = 'Enhver bruger';
+$strApproximateCount = 'Kan være anslået. Se FAQ 3.11';
+$strAPrimaryKey = 'En primær nøgle er blevet tilføjet til %s';
+$strArabic = 'Arabisk';
+$strArmenian = 'Armensk';
+$strAscending = 'Stigende';
+$strAtBeginningOfTable = 'I begyndelsen af tabel';
+$strAtEndOfTable = 'I slutningen af tabel';
+$strAttr = 'Attributter';
+$strAutomaticLayout = 'Automatisk layout';
+
+$strBack = 'Tilbage';
+$strBaltic = 'Baltisk';
+$strBeginCut = 'BEGYND KLIP';
+$strBeginRaw = 'BEGYND RÅ';
+$strBinary = ' Binært ';
+$strBinaryDoNotEdit = ' Binært - må ikke ændres ';
+$strBinaryLog = 'Binær log';
+$strBinLogEventType = 'Hændelsestype';
+$strBinLogInfo = 'Information';
+$strBinLogName = 'Lognavn';
+$strBinLogOriginalPosition = 'Original position';
+$strBinLogPosition = 'Position';
+$strBinLogServerId = 'Server ID';
+$strBookmarkAllUsers = 'Lad alle brugere bruge dette bogmærke';
+$strBookmarkCreated = 'Bogmærke %s oprettet';
+$strBookmarkDeleted = 'Bogmærket er fjernet.';
+$strBookmarkLabel = 'Mærke';
+$strBookmarkQuery = 'SQL-forespørgsel med bogmærke';
+$strBookmarkReplace = 'Erstat eksisterende bogmærke af samme navn';
+$strBookmarkThis = 'Lav bogmærke til denne SQL-forespørgsel';
+$strBookmarkView = 'Kun oversigt';
+$strBrowseDistinctValues = 'Gennemse bestemte værdier';
+$strBrowseForeignValues = 'Bladre i fremmedværdier';
+$strBrowse = 'Vis';
+$strBufferPoolActivity = 'Buffer Pool Aktivitet';
+$strBufferPool = 'Buffer Pool';
+$strBufferPoolUsage = 'Buffer Pool Forbrug';
+$strBufferReadMissesInPercent = 'Read misses i %';
+$strBufferReadMisses = 'Read misses';
+$strBufferWriteWaitsInPercent = 'Write waits i %';
+$strBufferWriteWaits = 'Write waits';
+$strBulgarian = 'Bulgarsk';
+$strBusyPages = 'Travle sider';
+$strBzip = '"bzipped"';
+
+$strCalendar = 'Kalender';
+$strCancel = 'Annuller';
+$strCanNotLoadExportPlugins = 'Kunne ikke indlæse eksportplugins, check venligst din installation!';
+$strCanNotLoadImportPlugins = 'Kunne ikke indlæse importplugins, check venligst din installation!';
+$strCannotLogin = 'Kan ikke logge ind på MySQL-serveren';
+$strCantLoad = 'Kan ikke indlæse [a@http://php.net/%1$s@Dokumentation][em]%1$s[/em][/a] udvidelsen. Tjek venligst din PHP-konfiguration.';
+$strCantLoadRecodeIconv = 'Kan ikke indlæse iconv eller omkode nødvendig udvidelse til tegnsæt-konvertering, konfigurer PHP til at tillade brug af disse udvidelser eller slå tegnsæt-konvertering fra i phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Kan ikke omdøbe indeks til PRIMARY!';
+$strCantUseRecodeIconv = 'Kan ikke bruge iconv ejheller libiconv eller recode_string funktionen omend udvidelsen ser ud til at være indlæst. Check din PHP-konfiguration.';
+$strCardinality = 'Kardinalitet';
+$strCaseInsensitive = 'ingen forskel på store/små bogstaver';
+$strCaseSensitive = 'forskel på store/små bogstaver';
+$strCentralEuropean = 'Centraleuropæisk';
+$strChange = 'Ændre';
+$strChangeCopyModeCopy = '... behold den gamle.';
+$strChangeCopyModeDeleteAndReload = ' ... slet den gamle fra brugertabellerne og genindlæs privilegierne efterfølgende.';
+$strChangeCopyModeJustDelete = ' ... slet den gamle fra brugertabellerne.';
+$strChangeCopyMode = 'Opret en bruger med samme privilegier og ...';
+$strChangeCopyModeRevoke = ' ... tilbagekald alle aktive privilegier fra den gamle og slet den efterfølgende.';
+$strChangeCopyUser = 'Ret Login-information / Kopiér bruger';
+$strChangeDisplay = 'Vælg felt der skal vises';
+$strChangePassword = 'Ændre kodeord';
+$strCharsetOfFile = 'Tegnsæt for filen:';
+$strCharsetsAndCollations = 'Tegnsæt og kollationer (Collations)';
+$strCharsets = 'Tegnsæt';
+$strCharset = 'Tegnsæt';
+$strCheckAll = 'Afmærk alt';
+$strCheckOverhead = 'Check tabeller der har overhead';
+$strCheckPrivs = 'Check Privilegier';
+$strCheckPrivsLong = 'Check privilegier for database &quot;%s&quot;.';
+$strCheckTable = 'Tjek tabel';
+$strChoosePage = 'Vælg en side der skal redigeres';
+$strColComFeat = 'Viser kolonne-kommentarer';
+$strCollation = 'Kollation (Collation)';
+$strColumnNames = 'Kolonnenavne';
+$strColumnPrivileges = 'Kolonne-specifikke privilegier';
+$strCommand = 'Kommando';
+$strComments = 'Kommentarer';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 kompatibel';
+$strCompleteInserts = 'Komplette inserts';
+$strCompression = 'Komprimering';
+$strCompressionWillBeDetected = 'Importeret fil-komprimering vil blive automatisk registreret fra: %s';
+$strConfigDefaultFileError = 'Kunne ikke indlæse standardkonfiguration fra: "%1$s"';
+$strConfigFileError = 'phpMyAdmin kunne ikke læse din konfigurationsfil!<br />Dette kan ske hvis PHP finder en parser-fejl i den, eller PHP ikke kan finde filen.<br />Kald konfigurationsfilen direkte fra nedenstående link og læs de(n) PHP-fejlmeddelelse(r) du får. I de fleste tilfælde mangler der et anførselstegn eller et semikolon et sted.<br />Hvis du får en blank side, er alt i orden.';
+$strConfigureTableCoord = 'Konfigurér venligst koordinaterne for tabel %s';
+$strConnectionError = 'Kan ikke forbinde: ugyldige indstillinger.';
+$strConnections = 'Forbindelser';
+$strConstraintsForDumped = 'Begrænsninger for dumpede tabeller';
+$strConstraintsForTable = 'Begrænsninger for tabel';
+$strControluserFailed = 'Forbindelse for kontrolbruger som defineret i din konfiguration slog fejl.';
+$strCookiesRequired = 'Herefter skal cookies være slået til.';
+$strCopy = 'Kopi';
+$strCopyDatabaseOK = 'Database %s er blevet kopieret til %s';
+$strCopyTable = 'Kopier tabel til (database<b>.</b>tabel):';
+$strCopyTableOK = 'Tabellen %s er nu kopieret til: %s.';
+$strCopyTableSameNames = 'Kan ikke kopiere tabellen til den samme!';
+$strCouldNotKill = 'phpMyAdmin kunne ikke dræbe tråden %s. Den er sandsynligvis allerede lukket.';
+$strCreate = 'Opret';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE før kopiering';
+$strCreateIndex = 'Dan et indeks på&nbsp;%s&nbsp;kolonner';
+$strCreateIndexTopic = 'Lav et nyt indeks';
+$strCreateNewDatabase = 'Opret ny database';
+$strCreateNewTable = 'Opret ny tabel i database %s';
+$strCreatePage = 'Opret en ny side';
+$strCreatePdfFeat = 'Oprettelse af PDFer';
+$strCreateRelation = 'Opret relation';
+$strCreateTable = 'Opret tabel';
+$strCreateUserDatabase = 'Database for bruger';
+$strCreateUserDatabaseName = 'Opret database med samme navn og tildel alle privilegier';
+$strCreateUserDatabaseNone = 'Ingen';
+$strCreateUserDatabaseWildcard = 'Tildel alle privilegier til jokertegn-navn (brugernavn_%)';
+$strCreationDates = 'Oprettet/Opdateret/Check datoer';
+$strCriteria = 'Kriterier';
+$strCroatian = 'Kroatisk';
+$strCSV = 'CSV (kommasepareret)';
+$strCyrillic = 'Kyrillisk';
+$strCzech = 'Tjekkisk';
+$strCzechSlovak = 'Tjekkisk-Slovakisk';
+
+$strDanish = 'Dansk';
+$strDatabase = 'Database';
+$strDatabaseEmpty = 'Databasenavnet er tomt!';
+$strDatabaseExportOptions = 'Database eksportindstillinger';
+$strDatabaseHasBeenDropped = 'Database %s er slettet.';
+$strDatabases = 'Databaser';
+$strDatabasesDropped = '%s databaser er blevet droppet korrekt.';
+$strDatabasesStats = 'Databasestatistik';
+$strDatabasesStatsDisable = 'Slå Statistikker fra';
+$strDatabasesStatsEnable = 'Slå Statistikker til';
+$strDatabasesStatsHeavyTraffic = 'Bemærk: Aktivering af databasestatistikkerne hér kan forårsage tung trafik mellem webserveren og MySQL-serveren.';
+$strData = 'Data';
+$strDataDict = 'Data Dictionary';
+$strDataOnly = 'Kun data';
+$strDataPages = 'Sider der indeholder data';
+$strDBComment = 'Databasekommentar: ';
+$strDBCopy = 'Kopiér database til';
+$strDbIsEmpty = 'Database ser ud til at være tom!';
+$strDbPrivileges = 'Database-specifikke privilegier';
+$strDBRename = 'Omdøb database til';
+$strDbSpecific = 'database-specifik';
+$strDefault = 'Standardværdi';
+$strDefaultEngine = '%s er standard datalageret på denne MySQL-server.';
+$strDefaultValueHelp = 'For standardværdier, indtast venligst kun en enkelt værdi, uden backslash escaping eller quotes, ud fra følgende format: a';
+$strDefragment = 'Defragmentér tabel';
+$strDelayedInserts = 'Brug forsinkede indsættelser';
+$strDeleteAndFlushDescr = 'Dette er den sikreste metode, men genindlæsning af privilegierne kan tage noget tid.';
+$strDeleteAndFlush = 'Slet brugerne og genindlæs privilegier bagefter.';
+$strDelete = 'Slet';
+$strDeleted = 'Rækken er slettet!';
+$strDeleteNoUsersSelected = 'Ingen brugere valgt til sletning!';
+$strDeleteRelation = 'Slet relation';
+$strDeleting = 'Sletter %s';
+$strDelimiter = 'Adskiller';
+$strDelOld = 'Nuværende side har referencer til tabeller der ikke længere eksisterer. Vil du slette disse referencer?';
+$strDescending = 'Faldende';
+$strDescription = 'Beskrivelse';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'Visningsfeltet er vist som pink. For at sætte/fjerne et felt som visningsfelt, klik på "Vælg felt der skal vises" ikonet, og klik derefter på det pågældende feltnavn.';
+$strDictionary = 'ordbog';
+$strDirectLinks = 'Direkte links';
+$strDirtyPages = 'Beskidte sider';
+$strDisabled = 'Slået fra';
+$strDisableForeignChecks = 'Slå fremmednøgle-checks fra';
+$strDisplayFeat = 'Vis muligheder';
+$strDisplayOrder = 'Rækkefølge af visning:';
+$strDisplayPDF = 'Vis PDF-skematik';
+$strDoAQuery = 'Kør en forespørgsel på felter (jokertegn: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentation';
+$strDoYouReally = 'Er du sikker på at du vil ';
+$strDropDatabaseStrongWarning = 'Du er ved at DESTRUERE en komplet database!';
+$strDrop = 'Slet';
+$strDropUsersDb = 'Drop databaser der har samme navne som brugernes.';
+$strDumpingData = 'Data dump for tabellen';
+$strDumpSaved = 'Dump er blevet gemt i filen %s.';
+$strDumpXRows = 'Dump %s rækker startende med række %s.';
+$strDynamic = 'dynamisk';
+
+$strEditPDFPages = 'Redigér PDF-sider';
+$strEditPrivileges = 'Ret privilegier';
+$strEdit = 'Ret';
+$strEffective = 'Effektiv';
+$strEmptyResultSet = 'MySQL returnerede ingen data (fx ingen rækker).';
+$strEmpty = 'Tøm';
+$strEnabled = 'Slået til';
+$strEncloseInTransaction = 'Inkludér eksport i en transaktion';
+$strEndCut = 'SLUT KLIP';
+$strEndRaw = 'SLUT RÅ';
+$strEnd = 'Slut';
+$strEngineAvailable = '%s er tilgængelig på denne MySQL-server.';
+$strEngineDisabled = '%s er slået fra på denne MySQL-server.';
+$strEngines = 'Lagre';
+$strEngineUnsupported = 'Denne MySQL-server understøtter ikke %s datalager.';
+$strEnglish = 'Engelsk';
+$strEnglishPrivileges = ' NB: Navne på MySQL privilegier er på engelsk ';
+$strError = 'Fejl';
+$strErrorInZipFile = 'Fejl i ZIP arkiv:';
+$strErrorRelationAdded = 'Fejl: Relation ikke tilføjet.';
+$strErrorRelationExists = 'Fejl: Relation findes allerede.';
+$strErrorSaveTable = 'Fejl ved lagring af koordinater for Designer.';
+$strErrorRenamingTable = 'Fejl ved omdøbning af tabel %1$s til %2$s';
+$strEscapeWildcards = 'Jokertegn _ og % skal være escaped med en \ foran for at bruge dem bogstaveligt';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estisk';
+$strExcelEdition = 'Excel-udgave';
+$strExecuteBookmarked = 'Udfør forespørgsel iflg. bogmærke';
+$strExplain = 'Forklar SQL';
+$strExport = 'Eksport';
+$strExportImportToScale = 'Eksporter/Importer til skala';
+$strExportMustBeFile = 'Valgte eksporttype skal gemmes som fil!';
+$strExtendedInserts = 'Udvidede inserts';
+$strExtra = 'Ekstra';
+
+$strFailedAttempts = 'Mislykkede forsøg';
+$strField = 'Feltnavn';
+$strFieldHasBeenDropped = 'Felt %s er slettet';
+$strFieldInsertFromFileTempDirNotExists = 'Fejl ved flytning af den uploadede fil, se FAQ 1.11';
+$strFieldsEnclosedBy = 'Felter indrammet med';
+$strFieldsEscapedBy = 'Felter escaped med';
+$strFields = 'Felter';
+$strFieldsTerminatedBy = 'Felter afsluttet med';
+$strFileAlreadyExists = 'Filen %s findes allerede på serveren, lav filnavnet om eller tillad at der overskrives.';
+$strFileCouldNotBeRead = 'Filen kunne ikke læses';
+$strFileNameTemplateDescriptionDatabase = 'databasenavn';
+$strFileNameTemplateDescription = 'Denne værdi fortolkes via %1$sstrftime%2$s, så du kan bruge tidsformatterede strenge. Ydermere vil følgende transformationer foregå: %3$s. Anden tekst vil blive bevaret som det er.';
+$strFileNameTemplateDescriptionServer = 'servernavn';
+$strFileNameTemplateDescriptionTable = 'tabelnavn';
+$strFileNameTemplateRemember = 'husk skabelonen';
+$strFileNameTemplate = 'Skabelon for filnavn';
+$strFiles = 'Filer';
+$strFileToImport = 'Fil til import';
+$strFixed = 'ordnet';
+$strFlushPrivilegesNote = 'Bemærk: phpMyAdmin henter brugernes privilegier direkte fra MySQLs privilegietabeller. Indholdet af disse tabeller kan være forskelligt fra privilegierne serveren i øjeblikket bruger hvis der er lavet manuelle ændringer i den. Hvis dette er tilfældet, bør du %sgenindlæse privilegierne%s før du fortsætter.';
+$strFlushQueryCache = 'Flush forespørgsel-mellemlager (query cache)';
+$strFlushTable = 'Flush tabellen ("FLUSH")';
+$strFlushTables = 'Flush (luk) alle tabeller';
+$strFontSize = 'Skriftstørrelse';
+$strFormat = 'Format';
+$strFormEmpty = 'Ingen værdi i formularen !';
+$strFreePages = 'Frie sider';
+$strFullText = 'Komplette tekster';
+$strFunction = 'Funktion';
+$strFunctions = 'Funktioner';
+
+$strGenBy = 'Genereret af';
+$strGeneralRelationFeat = 'Generelle relationsmuligheder';
+$strGenerate = 'Generér';
+$strGeneratePassword = 'Generér Kodeord';
+$strGenTime = 'Genereringstid';
+$strGeorgian = 'Georgisk';
+$strGerman = 'Tysk';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Globale privilegier';
+$strGlobalValue = 'Global værdi';
+$strGo = 'Udfør';
+$strGrantOption = 'Tildel';
+$strGreek = 'Græsk';
+$strGzip = '"gzipped"';
+
+$strHandler = 'Handler';
+$strHasBeenAltered = 'er ændret.';
+$strHaveToShow = 'Du skal vælge mindst en kolonne der skal vises';
+$strHebrew = 'Hebræisk';
+$strHelp = 'Hjælp';
+$strHexForBLOB = 'Brug heksadecimal for BLOB';
+$strHide = 'Skjul';
+$strHideShowAll = 'Skjul/Vis alle';
+$strHideShowNoRelation = 'Skjul/Vis tabeller uden relation';
+$strHome = 'Hjem';
+$strHomepageOfficial = 'Officiel phpMyAdmin hjemmeside ';
+$strHostEmpty = 'Der er intet værtsnavn!';
+$strHost = 'Vært';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Ungarsk';
+
+$strIcelandic = 'Islandsk';
+$strId = 'ID';
+$strIdxFulltext = 'Fuldtekst';
+$strIEUnsupported = 'Internet Explorer understøtter ikke denne funktion.';
+$strIgnoreDuplicates = 'Ignorér gentagne rækker';
+$strIgnore = 'Ignorer';
+$strIgnoreInserts = 'Brug ignorér inserts';
+$strImportFiles = 'Importér filer';
+$strImportExportCoords = 'Importer/Eksporter koordinater for PDF-opstilling';
+$strImportFormat = 'Format på importeret fil';
+$strImport = 'Import';
+$strImportSuccessfullyFinished = 'Importen er korrekt gennemført, %d forespørgsler udført.';
+$strIndexes = 'Indeks';
+$strIndexHasBeenDropped = 'Indeks %s er blevet slettet';
+$strIndex = 'Indeks';
+$strIndexName = 'Indeksnavn&nbsp;:';
+$strIndexType = 'Indekstype&nbsp;:';
+$strIndexWarningTable = 'Problemer med indeksene på tabel `%s`';
+$strInnoDBAutoextendIncrement = 'Autoextend forøgelse';
+$strInnoDBAutoextendIncrementDesc = ' Størrelsen på den udvidelse der vil forekomme, når pladsen i en autoudvidende tabel udvides fordi den løber fuld.';
+$strInnoDBBufferPoolSize = 'Buffer pool størrelse';
+$strInnoDBBufferPoolSizeDesc = 'Størrelse på memorybufferen InnoDB bruger til at mellemlagre data og indeks på dens tabeller.';
+$strInnoDBDataFilePath = 'Datafiler';
+$strInnoDBDataHomeDir = 'Data hovedmappe';
+$strInnoDBDataHomeDirDesc = 'Den fælles del af stien til mappen med alle InnoDB datafiler.';
+$strInnoDBPages = 'sider';
+$strInnodbStat = 'InnoDB status';
+$strInsecureMySQL = 'Din konfigurationsfil indeholder indstillinger (root og intet kodeord) som svarer til en standard MySQL-priviligeret brugerkonto. Din MySQL server kører med denne standardindstilling, <u>er åben for indtrængen</u>, og du opfordres stærkt til at gøre noget ved dette sikkerhedshul.';
+$strInsertAsNewRow = 'Indsæt som ny række';
+$strInsert = 'Indsæt';
+$strInternalRelationAdded = 'Intern relation tilføjet';
+$strInternalRelations = 'Interne relationer';
+$strInUse = 'i brug';
+$strInvalidAuthMethod = 'Ugyldig autorisationsmetode sat i konfiguration:';
+$strInvalidColumnCount = 'Kolonneantal skal være større end nul.';
+$strInvalidColumn = 'Ugyldig kolonne (%s) angivet!';
+$strInvalidCSVFieldCount = 'Ugyldigt feltantal i CSV-input på linie %d.';
+$strInvalidCSVFormat = 'Ugyldigt format for CSV-input på linie %d.';
+$strInvalidCSVParameter = 'Ugyldigt parameter for CSV-import: %s';
+$strInvalidDatabase = 'Ugyldig database';
+$strInvalidFieldAddCount = 'Du skal tilføje mindst ét felt.';
+$strInvalidFieldCount = 'Tabellen skal indeholde mindst ét felt.';
+$strInvalidLDIImport = 'Denne plugin understøtter ikke komprimeret import!';
+$strInvalidRowNumber = '%d er ikke et gyldigt rækkenummer.';
+$strInvalidServerHostname = 'Ugyldigt hostnavn for server %1$s. Gennemgå venligst din konfiguration.';
+$strInvalidServerIndex = 'Ugyldigt server indeks: "%s"';
+$strInvalidTableName = 'Ugyldigt tabelnavn';
+
+$strJapanese = 'Japansk';
+$strJoins = 'Joins';
+$strJumpToDB = 'Hop til database &quot;%s&quot;.';
+$strJustDelete = 'Bare slet brugerne fra privilegietabellerne.';
+$strJustDeleteDescr = 'De &quot;slettede&quot; brugere kan stadig tilgå serveren som de plejer indtil privilegierne genindlæses.';
+
+$strKeepPass = 'Kodeord må ikke ændres';
+$strKeyCache = 'Nøglemellemlager (key cache)';
+$strKeyname = 'Nøglenavn';
+$strKill = 'Dræb (Kill)';
+$strKnownExternalBug = 'Funktionaliteten af %s er påvirket af en kendt fejl, se %s';
+$strKorean = 'Koreansk';
+
+$strLandscape = 'Liggende';
+$strLanguage = 'Sprog';
+$strLanguageUnknown = 'Ukendt sprog: %1$s.';
+$strLatchedPages = 'Eksklusivt låste (latched) sider';
+$strLatexCaption = 'Tabeloverskrift';
+$strLatexContent = 'Indhold af tabel __TABLE__';
+$strLatexContinuedCaption = 'Fortsat tabeloverskrift';
+$strLatexContinued = '(fortsættes)';
+$strLatexIncludeCaption = 'Inkluder tabeloverskrift';
+$strLatexLabel = 'Mærke nøgle';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktur for tabel __TABLE__';
+$strLatvian = 'Lettisk';
+$strLDI = 'CSV vha. LOAD DATA';
+$strLDILocal = 'Brug LOCAL nøgleord';
+$strLengthSet = 'Længde/Værdi*';
+$strLimitNumRows = 'poster pr. side';
+$strLinesTerminatedBy = 'Linjer afsluttet med';
+$strLinkNotFound = 'Link ikke fundet';
+$strLinksTo = 'Linker til';
+$strLithuanian = 'Litauisk';
+$strLocalhost = 'Lokal';
+$strLocationTextfile = 'Tekstfilens placering';
+$strLoginInformation = 'Login-information';
+$strLogin = 'Login';
+$strLogout = 'Log af';
+$strLogPassword = 'Kodeord:';
+$strLogServer = 'Server';
+$strLogUsername = 'Brugernavn:';
+$strLongOperation = 'Denne operation kan tage lang tid. Fortsæt alligevel?';
+
+$strMaxConnects = 'maks. samtidige forbindelser';
+$strMaximalQueryLength = 'Maksimal længde på oprettet forespørgsel';
+$strMaximumSize = 'Maksimum størrelse: %s%s';
+$strMbExtensionMissing = 'PHP-udvidelsen mbstring blev ikke fundet og du ser ud til at bruge et multibyte tegnsæt. Uden mbstring-udvidelsen er phpMyAdmin ude af stand til at opdele strenge korrekt og dette kan forårsage uventede resultater';
+$strMbOverloadWarning = 'Du har mbstring.func_overload slået til i din PHP-konfiguration. Denne indstilling er ikke kompatibel med phpMyAdmin og kan forårsage ødelæggelse af nogle data!';
+$strMIME_available_mime = 'Tilgængelige MIME-typer';
+$strMIME_available_transform = 'Tilgængelige transformationer';
+$strMIME_description = 'Beskrivelse';
+$strMIME_MIMEtype = 'MIME-type';
+$strMIME_nodescription = 'Der er ingen beskrivelse af denne transformation.<br />Spørg venligst forfatteren, hvad %s gør.';
+$strMIME_transformation = 'Browser transformation';
+$strMIME_transformation_note = 'For en liste over mulige transformationsindstillinger og deres MIME-type transformationer, klik på %stransformationsbeskrivelser%s';
+$strMIME_transformation_options_note = 'Indtast værdier for transformationsindstillinger ud fra følgende format: \'a\', 100, b,\'c\'...<br />Skulle du få brug for at indsætte en backslash ("\") eller en apostrof ("\'") i værdierne, backslash det (for eksempel \'\\\\xyz\' eller \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformationsindstillinger';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE (MIME-typer for tabellen)';
+$strMIME_without = 'MIME-typer skrevet med kursiv har ikke en separat transformationsfunktion';
+$strModifications = 'Rettelserne er gemt!';
+$strModifyIndexTopic = 'Ændring af et indeks';
+$strModify = 'Ret';
+$strMoveMenu = 'Flyt Menu';
+$strMoveTable = 'Flyt tabel til (database<b>.</b>tabel):';
+$strMoveTableOK = 'Tabel %s er flyttet til %s.';
+$strMoveTableSameNames = 'Kan ikke flytte tabellen til den samme!';
+$strMultilingual = 'flersproget';
+$strMyISAMDataPointerSize = 'Data pointer størrelse';
+$strMyISAMDataPointerSizeDesc = 'Standard pointerstørrelse i bytes, til brug ved CREATE TABLE for MyISAM tabeller når der ikke er specificeret nogen MAX_ROWS indstilling.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Hvis den midlertidige fil der bruges til hurtig MyISAM indeks-oprettelse ville være større end ved brug af key cache med størrelsen angivet her, foretræk key cache-metoden.';
+$strMyISAMMaxExtraSortFileSize = 'Maksimal størrelse for midlertidige filer ved oprettelse af indeks';
+$strMyISAMMaxSortFileSizeDesc = 'Maksimal størrelse for den midlertidige fil MySQL har lov til at bruge under genetablering af et MyISAM indeks (under REPAIR TABLE, ALTER TABLE, eller LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maksimal størrelse for midlertidige sorteringsfiler';
+$strMyISAMRecoverOptions = 'Automatisk genopretnings-modus';
+$strMyISAMRecoverOptionsDesc = 'Modus for automatisk genetablering af crashede MyISAM tabeller, som sat via --myisam-recover server opstartsindstillingen.';
+$strMyISAMRepairThreadsDesc = 'Hvis denne værdi er større end 1, oprettes MyISAM tabel-indeks parallelt (hvert indeks i dets egen tråd) under Reparation ved sortering-processen.';
+$strMyISAMRepairThreads = 'Reparér tråde';
+$strMyISAMSortBufferSizeDesc = 'Bufferen der allokeres ved sortering af MyISAM indeks under en REPAIR TABLE eller når indeks oprettes med CREATE INDEX eller ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Sorterings-bufferstørrelse';
+$strMySQLCharset = 'MySQL Tegnsæt';
+$strMysqlClientVersion = 'MySQL klientversion';
+$strMySQLConnectionCollation = 'MySQL forbindelses-sammenkøring';
+$strMysqlLibDiffersServerVersion = 'Din PHP MySQL-biblioteks version %s afviger fra din MySQL server version %s. Dette kan forårsage uforudsigelige resultater.';
+$strMySQLSaid = 'MySQL returnerede: ';
+$strMySQLShowProcess = 'Vis tråde';
+
+$strName = 'Navn';
+$strNext = 'Næste';
+$strNoActivity = 'Ingen aktivitet i de seneste %s sekunder eller mere, log venligst ind igen';
+$strNoDatabases = 'Ingen databaser';
+$strNoDatabasesSelected = 'Ingen databaser valgt.';
+$strNoDataReceived = 'Der blev ikke modtaget nogen data til import. Enten blev der ikke indsendt et filnavn, eller filstørrelsen kan have overskredet maksimalstørrelsen tilladt af din PHP-konfiguration. Se FAQ 1.16.';
+$strNoDescription = 'ingen beskrivelse';
+$strNoDetailsForEngine = 'Der er ingen detaljerede statusinformationer tilgængelige for dette datalager.';
+$strNoDropDatabases = '"DROP DATABASE" erklæringer kan ikke bruges.';
+$strNoExplain = 'Spring over Forklar SQL';
+$strNoFilesFoundInZip = 'Ingen filer fundet i ZIP arkivet!';
+$strNoFrames = 'phpMyAdmin er mere brugervenlig med en browser, der kan klare <b>frames</b>.';
+$strNoIndex = 'Intet indeks defineret!';
+$strNoIndexPartsDefined = 'Ingen dele af indeks er defineret!';
+$strNoModification = 'Ingen ændring';
+$strNone = 'Intet';
+$strNo = 'Nej';
+$strNoOptions = 'Dette format har ingen indstillinger';
+$strNoPassword = 'Intet kodeord';
+$strNoPermission = 'Webserveren har ikke tilladelse til at gemme filen %s.';
+$strNoPhp = 'uden PHP-kode';
+$strNoPrivileges = 'Ingen privilegier';
+$strNoRights = 'Du har ikke tilstrækkelige rettigheder til at være her!';
+$strNoRowsSelected = 'Ingen rækker valgt';
+$strNoSpace = 'Utilstrækkeligt plads til at gemme filen %s.';
+$strNoTablesFound = 'Ingen tabeller fundet i databasen.';
+$strNoThemeSupport = 'Ingen tema/layout-understøttelse, tjek venligst din konfiguration og/eller dine temaer i mappen %s.';
+$strNotNumber = 'Dette er ikke et tal!';
+$strNotOK = 'ikke OK';
+$strNotSet = 'Tabel <b>%s</b> findes ikke eller er ikke sat i %s';
+$strNoUsersFound = 'Ingen bruger(e) fundet.';
+$strNoValidateSQL = 'Spring over Validér SQL';
+$strNull = 'Nulværdi';
+$strNumberOfFields = 'Antal felter';
+$strNumberOfTables = 'Antal tabeller';
+$strNumSearchResultsInTable = '%s hit(s) i tabel <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> hit(s)';
+$strNumTables = 'Tabeller';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Open Document regneark';
+$strOpenDocumentText = 'Open Document tekst';
+$strOpenNewWindow = 'Åbn nyt phpMyAdmin vindue';
+$strOperations = 'Operationer';
+$strOperator = 'Operatør';
+$strOptimizeTable = 'Optimer tabel';
+$strOptions = 'Indstillinger';
+$strOr = 'Eller';
+$strOverhead = 'Overhead';
+$strOverwriteExisting = 'Overskriv eksisterende fil(er)';
+
+$strPageNumber = 'Side nummer:';
+$strPagesToBeFlushed = 'Sider der står til at blive tømt';
+$strPaperSize = 'Papirstørrelse';
+$strPartialImport = 'Delvis import';
+$strPartialText = 'Delvise tekster';
+$strPasswordChanged = 'Kodeordet for %s blev korrekt udskiftet.';
+$strPasswordEmpty = 'Der er ikke angivet noget kodeord!';
+$strPasswordHashing = 'Kodeord Hashing';
+$strPassword = 'Kodeord';
+$strPasswordNotSame = 'De to kodeord er ikke ens!';
+$strPdfDbSchema = 'Skematik for databasen "%s" - Side %s';
+$strPdfInvalidTblName = 'Tabellen "%s" findes ikke!';
+$strPdfNoTables = 'Ingen tabeller';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Genererer en rapport indeholdende dataene fra en enkelt tabel)';
+$strPDFReportTitle = 'Rapporttitel';
+$strPerHour = 'pr. time';
+$strPerMinute = 'pr. minut';
+$strPerSecond = 'pr. sekund';
+$strPersian = 'Persisk';
+$strPhoneBook = 'telefonbog';
+$strPhp = 'Fremstil PHP-kode';
+$strPHPVersion = 'PHP-version';
+$strPleaseSelectPrimaryOrUniqueKey = 'Vælg venligst den primære nøgle eller en unik nøgle';
+$strPmaDocumentation = 'phpMyAdmin dokumentation';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> direktivet SKAL være sat i din konfigurationsfil!';
+$strPolish = 'Polsk';
+$strPortrait = 'Stående';
+$strPos1 = 'Start';
+$strPrevious = 'Forrige';
+$strPrimaryKeyHasBeenDropped = 'Primærnøglen er slettet';
+$strPrimaryKeyName = 'Navnet på primærnøglen skal være... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>skal</b> være navnet på og <b>kun på</b> en primær nøgle!)';
+$strPrimary = 'Primær';
+$strPrint = 'Print';
+$strPrintViewFull = 'Udskrift-visning (med fulde tekster)';
+$strPrintView = 'Vis (udskriftvenlig)';
+$strPrivDescAllPrivileges = 'Inkluderer alle privilegier pånær GRANT.';
+$strPrivDescAlterRoutine = 'Tillader ændring og sletning af gemte rutiner.';
+$strPrivDescAlter = 'Tillader ændring af strukturen på eksisterende tabeller.';
+$strPrivDescCreateDb = 'Tillader oprettelse af nye databaser og tabeller.';
+$strPrivDescCreateRoutine = 'Tillader oprettelse af gemte rutiner.';
+$strPrivDescCreateTbl = 'Tillader oprettelse af nye tabeller.';
+$strPrivDescCreateTmpTable = 'Tillader oprettelse af midlertidige tabeller.';
+$strPrivDescCreateUser = 'Tillader oprettelse, sletning og omdøbning af brugerkonti.';
+$strPrivDescCreateView = 'Tillader oprettelse af nye Allows creating new views.';
+$strPrivDescDelete = 'Tillader sletning af data.';
+$strPrivDescDropDb = 'Tillader at droppe databaser og tabeller.';
+$strPrivDescDropTbl = 'Tillader at droppe tabeller.';
+$strPrivDescExecute5 = 'Tillader udførelse af gemte rutiner.';
+$strPrivDescExecute = 'Tillader kørsel af gemte procedurer; Har ingen effekt i denne MySQL-version.';
+$strPrivDescFile = 'Tillader import af data fra og eksport af data til filer.';
+$strPrivDescGrant = 'Tillader oprettelse af brugere og privilegier uden at genindlæse privilegie-tabellerne.';
+$strPrivDescIndex = 'Tillader at skabe og droppe indeks.';
+$strPrivDescInsert = 'Tillader indsættelse og erstatning af data.';
+$strPrivDescLockTables = 'Tillader låsning af tabeller for nuværende tråd.';
+$strPrivDescMaxConnections = 'Begrænser antallet af nye forbindelser brugeren må åbne pr. time.';
+$strPrivDescMaxQuestions = 'Begrænser antallet af forespørgsler brugeren må sende til serveren pr. time.';
+$strPrivDescMaxUpdates = 'Begrænser antallet af kommandoer som ændrer enhver tabel eller database brugeren må udføre pr. time.';
+$strPrivDescMaxUserConnections = 'Begrænser antallet af samtidige forbindelser brugere må have.';
+$strPrivDescReferences = 'Har ingen effekt i denne MySQL version.';
+$strPrivDescReload = 'Tillader genindlæsning af serverindstillinger og tømning af caches.';
+$strPrivDescReplClient = 'Giver brugeren rettigheder til at spørge hvor Slaves / Masters er.';
+$strPrivDescReplSlave = 'Nødvendigt for replikationsslaverne.';
+$strPrivDescSelect = 'Tillader læsning af data.';
+$strPrivDescShowDb = 'Giver adgang til den fuldstændige liste over databaser.';
+$strPrivDescShowView = 'Tillader udførelse af SHOW CREATE VIEW forespørgsler.';
+$strPrivDescShutdown = 'Tillader nedlukning af serveren.';
+$strPrivDescSuper = 'Tillader forbindelse, selv hvis maksimalt antal forbindelser er nået; Nødvendigt for de fleste administrative operationer som indstilling af globale variabler eller for at dræbe andre brugeres tråde.';
+$strPrivDescUpdate = 'Tillader ændring af data.';
+$strPrivDescUsage = 'Ingen privilegier.';
+$strPrivileges = 'Privilegier';
+$strPrivilegesReloaded = 'Privilegierne blev korrekt genindlæst.';
+$strProcedures = 'Procedurer';
+$strProcesses = 'Processer';
+$strProcesslist = 'Procesliste';
+$strProtocolVersion = 'Protokolversion';
+$strPutColNames = 'Indsæt feltnavne i første række';
+
+$strQBEDel = 'Del (Slet)';
+$strQBE = 'Foresp. via eks.';
+$strQBEIns = 'Ins (Indsæt)';
+$strQueryCache = 'Forespørgsel-mellemlager';
+$strQueryFrame = 'Foresp. vindue';
+$strQueryOnDb = 'SQL-forespørgsel til database <b>%s</b>:';
+$strQueryResultsOperations = 'Forespørgselsresultat operationer';
+$strQuerySQLHistory = 'SQL-historik';
+$strQueryStatistics = '<b>Forespørgselsstatistikker</b>: Siden opstarten er der blevet sendt %s forespørgsler til serveren.';
+$strQueryTime = 'Forepørgsel tog %01.4f sek';
+$strQueryType = 'Forespørgselstype';
+$strQueryWindowLock = 'Overskriv ikke denne forespørgsel fra udenfor vinduet';
+
+$strReadRequests = 'Read-anmodninger';
+$strReceived = 'Modtaget';
+$strRecommended = 'anbefalet';
+$strRecords = 'Poster';
+$strReferentialIntegrity = 'Check reference-integriteten';
+$strRefresh = 'Opdatér';
+$strRelationalSchema = 'Relationel skematik';
+$strRelationNotWorking = 'De ekstra features for at arbejde med linkede tabeller er deaktiveret. For at se hvorfor, klik %sher%s.';
+$strRelationDeleted = 'Relation slettet';
+$strRelationsForTable = 'RELATIONS FOR TABLE (Relationer for tabellen)';
+$strRelations = 'Relationer';
+$strRelationView = 'Se Relationer';
+$strReloadingThePrivileges = 'Genindlæs privilegierne';
+$strReloadPrivileges = 'Genindlæs privilegier';
+$strReload = 'Genindlæs';
+$strRemoveSelectedUsers = 'Fjern valgte brugere';
+$strRenameDatabaseOK = 'Database %s er blevet omdøbt til %s';
+$strRenameTableOK = 'Tabellen %s er nu omdøbt til %s';
+$strRenameTable = 'Omdøb tabel til';
+$strRepairTable = 'Reparer tabel';
+$strReplaceNULLBy = 'Erstat NULL med';
+$strReplaceTable = 'Erstat data i tabellen med filens data';
+$strReplication = 'Replikering';
+$strReset = 'Nulstil';
+$strResourceLimits = 'Ressourcebegrænsninger';
+$strReType = 'Skriv igen';
+$strRevokeAndDeleteDescr = 'Bruger(e) vil fortsat have USAGE-privilegiet indtil privilegierne genindlæses.';
+$strRevokeAndDelete = 'Tilbagekald alle aktive privilegier fra brugerne og slet dem efterfølgende.';
+$strRevokeMessage = 'Du har tilbagekaldt privilegierne for %s';
+$strRevoke = 'Tilbagekald';
+$strRomanian = 'Rumænsk';
+$strRoutineReturnType = 'Retur type';
+$strRoutines = 'Rutiner';
+$strRowLength = 'Rækkelængde';
+$strRowsFrom = 'rækker startende fra post #';
+$strRowSize = ' Rækkestørrelse ';
+$strRowsModeFlippedHorizontal = 'horisontalt (roterede overskrifter)';
+$strRowsModeHorizontal = 'vandret';
+$strRowsModeOptions = '%s og gentag overskrifter efter %s celler';
+$strRowsModeVertical = 'lodret';
+$strRows = 'Rækker';
+$strRowsStatistic = 'Række-statistik';
+$strRunning = 'kører på %s';
+$strRunQuery = 'Send forespørgsel';
+$strRunSQLQuery = 'Kør SQL-forspørgsel(er) på database %s';
+$strRunSQLQueryOnServer = 'Kør SQL-forespørgsel/forespørgsler på server %s';
+$strRussian = 'Russisk';
+
+$strSaveOnServer = 'Gem på serveren i mappen %s ';
+$strSavePosition = 'Gem position';
+$strSave = 'Gem';
+$strScaleFactorSmall = 'Skaleringsfaktoren er for lille til at tilpasse skematikken til en side';
+$strSearchFormTitle = 'Søg i databasen';
+$strSearchInTables = 'Indeni tabel(ler):';
+$strSearchNeedle = 'Ord eller værdi(er) (jokertegn: "%"):';
+$strSearchOption1 = 'mindst et af ordene';
+$strSearchOption2 = 'alle ordene';
+$strSearchOption3 = 'den nøjagtige sætning';
+$strSearchOption4 = 'som regulært udtryk';
+$strSearchResultsFor = 'Søgeresultater for "<i>%s</i>" %s:';
+$strSearch = 'Søg';
+$strSearchType = 'Find:';
+$strSecretRequired = 'Konfigurationsfilen skal nu bruge et hemmeligt kodeord (blowfish_secret).';
+$strSelectADb = 'Vælg en database';
+$strSelectAll = 'Vælg alle';
+$strSelectBinaryLog = 'Vælg binærlog til gennemsyn';
+$strSelectFields = 'Vælg mindst eet felt:';
+$strSelectForeignKey = 'Vælg fremmednøgle';
+$strSelectNumRows = 'i forespørgsel';
+$strSelectReferencedKey = 'Vælg refereret nøgle';
+$strSelectTables = 'Vælg Tabeller';
+$strSend = 'Send (download)';
+$strSent = 'Sendt';
+$strServerChoice = 'Server valg';
+$strServerNotResponding = 'Serveren svarer ikke';
+$strServer = 'Server';
+$strServers = 'Servere';
+$strServerStatusDelayedInserts = 'Forsinkede inserts';
+$strServerStatus = 'Runtime-information';
+$strServerStatusUptime = 'Denne MySQL-server har kørt i %s. Den startede op den %s.';
+$strServerTabVariables = 'Variabler';
+$strServerTrafficNotes = '<b>Servertrafik</b>: Disse tabeller viser netværkstrafik-statistikkerne for denne MySQL-server siden dens opstart.';
+$strServerVars = 'Server-variabler og indstillinger';
+$strServerVersion = 'Serverversion';
+$strSessionStartupErrorGeneral = 'Kan ikke starte session uden fejl, tjek venligst fejl i din PHP og/eller webserver log fil og konfigurer din PHP installation ordentligt.';
+$strSessionValue = 'Sessionsværdi';
+$strSetEnumVal = 'Hvis et felt er af typen "enum" eller "set", skal værdierne angives på formen: \'a\',\'b\',\'c\'...<br />Skulle du få brug for en backslash ("\") eller et enkelt anførselstegn ("\'") blandt disse værdier, så tilføj en ekstra backslash (fx \'\\\\xyz\' eller \'a\\\'b\').';
+$strShowAll = 'Vis alle';
+$strShowColor = 'Vis farve';
+$strShowDatadictAs = 'Data Dictionary-format';
+$strShowFullQueries = 'Vis fuldstændige forespørgsler';
+$strShowGrid = 'Vis gitter';
+$strShowHideLeftMenu = 'Vis/skjul venstre menu';
+$strShowingBookmark = 'Viser bogmærke';
+$strShowingPhp = 'Viser som PHP-kode';
+$strShowingRecords = 'Viser poster ';
+$strShowingSQL = 'Viser SQL-forespørgsel';
+$strShowOpenTables = 'Vis åbne tabeller';
+$strShowPHPInfo = 'Vis PHP-information';
+$strShow = 'Vis';
+$strShowSlaveHosts = 'Vis slaveværter';
+$strShowSlaveStatus = 'Vis slavestatus';
+$strShowStatusBinlog_cache_disk_useDescr = 'Antal transaktioner der brugte det midlertidige binære log mellemlager, men overskred værdien for binlog_cache_size og brugte en midlertidig fil til at gemme statements fra transaktionen.';
+$strShowStatusBinlog_cache_useDescr = 'Antal transaktioner der brugte det midlertidige binære log mellemlager.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Antal midlertidige tabeller på disken oprettet automatisk af serveren under udførelse af statements. Hvis Created_tmp_disk_tables er stor, skal du overveje at forøge tmp_table_size værdien for at gøre midlertidige tabeller hukommelses-baserede i stedet for disk-baserede.';
+$strShowStatusCreated_tmp_filesDescr = 'Hvor mange midlertidige filer mysqld har oprettet.';
+$strShowStatusCreated_tmp_tablesDescr = 'Antal i-hukommelsen midlertidige tabeller oprettet automatisk af serveren under udførelse af statements.';
+$strShowStatusDelayed_errorsDescr = 'Antal rækker skrevet med INSERT DELAYED (forsinket indsættelse) under hvilke der opstod fejl (sandsynligvis dublerede nøgler).';
+$strShowStatusDelayed_insert_threadsDescr = 'Antallet af INSERT DELAYED handler-tråde i brug. Hver forskellig tabel hvorpå en bruger INSERT DELAYED får sin egen tråd.';
+$strShowStatusDelayed_writesDescr = 'Antallet af INSERT DELAYED rækker skrevet.';
+$strShowStatusFlush_commandsDescr = 'Antallet af udførte FLUSH statements.';
+$strShowStatusHandler_commitDescr = 'Antallet af interne COMMIT statements.';
+$strShowStatusHandler_deleteDescr = 'Antallet af gange en række blev slettet fra en tabel.';
+$strShowStatusHandler_discoverDescr = 'MySQL serveren kan spørge en NDB Cluster storage engine om den kender til en tabel med et givent navn. Dette kaldes opdagelse. Handler_discover indikerer antallet af gange tabeller er blevet opdaget.';
+$strShowStatusHandler_read_firstDescr = 'Antallet af gange første indlæg blev læst fra et indeks. Hvis denne er høj, antyder det at serveren laver mange fulde indeks scans; for eksempel, SELECT col1 FROM foo, antagende at col1 er indekseret.';
+$strShowStatusHandler_read_keyDescr = 'Antallet af anmodninger om at læse en række baseret på en nøgle. Hvis denne er høj, er det en god indikation af at dine forespørgsler og tabeller er ordentligt indekserede.';
+$strShowStatusHandler_read_nextDescr = 'Antallet af anmodninger om at læse næste række i nøgleorden. Denne forøges hvis du forespørger på en indekskolonne med en range-begrænsning eller hvis du udfører et indeks scan.';
+$strShowStatusHandler_read_prevDescr = 'Antallet af anmodninger om at læse foregående række i nøgleorden. Denne læsemetode bruges hovedsageligt til at optimere ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Antallet af anmodninger om at læse en række baseret på en fast position. Denne er høj hvis du laver mange forespørgsler der kræver sortering af resultatet. Du har sandsynligvis mange forespørgsler der forlanger at MySQL scanner hele tabeller eller du har joins der ikke bruger nøgler ordentligt.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Antallet af anmodninger om læsning af næste række i datafilen. Denne er høj hvis du laver mange tabelscanninger. Generelt antyder dette at dine tabeller enten ikke er ordentligt indekserede eller at dine forespørgsler ikke er skrevet til at drage fordel af de indeks du har.';
+$strShowStatusHandler_rollbackDescr = 'Antallet af interne ROLLBACK statements.';
+$strShowStatusHandler_updateDescr = 'Antallet af anmodninger om at opdatere en række i en tabel.';
+$strShowStatusHandler_writeDescr = 'Antallet af anmodninger om at indsætte en række i en tabel.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Antallet af sider der indeholder data (beskidte eller rene).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Antallet af såkaldt beskidte sider.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Antallet af buffer pool sider der er anmodet om at skulle flushes.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Antallet af frie sider.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Antallet af eksklusivt låste (latched) sider i InnoDB buffer pool. Dette er sider der i øjeblikket læses eller skrives eller som ikke kan flushes eller fjernes af andre årsager.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Antallet af travle sider fordi de er blevet allokeret til administrativ overhead så som rækkelåse eller det adaptive hash indeks. Denne værdi kan også beregnes som Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total størrelse på buffer pool, i sider.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Antallet af "tilfældige" read-aheads InnoDB initierede. Dette sker når en forespørgsel skal scanne en større del af en tabel men i tilfældig rækkefølge.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Antallet af sekventielle read-aheads InnoDB initierede. Dette sker når InnoDB laver en sekventiel fuld tabelscanning.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Antallet af logiske read anmodninger InnoDB har lavet.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Antallet af logiske reads som InnoDB ikke kunne tilfredsstille fra buffer pool og måtte lave en enkelt-side read.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalt sker skrivninger til InnoDB buffer poolen i baggrunden. Men, hvis der er brug for at læse eller oprette en side og der ikke er nogen rene sider tilgængelige, er det nødvendigt at vente på at der bliver flushet sider først. Denne tæller tæller hvor mange gange det er sket. Hvis buffer pool størrelsen er sat ordentligt, skulle denne værdi være lille.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Antallet af skrivninger til InnoDB buffer poolen.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Antallet af fsync() operationer indtil nu.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Nuværende antal ventende fsync() operationer.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Nuværende antal af ventende reads.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Nuværende antal af ventende writes.';
+$strShowStatusInnodb_data_readDescr = 'Mængden af data læst indtil nu, i bytes.';
+$strShowStatusInnodb_data_readsDescr = 'Det totale antal af data reads.';
+$strShowStatusInnodb_data_writesDescr = 'Det totale antal af data writes.';
+$strShowStatusInnodb_data_writtenDescr = 'Mængden af data skrevet indtil nu, i bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Antallet af doublewrite skrivninger der er udført og antallet af sider der er blevet skrevet til dette formål.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Antallet af doublewrite skrivninger der er udført og antallet af sider der er blevet skrevet til dette formål.';
+$strShowStatusInnodb_log_waitsDescr = 'Antallet af waits vi har haft fordi log buffer var for lille og vi skulle vente på at den blev flushed før vi kunne fortsætte.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Antallet af log write anmodninger.';
+$strShowStatusInnodb_log_writesDescr = 'Antallet af fysiske skrivninger til log filen.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Antallet af fsyncs skrivninger lavet til log filen.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Antallet af ventende log fil fsyncs.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Ventende log fil skrivninger.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Antallet af bytes skrevet til log filen.';
+$strShowStatusInnodb_pages_createdDescr = 'Antallet af sider oprettet.';
+$strShowStatusInnodb_page_sizeDescr = 'Den indkompilerede InnoDB sidestørrelse (standard 16KB). Mange værdier tælles i sider; sidestørrelsen gør at man let kan omregne dem til bytes.';
+$strShowStatusInnodb_pages_readDescr = 'Antallet af sider læst.';
+$strShowStatusInnodb_pages_writtenDescr = 'Antallet af sider skrevet.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Antallet af rækkelåse der ventes på i øjeblikket.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Gennemsnitstiden for at få en rækkelås, i millisekunder.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Total tid brugt på at hente rækkelåse, i millisekunder.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maksimale tid for at hente en rækkelås, i millisekunder.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Antallet af gange der skulle ventes på en rækkelås.';
+$strShowStatusInnodb_rows_deletedDescr = 'Antallet af rækker slettet fra InnoDB tabeller.';
+$strShowStatusInnodb_rows_insertedDescr = 'Antallet af rækker indsat i InnoDB tabeller.';
+$strShowStatusInnodb_rows_readDescr = 'Antallet af rækker læst fra InnoDB tables.';
+$strShowStatusInnodb_rows_updatedDescr = 'Antallet af rækker opdateret i InnoDB tabeller.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Antallet af nøgleblokeringer i nøglemellemlageret der har ændret sig men endnu ikke er blevet flushet til disk. Det hed tidligere Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Antallet af ubrugte blokke i nøglemellemlageret. Du kan bruge denne værdi til at fastslå hvor meget af nøglemellemlagere der er i brug.';
+$strShowStatusKey_blocks_usedDescr = 'Antallet af brugte blokke i nøglemellemlageret. Denne værdi er et højvande-mærke der indikerer det maksimale antal blokke der på noget tidspunkt har været i brug på en gang.';
+$strShowStatusKey_read_requestsDescr = 'Antallet af anmodninger om at læse en nøgleblok fra mellemlageret.';
+$strShowStatusKey_readsDescr = 'Antallet af fysiske læsninger af en nøgleblok fra disk. Hvis Key_reads er stor, er din key_buffer_size værdi sandsynligvis for lille. Mellemlager miss raten kan beregnes som Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Antallet af anmodninger om at skrive en nøgleblok til mellemlageret.';
+$strShowStatusKey_writesDescr = 'Antallet af fysiske skrivninger af en nøgleblok til disk.';
+$strShowStatusLast_query_costDescr = 'Totale omkostninger for den seneste kompilerede forespørgsel som beregnet af forespørgsels-optimeringsrutinen. Brugbart til at sammenligne omkostninger på forskellige forespørgselsplaner for den samme forespørgsel. En standardværdi på 0 betyder at der ikke er kompileret nogen forespørgsler endnu.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Antallet af rækker der venter på at blive skrevet i INSERT DELAYED køer.';
+$strShowStatusOpened_tablesDescr = 'Antallet af tabeller der er blevet åbnet. Hvis åbnede tabeller er stor, er dit tabelmellemlager sandsynligvis for lille.';
+$strShowStatusOpen_filesDescr = 'Antallet af filer der er åbne.';
+$strShowStatusOpen_streamsDescr = 'Antallet af streams der er åbne (bruges hovedsageligt til logning).';
+$strShowStatusOpen_tablesDescr = 'Antallet af tabeller der er åbne.';
+$strShowStatusQcache_free_blocksDescr = 'Antallet af frie hukommelsesblokke i forespørgsels-mellemlageret.';
+$strShowStatusQcache_free_memoryDescr = 'Mængden af fri hukommelse til forespørgselsmellemlageret.';
+$strShowStatusQcache_hitsDescr = 'Antallet af mellemlager hits.';
+$strShowStatusQcache_insertsDescr = 'Antallet af forespørgsler tilføjet til mellemlageret.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Antallet af forespørgsler der er blevet fjernet fra mellemlageret for at rydde hukommelse til mellemlagring af nye forespørgsler. Denne information kan hjælpe dig med at tune forespørgselsmellemlagerets størrelse. Forespørgselsmellemlageret bruger en mindst nyligt brugt (LRU) strategi til at afgøre hvilke forespørgsler der skal fjernes fra mellemlageret.';
+$strShowStatusQcache_not_cachedDescr = 'Antallet af ikke-mellemlagrede forespørgsler (ikke mulige at mellemlagre eller ikke mellemlagret grundet query_cache_type indstillingen).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Antallet af forespørgsler registreret i mellemlageret.';
+$strShowStatusQcache_total_blocksDescr = 'Totalt antal blokke i forespørgsels-mellemlageret.';
+$strShowStatusReset = 'Nulstil';
+$strShowStatusRpl_statusDescr = 'Status på failsafe replikering (endnu ikke implementeret).';
+$strShowStatusSelect_full_joinDescr = 'Antallet af joins der ikke bruger indeks. Hvis denne værdi ikke er 0, bør du nøje tjekke indeksene på dine tabeller.';
+$strShowStatusSelect_full_range_joinDescr = 'Antallet af joins der brugte en range søgning på en reference tabel.';
+$strShowStatusSelect_range_checkDescr = 'Antallet af joins uden nøgler der tjekker for nøglebrug efter hver række. (Hvis denne ikke er 0, bør du nøje tjekke indeks på dine tabeller.)';
+$strShowStatusSelect_rangeDescr = 'Antallet af joins der brugte ranges på den første tabel. (Normalt ikke kritisk selvom tallet er stort.)';
+$strShowStatusSelect_scanDescr = 'Antallet af joins som lavede en fuld scan af den første tabel.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Antallet af midlertidige tabeller i øjeblikket åbne af SQL tråden.';
+$strShowStatusSlave_retried_transactionsDescr = 'Totalt (siden opstart) antal gange replikeringsslave SQL tråden har gen-forsøgt transaktioner.';
+$strShowStatusSlave_runningDescr = 'Dette er TIL hvis denne server er en slave der er forbundet til en master.';
+$strShowStatusSlow_launch_threadsDescr = 'Antallet af tråde der har taget mere end slow_launch_time sekunder at oprette.';
+$strShowStatusSlow_queriesDescr = 'Antallet af forespørgsler der har taget mere end long_query_time sekunder.';
+$strShowStatusSort_merge_passesDescr = 'Antallet af sammenlægningskørsler sorteringsalgoritmen skulle lave. Hvis denne værdi er høj, bør du overveje at forøge værdien af sort_buffer_size systemvariablen.';
+$strShowStatusSort_rangeDescr = 'Antallet af sorteringer lavet med ranges.';
+$strShowStatusSort_rowsDescr = 'Antallet af sorterede rækker.';
+$strShowStatusSort_scanDescr = 'Antallet af sorteringer udført ved scanning af tabellen.';
+$strShowStatusTable_locks_immediateDescr = 'Antallet af gange en tabellås blev givet øjeblikkeligt.';
+$strShowStatusTable_locks_waitedDescr = 'Antallet af gange en tabellås ikke kunne fås øjeblikkeligt og en wait var nødvendig. Hvis denne er høj, og du har ydelsesproblemer, bør du først optimere dine forespørgsler, og derefter enten opdele din tabel eller tabeller, eller bruge replikering.';
+$strShowStatusThreads_cachedDescr = 'Antallet af tråde i tråd-mellemlageret. Mellemlager-hitraten kan udregnes som Threads_created/Forbindelser. Hvis denne værdi er rød bør du forøge din thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Antallet af i øjeblikket åbne forbindelser.';
+$strShowStatusThreads_createdDescr = 'Antallet af tråde oprettet til at håndtere forbindelser. Hvis Threads_created er stor, kan du vælge at forøge thread_cache_size værdien. (Normalt giver dette ingen nævneværdig ydelsesforbedring hvis du har god tråd-implementering.)';
+$strShowStatusThreads_runningDescr = 'Antallet af tråde der ikke sover.';
+$strShowTableDimension = 'Vis tabellernes dimensioner';
+$strShowTables = 'Vis tabeller';
+$strShowThisQuery = ' Vis forespørgslen her igen ';
+$strSimplifiedChinese = 'Simplificeret Kinesisk';
+$strSingly = '(enkeltvis)';
+$strSize = 'Størrelse';
+$strSkipQueries = 'Antal poster (queries) der skal springes over fra start';
+$strSlovak = 'Slovakisk';
+$strSlovenian = 'Slovensk';
+$strSmallBigAll = 'Små/store alle';
+$strSnapToGrid = 'Snap til gitter';
+$strSocketProblem = '(eller den lokale MySQL servers socket er ikke korrekt konfigureret)';
+$strSortByKey = 'Sorteringsnøgle';
+$strSorting = 'Sortering';
+$strSort = 'Sorter';
+$strSpaceUsage = 'Pladsforbrug';
+$strSpanish = 'Spansk';
+$strSplitWordsWithSpace = 'Ord adskilles af mellemrums-karakter (" ").';
+$strSQLCompatibility = 'SQL-kompatibilitetsmodus';
+$strSQLExportType = 'Eksporttype';
+$strSQLParserBugMessage = 'Det er muligt at du har fundet en fejl i SQL-parseren. Undersøg venligst din forespørgsel nøje, og check at anførselstegn er rigtige og ikke giver konflikter. Andre fejlårsager kan være at du uploader en fil med binær udenfor et lukket tekstområde. Du kan også prøve din forespørgsel i MySQL kommandolinje-interfacet. MySQL-serverens fejlmelding der følger herunder, hvis der er nogen, kan også hjælpe dig med at finde problemet. Hvis du stadig har probemer eller hvis parseren fejler hvor kommandolinjeinterfacet lykkes, reducer din SQL-forespørgselsinput til den ene forespørgsel der forårsager problemet, og indsend en fejlrapport med datablokken i KLIP-sektionen herunder:';
+$strSQLParserUserError = 'Der ser ud til at være en fejl i din SQL-forespørgsel. MySQL-serverens fejlmelding der følger herunder, hvis der er nogen, kan også hjælpe dig med at finde problemet.';
+$strSQLQuery = 'SQL-forespørgsel';
+$strSQLResult = 'SQL-resultat';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Ugyldig identifikator';
+$strSQPBugUnclosedQuote = 'Ikke-lukket quote';
+$strSQPBugUnknownPunctuation = 'Ukendt tegnsætnings-streng';
+$strStandInStructureForView = 'Stand-in-struktur for visning';
+$strStatCheckTime = 'Sidste check';
+$strStatCreateTime = 'Oprettelse';
+$strStatement = 'Erklæringer';
+$strStatisticsOverrun = 'På en travl server er der risiko for at bytetællerne løber over, så disse statistikker som rapporteret af MySQL-serveren kan være forkerte.';
+$strStatUpdateTime = 'Sidste opdatering';
+$strStatus = 'Status';
+$strStorageEngine = 'Datalager';
+$strStorageEngines = 'Datalagre';
+$strStrucCSV = 'CSV-data';
+$strStrucData = 'Struktur og data';
+$strStrucExcelCSV = 'CSV til MS Excel-data';
+$strStrucNativeExcel = 'Fødte MS Excel-data';
+$strStrucOnly = 'Kun strukturen';
+$strStructPropose = 'Foreslå tabelstruktur';
+$strStructureForView = 'Struktur for visning';
+$strStructure = 'Struktur';
+$strSubmit = 'Send';
+$strSuccess = 'Din SQL-forespørgsel blev udført korrekt';
+$strSum = 'Sum';
+$strSwedish = 'Svensk';
+$strSwitchToDatabase = 'Skift til den kopierede database';
+$strSwitchToTable = 'Skift til den kopierede tabel';
+
+$strTableAlreadyExists = 'Table %s already exists!';
+$strTableComments = 'Tabel kommentarer';
+$strTableEmpty = 'Intet tabelnavn!';
+$strTableHasBeenDropped = 'Tabel %s er slettet';
+$strTableHasBeenEmptied = 'Tabel %s er tømt';
+$strTableHasBeenFlushed = 'Tabel %s er blevet flushet';
+$strTableIsEmpty = 'Tabel ser ud til at være tom';
+$strTableMaintenance = 'Tabelvedligeholdelse';
+$strTableName = 'Tabelnavn';
+$strTableOfContents = 'Indholdsfortegnelse';
+$strTableOptions = 'Tabel-indstillinger';
+$strTables = '%s tabel(ler)';
+$strTableStructure = 'Struktur-dump for tabellen';
+$strTable = 'Tabel';
+$strTakeIt = 'Vælg dette';
+$strTblPrivileges = 'Tabel-specifikke privilegier';
+$strTempData = 'Midlertidige data';
+$strTextAreaLength = ' På grund af feltets længde,<br /> kan det muligvis ikke ændres ';
+$strThai = 'Thai';
+$strThemeDefaultNotFound = 'Standardtema %s ikke fundet!';
+$strThemeNoPreviewAvailable = 'Intet billede til rådighed.';
+$strThemeNotFound = 'Tema %s ikke fundet!';
+$strThemeNoValidImgPath = 'Ingen gyldig billedsti for tema %s fundet!';
+$strThemePathNotFound = 'Sti til tema ikke fundet for tema %s!';
+$strTheme = 'Tema / Layout';
+$strThisHost = 'Denne Host';
+$strThreads = 'Tråde';
+$strThreadSuccessfullyKilled = 'Tråd %s blev stoppet.';
+$strTimeoutInfo = 'Foregående import timede ud, efter genindsendelse vil fortsætte fra position %d.';
+$strTimeoutNothingParsed = 'Desværre blev der ikke parset nogen data ved sidste kørsel, dette betyder normalt at phpMyAdmin ikke vil være i stand til at gennemføre importen med mindre du forøger PHP-tidsbegrænsningerne.';
+$strTimeoutPassed = 'Script timeout nået, hvis du vil afslutte importen, indsend venligst samme fil igen og importen vil fortsætte hvor den slap.';
+$strTime = 'Tid';
+$strToFromPage = 'til/fra side';
+$strToggleScratchboard = 'tegnebræt til/fra';
+$strToggleSmallBig = 'Skift mellem små/store';
+$strToSelectRelation = 'For at vælge relation, klik :';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'Traditionelt Kinesisk';
+$strTraditionalSpanish = 'Traditionelt Spansk';
+$strTraffic = 'Trafik';
+$strTransactionCoordinator = 'Transaktionskoordinator';
+$strTransformation_application_octetstream__download = 'Viser et link til at downloade et felts binære data. Første indstilling er filnavnet på den binære fil. Anden indstilling er et muligt feltnavn fra en tabelrække indeholdende filnavnet. Hvis du bruger anden indstilling, skal feltet i den første indstilling være sat til en tom streng.';
+$strTransformation_application_octetstream__hex = 'Viser hexadecimal udgave af data. Valgfrit førsteparameter angiver hvor meget plads der tilføjes (standard er 2 nibbles).';
+$strTransformation_image_jpeg__inline = 'Viser et klikbart minibillede; indstillinger: bredde,højde i pixel. Det originale perspektiv bevares.';
+$strTransformation_image_jpeg__link = 'Viser et link til dette billede (f.eks. direkte blob-download).';
+$strTransformation_image_png__inline = 'Se under image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Viser et TIME, TIMESTAMP, DATETIME eller numerisk unix tidsstempel-felt som formatteret dato. Den første indstilling er offset (i timer) som vil blive lagt til tidsstemplet (Standard: 0). Brug anden indstilling til at angive en anderledes dato-/tidsformatstreng. Tredje indstilling fastsætter om du vil se lokal dato eller UTC (brug "local" eller "utc" strenge) til dette. Ud fra dette har datoformatet forskellig værdi - for "local" se dokumentationen for PHP\'s strftime() funktion og for "utc" sker det ved brug af gmdate() funktionen.';
+$strTransformation_text_plain__external = 'KUN LINUX: Starter en ekstern applikation og føder feltdata via standard input. Returnerer standardoutputtet for applikationen. Standard er Tidy, for korrekt udskrivning af HTML-kode. Af sikkerhedsårsager er du nødt til manuelt at redigere filen libraries/transformations/text_plain__external.inc.php og indsætte de værktøjer du vil tillade kørsel af. Første indstilling er så nummeret på det program du vil bruge og den anden indstilling er parametrene for dette program. Tredie parameter vil, hvis sat til 1, konvertere outputtet vha. htmlspecialchars() (Standard er 1). Et fjerde parameter vil, hvis sat til 1, sætte et NOWRAP om cellens indhold så hele outputtet bliver vist uden omformattering (Standard 1)';
+$strTransformation_text_plain__formatted = 'Bevarer original formattering af feltet. Der laves ikke nogen Escaping.';
+$strTransformation_text_plain__imagelink = 'Viser et billede og et link, feltet indeholder filnavnet; første indstilling er et præfiks som "http://domain.com/", anden indstilling er bredde i pixel, tredie er højden.';
+$strTransformation_text_plain__link = 'Viser et link, feltet indeholder filnavnet; første indstilling er et præfiks som "http://domain.com/", anden indstilling er en titel på linket.';
+$strTransformation_text_plain__sql = 'Formatterer tekst som SQL-forespørgsel med syntaks farvemarkering.';
+$strTransformation_text_plain__substr = 'Viser en del af en streng. Første parameter er antal tegn der skal springes over fra begyndelsen af en streng (Standard 0). Andet parameter er antal tegn der returneres (Standard indtil enden af strengen). Det tredie parameter definerer hvilke tegn der skal føjes til foran eller efter outputtet når en substring (understreng) returneres (Standard: "...") .';
+$strTruncateQueries = 'Trunkér viste forespørgsler';
+$strTurkish = 'Tyrkisk';
+$strType = 'Datatype';
+
+$strUkrainian = 'Ukrainsk';
+$strUncheckAll = 'Fjern alle mærker';
+$strUnicode = 'Unicode';
+$strUnique = 'Unik';
+$strUnknown = 'ukendt';
+$strUnselectAll = 'Fravælg alle';
+$strUnsupportedCompressionDetected = 'Du forsøgte at indlæse en fil med u-understøttet komprimering (%s). Understøttelse af denne funktion er ikke implementeret eller ikke slået til for din konfiguration.';
+$strUpdatePrivMessage = 'Du har opdateret privilegierne for %s.';
+$strUpdateProfileMessage = 'Profilen er blevet opdateret.';
+$strUpdateQuery = 'Opdater forespørgsel';
+$strUpdComTab = 'Se venligst Dokumentationen for oplysninger om hvordan du opdaterer din Column_comments (kolonne-kommentarer) tabel';
+$strUpgrade = 'Du burde opdatere til %s %s eller senere.';
+$strUploadErrorCantWrite = 'Kunne ikke skrive fil til disk.';
+$strUploadErrorExtension = 'Filupload stoppet af udvidelse.';
+$strUploadErrorFormSize = 'Den uploadede fil overstiger MAX_FILE_SIZE direktivet som angivet i HTML-formularen.';
+$strUploadErrorIniSize = 'Den uploadede fil overstiger upload_max_filesize direktivet i php.ini.';
+$strUploadErrorNoTempDir = 'Mangler en midlertidig mappe.';
+$strUploadErrorPartial = 'Den uploadede fil blev kun delvist uploaded.';
+$strUploadErrorUnknown = 'Ukendt fejl i filupload.';
+$strUploadLimit = 'Du har sandsynligvis forsøgt at uploade en for stor fil. Se venligst %sdokumentationen%s for måder hvorpå du kan arbejde dig uden om denne begrænsning.';
+$strUploadsNotAllowed = 'Fil-uploads er ikke tilladte på denne server.';
+$strUsage = 'Benyttelse';
+$strUseBackquotes = 'Brug "backquotes" omkring tabeller og felters navne';
+$strUseHostTable = 'Brug Host Tabel';
+$strUserAlreadyExists = 'Brugeren %s findes i forvejen!';
+$strUser = 'Bruger';
+$strUserEmpty = 'Intet brugernavn!';
+$strUserName = 'Brugernavn';
+$strUserNotFound = 'Den valgte bruger blev ikke fundet i privilegietabellen.';
+$strUserOverview = 'Brugeroversigt';
+$strUsersDeleted = 'De valgte brugere er blevet korrekt slettet.';
+$strUsersHavingAccessToDb = 'Brugere med adgang til &quot;%s&quot;';
+$strUseTabKey = 'Brug TAB-tasten for at flytte dig fra værdi til værdi, eller CTRL+piletasterne til at flytte frit omkring';
+$strUseTables = 'Benyt tabeller';
+$strUseTextField = 'Brug tekstfelt';
+$strUseThisValue = 'Brug denne værdi';
+
+$strValidateSQL = 'Validér SQL';
+$strValidatorError = 'SQL-validatoren kunne ikke initialiseres. Check venligst at du har de nødvendige PHP-udvidelser installeret som beskrevet i %sdokumentationen%s.';
+$strValue = 'Værdi';
+$strVar = 'Variabel';
+$strVersionInformation = 'Versionsinformation';
+$strViewDumpDatabases = 'Vis dump (skema) for databaser';
+$strViewDumpDB = 'Vis dump (skema) af database';
+$strViewDump = 'Vis dump (skema) over tabel';
+$strViewHasBeenDropped = 'Visning %s er blevet droppet';
+$strViewName = 'VIEW navn';
+$strView = 'Visning';
+
+$strWebServerUploadDirectoryError = 'Mappen du har sat til upload-arbejde kan ikke findes';
+$strWebServerUploadDirectory = 'webserver upload-mappe';
+$strWelcome = 'Velkommen til %s';
+$strWestEuropean = 'Vesteuropæisk';
+$strWildcard = 'jokertegn';
+$strWindowNotFound = 'Det angivne browservindue kunne ikke opdateres. Måske har du lukket det overliggende vindue eller din browser blokerer for tvær-vindue opdateringer i sikkerhedsindstillingerne';
+$strWithChecked = 'Med det markerede:';
+$strWriteRequests = 'Write-anmodninger';
+$strWrongUser = 'Forkert brugernavn/kodeord. Adgang nægtet.';
+
+$strXML = 'XML';
+
+$strYes = 'Ja';
+
+$strZeroRemovesTheLimit = 'Bemærk: Indstilling af disse værdier til 0 (nul) fjerner begrænsningen.';
+$strZip = '"zippet"';
+
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/dutch-utf-8.inc.php b/lang/dutch-utf-8.inc.php
new file mode 100644
index 0000000000..26e78e6861
--- /dev/null
+++ b/lang/dutch-utf-8.inc.php
@@ -0,0 +1,1469 @@
+<?php
+/* $Id$ */
+
+/*
+ * Updated by "CaliMonk" <calimonk at gmx.net> on 2005/01/04.
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y om %H:%M';
+$timespanfmt = '%s dagen, %s uren, %s minuten en %s seconden';
+
+$strAbortedClients = 'Afgehaakte';
+$strAccessDeniedExplanation = 'phpMyAdmin probeerde met de MySQL server te verbinden maar de server weigerde de verbinding. Controleer de host, de gebruikersnaam en het wachtwoord in config.inc.php en zorg er voor dat deze overeenkomen met de informatie die u van de Beheerder van de MySQL server kreeg.';
+$strAccessDenied = 'Toegang geweigerd ';
+$strAction = 'Actie';
+$strAddAutoIncrement = 'Voeg AUTO_INCREMENT waarde toe';
+$strAddConstraints = 'Voeg beperkingen toe';
+$strAddDeleteColumn = 'Toevoegen/Verwijderen Veld Kolommen';
+$strAddDeleteRow = 'Toevoegen/Verwijderen Criteria Rij';
+$strAddFields = 'Voeg %s veld(en) toe';
+$strAddHeaderComment = 'Voeg een commentaar toe in de header (\\n om regels af te breken';
+$strAddIntoComments = 'Voeg toe in commentaar';
+$strAddNewField = 'Nieuw veld toevoegen';
+$strAddPrivilegesOnDb = 'Voeg privileges toe aan de volgende database';
+$strAddPrivilegesOnTbl = 'Voeg privileges toe aan de volgende tabel';
+$strAddSearchConditions = 'Zoek condities toevoegen (het "where" gedeelte van de query):';
+$strAddToIndex = 'Voeg &nbsp;%s&nbsp; kolom(men) toe aan index';
+$strAddUserMessage = 'U heeft een nieuwe gebruiker toegevoegd.';
+$strAddUser = 'Voeg een nieuwe gebruiker toe';
+$strAdministration = 'Administratie';
+$strAfterInsertBack = 'Terug';
+$strAfterInsertNewInsert = 'Voeg een nieuw record toe';
+$strAfterInsertNext = 'Bewerk volgende rij';
+$strAfterInsertSame = 'Ga terug naar deze pagina';
+$strAfter = 'Na %s';
+$strAll = 'Alle';
+$strAllTableSameWidth = 'Alle tabellen weergeven met dezelfde breedte?';
+$strAlterOrderBy = 'Wijzig het "Sorteren op/Order by" van de tabel';
+$strAnalyzeTable = 'Analyseer tabel';
+$strAnd = 'En';
+$strAnIndex = 'Een index is toegevoegd aan %s';
+$strAny = 'Elke'; //! Willekeurige?
+$strAnyHost = 'Een willekeurige host';
+$strAnyUser = 'Een willekeurige gebruiker';
+$strApproximateCount = 'Kan ongeveer zijn. Zie FAQ 3.11';
+$strAPrimaryKey = 'Een primaire sleutel is toegevoegd aan %s';
+$strArabic = 'Arabisch';
+$strArmenian = 'Armeens';
+$strAscending = 'Oplopend';
+$strAtBeginningOfTable = 'Aan het begin van de tabel';
+$strAtEndOfTable = 'Aan het eind van de tabel';
+$strAttr = 'Attributen';
+$strAutomaticLayout = 'Automatische lay-out';
+
+$strBack = 'Terug';
+$strBaltic = 'Baltisch';
+$strBeginCut = 'Begin KNIP';
+$strBeginRaw = 'Begin RAW';
+$strBinary = ' Binair ';
+$strBinaryDoNotEdit = ' Binair - niet aanpassen ';
+$strBinaryLog = 'Binaire log';
+$strBinLogEventType = 'Event type';
+$strBinLogInfo = 'Informatie';
+$strBinLogName = 'Log naam';
+$strBinLogOriginalPosition = 'Originele positie';
+$strBinLogPosition = 'Positie';
+$strBinLogServerId = 'Server ID';
+$strBookmarkAllUsers = 'Geef elke gebruiker toegang tot deze bookmark';
+$strBookmarkDeleted = 'De boekenlegger (Bookmark) is verwijderd.';
+$strBookmarkLabel = 'Label';
+$strBookmarkQuery = 'Opgeslagen SQL-query';
+$strBookmarkThis = 'Sla deze SQL-query op';
+$strBookmarkView = 'Alleen bekijken';
+$strBrowseForeignValues = 'Bekijk vreemde waardes';
+$strBrowse = 'Verkennen';
+$strBulgarian = 'Bulgaars';
+$strBzip = '"ge-bzipt"';
+
+$strCalendar = 'Kalender';
+$strCannotLogin = 'Kan niet inloggen op de MySQL server';
+$strCantLoad = 'Kan de [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a]-extensie niet laden. Controleer de PHP configuratie.';
+$strCantLoadRecodeIconv = 'Kan iconv of recode extensies niet laden die nodig zijn voor de Karakterset conversie, configureer php om deze extensies toe te laten of schakel Karakterset conversie uit in phpMyAdmin';
+$strCantRenameIdxToPrimary = 'Kan index niet naar PRIMARY hernoemen';
+$strCantUseRecodeIconv = 'Kan iconv, libiconv en recode_string functies niet gebruiken zolang de extensies geladen moeten worden. Controleer de php configuratie.';
+$strCardinality = 'Kardinaliteit';
+$strCaseInsensitive = 'hoofdletter ongevoelig';
+$strCaseSensitive = 'hoofdletter gevoelig';
+$strCentralEuropean = 'Centraal Europees';
+$strChangeCopyModeCopy = '... behoud de oude.';
+$strChangeCopyModeDeleteAndReload = ' ... verwijder de oude van de user tabellen en vernieuw de privileges achteraf.';
+$strChangeCopyModeJustDelete = ' ... verwijder de oude van de user tabellen.';
+$strChangeCopyMode = 'Maak een nieuwe gebruiker aan met dezelfde privileges en ...';
+$strChangeCopyModeRevoke = ' ... herstel alle actieve privileges van de oude en verwijder deze daarna.';
+$strChangeCopyUser = 'Wijzig de Login Informatie / Kopieer gebruiker';
+$strChangeDisplay = 'Kies weer te geven veld';
+$strChangePassword = 'Wijzig wachtwoord';
+$strChange = 'Veranderen';
+$strCharset = 'Karakterset';
+$strCharsetOfFile = 'Karakter set van het bestand:';
+$strCharsetsAndCollations = 'Karakter Sets en Collaties';
+$strCharsets = 'Karaktersets';
+$strCheckAll = 'Selecteer alles';
+$strCheckOverhead = 'Selecteer tabellen met overhead';
+$strCheckPrivs = 'Controleer privileges';
+$strCheckPrivsLong = 'Controleer privileges voor database &quot;%s&quot;.';
+$strCheckTable = 'Controleer tabel';
+$strChoosePage = 'Kies een pagina om aan te passen';
+$strColComFeat = 'Toon kolom commentaar';
+$strCollation = 'Collatie';
+$strColumnNames = 'Kolom namen';
+$strColumnPrivileges = 'Kolom-specifieke privileges';
+$strCommand = 'Commando';
+$strComments = 'Commentaar';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatibel';
+$strCompleteInserts = 'Invoegen voltooid';
+$strCompression = 'Compressie';
+$strConfigFileError = 'phpMyAdmin kon het configuratie bestand niet lezen! <br />Dit kan gebeuren als php een parse error in dit bestand aantreft of dit bestand helemaal niet gevonden kan worden.<br />Roep het configuratie bestand direct aan met de snelkoppeling hieronder en lees de php foutmelding(en). In de meeste gevallen ontbreekt er ergens bijvoorbeeld een quote.<br /> Wanneer er een blanco pagina wordt weergegeven zijn er geen problemen.';
+$strConfigureTableCoord = 'Configureer de coördinaten voor de tabel %s';
+$strConnectionError = 'Kan niet verbinden: ongeldige instellingen.';
+$strConnections = 'Connecties';
+$strConstraintsForDumped = 'Beperkingen voor gedumpte tabellen';
+$strConstraintsForTable = 'Beperkingen voor tabel';
+$strCookiesRequired = 'Cookies moeten aan staan voorbij dit punt.';
+$strCopyDatabaseOK = 'Database %s is gekopieerd naar %s';
+$strCopyTable = 'Kopieer tabel naar (database<b>.</b>tabel):';
+$strCopyTableOK = 'Tabel %s is gekopieerd naar %s.';
+$strCopyTableSameNames = 'Kan de tabel niet naar dezelfde kopiëren!';
+$strCouldNotKill = 'phpMyAdmin is er niet in geslaagd om de %s te sluiten.Waarschijnlijk is het al gesloten.';
+$strCreate = 'Aanmaken';
+$strCreateIndex = 'Creëer een index op kolommen&nbsp;%s&nbsp;';
+$strCreateIndexTopic = 'Creëer een nieuwe index';
+$strCreateNewDatabase = 'Nieuwe database aanmaken';
+$strCreateNewTable = 'Nieuwe tabel aanmaken in database %s';
+$strCreatePage = 'Creëer een nieuwe pagina';
+$strCreatePdfFeat = 'Aanmaken van PDF bestanden';
+$strCreationDates = 'Creatie/Update/Controleer datum';
+$strCriteria = 'Criteria';
+$strCroatian = 'Kroatisch';
+$strCyrillic = 'Cyrillisch';
+$strCzechSlovak = 'Tsjechische-Slowaak';
+$strCzech = 'Tsjechisch';
+
+$strDanish = 'Deens';
+$strDatabase = 'Database';
+$strDatabaseEmpty = 'De database naam is leeg!';
+$strDatabaseExportOptions = 'Database export opties';
+$strDatabaseHasBeenDropped = 'Database %s is vervallen.';
+$strDatabases = 'databases';
+$strDatabasesDropped = '%s databases zijn succesvol verwijderd.';
+$strDatabasesStats = 'Database statistieken';
+$strDatabasesStatsDisable = 'Statistieken uitzetten';
+$strDatabasesStatsEnable = 'Statistieken aanzetten';
+$strDatabasesStatsHeavyTraffic = 'Attentie: Indien u hier Database statistieken aanzet kan dit zorgen voor veel data verkeer tussen de webserver en de MySQL server.';
+$strData = 'Data';
+$strDataDict = 'Data Woordenboek';
+$strDataOnly = 'Alleen data';
+$strDBComment = 'Database commentaar: ';
+$strDBCopy = 'Kopieer database naar';
+$strDbPrivileges = 'Database-specifieke privileges';
+$strDBRename = 'Hernoem database naar';
+$strDbSpecific = 'database-specifiek';
+$strDefault = 'Standaardwaarde';
+$strDefaultValueHelp = 'Voer voor standaard waarden aub een enkele waarde in, zonder backslash of aanhalingstekens, gebruik makend van dit formaat: a';
+$strDefragment = 'Defragment tabel';
+$strDelayedInserts = 'Gebruik vertraagde inserts';
+$strDeleteAndFlushDescr = 'Dit is de nette manier, maar het vernieuwen van de privileges kan even duren.';
+$strDeleteAndFlush = 'Verwijder de gebruikers en vernieuw de privileges daarna.';
+$strDeleted = 'De rij is verwijderd';
+$strDelete = 'Verwijderen';
+$strDeleting = 'Verwijderen van %s';
+$strDelOld = 'De huidige pagina heeft referenties met tabellen die niet langer bestaan. Wilt u deze referenties verwijderen?';
+$strDescending = 'Aflopend';
+$strDescription = 'Beschrijving';
+$strDictionary = 'Woordenboek';
+$strDisabled = 'Uitgeschakeld';
+$strDisableForeignChecks = 'controle op vreemde sleutels uitschakelen';
+$strDisplayFeat = 'Toon Opties';
+$strDisplayOrder = 'Weergave volgorde:';
+$strDisplayPDF = 'Geef het PDF schema weer';
+$strDoAQuery = 'Voer een query op basis van een vergelijking uit (wildcard: "%")';
+$strDocu = 'Documentatie';
+$strDoYouReally = 'Weet u zeker dat u dit wilt ';
+$strDropDatabaseStrongWarning = 'U staat op het punt een complete database te DESTROY-en!';
+$strDropUsersDb = 'Verwijder de databases die dezelfde naam hebben als de gebruikers.';
+$strDrop = 'Verwijderen';
+$strDumpingData = 'Gegevens worden uitgevoerd voor tabel';
+$strDumpSaved = 'Dump is bewaard als %s.';
+$strDumpXRows = '%s rijen aan het dumpen, start bij rij %s.';
+$strDynamic = 'dynamisch';
+
+$strEditPDFPages = 'PDF Pagina\'s aanpassen';
+$strEditPrivileges = 'Wijzig rechten';
+$strEdit = 'Wijzigen';
+$strEffective = 'Effectief';
+$strEmpty = 'Legen';
+$strEmptyResultSet = 'MySQL gaf een lege resultaat set terug (0 rijen).';
+$strEnabled = 'Ingeschakeld';
+$strEncloseInTransaction = 'Sluit de export in een transactie';
+$strEndCut = 'Einde KNIP';
+$strEnd = 'Einde';
+$strEndRaw = 'Einde RAW';
+$strEnglish = 'Engels';
+$strEnglishPrivileges = ' Aantekening: de namen van de MySQL rechten zijn uitgelegd in het Engels ';
+$strError = 'Fout';
+$strEscapeWildcards = 'Wildcards _ en % moeten worden ge-escaped met een \ om ze letterlijk te gebruiken';
+$strEstonian = 'Estlands';
+$strExcelEdition = 'Excel editie';
+$strExecuteBookmarked = 'Voor de gebookmarkte query uit';
+$strExplain = 'Verklaar SQL';
+$strExport = 'Exporteer';
+$strExtendedInserts = 'Uitgebreide invoegingen';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Mislukte pogingen';
+$strFieldHasBeenDropped = 'Veld %s is vervallen';
+$strFieldsEnclosedBy = 'Velden ingesloten door';
+$strFieldsEscapedBy = 'Velden ontsnapt door';
+$strFieldsTerminatedBy = 'Velden beëindigd door';
+$strFields = 'Velden';
+$strField = 'Veld';
+$strFileAlreadyExists = 'Bestaand %s bestaat al op de server, verander de bestandsnaam of controleer overschrijf opties.';
+$strFileCouldNotBeRead = 'Bestand kon niet worden gelezen';
+$strFileNameTemplate = 'File naam template';
+$strFileNameTemplateRemember = 'Onthoud template';
+$strFixed = 'vast';
+$strFlushPrivilegesNote = 'Opmerking: phpMyAdmin krijgt de rechten voor de gebruikers uit de MySQL privileges tabel. De content van deze tabel kan verschillen met de rechten van de server als er handmatig aanpassingen zijn aangebracht. Mocht dit het geval zijn dan moet men %sde privilege tabel vernieuwen%s voordat men verder gaat.';
+$strFlushTable = 'Schoon de tabel ("FLUSH")';
+$strFormat = 'Formatteren';
+$strFormEmpty = 'Er ontbreekt een waarde in het formulier!';
+$strFullText = 'Volledige teksten';
+$strFunction = 'Functie';
+
+$strGenBy = 'Gegenereerd door';
+$strGeneralRelationFeat = 'Basis relatie opties';
+$strGenTime = 'Generatie Tijd';
+$strGeorgian = 'Georgisch';
+$strGerman = 'Duits';
+$strGlobal = 'globaal';
+$strGlobalPrivileges = 'Globale privileges';
+$strGlobalValue = 'Globale waarde';
+$strGo = 'Start';
+$strGrantOption = 'Toekennen';
+$strGreek = 'Grieks';
+$strGzip = '"ge-gzipt"';
+
+$strHasBeenAltered = 'is veranderd.';
+$strHaveToShow = 'Er moet ten minste 1 weer te geven kolom worden gekozen';
+$strHebrew = 'Hebreeuws';
+$strHome = 'Home';
+$strHomepageOfficial = 'Officiële phpMyAdmin Website';
+$strHostEmpty = 'De host naam is leeg!';
+$strHost = 'Host';
+$strHungarian = 'Hongaars';
+
+$strIcelandic = 'IJslands';
+$strId = 'ID';
+$strIdxFulltext = 'Volledige tekst';
+$strIgnoreInserts = 'Gebruik ignore inserts';
+$strIgnore = 'Negeer';
+$strImportFiles = 'Importeren bestanden';
+$strIndexes = 'Indexen';
+$strIndexHasBeenDropped = 'Index %s is vervallen';
+$strIndex = 'Index';
+$strIndexName = 'Index naam&nbsp;:';
+$strIndexType = 'Index type&nbsp;:';
+$strIndexWarningTable = 'Problemen met de index(en) van de tabel `%s`';
+$strInnodbStat = 'InnoDB Status';
+$strInsecureMySQL = 'Uw configuratie bestand bevat instellingen (root zonder wachtwoord) die betrekking hebben tot de standaard MySQL account. Uw MySQL server draait met deze standaard waardes, en is open voor ongewilde toegang, het wordt dus aangeraden dit op te lossen.';
+$strInsertAsNewRow = 'Voeg toe als nieuwe rij';
+$strInsert = 'Invoegen';
+$strInternalRelations = 'Interne relaties';
+$strInUse = 'in gebruik';
+
+$strJapanese = 'Japans';
+$strJumpToDB = 'Ga naar database &quot;%s&quot;.';
+$strJustDeleteDescr = 'De &quot;verwijderde&quot; gebruikers zullen de server kunnen gebruiken zoals altijd zolang de privileges nog niet zijn vernieuwd.';
+$strJustDelete = 'Verwijder gewoon de gebruikers van de privileges tabel.';
+
+$strKeepPass = 'Wijzig het wachtwoord niet';
+$strKeyname = 'Sleutel naam';
+$strKill = 'stop proces';
+$strKorean = 'Koreaans';
+
+$strLandscape = 'Landschap';
+$strLatexCaption = 'Tabel titel';
+$strLatexContent = 'Content van tabel __TABLE__';
+$strLatexContinuedCaption = 'Vervolgde tabel titel';
+$strLatexContinued = '(vervolgd)';
+$strLatexIncludeCaption = 'Voeg tabel titel toe';
+$strLatexLabel = 'Label sleutel';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Structuur van de tabel __TABLE__';
+$strLatvian = 'Lets';
+$strLengthSet = 'Lengte/Waardes*';
+$strLimitNumRows = 'records per pagina';
+$strLinesTerminatedBy = 'Regels beëindigd door';
+$strLinkNotFound = 'Link niet gevonden';
+$strLinksTo = 'Gelinkt naar';
+$strLithuanian = 'Litouws';
+$strLocalhost = 'lokaal';
+$strLocationTextfile = 'Locatie van het tekstbestand';
+$strLoginInformation = 'Login Informatie';
+$strLogin = 'Inloggen';
+$strLogout = 'Uitloggen';
+$strLogPassword = 'Wachtwoord:';
+$strLogServer = 'Server';
+$strLogUsername = 'Gebruikersnaam:';
+
+$strMaximumSize = 'Maximale grootte: %s%s';
+$strMbExtensionMissing = 'De mbstring PHP extensie werd niet gevonden en u lijkt een multibyte charset te gebruiken. Zonder de mbstring extensie kan phpMyAdmin strings niet correct splitsen wat tot onverwachte resultaten kan leiden.';
+$strMbOverloadWarning = 'U heeft mbstring.func_overload ingeschakeld in uw PHP configuratie. Deze optie is incompatibel met phpMyAdmin en kan ervoor zorgen dat sommige data corrupt raakt!';
+$strMIME_available_mime = 'Beschikbare MIME-types';
+$strMIME_available_transform = 'Beschikbare transformaties';
+$strMIME_description = 'Beschrijving';
+$strMIME_MIMEtype = 'MIME-type';
+$strMIME_nodescription = 'Geen beschrijving beschikbaar voor deze transformatie.<br />Raadpleeg de maker over wat %s doet.';
+$strMIME_transformation = 'Browser transformaties';
+$strMIME_transformation_note = 'Voor een lijst met beschikbare transformatie opties en MIME-type transformaties, klik op %sTransformatie opties%s';
+$strMIME_transformation_options_note = 'Voeg de waardes voor transformatie optie in het volgende formaat in: \'a\', 100, b,\'c\'...<br />Wanneer u een backslash ("\") of een enkele quote ("\'") moet invoegen in deze waardes, backslashes het dan (bijvoorbeeld \'\\\\xyz\' of \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformatie opties';
+$strMIMETypesForTable = 'MIME TYPES VOOR TABEL';
+$strMIME_without = 'MIME-types die in italic staan (Schuin) hebben geen aparte transformatie functies';
+$strModifications = 'Wijzigingen opgeslagen.';
+$strModify = 'Aanpassen';
+$strModifyIndexTopic = 'Wijzig een index';
+$strMoveTableOK = 'Tabel %s is verplaatst naar %s.';
+$strMoveTableSameNames = 'Kan de tabel niet naar dezelfde verplaatsen!';
+$strMoveTable = 'Verplaats tabel naar (database<b>.</b>tabel):';
+$strMultilingual = 'meertalig';
+$strMySQLCharset = 'MySQL Karakterset';
+$strMySQLConnectionCollation = 'MySQL verbindingscollatie';
+$strMySQLSaid = 'MySQL retourneerde: ';
+$strMySQLShowProcess = 'Laat processen zien';
+
+$strName = 'Naam';
+$strNext = 'Volgende';
+$strNoActivity = 'Geen activiteit voor %s seconden of meer, log a.u.b. opnieuw in';
+$strNoDatabases = 'Geen databases';
+$strNoDatabasesSelected = 'Er is geen databases geselecteerd.';
+$strNoDescription = 'Geen beschrijving aanwezig';
+$strNoDropDatabases = '"DROP DATABASE" opdrachten zijn niet mogelijk.';
+$strNoExplain = 'Uitleg SQL overslaan';
+$strNoFrames = 'phpMyAdmin is werkt gebruiksvriendelijker met een browser die <b>frames</b> aan kan.';
+$strNoIndex = 'Geen index gedefinieerd!';
+$strNoIndexPartsDefined = 'Geen index delen gedefinieerd!';
+$strNoModification = 'Geen verandering';
+$strNo = 'Nee';
+$strNone = 'Geen';
+$strNoOptions = 'Dit format heeft geen opties';
+$strNoPassword = 'Geen wachtwoord';
+$strNoPermission = 'De web server heeft geen rechten om het bestand %s op te slaan.';
+$strNoPhp = 'zonder PHP Code';
+$strNoPrivileges = 'Geen rechten';
+$strNoRights = 'U heeft niet genoeg rechten om hier te zijn!';
+$strNoRowsSelected = 'Geen rijen geselecteerd';
+$strNoSpace = 'Onvoldoende ruimte om het bestand %s op te slaan.';
+$strNoTablesFound = 'Geen tabellen gevonden in de database.';
+$strNoThemeSupport = 'Geen ondersteuning voor thema\'s, controleer uw configuratie en/of de thema\'s in de directory %s.';
+$strNotNumber = 'Dit is geen cijfer!';
+$strNotOK = 'Niet Goed';
+$strNotSet = '<b>%s</b> tabel niet gevonden of niet ingesteld in %s';
+$strNoUsersFound = 'Geen gebruiker(s) gevonden.';
+$strNoValidateSQL = 'SQL validatie overslaan';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s overeenkomst(en) in de tabel<i>%s</i>';
+$strNumSearchResultsTotal = '<b>Totaal:</b> <i>%s</i> overeenkomst(en)';
+$strNumTables = 'Tabellen';
+
+$strOK = 'Correct';
+$strOperations = 'Handelingen';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optimaliseer tabel';
+$strOr = 'Of';
+$strOverhead = 'Overhead';
+$strOverwriteExisting = 'Overschrijf bestaande bestand (en)';
+
+$strPageNumber = 'Pagina nummer:';
+$strPaperSize = 'Papier grootte';
+$strPartialText = 'Gedeeltelijke teksten';
+$strPasswordChanged = 'Het wachtwoord voor %s is met succes veranderd.';
+$strPasswordEmpty = 'Het wachtwoord is leeg!';
+$strPasswordHashing = 'Wachtwoord Hashing';
+$strPasswordNotSame = 'De wachtwoorden zijn niet gelijk!';
+$strPassword = 'Wachtwoord';
+$strPdfDbSchema = 'Schema van de "%s" database - Pagina %s';
+$strPdfInvalidTblName = 'De tabel "%s" bestaat niet!';
+$strPdfNoTables = 'Geen Tabellen';
+$strPerHour = 'per uur';
+$strPerMinute = 'per minuut';
+$strPerSecond = 'per seconde';
+$strPersian = 'Perzisch';
+$strPhoneBook = 'Telefoonboek';
+$strPhp = 'Creëer PHP Code';
+$strPHPVersion = 'PHP Versie';
+$strPmaDocumentation = 'phpMyAdmin Documentatie';
+$strPmaUriError = 'De <tt>$cfg[\'PmaAbsoluteUri\']</tt> richtlijn MOET gezet zijn in het configuratie bestand!';
+$strPolish = 'Pools';
+$strPortrait = 'Portret';
+$strPos1 = 'Begin';
+$strPrevious = 'Vorige';
+$strPrimaryKeyHasBeenDropped = 'De primaire sleutel is vervallen';
+$strPrimaryKeyName = 'De naam van de primaire sleutel moet PRIMARY zijn!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>moet</b> de naam van en <b>alleen van</b> een primaire sleutel zijn!)';
+$strPrimary = 'Primaire sleutel';
+$strPrint = 'Afdrukken';
+$strPrintViewFull = 'Print overzicht (met volledige teksten)';
+$strPrintView = 'Printopmaak';
+$strPrivDescAllPrivileges = 'Bevat alle privileges behalve GRANT.';
+$strPrivDescAlter = 'Maakt het mogelijk de structuur van bestaande tabellen aan te passen.';
+$strPrivDescCreateDb = 'Maakt het mogelijk om nieuwe databases en tabellen te maken.';
+$strPrivDescCreateTbl = 'Maakt het mogelijk nieuwe tabellen te maken.';
+$strPrivDescCreateTmpTable = 'Maakt het mogelijk om tijdelijke tabellen te maken.';
+$strPrivDescDelete = 'Maakt het mogelijk om data te verwijderen.';
+$strPrivDescDropDb = 'Maakt het mogelijk om databases en tabellen te verwijderen.';
+$strPrivDescDropTbl = 'Maakt het mogelijk tabellen te verwijderen.';
+$strPrivDescExecute = 'Maakt het mogelijk om opgeslagen procedures uit te voeren; Heeft geen effect in deze MySQL versie.';
+$strPrivDescFile = 'Maakt het mogelijk om data te importeren en te exporteren van en naar bestanden.';
+$strPrivDescGrant = 'Maakt het mogelijk dat gebruikers en privileges toe te voegen zonder de privileges tabel opnieuw op te vragen.';
+$strPrivDescIndex = 'Maakt het mogelijk om indexen te creëren en te verwijderen.';
+$strPrivDescInsert = 'Maakt het mogelijk om data in te voegen en te vervangen.';
+$strPrivDescLockTables = 'Maakt het mogelijk tabellen op slot te zetten voor de huidige thread.';
+$strPrivDescMaxConnections = 'Limiteert het aantal nieuwe connecties die een gebruiker per uur mag openen.';
+$strPrivDescMaxQuestions = 'Limiteert het aantal queries dat een gebruiker mag versturen per uur.';
+$strPrivDescMaxUpdates = 'Limiteert het aantal commando\'s, welke een database of tabel veranderen, die een gebruiker per uur mag uitvoeren.';
+$strPrivDescReferences = 'Heeft geen effect in deze MySQL versie.';
+$strPrivDescReload = 'Maakt het mogelijk om de server instellingen opnieuw op te vragen en de cache van de server leeg te maken.';
+$strPrivDescReplClient = 'Geeft het recht aan de gebruiker om te vragen waar de slaves (slaven) / masters (meesters) zijn.';
+$strPrivDescReplSlave = 'Nodig om slaves (slaven) de repliceren.';
+$strPrivDescSelect = 'Maakt het lezen van data mogelijk.';
+$strPrivDescShowDb = 'Geeft toegang tot de complete lijst van databases.';
+$strPrivDescShutdown = 'Maakt het mogelijk de server te stoppen.';
+$strPrivDescSuper = 'Maakt het mogelijk verbinding te maken, zelfs als het maximaal aantal verbindingen als is bereikt; Dit is vereist voor de meeste administratieve opties zoals het instellen van globale variabelen of het stoppen van threads van andere gebruikers.';
+$strPrivDescUpdate = 'Maakt het mogelijk data aan te passen.';
+$strPrivDescUsage = 'Geen privileges.';
+$strPrivileges = 'Rechten';
+$strPrivilegesReloaded = 'De privileges zijn met succes vernieuwd';
+$strProcesses = 'Processen';
+$strProcesslist = 'Process lijst';
+$strPutColNames = 'Plaats veldnamen in de eerste rij';
+
+$strQBEDel = 'Verwijder';
+$strQBEIns = 'Toevoegen';
+$strQBE = 'Query opbouwen';
+$strQueryFrame = 'Query window';
+$strQueryOnDb = 'SQL-query op database <b>%s</b>:';
+$strQuerySQLHistory = 'SQL-geschiedenis';
+$strQueryStatistics = '<b>Query statistieken</b>: Sinds het opstarten zijn er, %s queries gestuurd naar de server.';
+$strQueryTime = 'Query duurde %01.4f sec';
+$strQueryType = 'Query type';
+$strQueryWindowLock = 'Overschrijf deze query niet van buitenaf dit scherm';
+
+$strReceived = 'Ontvangen';
+$strRecords = 'Records';
+$strReferentialIntegrity = 'Controleer referentiële integriteit';
+$strRefresh = 'Vernieuw';
+$strRelationalSchema = 'Relationeel schema';
+$strRelationNotWorking = 'Extra opties om met tabellen te werken die gelinkt zijn, zijn uitgeschakeld. Om te weten te komen waarom klik %shier%s.';
+$strRelationsForTable = 'RELATIES VOOR TABEL';
+$strRelations = 'Relaties';
+$strRelationView = 'Relatie overzicht';
+$strReloadingThePrivileges = 'Bezig de privileges te vernieuwen';
+$strRemoveSelectedUsers = 'Verwijder de geselecteerde gebruikers';
+$strRenameDatabaseOK = 'Database %s is hernoemed naar %s';
+$strRenameTableOK = 'Tabel %s is hernoemt naar %s';
+$strRenameTable = 'Tabel hernoemen naar';
+$strRepairTable = 'Repareer tabel';
+$strReplaceNULLBy = 'Vervang NULL door';
+$strReplaceTable = 'Vervang tabel gegevens met het bestand';
+$strReset = 'Opnieuw';
+$strResourceLimits = 'Resource beperkingen';
+$strReType = 'Type opnieuw';
+$strRevokeAndDeleteDescr = 'De gebruikers zullen nog steeds het USAGE (gebruik) privilege hebben zolang de privileges nog niet zijn vernieuwd.';
+$strRevokeAndDelete = 'Trek alle actieve privileges in van alle gebruikers en verwijder ze daarna.';
+$strRevokeMessage = 'U heeft de rechten ingetrokken voor %s';
+$strRevoke = 'Ongedaan maken';
+$strRomanian = 'Roemeens';
+$strRowLength = 'Lengte van de rij';
+$strRowsFrom = 'rijen beginnend bij';
+$strRowSize = ' Grootte van de rij';
+$strRowsModeFlippedHorizontal = 'horizontaal (geroteerde headers)';
+$strRowsModeHorizontal = 'horizontaal';
+$strRowsModeOptions = 'in %s modus en herhaal kopregels na %s cellen';
+$strRowsModeVertical = 'verticaal';
+$strRows = 'Rijen';
+$strRowsStatistic = 'Rij statistiek';
+$strRunning = 'wordt uitgevoerd op %s';
+$strRunQuery = 'Query uitvoeren';
+$strRunSQLQuery = 'Draai SQL query/queries op database %s';
+$strRussian = 'Russisch';
+
+$strSaveOnServer = 'Bewaar op de server in %s directory';
+$strSave = 'Opslaan';
+$strScaleFactorSmall = 'De schaal factor is te klein om het schema op een pagina te zetten';
+$strSearchFormTitle = 'Zoeken in de database';
+$strSearchInTables = 'In de tabel(len):';
+$strSearchNeedle = 'Woord(en) of waarde(s) waarnaar gezocht moet worden (wildcard: "%"):';
+$strSearchOption1 = 'ten minste een van de woorden';
+$strSearchOption2 = 'alle woorden';
+$strSearchOption3 = 'de exacte zin';
+$strSearchOption4 = 'als een reguliere expressie';
+$strSearchResultsFor = 'Zoek resultaten voor "<i>%s</i>" %s:';
+$strSearchType = 'Zoek:';
+$strSearch = 'Zoeken';
+$strSecretRequired = 'Het configuratie bestand heeft nu een geheime wachtwoord zin nodig (blowfish_secret).';
+$strSelectADb = 'Selecteer A.U.B. een database';
+$strSelectAll = 'Selecteer alles';
+$strSelectBinaryLog = 'Selecteer de te bekijken binaire log';
+$strSelectFields = 'Selecteer velden (tenminste 1):';
+$strSelectNumRows = 'in query';
+$strSelectTables = 'Selecteer tabellen';
+$strSend = 'verzenden';
+$strSent = 'Verzonden';
+$strServerChoice = 'Server keuze';
+$strServerNotResponding = 'De server reageert niet';
+$strServer = 'Server';
+$strServerStatus = 'Runtime Informatie';
+$strServerStatusUptime = 'Deze MySQL server draait inmiddels %s. Hij is gestart op %s.';
+$strServerTabVariables = 'Variabelen';
+$strServerTrafficNotes = '<b>Server verkeer</b>: Deze tabellen geven statistieken weer van het verkeer van deze MySQL server vanaf het moment dat hij is gestart';
+$strServerVars = 'Server variabelen en instellingen';
+$strServerVersion = 'Server versie';
+$strSessionValue = 'Sessie variabelen';
+$strSetEnumVal = 'Als het veld type "enum" of "set" is, voer dan de waardes in volgens dit formaat: \'a\',\'b\',\'c\'...<br />Als u ooit een backslash moet plaatsen ("\") of een enkel aanhalingsteken ("\'") bij deze waardes, backslash het (voorbeeld \'\\\\xyz\' of \'a\\\'b\').';
+$strShowAll = 'Toon alles';
+$strShowColor = 'Toon kleur';
+$strShowDatadictAs = 'Data Dictionary Formaat';
+$strShowFullQueries = 'Toon volledige Queries';
+$strShowGrid = 'Toon grid';
+$strShowingRecords = 'Toon Records';
+$strShowPHPInfo = 'Laat informatie over PHP zien';
+$strShowTableDimension = 'Geef de dimensies van de tabellen weer';
+$strShowTables = 'Toon tabellen';
+$strShowThisQuery = ' Laat deze query hier zien ';
+$strShow = 'Toon';
+$strSimplifiedChinese = 'Vereenvoudigd Chinese';
+$strSingly = '(apart)';
+$strSize = 'Grootte';
+$strSlovak = 'Slowaak';
+$strSlovenian = 'Sloveens';
+$strSortByKey = 'Sorteren op sleutel';
+$strSort = 'Sorteren';
+$strSpaceUsage = 'Ruimte gebruik';
+$strSpanish = 'Spaans';
+$strSplitWordsWithSpace = 'Woorden worden gesplit door een spatie karakter (" ").';
+$strSQLExportType = 'Export type';
+$strSQLParserBugMessage = 'Er is een kans dat u een fout heeft aangetroffen in de SQL parser. Let er goed op, dat de query op de correcte plaatsen quotes heeft. Een ander mogelijkheid voor deze foutmelding kan zijn dat u het ge-quote text gedeelte in binairy mode heeft. U kunt ook uw query proberen in de command line van MySQL. De MySQL server foutmelding hieronder, mocht die aanwezig zijn, kan ook helpen met het opsporen van fouten. Blijft u problemen houden of als de parser fouten geeft terwijl het goed gaat in de command line van MySQL, probeer dan de SQL query in te korten en een bug report met het stukje data te sturen van het CUT gedeelte hieronder:';
+$strSQLParserUserError = 'Er schijnt een fout te zijn in uw SQL query. Mocht de MySQL server een error hebben terug gegeven, probeer dan of uw hiermee uw fout kunt oplossen.';
+$strSQLQuery = 'SQL-query';
+$strSQLResult = 'SQL resultaat';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Ongeldig herkenningsteken';
+$strSQPBugUnclosedQuote = 'Quote niet afgesloten';
+$strSQPBugUnknownPunctuation = 'Onbekende Punctuatie String';
+$strStatCheckTime = 'Laatst gecontroleerd';
+$strStatCreateTime = 'Gecreëerd';
+$strStatement = 'Opdrachten';
+$strStatUpdateTime = 'Laatst bijgewerkt';
+$strStatus = 'Status';
+$strStrucCSV = 'CSV gegevens';
+$strStrucData = 'Structuur en gegevens';
+$strStrucExcelCSV = 'CSV voor MS Excel data';
+$strStrucNativeExcel = 'Native MS Excel data';
+$strStrucOnly = 'Alleen structuur';
+$strStructPropose = 'Tabel structuur voorstellen';
+$strStructure = 'Structuur';
+$strSubmit = 'Verzenden';
+$strSuccess = 'Uw SQL-query is succesvol uitgevoerd.';
+$strSum = 'Som';
+$strSwedish = 'Zweeds';
+$strSwitchToDatabase = 'Schakel naar de gekopieerde database';
+$strSwitchToTable = 'Wissel naar de gekopieerde tabel';
+
+$strTableComments = 'Tabel opmerkingen';
+$strTableEmpty = 'De tabel naam is leeg!';
+$strTableHasBeenDropped = 'Tabel %s is vervallen';
+$strTableHasBeenEmptied = 'Tabel %s is leeg gemaakt';
+$strTableHasBeenFlushed = 'Tabel %s is geschoond';
+$strTableMaintenance = 'Tabel onderhoud';
+$strTableOfContents = 'Inhoudsopgave';
+$strTableOptions = 'Tabel opties';
+$strTables = '%s tabel(len)';
+$strTableStructure = 'Tabel structuur voor tabel';
+$strTable = 'Tabel';
+$strTakeIt = 'neem het';
+$strTblPrivileges = 'Tabel-specifieke privileges';
+$strTextAreaLength = ' Vanwege z\'n lengte,<br /> is dit veld misschien niet te wijzigen ';
+$strThai = 'Thais';
+$strTheme = 'Thema / Stijl';
+$strThisHost = 'Deze Host';
+$strThreadSuccessfullyKilled = 'Thread %s is met succes afgesloten.';
+$strTime = 'Tijd';
+$strToggleScratchboard = 'toggle scratchboard';
+$strTotal = 'totaal';
+$strTotalUC = 'Totaal';
+$strTraditionalChinese = 'Traditioneel Chinees';
+$strTraditionalSpanish = 'Traditioneel Spaans';
+$strTraffic = 'Verkeer';
+$strTransformation_application_octetstream__download = 'Toon een link om de binaire data van een veld te downloaden. Eerste optie is de bestandsnaam van het binaire bestand. De tweede optie is een mogelijke veldnaam van een rij van de tabel welke de bestandsnaam bevat. Wanneer de tweede optie wordt gekozen is het vereist dat de eerste optie leeg is.';
+$strTransformation_image_jpeg__inline = 'Toont een klik bare thumbnail; opties: width,height in pixels (houdt de originele ratio)';
+$strTransformation_image_jpeg__link = 'Toont een link naar deze image (directe blob download, i.e.).';
+$strTransformation_image_png__inline = 'Zie image/jpeg: inline';
+$strTransformation_text_plain__external = 'ALLEEN LINUX: Lanceert een externe applicatie en voed het de veld data via standaard input. Geeft standaard output van de applicatie terug. Default is Netjes, om nette HTML code te tonen. Om beveiligings redenen zult u handmatig het bestand libraries/transformations/text_plain__external.inc.php moeten aanpassen en de tools die u mag draaien invoegen. De eerste opties is het nummer van het programma wat u wilt gebruiken, de tweede optie zijn de parameters voor dit programma. Het derde parameter, wanneer ingesteld op 1, zal de output omzetten door middel van htmlspecialchars() (Standaard is 1). Een vierde parameter, wanneer ingesteld als 1 zal NOWRAP aan de content cell toevoegen, zodat de gehele output getoond zal worden zonder te herstructureren (Standaard 1)';
+$strTransformation_text_plain__formatted = 'Preserveert het originele formaat van het veld. Er wordt geen Escaping toegepast.';
+$strTransformation_text_plain__imagelink = 'Toont een plaatje en een link, het veld bevat de bestandsnaam; De eerste optie is een prefix als "http://domein.com/", de tweede optie is de breedte in pixels, de derde is de hoogte.';
+$strTransformation_text_plain__link = 'Toont een link, het veld bevat de bestandsnaam; De eerste optie is een prefix als "http://domein.com/", de tweede optie is de titel voor de link.';
+$strTransformation_text_plain__substr = 'Toont alleen een stuk van een string. De eerst optie is een offset om te bepalen waar de output van uw tekst start (Standaard 0). De tweede optie is een offset van de hoeveel tekst die terug wordt gegeven. Wanneer leeg, zal het alle overgebleven tekst teruggeven. De derde optie defineerd welke karakters worden toegevoegd aan de output wanneer een substring wordt teruggegeven (Standaard: ...) .';
+$strTruncateQueries = 'Truncate getoonde Queries';
+$strTurkish = 'Turks';
+$strType = 'Type';
+
+$strUkrainian = 'Oekraïens';
+$strUncheckAll = 'Deselecteer alles';
+$strUnicode = 'Unicode';
+$strUnique = 'Unieke waarde';
+$strUnknown = 'onbekend';
+$strUnselectAll = 'Deselecteer alles';
+$strUpdatePrivMessage = 'U heeft de rechten aangepast voor %s.';
+$strUpdateProfileMessage = 'Het profiel is aangepast.';
+$strUpdateQuery = 'Wijzig Query';
+$strUpdComTab = 'Raadpleeg de Documentatie over hoe u uw Column_comments tabel bijwerkt.';
+$strUpgrade = 'U moet opwaarderen (Upgraden) naar %s of hoger.';
+$strUsage = 'Gebruik';
+$strUseBackquotes = 'Gebruik backquotes (`) bij tabellen en velden\' namen';
+$strUseHostTable = 'Gebruik Host Tabel';
+$strUserAlreadyExists = 'De gebruiker %s bestaat al!';
+$strUserEmpty = 'De gebruikersnaam is leeg!';
+$strUser = 'Gebruiker';
+$strUserName = 'Gebruikersnaam';
+$strUserNotFound = 'De geselecteerde gebruiker werd niet aangetroffen in de privileges tabel';
+$strUserOverview = 'Gebruikers Overzicht';
+$strUsersDeleted = 'De geselecteerde gebruikers zijn met succes verwijderd.';
+$strUsersHavingAccessToDb = 'Gebruikers die toegang hebben tot &quot;%s&quot;';
+$strUseTabKey = 'Gebruik de TAB knop om van waarde naar waarde te verplaatsen, of CTRL+pijltjes om vrijuit te navigeren';
+$strUseTables = 'Gebruik tabellen';
+$strUseTextField = 'Gebruik tekstveld';
+$strUseThisValue = 'Gebruik deze waarde';
+
+$strValidateSQL = 'Valideer SQL';
+$strValidatorError = 'De SQL validatie kon niet worden geinitialiseerd. Controleer of u de nodige php extensies heeft geinstalleerd zoals beschreven in de %sdocumentatie%s.';
+$strValue = 'Waarde';
+$strVar = 'Variabelen';
+$strViewDump = 'Bekijk een dump (schema) van tabel';
+$strViewDumpDatabases = 'Bekijk dump (schema) van de databases';
+$strViewDumpDB = 'Bekijk een dump (schema) van database';
+
+$strWebServerUploadDirectoryError = 'De directory die u heeft ingesteld om te uploaden kan niet worden bereikt.';
+$strWebServerUploadDirectory = 'web-server upload directory';
+$strWelcome = 'Welkom op %s';
+$strWestEuropean = 'West Europees';
+$strWildcard = 'joker teken';
+$strWindowNotFound = 'Het doel browser scherm kon niet worden bijgewerkt. Misschien heeft u het scherm gesloten of uw browser blokkeert bijwerkingen van uw browser beveiliging';
+$strWithChecked = 'Met geselecteerd:';
+$strWrongUser = 'Verkeerde gebruikersnaam/wachtwoord. Toegang geweigerd.';
+
+$strXML = 'XML';
+
+$strYes = 'Ja';
+
+$strZeroRemovesTheLimit = 'Opmerking: Het instellen van deze waarden op 0 (nul) verwijderd het limiet.';
+$strZip = '"Gezipt"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDataPages = 'Pages containing data'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/english-utf-8.inc.php b/lang/english-utf-8.inc.php
new file mode 100644
index 0000000000..7262b65b81
--- /dev/null
+++ b/lang/english-utf-8.inc.php
@@ -0,0 +1,1447 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+// MySQL manual language definition, this is optional, en will be used
+// if not defined
+$mysql_4_1_doc_lang = 'en';
+$mysql_5_0_doc_lang = 'en';
+$mysql_5_1_doc_lang = 'en';
+
+$day_of_week = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y at %I:%M %p';
+$timespanfmt = '%s days, %s hours, %s minutes and %s seconds';
+
+$strAbortedClients = 'Aborted';
+$strAccessDenied = 'Access denied';
+$strAccessDeniedCreateConfig = 'You probably did not create a configuration file. You might want to use %1$ssetup script%2$s to create one.';
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.';
+$strAction = 'Action';
+$strActions = 'Actions';
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value';
+$strAddClause = 'Add %s';
+$strAddConstraints = 'Add constraints';
+$strAddDeleteColumn = 'Add/Delete Field Columns';
+$strAddDeleteRow = 'Add/Delete Criteria Row';
+$strAddFields = 'Add %s field(s)';
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)';
+$strAddIntoComments = 'Add into comments';
+$strAddNewField = 'Add new field';
+$strAddPrivilegesOnDb = 'Add privileges on the following database';
+$strAddPrivilegesOnTbl = 'Add privileges on the following table';
+$strAddSearchConditions = 'Add search conditions (body of the "where" clause):';
+$strAddToIndex = 'Add to index &nbsp;%s&nbsp;column(s)';
+$strAddUser = 'Add a new User';
+$strAddUserMessage = 'You have added a new user.';
+$strAdministration = 'Administration';
+$strAfter = 'After %s';
+$strAfterInsertBack = 'Go back to previous page';
+$strAfterInsertNewInsert = 'Insert another new row';
+$strAfterInsertNext = 'Edit next row';
+$strAfterInsertSame = 'Go back to this page';
+$strAll = 'All';
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.';
+$strAllTableSameWidth = 'Display all tables with the same width';
+$strAlterOrderBy = 'Alter table order by';
+$strAnalyze = 'Analyze';
+$strAnalyzeTable = 'Analyze table';
+$strAnd = 'And';
+$strAndThen = 'and then';
+$strAngularLinks = 'Angular links';
+$strAnIndex = 'An index has been added on %s';
+$strAny = 'Any';
+$strAnyHost = 'Any host';
+$strAnyUser = 'Any user';
+$strApproximateCount = 'May be approximate. See [a@./Documentation.html#faq3_11@Documentation]FAQ 3.11[/a]';
+$strAPrimaryKey = 'A primary key has been added on %s';
+$strArabic = 'Arabic';
+$strArmenian = 'Armenian';
+$strAscending = 'Ascending';
+$strAsDefined = 'As defined:';
+$strAtBeginningOfTable = 'At Beginning of Table';
+$strAtEndOfTable = 'At End of Table';
+$strAttr = 'Attributes';
+$strAutomaticLayout = 'Automatic layout';
+
+$strBack = 'Back';
+$strBaltic = 'Baltic';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Binary';
+$strBinaryDoNotEdit = 'Binary - do not edit';
+$strBinaryLog = 'Binary log';
+$strBinLogEventType = 'Event type';
+$strBinLogInfo = 'Information';
+$strBinLogName = 'Log name';
+$strBinLogOriginalPosition = 'Original position';
+$strBinLogPosition = 'Position';
+$strBinLogServerId = 'Server ID';
+$strBLOBRepository = 'BLOB Repository';
+$strBLOBRepositoryDamaged = 'Damaged';
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?';
+$strBLOBRepositoryDisabled = 'Disabled';
+$strBLOBRepositoryDisable = 'Disable';
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!';
+$strBLOBRepositoryEnabled = 'Enabled';
+$strBLOBRepositoryEnable = 'Enable';
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference';
+$strBLOBRepositoryRepair = 'Repair';
+$strBLOBRepositoryStatus = 'Status';
+$strBLOBRepositoryUpload = 'Upload to BLOB repository';
+$strBookmarkAllUsers = 'Let every user access this bookmark';
+$strBookmarkCreated = 'Bookmark %s created';
+$strBookmarkDeleted = 'The bookmark has been deleted.';
+$strBookmarkLabel = 'Label';
+$strBookmarkQuery = 'Bookmarked SQL query';
+$strBookmarkReplace = 'Replace existing bookmark of same name';
+$strBookmarkThis = 'Bookmark this SQL query';
+$strBookmarkView = 'View only';
+$strBrowse = 'Browse';
+$strBrowseDistinctValues = 'Browse distinct values';
+$strBrowseForeignValues = 'Browse foreign values';
+$strBufferPoolActivity = 'Buffer Pool Activity';
+$strBufferPool = 'Buffer Pool';
+$strBufferPoolUsage = 'Buffer Pool Usage';
+$strBufferReadMissesInPercent = 'Read misses in %';
+$strBufferReadMisses = 'Read misses';
+$strBufferWriteWaitsInPercent = 'Write waits in %';
+$strBufferWriteWaits = 'Write waits';
+$strBulgarian = 'Bulgarian';
+$strBusyPages = 'Busy pages';
+$strBzip = '"bzipped"';
+
+$strCalendar = 'Calendar';
+$strCancel = 'Cancel';
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!';
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!';
+$strCannotLogin = 'Cannot log in to the MySQL server';
+$strCantLoad = 'Cannot load [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] extension. Please check your PHP configuration.';
+$strCantLoadRecodeIconv = 'Couldn\'t load the iconv or recode extension needed for charset conversion. Either configure PHP to enable these extensions or disable charset conversion in phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Can\'t rename index to PRIMARY!';
+$strCantUseRecodeIconv = 'Couldn\'t use either the iconv, libiconv or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.';
+$strCardinality = 'Cardinality';
+$strCaseInsensitive = 'case-insensitive';
+$strCaseSensitive = 'case-sensitive';
+$strCentralEuropean = 'Central European';
+$strColComFeat = 'Displaying Column Comments';
+$strCollation = 'Collation';
+$strColumnNames = 'Column names';
+$strColumnPrivileges = 'Column-specific privileges';
+$strCommand = 'Command';
+$strComment = 'Comment';
+$strComments = 'Comments';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible';
+$strCompleteInserts = 'Complete inserts';
+$strCompression = 'Compression';
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s';
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"';
+$strConfigFileError = 'phpMyAdmin was unable to read your configuration file!<br />This might happen if PHP finds a parse error in it or PHP cannot find the file.<br />Please call the configuration file directly using the link below and read the PHP error message(s) that you receive. In most cases a quote or a semicolon is missing somewhere.<br />If you receive a blank page, everything is fine.';
+$strConfigureTableCoord = 'Please configure the coordinates for table %s';
+$strConnectionError = 'Cannot connect: invalid settings.';
+$strConnections = 'Connections';
+$strConstraintsForDumped = 'Constraints for dumped tables';
+$strConstraintsForTable = 'Constraints for table';
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.';
+$strCookiesRequired = 'Cookies must be enabled past this point.';
+$strCopy = 'Copy';
+$strCopyDatabaseOK = 'Database %s has been copied to %s';
+$strCopyTable = 'Copy table to (database<b>.</b>table):';
+$strCopyTableOK = 'Table %s has been copied to %s.';
+$strCopyTableSameNames = 'Can\'t copy table to same one!';
+$strCouldNotKill = 'phpMyAdmin was unable to kill thread %s. It probably has already been closed.';
+$strCreate = 'Create';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying';
+$strCreateIndex = 'Create an index on&nbsp;%s&nbsp;columns';
+$strCreateIndexTopic = 'Create a new index';
+$strCreateNewDatabase = 'Create new database';
+$strCreateNewTable = 'Create new table on database %s';
+$strCreatePage = 'Create a new page';
+$strCreatePdfFeat = 'Creation of PDFs';
+$strCreateRelation = 'Create relation';
+$strCreateTable = 'Create table';
+$strCreateUserDatabase = 'Database for user';
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges';
+$strCreateUserDatabaseNone = 'None';
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)';
+$strCreationDates = 'Creation/Update/Check dates';
+$strCriteria = 'Criteria';
+$strCroatian = 'Croatian';
+$strCSV = 'CSV';
+$strCustomColor = 'Custom color';
+$strCyrillic = 'Cyrillic';
+$strCzech = 'Czech';
+$strCzechSlovak = 'Czech-Slovak';
+$strChangeCopyModeCopy = '... keep the old one.';
+$strChangeCopyMode = 'Create a new user with the same privileges and ...';
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.';
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.';
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.';
+$strChangeCopyUser = 'Change Login Information / Copy User';
+$strChangeDisplay = 'Choose field to display';
+$strChange = 'Change';
+$strChangePassword = 'Change password';
+$strCharset = 'Charset';
+$strCharsetOfFile = 'Character set of the file:';
+$strCharsetsAndCollations = 'Character Sets and Collations';
+$strCharsets = 'Charsets';
+$strCheckAll = 'Check All';
+$strCheck = 'Check';
+$strCheckOverhead = 'Check tables having overhead';
+$strCheckPrivs = 'Check Privileges';
+$strCheckPrivsLong = 'Check privileges for database &quot;%s&quot;.';
+$strCheckTable = 'Check table';
+$strChoosePage = 'Please choose a page to edit';
+
+$strDanish = 'Danish';
+$strDatabase = 'Database';
+$strDatabaseEmpty = 'The database name is empty!';
+$strDatabaseExportOptions = 'Database export options';
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.';
+$strDatabaseHasBeenDropped = 'Database %s has been dropped.';
+$strDatabases = 'Databases';
+$strDatabasesDropped = '%s databases have been dropped successfully.';
+$strDatabasesStats = 'Databases statistics';
+$strDatabasesStatsDisable = 'Disable Statistics';
+$strDatabasesStatsEnable = 'Enable Statistics';
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the database statistics here might cause heavy traffic between the web server and the MySQL server.';
+$strData = 'Data';
+$strDataDict = 'Data Dictionary';
+$strDataOnly = 'Data only';
+$strDataPages = 'Pages containing data';
+$strDBComment = 'Database comment: ';
+$strDBCopy = 'Copy database to';
+$strDbIsEmpty = 'Database seems to be empty!';
+$strDbPrivileges = 'Database-specific privileges';
+$strDBRename = 'Rename database to';
+$strDbSpecific = 'database-specific';
+$strDefault = 'Default';
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.';
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a';
+$strDefragment = 'Defragment table';
+$strDelayedInserts = 'Use delayed inserts';
+$strDeleteAndFlush = 'Delete the users and reload the privileges afterwards.';
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.';
+$strDelete = 'Delete';
+$strDeleted = 'The row has been deleted';
+$strDeleteNoUsersSelected = 'No users selected for deleting!';
+$strDeleteRelation = 'Delete relation';
+$strDeleting = 'Deleting %s';
+$strDelimiter = 'Delimiter';
+$strDelOld = 'The current page has references to tables that no longer exist. Would you like to delete those references?';
+$strDescending = 'Descending';
+$strDescription = 'Description';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.';
+$strDetails = 'Details...';
+$strDictionary = 'dictionary';
+$strDirectLinks = 'Direct links';
+$strDirtyPages = 'Dirty pages';
+$strDisabled = 'Disabled';
+$strDisableForeignChecks = 'Disable foreign key checks';
+$strDisplayFeat = 'Display Features';
+$strDisplayOrder = 'Display order:';
+$strDisplayPDF = 'Display PDF schema';
+$strDoAQuery = 'Do a "query by example" (wildcard: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentation';
+$strDownloadFile = 'Download file';
+$strDoYouReally = 'Do you really want to ';
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!';
+$strDrop = 'Drop';
+$strDropUsersDb = 'Drop the databases that have the same names as the users.';
+$strDumpingData = 'Dumping data for table';
+$strDumpSaved = 'Dump has been saved to file %s.';
+$strDumpXRows = 'Dump %s row(s) starting at record # %s.';
+$strDynamic = 'dynamic';
+
+$strEdit = 'Edit';
+$strEditPDFPages = 'Edit PDF Pages';
+$strEditPrivileges = 'Edit Privileges';
+$strEffective = 'Effective';
+$strEmpty = 'Empty';
+$strEmptyResultSet = 'MySQL returned an empty result set (i.e. zero rows).';
+$strEnabled = 'Enabled';
+$strEncloseInTransaction = 'Enclose export in a transaction';
+$strEndCut = 'END CUT';
+$strEnd = 'End';
+$strEndRaw = 'END RAW';
+$strEngineAvailable = '%s is available on this MySQL server.';
+$strEngineDisabled = '%s has been disabled for this MySQL server.';
+$strEngines = 'Engines';
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.';
+$strEnglish = 'English';
+$strEnglishPrivileges = ' Note: MySQL privilege names are expressed in English ';
+$strError = 'Error';
+$strErrorInZipFile = 'Error in ZIP archive:';
+$strErrorRelationAdded = 'Error: Relation not added.';
+$strErrorRelationExists = 'Error: relation already exists.';
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s';
+$strErrorSaveTable = 'Error saving coordinates for Designer.';
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonian';
+$strEvent = 'Event';
+$strEvents = 'Events';
+$strExcelEdition = 'Excel edition';
+$strExecuteBookmarked = 'Execute bookmarked query';
+$strExplain = 'Explain SQL';
+$strExport = 'Export';
+$strExportImportToScale = 'Export/Import to scale';
+$strExportMustBeFile = 'Selected export type has to be saved in file!';
+$strExtendedInserts = 'Extended inserts';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Failed attempts';
+$strField = 'Field';
+$strFieldHasBeenDropped = 'Field %s has been dropped';
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see [a@./Documentation.html#faq1_11@Documentation]FAQ 1.11[/a]';
+$strFieldsEnclosedBy = 'Fields enclosed by';
+$strFieldsEscapedBy = 'Fields escaped by';
+$strFields = 'Fields';
+$strFieldsTerminatedBy = 'Fields terminated by';
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.';
+$strFileCouldNotBeRead = 'File could not be read';
+$strFileNameTemplateDescriptionDatabase = 'database name';
+$strFileNameTemplateDescriptionServer = 'server name';
+$strFileNameTemplateDescriptionTable = 'table name';
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.';
+$strFileNameTemplate = 'File name template';
+$strFileNameTemplateRemember = 'remember template';
+$strFiles = 'Files';
+$strFileToImport = 'File to import';
+$strFixed = 'fixed';
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of these tables may differ from the privileges the server uses, if they have been changed manually. In this case, you should %sreload the privileges%s before you continue.';
+$strFlushQueryCache = 'Flush query cache';
+$strFlushTable = 'Flush the table ("FLUSH")';
+$strFlushTables = 'Flush (close) all tables';
+$strFontSize = 'Font size';
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)';
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added';
+$strFormat = 'Format';
+$strFormEmpty = 'Missing value in the form!';
+$strFreePages = 'Free pages';
+$strFullText = 'Full Texts';
+$strFunction = 'Function';
+$strFunctions = 'Functions';
+
+$strGenBy = 'Generated by';
+$strGeneralRelationFeat = 'General relation features';
+$strGenerate = 'Generate';
+$strGeneratePassword = 'Generate Password';
+$strGenTime = 'Generation Time';
+$strGeorgian = 'Georgian';
+$strGerman = 'German';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Global privileges';
+$strGlobalValue = 'Global value';
+$strGo = 'Go';
+$strGrantOption = 'Grant';
+$strGreek = 'Greek';
+$strGzip = '"gzipped"';
+
+$strHandler = 'Handler';
+$strHasBeenAltered = 'has been altered.';
+$strHaveToShow = 'You have to choose at least one column to display';
+$strHebrew = 'Hebrew';
+$strHelp = 'Help';
+$strHexForBLOB = 'Use hexadecimal for BLOB';
+$strHide = 'Hide';
+$strHideShowAll = 'Hide/Show all';
+$strHideShowNoRelation = 'Hide/Show Tables with no relation';
+$strHome = 'Home';
+$strHomepageOfficial = 'Official Homepage';
+$strHostEmpty = 'The host name is empty!';
+$strHost = 'Host';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Hungarian';
+
+$strIcelandic = 'Icelandic';
+$strId = 'ID';
+$strIdxFulltext = 'Fulltext';
+$strIEUnsupported = 'Internet Explorer does not support this function.';
+$strIgnoreDuplicates = 'Ignore duplicate rows';
+$strIgnore = 'Ignore';
+$strIgnoreInserts = 'Use ignore inserts';
+$strImportExportCoords = 'Import/Export coordinates for PDF schema';
+$strImportFiles = 'Import files';
+$strImportFormat = 'Format of imported file';
+$strImport = 'Import';
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.';
+$strIndexes = 'Indexes';
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.';
+$strIndexHasBeenDropped = 'Index %s has been dropped';
+$strIndex = 'Index';
+$strIndexName = 'Index name:';
+$strIndexType = 'Index type:';
+$strIndexWarningTable = 'Problems with indexes of table `%s`';
+$strInnoDBAutoextendIncrement = 'Autoextend increment';
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.';
+$strInnoDBBufferPoolSize = 'Buffer pool size';
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.';
+$strInnoDBDataFilePath = 'Data files';
+$strInnoDBDataHomeDir = 'Data home directory';
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.';
+$strInnoDBPages = 'pages';
+$strInnodbStat = 'InnoDB Status';
+$strInsecureMySQL = 'Your configuration file contains settings (root with no password) that correspond to the default MySQL privileged account. Your MySQL server is running with this default, is open to intrusion, and you really should fix this security hole.';
+$strInsertAsNewRow = 'Insert as new row';
+$strInsertedRowId = 'Inserted row id: %1$d';
+$strInsert = 'Insert';
+$strInterface = 'Interface';
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.';
+$strInternalRelationAdded = 'Internal relation added';
+$strInternalRelations = 'Internal relations';
+$strInUse = 'in use';
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:';
+$strInvalidColumnCount = 'Column count has to be larger than zero.';
+$strInvalidColumn = 'Invalid column (%s) specified!';
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.';
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.';
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s';
+$strInvalidDatabase = 'Invalid database';
+$strInvalidFieldAddCount = 'You have to add at least one field.';
+$strInvalidFieldCount = 'Table must have at least one field.';
+$strInvalidLDIImport = 'This plugin does not support compressed imports!';
+$strInvalidRowNumber = '%d is not valid row number.';
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.';
+$strInvalidServerIndex = 'Invalid server index: "%s"';
+$strInvalidTableName = 'Invalid table name';
+
+$strJapanese = 'Japanese';
+$strJoins = 'Joins';
+$strJumpToDB = 'Jump to database &quot;%s&quot;.';
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.';
+$strJustDelete = 'Just delete the users from the privilege tables.';
+
+$strKeepPass = 'Do not change the password';
+$strKeyCache = 'Key cache';
+$strKeyname = 'Keyname';
+$strKill = 'Kill';
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s';
+$strKorean = 'Korean';
+
+$strLandscape = 'Landscape';
+$strLanguage = 'Language';
+$strLanguageUnknown = 'Unknown language: %1$s.';
+$strLatexCaption = 'Table caption';
+$strLatexContent = 'Content of table __TABLE__';
+$strLatexContinuedCaption = 'Continued table caption';
+$strLatexContinued = '(continued)';
+$strLatexIncludeCaption = 'Include table caption';
+$strLatexLabel = 'Label key';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Structure of table __TABLE__';
+$strLatchedPages = 'Latched pages';
+$strLatvian = 'Latvian';
+$strLDI = 'CSV using LOAD DATA';
+$strLDILocal = 'Use LOCAL keyword';
+$strLengthSet = 'Length/Values';
+$strLimitNumRows = 'Number of rows per page';
+$strLinesTerminatedBy = 'Lines terminated by';
+$strLinkNotFound = 'Link not found';
+$strLinksTo = 'Links to';
+$strLithuanian = 'Lithuanian';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Location of the text file';
+$strLoginInformation = 'Login Information';
+$strLogin = 'Log in';
+$strLogout = 'Log out';
+$strLogPassword = 'Password:';
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.';
+$strLogServer = 'Server:';
+$strLogUsername = 'Username:';
+$strLongOperation = 'This operation could take a long time. Proceed anyway?';
+
+$strMaxConnects = 'max. concurrent connections';
+$strMaximalQueryLength = 'Maximal length of created query';
+$strMaximumSize = 'Max: %s%s';
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using a multibyte charset. Without the mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.';
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause some data to be corrupted!';
+$strMIME_available_mime = 'Available MIME types';
+$strMIME_available_transform = 'Available transformations';
+$strMIME_description = 'Description';
+$strMIME_MIMEtype = 'MIME type';
+$strMIME_nodescription = 'No description is available for this transformation.<br />Please ask the author what %s does.';
+$strMIME_transformation = 'Browser transformation';
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME type transformations, click on %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformation options';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE';
+$strMIME_without = 'MIME types printed in italics do not have a separate transformation function';
+$strModifications = 'Modifications have been saved';
+$strModifyIndexTopic = 'Modify an index';
+$strModify = 'Modify';
+$strMoveMenu = 'Move Menu';
+$strMoveTable = 'Move table to (database<b>.</b>table):';
+$strMoveTableOK = 'Table %s has been moved to %s.';
+$strMoveTableSameNames = 'Can\'t move table to same one!';
+$strMultilingual = 'multilingual';
+$strMyISAMDataPointerSize = 'Data pointer size';
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.';
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation';
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files';
+$strMyISAMRecoverOptions = 'Automatic recovery mode';
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.';
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the repair by sorting process.';
+$strMyISAMRepairThreads = 'Repair threads';
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Sort buffer size';
+$strMysqlClientVersion = 'MySQL client version';
+$strMySQLConnectionCollation = 'MySQL connection collation';
+$strMySQLCharset = 'MySQL charset';
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.';
+$strMySQLSaid = 'MySQL said: ';
+$strMySQLShowProcess = 'Show processes';
+
+$strName = 'Name';
+$strNext = 'Next';
+$strNoActivity = 'No activity within %s seconds; please log in again';
+$strNoDatabases = 'No databases';
+$strNoDatabasesSelected = 'No databases selected.';
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See [a@./Documentation.html#faq1_16@Documentation]FAQ 1.16[/a].';
+$strNoDescription = 'no description';
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.';
+$strNoDropDatabases = '"DROP DATABASE" statements are disabled.';
+$strNoExplain = 'Skip Explain SQL';
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!';
+$strNoFrames = 'phpMyAdmin is more friendly with a <b>frames-capable</b> browser.';
+$strNoIndex = 'No index defined!';
+$strNoIndexPartsDefined = 'No index parts defined!';
+$strNoModification = 'No change';
+$strNone = 'None';
+$strNo = 'No';
+$strNoOptions = 'This format has no options';
+$strNoPassword = 'No Password';
+$strNoPermission = 'The web server does not have permission to save the file %s.';
+$strNoPhp = 'Without PHP Code';
+$strNoPrivileges = 'No Privileges';
+$strNoRights = 'You don\'t have sufficient privileges to be here right now!';
+$strNoRowsSelected = 'No rows selected';
+$strNoSpace = 'Insufficient space to save the file %s.';
+$strNoTablesFound = 'No tables found in database.';
+$strNoThemeSupport = 'No themes support; please check your configuration and/or your themes in directory %s.';
+$strNotNumber = 'This is not a number!';
+$strNotOK = 'not OK';
+$strNotSet = '<b>%s</b> table not found or not set in %s';
+$strNoUsersFound = 'No user(s) found.';
+$strNoValidateSQL = 'Skip Validate SQL';
+$strNull = 'Null';
+$strNumberOfFields = 'Number of fields';
+$strNumberOfTables = 'Number of tables';
+$strNumSearchResultsInTable = '%s match(es) inside table <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> match(es)';
+$strNumTables = 'Tables';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Open new phpMyAdmin window';
+$strOperations = 'Operations';
+$strOperator = 'Operator';
+$strOptimize = 'Optimize';
+$strOptimizeTable = 'Optimize table';
+$strOptions = 'Options';
+$strOr = 'Or';
+$strOverhead = 'Overhead';
+$strOverwriteExisting = 'Overwrite existing file(s)';
+
+$strPacked = 'Packed';
+$strPageNumber = 'Page number:';
+$strPagesToBeFlushed = 'Pages to be flushed';
+$strPaperSize = 'Paper size';
+$strPartialImport = 'Partial import';
+$strPartialText = 'Partial Texts';
+$strPartitionDefinition = 'PARTITION definition';
+$strPartitioned = 'partitioned';
+$strPartitionMaintenance = 'Partition maintenance';
+$strPartition = 'Partition %s';
+$strPasswordEmpty = 'The password is empty!';
+$strPasswordHashing = 'Password Hashing';
+$strPasswordChanged = 'The password for %s was changed successfully.';
+$strPasswordNotSame = 'The passwords aren\'t the same!';
+$strPassword = 'Password';
+$strPBXTDataFileGrowSize = 'Data file grow size';
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.';
+$strPBXTDataLogThreshold = 'Data log threshold';
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.';
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.';
+$strPBXTGarbageThreshold = 'Garbage threshold';
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.';
+$strPBXTCheckpointFrequency = 'Checkpoint frequency';
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.';
+$strPBXTIndexCacheSize = 'Index cache size';
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.';
+$strPBXTLogBufferSize = 'Log buffer size';
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.';
+$strPBXTLogCacheSize = 'Log cache size';
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.';
+$strPBXTLogFileCount = 'Log file count';
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.';
+$strPBXTLogFileThreshold = 'Log file threshold';
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.';
+$strPBXTRecordCacheSize = 'Record cache size';
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.';
+$strPBXTRowFileGrowSize = 'Row file grow size';
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.';
+$strPBXTTransactionBufferSize = 'Transaction buffer size';
+$strPdfDbSchema = 'Schema of the "%s" database - Page %s';
+$strPdfInvalidTblName = 'The "%s" table doesn\'t exist!';
+$strPdfNoTables = 'No tables';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)';
+$strPDFReportTitle = 'Report title';
+$strPerHour = 'per hour';
+$strPerMinute = 'per minute';
+$strPerSecond = 'per second';
+$strPersian = 'Persian';
+$strPhoneBook = 'phone book';
+$strPhp = 'Create PHP Code';
+$strPHPExtension = 'PHP extension';
+$strPHPVersion = 'PHP Version';
+$strPlayAudio = 'Play audio';
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key';
+$strPmaDocumentation = 'phpMyAdmin documentation';
+$strPmaUriError = 'The <tt>$cfg[\'PmaAbsoluteUri\']</tt> directive MUST be set in your configuration file!';
+$strPolish = 'Polish';
+$strPortrait = 'Portrait';
+$strPos1 = 'Begin';
+$strPrevious = 'Previous';
+$strPrimaryKeyHasBeenDropped = 'The primary key has been dropped';
+$strPrimaryKeyName = 'The name of the primary key must be "PRIMARY"!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!)';
+$strPrimary = 'Primary';
+$strPrint = 'Print';
+$strPrintViewFull = 'Print view (with full texts)';
+$strPrintView = 'Print view';
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.';
+$strPrivDescAlter = 'Allows altering the structure of existing tables.';
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.';
+$strPrivDescCreateDb = 'Allows creating new databases and tables.';
+$strPrivDescCreateRoutine = 'Allows creating stored routines.';
+$strPrivDescCreateTbl = 'Allows creating new tables.';
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.';
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.';
+$strPrivDescCreateView = 'Allows creating new views.';
+$strPrivDescDelete = 'Allows deleting data.';
+$strPrivDescDropDb = 'Allows dropping databases and tables.';
+$strPrivDescDropTbl = 'Allows dropping tables.';
+$strPrivDescEvent = 'Allows to set up events for the event scheduler';
+$strPrivDescExecute = 'Allows running stored procedures; has no effect in this MySQL version.';
+$strPrivDescExecute5 = 'Allows executing stored routines.';
+$strPrivDescFile = 'Allows importing data from and exporting data into files.';
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.';
+$strPrivDescIndex = 'Allows creating and dropping indexes.';
+$strPrivDescInsert = 'Allows inserting and replacing data.';
+$strPrivDescLockTables = 'Allows locking tables for the current thread.';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.';
+$strPrivDescProcess = 'Allows viewing processes of all users';
+$strPrivDescReferences = 'Has no effect in this MySQL version.';
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.';
+$strPrivDescReplClient = 'Allows the user to ask where the slaves / masters are.';
+$strPrivDescReplSlave = 'Needed for the replication slaves.';
+$strPrivDescSelect = 'Allows reading data.';
+$strPrivDescShowDb = 'Gives access to the complete list of databases.';
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.';
+$strPrivDescShutdown = 'Allows shutting down the server.';
+$strPrivDescSuper = 'Allows connecting, even if maximum number of connections is reached; required for most administrative operations like setting global variables or killing threads of other users.';
+$strPrivDescTrigger = 'Allows creating and dropping triggers';
+$strPrivDescUpdate = 'Allows changing data.';
+$strPrivDescUsage = 'No privileges.';
+$strPrivileges = 'Privileges';
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.';
+$strProcedures = 'Procedures';
+$strProcesses = 'Processes';
+$strProcesslist = 'Process list';
+$strProfiling = 'Profiling';
+$strProtocolVersion = 'Protocol version';
+$strPutColNames = 'Put fields names in the first row';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Query';
+$strQueryCache = 'Query cache';
+$strQueryFrame = 'Query window';
+$strQueryOnDb = 'SQL query on database <b>%s</b>:';
+$strQueryResultsOperations = 'Query results operations';
+$strQuerySQLHistory = 'SQL history';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+$strQueryTime = 'Query took %01.4f sec';
+$strQueryType = 'Query type';
+$strQueryWindowLock = 'Do not overwrite this query from outside the window';
+
+$strReadRequests = 'Read requests';
+$strRebuild = 'Rebuild';
+$strReceived = 'Received';
+$strRecommended = 'recommended';
+$strRecords = 'Records';
+$strReferentialIntegrity = 'Check referential integrity:';
+$strRefresh = 'Refresh';
+$strRelationalDisplayField = 'Relational display field';
+$strRelationalKey = 'Relational key';
+$strRelationalSchema = 'Relational schema';
+$strRelationDeleted = 'Relation deleted';
+$strRelationNotWorking = 'The additional features for working with linked tables have been deactivated. To find out why click %shere%s.';
+$strRelationsForTable = 'RELATIONS FOR TABLE';
+$strRelations = 'Relations';
+$strRelationView = 'Relation view';
+$strReloadingThePrivileges = 'Reloading the privileges';
+$strReloadPrivileges = 'Reload privileges';
+$strReload = 'Reload';
+$strRemovePartitioning = 'Remove partitioning';
+$strRemoveSelectedUsers = 'Remove selected users';
+$strRenameDatabaseOK = 'Database %s has been renamed to %s';
+$strRenameTableOK = 'Table %s has been renamed to %s';
+$strRenameTable = 'Rename table to';
+$strRepair = 'Repair';
+$strRepairTable = 'Repair table';
+$strReplaceNULLBy = 'Replace NULL by';
+$strReplaceTable = 'Replace table data with file';
+$strReplication = 'Replication';
+$strReset = 'Reset';
+$strResourceLimits = 'Resource limits';
+$strRestartInsertion = 'Restart insertion with %s rows';
+$strReType = 'Re-type';
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.';
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.';
+$strRevokeMessage = 'You have revoked the privileges for %s';
+$strRevoke = 'Revoke';
+$strRomanian = 'Romanian';
+$strRoutineReturnType = 'Return type';
+$strRoutines = 'Routines';
+$strRowLength = 'Row length';
+$strRowsAffected = '%1$d row(s) affected.';
+$strRowsDeleted = '%1$d row(s) deleted.';
+$strRowsFrom = 'row(s) starting from record #';
+$strRowsInserted = '%1$d row(s) inserted.';
+$strRowSize = ' Row size ';
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)';
+$strRowsModeHorizontal = 'horizontal';
+$strRowsModeOptions = 'in %s mode and repeat headers after %s cells';
+$strRowsModeVertical = 'vertical';
+$strRows = 'Rows';
+$strRowsStatistic = 'Row Statistics';
+$strRunning = 'running on %s';
+$strRunQuery = 'Submit Query';
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s';
+$strRunSQLQuery = 'Run SQL query/queries on database %s';
+$strRussian = 'Russian';
+
+$strSaveOnServer = 'Save on server in %s directory';
+$strSavePosition = 'Save position';
+$strSave = 'Save';
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page';
+$strSearchFormTitle = 'Search in database';
+$strSearchInField = 'Inside field:';
+$strSearchInTables = 'Inside table(s):';
+$strSearchNeedle = 'Word(s) or value(s) to search for (wildcard: "%"):';
+$strSearchOption1 = 'at least one of the words';
+$strSearchOption2 = 'all words';
+$strSearchOption3 = 'the exact phrase';
+$strSearchOption4 = 'as regular expression';
+$strSearchResultsFor = 'Search results for "<i>%s</i>" %s:';
+$strSearch = 'Search';
+$strSearchType = 'Find:';
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).';
+$strSelectADb = 'Please select a database';
+$strSelectAll = 'Select All';
+$strSelectBinaryLog = 'Select binary log to view';
+$strSelectFields = 'Select fields (at least one):';
+$strSelectForeignKey = 'Select Foreign Key';
+$strSelectNumRows = 'in query';
+$strSelectReferencedKey = 'Select referenced key';
+$strSelectTables = 'Select Tables';
+$strSend = 'Save as file';
+$strSent = 'Sent';
+$strServerChoice = 'Server Choice';
+$strServerNotResponding = 'The server is not responding';
+$strServer = 'Server';
+$strServers = 'Servers';
+$strServerStatusDelayedInserts = 'Delayed inserts';
+$strServerStatus = 'Runtime Information';
+$strServerStatusUptime = 'This MySQL server has been running for %s. It started up on %s.';
+$strServerTabVariables = 'Variables';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strServerVars = 'Server variables and settings';
+$strServerVersion = 'Server version';
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.';
+$strSessionValue = 'Session value';
+$strSetEnumVal = 'If field type is "enum" or "set", please enter the values using this format: \'a\',\'b\',\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion';
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth';
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.';
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server';
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users';
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication';
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters';
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters';
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.';
+$strSetupblowfish_secret_name = 'Blowfish secret';
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows';
+$strSetupBrowseMarkerEnable_name = 'Row marker';
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor';
+$strSetupBrowsePointerEnable_name = 'Highlight pointer';
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations';
+$strSetupBZipDump_name = 'Bzip2';
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.';
+$strSetupCannotLoadConfig = 'Cannot load or save configuration';
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.';
+$strSetupClear = 'Clear';
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature';
+$strSetupCompressOnFly_name = 'Compress on the fly';
+$strSetupConfigurationFile = 'Configuration file';
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data';
+$strSetupConfirm_name = 'Confirm DROP queries';
+$strSetupDefaultCharset_desc = 'Default character set used for conversions';
+$strSetupDefaultCharset_name = 'Default character set';
+$strSetupDefaultLanguage = 'Default language';
+$strSetupDefaultServer = 'Default server';
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database';
+$strSetupDefaultTabDatabase_name = 'Default database tab';
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server';
+$strSetupDefaultTabServer_name = 'Default server tab';
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table';
+$strSetupDefaultTabTable_name = 'Default table tab';
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.';
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down';
+$strSetupDisplayDatabasesList_name = 'Display databases as a list';
+$strSetupDisplay = 'Display';
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down';
+$strSetupDisplayServersList_name = 'Display servers as a list';
+$strSetupDonateLink = 'Donate';
+$strSetupDownload = 'Download';
+$strSetupEndOfLine = 'End of line';
+$strSetuperror_connection = 'Could not connect to MySQL server';
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb';
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb';
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method';
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method';
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method';
+$strSetuperror_form = 'Submitted form contains errors';
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s';
+$strSetuperror_incorrect_port = 'Not a valid port number';
+$strSetuperror_incorrect_value = 'Incorrect value';
+$strSetuperror_missing_field_data = 'Missing data for %s';
+$strSetuperror_nan_nneg = 'Not a non-negative number';
+$strSetuperror_nan_p = 'Not a positive number';
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)';
+$strSetupExecTimeLimit_name = 'Maximum execution time';
+$strSetupExport_asfile_name = 'Save as file';
+$strSetupExport_compression_name = 'Compression';
+$strSetupExport_file_template_database_name = 'Database name template';
+$strSetupExport_file_template_server_name = 'Server name template';
+$strSetupExport_file_template_table_name = 'Table name template';
+$strSetupExport_format_name = 'Format';
+$strSetupExport_charset_name = 'Character set of the file';
+$strSetupExport_onserver_name = 'Save on server';
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)';
+$strSetupExport_remember_file_template_name = 'Remember file name template';
+$strSetupFalse = 'no';
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin';
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it';
+$strSetupForceSSL_name = 'Force SSL connection';
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value';
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order';
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present';
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit';
+$strSetupForm_Browse = 'Browse mode';
+$strSetupForm_Browse_desc = 'Customize browse mode';
+$strSetupForm_Edit_desc = 'Customize edit mode';
+$strSetupForm_Edit = 'Edit mode';
+$strSetupForm_Export_defaults_desc = 'Customize default export options';
+$strSetupForm_Export_defaults = 'Export defaults';
+$strSetupForm_Import_defaults_desc = 'Customize default common import options';
+$strSetupForm_Import_defaults = 'Import defaults';
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options';
+$strSetupForm_Import_export = 'Import / export';
+$strSetupForm_Left_databases = 'Databases';
+$strSetupForm_Left_databases_desc = 'Databases display options';
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame';
+$strSetupForm_Left_frame = 'Navigation frame';
+$strSetupForm_Left_servers_desc = 'Servers display options';
+$strSetupForm_Left_servers = 'Servers';
+$strSetupForm_Left_tables_desc = 'Tables display options';
+$strSetupForm_Left_tables = 'Tables';
+$strSetupForm_Main_frame = 'Main frame';
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else';
+$strSetupForm_Other_core_settings = 'Other core settings';
+$strSetupForm_Query_window_desc = 'Customize query window options';
+$strSetupForm_Query_window = 'Query window';
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL';
+$strSetupForm_Security = 'Security';
+$strSetupForm_Server = 'Basic settings';
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for';
+$strSetupForm_Server_config = 'Server configuration';
+$strSetupForm_Server_desc = 'Enter server connection parameters';
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication';
+$strSetupForm_Server_login_options = 'Signon login options';
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation';
+$strSetupForm_Server_pmadb = 'PMA database';
+$strSetupFormset_customization = 'Customization';
+$strSetupFormset_export = 'Customize export options';
+$strSetupFormset_features = 'Features';
+$strSetupFormset_import = 'Customize import defaults';
+$strSetupFormset_left_frame = 'Customize navigation frame';
+$strSetupFormset_main_frame = 'Customize main frame';
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes';
+$strSetupForm_Sql_box = 'SQL Query box';
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings';
+$strSetupForm_Sql_queries = 'SQL queries';
+$strSetupForm_Startup_desc = 'Customize startup page';
+$strSetupForm_Startup = 'Startup';
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work';
+$strSetupForm_Tabs = 'Tabs';
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations';
+$strSetupGZipDump_name = 'GZip';
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.';
+$strSetupHomepageLink = 'phpMyAdmin homepage';
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields';
+$strSetupCharEditing_name = 'CHAR fields editing';
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas';
+$strSetupCharTextareaCols_name = 'CHAR textarea columns';
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas';
+$strSetupCharTextareaRows_name = 'CHAR textarea rows';
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions';
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv';
+$strSetupIgnoreErrors = 'Ignore errors';
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed';
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors';
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.';
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt';
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable';
+$strSetupImport_format_name = 'Format of imported file';
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start';
+$strSetupImport_skip_queries_name = 'Partial import: skip queries';
+$strSetupInsecureConnection = 'Insecure connection';
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!';
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.';
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time';
+$strSetupInsertRows_name = 'Number of inserted rows';
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon';
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame';
+$strSetupLeftDisplayLogo_name = 'Display logo';
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame';
+$strSetupLeftDisplayServers_name = 'Display servers selection';
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels';
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator';
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)';
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree';
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once';
+$strSetupLeftFrameLight_name = 'Use light version';
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth';
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels';
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator';
+$strSetupLeftLogoLink_name = 'Logo link URL';
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])';
+$strSetupLeftLogoLinkWindow_name = 'Logo link target';
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor';
+$strSetupLeftPointerEnable_name = 'Enable highlighting';
+$strSetupLetUserChoose = 'let the user choose';
+$strSetupLightTabs_desc = 'Use less graphically intense tabs';
+$strSetupLightTabs_name = 'Light tabs';
+$strSetupLoad = 'Load';
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.';
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout';
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode';
+$strSetupLoginCookieRecall_name = 'Recall user name';
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.';
+$strSetupLoginCookieStore_name = 'Login cookie store';
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid';
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.';
+$strSetupLoginCookieValidity_name = 'Login cookie validity';
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list';
+$strSetupMaxDbList_name = 'Maximum databases';
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed';
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length';
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.';
+$strSetupMaxRows_name = 'Maximum number of rows to display';
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list';
+$strSetupMaxTableList_name = 'Maximum tables';
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)';
+$strSetupMemoryLimit_name = 'Memory limit';
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both';
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar';
+$strSetupNewServer = 'New server';
+$strSetupNoServers = 'There are no configured servers';
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers';
+$strSetupOBGzip_name = 'GZip output buffering';
+$strSetupOptionNone = '- none -';
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise';
+$strSetupOrder_name = 'Default sorting order';
+$strSetupOverview = 'Overview';
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases';
+$strSetupPersistentConnections_name = 'Persistent connections';
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both';
+$strSetupPropertiesIconic_name = 'Iconic table operations';
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing';
+$strSetupProtectBinary_name = 'Protect binary fields';
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).';
+$strSetupQueryHistoryDB_name = 'Permanent query history';
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history';
+$strSetupQueryHistoryMax_name = 'Query history length';
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window';
+$strSetupQueryWindowDefTab_name = 'Default query window tab';
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion';
+$strSetupRecodingEngine_name = 'Recoding engine';
+$strSetupRestoreDefaultValue = 'Restore default value';
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values';
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server';
+$strSetupSaveDir_name = 'Save directory';
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].';
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons';
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.';
+$strSetupServersAdd = 'Add a new server';
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used';
+$strSetupServers_AllowDeny_order_name = 'Host authentication order';
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults';
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules';
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password';
+$strSetupServers_AllowRoot_name = 'Allow root login';
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf';
+$strSetupServers_auth_swekey_config_name = 'SweKey config file';
+$strSetupServers_auth_type_desc = 'Authentication method to use';
+$strSetupServers_auth_type_name = 'Authentication type';
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]';
+$strSetupServers_bookmarktable_name = 'Bookmark table';
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]';
+$strSetupServers_column_info_name = 'Column information table';
+$strSetupServers_compress_desc = 'Compress connection to MySQL server';
+$strSetupServers_compress_name = 'Compress connection';
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure';
+$strSetupServers_connect_type_name = 'Connection type';
+$strSetupServers_controlpass_name = 'Control user password';
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]';
+$strSetupServers_controluser_name = 'Control user';
+$strSetupServers_CountTables_desc = 'Count tables when showing database list';
+$strSetupServers_CountTables_name = 'Count tables';
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]';
+$strSetupServers_designer_coords_name = 'Designer table';
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]';
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA';
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.';
+$strSetupServersEdit = 'Edit server';
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported';
+$strSetupServers_extension_name = 'PHP extension to use';
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)';
+$strSetupServers_hide_db_name = 'Hide databases';
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]';
+$strSetupServers_history_name = 'SQL query history table';
+$strSetupServers_host_desc = '';
+$strSetupServers_host_name = 'Server hostname';
+$strSetupServers_LogoutURL_name = 'Logout URL';
+$strSetupServers_nopassword_desc = 'Try to connect without password';
+$strSetupServers_nopassword_name = 'Connect without password';
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\'';
+$strSetupServers_only_db_name = 'Show only listed databases';
+$strSetupServers_password_desc = 'Leave empty if not using config auth';
+$strSetupServers_password_name = 'Password for config auth';
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]';
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table';
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]';
+$strSetupServers_pmadb_name = 'PMA database';
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default';
+$strSetupServers_port_name = 'Server port';
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]';
+$strSetupServers_relation_name = 'Relation table';
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases';
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command';
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example';
+$strSetupServers_SignonSession_name = 'Signon session name';
+$strSetupServers_SignonURL_name = 'Signon URL';
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it';
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default';
+$strSetupServers_socket_name = 'Server socket';
+$strSetupServers_ssl_desc = '';
+$strSetupServers_ssl_name = 'Use SSL';
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]';
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates';
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]';
+$strSetupServers_table_info_name = 'Display fields table';
+$strSetupServers_user_desc = 'Leave empty if not using config auth';
+$strSetupServers_user_name = 'User for config auth';
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running';
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance';
+$strSetupServers_verbose_check_name = 'Verbose check';
+$strSetupServers_verbose_name = 'Verbose name of this server';
+$strSetupSetValue = 'Set value: %s';
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button';
+$strSetupShowAll_name = 'Allow to display all the rows';
+$strSetupShowCreateDb_name = 'Show create database form';
+$strSetupShowForm = 'Show form';
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode';
+$strSetupShowFunctionFields_name = 'Show function fields';
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)';
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly';
+$strSetupShowChgPassword_name = 'Show password change form';
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output';
+$strSetupShowPhpInfo_name = 'Show phpinfo() link';
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information';
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed';
+$strSetupShowSQL_name = 'Show SQL queries';
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)';
+$strSetupShowStats_name = 'Show statistics';
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name';
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name';
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged';
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name';
+$strSetupShowTooltip_name = 'Display table comments in tooltips';
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables';
+$strSetupSkipLockedTables_name = 'Skip locked tables';
+$strSetupSQLQuery_Edit_name = 'Edit';
+$strSetupSQLQuery_Explain_name = 'Explain SQL';
+$strSetupSQLQuery_Refresh_name = 'Refresh';
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code';
+$strSetupSQLQuery_Validate_name = 'Validate SQL';
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty';
+$strSetupSuggestDBName_name = 'Suggest new database name';
+$strSetupTrue = 'yes';
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]';
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny';
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import';
+$strSetupUploadDir_name = 'Upload directory';
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database';
+$strSetupUseDbSearch_name = 'Use database search';
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.';
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements';
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.';
+$strSetupVersionCheckInvalid = 'Got invalid version string from server';
+$strSetupVersionCheckLink = 'Check for latest version';
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.';
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.';
+$strSetupVersionCheckNone = 'No newer stable version is available';
+$strSetupVersionCheckUnparsable = 'Unparsable version string';
+$strSetupVersionCheck = 'Version check';
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.';
+$strSetupWarning = 'Warning';
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations';
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.';
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.';
+$strSetupZipDump_name = 'ZIP';
+$strShowAll = 'Show all';
+$strShowColor = 'Show color';
+$strShowDatadictAs = 'Data Dictionary Format';
+$strShowFullQueries = 'Show Full Queries';
+$strShowGrid = 'Show grid';
+$strShowHideLeftMenu = 'Show/Hide left menu';
+$strShowingBookmark = 'Showing bookmark';
+$strShowingPhp = 'Showing as PHP code';
+$strShowingRecords = 'Showing rows';
+$strShowingSQL = 'Showing SQL query';
+$strShowKeys = 'Only show keys';
+$strShowOpenTables = 'Show open tables';
+$strShowPHPInfo = 'Show PHP information';
+$strShow = 'Show';
+$strShowSlaveHosts = 'Show slave hosts';
+$strShowSlaveStatus = 'Show slave status';
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.';
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.';
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.';
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.';
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).';
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.';
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.';
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.';
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.';
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.';
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.';
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.';
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.';
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.';
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.';
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.';
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.';
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.';
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.';
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.';
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.';
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.';
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.';
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.';
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.';
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of pages that have been written for doublewrite operations.';
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite operations that have been performed.';
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.';
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.';
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.';
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.';
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.';
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.';
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.';
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.';
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.';
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.';
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.';
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.';
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.';
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.';
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.';
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.';
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.';
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.';
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.';
+$strShowStatusOpen_filesDescr = 'The number of files that are open.';
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).';
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.';
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.';
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.';
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.';
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.';
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).';
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.';
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.';
+$strShowStatusReset = 'Reset';
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).';
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.';
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.';
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)';
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)';
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.';
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.';
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.';
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.';
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.';
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.';
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.';
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.';
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.';
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.';
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.';
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.';
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.';
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)';
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.';
+$strShowTableDimension = 'Show dimension of tables';
+$strShowTables = 'Show tables';
+$strShowThisQuery = ' Show this query here again ';
+$strSimplifiedChinese = 'Simplified Chinese';
+$strSingly = '(singly)';
+$strSize = 'Size';
+$strSkipQueries = 'Number of records (queries) to skip from start';
+$strSlovak = 'Slovak';
+$strSlovenian = 'Slovenian';
+$strSmallBigAll = 'Small/Big All';
+$strSnapToGrid = 'Snap to grid';
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)';
+$strSortByKey = 'Sort by key';
+$strSorting = 'Sorting';
+$strSort = 'Sort';
+$strSpaceUsage = 'Space usage';
+$strSpanish = 'Spanish';
+$strSplitWordsWithSpace = 'Words are separated by a space character (" ").';
+$strSQLCompatibility = 'SQL compatibility mode';
+$strSQLExportType = 'Export type';
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:';
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem';
+$strSQLQuery = 'SQL query';
+$strSQLResult = 'SQL result';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Invalid Identifer';
+$strSQPBugUnclosedQuote = 'Unclosed quote';
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String';
+$strStandInStructureForView = 'Stand-in structure for view';
+$strStatCreateTime = 'Creation';
+$strStatement = 'Statements';
+$strStatCheckTime = 'Last check';
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.';
+$strStatUpdateTime = 'Last update';
+$strStatus = 'Status';
+$strStorageEngines = 'Storage Engines';
+$strStorageEngine = 'Storage Engine';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Structure and data';
+$strStrucExcelCSV = 'CSV for MS Excel';
+$strStrucNativeExcel = 'Native MS Excel format';
+$strStrucOnly = 'Structure only';
+$strStructPropose = 'Propose table structure';
+$strStructureForView = 'Structure for view';
+$strStructure = 'Structure';
+$strSubmit = 'Submit';
+$strSuccess = 'Your SQL query has been executed successfully';
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.';
+$strSum = 'Sum';
+$strSwedish = 'Swedish';
+$strSwekeyAuthenticating = 'Authenticating...';
+$strSwekeyAuthFailed = 'Hardware authentication failed';
+$strSwekeyNoKeyId = 'File %s does not contain any key id';
+$strSwekeyNoKey = 'No valid authentication key plugged';
+$strSwitchToDatabase = 'Switch to copied database';
+$strSwitchToTable = 'Switch to copied table';
+
+$strTableAlreadyExists = 'Table %s already exists!';
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully';
+$strTableComments = 'Table comments';
+$strTableEmpty = 'The table name is empty!';
+$strTableHasBeenCreated = 'Table %1$s has been created.';
+$strTableHasBeenDropped = 'Table %s has been dropped';
+$strTableHasBeenEmptied = 'Table %s has been emptied';
+$strTableHasBeenFlushed = 'Table %s has been flushed';
+$strTableIsEmpty = 'Table seems to be empty!';
+$strTableMaintenance = 'Table maintenance';
+$strTableName = 'Table name';
+$strTableOfContents = 'Table of contents';
+$strTableOptions = 'Table options';
+$strTables = '%s table(s)';
+$strTableStructure = 'Table structure for table';
+$strTable = 'Table';
+$strTakeIt = 'take it';
+$strTblPrivileges = 'Table-specific privileges';
+$strTempData = 'Temporary data';
+$strTextAreaLength = ' Because of its length,<br /> this field might not be editable ';
+$strTexyText = 'Texy! text';
+$strThai = 'Thai';
+$strThemeDefaultNotFound = 'Default theme %s not found!';
+$strThemeNoPreviewAvailable = 'No preview available.';
+$strThemeNotFound = 'Theme %s not found!';
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!';
+$strThemePathNotFound = 'Theme path not found for theme %s!';
+$strTheme = 'Theme / Style';
+$strThisHost = 'This Host';
+$strThreads = 'Threads';
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.';
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.';
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.';
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.';
+$strTime = 'Time';
+$strToFromPage = 'to/from page';
+$strToggleScratchboard = 'Toggle scratchboard';
+$strToggleSmallBig = 'Toggle small/big';
+$strToSelectRelation = 'To select relation, click :';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'Traditional Chinese';
+$strTraditionalSpanish = 'Traditional Spanish';
+$strTraffic = 'Traffic';
+$strTransactionCoordinator = 'Transaction coordinator';
+$strTransformation_application_octetstream__download = 'Displays a link to download the binary data of the field. You can use the first option to specify the filename, or use the second option as the name of a field which contains the filename. If you use the second option, you need to set the first option to the empty string.';
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).';
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail. The options are the maximum width and height in pixels. The original aspect ratio is preserved.';
+$strTransformation_image_jpeg__link = 'Displays a link to download this image.';
+$strTransformation_image_png__inline = 'See image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.';
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds it the field data via standard input. Returns the standard output of the application. The default is Tidy, to pretty-print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and list the tools you want to make available. The first option is then the number of the program you want to use and the second option is the parameters for the program. The third option, if set to 1, will convert the output using htmlspecialchars() (Default 1). The fourth option, if set to 1, will prevent wrapping and ensure that the output appears all on one line (Default 1).';
+$strTransformation_text_plain__formatted = 'Displays the contents of the field as-is, without running it through htmlspecialchars(). That is, the field is assumed to contain valid HTML.';
+$strTransformation_text_plain__imagelink = 'Displays an image and a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second and third options are the width and the height in pixels.';
+$strTransformation_text_plain__link = 'Displays a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second option is a title for the link.';
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.';
+$strTransformation_text_plain__substr = 'Displays a part of a string. The first option is the number of characters to skip from the beginning of the string (Default 0). The second option is the number of characters to return (Default: until end of string). The third option is the string to append and/or prepend when truncation occurs (Default: "...").';
+$strTriggers = 'Triggers';
+$strTruncateQueries = 'Truncate Shown Queries';
+$strTurkish = 'Turkish';
+$strType = 'Type';
+
+$strUkrainian = 'Ukrainian';
+$strUncheckAll = 'Uncheck All';
+$strUnicode = 'Unicode';
+$strUnique = 'Unique';
+$strUnknown = 'unknown';
+$strUnselectAll = 'Unselect All';
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.';
+$strUpdatePrivMessage = 'You have updated the privileges for %s.';
+$strUpdateProfileMessage = 'The profile has been updated.';
+$strUpdateQuery = 'Update Query';
+$strUpdComTab = 'Please see the documentation on how to update your column_comments table';
+$strUpgrade = 'You should upgrade to %s %s or later.';
+$strUploadErrorCantWrite = 'Failed to write file to disk.';
+$strUploadErrorExtension = 'File upload stopped by extension.';
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.';
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.';
+$strUploadErrorNoTempDir = 'Missing a temporary folder.';
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.';
+$strUploadErrorUnknown = 'Unknown error in file upload.';
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.';
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.';
+$strUsage = 'Usage';
+$strUseBackquotes = 'Enclose table and field names with backquotes';
+$strUseHostTable = 'Use Host Table';
+$strUserAlreadyExists = 'The user %s already exists!';
+$strUserEmpty = 'The user name is empty!';
+$strUserName = 'User name';
+$strUserNotFound = 'The selected user was not found in the privilege table.';
+$strUserOverview = 'User overview';
+$strUsersDeleted = 'The selected users have been deleted successfully.';
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;';
+$strUser = 'User';
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere';
+$strUseTables = 'Use Tables';
+$strUseTextField = 'Use text field';
+$strUseThisValue = 'Use this value';
+
+$strValidateSQL = 'Validate SQL';
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary PHP extensions as described in the %sdocumentation%s.';
+$strValue = 'Value';
+$strVar = 'Variable';
+$strVersionInformation = 'Version information';
+$strViewDumpDatabases = 'View dump (schema) of databases';
+$strViewDumpDB = 'View dump (schema) of database';
+$strViewDump = 'View dump (schema) of table';
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.';
+$strViewHasBeenDropped = 'View %s has been dropped';
+$strViewImage = 'View image';
+$strViewName = 'VIEW name';
+$strViewVideo = 'View video';
+$strView = 'View';
+
+$strWebServerUploadDirectoryError = 'The directory you set for upload work cannot be reached';
+$strWebServerUploadDirectory = 'web server upload directory';
+$strWebServer = 'Web server';
+$strWelcome = 'Welcome to %s';
+$strWestEuropean = 'West European';
+$strWiki = 'Wiki';
+$strWildcard = 'wildcard';
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window, or your browser\'s security settings are configured to block cross-window updates.';
+$strWithChecked = 'With selected:';
+$strWriteRequests = 'Write requests';
+$strWrongUser = 'Wrong username/password. Access denied.';
+
+$strXML = 'XML';
+
+$strYes = 'Yes';
+
+$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.';
+$strZip = '"zipped"';
+
+?>
diff --git a/lang/estonian-utf-8.inc.php b/lang/estonian-utf-8.inc.php
new file mode 100644
index 0000000000..6bcc939835
--- /dev/null
+++ b/lang/estonian-utf-8.inc.php
@@ -0,0 +1,1453 @@
+<?php
+/* $Id$ */
+
+/*
+ * Translated by Marko Ellermaa, <marko.ellermaa@nlkp.net>
+ * Previous translations by Alvar Soome <finsoft@users.sourceforge.net>
+ *
+ * March 2006: Several changes and fixes done (by Marko Ellermaa)
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Baiti', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Püh', 'Esm', 'Tei', 'Kol', 'Nel', 'Ree', 'Lau');
+$month = array('Jan', 'Veb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Det');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d.%m.%Y kell %H:%M:%S';
+$timespanfmt = '%s päeva, %s tundi, %s minutit ja %s sekundit';
+
+$strAbortedClients = 'Katkestatud';
+$strAccessDeniedCreateConfig = 'Arvatav põhjus on te pole veel loonud seadete faili. Soovitavalt võid kasutada %1$ssetup script%2$s et seadistada.';
+$strAccessDeniedExplanation = 'phpMyAdmin proovis ühenduda MySQL serveriga ja server lükkas ühenduse tagasi. Te peaksite kontrollima serverit, kasutajanime ja parooli config.inc.php failis ning kontrollima, et need vastaks infole mis te saite oma MySQL serveri administraatori käest.';
+$strAccessDenied = 'Ligipääs keelatud';
+$strAction = 'Tegevus';
+$strAddAutoIncrement = 'Lisa AUTO_INCREMENT väärtus';
+$strAddClause = 'Lisa %s';
+$strAddConstraints = 'Lisa piirangud';
+$strAddDeleteColumn = 'Lisa/Kustuta välja veerud';
+$strAddDeleteRow = 'Lisa/Kustuta kriteeriumirida';
+$strAddFields = 'Lisa %s väli(jad)';
+$strAddHeaderComment = 'Lisa vaba kommentaar päisesse (\\n eraldab read)';
+$strAddIntoComments = 'Lisa kommentaaridesse';
+$strAddNewField = 'Lisa uus väli';
+$strAddPrivilegesOnDb = 'Lisa privileegid antud andmebaasile';
+$strAddPrivilegesOnTbl = 'Lisa privileegid antud tabelile';
+$strAddSearchConditions = 'Lisa otsinguparameetrid ("WHERE" lause sisu):';
+$strAddToIndex = 'Lisa indeksisse &nbsp;%s&nbsp;rida/read';
+$strAddUser = 'Lisa uus kasutaja';
+$strAddUserMessage = 'Te lisasite uue kasutaja.';
+$strAdministration = 'Administreerimine';
+$strAfterInsertBack = 'Mine eelmisele lehele tagasi';
+$strAfterInsertNewInsert = 'Lisa järgmine uus rida';
+$strAfterInsertNext = 'Muuda järgmist rida';
+$strAfterInsertSame = 'Mine tagasi sellele lehele';
+$strAfter = 'Peale %s';
+$strAll = 'Kõik';
+$strAllowInterrupt = 'Luba katkestada Import juhul kui skript leiab et ajalimiit on ületamisel. See võib olla hea viis suurte failide importimisel, kuigi võib katkestada ülekanded.';
+$strAllTableSameWidth = 'kuva kõik tabelid sama laiusega?';
+$strAlterOrderBy = 'Muuda tabeli sorteeringut';
+$strAnalyzeTable = 'Analüüsi tabelit';
+$strAnd = 'ja';
+$strAndThen = 'ja siis';
+$strAngularLinks = 'Nurgelised lingid';
+$strAnIndex = 'Indeks lisati %s';
+$strAnyHost = 'Kõik masinad';
+$strAny = 'kõik';
+$strAnyUser = 'Kõik kasutajad';
+$strApproximateCount = 'Võib olla umbkaudne. Vaadake FAQ 3.11';
+$strAPrimaryKey = 'Primaarne võti lisati %s';
+$strArabic = 'Araabia';
+$strArmenian = 'Armeenia';
+$strAscending = 'Kasvav';
+$strAtBeginningOfTable = 'Tabeli algusesse';
+$strAtEndOfTable = 'Tabeli lõppu';
+$strAttr = 'Parameetrid';
+$strAutomaticLayout = 'Automaatne väljund';
+
+$strBack = 'Tagasi';
+$strBaltic = 'Balti';
+$strBeginCut = 'ALUSTA LÕIGET';
+$strBeginRaw = 'ALUSTA PUHAST';
+$strBinary = 'Binaarne';
+$strBinaryDoNotEdit = 'Binaarne - ärge muutke';
+$strBinaryLog = 'Binaarne logi';
+$strBinLogEventType = 'Sündmuse tüüp';
+$strBinLogInfo = 'Informatsioon';
+$strBinLogName = 'Logi nimi';
+$strBinLogOriginalPosition = 'Originaal positioon';
+$strBinLogPosition = 'Positsioon';
+$strBinLogServerId = 'Serveri ID';
+$strBookmarkAllUsers = 'Anna kõikidele kasutajatele juurdepääs sellele järjehodjale';
+$strBookmarkCreated = 'Järjehoidja %s loodud';
+$strBookmarkDeleted = 'Järjehodja kustutati.';
+$strBookmarkLabel = 'Nimetus';
+$strBookmarkQuery = 'Järjehodjaga SQL päring';
+$strBookmarkReplace = 'Kirjuta samanimeline järjehoidja üle';
+$strBookmarkThis = 'Lisa see SQL päring järjehoidjasse';
+$strBookmarkView = 'Vaata ainult';
+$strBrowseDistinctValues = 'Sirvi erinevaid väärtusi';
+$strBrowseForeignValues = 'Vaata väliseid väärtuseid';
+$strBrowse = 'Vaata';
+$strBufferPoolActivity = 'Puhverdusala aktiivsus';
+$strBufferPool = 'Puhverdusala';
+$strBufferPoolUsage = 'Puhverdusala kasutamine';
+$strBufferReadMissesInPercent = 'Lugemis vigasid %';
+$strBufferReadMisses = 'Lugemis vigasid';
+$strBufferWriteWaitsInPercent = 'Kirjutamine ootab %';
+$strBufferWriteWaits = 'Kirjutamine ootab';
+$strBulgarian = 'Bulgaaria';
+$strBusyPages = 'Hõivatud lehed';
+$strBzip = '"bzipitud"';
+
+$strCalendar = 'Kalender';
+$strCancel = 'Katkesta';
+$strCanNotLoadExportPlugins = 'Viga eksportimis moodulite laadimisel, palun kontrolli seadeid!';
+$strCanNotLoadImportPlugins = 'Pole võimalik Importida mooduleid (plugins), palun kontrolli seadeid!';
+$strCannotLogin = 'Ei suuda MySQL serverisse logida';
+$strCantLoad = 'ei suutnud lugeda moodulit %s,<br />palun kontrollige PHP konfiguratsiooni';
+$strCantLoadRecodeIconv = 'Ei suuda lugeda iconv või recode moodulit mida on vaja tähetabeli konvertimiseks, konfigureerige PHP-d nii, et see sisaldaks antud mooduleid või keelake tähetabeli konvertimine phpMyAdminis.';
+$strCantRenameIdxToPrimary = 'Ei suuda muuta indeksit PRIMAARSEKS!';
+$strCantUseRecodeIconv = 'Ei suuda kasutada iconv-d või libiconvi või recode_string funktsiooni kuigi moodul on installitud Kontrollige oma PHP konfiguratsiooni.';
+$strCardinality = 'Kasulikkus';
+$strCaseInsensitive = 'tõstutundetu';
+$strCaseSensitive = 'tõstutundlik';
+$strCentralEuropean = 'Kesk-Euroopa';
+$strChangeCopyModeCopy = '... hoia vana alles.';
+$strChangeCopyModeDeleteAndReload = ' ... kustuta vana kasutajate tabelist ja taaslae privileegid pärast seda.';
+$strChangeCopyModeJustDelete = ' ... kustuta vana kasutajate tabelist.';
+$strChangeCopyMode = 'Loo uus kasutaja samade privileegidega ja ...';
+$strChangeCopyModeRevoke = ' ... kanna kõik aktiivsed privileegid üle vanast ja kustuta see pärast.';
+$strChangeCopyUser = 'Vaheta logimisinformatsiooni / Kopeeri kasutaja';
+$strChangeDisplay = 'Vali väli mida kuvada';
+$strChange = 'Muuda';
+$strChangePassword = 'Muuda parooli';
+$strCharsetOfFile = 'Faili tähetabel:';
+$strCharsetsAndCollations = 'Tähetabelid ja määrangud';
+$strCharsets = 'Tähetabelid';
+$strCharset = 'Tähetabel';
+$strCheckAll = 'Märgista kõik';
+$strCheckOverhead = 'Kontrolli ülekulusid';
+$strCheckPrivs = 'Kontrollige privileege';
+$strCheckPrivsLong = 'Kontrolli privileege andmebaasile &quot;%s&quot;.';
+$strCheckTable = 'Kontrolli tabelit';
+$strChoosePage = 'Palun valige leht muutmiseks';
+$strColComFeat = 'Näitan veeru kommentaare';
+$strCollation = 'Määrang';
+$strColumnNames = 'Väljade nimed';
+$strColumnPrivileges = 'Väli-spetsiifilised privileegid';
+$strCommand = 'Käsk';
+$strComments = 'Kommentaarid';
+$strCompatibleHashing = 'MySQL&nbsp;4.0-iga ühilduv';
+$strCompleteInserts = 'Täispikk INSERT';
+$strCompression = 'Pakkimine';
+$strCompressionWillBeDetected = 'Imporditava faili pakkimise meetod leitakse automaatselt: %s';
+$strConfigDefaultFileError = 'Pole võimalik laadida vaikimisi seadete faili: "%1$s"';
+$strConfigFileError = 'phpMyAdmin ei suutnud lugeda Teie konfiguratsioonifaili!<br />See võib juhtuda kui PHP leiab vea selles või PHP ei leia antud faili üles.<br />Palun kutsuge konfiguratsioonifail välja otseselt kasutades linki allpool ja lugege PHP veateadet(eid) mis teile öeldakse. Enamustel juhtudel on kuskilt puudu ülakoma või semikoolon.<br />Kui Teile kuvatakse tühi leht on kõik korras.';
+$strConfigureTableCoord = 'Palun seadke koordinaadid tabelile %s';
+$strConnectionError = 'Ei saa ühendust: vigased seaded.';
+$strConnections = 'Ühendused';
+$strConstraintsForDumped = 'Piirangud salvestatud tabelitele';
+$strConstraintsForTable = 'Piirangud tabelile';
+$strCookiesRequired = 'Küpsised(cookies) peavad alates sellest momendist lubatud olema.';
+$strCopyDatabaseOK = 'Andmebaas %s on kopeeritud %s';
+$strCopy = 'Kopeeri';
+$strCopyTable = 'Kopeeri tabel (andmebaas<b>.</b>tabel):';
+$strCopyTableOK = 'Tabel %s on kopeeritud andmebaasi %s.';
+$strCopyTableSameNames = 'Ei saa tabelit iseendasse kopeerida!';
+$strCouldNotKill = 'phpMyAdmin ei suutnud katkestada protsessi %s. Tõenäoliselt on see juba suletud.';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE enne kopeerimist';
+$strCreateIndex = 'Loo indeks &nbsp;%s&nbsp;väljadest';
+$strCreateIndexTopic = 'Loo uus indeks';
+$strCreate = 'Loo';
+$strCreateNewDatabase = 'Loo uus andmebaas';
+$strCreateNewTable = 'Loo uus tabel andmebaasi %s';
+$strCreatePage = 'Loo uus leht';
+$strCreatePdfFeat = 'PDF-ide tegemine';
+$strCreateRelation = 'Suhte loomine (relation)';
+$strCreateTable = 'Loo tabel';
+$strCreateUserDatabase = 'Andmebaas kasutajale';
+$strCreateUserDatabaseName = 'Loo sama nimega andmebaas ja anna kõik õigused';
+$strCreateUserDatabaseNone = 'Puudub';
+$strCreateUserDatabaseWildcard = 'Anna kõik õigused Metanimele (username\_%)';
+$strCreationDates = 'Loo/muuda/kontrolli kuupäevi';
+$strCriteria = 'Kriteerium';
+$strCroatian = 'Horvaatia';
+$strCSV = 'CSV';
+$strCyrillic = 'Kirillitsa';
+$strCzechSlovak = 'Tsehhi-Slovaki';
+$strCzech = 'Tsehhi';
+
+$strDanish = 'Taani';
+$strData = 'Andmed';
+$strDatabase = 'Andmebaas';
+$strDatabaseEmpty = 'Andmebaasi nimi on tühi!';
+$strDatabaseExportOptions = 'Andmebaasi eksportimise seaded';
+$strDatabaseHasBeenDropped = 'Andmebaas %s kustutatud.';
+$strDatabases = 'Andmebaasid';
+$strDatabasesDropped = 'andmebaasid %s kustutati õnnestunult.';
+$strDatabasesStats = 'Andmebaaside statistika';
+$strDatabasesStatsDisable = 'Keelake statistika';
+$strDatabasesStatsEnable = 'Lubage statistika';
+$strDatabasesStatsHeavyTraffic = 'Märkus: Lubades siin andmebaasi statistika võite tekitada väga koormava liikuse webiserveri ja MySQL-i vahel.';
+$strDataDict = 'Andmesõnastik';
+$strDataOnly = 'Ainult andmed';
+$strDataPages = 'Lehed andmetega';
+$strDBComment = 'Andmebaasi kommentaar: ';
+$strDBCopy = 'Kopeeri andmebaas';
+$strDbIsEmpty = 'Andmebaas tundub olevat tühi!';
+$strDbPrivileges = 'Andmebaas-spetsiifilised privileegid';
+$strDBRename = 'Nimeta andmebaas ümber';
+$strDbSpecific = 'andmebaasipõhine';
+$strDefaultEngine = '%s on vaikimisi varundusmootor sellele MySQL serverile.';
+$strDefault = 'Vaikimisi';
+$strDefaultValueHelp = 'Vaikimisi väärtuse jaoks sisestage lihtsalt üksik väärtus, ilma kaldkriipsudega varjestamata ning jutumärkideta, kasutades järgmist kirjakuju: a';
+$strDefragment = 'Defrgamenteeri tabel';
+$strDelayedInserts = 'Kasuta ajastatud lisamisi';
+$strDeleteAndFlushDescr = 'See on parim tee, kuid privileegide taaslaadimine võib võtta aega.';
+$strDeleteAndFlush = 'Kustutage kasutajad ja taaslaadige privileegid pärast seda.';
+$strDeleted = 'Rida kustutatud';
+$strDelete = 'Kustuta';
+$strDeleteNoUsersSelected = 'Ühtegi kasutajat pole valitud kustutamiseks!';
+$strDeleteRelation = 'Kustuta suhe';
+$strDeleting = 'Kustutan %s';
+$strDelimiter = 'Eraldaja';
+$strDelOld = 'Antud lehel on viiteid tabelitele mida enam ei ole. Kas te soovite kustutada need viited?';
+$strDescending = 'Kahanev';
+$strDescription = 'Kirjeldus';
+$strDesigner = 'Kujundaja';
+$strDictionary = 'sõnaraamat';
+$strDirectLinks = 'Otselingid';
+$strDirtyPages = 'Mustad lehed';
+$strDisabled = 'Keelatud';
+$strDisableForeignChecks = 'Keela võõrvõtmete (foreign key) kontroll';
+$strDisplayFeat = 'Kuva võimalused';
+$strDisplayOrder = 'Näitamise järjekord:';
+$strDisplayPDF = 'Näita PDF skeemi';
+$strDoAQuery = 'Tee "päring näite järgi" (lühend: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentatsioon';
+$strDoYouReally = 'Kas te tõesti tahate ';
+$strDropDatabaseStrongWarning = 'Tähelepanu! Te HÄVITATE kogu andmebaasi!';
+$strDrop = 'Kustuta';
+$strDropUsersDb = 'Kustuta andmebaasid millel on samad nimed nagu kasutajatel.';
+$strDumpingData = 'Tabeli andmete salvestamine';
+$strDumpSaved = 'Väljavõte salvestati faili %s.';
+$strDumpXRows = 'Päri %s rida alustades reast %s.';
+$strDynamic = 'dünaamiline';
+
+$strEdit = 'Muuda';
+$strEditPDFPages = 'Muuda PDF lehti';
+$strEditPrivileges = 'Muuda privileege';
+$strEffective = 'Efektiivne';
+$strEmptyResultSet = 'MySQL tagastas tühja tulemuse (s.t. null rida).';
+$strEmpty = 'Tühjenda';
+$strEnabled = 'Lubatud';
+$strEncloseInTransaction = 'Lisa eksport ülekandesse';
+$strEndCut = 'LÕPETA LÕIGE';
+$strEnd = 'Lõpp';
+$strEndRaw = 'LÕPETA PUHAS';
+$strEngineAvailable = '%s on saadaval selles MySQL serveris.';
+$strEngineDisabled = '%s on keelatud selles MySQL serveris.';
+$strEngines = 'Mootor';
+$strEngineUnsupported = 'See MySQL server ei toeta %s varundusmootorit.';
+$strEnglish = 'Inglise';
+$strEnglishPrivileges = ' Märkus: MySQL privileegide nimed on ingliskeelsed ';
+$strErrorInZipFile = 'Viga ZIP arhiivis:';
+$strErrorRenamingTable = 'Viga tabeli nime %1$s muutimsel %2$s';
+$strError = 'Viga';
+$strEscapeWildcards = 'Metamärgid _ ja % peaksid olema varjestatud märgiga \, kui soovite neid sisestada';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Eesti';
+$strExcelEdition = 'Exceli versioon';
+$strExecuteBookmarked = 'Käivita salvestatud päring';
+$strExplain = 'Seleta SQL-i';
+$strExport = 'Ekspordi';
+$strExportImportToScale = 'Ekspordi/Impordi skaala';
+$strExportMustBeFile = 'Valitud eksportimise tüüp tuleb salvestada faili!';
+$strExtendedInserts = 'Laiendatud lisamised';
+$strExtra = 'Ekstra';
+
+$strFailedAttempts = 'Ebaõnnestunud üritused';
+$strFieldHasBeenDropped = 'Väli %s kustutatud';
+$strFieldsEnclosedBy = 'Väljad ümbritsetud';
+$strFieldsEscapedBy = 'Väljad varjatud';
+$strFieldsTerminatedBy = 'Väljad eraldatud';
+$strFields = 'Väljade arv';
+$strField = 'Väli';
+$strFileAlreadyExists = 'Fail %s on juba serveris olemas, muutke faili nime või kontrollige ülekirjutamise seadeid.';
+$strFileCouldNotBeRead = 'Faili ei suudetud lugeda';
+$strFileNameTemplateDescriptionDatabase = 'andmebaasi nimi';
+$strFileNameTemplateDescription = 'Seda väärtust on tõlgendatud kasutades %1$sstrftime%2$s, sa võid kasutada sama aja(time) formaati. Lisaks tulevad ka järgnevad muudatused: %3$s. Ülejäänud teks jääb nii nagu ta on.';
+$strFileNameTemplateDescriptionServer = 'serveri nimi';
+$strFileNameTemplateDescriptionTable = 'tabeli nimi';
+$strFileNameTemplate = 'Faili nime template';
+$strFileNameTemplateRemember = 'jäta template meelde';
+$strFileToImport = 'Imporditav Fail';
+$strFixed = 'parandatud';
+$strFlushPrivilegesNote = 'Märkus: phpMyAdmin võtab kasutajate privileegid otse MySQL privileges tabelist. Tabeli sisu võib erineda sellest, mida server hetkel kasutab, seda juhul kui olete käsitsi muudatusi teinud. Sellisel juhul peaksite te privileegid %staaslaadima%s enne jätkamist.';
+$strFlushQueryCache = 'Tühjenda päringute vahemälu';
+$strFlushTables = 'Tühjenda (sulge) kõik tabelid';
+$strFlushTable = 'Ühtlusta tabelid ("FLUSH")';
+$strFontSize = 'Fondi suurus';
+$strFormat = 'Formaat';
+$strFormEmpty = 'Puuduv väärtus vormis !';
+$strFreePages = 'Vabad lehed';
+$strFullText = 'Täistekstid';
+$strFunction = 'Funktsioon';
+$strFunctions = 'Funktsioonid';
+
+$strGenBy = 'Genereerija ';
+$strGeneralRelationFeat = 'Peamised seoste võimalused';
+$strGenerate = 'Genereeri';
+$strGeneratePassword = 'Genereeri parool';
+$strGenTime = 'Tegemisaeg';
+$strGeorgian = 'Gruusia';
+$strGerman = 'Saksa';
+$strGlobal = 'globaalne';
+$strGlobalPrivileges = 'Globaalsed privileegid';
+$strGlobalValue = 'Üldine väärtus';
+$strGo = 'Mine';
+$strGrantOption = 'Õigused';
+$strGreek = 'Kreeka';
+$strGzip = '"gzipitud"';
+
+$strHandler = 'Töötleja';
+$strHasBeenAltered = 'on muudetud.';
+$strHaveToShow = 'Te peate valima vähemalt ühe veeru kuvamiseks';
+$strHebrew = 'Heebrea';
+$strHelp = 'Abi';
+$strHide = 'Peida';
+$strHideShowAll = 'Peida/Näita kõik';
+$strHideShowNoRelation = 'Peida/Näita tabelid millel puudub suhe';
+$strHome = 'Esileht';
+$strHomepageOfficial = 'Ametlik phpMyAdmini koduleht';
+$strHostEmpty = 'Masin on tühi!';
+$strHost = 'Masin';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Ungari';
+
+$strIcelandic = 'Islandi';
+$strId = 'ID';
+$strIdxFulltext = 'Täistekst';
+$strIgnoreDuplicates = 'Ignoreeri korduvaid ridasid';
+$strIgnore = 'Ignoreeri';
+$strIgnoreInserts = 'Kasutaja ignoreeritavaid lisamisi';
+$strImportExportCoords = 'Impordi/Ekspordi kordinaadid PDF skeemile';
+$strImportFiles = 'Importige failid';
+$strImportFormat = 'Imporditud faili formaat';
+$strImport = 'Import';
+$strImportSuccessfullyFinished = 'Import lõppetati edukalt, %d päringut käivitatud.';
+$strIndexes = 'Indeksid';
+$strIndexHasBeenDropped = 'Indeks %s kustutatud';
+$strIndex = 'Indeks';
+$strIndexName = 'Indeksi nimi&nbsp;:';
+$strIndexType = 'Indeksi tüüp&nbsp;:';
+$strIndexWarningTable = 'Probleemid tabeli `%s` indeksitega';
+$strInnoDBAutoextendIncrement = 'Automaatne suurenduse laiendus';
+$strInnoDBAutoextendIncrementDesc = ' Automaatselt suurenev suurus mis lisatakse automaatselt suurenevale tabeliruumile kui see täitub.';
+$strInnoDBBufferPoolSizeDesc = 'Mälupuhvri suurus mida InnoDB kasutab oma andmete ja indeksite puhverdamiseks.';
+$strInnoDBBufferPoolSize = 'Puhverdusala suurus';
+$strInnoDBDataFilePath = 'Andmefailid';
+$strInnoDBDataHomeDir = 'Andmete kodukataloog';
+$strInnoDBDataHomeDirDesc = 'Ühine kataloogi nimeosa kõigi InnoDB andmefailide jaoks.';
+$strInnoDBPages = 'lehti';
+$strInnodbStat = 'InnoDB staatus';
+$strInsecureMySQL = 'Teie konfiguratsioonifail sisaldab seadeid (root kasutaja ilma paroolita) mis vastab MySQL-i vaikimisi priviligeeritud kasutajale. Kui Teie MySQL-i server jookseb sellise seadega on ta avatud rünnakutele, soovitav on see turvaauk kiiresti parandada.';
+$strInsertAsNewRow = 'Lisa uue reana';
+$strInsert = 'Lisa';
+$strInternalRelationAdded = 'Sisemine suhe loodud';
+$strInternalRelations = 'Sisesed seosed';
+$strInUse = 'kasutusel';
+$strInvalidAuthMethod = 'Vigane autoriseerimise meetod konfiguratsioonifailis:';
+$strInvalidColumnCount = 'Veergude arv peab olema nullist suurem.';
+$strInvalidColumn = 'Vigased välja veerud (%s) valitud!';
+$strInvalidCSVFieldCount = 'Vigane väljade arv CSV sisendis real %d.';
+$strInvalidCSVFormat = 'Vigane formaat CSV sisendis real %d.';
+$strInvalidCSVParameter = 'Vigane parameeter CSV importimisel: %s';
+$strInvalidDatabase = 'Vigane andmebaas';
+$strInvalidFieldAddCount = 'Peate lisama vähemalt ühe välja.';
+$strInvalidFieldCount = 'Tabelil peab olema vähemalt üks väli.';
+$strInvalidLDIImport = 'See plugin ei toeta pakitud importe!';
+$strInvalidRowNumber = '%d ei ole õige reanumber.';
+$strInvalidServerHostname = 'Vigane hostname serverile %1$s. Palun kontrolli seadeid.';
+$strInvalidServerIndex = 'Vigane serveri indeks: "%s"';
+$strInvalidTableName = 'Vigane tabeli nimi';
+
+$strJapanese = 'Jaapani';
+$strJoins = 'Liited';
+$strJumpToDB = 'Hüppa andmebaasile &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Kustutatud&quot; kasutajad võivad ikka veel ligi pääseda serverile, kuni privileegid pole uuesti sisse loetud.';
+$strJustDelete = 'Lihtsalt kustutage kasutajad privilege tabelist.';
+
+$strKeepPass = 'Ärge muutke parooli';
+$strKeyCache = 'Võtme vahemälu';
+$strKeyname = 'Võtme nimi';
+$strKill = 'Tapa';
+$strKnownExternalBug = 'See %s funktionaalsus on mõjutatud tuntud viga, vaata %s';
+$strKorean = 'Korea';
+
+$strLandscape = 'Laipilt';
+$strLanguage = 'Keel';
+$strLanguageUnknown = 'Tundmatu keel: %1$s.';
+$strLatchedPages = 'Lukustatud lehed';
+$strLatexCaption = 'Tabeli seletus';
+$strLatexContent = 'Tabeli __TABLE__ sisu';
+$strLatexContinuedCaption = 'Jätkuva tabeli seletus';
+$strLatexContinued = '(jätkub)';
+$strLatexIncludeCaption = 'Lisa tabeli seletus';
+$strLatexLabel = 'Nimetuse võti';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Tabeli __TABLE__ struktuur';
+$strLatvian = 'Läti';
+$strLDI = 'CSV kasutades LOAD DATA';
+$strLDILocal = 'kasuta LOCAL võtmesõna';
+$strLengthSet = 'Pikkus/Väärtused*';
+$strLimitNumRows = 'Ridade arv lehel';
+$strLinesTerminatedBy = 'Read lõpetatud';
+$strLinkNotFound = 'Linki ei leitud';
+$strLinksTo = 'Lingib ';
+$strLithuanian = 'Leedu';
+$strLocalhost = 'Lokaalne';
+$strLocationTextfile = 'tekstifaili asukoht';
+$strLoginInformation = 'Logimise informatsioon';
+$strLogin = 'Sisselogimine';
+$strLogout = 'Logi välja';
+$strLogPassword = 'Parool:';
+$strLogServer = 'Server';
+$strLogUsername = 'Kasutajanimi:';
+$strLongOperation = 'See tegevus võib võtta kaua aega. Jätkan?';
+
+$strMaxConnects = 'maks. parallel ühendusi';
+$strMaximalQueryLength = 'Loodud päringu maksimaalne pikkus';
+$strMaximumSize = 'Maksimaalne suurus: %s%s';
+$strMbExtensionMissing = 'Ei leitud mbstring PHP lisa ja tundub, et te kasutate mitmebaidilist tähetabelit. Ilma mbstring lisata ei suuda phpMyAdmin poolitada teksti korrektselt ja tulemus võib olla ootustele mittevastav.';
+$strMbOverloadWarning = 'Te olete lubanud mbstring.func_overload oma PHP konfiguratsioonis. See seade ei ühildu phpMyAdminiga ja võib osade andmete kadumist põhjustada!';
+$strMIME_available_mime = 'Olemasolevad MIME-tüübid';
+$strMIME_available_transform = 'Available transformations';
+$strMIME_description = 'Kirjeldus';
+$strMIME_MIMEtype = 'MIME-tüüp';
+$strMIME_nodescription = 'Selle transformatsiooni jaoks ei ole kirjeldust.<br />Palun küsige autorilt, mida %s teeb.';
+$strMIME_transformation = 'Browseri transformatsioon';
+$strMIME_transformation_note = 'Transformatsiooni võimaluste ja tema MIME-tüübi transformatsiooni nimekirjaks vajutage %stransformatsiooni kirjeldusele%s';
+$strMIME_transformation_options_note = 'Palun sisestage transformatsiooniks vajalikud väärtused, kasutades järgmist formaati: \'a\', 100, b,\'c\'...<br />Kui teil on vaja edastada kaldkriips ("\") või ülakoma ("\'") nende väärtuste seas, varjestage see tagurpidi kaldkriipsuga (näiteks \'\\\\xyz\' või \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformeerimise seaded';
+$strMIMETypesForTable = 'MIME TÜÜBID TABELILE';
+$strMIME_without = 'MIME-tüübid kursiivis ei oma eraldi transofrmatsiooni funktsiooni';
+$strModifications = 'Muutused salvestatud';
+$strModifyIndexTopic = 'Muuda indeksit';
+$strModify = 'Muuda';
+$strMoveMenu = 'Liiguta menüü';
+$strMoveTableOK = 'Tabel %s viidu üle andmebaasi %s.';
+$strMoveTableSameNames = 'Ei saa tabelit iseendasse liigutada!';
+$strMoveTable = 'Vii tabel üle (andmebaas<b>.</b>tabel):';
+$strMultilingual = 'mitmekeelne';
+$strMyISAMDataPointerSize = 'Andmeviida suurus';
+$strMyISAMDataPointerSizeDesc = 'Vaikimisi viida suurus baitides, mida kasutatakse CREATE TABLE käsuga MyISAM tabelite jaoks kui MAX_ROWS seade on määramata.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Kui ajutine fail mida kasutatakse kiire MyISAM indeksi loomiseks on suurem kui kasutada siin määratud võtmecache suurust, siis eelistage võtmecache meetodit.';
+$strMyISAMMaxExtraSortFileSize = 'Maksimaalne failisuurus ajutiste failide jaoks indeksi genereerimisel';
+$strMyISAMMaxSortFileSizeDesc = 'Maksimaalne failisuurus MySQL-i ajutise faili jaoks mida kasutatakse MyISAM indeksi uuesti genereerimiseks (REPAIR TABLE, ALTER TABLE või LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maksimaalne suurus ajutiste sorteeringufailide jaoks';
+$strMyISAMRecoverOptions = 'Automaatne taastamine';
+$strMyISAMRecoverOptionsDesc = 'Automaatne taastamine purunenud MyISAM tabelitele, aktiveeritakse võtmega --myisam-recover serveri käivitamisel.';
+$strMyISAMRepairThreadsDesc = 'Kui see väärtus on suurem kui 1 siis MyISAM tabeli indeksid luuakse paralleelselt (iga indeks oma lõimus) sorteerimise teel parandamise ajal.';
+$strMyISAMRepairThreads = 'Paranda lõimud';
+$strMyISAMSortBufferSizeDesc = 'Puhver mis hõivatakse kui sorteeritakse MyISAM indekseid REPAIR TABLE ajal või kui luuakse indekseid CREATE INDEX või ALTER TABLE käskudega.';
+$strMyISAMSortBufferSize = 'Sordi puhvri suurus';
+$strMySQLCharset = 'MySQLi tähetabel';
+$strMysqlClientVersion = 'MySQL kliendi versioon';
+$strMySQLConnectionCollation = 'MySQL ühenduse kollatsioon';
+$strMySQLSaid = 'MySQL ütles: ';
+$strMySQLShowProcess = 'Näita protsesse';
+
+$strName = 'Nimi';
+$strNext = 'Järgmine';
+$strNoActivity = 'Ebaaktiivne %s sekundit või rohkem, palun sisenege uuesti';
+$strNoDatabases = 'Pole andmebaase';
+$strNoDatabasesSelected = 'Ühtegi andmebaasi ei ole valitud.';
+$strNoDataReceived = 'Andmeid ei saadud importimisel. Võimalik et faili nime ei saadetud, või faili suurus ületab maksimaalset suurust lubatud PHP seadetes. Vaata FAQ 1.16.';
+$strNoDescription = 'pole kirjeldust';
+$strNoDetailsForEngine = 'Detailne seisuinformatsioon antud varundusmootori kohta puudub.';
+$strNoDropDatabases = '"DROP DATABASE" käsud keelatud.';
+$strNo = 'Ei';
+$strNoExplain = 'Jäta SQL-i seletamine vahele';
+$strNoFilesFoundInZip = 'Ei leidnud ühtegi faili ZIP arhiivist!';
+$strNoFrames = 'phpMyAdmin on sõbralikum <b>frame toetava</b> browseriga.';
+$strNoIndex = 'Indeksit pole defineeritud!';
+$strNoIndexPartsDefined = 'Indeksi osad pole defineeritud!';
+$strNoModification = 'Ei muudetud';
+$strNone = 'Pole';
+$strNoOptions = 'Sellel formaadil pole seadeid';
+$strNoPassword = 'Ilma paroolita';
+$strNoPermission = 'Webiserver ei oma õigusi , et salvestada fail %s.';
+$strNoPhp = 'ilma PHP koodita';
+$strNoPrivileges = 'Ei oma ühtegi privileegi';
+$strNoRights = 'Teil pole piisavalt õigusi, et hetkel siin olla!';
+$strNoRowsSelected = 'Ridu pole valitud';
+$strNoSpace = 'Liiga vähe kettaruumi, et salvestada fail %s.';
+$strNoTablesFound = 'Andmebaasist ei leitud tabeleid.';
+$strNoThemeSupport = 'Teemade tugi puudub, palun kontrollige oma seadeid ja/või oma teemade kataloogi %s.';
+$strNotNumber = 'See pole number!';
+$strNotOK = 'Ei ole korras';
+$strNotSet = '<b>%s</b> tabelit ei leitud või ei eksisteeri %s';
+$strNoUsersFound = 'Ei leitud ühtegi kasutajat.';
+$strNoValidateSQL = 'Jäta SQL-i kontroll vahele';
+$strNull = 'Null';
+$strNumberOfFields = 'Väljade arv';
+$strNumberOfTables = 'Tabelite arv';
+$strNumSearchResultsInTable = '%s vaste(t) tabelis <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Kokku:</b> <i>%s</i> vaste(t)';
+$strNumTables = 'Tabelid';
+
+$strOK = 'Korras';
+$strOpenDocumentSpreadsheet = 'Ava dokumendi arvutustabel';
+$strOpenDocumentText = 'Ava dokumendi tekst';
+$strOpenNewWindow = 'Ava uus phpMyAdmin aken';
+$strOperations = 'Tegevused';
+$strOperator = 'Operaator';
+$strOptimizeTable = 'Optimiseeri tabelit';
+$strOr = 'või';
+$strOverhead = 'Ülejääv';
+$strOverwriteExisting = 'Kirjuta olemasolev(ad) fail(id) üle';
+
+$strPageNumber = 'Lehenumber:';
+$strPagesToBeFlushed = 'Lehed ühtlustamiseks';
+$strPaperSize = 'Paberi suurus';
+$strPartialImport = 'Osaline import';
+$strPartialText = 'Lühendatud tekstid';
+$strPasswordChanged = 'Kasutaja %s parool vahetati õnnestunult.';
+$strPasswordEmpty = 'Parool on tühi!';
+$strPasswordHashing = 'Parooli tärkimine';
+$strPasswordNotSame = 'Paroolid ei ühti!';
+$strPassword = 'Parool';
+$strPdfDbSchema = 'Andmebaasi "%s" skeem - lehekülg %s';
+$strPdfInvalidTblName = '"%s" tabel ei eksisteeri!';
+$strPdfNoTables = 'Pole tabeleid';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Genereerib aruande sisaldades andmeid üksikust tabelist)';
+$strPDFReportTitle = 'Raporti pealkiri';
+$strPerHour = 'tunni kohta';
+$strPerMinute = 'minutis';
+$strPerSecond = 'sekundis';
+$strPersian = 'Pärsia';
+$strPhoneBook = 'telefoniraamat';
+$strPhp = 'Loo PHP kood';
+$strPHPVersion = 'PHP versioon';
+$strPleaseSelectPrimaryOrUniqueKey = 'Palun vali primaarne või unkaalne võti';
+$strPmaDocumentation = 'phpMyAdmini dokumentatsioon';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> konstant peab teie konfiguratsioonifailis määratud olema!';
+$strPolish = 'Poola';
+$strPortrait = 'Portreepilt';
+$strPos1 = 'Algus';
+$strPrevious = 'Eelmine';
+$strPrimaryKeyHasBeenDropped = 'Primaarne võti kustutatud';
+$strPrimaryKeyName = 'Primaarse võtme nimi peab olema... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>peab</b> olema ja <b>ainult</b> olema primaarse võtme nimi!)';
+$strPrimary = 'Primaarne';
+$strPrint = 'Prindi';
+$strPrintViewFull = 'Trükivaade (täispikkade tekstidega)';
+$strPrintView = 'Trükivaade';
+$strPrivDescAllPrivileges = 'Sisaldab kõiki privileege peale GRANT.';
+$strPrivDescAlter = 'Lubab muuta olemasolevate tabelite struktuure.';
+$strPrivDescAlterRoutine = 'Lubabu salvestatud rutiinide muutmise ja kustutamise.';
+$strPrivDescCreateDb = 'Lubab luua uusi andmebaase ja tabeleid.';
+$strPrivDescCreateRoutine = 'Lubab salvestatud rutiinide loomise.';
+$strPrivDescCreateTbl = 'Lubab luua uusi tabeleid.';
+$strPrivDescCreateTmpTable = 'Lubab luua ajutisi tabeleid.';
+$strPrivDescCreateUser = 'Lubab kasutajakontode loomise, kustutamise ja muutmise.';
+$strPrivDescCreateView = 'Lubab uute vaadete loomist.';
+$strPrivDescDelete = 'Lubab kustutada infot.';
+$strPrivDescDropDb = 'Lubab kustuada andmebaase ja tabeleid.';
+$strPrivDescDropTbl = 'Lubab kustutada tabeleid..';
+$strPrivDescExecute5 = 'Lubab salvestatud rutiinide käivituse.';
+$strPrivDescExecute = 'Lubab käivitada salvestatud protseduure; Ei oma mingit effekti antud MySQL versioonis.';
+$strPrivDescFile = 'Lubab andmete eksportimist faili ja andmete importimist failidest.';
+$strPrivDescGrant = 'Lubab lisada kasutajaid ja privileege ilma privileges tabelit taaskäivitamata.';
+$strPrivDescIndex = 'Lubab luua ja kustutada indekseid.';
+$strPrivDescInsert = 'Lubab lisada ja muuta infot.';
+$strPrivDescLockTables = 'Lubab lukustada tabeleid aktiivse päringu tarbeks.';
+$strPrivDescMaxConnections = 'Limiteerib ühenduste arvu tunnis kasutaja jaoks.';
+$strPrivDescMaxQuestions = 'Limiteerib päringute arvu tunnis kasutaja jaoks.';
+$strPrivDescMaxUpdates = 'Limiteerib käskude, mis muudavad suvalist tabelit või andmebaasi, arvu tunnis kasutaja jaoks';
+$strPrivDescMaxUserConnections = 'Piirab ühenduste arvu mida kasutajal võib korraga olla.';
+$strPrivDescReferences = 'Ei oma antud MySQL versioonis mingit effekti.';
+$strPrivDescReload = 'Lubab taaslaadida serveri seadmeid ja puhastada serveri cachet.';
+$strPrivDescReplClient = 'Lubab kasutajal küsida kus on slaved/masterid.';
+$strPrivDescReplSlave = 'Vajalik slavede paljundamiseks.';
+$strPrivDescSelect = 'Lubab lugeda infot.';
+$strPrivDescShowDb = 'Annab ligipääsu kogu andmebaasilistingule.';
+$strPrivDescShowView = 'Lubab SHOW CREATE VIEW päringute käivitamise.';
+$strPrivDescShutdown = 'Lubab serverit maha lasta.';
+$strPrivDescSuper = 'Lubab ühenduda, isegi kui maksimaalne ühenduste arv on saavutatud; Vajalik enamike administratiivsete operatsioonide jaoks, nagu globaalsete muutujate seadmine või teiste kasutajate ühenduste tapmine.';
+$strPrivDescUpdate = 'Lubab muuta infot.';
+$strPrivDescUsage = 'Mitte ühtegi privileegi.';
+$strPrivileges = 'Privileegid';
+$strPrivilegesReloaded = 'Privileegid taaslaeti edukalt.';
+$strProcedures = 'Toimingud';
+$strProcesses = 'Protsessid';
+$strProcesslist = 'Protsessinimekiri';
+$strProtocolVersion = 'Protokolli versioon';
+$strPutColNames = 'Pange väljade nimed esimesse ritta';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Päring näite järgi';
+$strQueryCache = 'Päringute vahemälu';
+$strQueryFrame = 'Päringuaken';
+$strQueryOnDb = 'SQL-päring andmebaasist <b>%s</b>:';
+$strQueryResultsOperations = 'Päringu tulemuste tegevused';
+$strQuerySQLHistory = 'SQL-ajalugu';
+$strQueryStatistics = '<b>Päringu statistika</b>: Alates stardist, %s päringut on saadetud serverile.';
+$strQueryTime = 'Päring kestis %01.4f sek';
+$strQueryType = 'Päringu tüüp';
+$strQueryWindowLock = 'Antud päringut mitte muuta väljaspool akent.';
+
+$strReadRequests = 'Pöördumised lugemiseks';
+$strReceived = 'Saadud';
+$strRecommended = 'soovituslik';
+$strRecords = 'Kirjeid';
+$strReferentialIntegrity = 'Kontrolli pärinevust:';
+$strRefresh = 'Uuenda';
+$strRelationalSchema = 'Seoseskeem';
+$strRelationDeleted = 'Suhe kustutatud';
+$strRelationNotWorking = 'Lisavõimalused töötamiseks lingitud tabelitega on deaktiveeritud. Et lugeda miks see nii on, vajutage %ssiia%s.';
+$strRelationsForTable = 'SEOSED TABELILE';
+$strRelations = 'Suhted';
+$strRelationView = 'Pärinevuse vaade';
+$strReloadingThePrivileges = 'Taaslaen privileege';
+$strReload = 'Lae uuesti';
+$strReloadPrivileges = 'Lae privileegid uuesti';
+$strRemoveSelectedUsers = 'Eemalda valitud kasutajad';
+$strRenameDatabaseOK = 'Andmebaas %s on ümber nimetatud %s';
+$strRenameTable = 'Nimeta tabel ümber';
+$strRenameTableOK = 'Tabel %s on ümber nimetatud %s';
+$strRepairTable = 'Paranda tabelit';
+$strReplaceNULLBy = 'Asenda NULL ';
+$strReplaceTable = 'Asenda tabeli andmed failiga';
+$strReplication = 'Tiražeerimine';
+$strReset = 'Tühista';
+$strResourceLimits = 'Ressursilimiidid';
+$strReType = 'Sisesta uuesti';
+$strRevokeAndDeleteDescr = 'Kasutajatel on ikka veel USAGE privileeg, kuni privileegid pole taaslaetud.';
+$strRevokeAndDelete = 'Eemalda kõik aktiivsed privileegid kasutajatelt ning kustuta nad pärast seda.';
+$strRevokeMessage = 'Te võtsite tagasi privileegid %s-lt';
+$strRevoke = 'Võta tagasi';
+$strRomanian = 'Rumeenia';
+$strRowLength = 'Rea pikkus';
+$strRowsFrom = 'read alates';
+$strRowSize = ' rea suurus ';
+$strRowsModeFlippedHorizontal = 'horisontaalne (pööratud päis)';
+$strRowsModeHorizontal = 'horisontaalselt';
+$strRowsModeOptions = 'näita %s and korda pealkirju iga %s järel';
+$strRowsModeVertical = 'vertikaalselt';
+$strRows = 'Ridu';
+$strRowsStatistic = 'Rea statistika';
+$strRunning = 'jookseb masinas %s';
+$strRunQuery = 'Lae päring';
+$strRunSQLQueryOnServer = 'Käivita SQL käsk/käsud Masinas %s';
+$strRunSQLQuery = 'Päri SQL päring(uid) andmebaasist %s';
+$strRussian = 'Vene';
+
+$strSaveOnServer = 'Salvestage serverisse kataloogi %s';
+$strSavePosition = 'Salvesta positsioon';
+$strSave = 'Salvesta';
+$strScaleFactorSmall = 'Skalaarfaktor on liiga väike, et skeem mahuks ühele lehele.';
+$strSearchFormTitle = 'Otsi andmebaasist';
+$strSearchInTables = 'Otsi tabeli(te)st:';
+$strSearchNeedle = 'Sõna(d) või väärtus(ed) otsinguks (lühend: "%"):';
+$strSearchOption1 = 'vähemalt üks sõnadest';
+$strSearchOption2 = 'kõik sõnadest';
+$strSearchOption3 = 'täpne fraas';
+$strSearchOption4 = 'regulaaravaldisena';
+$strSearch = 'Otsi';
+$strSearchResultsFor = 'Otsingu tulemused "<i>%s</i>" %s:';
+$strSearchType = 'Leia:';
+$strSecretRequired = 'Konfiguratsioonifail nõuab nüüd salajast võtmesõna (blowfish_secret).';
+$strSelectADb = 'Valige andmebaas';
+$strSelectAll = 'Märgista kõik';
+$strSelectBinaryLog = 'Valige binaarne logi vaatamiseks';
+$strSelectFields = 'Vali väljad (vähemalt üks):';
+$strSelectForeignKey = 'Vali võõrvõti(Foreign Key)';
+$strSelectNumRows = 'päringus';
+$strSelectReferencedKey = 'Vali eelistus võti (referenced key)';
+$strSelectTables = 'Vali tabelid';
+$strSend = 'Salvesta failina';
+$strSent = 'Saadetud';
+$strServerChoice = 'Serveri valik';
+$strServerNotResponding = 'Server ei vasta';
+$strServer = 'Server';
+$strServers = 'Serverid';
+$strServerStatusDelayedInserts = 'Ajastatud lisamised';
+$strServerStatus = 'Jooksev informatsioon';
+$strServerStatusUptime = 'See MySQL server on käinud %s. Käivitusaeg %s.';
+$strServerTabVariables = 'Muutujad';
+$strServerTrafficNotes = '<b>Serveri liiklus</b>: Need tabelid näitavad võrguliikluse statistikat selle MySQL serveri jaoks alates tema käivitamisest.';
+$strServerVars = 'Serveri muutujad ja seaded.';
+$strServerVersion = 'Serveri versioon';
+$strSessionValue = 'Sessiooni väärtus';
+$strSetEnumVal = 'Kui välja tüüp on "enum" või "set", palun sisestage väärtused kasutades järgmist paigutust: \'a\',\'b\',\'c\'...<br />Kui te peate lisama kaldkriipsu ("\") või ülakoma ("\'") sinna paigutusse, varjestage see tagurpidi kaldkriipsuga (näiteks \'\\\\xyz\' või \'a\\\'b\').';
+$strShowAll = 'Näita kõiki';
+$strShowColor = 'Näita värvi';
+$strShowDatadictAs = 'Andmesõnastiku formaat';
+$strShowFullQueries = 'Näita täispikkasid päringuid';
+$strShowGrid = 'Näita võrgustiku';
+$strShowHideLeftMenu = 'Näita/Peida vasak menüü';
+$strShowingBookmark = 'Näitan järjehoidjat';
+$strShowingPhp = 'Näitan PHP koodina';
+$strShowingRecords = 'Näita ridu';
+$strShowingSQL = 'Näitan SQL päringut';
+$strShow = 'Näita';
+$strShowOpenTables = 'Näita avatud tabeleid';
+$strShowPHPInfo = 'Näita PHP informatsiooni';
+$strShowSlaveHosts = 'Näita alluvaid(slave)';
+$strShowSlaveStatus = 'Näita alluvate(slave) staatust';
+$strShowStatusBinlog_cache_disk_useDescr = 'Ülekannete number mida kasutab ajutise binaar logi vahemälu kuid ületab binlog_cache_size suurust ja kasutatakse ajutist faili et salvestada ülekande Käske (päringuid).';
+$strShowStatusBinlog_cache_useDescr = 'Ülekannete number mis kasutasid ajutist binaar logi vahemälu.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Ajutiste tabelite arv, loodud automaatselt serveri poolt, päringuid käivitades. Kui Created_tmp_disk_tables on suur, sa võid tahta suurendada tmp_table_size väärtust et olla mälul baseeruv mitte kettal.';
+$strShowStatusCreated_tmp_filesDescr = 'Mitu ajutist faili mysqld on loonud.';
+$strShowStatusCreated_tmp_tablesDescr = 'Ajutiste mälul baseeruvate tabelite arv, loodud automaatselt serveri poolt, päringuid käivitades.';
+$strShowStatusDelayed_errorsDescr = 'Mitu rida on loodud käsuga INSERT DELAYED milles toimus viga (arvatavasti korduv võti).';
+$strShowStatusDelayed_insert_threadsDescr = 'Mitu INSERT DELAYED töötleja (handler) lõimu on kasutuses. Iga erinev tabel mis kasutab INSERT DELAYED saab oma lõimu.';
+$strShowStatusDelayed_writesDescr = 'INSERT DELAYED ridasid loodud.';
+$strShowStatusFlush_commandsDescr = 'FLUSH käskude arv.';
+$strShowStatusHandler_commitDescr = 'Sisemiste COMMIT käskude arv.';
+$strShowStatusHandler_deleteDescr = 'Mitu korda rida kustutati tabelist.';
+$strShowStatusHandler_discoverDescr = 'MySQLi server võib küsida "NDB Cluster storage engine" (klaster salvestus mootor) kas ta teab tabelit etteantud nimega. Seda kutsutakse avastus(discovery). Handler_discover annab mitu korda on tabel leitud.';
+$strShowStatusHandler_read_firstDescr = 'Mitu korda loeti esimene tulemus indeksist. Kui see on suur, see soovitab et server teeb palju täis indeksi skaneerimist; näitkes, SELECT col1 FROM foo, arvates et col1 indekseeritud.';
+$strShowStatusHandler_read_keyDescr = 'Mitu korda loeti rida võtme järgi. Kui see on suur, see on hea näitaja et sinu päringud ja tabelid on korralikult indekseeritud.';
+$strShowStatusHandler_read_nextDescr = 'Mitu korda saadi käsk lugeda võtme järgi järgmine rida. See on suurenev kui sa pärid indekseeritud piiratud välja või sa teed indeksi skaneerimist.';
+$strShowStatusHandler_read_prevDescr = 'Mitu korda saadi käsk lugeda võtme järgi eelnev rida. See lugemise meetod on peamiselt kasutatud optimiseerimiseks ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Mitu korda saadi käsk lugeda kindel rida. See on suur kui sa teed palju päringuid mis vajavad tulemuse sorteerimist. Sa kasutad kindlasti päringuid mis vajavad MySQLi et skaneerida kogu tabelit või liited(joins) mis ei kasuta võtmeid korralikult.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Mitu korda saadi käsk lugeda järgmine rida andmefailist. See on suur kui sa teed palju tabeli skaneerimisi. Enamasti see soovitab et sinu tabelid pole korralikult indekseeritud või sinu päringud pole kirjutatud nii et võtta eeliseid sinu loodud indeksitest.';
+$strShowStatusHandler_rollbackDescr = 'Mitu korda käivitati sisemine ROLLBACK lausung.';
+$strShowStatusHandler_updateDescr = 'Mitu korda uuendati tabeli rida.';
+$strShowStatusHandler_writeDescr = 'Mitu korda lisati uus rida tabelisse.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Mitu lehekülge sisaldab andmeid (puhast või musta).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Mitu lehekülge on mustad.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Mitu puhvri lehekülge on määratud puhastamisele.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Mitu puu lehekülge.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Mitu lukus lehte on InnoDB puhvris. Need lehed on hetkel lugemisel või kirjutamisel ja pole võimalik puhastada või kustutada mingil põhjusel.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Mitu lehte on hetkel kasutuses kuna nad reserveeritud nagu rea lukustus või kohanemisvõimeline indeks. Seda summat saab ka arvutada nii Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Kogu puhvris suurus, lehtedes.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Mitu InnoDB juhuslikku(random) ette-lugemisi on töös. See juhtub kui päring on skaneerida suur osa tabelist kuid juhuslikus järjekorras.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Mitu InnoDB järjestikku ette-lugemisi on töös. See juhtub kui InnoDB teeb järjestikulist kogu tabeli skaneerimist.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Mitu loogilist lugemist InnoDB on teinud.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Mitu loogilist lugemist InnoDB polnud võimalik puhvris poolt rahuldada ja tegi üksiku lehe lugemise.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Tavaliselt, kirjutab InnoDB puhvri taustal. Kuid, kui vajalik kirjutada leht ja ühtegi puhast lehte pole saadaval, on vajalik oodata et lehed oleksid enne ühtlustatud. See This loendur loeb kõiki neid ootamisi. Kui puhvri suurus on seatud korralikult, se number peaks olema väike.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Mitu korda kirjutas InnoDB puhvrisse.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Mitu fsync() operatsiooni siiani.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Mitu hetkel ootel fsync() operatsiooni.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Mitu ootel lugemist.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Mitu ootel kirjutamist.';
+$strShowStatusInnodb_data_readDescr = 'Suurus kui palju andmeid on loetud siiani, baitides.';
+$strShowStatusInnodb_data_readsDescr = 'Mitu korda loetud.';
+$strShowStatusInnodb_data_writesDescr = 'Mitu korda andmeid kirjutati.';
+$strShowStatusInnodb_data_writtenDescr = 'Suurus palju andmeid on kirjutatud, baitides.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Mitu korda tehti topeltkirjutamist ja mitu lehte on kirjutatud just sellel põhjusel.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Mitu korda tehti topeltkirjutamise kirjutamist ja mitu lehte on kirjutatud just sellel põhjusel.';
+$strShowStatusInnodb_log_waitsDescr = 'Mitu ootamist on olnud sellepärast et logi puhver oli liiga väike ja pidi ootama enne ühtlustamist et jätkata.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Mitu logi kirjutamise soovi.';
+$strShowStatusInnodb_log_writesDescr = 'Mitu füüsilist kirjutamist logi faili.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Mitu fsyncs kirjutamist tehtud logi faili.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Mitu ootel logi faili fsyncs.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'ootel logifaili kirjutamisi.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Mitu baiti on kirjutatud logi faili.';
+$strShowStatusInnodb_pages_createdDescr = 'Lehti loodud.';
+$strShowStatusInnodb_page_sizeDescr = 'Sisse-kompileeritud InnoDB lehe suurus (vaikimisi 16KB). Paljud väärtused on loetud lehtedes; lehe suurus lubab neid lihtsalt arvutada baitidesse.';
+$strShowStatusInnodb_pages_readDescr = 'Lehti loetud.';
+$strShowStatusInnodb_pages_writtenDescr = 'Lehti kirjutatud.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Mitu rea lukustamist on hetkel ootel.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Keskimne aeg pärides rea lukustust, millisekundites.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Aeg mis on raisatud pärides rea lukustust, millisekundites.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maksimaalne aeg pärides rea lukustust, millisekundites.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Mitu korda pidi rea lukustus ootama.';
+$strShowStatusInnodb_rows_deletedDescr = 'Mitu rida kustutatud InnoDB tabelitest.';
+$strShowStatusInnodb_rows_insertedDescr = 'Mitu rida lisati InnoDB tabelitesse.';
+$strShowStatusInnodb_rows_readDescr = 'Mitu rida loetud InnoDB tabelitest.';
+$strShowStatusInnodb_rows_updatedDescr = 'Mitu rida uuendati InnoDB tabelites.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Mitu võtme plokki on võtme vahemälus muutunud kui pole veel kettale kirjutatud. Tuntud nagu Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Mitu kasutamatta võtme plokki on võtme vahemälus. Sa saad kasutatda seda väärtust et teada saada kui palju võtme vahemälust on kasutuses.';
+$strShowStatusKey_blocks_usedDescr = 'Mitu kasutatud plokki on võtme vahemälus. See väärtus näitab maksimaalse plokkide arvu mis on kunagi olnud kasutuses.';
+$strShowStatusKey_read_requestsDescr = 'Mitu päringut et lugeda võtme plokk vahemälust.';
+$strShowStatusKey_readsDescr = 'Mitu füüsilist lugemist lugeda võtme plokk kettalt. kui Key_reads on suur, siis sinu key_buffer_size näitaja on kindlasti väike. Vahemälus möödaminek on võimalik arvutada nii Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Mitu päringut et kirjutada võtme plokk vahemällu.';
+$strShowStatusKey_writesDescr = 'Mitu füüsilist kirjutamist kirjutada võtme plokk kettale.';
+$strShowStatusLast_query_costDescr = 'Viimase kompileeritud päringu arvuatud tulemus päringu optimiseerija vastu. Kasulik võrdlemaks erinevaid päringu plaane ühelt ja samalt päringult. Vaikimisi väärtus 0 tähendab et päring pole veel töödeldud.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Mitu rida on ootel INSERT DELAYED päringutes.';
+$strShowStatusOpened_tablesDescr = 'Mitu tabelit on avatud. Avatud tabeleid on palju siis sinu tabeli vahemälus kindlasti liiga väike.';
+$strShowStatusOpen_filesDescr = 'Mitu faili on avatud.';
+$strShowStatusOpen_streamsDescr = 'Mitu voogu on hetkel avatud (enamasti logimiseks).';
+$strShowStatusOpen_tablesDescr = 'Mitu tabelit on hetkel avatud.';
+$strShowStatusQcache_free_blocksDescr = 'Vabad mälu plokid päringute vahemälus.';
+$strShowStatusQcache_free_memoryDescr = 'Vaba mälu päringute vahemälus.';
+$strShowStatusQcache_hitsDescr = 'Leitud Puhvrist.';
+$strShowStatusQcache_insertsDescr = 'Mitu päringut on lisatud vahemällu.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Mitu päringut kustutati puhvrist et vabastada mälu uutele päringutele. See informatsioon aitab sind päringute-puhvri suuruse seadistamisel. Päringute vahemälu kasutab viimati kasutatud strateegiat(LRU) et otsustada millised päringud eemaldada puhvrist.';
+$strShowStatusQcache_not_cachedDescr = 'Mitu mitte-puhverdatud päringut (pole salvestatud vahemällu, või sõltuvalt query_cache_type sätetest mitte puhverdatud).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Mitu päringut on registreeritud vahemälus.';
+$strShowStatusQcache_total_blocksDescr = 'Plokkide koguarv päringute vahemälus.';
+$strShowStatusReset = 'Nulli';
+$strShowStatusRpl_statusDescr = 'See staatus on tõrkekindel tiraþeerimine (failsafe replication) (pole veel kasutuses).';
+$strShowStatusSelect_full_joinDescr = 'Liited(joins) mis ei kasuta indekseid. Kui see näitaja on 0, peaksid ettevaatlikult kontrollima oma tabelites indekseid.';
+$strShowStatusSelect_full_range_joinDescr = 'Liidete arv mida kasutati piirkonna otsimisel eelistatud tabelist.';
+$strShowStatusSelect_range_checkDescr = 'Ilma võtmeta liidete(joins) arv mis konrollivad peale igat rida võtme kasutamist. (Kui see pole 0 siis peaksid ettevaatlikult kontrollima oma tabelite indekseid.)';
+$strShowStatusSelect_rangeDescr = 'Liidete arv mida kasutati esimese tabeli piirides. (Pole eriti kriitiline kui see on väga suur.)';
+$strShowStatusSelect_scanDescr = 'Liidete arv mis tegid täielikku skaneerimist esimesest tabelist.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Ajutiste tabelite arv mis on hetkel avatud alam-lõimu(replication slave) poolt.';
+$strShowStatusSlave_retried_transactionsDescr = 'Kogusumma (alates käivitamisest) mitu korda tiraþeerimise(replication) SQL alam-lõim(replication slave) proovis ülekandeid.';
+$strShowStatusSlave_runningDescr = 'Kui see on ON kui serveril on alam server(masin) mis on ühenduses masteriga.';
+$strShowStatusSlow_launch_threadsDescr = 'Lõimude arv mis võtsid rohkem aega käivitamiseks kui slow_launch_time.';
+$strShowStatusSlow_queriesDescr = 'Päringute arv mis võtsid rohkem aega kui long_query_time sekundites.';
+$strShowStatusSort_merge_passesDescr = 'Edukate ühinemiste(merge) arv millega lühike algoritm on tegelenud. Kui see väärtuse on suur, sa peaksid mõtlema sort_buffer_size väärtuse suurendamist.';
+$strShowStatusSort_rangeDescr = 'Sorteerimiste arv mis on tehtud piirkonna ulatuses.';
+$strShowStatusSort_rowsDescr = 'Sorteritud ridade arv.';
+$strShowStatusSort_scanDescr = 'Sorteerimiste arv mis on tehtud tabeli skaneerimist kasutades.';
+$strShowStatusTable_locks_immediateDescr = 'Mitu korda tabeli lukustus jõustus koheselt.';
+$strShowStatusTable_locks_waitedDescr = 'Mitu korda tabeli lukustus ei jõustunud koheselt ja pandi ootele. Kui see on suur ja jõudlusega on probleeme, sa peaksid optimiseerima oma päringuid või poolitama oma tabelid või kasutama tiraþeerimist(replication).';
+$strShowStatusThreads_cachedDescr = 'Lõimude arv Lõimude vahemälus. Vahemälu kasutamist(hit) on võimalik arvutada nii Threads_created/Connections. Kui see on punane paksid suurendama thread_cache_size suurust.';
+$strShowStatusThreads_connectedDescr = 'Hetkel avatud ühendusi.';
+$strShowStatusThreads_createdDescr = 'Lõimude arv mis on loodud ühenduste haldamiseks. Kui Threads_created on suur siis suurenda thread_cache_size väärtust. (Tavaliselt see ei anna märgatavat kiiruse tõusu kui Lõimude teostus on korralik.)';
+$strShowStatusThreads_runningDescr = 'Lõimude arv mis mis hetkel ei maga.';
+$strShowTableDimension = 'Näita tabelite dimensiooni';
+$strShowTables = 'Näita tabeleid';
+$strShowThisQuery = ' Näita päringut siin uuesti ';
+$strSimplifiedChinese = 'Lihtsustatud Hiina';
+$strSingly = '(üksikult)';
+$strSize = 'Suurus';
+$strSkipQueries = 'Käske (päringuid) mida algusest vahele jätta';
+$strSlovak = 'Slovaki';
+$strSlovenian = 'Sloveenia';
+$strSmallBigAll = 'Kõik Väikeseks/Suureks';
+$strSocketProblem = '(või kohaliku MySQL serveri soketid ei ole korrektselt seadistatud)';
+$strSortByKey = 'Sorteeri võtme järgi';
+$strSorting = 'Järjestamine';
+$strSort = 'Sorteeri';
+$strSpaceUsage = 'Ruumivõtt';
+$strSpanish = 'Hispaania';
+$strSplitWordsWithSpace = 'Sõnad on eraldatud tühikuga (" ").';
+$strSQLCompatibility = 'SQL ühilduvus viis';
+$strSQLExportType = 'Ekspordi tüüp';
+$strSQLParserBugMessage = 'On võimalus, et te leidsite vea SQL parseris. Palun kontrollige oma päringut täpsemalt ja kontrollige, et jutumärgid/ülakomad oleks korrektselt lõpetatud. Veel on võimalik, et te loete sisse faili kus on binaarne info väljaspool varjestatud tekstiala. Samuti võiksite te proovida oma päringut MySQLi käsureal. MySQLi viga väljastatakse päringu all, kui seal tõesti on mõni viga, siis see võib aidata teil leida vea algpõhjuseid. Kui teil on peale seda ikka veel probleeme või kui mu parser keeldub töötamast ning MySQL käsurida töötab, siis palun vähendage oma päringuid üksiku päringuni, mis põhjustab probleeme ja sisestage vea raport koos viga põhjustanud päringuga LÕIGET sektsioonis allpool:';
+$strSQLParserUserError = 'Tundub, et teie SQL päringus on viga. MySQLi serveri error peaks ilmuma allpool, kui seal on midagi, siis peaks see teil aitama leia vea põhjust.';
+$strSQLQuery = 'SQL-päring';
+$strSQLResult = 'SQL tulemus';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Vigane identifikaator';
+$strSQPBugUnclosedQuote = 'Sulgemata jutumärk/ülakoma';
+$strSQPBugUnknownPunctuation = 'Tundmatu suunav tekst';
+$strStandInStructureForView = 'Sise-vaate struktuur';
+$strStatCheckTime = 'Viimane vaatamine';
+$strStatCreateTime = 'Loodud';
+$strStatement = 'Parameerid';
+$strStatisticsOverrun = 'Koormusega serveris, baitide lugeja võib lugeda vigadega (overrun), st. see statistika mida näitab MySQL server ei pruugi olla täpne.';
+$strStatUpdateTime = 'Viimane muudatus';
+$strStatus = 'Staatus';
+$strStorageEngines = 'Varundusmootorid';
+$strStorageEngine = 'Varundusmootor';
+$strStrucCSV = 'CSV andmed';
+$strStrucData = 'Struktuur ja andmed';
+$strStrucExcelCSV = 'CSV MS Exceli jaoks';
+$strStrucNativeExcel = 'Loomulikud MS Exceli andmed';
+$strStrucOnly = 'Ainult struktuur';
+$strStructPropose = 'Soovita tabeli struktuuri';
+$strStructureForView = 'Vaate (view) struktuur';
+$strStructure = 'Struktuur';
+$strSubmit = 'Vali';
+$strSuccess = 'Teie SQL päring täideti edukalt';
+$strSum = 'Summa';
+$strSwedish = 'Rootsi';
+$strSwitchToDatabase = 'Mine kopeeritud andmebaasile';
+$strSwitchToTable = 'Mine üle kopeeritud tabelile';
+
+$strTableAlreadyExists = 'tabel %s on juba olemas!';
+$strTableComments = 'Tabeli kommentaarid';
+$strTableEmpty = 'Tabeli nimi on tühi!';
+$strTableHasBeenDropped = 'Tabel %s kustutatud';
+$strTableHasBeenEmptied = 'Tabel %s tühjendatud';
+$strTableHasBeenFlushed = 'Tabel %s ühtlustatud';
+$strTableIsEmpty = 'Tabel tundub olevat tühi!';
+$strTableMaintenance = 'Tabeli hooldus';
+$strTableName = 'Tabeli nimi';
+$strTableOfContents = 'Sisukord';
+$strTableOptions = 'Tabeli seaded';
+$strTables = '%s tabel(it)';
+$strTableStructure = 'Struktuur tabelile';
+$strTable = 'Tabel';
+$strTakeIt = 'võta see';
+$strTblPrivileges = 'Tabel-spetsiifilised privileegid';
+$strTempData = 'Ajutised andmed ';
+$strTextAreaLength = ' Oma suuruse tõttu<br /> võib see väli olla mittemuudetav ';
+$strThai = 'Tai';
+$strThemeDefaultNotFound = 'Ei leia vaikimisi teemat %s!';
+$strThemeNoPreviewAvailable = 'Eelvaade pole saadaval.';
+$strThemeNotFound = 'Ei leia teemat %s!';
+$strThemeNoValidImgPath = 'Ei leia pildi kataloogi teemale %s!';
+$strThemePathNotFound = 'Ei leia kataloogi teemale %s!';
+$strTheme = 'Teema / Stiil';
+$strThisHost = 'Antud host';
+$strThreads = 'Lõimud';
+$strThreadSuccessfullyKilled = 'Protsess %s katkestati edukalt.';
+$strTime = 'Aeg';
+$strTimeoutInfo = 'Eelmine Import aegus, peale uuesti postitamist jätkub asukohast %d.';
+$strTimeoutNothingParsed = 'Kuigi viimasel laadimisel andmeid ei töödeldud, see tähendab enamasti et phpMyAdmin pole võimeline Importi lõpetama, kui sa php skripti aega ei pikenda.';
+$strTimeoutPassed = 'Skripti ajalimiit on ületatud, kui soovid importimist jätkata, palun lae sama fail uuesti ja import jätkub.';
+$strToFromPage = 'Kuhu/Kust leht';
+$strToggleScratchboard = 'vaheta märkmetahvlit';
+$strToSelectRelation = 'Et valida suhe, kliki :';
+$strTotal = 'kokku';
+$strTotalUC = 'Kokku';
+$strTraditionalChinese = 'Traditsionaalne Hiina';
+$strTraditionalSpanish = 'Traditsionaalne Hispaania';
+$strTraffic = 'Liiklus';
+$strTransactionCoordinator = 'Ülekande kordinaator';
+$strTransformation_application_octetstream__download = 'Näita linki millega laadida alla välja binaarne info. Esimene seade on binaarse faili nimi. Teine seade on võimalik väljanimi tabelis mis sisaldab failinime. Kui te määrate teise seade siis peab esimene seade olema tühi tekst';
+$strTransformation_application_octetstream__hex = 'Kuvab andmed kuueteistkümnend süsteemis. Valikuline Esimene parameeter seab kui tihti ruumi tehakse (vaikimisi 2 näkkamist).';
+$strTransformation_image_jpeg__inline = 'Kuvab lingitud väikepildi; seaded: laius,kõrgus pikslites (hoiab alles originaalpildi laiuse-kõrguse suhte)';
+$strTransformation_image_jpeg__link = 'Kuvab lingi sellele pildile (otsene binaarne allalaadimine, jne.).';
+$strTransformation_image_png__inline = 'Vaata image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Näitab TIME, TIMESTAMP, DATETIME või numbrilist unix´i ajatempli välja formaaditud kuupäevana. Esimene valik on ajanihe (tundides) mis lisatakse ajatemplile (Vaikimisi: 0). Kasuta teist valikut et täpsustada kuupäeva formaat. Kolmas valik annab valida kas kuupäev kasutab kohalikku aega või UTC oma (kasuta "local" (kohalik) või "utc" stringe). Sellest tulenevalt, kuupäeva formaadil on teine väärtus - "local" väärtuse täpsustamiseks vaata dokumentatsiooni PHP strftime() funktsiooni kasutamise kohta ja kasutades "utc" vaata gmdate() funtsiooni kasutamist.';
+$strTransformation_text_plain__external = 'AINULT LINUXILE: Käivitab välise aplikatsiooni ja annab talle standard sisendisse ette välja sisu. Tagastab aplikatsiooni standard väljundi. Vaikimisi on selleks Tidy, et kuvada ilusti formaaditud HTML koodi. Turvariskide maandamiseks peate te käsitsi muutma faili libraries/transformations/text_plain__external.inc.php ja lisama sinna programmid mida te lasete käivitada. Esimene seade on siis kasutatava programmi number, teine seade on programmi parameetrid. Kui kolmas seade on 1 siis töödeldakse väljund funktsiooniga htmlspecialchars() (vaikimisi 1). Kui neljas seade on 1 pannakse NOWRAP sisu lahtrile nii, et kogu väljund kuvatakse ilma formaati muutmata(vaikimisi 1)';
+$strTransformation_text_plain__formatted = 'Hoiab alles originaalset välja formaati. Ei varjestata.';
+$strTransformation_text_plain__imagelink = 'Kuvab pildi ja lingi, väli sisaldab failinime; esimene seade on eelnev tekst nagu "http://domain.com/", teine seade on laius pikslites, kolmas on kõrgus.';
+$strTransformation_text_plain__link = 'Kuvab lingi, väli sisaldab failinime; esimene seade on eelnev tekst näiteks "http://domain.com/", teine seade on nimi lingile.';
+$strTransformation_text_plain__sql = 'Vormib SQL päringu tekstiks esile tõstetuna.';
+$strTransformation_text_plain__substr = 'Näitab ainult osa tekstist. Esimene seade on määrang kust positsioonilt teie teksti kuva hakkab.(vaikimisi 0). Teine seade on kuipalju teksti tagastatakse, kui see tühjaks jätta, tagastatakse kogu allesjäänud tekst. Kolmas seade defineerib mis tekst lisatakse väljundi lõppu kui saadud tekst tagastatakse. (vaikimisi: ...) .';
+$strTruncateQueries = 'Lühenda näidatavad päringud';
+$strTurkish = 'Türgi';
+$strType = 'Tüüp';
+
+$strUkrainian = 'Ukraina';
+$strUncheckAll = 'Puhasta kõik';
+$strUnicode = 'Unikaalne';
+$strUnique = 'Unikaalne';
+$strUnknown = 'tundmatu';
+$strUnselectAll = 'Puhasta kõik';
+$strUnsupportedCompressionDetected = 'Proovisid laadida faili tundmatu pakkimisega (%s). Võimalik et toetus ei ole veel lisatud või on sinu seadetes keelatud.';
+$strUpdatePrivMessage = 'Te uuendasite privileege %s-l.';
+$strUpdateProfileMessage = 'Profiil uuendatud.';
+$strUpdateQuery = 'Uuenda päringut';
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table';
+$strUpgrade = 'Te peaksite uuendama %s -i versioonini %s või uuemaks.';
+$strUploadLimit = 'Te kindlasti proovisite laadida liiga suurt faili. Palun uuri dokumentatsiooni %sdocumentation%s selle limiidi seadmiseks.';
+$strUploadsNotAllowed = 'Faile pole lubatud laadida sellesse serverisse.';
+$strUsage = 'Kasutus';
+$strUseBackquotes = 'Kasutage tagurpidi kaldkriipse tabelites või tabelinimedes';
+$strUseHostTable = 'Kasuta host tabelit';
+$strUserAlreadyExists = 'Kasutaja %s on juba olemas!';
+$strUserEmpty = 'Kasutajanimi on tühi!';
+$strUser = 'Kasutaja';
+$strUserName = 'Kasutajanimi';
+$strUserNotFound = 'Valitud kasutajat ei leitud privileegide tabelist.';
+$strUserOverview = 'Kasutaja ülevaade';
+$strUsersDeleted = 'Valitud kasutajad on õnnestunult kustutatud.';
+$strUsersHavingAccessToDb = 'Kasutajad kellel on ligipääs &quot;%s&quot;';
+$strUseTabKey = 'Kasutage TAB klahvi, et liikuda ühelt väärtuselt teisele või CTRL+nool, et liikuda noole suunas';
+$strUseTables = 'Kasuta tabeleid';
+$strUseTextField = 'Kasutage tekstivälja';
+$strUseThisValue = 'Kasuta seda väärtust';
+
+$strValidateSQL = 'Kontrolli SQL-i';
+$strValidatorError = 'SQL-i valideerijat ei suudetud avada. Palun kontrollige, et te olete installinud vastavad php moodulid nagu on kirjeldatud %sdokumentatsioonis%s.';
+$strValue = 'Väärtus';
+$strVar = 'Muutuja';
+$strVersionInformation = 'Versiooni info';
+$strViewDumpDatabases = 'Näita andmebaaside sisu (skeemi)';
+$strViewDumpDB = 'Vaata andmebaasi väljundit (skeemi)';
+$strViewDump = 'Vaata tabeli väljundit (skeemi)';
+$strViewHasBeenDropped = 'Vaade %s on kustutatud';
+$strView = 'Vaade';
+
+$strWebServerUploadDirectoryError = 'Kataloog mille Te üleslaadimiseks sättisite ei ole ligipääsetav';
+$strWebServerUploadDirectory = 'webiserveri üleslaadimiskataloogi';
+$strWelcome = 'Tere tulemast %s';
+$strWestEuropean = 'Lääne-Euroopa';
+$strWildcard = 'metamärk';
+$strWindowNotFound = 'Vajaliku sirvija akent ei suudetud uuendada. Võibolla Te olete peaakna sulgenud või Teie sirvija ei luba akendevahelist suhtlist tänu turvaseadetele.';
+$strWithChecked = 'Valitud:';
+$strWriteRequests = 'Pöördumised kirjutamiseks';
+$strWrongUser = 'Vale kasutajanimi/parool. Ligipääs keelatud.';
+
+$strXML = 'XML';
+
+$strYes = 'Jah';
+
+$strZeroRemovesTheLimit = 'Märkus: Märkides antud seaded 0 (null), eemaldate limiidi.';
+$strZip = '"zipitud"';
+
+// To translate:
+
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/finnish-utf-8.inc.php b/lang/finnish-utf-8.inc.php
new file mode 100644
index 0000000000..b765e75622
--- /dev/null
+++ b/lang/finnish-utf-8.inc.php
@@ -0,0 +1,1448 @@
+<?php
+/* $Id$ */
+
+/*
+ * Translated by Jouni Kähkönen, <address withdrawn>
+ * Previous translations by Visa Kopu, <visa@visakopu.net>
+ */
+
+$charset = 'utf-8';
+$allow_recoding = TRUE;
+$text_dir = 'ltr';
+$number_thousands_separator = ' ';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('tavua', 'kt', 'Mt', 'Gt', 'Tt', 'Pt', 'Et');
+
+$day_of_week = array('Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La');
+$month = array('Tammi', 'Helmi', 'Maalis', 'Huhti', 'Touko', 'Kesä', 'Heinä', 'Elo', 'Syys', 'Loka', 'Marras', 'Joulu');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d.%m.%Y klo %H:%M';
+
+$timespanfmt = '%s päivää, %s tuntia, %s minuuttia ja %s sekuntia';
+
+$strAbortedClients = 'Keskeytetty';
+$strAccessDeniedCreateConfig = 'Tämä johtunee siitä ettet ole luonut asetustiedostoa. Voit luoda asetustiedoston %1$sasetusskriptillä%2$s.';
+$strAccessDeniedExplanation = 'PhpMyAdmin yritti saada yhteyden MySQL-palvelimeen, mutta palvelin torjui yhteyden. Tarkista palvelimen nimi, käyttäjätunnus ja salasana config.inc.php-tiedostosta ja varmista, että ne vastaavat MySQL-palvelimen järjestelmänvalvojan antamia tietoja.';
+$strAccessDenied = 'Käyttö estetty';
+$strActions = 'Toiminnot';
+$strAction = 'Toiminnot';
+$strAddAutoIncrement = 'Lisää AUTO_INCREMENT-arvo';
+$strAddClause = 'Lisää %s';
+$strAddConstraints = 'Lisää rajoitteet';
+$strAddDeleteColumn = 'Lisää tai poista sarakkeita';
+$strAddDeleteRow = 'Lisää tai poista hakuehtoja';
+$strAddFields = 'Lisää %s kenttä(ä)';
+$strAddHeaderComment = 'Lisää oma kommentti otsikkoon (\\n on rivinvaihto)';
+$strAddIntoComments = 'Lisää kommentteihin';
+$strAddNewField = 'Lisää sarake';
+$strAddPrivilegesOnDb = 'Lisää käyttöoikeudet seuraavaan tietokantaan';
+$strAddPrivilegesOnTbl = 'Lisää käyttöoikeudet seuraavaan tauluun';
+$strAddSearchConditions = 'Lisää hakuehtoja ("WHERE"-lauseen sisältö):';
+$strAddToIndex = 'Lisää indeksiin %s sarake(tta)';
+$strAddUser = 'Lisää uusi käyttäjä';
+$strAddUserMessage = 'Uusi käyttäjä lisätty.';
+$strAdministration = 'Hallinta';
+$strAfterInsertBack = 'Takaisin';
+$strAfterInsertNewInsert = 'Lisää uusi rivi';
+$strAfterInsertNext = 'Muokkaa seuraavaa riviä';
+$strAfterInsertSame = 'Palaa tälle sivulle';
+$strAfter = 'Jälkeen sarakkeen: %s';
+$strAll = 'Kaikki';
+$strAllowInterrupt = 'Anna tuonnin keskeytyä, mikäli skripti huomaa ylittävänsä aikarajoituksen. Tätä kannattaa käyttää tuotaessa suuria tiedostoja; se voi kuitenkin aiheuttaa häiriöitä transaktioihin.';
+$strAllTableSameWidth = 'Näytä kaikki taulut samanlevyisinä?';
+$strAlterOrderBy = 'Lajittele taulu';
+$strAnalyze = 'Analysoi';
+$strAnalyzeTable = 'Analysoi taulu';
+$strAnd = 'Ja';
+$strAndThen = 'ja sen jälkeen';
+$strAngularLinks = 'Kulmikkaat linkit';
+$strAnIndex = 'Sarakkeelle %s on lisätty indeksi';
+$strAnyHost = 'Mikä tahansa palvelin';
+$strAny = 'Mikä tahansa';
+$strAnyUser = 'Kuka tahansa käyttäjä';
+$strApproximateCount = 'Saattaa olla summittainen. Katso FAQ 3.11';
+$strAPrimaryKey = 'Sarakkeelle %s on luotu perusavain';
+$strArabic = 'Arabialainen';
+$strArmenian = 'Armenialainen';
+$strAscending = 'Nouseva';
+$strAsDefined = 'Määritelty:';
+$strAtBeginningOfTable = 'Taulun alkuun';
+$strAtEndOfTable = 'Taulun loppuun';
+$strAttr = 'Attribuutit';
+$strAutomaticLayout = 'Automaattinen ulkoasu';
+
+$strBack = 'Takaisin';
+$strBaltic = 'Baltilainen';
+$strBeginCut = 'ALOITA CUT';
+$strBeginRaw = 'ALOITA RAW';
+$strBinary = 'Binääritietoa';
+$strBinaryDoNotEdit = 'Binääritietoa - älä muokkaa';
+$strBinaryLog = 'Binääriloki';
+$strBinLogEventType = 'Tapahtuman tyyppi';
+$strBinLogInfo = 'Tiedot';
+$strBinLogName = 'Lokin nimi';
+$strBinLogOriginalPosition = 'Alkuperäinen sijainti';
+$strBinLogPosition = 'Sijainti';
+$strBinLogServerId = 'Palvelimen tunnus';
+$strBLOBRepository = 'BLOB-tietokanta';
+$strBLOBRepositoryDamaged = 'Vioittunut';
+$strBLOBRepositoryDisableAreYouSure = 'Haluatko varmasti poistaa käytöstä kaikki BLOB-viittaukset tietokannasta %s?';
+$strBLOBRepositoryDisabled = 'Ei käytössä';
+$strBLOBRepositoryDisable = 'Poista käytöstä';
+$strBLOBRepositoryDisableStrongWarning = 'Olet POISTAMASSA KÄYTÖSTÄ BLOB-tietokannan!';
+$strBLOBRepositoryEnabled = 'Käytössä';
+$strBLOBRepositoryEnable = 'Ota käyttöön';
+$strBLOBRepositoryRemove = 'Poista BLOB-tietokantaviittaus';
+$strBLOBRepositoryRepair = 'Korjaa';
+$strBLOBRepositoryStatus = 'Tila';
+$strBLOBRepositoryUpload = 'Lähetä BLOB-tietokantaan';
+$strBookmarkAllUsers = 'Anna kaikkien käyttäjien käyttää tätä kirjanmerkkiä';
+$strBookmarkCreated = 'Kirjanmerkki %s luotu';
+$strBookmarkDeleted = 'Kirjanmerkki on poistettu.';
+$strBookmarkLabel = 'Tunniste';
+$strBookmarkQuery = 'Tallennettu SQL-kysely';
+$strBookmarkReplace = 'Korvaa samanniminen, olemassa oleva kirjanmerkki';
+$strBookmarkThis = 'Tallenna SQL-kysely';
+$strBookmarkView = 'Näytä';
+$strBrowseDistinctValues = 'Selaa erilaisia arvoja';
+$strBrowseForeignValues = 'Selaa viitearvoja';
+$strBrowse = 'Selaa';
+$strBufferPoolActivity = 'Puskurivarannon aktiivisuus';
+$strBufferPool = "Puskurivaranto";
+$strBufferPoolUsage = "Puskurivarannon käyttö";
+$strBufferReadMisses = 'Epäonnistuneet lukuyritykset';
+$strBufferReadMissesInPercent = 'Epäonnistuneet lukuyritykset: %';
+$strBufferWriteWaitsInPercent = 'Kirjoitusviipeet: %';
+$strBufferWriteWaits = 'Viive ennen kirjoitusta';
+$strBulgarian = 'Bulgarialainen';
+$strBusyPages = "Käytössä olevat sivut";
+$strBzip = '"bzip-pakkaus"';
+
+$strCalendar = 'Kalenteri';
+$strCancel = 'Peruuta';
+$strCanNotLoadExportPlugins = 'Vientiin tarvittavia lisäosia ei voitu ladata; tarkista asetukset!';
+$strCanNotLoadImportPlugins = 'Tuontiin tarvittavaa lisäosaa ei voida tuoda, tarkista asetukset!';
+$strCannotLogin = 'MySQL-palvelimelle ei voitu kirjautua';
+$strCantLoad = 'Laajennuksen %s lataus ei onnistu; tarkista PHP:n asetukset';
+$strCantLoadRecodeIconv = 'Merkistön muunnokseen tarvittavaa iconv- tai recode-laajennusta ei voitu ladata. Muokkaa PHP:n asetuksia ottaen käyttöön nämä laajennukset tai muuta phpMyAdminin asetuksia siinä määrin ettei muunnosta suoriteta.';
+$strCantRenameIdxToPrimary = 'Indeksiä ei voi muuttaa PRIMARY-nimiseksi!';
+$strCantUseRecodeIconv = 'Iconv-, libiconv- tai recode_string-funktioita ei voitu käyttää. Tarkista PHP:n asetukset.';
+$strCardinality = 'Kardinaliteetti';
+$strCaseInsensitive = 'kirjainkoolla ei väliä';
+$strCaseSensitive = 'tarkka kirjainkoko';
+$strCentralEuropean = 'Keskieurooppalainen';
+$strChangeCopyModeCopy = '... säilytä vanha käyttäjä.';
+$strChangeCopyModeDeleteAndReload = ' ... poista vanha käyttäjä käyttäjätauluista ja lataa käyttöoikeudet sen jälkeen uudelleen.';
+$strChangeCopyModeJustDelete = ' ... poista vanha käyttäjä käyttäjätauluista.';
+$strChangeCopyMode = 'Luo uusi käyttäjä samoilla käyttöoikeuksilla ja ...';
+$strChangeCopyModeRevoke = ' ... peruuta kaikki vanhan käyttäjän aktiiviset käyttöoikeudet ja tuhoa käyttäjä sen jälkeen.';
+$strChangeCopyUser = 'Vaihda kirjautumistietoja / Kopioi käyttäjä';
+$strChangeDisplay = 'Valitse näytettävä sarake';
+$strChange = 'Muokkaa';
+$strChangePassword = 'Vaihda salasanaa';
+$strCharset = 'Merkistökoodaus';
+$strCharsetOfFile = 'Tiedoston merkistö:';
+$strCharsetsAndCollations = 'Merkistökoodaukset ja aakkosjärjestykset';
+$strCharsets = 'Merkistöt';
+$strCheckAll = 'Valitse kaikki';
+$strCheckOverhead = 'Valitse taulut, joissa on ylijäämää';
+$strCheckPrivs = 'Hallitse käyttöoikeuksia';
+$strCheckPrivsLong = 'Hallitse tietokannan &quot;%s&quot; käyttöoikeuksia.';
+$strCheckTable = 'Tarkista taulu';
+$strCheck = 'Tarkasta';
+$strChoosePage = 'Valitse muokattava sivu';
+$strColComFeat = 'Sarakkeiden kommentit näkyvissä';
+$strCollation = 'Aakkosjärjestys';
+$strColumnNames = 'Sarakkeiden nimet';
+$strColumnPrivileges = 'Sarakekohtaiset käyttöoikeudet';
+$strCommand = 'Komento';
+$strComment = 'Kommentti';
+$strComments = 'Kommentit';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 -yhteensopiva';
+$strCompleteInserts = 'Kokonaiset lisäyslauseet';
+$strCompression = 'Pakkaus';
+$strCompressionWillBeDetected = 'Seuraavat tiedostonpakkausmuodot löydetään automaattisesti: %s';
+$strConfigDefaultFileError = 'Oletusasetuksia ei voitu ladata kohteesta: "%1$s"';
+$strConfigFileError = 'phpMyAdmin ei pysty lukemaan asetustiedostoa.<br />Tämä saattaa johtua PHP:n löytämästä tiedoston virheestä tai tiedoston puuttumisesta.<br />Voit avata tiedoston alla olevasta linkistä ja lukea mahdolliset PHP-virheilmoitukset. Todennäköisimmin joltain riviltä puuttuu lainausmerkki tai puolipiste.<br />Jos linkistä avautuva sivu on tyhjä, asetustiedostossa ei ollut virhettä.';
+$strConfigureTableCoord = 'Määrittele koordinaatit taululle %s';
+$strConnectionError = 'Yhteyttä ei voitu muodostaa: virheelliset asetukset.';
+$strConnections = 'Yhteydet';
+$strConstraintsForDumped = 'Rajoitteet vedostauluille';
+$strConstraintsForTable = 'Rajoitteet taululle';
+$strControluserFailed = 'Yhteyden muodostus asetuksissa määriteltyyn superuser-käyttäjään epäonnistui.';
+$strCookiesRequired = 'Selaimessa on oltava evästeet päällä tästä lähtien.';
+$strCopyDatabaseOK = 'Tietokanta %s on kopioitu tietokantaan %s';
+$strCopy = 'Kopioi';
+$strCopyTable = 'Kopioi taulu toiseen tauluun nimellä (tietokanta<b>.</b>taulu):';
+$strCopyTableOK = 'Taulu %s on kopioitu uuteen tauluun %s.';
+$strCopyTableSameNames = 'Taulua ei voi kopioida itseensä!';
+$strCouldNotKill = 'PhpMyAdmin ei voinut lopettaa säiettä %s. Se on ehkä jo suljettu.';
+$strCreateDatabaseBeforeCopying = 'Suorita CREATE DATABASE ennen kopioimista';
+$strCreateIndex = 'Luo &nbsp;%s:n sarakkeen indeksi';
+$strCreateIndexTopic = 'Luo uusi indeksi';
+$strCreate = 'Luo';
+$strCreateNewDatabase = 'Luo uusi tietokanta';
+$strCreateNewTable = 'Luo uusi taulu tietokantaan %s';
+$strCreatePage = 'Luo uusi sivu';
+$strCreatePdfFeat = 'PDF-tiedostojen luonti';
+$strCreateRelation = 'Luo relaatio';
+$strCreateTable = 'Luo taulu';
+$strCreateUserDatabaseName = 'Luo samanniminen tietokanta ja anna kaikki oikeudet';
+$strCreateUserDatabaseNone = 'Ei mitään';
+$strCreateUserDatabase = 'Tietokanta käyttäjälle';
+$strCreateUserDatabaseWildcard = 'Anna kaikki oikeudet tietokannalle käyttäen jokerimerkkiä (username\_%)';
+$strCreationDates = 'Luonti-, päivitys- ja tarkistuspäiväykset';
+$strCriteria = 'Hakuehdot';
+$strCroatian = 'Kroaatti';
+$strCSV = 'CSV';
+$strCustomColor = 'Muu väri';
+$strCyrillic = 'Kyrillinen';
+$strCzechSlovak = 'Tsekkoslovakialainen';
+$strCzech = 'Tsekkiläinen';
+
+$strDanish = 'Tanskalainen';
+$strDatabaseEmpty = 'Tietokannan nimi on tyhjä!';
+$strDatabaseExportOptions = 'Tietokannan tulostusvalinnat';
+$strDatabaseHasBeenCreated = 'Tietokanta %1$s on luotu.';
+$strDatabaseHasBeenDropped = 'Tietokanta %s on poistettu.';
+$strDatabasesDropped = '%s tietokantaa poistettiin onnistuneesti.';
+$strDatabasesStatsDisable = 'Kätke tilastot';
+$strDatabasesStatsEnable = 'Näytä tilastot';
+$strDatabasesStatsHeavyTraffic = 'Huom: Tietokantatilastojen näyttäminen täältä käsin saattaa aiheuttaa runsaasti liikennettä Internet-palvelimen ja MySQL-palvelimen välille.';
+$strDatabasesStats = 'Tietokantatilastot';
+$strDatabases = 'Tietokannat';
+$strDatabase = 'Tietokanta';
+$strDataDict = 'Tietosanasto';
+$strDataOnly = 'Vain tiedot';
+$strDataPages = "Tietoja sisältävät sivut";
+$strData = 'Tietoa';
+$strDBComment = 'Tietokannan kommentti: ';
+$strDBCopy = 'Luo tietokannasta toinen tietokanta nimellä';
+$strDbIsEmpty = 'Tietokanta on tyhjä!';
+$strDbPrivileges = 'Tietokantakohtaiset käyttöoikeudet';
+$strDBRename = 'Muuta tietokannan nimi';
+$strDbSpecific = 'tietokantakohtainen';
+$strDefaultEngine = "%s on tämän MySQL-palvelimen oletustallennusmoottori.";
+$strDefault = 'Oletusarvo';
+$strDefaultValueHelp = 'Syötä oletusarvoihin vain yksi arvo (käyttämättä kenoviivamerkkejä tai lainausmerkkejä) tässä muodossa: a';
+$strDefragment = 'Eheytä taulu';
+$strDelayedInserts = 'Käytä viivästettyjä lisäyslauseita';
+$strDeleteAndFlushDescr = 'Tämä on siivoin tapa, mutta käyttöoikeuksien lataaminen uudelleen kestää hetken.';
+$strDeleteAndFlush = 'Poista käyttäjät ja lataa käyttöoikeudet sen jälkeen uudelleen.';
+$strDeleted = 'Rivi on poistettu';
+$strDeleteNoUsersSelected = 'Yhtään käyttäjää ei valittu poistettavaksi!';
+$strDelete = 'Poista';
+$strDeleteRelation = 'Poista relaatio';
+$strDeleting = 'Poistetaan: %s';
+$strDelimiter = 'Erotinmerkki';
+$strDelOld = 'Nykyisellä sivulla on viittauksia tauluihin, joita ei enää ole olemassa. Haluatko poistaa nuo viittaukset?';
+$strDescending = 'Laskeva';
+$strDescription = 'Kuvaus';
+$strDesignerHelpDisplayField = 'Ilmaisinkenttä näkyy vaaleanpunaisena. Luodaksesi kentästä ilmaisinkentän paina "Valitse näytettävä kenttä" -kuvaketta ja napsauta sitten sopivaa kenttänimeä.';
+$strDesigner = 'Suunnittelija';
+$strDetails = 'Lisätiedot...';
+$strDictionary = 'sanasto';
+$strDirectLinks = 'Suorat linkit';
+$strDirtyPages = "Epäsiistit sivut";
+$strDisabled = 'Pois päältä';
+$strDisableForeignChecks = 'Älä tarkista viiteavaimia';
+$strDisplayFeat = 'Ulkoasun asetukset';
+$strDisplayOrder = 'Lajittelujärjestys:';
+$strDisplayPDF = 'Näytä PDF-kaavio';
+$strDoAQuery = 'Suorita mallin mukainen kysely (jokerimerkki: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Ohjeet';
+$strDownloadFile = 'Lataa tiedosto';
+$strDoYouReally = 'Haluatko varmasti ';
+$strDropDatabaseStrongWarning = 'Olet aikeissasi HÄVITTÄÄ kokonaisen tietokannan!';
+$strDrop = 'Tuhoa';
+$strDropUsersDb = 'Poista tietokannat, joilla on sama nimi kuin käyttäjillä.';
+$strDumpingData = 'Vedos taulusta';
+$strDumpSaved = 'Vedos tallennettiin tiedostoon %s.';
+$strDumpXRows = 'Tee vedos %s rivistä, alkaen riviltä: %s.';
+$strDynamic = 'dynaaminen';
+
+$strEdit = 'Muokkaa';
+$strEditPDFPages = 'Muokkaa PDF-sivuja';
+$strEditPrivileges = 'Muokkaa käyttöoikeuksia';
+$strEffective = 'Pätevä';
+$strEmptyResultSet = 'MySQL palautti tyhjän vastauksen, toisin sanoen nolla riviä.';
+$strEmpty = 'Tyhjennä';
+$strEnabled = 'Päällä';
+$strEncloseInTransaction = 'Lisää transaktio';
+$strEndCut = 'LOPETA CUT';
+$strEnd = 'Loppu';
+$strEndRaw = 'LOPETA RAW';
+$strEngineAvailable = "%s on käytettävissä tällä MySQL-palvelimella.";
+$strEngineDisabled = "%s ei ole käytettävissä tällä MySQL-palvelimella.";
+$strEngines = "Moottorit";
+$strEngineUnsupported = "Tämä MySQL-palvelin ei tue %s-tallennusmoottoria.";
+$strEnglish = 'Englantilainen';
+$strEnglishPrivileges = ' Huom! MySQL-käyttöoikeuksien nimet ovat englanniksi! ';
+$strErrorInZipFile = 'Virhe ZIP-paketissa:';
+$strErrorRelationAdded = 'Virhe: Relaatiota ei luotu.';
+$strErrorRelationExists = 'Virhe: relaatio on jo olemassa.';
+$strErrorRenamingTable = 'Virhe annettaessa taululle %1$s nimeä %2$s';
+$strErrorSaveTable = 'Virhe tallennettaessa koordinaatteja Suunnittelijaan.';
+$strError = 'Virhe';
+$strEscapeWildcards = 'Jokerimerkkien _ ja % eteen on lisättävä \-merkki, jotta ne näkyisivät oikein';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Virolainen';
+$strEvents = 'Tapahtumat';
+$strEvent = 'Tapahtuma';
+$strExcelEdition = 'Excel-muokkaus';
+$strExecuteBookmarked = 'Suorita kysely kirjanmerkeistä';
+$strExplain = 'Selitä SQL-kysely';
+$strExportImportToScale = 'Vie/tuo skaalaan';
+$strExportMustBeFile = 'Valittu vientityyppi on tallennettava tiedostoon!';
+$strExport = 'Vienti';
+$strExtendedInserts = 'Laajennetut lisäyslauseet';
+$strExtra = 'Lisätiedot';
+
+$strFailedAttempts = 'Epäonnistuneet yritykset';
+$strFieldHasBeenDropped = 'Sarake %s on poistettu';
+$strFieldInsertFromFileTempDirNotExists = 'Virhe lähetettäessä tiedostoa, katso FAQ 1.11';
+$strField = 'Sarake';
+$strFieldsEnclosedBy = 'Sarakkeiden rajausmerkki';
+$strFieldsEscapedBy = 'Koodinvaihtomerkki';
+$strFields = 'Sarakkeet';
+$strFieldsTerminatedBy = 'Sarakkeiden erotinmerkki';
+$strFileAlreadyExists = 'Tiedosto %s on jo olemassa palvelimella, vaihda tiedostonimeä tai tarkista korvausasetuksen tila.';
+$strFileCouldNotBeRead = 'Tiedostoa ei voi lukea';
+$strFileNameTemplateDescriptionDatabase = 'tietokannan nimi';
+$strFileNameTemplateDescriptionServer = 'palvelimen nimi';
+$strFileNameTemplateDescriptionTable = 'taulun nimi';
+$strFileNameTemplateDescription = 'Tämä arvo on %1$sstrftime%2$s-funktion mukainen, joten ajanmuodostostusmerkkijonoja voi käyttää. Lisäksi tapahtuu seuraavat muutokset: %3$s. Muu teksti pysyy alkuperäisenä.';
+$strFileNameTemplateRemember = 'muista pohja';
+$strFileNameTemplate = 'Tiedostonimen pohja';
+$strFiles = 'Tiedostot';
+$strFileToImport = 'Tuotava tiedosto';
+$strFixed = 'kiinteä';
+$strFlushPrivilegesNote = 'Huom: PhpMyAdmin hakee käyttäjien käyttöoikeudet suoraan MySQL-palvelimen käyttöoikeustauluista. Näiden taulujen sisältö saattaa poiketa palvelimen käyttämistä käyttöoikeuksista, jos tauluihin on tehty muutoksia käsin. Tällöin %skäyttöoikeudet on ladattava uudestaan%s ennen jatkamista.';
+$strFlushQueryCache = 'Tyhjennä kyselymuisti';
+$strFlushTables = 'Tyhjennä (sulje) kaikki taulut';
+$strFlushTable = 'Tyhjennä taulun välimuisti ("FLUSH")';
+$strFontSize = 'Fonttikoko';
+$strForeignKeyError = 'Virhe luotaessa kohteen %1$s viiteavainta (tarkista tietotyypit)';
+$strForeignKeyRelationAdded = 'FOREIGN KEY -relaatio lisätty';
+$strFormat = 'Muoto';
+$strFormEmpty = 'Tarvittava tieto puuttuu lomakkeesta!';
+$strFreePages = "Vapaat sivut";
+$strFullText = 'Koko tekstit';
+$strFunction = 'Funktio';
+$strFunctions = 'Funktiot';
+
+$strGenBy = 'Luontiympäristö';
+$strGeneralRelationFeat = 'Yleiset relaatio-ominaisuudet';
+$strGenerate = 'Keksi';
+$strGeneratePassword = 'Keksi salasana';
+$strGenTime = 'Luontiaika';
+$strGeorgian = 'Georgialainen';
+$strGerman = 'Saksalainen';
+$strGlobal = 'globaali';
+$strGlobalPrivileges = 'Globaalit käyttöoikeudet';
+$strGlobalValue = 'Globaali arvo';
+$strGo = 'Siirry';
+$strGrantOption = 'Valtuudet (GRANT)';
+$strGreek = 'Kreikkalainen';
+$strGzip = '"gzip-pakkaus"';
+
+$strHandler = 'Käsittelijä';
+$strHasBeenAltered = 'on muutettu.';
+$strHaveToShow = 'Valitse vähintään yksi sarake';
+$strHebrew = 'Hebrealainen';
+$strHelp = 'Ohje';
+$strHexForBLOB = 'Käytä BLOB-arvoissa heksalukuja';
+$strHide = 'Kätke';
+$strHideShowAll = 'Kätke/näytä kaikki';
+$strHideShowNoRelation = 'Kätke/näytä taulut, joilla ei ole relaatiota';
+$strHome = 'Etusivu';
+$strHomepageOfficial = 'phpMyAdminin kotisivut';
+$strHostEmpty = 'Palvelimen nimi puuttuu!';
+$strHost = 'Palvelin';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Unkarilainen';
+
+$strIcelandic = 'Islantilainen';
+$strId = 'Tunnus';
+$strIdxFulltext = 'Koko teksti';
+$strIEUnsupported = 'Internet Explorer ei tue tätä toimintoa.';
+$strIgnore = 'Älä huomioi';
+$strIgnoreDuplicates = 'Älä välitä samanlaisista riveistä';
+$strIgnoreInserts = 'Käytä IGNORE:a INSERT-komennoissa';
+$strImportExportCoords = 'Tuo/vie PDF-skeeman koordinaatit';
+$strImportFiles = 'Tuo tiedostoja';
+$strImportFormat = 'Tuotavan tiedoston muoto';
+$strImportSuccessfullyFinished = 'Tuonti onnistui, %d kyselyä suoritettu.';
+$strImport = 'Tuonti';
+$strIndexes = 'Indeksit';
+$strIndexesSeemEqual = 'Indeksit %1$s ja %2$s ovat ehkä samoja, ja niistä jompikumpi kannattanee poistaa.';
+$strIndexHasBeenDropped = 'Indeksi %s on poistettu';
+$strIndex = 'Indeksi';
+$strIndexName = 'Indeksin nimi:';
+$strIndexType = 'Indeksin tyyppi:';
+$strIndexWarningTable = 'Taulun "%s" indeksien kanssa on ongelmia';
+$strInnoDBAutoextendIncrement = "Automaattisen laajentamisen koko";
+$strInnoDBAutoextendIncrementDesc = "Kertoo, kuinka paljon taulun kokoa kasvatetaan taulun tilan täyttyessä.";
+$strInnoDBBufferPoolSizeDesc = 'Kertoo muistipuskurin koon, jota InnoDB käyttää taulujen tietojen ja indeksien siirtämiseen välimuistiin.';
+$strInnoDBBufferPoolSize = 'Puskurivarannon koko';
+$strInnoDBDataFilePath = "Tiedostot";
+$strInnoDBDataHomeDirDesc = "Hakemistopolun yhteinen osa kaikille InnoDB-tiedostoille.";
+$strInnoDBDataHomeDir = "Tiedostojen kotihakemisto";
+$strInnoDBPages = 'sivua';
+$strInnodbStat = 'InnoDB:n tila';
+$strInsecureMySQL = 'Asetustiedostossa on MySQL-palvelimen oletuskäyttäjään viittavia asetuksia (root ilman salasanaa). Tällaisin asetuksin MySQL-palvelin on altis hyökkäyksille. Tämä tietoturvariski on syytä korjata pikimmiten!';
+$strInsertAsNewRow = 'Lisää uutena rivinä';
+$strInsertedRowId = 'Lisätyn rivin tunnus: %1$d';
+$strInsert = 'Lisää rivi';
+$strInterface = 'Käyttöliittymä';
+$strInternalAndForeign = 'Sisäistä relaatiota ei tarvita, kun vastaava FOREIGN KEY -relaatio on olemassa.';
+$strInternalRelationAdded = 'Sisäinen relaatio luotu';
+$strInternalRelations = 'Sisäiset relaatiot';
+$strInUse = 'käytössä';
+$strInvalidAuthMethod = 'Asetuksissa on virheellinen todennustapa:';
+$strInvalidColumnCount = 'Sarakkeiden määrän on oltava nollaa suurempi.';
+$strInvalidColumn = 'Virheellinen sarake (%s) määritelty!';
+$strInvalidCSVFieldCount = 'Virheellinen kenttien määrä CSV-syötteessä rivillä %d.';
+$strInvalidCSVFormat = 'Virheellinen muoto CSV-syötteessä rivillä %d.';
+$strInvalidCSVParameter = 'Virheellinen CSV-tuonnin parametri: %s';
+$strInvalidDatabase = 'Virheellinen tietokanta';
+$strInvalidFieldAddCount = 'Vähintään yksi kenttä on lisättävä.';
+$strInvalidFieldCount = 'Taulussa on oltava vähintään yksi kenttä.';
+$strInvalidLDIImport = 'Tämä lisäosa ei tue pakattujen tuontien käyttöä!';
+$strInvalidRowNumber = '%d on virheellinen rivinumero.';
+$strInvalidServerHostname = 'Palvelimella %1$s virheellinen nimi. Tarkista asetukset.';
+$strInvalidServerIndex = 'Virheellinen palvelimen indeksi: "%s"';
+$strInvalidTableName = 'Virheellinen taulun nimi';
+
+$strJapanese = 'Japanilainen';
+$strJoins = 'Liitokset';
+$strJumpToDB = 'Siirry tietokantaan &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Poistetut&quot; käyttäjät voivat edelleen käyttää tavalliseen tapaan palvelinta, ellei käyttöoikeuksia ladata uudestaan.';
+$strJustDelete = 'Poista käyttäjät vain käyttöoikeustauluista.';
+
+$strKeepPass = 'Älä vaihda salasanaa';
+$strKeyCache = 'Avainvälimuisti';
+$strKeyname = 'Avaimen nimi';
+$strKill = 'Lopeta';
+$strKnownExternalBug = 'Toimintoon %s vaikuttaa tunnettu vika, katso %s';
+$strKorean = 'Korealainen';
+
+$strLandscape = 'Vaakatasossa';
+$strLanguage = 'Kieli';
+$strLanguageUnknown = 'Tuntematon kieli: %1$s.';
+$strLatchedPages = "Lukitut sivut";
+$strLatexCaption = 'Taulun otsikko';
+$strLatexContent = 'Taulun __TABLE__ sisältö';
+$strLatexContinuedCaption = 'Jatkettu taulun otsikko';
+$strLatexContinued = '(jatkuu)';
+$strLatexIncludeCaption = 'Sisällytä taulun otsikko';
+$strLatexLabel = 'Tunniste';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Taulun __TABLE__ rakenne';
+$strLatvian = 'Latvialainen';
+$strLDI = 'CSV käyttäen LOAD DATA -kyselyä';
+$strLDILocal = 'Käytä LOCAL-avainsanaa';
+$strLengthSet = 'Pituus/Arvot*';
+$strLimitNumRows = 'Rivejä sivulla';
+$strLinesTerminatedBy = 'Rivien erotinmerkki';
+$strLinkNotFound = 'Linkkiä ei löydy';
+$strLinksTo = 'Linkitys sarakkeeseen:';
+$strLithuanian = 'Liettualainen';
+$strLocalhost = 'Paikallinen';
+$strLocationTextfile = 'Tiedoston sijainti';
+$strLoginInformation = 'Kirjautumistiedot';
+$strLogin = 'Kirjaudu sisään';
+$strLogout = 'Poistu';
+$strLogPassword = 'Salasana:';
+$strLogServerHelp = 'Voit syöttää verkkotunnuksen/IP-osoitteen ja portin välilyönnillä erotettuna.';
+$strLogServer = 'Palvelin';
+$strLogUsername = 'Käyttäjätunnus:';
+$strLongOperation = "Tämä toiminto voi kestää kauan. Jatketaanko silti?";
+
+$strMaxConnects = 'Enim. yhtäaikaisia yhteyksiä';
+$strMaximalQueryLength = 'Luodun kyselyn enimmäispituus';
+$strMaximumSize = 'Enimmäiskoko: %s%s';
+$strMbExtensionMissing = 'PHP-laajennusta mbstring ei löytynyt, ja mulitbyte-merkistökoodaus vaikuttaa olevan käytössä. Ilman mbstring-laajennusta phpMyAdmin ei osaa jaotella merkkijonoja oikein, ja tästä saattaa koitua odottamattomia seurauksia.';
+$strMbOverloadWarning = 'PHP:n asetuksissa on "mbstring.func_overload" -valinta päällä. Tämä valinta ei sovi yhteen phpMyAdminin kanssa ja saattaa johtaa tietojen katoamiseen!';
+$strMIME_available_mime = 'Mahdolliset MIME-tyypit';
+$strMIME_available_transform = 'Mahdolliset muunnokset';
+$strMIME_description = 'Kuvaus';
+$strMIME_MIMEtype = 'MIME-tyyppi';
+$strMIME_nodescription = 'Tälle muunnokselle ei ole saatavilla kuvausta.<br />Kysy tekijältä, mitä %s tekee.';
+$strMIME_transformation_note = 'Tietoja saatavilla olevista muunnosvaihtoehdoista ja niiden MIME-tyyppien muunnoksista saa painamalla %smuunnoksen kuvaukset%s -kohtaa';
+$strMIME_transformation_options = 'Muunnosvaihtoehdot';
+$strMIME_transformation_options_note = 'Syötä muunnosvalinnoille arvot käyttäen tätä muotoa: \'a\', 100, b,\'c\'...<br />Jos tarvitset arvoissa kenoviivaa ("\") tai yksittäistä lainausmerkkiä ("\'"), lisää merkin eteen kenoviiva (esim. \'\\\\xyz\' tai \'a\\\'b\').';
+$strMIME_transformation = 'Selaimen muunnos (transformation)';
+$strMIMETypesForTable = 'MIME-TYYPIT TAULULLE';
+$strMIME_without = 'Kursivoiduilla MIME-tyypeillä ei ole erillistä muunnostoimintoa';
+$strModifications = 'Muutokset tallennettu';
+$strModifyIndexTopic = 'Muokkaa indeksiä';
+$strModify = 'Muokkaa';
+$strMoveMenu = 'Siirrä valikko';
+$strMoveTableOK = 'Taulu %s on siirretty %s.';
+$strMoveTableSameNames = 'Taulua ei voi siirtää itseensä!';
+$strMoveTable = 'Siirrä taulu toiseen tauluun (tietokanta<b>.</b>taulu):';
+$strMultilingual = 'monikielinen';
+$strMyISAMDataPointerSizeDesc = "MyISAM-kannan CREATE TABLE -kyselyissä käytettävä osoittimen oletuskoko tavuina, kun MAX_ROWS-valintaa ei ole määritelty.";
+$strMyISAMDataPointerSize = "Tieto-osoittimen koko";
+$strMyISAMMaxExtraSortFileSizeDesc = "Jos MyISAM-indeksin nopeaan luontiin käytetty tilapäistiedosto on suurempi kuin tässä määritetty avainvälimuistin koko, mieluummin suositellaan käytettävän avainvälimuistia.";
+$strMyISAMMaxExtraSortFileSize = "Tilapäistiedostojen enimmäiskoko indeksin luontia varten";
+$strMyISAMMaxSortFileSizeDesc = "MyISAM-indeksien uudelleenluonnin tilapäistiedostojen suurin koko (toiminnot REPAIR TABLE, ALTER TABLE tai LOAD DATA INFILE).";
+$strMyISAMMaxSortFileSize = "Enimmäiskoko tilapäisille lajittelutiedostoille";
+$strMyISAMRecoverOptions = "Automaattinen palautuminen";
+$strMyISAMRecoverOptionsDesc = "Kaatuneiden MyISAM-taulujen automaattisen palauttamisen tila sellaisena kuin se on asetettu \"--myisam-recover\"-nimisessä palvelimenkäynnistysasetuksessa.";
+$strMyISAMRepairThreadsDesc = "Jos tämä arvo on suurempi kuin 1, MyISAM-taulujen indeksit luodaan samaan aikaan lajittelukorjausprosessissa, kukin indeksi omalla säikeellään.";
+$strMyISAMRepairThreads = "Korjaa säikeet";
+$strMyISAMSortBufferSizeDesc = "Puskuri, joka varataan käyttöön lajiteltaessa MyISAM-indeksejä REPAIR TABLE -kyselyllä tai luotaessa indeksejä CREATE INDEX- tai ALTER TABLE -kyselyillä.";
+$strMyISAMSortBufferSize = "Lajittelupuskurin koko";
+$strMySQLCharset = 'MySQL-palvelimen merkistö';
+$strMysqlClientVersion = 'MySQL-asiakasversio';
+$strMySQLConnectionCollation = 'MySQL-yhteyden aakkosjärjestys';
+$strMysqlLibDiffersServerVersion = 'PHP:n MySQL-kirjaston versio %s poikkeaa MySQL-palvelimen versiosta %s. Tästä voi koitua arvaamattomia seurauksia.';
+$strMySQLSaid = 'MySQL ilmoittaa: ';
+$strMySQLShowProcess = 'Näytä prosessit';
+
+$strName = 'Nimi';
+$strNext = 'Seuraava';
+$strNoActivity = 'Yhteys on ollut toimettomana %s sekuntia tai kauemmin. Kirjaudu sisään uudestaan.';
+$strNoDatabases = 'Ei tietokantoja';
+$strNoDatabasesSelected = 'Yhtään tietokantaa ei ole valittu.';
+$strNoDataReceived = 'Tuotavia tietoja ei ole. Tiedostonimeä ei joko annettu tai tiedoston koko ylitti PHP:n asetusten salliman enimmäiskoon. Katso FAQ 1.16.';
+$strNoDescription = 'ei kuvausta';
+$strNoDetailsForEngine = "Tämän tallennusmoottorin tilasta ei ole saatavilla yksityiskohtaisia tietoja.";
+$strNoDropDatabases = '"DROP DATABASE" -kyselyjen käyttö on estetty.';
+$strNo = 'Ei';
+$strNoExplain = 'Älä selitä SQL-kyselyä';
+$strNoFilesFoundInZip = 'ZIP-paketista ei löytynyt yhtään tiedostoa!';
+$strNoFrames = 'PhpMyAdmin toimii parhaiten <b>kehyksiä</b> tukevalla selaimella.';
+$strNoIndex = 'Indeksiä ei ole määritelty!';
+$strNoIndexPartsDefined = 'Indeksin osia ei ole määritelty!';
+$strNoModification = 'Ei muutoksia';
+$strNone = 'Ei mitään';
+$strNoOptions = 'Tälle tiedostomuodolle ei ole valinta-asetuksia';
+$strNoPassword = 'Ei salasanaa';
+$strNoPermission = 'Palvelimella ei ole lupaa tallentaa tiedostoa %s.';
+$strNoPhp = 'Kätke PHP-koodi';
+$strNoPrivileges = 'Ei käyttöoikeuksia';
+$strNoRights = 'Sinulla ei ole riittäviä oikeuksia!';
+$strNoRowsSelected = 'Ei yhtään riviä valittu';
+$strNoSpace = 'Liian vähän tilaa tiedoston %s tallentamiseen.';
+$strNoTablesFound = 'Tietokannassa ei ole tauluja.';
+$strNoThemeSupport = 'Ei tukea teemojen käyttöön. Tarkista asetukset ja/tai hakemiston %s teemat.';
+$strNotNumber = 'Tämä ei ole numero!';
+$strNotOK = 'Ei kunnossa';
+$strNotSet = 'Taulua <b>%s</b> ei löytynyt tai sitä ei ole määritelty tiedostossa %s';
+$strNoUsersFound = 'Käyttäjiä ei ole.';
+$strNoValidateSQL = 'Älä tarkista SQL-kyselyä';
+$strNull = 'Tyhjä';
+$strNumberOfFields = 'Kenttien määrä';
+$strNumberOfTables = 'Taulujen määrä';
+$strNumSearchResultsInTable = '%s hakutulosta taulussa <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Yhteensä:</b> <i>%s</i> hakutulosta';
+$strNumTables = 'Taulut';
+
+$strOK = 'Kunnossa';
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Avaa uusi phpMyAdmin-ikkuna';
+$strOperations = 'Toiminnot';
+$strOperator = 'Operaattori';
+$strOptimize = 'Optimoi';
+$strOptimizeTable = 'Optimoi taulu';
+$strOptions = 'Valinnat';
+$strOr = 'Tai';
+$strOverhead = 'Ylijäämä';
+$strOverwriteExisting = 'Korvaa jo olemassa oleva(t) tiedosto(t)';
+
+$strPacked = 'Pakattu';
+$strPageNumber = 'Sivunumero:';
+$strPagesToBeFlushed = "Siistimistä vaativat sivut";
+$strPaperSize = 'Paperin koko';
+$strPartialImport = 'Osittainen tuonti';
+$strPartialText = 'Lyhennetyt tekstit';
+$strPartitionDefinition = 'PARTITION-määritelmä';
+$strPartitioned = 'ositettu';
+$strPartitionMaintenance = 'Osituksen ylläpito';
+$strPartition = 'Ositus %s';
+$strPasswordChanged = 'Käyttäjän %s salasanan vaihto onnistui.';
+$strPasswordEmpty = 'Salasana puuttuu!';
+$strPasswordHashing = 'Salasanan salaus';
+$strPasswordNotSame = 'Salasanat eivät ole samat!';
+$strPassword = 'Salasana';
+$strPBXTCheckpointFrequency = 'Checkpoint-pisteiden taajuus';
+$strPBXTCheckpointFrequencyDesc = 'Transaktiolokiin kirjoitettavien tietojen määrä ennen kuin checkpoint-piste suoritetaan. Oletusarvo on 24Mt.';
+$strPBXTDataFileGrowSizeDesc = 'Kahvatiedostojen (.xtd) koonkasvatusmäärä.';
+$strPBXTDataFileGrowSize = 'Tiedoston koonkasvatusmäärä';
+$strPBXTDataLogThreshold = 'Checkpoint-pisteiden kynnysarvo';
+$strPBXTDataLogThresholdDesc = 'Tietolokitiedoston enimmäiskoko. Oletusarvo on 64Mt. PBXT pystyy luomaan enimmillään 32 000 tietolokia, joita käyttää kaikki taulut. Siten tämän muuttujan arvoa voi nostaa, jos haluaa kasvattaa kaiken tietokantaan tallennettavan tiedon kokonaismäärää.';
+$strPBXTGarbageThresholdDesc = 'Tietolokitiedoston roskatietojen prosentuaalinen määrä ennen kuin tiedostoa tiivistetään. Tämän arvon on oltava väliltä 1 - 99. Oletusarvo on 50.';
+$strPBXTGarbageThreshold = 'Roskankeruun kynnysarvo';
+$strPBXTIndexCacheSizeDesc = 'Tämä on indeksivälimuistille varatun muistin määrä. Oletusarvo on 32Mt. Tässä varattua muistia käytetään vain indeksisivujen välimuistitallenukseen.';
+$strPBXTIndexCacheSize = 'Indeksivälimuistin koko';
+$strPBXTLogBufferSizeDesc = 'Tietolokin kirjoituksessa käytettävän puskurin koko. Oletusarvo on 256Mt. Moottori varaa kullekin säikeelle yhden puskurin, mikäli säiettä tarvitaan tietolokin kirjoittamiseen.';
+$strPBXTLogBufferSize = 'Lokipuskurin koko';
+$strPBXTLogCacheSizeDesc = 'Kertoo kuinka paljon muistia varataan transaktiolokin välimuistille. Oletusarvo on 16Mt.';
+$strPBXTLogCacheSize = 'Lokivälimuistin koko';
+$strPBXTLogFileCountDesc = 'Tämä on järjestelmän ylläpitämien transaktiolokitiedostojen (pbxt/system/xlog*.xt) lukumäärä. Jos lokien määrä ylittää tämän arvon, vanhat lokit poistetaan; muuten ne nimetään uudelleen antamalla niille seuraavaksi suurin numero.';
+$strPBXTLogFileCount = 'Lokitiedostojen määrä';
+$strPBXTLogFileThresholdDesc = 'Transaktiolokin rajakoko, jonka ylityttyä luodaan uusi loki. Oletusarvo on 16Mt.';
+$strPBXTLogFileThreshold = 'Lokitiedoston kynnysarvo';
+$strPBXTRecordCacheSizeDesc = 'Tämä kertoo, kuinka paljon taulutietojen välimuistitallennukselle varataan muistia. Oletusarvo on 32Mt. Tätä muistia käytetään kahvatietojen (.xtd) ja riviosoitintiedostojen (.xtr) välimuistitallennukseen.';
+$strPBXTRecordCacheSize = 'Tallennusvälimuistin koko';
+$strPBXTRowFileGrowSizeDesc = 'Riviosoitintiedostojen (.xtr) koonkasvatusmäärä.';
+$strPBXTRowFileGrowSize = 'Rivitiedoston koonkasvatusmäärä';
+$strPBXTTransactionBufferSizeDesc = 'Globaalin transaktiolokipuskurin koko (moottori varaa kaksi tämän kokoista puskuria). Oletusarvo on 1Mt.';
+$strPBXTTransactionBufferSize = 'Transaktiopuskurin koko';
+$strPdfDbSchema = 'Tietokannan "%s" kaavio - Sivu %s';
+$strPdfInvalidTblName = 'Taulua "%s" ei ole!';
+$strPdfNoTables = 'Ei tauluja';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Luo raportin, joka sisältää yhden taulun tiedot)';
+$strPDFReportTitle = 'Raportin otsikko';
+$strPerHour = 'tunnissa';
+$strPerMinute = 'minuutissa';
+$strPerSecond = 'sekunnissa';
+$strPersian = 'Persialainen';
+$strPhoneBook = 'puhelinluettelo';
+$strPHPExtension = 'PHP-laajennus';
+$strPhp = 'Näytä PHP-koodi';
+$strPHPVersion = 'PHP:n versio';
+$strPlayAudio = 'Toista ääni';
+$strPleaseSelectPrimaryOrUniqueKey = 'Valitse perusavain tai uniikki avain';
+$strPmaDocumentation = 'phpMyAdminin ohjeet';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> täytyy määritellä asetustiedostossa!';
+$strPolish = 'Puolalainen';
+$strPortrait = 'Pystytasossa';
+$strPos1 = 'Alkuun';
+$strPrevious = 'Edellinen';
+$strPrimaryKeyHasBeenDropped = 'Perusavain on poistettu';
+$strPrimaryKeyName = 'Perusavaimen nimen on oltava PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" saa olla <b>vain ja ainoastaan</b> perusavaimen nimenä!)';
+$strPrimary = 'Perusavain';
+$strPrint = 'Tulosta';
+$strPrintViewFull = 'Tulostusversio (kokonaisin tekstein)';
+$strPrintView = 'Tulostusversio';
+$strPrivDescAllPrivileges = 'Sisältää kaikki käyttöoikeudet GRANT-oikeutta lukuun ottamatta.';
+$strPrivDescAlterRoutine = 'Sallii talletettujen rutiinien muuntamisen ja poistamisen.';
+$strPrivDescAlter = 'Sallii muuttaa olemassa olevien taulujen rakennetta.';
+$strPrivDescCreateDb = 'Sallii uusien tietokantojen ja taulujen luomisen.';
+$strPrivDescCreateRoutine = 'Sallii talletettujen rutiinien luomisen.';
+$strPrivDescCreateTbl = 'Sallii uusien taulujen luomisen.';
+$strPrivDescCreateTmpTable = 'Sallii tilapäisten taulujen luomisen.';
+$strPrivDescCreateUser = 'Sallii käyttäjätilien luomisen, poistamisen ja uudelleennimeämisen.';
+$strPrivDescCreateView = 'Sallii uusien näkymien luomisen.';
+$strPrivDescDelete = 'Sallii tietojen poistamisen.';
+$strPrivDescDropDb = 'Sallii tietokantojen ja taulujen poistamisen.';
+$strPrivDescDropTbl = 'Sallii taulujen poistamisen.';
+$strPrivDescEvent = 'Sallii luoda tapahtuma-ajastimelle tapahtumia';
+$strPrivDescExecute5 = 'Sallii talletettujen rutiinien suorittamisen.';
+$strPrivDescExecute = 'Sallii talletettujen proseduurien suorittamisen; ei vaikutusta tässä MySQL-palvelimen versiossa.';
+$strPrivDescFile = 'Sallii tietojen tuomisen ja viemisen.';
+$strPrivDescGrant = 'Sallii käyttäjien ja käyttöoikeuksien lisäämisen lataamatta käyttöoikeustauluja uudestaan.';
+$strPrivDescIndex = 'Sallii indeksien luomisen ja poistamisen.';
+$strPrivDescInsert = 'Sallii tietojen lisäämisen ja korvaamisen.';
+$strPrivDescLockTables = 'Sallii taulujen lukitsemisen nykyiselle säikeelle.';
+$strPrivDescMaxConnections = 'Rajoittaa käyttäjän tunnissa luomien uusien yhteyksien määrän.';
+$strPrivDescMaxQuestions = 'Rajoittaa käyttäjän tunnissa palvelimelle lähettämien kyselyjen määrän.';
+$strPrivDescMaxUpdates = 'Rajoittaa, kuinka monta monta kertaa käyttäjä saa suorittaa tauluihin tai tietokantoihin muutoksia tekeviä komentoja tunnin aikana.';
+$strPrivDescMaxUserConnections = 'Rajoittaa käyttäjän yhtäaikaisten yhteyksien määrän.';
+$strPrivDescProcess = 'Sallii kaikkien käyttäjien prosessien näyttämisen';
+$strPrivDescReferences = 'Ei vaikutusta tässä MySQL-palvelimen versiossa.';
+$strPrivDescReload = 'Sallii palvelinasetusten uudelleenlataamisen ja palvelimen välimuistin tyhjentämisen.';
+$strPrivDescReplClient = 'Sallii käyttäjän kysyä, missä ali- ja pääpalvelimet sijaitsevat.';
+$strPrivDescReplSlave = 'Tarvitaan replikaatiota käyttävissä alipalvelimissa.';
+$strPrivDescSelect = 'Sallii tietojen lukemisen.';
+$strPrivDescShowDb = 'Sallii koko tietokantaluettelon käytön.';
+$strPrivDescShowView = 'Sallii SHOW CREATE VIEW -kyselyjen suorittamisen.';
+$strPrivDescShutdown = 'Sallii palvelimen sammuttamisen.';
+$strPrivDescSuper = 'Sallii yhteydenmuotostamisen silloinkin kun yhteyksien enimmäismäärä on saavutettu; Tarvitaan useissa pääkäyttäjän toiminnoissa kuten globaalien muuttujien asettamisessa ja muitten käyttäjien säikeiden lopettamisessa.';
+$strPrivDescTrigger = 'Sallii herättimien eli laukaisinten luomisen ja poistamisen';
+$strPrivDescUpdate = 'Sallii tietojen muuttamisen.';
+$strPrivDescUsage = 'Ei käyttöoikeuksia.';
+$strPrivileges = 'Käyttöoikeudet';
+$strPrivilegesReloaded = 'Käyttöoikeuksien uudelleenlataus onnistui.';
+$strProcedures = 'Proseduurit';
+$strProcesses = 'Prosessit';
+$strProcesslist = 'Prosessiluettelo';
+$strProfiling = 'Profilointi';
+$strProtocolVersion = 'Protokollan versio';
+$strPutColNames = 'Laita sarakkeiden nimet ensimmäiselle riville';
+
+$strQBEDel = 'Poista';
+$strQBE = 'Haku';
+$strQBEIns = 'Lisää';
+$strQueryCache = 'Kyselyvälimuisti';
+$strQueryFrame = 'Kyselyikkuna';
+$strQueryOnDb = 'Suorita SQL-kysely tietokannassa <b>%s</b>:';
+$strQueryResultsOperations = 'Kyselytulosten toimenpiteet';
+$strQuerySQLHistory = 'SQL-historia';
+$strQueryStatistics = '<b>Kyselytilastot</b>: Tälle palvelimelle on lähetetty viime käynnistyksestä lähtien %s kyselyä.';
+$strQueryTime = 'kysely kesti %01.4f sek.';
+$strQueryType = 'Kyselyn tyyppi';
+$strQueryWindowLock = 'Älä korvaa tätä kyselyä ikkunan ulkopuolelta';
+
+$strReadRequests = 'Hakupyynnöt';
+$strRebuild = 'Rakenna uudestaan';
+$strReceived = 'Vastaanotettu';
+$strRecommended = 'suositus';
+$strRecords = 'Rivit';
+$strReferentialIntegrity = 'Tarkista viitteiden eheys:';
+$strRefresh = 'Päivitä';
+$strRelationalDisplayField = 'Relaationäyttökenttä';
+$strRelationalKey = 'Relaatioavain';
+$strRelationalSchema = 'Relaatioskeema';
+$strRelationDeleted = 'Relaatio poistettu';
+$strRelationNotWorking = 'Linkitettyihin tauluihin liittyvät lisäominaisuudet eivät ole käytössä. Katso %slisätietoja%s.';
+$strRelationsForTable = 'RELAATIOT TAULULLE';
+$strRelations = 'Relaatiot';
+$strRelationView = 'Relaationäkymä';
+$strReloadingThePrivileges = 'Ladataan käyttöoikeuksia uudelleen';
+$strReload = 'Lataa uudelleen';
+$strReloadPrivileges = 'Lataa käyttöoikeudet uudelleen';
+$strRemovePartitioning = 'Poista ositus';
+$strRemoveSelectedUsers = 'Poista valitut käyttäjät';
+$strRenameDatabaseOK = 'Tietokannan %s nimi on nyt %s';
+$strRenameTable = 'Nimeä taulu uudelleen';
+$strRenameTableOK = 'Taulun %s nimi on nyt %s';
+$strRepair = 'Korjaa';
+$strRepairTable = 'Korjaa taulu';
+$strReplaceNULLBy = 'Korvaa NULL-merkki tällä:';
+$strReplaceTable = 'Korvaa taulun nykyiset rivit tiedostolla';
+$strReplication = 'Replikaatio';
+$strReset = 'Nollaa';
+$strResourceLimits = 'Resurssirajoitukset';
+$strRestartInsertion = 'Aloita lisäys alusta %s rivillä';
+$strReType = 'Kirjoita uudelleen';
+$strRevokeAndDeleteDescr = 'Käyttäjillä on USAGE-käyttöoikeus, kunnes käyttöoikeudet ladataan uudelleen.';
+$strRevokeAndDelete = 'Pura kaikki käyttäjän aktiiviset käyttöoikeudet, ja poista ne sen jälkeen.';
+$strRevokeMessage = 'Käyttäjän %s käyttöoikeudet on poistettu';
+$strRevoke = 'Pura käyttöoikeudet';
+$strRomanian = 'Romanialainen';
+$strRoutineReturnType = 'Paluutyyppi';
+$strRoutines = 'Rutiinit';
+$strRowLength = 'Rivin pituus';
+$strRowsAffected = '%1$d rivi(ä) muutettu.';
+$strRowsDeleted = '%1$d rivi(ä) poistettu.';
+$strRowsFrom = 'riviä alkaen rivistä';
+$strRowsInserted = '%1$d rivi(ä) lisätty.';
+$strRowSize = ' Rivin koko ';
+$strRows = 'Kpl rivejä';
+$strRowsModeFlippedHorizontal = 'vaakatasossa (kierretyt otsikot)';
+$strRowsModeHorizontal = 'vaakatasossa';
+$strRowsModeOptions = '%s, otsikoita toistetaan %s:n rivin välein';
+$strRowsModeVertical = 'pystysuorassa';
+$strRowsStatistic = 'Rivitilastot';
+$strRunning = 'palvelimella %s';
+$strRunQuery = 'Suorita';
+$strRunSQLQueryOnServer = 'Suorita SQL-kysely(jä) palvelimella %s';
+$strRunSQLQuery = 'Suorita SQL-kyselyjä tietokannassa %s';
+$strRussian = 'Venäläinen';
+
+$strSaveOnServer = 'Tallenna palvelimelle hakemistoon %s';
+$strSavePosition = 'Tallenna sijainti';
+$strSave = 'Tallenna';
+$strScaleFactorSmall = 'Kaavio ei mahdu yhdelle sivulle tässä mittakaavassa';
+$strSearch = 'Etsi';
+$strSearchFormTitle = 'Hae tietokannasta';
+$strSearchInField = 'Kentän sisältä:';
+$strSearchInTables = 'Tauluista:';
+$strSearchNeedle = 'Haettavat sanat tai arvot (%-merkkiä voi käyttää jokerimerkkinä):';
+$strSearchOption1 = 'vähintään yksi sanoista';
+$strSearchOption2 = 'kaikki sanat';
+$strSearchOption3 = 'koko lause';
+$strSearchOption4 = 'regexp-haku';
+$strSearchResultsFor = 'Tulokset hakusanalla "<i>%s</i>" %s:';
+$strSearchType = 'Hae:';
+$strSecretRequired = 'Asetustiedosto vaatii nyt salalausetta (blowfish_secret).';
+$strSelectADb = 'Valitse tietokanta';
+$strSelectAll = 'Valitse kaikki';
+$strSelectBinaryLog = 'Valitse näytettävä binääriloki';
+$strSelectFields = 'Valitse sarakkeet (vähintään yksi):';
+$strSelectForeignKey = 'Valitse liiteavain';
+$strSelectNumRows = 'lauseessa';
+$strSelectReferencedKey = 'Valitse viitattava avain';
+$strSelectTables = 'Valitse taulut';
+$strSend = 'Tallenna tiedostoon';
+$strSent = 'Lähetetty';
+$strServerChoice = 'Valitse palvelin';
+$strServerNotResponding = 'Palvelin ei vastaa';
+$strServer = 'Palvelin';
+$strServers = 'Palvelimet';
+$strServerStatus = 'Ajonaikaiset tiedot';
+$strServerStatusDelayedInserts = 'Viivästetyt lisäyslauseet';
+$strServerStatusUptime = 'Tämä MySQL-palvelin on ollut käynnissä %s. Se käynnistettiin %s.';
+$strServerTabVariables = 'Muuttujat';
+$strServerTrafficNotes = '<b>Palvelinliikenne</b>: Nämä taulukot näyttävät tämän MySQL-palvelimen verkkoliikennetilastot käynnistyksestä lähtien.';
+$strServerVars = 'Palvelimen muuttujat ja asetukset';
+$strServerVersion = 'Palvelimen versio';
+$strSessionStartupErrorGeneral = 'Istuntoa ei voi aloittaa virheettömästi. Tarkista PHP:n tai verkkopalvelimen lokitiedostojen virheilmoitukset ja määritä PHP-asennuksen asetukset oikein.';
+$strSessionValue = 'Tämän istunnon arvo';
+$strSetEnumVal = 'Jos sarakkeen tietotyyppi on "enum" tai "set", syötä vaaditut arvot tässä muodossa: \'a\',\'b\',\'c\'...<br />Jos tarvitset arvoissa kenoviivaa ("\") tai heittomerkkiä ("\'"), laita merkin eteen kenoviiva (esim. \'\\\\xyz\' tai \'a\\\'b\').';
+$strShowAll = 'Näytä kaikki';
+$strShowColor = 'Näytä värit';
+$strShowDatadictAs = 'Tietosanaston tallennusmuoto';
+$strShowFullQueries = 'Näytä kyselyt kokonaisuudessaan';
+$strShowGrid = 'Näytä ruudukko';
+$strShowHideLeftMenu = 'Näytä/kätke vasen valikko';
+$strShowingBookmark = 'Näytetään kirjanmerkki';
+$strShowingPhp = 'Näytetään PHP-koodina';
+$strShowingRecords = 'Näkyvillä rivit ';
+$strShowingSQL = 'Näytetään SQL-kysely';
+$strShowKeys = 'Näytä vain avaimet';
+$strShow = 'Näytä';
+$strShowOpenTables = 'Näytä avoimet taulut';
+$strShowPHPInfo = 'Näytä PHP:n asetustiedot';
+$strShowSlaveHosts = 'Näytä alipalvelimet';
+$strShowSlaveStatus = 'Näytä alipalvelimen tila';
+$strShowStatusBinlog_cache_disk_useDescr = 'Kertoo binäärilokin tilapäistä välimuistia käyttäneiden transaktioiden määrän sellaisissa tapauksissa, joissa transaktiot ovat ylittäneet "binlog_cache_size"-muuttujan arvon ja käyttäneet tilapäistiedostoa transaktiokyselyjen tallentamiseen.';
+$strShowStatusBinlog_cache_useDescr = 'Binäärilokin tilapäistä välimuistia käyttäneiden transaktioiden määrä.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Kertoo, kuinka monta palvelimen automaattisesti luomia tilapäistauluja levyllä on. Jos Created_tmp_disk_tables-parametrin arvo on liian suuri, nosta tmp_table_size:n arvoa, jotta tilapäisiä tauluja säilytettäisiin muistissa eikä levyllä.';
+$strShowStatusCreated_tmp_filesDescr = 'Mysqld-palvelun luomien tilapäistiedostojen määrä.';
+$strShowStatusCreated_tmp_tablesDescr = 'Kertoo, kuinka monta tilapäistaulua palvelin on automaattisesti luonut kyselyjä suorittaessaan.';
+$strShowStatusDelayed_errorsDescr = 'Virheen aiheuttaneiden, INSERT DELAYED -kyselyllä kirjoitettujen rivien määrä (virheenä todennäköisesti päällekkäinen avain).';
+$strShowStatusDelayed_insert_threadsDescr = 'Käytössä olevien INSERT DELAYED -käsittelijäsäikeiden määrä. Jokainen INSERT DELAYED -kyselyä käyttävä taulu saa käyttöönsä oman säikeensä.';
+$strShowStatusDelayed_writesDescr = 'INSERT DELAYED -rivien kirjoituksia.';
+$strShowStatusFlush_commandsDescr = 'FLUSH-kyselyjä suoritettu.';
+$strShowStatusHandler_commitDescr = 'Sisäisten COMMIT-kyselyjen määrä.';
+$strShowStatusHandler_deleteDescr = 'Kertoo, kuinka monta kertaa taulusta on poistettu rivi.';
+$strShowStatusHandler_discoverDescr = 'MySQL-palvelin saattaa kysyä NDB Cluster -tallennusmoottorilta, tunteeko se tietyn nimisen taulun. Tätä toimintoa kutsutaan selvittämiseksi (engl. discovery). Handler_discover ilmaisee selvitettyjen taulujen määrän.';
+$strShowStatusHandler_read_firstDescr = 'Kertoo, kuinka monta kertaa ensimmäistä kohtaa on luettu indeksistä. Jos tämän arvo on suuri, palvelin suorittaa runsaasti kokonaisia indeksien läpikäyntejä; näin käy esimerkiksi lauseessa SELECT col1 FROM foo, olettaen col1:sen olevan indeksoitu sarake.';
+$strShowStatusHandler_read_keyDescr = 'Kertoo, kuinka monta kertaa rivejä on luettu avaimen perusteella. Jos tämä on suuri, kyselyjen ja taulujen indeksointi suoritetaan oikein.';
+$strShowStatusHandler_read_nextDescr = 'Kertoo niiden pyyntöjen määrän, jotka lukevat seuraavan rivin avainjärjestyksessä. Tämä arvo kasvaa, jos haetaan indeksisarakkeita käyttämällä rajauksia tai jos suoritetaan indeksihaku.';
+$strShowStatusHandler_read_prevDescr = 'Kertoo niiden pyyntöjen määrän, jotka lukevat edellisen rivin avainjärjestyksessä. Tätä lukumenetelmää käytetään lähinnä ORDER BY ... DESC -kyselyllä optimoimiseen.';
+$strShowStatusHandler_read_rndDescr = 'Kertoo niiden pyyntöjen määrän, jotka lukevat rivin käytäeen kiinteää sijaintia. Tämä on suuri, jos tulostietojen lajittelua edellyttäviä kyselyjä suoritetaan paljon. Käytät ehkä runsaasti sellaisia kyselyjä, jotka pakottavat MySQL-palvelimen käymään läpi kaikki taulut, tai käytät liitoksia, jotka käyttävät avaimia virheellisesti.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Kertoo, kuinka usein pyynnöillä on luettu seuraava rivi tiedostosta. Tämä on suuri, jos käydään läpi runsaasti kokonaisia tauluja. Tämä luku kertoo yleensä siitä, että tauluja ei ole indeksoitu hyvin, tai että kyselyjä ei ole kirjoitettu siten, että ne hyödyntäisivät luomiasi indeksejä.';
+$strShowStatusHandler_rollbackDescr = 'Sisäisten ROLLBACK-kyselyjen määrä.';
+$strShowStatusHandler_updateDescr = 'Taulun rivien päivityspyyntöjen määrä.';
+$strShowStatusHandler_writeDescr = 'Kertoo tauluihin lisättyjen rivien määrän.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Tietoa (epäsiistiä tai siistiä) sisältävien sivujen määrä';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Tällä hetkellä epäsiistinä olevien sivujen määrä.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Siistittäviksi pyydettyjen, puskurivarannossa olevien sivujen määrä.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Vapaiden sivujen määrä.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'InnoDB-puskurivarannon lukittujen sivujen määrä. Nämä ovat sivuja, joita parhaillaan luetaan tai kirjoitetaan tai joita ei voida poistaa tai joiden välimuistia ei voida tyhjentää syystä tai toisesta.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Kertoo niiden sivujen määrän, jotka ovat käytössä administratiivisen ylijäämän, kuten rivinlukitusten tai mukautuvien salausindeksien, varaamisen takia. Tämä arvo voidaan laskea näinkin: Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Puskurivarannon kokonaiskoko sivuina.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'InnoDB:n käynnistämien umpimähkäisten ennakkolukujen määrä. Näin käy kyselyn lukiessa satunnaisessa järjestyksessä läpi laajoja alueita taulusta.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'InnoDB:n käynnistämien perättäisten ennakkolukujen määrä. Näin käy kun InnoDB lukee läpi kokonaisen taulun tavallisessa järjestyksessä.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'InnoDB:n suorittamien loogisten lukupyyntöjen määrä.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Sellaisten loogisten lukujen määrä, joita InnoDB ei voinut toteuttaa puskurivarannon avulla vaan joutui lukemaan yksittäisen sivun.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Yleensä InnoDB:n puskurivarannon kirjoituspyynnöt suoritetaan taustalla. Jos on kuitenkin tarve lukea tai luoda sivu silloin kun tyhjiä sivuja ei ole käytettävissä, sivujen tyhjentymistä joudutaan odottamaan. Tämä laskuri kertoo tällaisten odotusten määrän. Jos puskurivarannon koko on asetettu sopivaksi, tämän arvon pitäisi olla alhainen.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'InnoDB:n puskurivarannon kirjoituspyyntöjen määrä.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Fsync()-toimenpiteitä tähän mennessä.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Tällä hetkellä käynnissä olevien fsync()-toimenpiteiden määrä.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Tällä hetkellä käynnissä olevien lukutoimenpiteiden määrä.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Tällä hetkellä käynnissä olevien kirjoitustoimenpiteiden määrä.';
+$strShowStatusInnodb_data_readDescr = 'Tähän mennessä luetun tiedon määrä tavuina.';
+$strShowStatusInnodb_data_readsDescr = 'Kertoo, kuinka monta kertaa tietoja on luettu kaikkiaan.';
+$strShowStatusInnodb_data_writesDescr = 'Kertoo, kuinka monta kertaa tietoja on kirjoitettu kaikkiaan.';
+$strShowStatusInnodb_data_writtenDescr = 'Kertoo, kuinka paljon on tähän mennessä tietoja kirjoitettu (tavuina).';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Suoritettujen päällekkäisten kirjoitustoimenpiteiden määrä ja tätä varten kirjoitettujen sivujen määrä.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Suoritettujen päällekkäisten kirjoitustoimenpiteiden määrä ja tätä varten kirjoitettujen sivujen määrä.';
+$strShowStatusInnodb_log_waitsDescr = 'Liian pienestä lokipuskurista johtuneiden odotusten määrä, jolloin puskurin tyhjentymistä jouduttiin odottamaan ennen jatkamista.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Kertoo, kuinka monta kertaa lokitiedostoon on pyydetty kirjoittaa.';
+$strShowStatusInnodb_log_writesDescr = 'Kertoo, kuinka monta kertaa lokitiedostoon on fyysisesti kirjoitettu.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Lokitiedostojen fsync()-kirjoitusten määrä.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Lokitiedoston avointen fsync-synkronointien määrä.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Avoimet lokitiedostokirjoitukset.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Lokitiedostoon kirjoitettujen tavujen määrä.';
+$strShowStatusInnodb_pages_createdDescr = 'Luotujen sivujen määrä.';
+$strShowStatusInnodb_page_sizeDescr = 'InnoDB-sivun sisäänohjelmoitu koko (oletusarvoisesti se on 16 kt). Useita arvoja lasketaan sivuina; sivukoon avulla voidaan helposti laskea sivujen koko tavuina.';
+$strShowStatusInnodb_pages_readDescr = 'Luettujen rivien määrä.';
+$strShowStatusInnodb_pages_writtenDescr = 'Kirjoitettujen sivujen määrä.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Tällä hetkellä odotettavien rivilukitusten määrä.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Rivilukituksen valmistumiseen kuluva aika keskimäärin, millisekunteina.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Rivilukitusten valmistumiseen kuluva aika yhteensä, millisekunteina.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Rivilukituksen noutamiseen kulunut aika enimmillään, millisekunteina.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Kertoo, kuinka monta kertaa rivilukitusta on jouduttu odottamaan.';
+$strShowStatusInnodb_rows_deletedDescr = 'InnoDB-tauluista poistettujen rivien määrä.';
+$strShowStatusInnodb_rows_insertedDescr = 'InnoDB-tauluihin lisättyjen rivien määrä.';
+$strShowStatusInnodb_rows_readDescr = 'InnoDB-taulusta luettujen rivien määrä.';
+$strShowStatusInnodb_rows_updatedDescr = 'InnoDB-taulun päivitettyjen rivien määrä.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Niiden avainvälimuistissa sijaitsevien avainlohkojen määrä, joihin on tehty muutoksia, mutta joita ei vielä ole tallennettu levylle. Tämä toiminto tunnetaan yleisesti nimellä Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Avainvälimuistissa sijaitsevien käyttämättömien lohkojen määrä. Tämän arvon avulla voi määrittää, kuinka paljon avainvälimuistia halutaan olevan käytössä.';
+$strShowStatusKey_blocks_usedDescr = 'Samaan aikaan avainvälimuistissa olleiden lohkojen määrä enimmillään.';
+$strShowStatusKey_read_requestsDescr = 'Kertoo, kuinka monta pyyntöä on suoritettu avainlohkon hakemiseksi välimuistista.';
+$strShowStatusKey_readsDescr = 'Kertoo, kuinka monta kertaa levyltä on fyysisesti luettu avainlohkoja. Jos Key_reads-muuttujan arvo on suuri, key_buffer_size-muuttujaan on ehkä asetettu liian alhainen arvo. Välimuistin käyttötahti voidaan laskea lausekkeella Key_reads / Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Kertoo, kuinka monta kertaa välimuistiin on kirjoitettu avainlohko.';
+$strShowStatusKey_writesDescr = 'Kertoo, kuinka monta kertaa levylle on fyysisesti kirjoitettu avainlohko.';
+$strShowStatusLast_query_costDescr = 'Kyselynoptimoijan laskeman, viimeksi kootun kyselyn kokonaiskulut. Hyödyllinen suunniteltaessa erilaisia kyselyvaihtoehtoja samaa kyselytapausta varten. Oletusarvo 0 tarkoittaa, että yhtään kyselyä ei ole vielä koottu.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Kertoo, kuinka monta riviä INSERT DELAYED -jonoissa odottaa kirjoittamista.';
+$strShowStatusOpened_tablesDescr = 'Avattujen taulujen määrä. Jos määrä on suuri, tauluvälimuistin arvo saattaa olla liian alhainen.';
+$strShowStatusOpen_filesDescr = 'Avoinna olevien tiedostojen määrä.';
+$strShowStatusOpen_streamsDescr = 'Avoinna olevien tietovirtojen määrä (käytetään pääasiassa kirjauksessa).';
+$strShowStatusOpen_tablesDescr = 'Avoinna olevien taulujen määrä.';
+$strShowStatusQcache_free_blocksDescr = 'Vapaitten muistilohkojen määrä kyselyvälimuistissa.';
+$strShowStatusQcache_free_memoryDescr = 'Kyselyvälimuistin vapaan muistin määrä.';
+$strShowStatusQcache_hitsDescr = 'Välimuistiosumien määrä.';
+$strShowStatusQcache_insertsDescr = 'Välimuistiin lisättyjen kyselyjen määrä.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Niiden kyselyjen määrä, jotka on poistettu välimuistista muistin vapauttamiseksi, jotta uusia kyselyjä voitaisiin tallentaa välimuistiin. Tämän tiedon avulla kyselyvälimuistin koon voi asettaa sopivaksi. Kyselyvälimuisti päättää välimuistista poistettavat kyselyt LRU-käytännön avulla ("least recently used" eli "äskettäin vähiten käytetyt kyselyt").';
+$strShowStatusQcache_not_cachedDescr = 'Niiden kyselyjen määrä, joita ei ole tallennettu välimuistiin (ei ole voitu tallentaa välimuistiin tai ei muuten vain ole tallennettu sinne query_cache_type-asetuksen takia).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Rekisteröityjen kyselyjen määrä välimuistissa.';
+$strShowStatusQcache_total_blocksDescr = 'Lohkojen kokonaismäärä kyselyvälimuistissa.';
+$strShowStatusReset = 'Nollaa';
+$strShowStatusRpl_statusDescr = 'Replikaation vikasietotila (ei vielä toteutettu).';
+$strShowStatusSelect_full_joinDescr = 'Kertoo, kuinka moni liitos ei käytä indeksejä. Jos tämä arvo ei ole 0, taulujen indeksit olisi hyvä tarkistaa tarkkaan.';
+$strShowStatusSelect_full_range_joinDescr = 'Niiden liitosten määrä, jotka käyttivät viitetaulussa aluehakua.';
+$strShowStatusSelect_range_checkDescr = 'Niiden avaimittomien liitosten määrä, jotka varmistavat avaimien käytön joka rivin jälkeen. (Jos tämä ei ole 0, taulujen indeksit tulisi tarkistaa huolella.)';
+$strShowStatusSelect_rangeDescr = 'Kertoo niiden liitosten määrän, jotka käyttävät rajausta ensimmäisessä taulussa. (Yleensä ei ole vakavaa, vaikka tämä arvo olisi suuri.)';
+$strShowStatusSelect_scanDescr = 'Kertoo niiden liitosten määrän, jotka suorittivat ensimmäisestä taulusta täydellisen tarkistuksen.';
+$strShowStatusSlave_open_temp_tablesDescr = 'SQL-alisäikeen avointen tilapäistaulujen määrä tällä hetkellä.';
+$strShowStatusSlave_retried_transactionsDescr = 'Kertoo, kuinka usein replikaation SQL-alisäie on käynnistyksestään lähtien kaikkiaan uudelleen yrittänyt transkatioita.';
+$strShowStatusSlave_runningDescr = 'Tämän on päällä (ON), mikäli kyseinen palvelin on pääpalvelimeen kytketty alipalvelin.';
+$strShowStatusSlow_launch_threadsDescr = 'Niiden säikeiden määrä, joiden luomiseen on kulunut aikaa enemmän kuin slow_launch_time sekuntia.';
+$strShowStatusSlow_queriesDescr = 'Niiden kyselyjen määrä, joiden suorittamiseen on kulunut aikaa enemmän kuin long_query_time sekuntia.';
+$strShowStatusSort_merge_passesDescr = 'Lajittelualgoritmiin tarvittavien lomitusten määrä. Jos tämä arvo on suuri, sort_buffer-muuttujan arvoa voi suurentaa.';
+$strShowStatusSort_rangeDescr = 'Arvolillä suoritettujen lajittelutoimenpiteiden määrä.';
+$strShowStatusSort_rowsDescr = 'Lajiteltujen rivien määrä.';
+$strShowStatusSort_scanDescr = 'Niiden lajittelutoimenpiteiden määrä, jotka on suoritettu lukemalla taulu läpi.';
+$strShowStatusTable_locks_immediateDescr = 'Kertoo, kuinka usein taulu on saatu lukittua heti.';
+$strShowStatusTable_locks_waitedDescr = 'Kertoo, kuinka usein taulua ei ole saatu heti lukittua, ja on siten jouduttu odottamaan. Jos tämä arvo on suuri, ja suorituskyvyn kanssa on ongelmia, on hyvä ensin optimoida kyselyjä ja sitten joko jakaa taulu useampaan osaan tai käyttää hyödyksi replikaatiota.';
+$strShowStatusThreads_cachedDescr = 'Säievälimuistissa sijaitsevien säikeiden määrä. Välimuistin käyttötahti voidaan laskea täten kaavalla Threads_created / yhteyksien lkm. Jos tämä arvo on punainen, thread_cache_size-muuttujan arvoa tulisi nostaa.';
+$strShowStatusThreads_connectedDescr = 'Tällä hetkellä avoinna olevien yhteyksien määrä.';
+$strShowStatusThreads_createdDescr = 'Yhteyksien käsittelyä varten luotujen säikeiden määrä. Jos Threads_created on suuri, thread_cache_size-muuttujan arvoa kannattaa nostaa. (Mikäli säikeet on toteutettu hyvin, tällä ei ole kovin suurta vaikutusta suorituskykyyn.)';
+$strShowStatusThreads_runningDescr = 'Hereillä olevien säikeiden määrä.';
+$strShowTableDimension = 'Näytä taulujen ulottuvuus';
+$strShowTables = 'Näytä taulut';
+$strShowThisQuery = ' Näytä kyselylause uudelleen ';
+$strSimplifiedChinese = 'Yksinkertaistettu kiina';
+$strSingly = '(yksitellen)';
+$strSize = 'Koko';
+$strSkipQueries = 'Tiedoston alusta ohitettavien tietueiden (kyselyjen) määrä';
+$strSlovak = 'Slovakialainen';
+$strSlovenian = 'Slovenialainen';
+$strSmallBigAll = 'Kaikki pienenä/suurena';
+$strSnapToGrid = 'Sovita ruudukkoon';
+$strSocketProblem = "(tai paikallisen MySQL-palvelimen pistokkeen asetuksia ei ole määritelty oikein)";
+$strSortByKey = 'Lajittele avaimen mukaan';
+$strSorting = 'Lajittelu';
+$strSort = 'Järjestys';
+$strSpaceUsage = 'Levytilan käyttö';
+$strSpanish = 'Espanjalainen';
+$strSplitWordsWithSpace = 'Sanat erotetaan välilyönnein.';
+$strSQLCompatibility = 'SQL-yhteensopiva tila';
+$strSQLExportType = 'Vientityyppi';
+$strSQLParserBugMessage = 'Olet ehkä löytänyt SQL-jäsentimestä ohjelmointivirheen. Tarkista käyttämäsi SQL-lause, erityisesti lainausmerkit merkkijonojen alusta ja lopusta. Toinen mahdollinen virheen aiheuttaja on se, että olet siirtämässä tiedostoa, jossa on binääritietoa lainausmerkkien ulkopuolella. Jos mahdollista, kokeile SQL-lausetta suoraan komentoriviltä. MySQL-palvelimen antama virheilmoitus näkyy alla, mikäli palvelin sellaisen antoi. Jos lause toimi komentoriviltä muttei phpMyAdminista, etsi rivi jolla virheilmoitus ilmeni ja lähetä meille ilmoitus virheestä alla olevan koodin kera:';
+$strSQLParserUserError = 'Käyttämässäsi SQL-lauseessa on virhe. MySQL-palvelimen antama virheilmoitus näkyy alla, mikäli palvelin sellaisen antoi.';
+$strSQLQuery = 'SQL-kysely';
+$strSQLResult = 'SQL-kyselyn tulos';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Tunniste ei kelpaa';
+$strSQPBugUnclosedQuote = 'Merkkijonon lopusta puuttuu lainausmerkki';
+$strSQPBugUnknownPunctuation = 'Tuntematon välimerkki';
+$strStandInStructureForView = 'Näkymän vararakenne';
+$strStatCheckTime = 'Viimeksi tarkistettu';
+$strStatCreateTime = 'Luotu';
+$strStatement = 'Tieto';
+$strStatisticsOverrun = 'Ruuhkaisten palvelinten tavulaskurit saattavat ylivuotaa, joten MySQL-palvelimen ilmoittamat tilastotiedot saattavat olla virheellisiä.';
+$strStatUpdateTime = 'Viimeksi päivitetty';
+$strStatus = 'Tila';
+$strStorageEngines = "Tallennusmoottorit";
+$strStorageEngine = "Tallennusmoottori";
+$strStrucCSV = 'CSV-muotoista tietoa';
+$strStrucData = 'Rakenne ja tiedot';
+$strStrucExcelCSV = 'MS Excelin CSV-muoto';
+$strStrucNativeExcel = 'Natiivi MS Excel -muoto';
+$strStrucOnly = 'Vain rakenne';
+$strStructPropose = 'Esitä taulun rakenne';
+$strStructureForView = 'Näkymän rakenne';
+$strStructure = 'Rakenne';
+$strSubmit = 'Lähetä';
+$strSuccess = 'SQL-kyselyn suoritus onnistui';
+$strSuhosin = 'Palvelin käyttää Suhosin-suojausjärjestelmää. Lue %sohjeista%s tietoja mahdollisista ongelmista.';
+$strSum = 'Summa';
+$strSwedish = 'Ruotsalainen';
+$strSwekeyAuthenticating = 'Todennetaan...';
+$strSwekeyAuthFailed = 'Laitetodennus epäonnistui';
+$strSwekeyNoKeyId = 'Tiedosto %s ei sisällä avaintunnusta';
+$strSwekeyNoKey = 'Kelvollista todennusavainta ei ole asetettu';
+$strSwitchToDatabase = 'Siirry kopioituun tietokantaan';
+$strSwitchToTable = 'Siirry kopioituun tauluun';
+
+$strTableAlreadyExists = 'Taulu %s on jo olemassa!';
+$strTableAlteredSuccessfully = 'Taulun %1$s muuttaminen onnistui.';
+$strTableComments = 'Taulun kommentit';
+$strTableEmpty = 'Taulun nimi puuttuu!';
+$strTableHasBeenCreated = 'Taulu %1$s on luotu.';
+$strTableHasBeenDropped = 'Taulu %s on poistettu';
+$strTableHasBeenEmptied = 'Taulu %s on tyhjennetty';
+$strTableHasBeenFlushed = 'Taulun %s välimuisti on tyhjennetty';
+$strTableIsEmpty = 'Taulu on tyhjä!';
+$strTableMaintenance = 'Taulun ylläpito';
+$strTableName = 'Taulun nimi';
+$strTableOfContents = 'Sisällysluettelo';
+$strTableOptions = 'Taulun valinnat';
+$strTables = '%s taulu(a)';
+$strTableStructure = 'Rakenne taululle';
+$strTable = 'Taulu';
+$strTakeIt = 'käytä tätä';
+$strTblPrivileges = 'Taulukohtaiset käyttöoikeudet';
+$strTempData = 'Väliaikaista tietoa';
+$strTextAreaLength = ' Pituudestaan johtuen<br /> tätä saraketta ei voine muokata ';
+$strTexyText = 'Texy!-teksti';
+$strThai = 'Thai';
+$strThemeDefaultNotFound = 'Oletusteemaa %s ei löydy!';
+$strThemeNoPreviewAvailable = 'Esikatselu ei ole saatavilla.';
+$strThemeNotFound = 'Teemaa %s ei löydy!';
+$strThemeNoValidImgPath = 'Kelvollista polkua teemalle %s ei löytynyt.';
+$strThemePathNotFound = 'Teeman %s polkua ei löydy!';
+$strTheme = 'Teema/tyyli';
+$strThisHost = 'Tämä isäntä';
+$strThreads = 'Säikeet';
+$strThreadSuccessfullyKilled = 'Säikeen %s lopetus onnistui.';
+$strTime = 'Aika';
+$strTimeoutInfo = 'Edellinen tuonti keskeytyi aikakatkaisun takia. Kun lähetät tiedoston uudestaan, jatkamme kohdasta %d.';
+$strTimeoutNothingParsed = 'Viimeisellä suorituskerralla ei kuitenkaan jäsennelty mitään tietoja. Tämä tarkoittaa yleensä sitä, että phpMyAdmin ei voi ajaa tätä tuontia loppuun asti ellei PHP:n suoritusaikarajaa nosteta.';
+$strTimeoutPassed = 'Skriptin suoritus aikakatkaistiin. Jos haluat suorittaa tuonnin loppuun, lähetä sama tiedosto uudestaan, ja tuonti jatkuu.';
+$strToFromPage = 'Sivulta/sivulle';
+$strToggleScratchboard = 'Näytä/kätke luonnospöytä';
+$strToggleSmallBig = 'Vaihda pieneksi/suureksi';
+$strToSelectRelation = 'Valitaksesi relaation, paina :';
+$strTotalUC = 'Yhteensä';
+$strTotal = 'yhteensä';
+$strTraditionalChinese = 'Perinteinen kiina';
+$strTraditionalSpanish = 'Perinteinen espanja';
+$strTraffic = 'Liikenne';
+$strTransactionCoordinator = 'Transaktion koordinaattori';
+$strTransformation_application_octetstream__download = 'Näytä linkki kentän binääritietojen lataamiseen. Ensimmäisellä asetuksella voi määrittää tiedostonimen, ja toiseen asetukseen voi määrittää tiedostonimen sisältävälle kentälle nimen. Jos toista (2) asetusta käytetään, ensimmäinen asetus on asetettava tyhjäksi.';
+$strTransformation_application_octetstream__hex = 'Näyttää tiedon heksalukuina. Valinnainen, ensimmäinen parametri määrittelee, kuinka usein välilyönti lisätään (oletusarvo on 2).';
+$strTransformation_image_jpeg__inline = 'Näyttää painettavan pikkukuvan. Valinnat ovat enimmäisleveys- ja korkeus pikseleinä. Kuvasuhde säilyy ennallaan.';
+$strTransformation_image_jpeg__link = 'Näyttää kuvan latauslinkin.';
+$strTransformation_image_png__inline = 'Katso image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Näyttää TIME-, TIMESTAMP-, DATETIME- tai UNIX-aikaleimakentän muotoiltuna päivämääränä. Ensimmäinen valinta on aikaleimaan (oletuksena 0) lisättävä siirros (tunteina). Toisella valinnalla on mahdollista määrittää eri muotoinen päiväysmerkkijono. Kolmas valinta määrittää, käytetäänkö päiväyksessä paikallis- vai UTC-aikaa (käytä "local"- tai "utc"-merkkijonoja). Päiväyksen muodossa käytetään asetuksen mukaista arvoa; katso ohjeet "local"-asetuksen käytöstä PHP:n ohjeiden strftime()-funktiosta, "utc"-asetus taas käyttää gmdate()-funktiota.';
+$strTransformation_text_plain__external = 'VAIN LINUX-JÄRJESTELMISSÄ: Käynnistää ulkoisen ohjelman ja syöttää kenttätiedot oletussyötteen kautta. Palauttaa ohjelman oletustulosteen. Oletusarvona on Tidy, jota käytetään HTML-koodin siistimiseen. Tietoturvasyistä joudut muokkaamaan käsin tiedostoa libraries/transformations/text_plain__external.inc.php ja lisäämään työkalut, joiden ajon haluat sallia. Ensimmäinen valinta on silloin haluamasi ohjelman numero ja toinen valinta määrittää ohjelmalle annettavat parametrit. Kolmannen parametrin ollessa yksi (1) tuloste muunnetaan käyttäen htmlspecialchars()-funktiota (Oletus on 1). Neljännen parametrin ollessa yksi (1) sisältökennoon lisätään NOWRAP, jotta koko tuloste näkyy ilman ennakkomuotoiluja (Oletus 1)';
+$strTransformation_text_plain__formatted = 'Säilyttää kentän alkuperäiset muotoilut. Kenoviivoja ei käytetä erikoismerkkien edellä.';
+$strTransformation_text_plain__imagelink = 'Näyttää kuvan ja linkin, kenttä sisältää tiedostonimen; ensimmäinen valinta on etuliite, eli esimerkiksi "http://osoite.com/", toinen valinta on leveys pikseleinä, kolmas on korkeus.';
+$strTransformation_text_plain__link = 'Näyttää linkin; kenttä sisältää tiedostonimen; ensimmäinen valinta on etuliite, eli esimerkiksi "http://osoite.com/", toinen valinta on linkin otsikko.';
+$strTransformation_text_plain__sql = 'Käyttää SQL-kyselyssä syntaksinväritystä.';
+$strTransformation_text_plain__substr = 'Näyttää vain osan merkkijonoa. Ensimmäinen valinta on tarkoitettu määrittelemään siirros, jonka kohdalta tekstin näyttäminen aloitetaan (Oletus: 0). Toinen valinta kertoo, kuinka monta merkkiä tekstistä näytetään. Tämän ollessa tyhjä merkkijonosta näytetään kaikki loput tekstit. Kolmas valinta määrittelee, mitä merkkejä merkkijonon perään lisätään sitä näytettäessä (Oletus: "...") .';
+$strTriggers = 'Herättimet';
+$strTruncateQueries = 'Näytä katkaistut kyselyt';
+$strTurkish = 'Turkkilainen';
+$strType = 'Tyyppi';
+
+$strUkrainian = 'Ukrainalainen';
+$strUncheckAll = 'Poista valinta kaikista';
+$strUnicode = 'Unicode';
+$strUnique = 'Uniikki';
+$strUnknown = 'tuntematon';
+$strUnselectAll = 'Poista valinta kaikista';
+$strUnsupportedCompressionDetected = 'Yritit ladata tiedostoa, joka käyttää tuntematonta pakkausmuotoa (%s). Tukea kyseiselle muodolle ei joko ole toteutettu, tai se on asetuksin poistettu käytöstä.';
+$strUpdatePrivMessage = 'Käyttäjän %s käyttöoikeudet on päivitetty.';
+$strUpdateProfileMessage = 'Profiili on päivitetty.';
+$strUpdateQuery = 'Päivitä kysely';
+$strUpdComTab = 'Tarkista ohjeista, kuinka Column_comments-tauluja voi päivittää.';
+$strUpgrade = 'Sinun tulisi päivittää versioon %s %s tai sitä uudempaan.';
+$strUploadErrorCantWrite = 'Tiedoston kirjoitus levylle epäonnistui.';
+$strUploadErrorExtension = 'Laajennus keskeytti tiedoston lähetyksen.';
+$strUploadErrorFormSize = 'Lähetetyn tiedoston koko ylittää HTML-lomakkeessa määritetyn MAX_FILE_SIZE-asetuksen arvon.';
+$strUploadErrorIniSize = 'Lähetyn tidoston koko ylittää php.ini-tiedoston upload_max_filesize-asetuksen arvon.';
+$strUploadErrorNoTempDir = 'Tilapäiskansio puuttuu.';
+$strUploadErrorPartial = 'Tiedosto lähetettiin vain osittain.';
+$strUploadErrorUnknown = 'Tuntematon virhe tiedostoa lähetettäessä.';
+$strUploadLimit = 'Yritit todennäköisesti lähettää palvelimelle liian suurta tiedostoa. Katso tämän rajoituksen muuttamisesta lisätietoja %sohjeista%s.';
+$strUploadsNotAllowed = 'Tällä palvelimella ei ole sallittu tiedostojen lähetystä.';
+$strUsage = 'Käyttö';
+$strUseBackquotes = 'Pane taulujen ja sarakkeiden nimet lainausmerkkeihin';
+$strUseHostTable = 'Käytä isäntätaulua';
+$strUserAlreadyExists = 'Käyttäjä %s on jo olemassa!';
+$strUserEmpty = 'Käyttäjän nimi puuttuu!';
+$strUser = 'Käyttäjä';
+$strUserName = 'Käyttäjänimi';
+$strUserNotFound = 'Valittua käyttäjää ei löytynyt käyttöoikeustaulusta.';
+$strUserOverview = 'Käyttäjien yleiskatsaus';
+$strUsersDeleted = 'Valitsemiesi käyttäjien poisto onnistui.';
+$strUsersHavingAccessToDb = 'Käyttäjät, joilla on oikeus käyttää kohdetta &quot;%s&quot;';
+$strUseTabKey = 'Käytä arvojen välillä siirtymiseen sarkainta. Ctrl- ja nuolinäppäimillä voi siirtyä mihin tahansa kohtaan.';
+$strUseTables = 'Käytä tauluja';
+$strUseTextField = 'Käytä tekstikenttää';
+$strUseThisValue = 'Käytä tätä arvoa';
+
+$strValidateSQL = 'Tarkista SQL-kysely';
+$strValidatorError = 'SQL-tarkistinta ei voitu käynnistää. Tarkista, että tarpeelliset PHP-laajennukset on asennettu. Lisätietoa on %sohjeissa%s.';
+$strValue = 'Arvo';
+$strVar = 'Muuttuja';
+$strVersionInformation = "Versiotiedot";
+$strViewDumpDatabases = 'Näytä tietokannoista vedos (skeema)';
+$strViewDumpDB = 'Tee vedos tietokannasta';
+$strViewDump = 'Tee vedos taulusta';
+$strViewHasAtLeast = 'Tässä näkymässä on vähintään tämän luvun verran rivejä. Katso lisätietoja %sohjeista%s.';
+$strViewHasBeenDropped = "Näkymä %s on poistettu";
+$strViewImage = 'Näytä kuva';
+$strView = "Näkymä";
+$strViewName = 'VIEW-arvon nimi';
+$strViewVideo = 'Näytä video';
+
+$strWebServerUploadDirectoryError = 'Tiedostojen lähetykseen valittua hakemistoa ei voida käyttää';
+$strWebServerUploadDirectory = 'palvelimen lähetyshakemisto';
+$strWebServer = 'Verkkopalvelin';
+$strWelcome = 'Tervetuloa, toivottaa %s';
+$strWestEuropean = 'Länsieurooppalainen';
+$strWiki = 'Wiki';
+$strWildcard = 'jokerimerkki';
+$strWindowNotFound = 'Kohdeselainikkunaa ei voitu päivittää. Tämä voi johtua siitä, että isäntäikkuna on suljettu tai että selaimen tietoturva-asetukset estävät ikkunoiden väliset päivitystoiminnot.';
+$strWithChecked = 'Valitut:';
+$strWriteRequests = 'Kirjoituspyynnöt';
+$strWrongUser = 'Väärä käyttäjätunnus tai salasana. Käyttö estetty.';
+
+$strXML = 'XML';
+
+$strYes = 'Kyllä';
+
+$strZeroRemovesTheLimit = 'Huom: Näiden valintojen asettaminen nollaksi (0) poistaa rajoituksen.';
+$strZip = '"zip-pakattu"';
+
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/french-utf-8.inc.php b/lang/french-utf-8.inc.php
new file mode 100644
index 0000000000..d40bf9f75d
--- /dev/null
+++ b/lang/french-utf-8.inc.php
@@ -0,0 +1,1444 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ' ';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('o', 'Kio', 'Mio', 'Gio', 'Tio', 'Pio', 'Eio');
+
+$mysql_5_0_doc_lang = 'fr';
+
+$day_of_week = array('Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam');
+$month = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
+// Voir http://www.php.net/manual/en/function.strftime.php pour la variable
+// ci-dessous
+$datefmt = '%A %d %B %Y à %H:%M';
+
+$timespanfmt = '%s jours, %s heures, %s minutes et %s secondes';
+
+$strAbortedClients = 'Arrêts prématurés';
+$strAccessDenied = 'Accès refusé';
+$strAccessDeniedCreateConfig = 'La raison probable est que vous n\'avez pas créé de fichier de configuration. Vous pouvez utiliser le %1$sscript de configuration%2$s dans ce but.';
+$strAccessDeniedExplanation = 'phpMyAdmin a tenté de se connecter au serveur MySQL, et le serveur a rejeté la connexion. Veuillez vérifier les valeurs de "host", "username" et "password" dans votre configuration et vous assurer qu\'elles correspondent aux informations fournies par l\'administrateur du serveur MySQL.';
+$strAction = 'Action';
+$strActions = 'Actions';
+$strAddAutoIncrement = 'Inclure la valeur courante de l\'AUTO_INCREMENT';
+$strAddClause = 'Ajouter %s';
+$strAddConstraints = 'Inclure les contraintes de clés étrangères';
+$strAddDeleteColumn = 'Ajouter/effacer x colonne(s)';
+$strAddDeleteRow = 'Ajouter/effacer x ligne(s)';
+$strAddFields = 'Ajouter %s champ(s)';
+$strAddHeaderComment = 'Commentaires mis en en-tête (\\n sépare les lignes)';
+$strAddIntoComments = 'Inclure sous forme de commentaires';
+$strAddNewField = 'Ajouter un champ';
+$strAddPrivilegesOnDb = 'Ajouter des privilèges sur cette base de données';
+$strAddPrivilegesOnTbl = 'Ajouter des privilèges sur cette table';
+$strAddSearchConditions = 'Critères de recherche (pour l\'énoncé "where"):';
+$strAddToIndex = 'Ajouter à l\'index&nbsp;%s&nbsp;colonne(s)';
+$strAddUser = 'Ajouter un utilisateur';
+$strAddUserMessage = 'Vous avez ajouté un utilisateur';
+$strAdministration = 'Administration';
+$strAfter = 'Après %s';
+$strAfterInsertBack = 'Retourner à la page précédente';
+$strAfterInsertNewInsert = 'Insérer un nouvel enregistrement';
+$strAfterInsertNext = 'Modifier l\'enregistrement suivant';
+$strAfterInsertSame = 'Demeurer sur cette page';
+$strAllowInterrupt = 'Permettre l\'interruption de l\'importation si la limite de temps est sur le point d\'être atteinte. Ceci pourrait aider à importer des fichiers volumineux, au détriment du respect des transactions.';
+$strAllTableSameWidth = 'Afficher toutes les tables avec une largeur identique';
+$strAll = 'Tout';
+$strAlterOrderBy = '<b>Ordonner</b> la table par';
+$strAnalyze = 'Analyser';
+$strAnalyzeTable = 'Analyser la table';
+$strAnd = 'et';
+$strAndThen = 'et ensuite';
+$strAngularLinks = 'Liens angulaires';
+$strAnIndex = 'Un index a été ajouté sur %s';
+$strAnyHost = 'Tout serveur';
+$strAny = 'N\'importe quel';
+$strAnyUser = 'Tout utilisateur';
+$strApproximateCount = 'Peut être approximatif. Voir [a@./Documentation.html#faq3_11@Documentation]FAQ 3.11[/a]';
+$strAPrimaryKey = 'Une clé primaire a été ajoutée sur %s';
+$strArabic = 'arabe';
+$strArmenian = 'arménien';
+$strAscending = 'Croissant';
+$strAsDefined = 'Tel que défini :';
+$strAtBeginningOfTable = 'En début de table';
+$strAtEndOfTable = 'En fin de table';
+$strAttr = 'Attributs';
+$strAutomaticLayout = 'Mise en page automatique';
+
+$strBack = 'Retour';
+$strBaltic = 'baltique';
+$strBeginCut = 'Début de la section à couper';
+$strBeginRaw = 'Début des informations sur l\'anomalie';
+$strBinary = 'Binaire';
+$strBinaryDoNotEdit = 'Binaire - ne pas éditer';
+$strBinaryLog = 'Log binaire';
+$strBinLogEventType = 'Type d\'évènement';
+$strBinLogInfo = 'Information';
+$strBinLogName = 'Nom du log binaire';
+$strBinLogOriginalPosition = 'Position d\'origine';
+$strBinLogPosition = 'Position';
+$strBinLogServerId = 'ID du serveur';
+$strBookmarkAllUsers = 'Signet visible pour les autres utilisateurs';
+$strBookmarkCreated = 'Signet %s créé';
+$strBookmarkDeleted = 'Le signet a été effacé.';
+$strBookmarkLabel = 'Intitulé';
+$strBookmarkQuery = 'Requêtes en signets';
+$strBookmarkReplace = 'Remplacer un signet existant du même nom';
+$strBookmarkThis = 'Conserver cette requête dans les signets';
+$strBookmarkView = 'Voir uniquement';
+$strBrowse = 'Afficher';
+$strBrowseDistinctValues = 'Affiche les valeurs distinctes';
+$strBrowseForeignValues = 'Afficher les valeurs de la table liée';
+$strBufferPoolActivity = 'Activité de la mémoire-tampon';
+$strBufferPool = 'Mémoire-tampon';
+$strBufferPoolUsage = 'Utilisation de la mémoire-tampon';
+$strBufferReadMissesInPercent = 'Lectures non-satisfaites en %';
+$strBufferReadMisses = 'Lectures non-satisfaites';
+$strBufferWriteWaitsInPercent = 'Nombre d\'attentes d\'écriture en %';
+$strBufferWriteWaits = 'Nombre d\'attentes d\'écriture';
+$strBulgarian = 'bulgare';
+$strBusyPages = 'Pages occupées';
+$strBzip = '"bzippé"';
+
+$strCalendar = 'Calendrier';
+$strCancel = 'Annuler';
+$strCanNotLoadExportPlugins = 'Erreur lors du chargement des modules d\'exportation!';
+$strCanNotLoadImportPlugins = 'Chargement impossible des greffons d\'importation, veuillez vérifier votre installation!';
+$strCannotLogin = 'Connexion au serveur MySQL non permise';
+$strCantLoad = 'PHP ne peut charger l\'extension %s, [br]veuillez vérifier votre configuration de PHP';
+$strCantLoadRecodeIconv = 'Erreur lors du chargement de l\'extension iconv ou recode, utilisée pour convertir le jeu de caractères; veuillez activer l\'une de ces extensions dans PHP, ou désactiver la conversion des jeux de caractères dans phpMyAdmin';
+$strCantRenameIdxToPrimary = 'La clé ne peut être renommée PRIMARY!';
+$strCantUseRecodeIconv = 'Erreur lors de l\'utilisation de iconv, libiconv et recode_string, alors que ces extensions semblent chargées. Veuillez vérifier votre configuration de PHP.';
+$strCardinality = 'Cardinalité';
+$strCaseInsensitive = 'insensible à la casse';
+$strCaseSensitive = 'sensible à la casse';
+$strCentralEuropean = 'Europe centrale';
+$strChangeCopyModeCopy = '... conserver intact l\'ancien utilisateur.';
+$strChangeCopyMode = 'Créer un nouvel utilisateur avec les mêmes privilèges et ...';
+$strChangeCopyModeDeleteAndReload = ' ... supprimer l\'ancien utilisateur, puis recharger les privilèges au serveur.';
+$strChangeCopyModeJustDelete = ' ... supprimer l\'ancien utilisateur.';
+$strChangeCopyModeRevoke = ' ... effacer tous les privilèges de l\'ancien utilisateur, puis l\'effacer.';
+$strChangeCopyUser = 'Changement des informations de connexion / Copie d\'utilisateur';
+$strChangeDisplay = 'Champ descriptif';
+$strChange = 'Modifier';
+$strChangePassword = 'Modifier le mot de passe';
+$strCharset = 'Jeu de caractères';
+$strCharsetOfFile = 'Jeu de caractères du fichier:';
+$strCharsetsAndCollations = 'Jeux de caractères et interclassement';
+$strCharsets = 'Jeux de caractères';
+$strCheckAll = 'Tout cocher';
+$strCheckOverhead = 'Cocher tables avec pertes';
+$strCheckPrivsLong = 'Vérifier les privilèges pour la base de données &quot;%s&quot;.';
+$strCheckPrivs = 'Vérifier les privilèges';
+$strCheckTable = 'Vérifier la table';
+$strCheck = 'Vérifier';
+$strChoosePage = 'Page à éditer';
+$strColComFeat = 'Commentaires de colonnes';
+$strCollation = 'Interclassement';
+$strColumnNames = 'Nom des colonnes';
+$strColumnPrivileges = 'Privilèges de colonnes';
+$strCommand = 'Commande';
+$strComment = 'Commentaire';
+$strComments = 'Commentaires';
+$strCompatibleHashing = 'compatible MySQL&nbsp;4.0';
+$strCompleteInserts = 'Insertions complètes';
+$strCompression = 'Compression';
+$strCompressionWillBeDetected = 'Ces modes de compression seront détectés automatiquement : %s';
+$strConfigDefaultFileError = 'Chargement de la configuration par défaut impossible depuis "%1$s"';
+$strConfigFileError = 'phpMyAdmin n\'a pu lire votre fichier de configuration!<br />Il est possible qu\'il contienne une erreur de syntaxe, ou que PHP soit incapable de le trouver<br />À l\'aide du lien suivant, vous pouvez vérifier le message d\'erreur généré par PHP;<br />la plupart du temps, un apostrophe ou un point-virgule sont manquants.<br />Si vous recevez une page blanche, aucune erreur n\'a été détectée.';
+$strConfigureTableCoord = 'Les coordonnées de la table %s n\'ont pas été configurées';
+$strConnectionError = 'Connexion impossible: réglages incorrects.';
+$strConnections = 'Connexions';
+$strConstraintsForDumped = 'Contraintes pour les tables exportées';
+$strConstraintsForTable = 'Contraintes pour la table';
+$strControluserFailed = 'La connexion au "controluser" tel que défini dans votre configuration a échoué.';
+$strCookiesRequired = 'Vous devez accepter les cookies pour poursuivre.';
+$strCopy = 'Copier';
+$strCopyDatabaseOK = 'La base de données %s a été copiée sur %s';
+$strCopyTable = '<b>Copier</b> la table vers (base<b>.</b>table)&nbsp;:';
+$strCopyTableOK = 'La table %s a été copiée vers %s.';
+$strCopyTableSameNames = 'On ne peut copier la table sur elle-même!';
+$strCouldNotKill = 'phpMyAdmin n\'a pu éliminer le processus %s. Il était probablement déjà fermé.';
+$strCreate = 'Créer';
+$strCreateDatabaseBeforeCopying = 'Faire CREATE DATABASE avant la copie';
+$strCreateIndex = 'Créer un index sur&nbsp;%s&nbsp;colonne(s)';
+$strCreateIndexTopic = 'Créer un nouvel index';
+$strCreateNewDatabase = 'Créer une base de données';
+$strCreateNewTable = '<b>Créer une nouvelle table</b> sur la base %s';
+$strCreatePage = 'Créer une page';
+$strCreatePdfFeat = 'Génération de schémas en PDF';
+$strCreateRelation = 'Nouvelle relation';
+$strCreateTable = 'Nouvelle table';
+$strCreateUserDatabase = 'Base de données pour cet utilisateur';
+$strCreateUserDatabaseName = 'Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base';
+$strCreateUserDatabaseNone = 'Aucune';
+$strCreateUserDatabaseWildcard = 'Donner les privilèges passepartout ("%")';
+$strCreationDates = 'Dates de création/modification/vérification';
+$strCriteria = 'Critère';
+$strCroatian = 'croate';
+$strCSV = 'CSV';
+$strCustomColor = 'Couleur au choix';
+$strCyrillic = 'cyrillique';
+$strCzechSlovak = 'tchèque-slovaque';
+$strCzech = 'tchèque';
+
+$strDanish = 'danois';
+$strDatabase = 'Base de données';
+$strDatabaseEmpty = 'Le nom de la base de données est vide!';
+$strDatabaseExportOptions = 'Options d\'exportation';
+$strDatabaseHasBeenCreated = 'La base de données %1$s a été créée.';
+$strDatabaseHasBeenDropped = 'La base de données %s a été effacée.';
+$strDatabases = 'Bases de données';
+$strDatabasesDropped = '%s bases de données ont été supprimées.';
+$strDatabasesStatsDisable = 'Désactiver les statistiques';
+$strDatabasesStatsEnable = 'Activer les statistiques';
+$strDatabasesStatsHeavyTraffic = 'Note: L\'activation des statistiques peut causer un trafic important entre le serveur web et le serveur MySQL.';
+$strDatabasesStats = 'Statistiques sur les bases de données';
+$strDataDict = 'Dictionnaire de données';
+$strData = 'Données';
+$strDataOnly = 'Données seulement';
+$strDataPages = 'Pages contenant des données';
+$strDBComment = 'Commentaire sur la base de données: ';
+$strDBCopy = 'Copier la base de données vers';
+$strDbIsEmpty = 'La base de données semble vide!';
+$strDbPrivileges = 'Privilèges spécifiques à une base de données';
+$strDBRename = '<b>Changer le nom</b> de la base de données pour';
+$strDbSpecific = 'spécifique à cette base de données';
+$strDefault = 'Défaut';
+$strDefaultEngine = 'Sur ce serveur MySQL, le moteur de stockage par défaut est %s.';
+$strDefaultValueHelp = 'Pour les valeurs par défaut, veuillez n\'entrer qu\'une seule valeur, sans caractère d\'échappement ou apostrophes, sous la forme: a';
+$strDefragment = 'Défragmenter la table';
+$strDelayedInserts = 'Insertions avec délais (DELAYED)';
+$strDeleteAndFlushDescr = 'Ceci est la méthode la plus directe, mais le fait de recharger les privilèges pourrait prendre du temps.';
+$strDeleteAndFlush = 'Effacer les utilisateurs, puis recharger les privilèges.';
+$strDeleted = 'L\'enregistrement a été effacé';
+$strDelete = 'Effacer';
+$strDeleteNoUsersSelected = 'Aucun utilisateur n\'a été choisi en vue de le détruire!';
+$strDeleteRelation = 'Effacer la relation';
+$strDeleting = 'Destruction de %s';
+$strDelimiter = 'Délimiteur';
+$strDelOld = 'Cette page fait référence à des tables qui n\'existent plus. Voulez-vous effacer ces références?';
+$strDescending = 'Décroissant';
+$strDescription = 'Description';
+$strDesigner = 'Concepteur';
+$strDesignerHelpDisplayField = 'Le champ à afficher est montré en rose. Pour indiquer qu\'un champ est ou n\'est plus le champ à afficher, cliquer l\'icône "Champ à afficher", puis cliquer sur le nom de champ approprié.';
+$strDetails = 'Détails...';
+$strDictionary = 'dictionnaire';
+$strDirectLinks = 'Liens directs';
+$strDirtyPages = 'Pages modifiées';
+$strDisabled = 'désactivé';
+$strDisableForeignChecks = 'Désactiver la vérification des clés étrangères';
+$strDisplayFeat = 'Affichage infobulle';
+$strDisplayOrder = 'Ordre d\'affichage :';
+$strDisplayPDF = '<b>Afficher le schéma</b> en PDF';
+$strDoAQuery = 'Recherche par valeur (passepartout: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentation';
+$strDoYouReally = 'Voulez-vous vraiment effectuer ';
+$strDropDatabaseStrongWarning = 'Vous êtes sur le point de DÉTRUIRE une base de données!';
+$strDrop = 'Supprimer';
+$strDropUsersDb = 'Supprimer les bases de données portant le même nom que les utilisateurs';
+$strDumpingData = 'Contenu de la table';
+$strDumpSaved = 'Le fichier d\'exportation a été sauvegardé sous %s.';
+$strDumpXRows = 'Exporte %s enregistrement(s) à partir du rang n° %s.';
+$strDynamic = 'dynamique';
+
+$strEdit = 'Modifier';
+$strEditPDFPages = 'Préparer le schéma en PDF';
+$strEditPrivileges = 'Changer les privilèges';
+$strEffective = 'effectif';
+$strEmptyResultSet = 'MySQL n\'a retourné aucun enregistrement.';
+$strEmpty = 'Vider';
+$strEnabled = 'activé';
+$strEncloseInTransaction = 'Utiliser le mode transactionnel';
+$strEndCut = 'Fin de la section à couper';
+$strEnd = 'Fin';
+$strEndRaw = 'Fin des informations sur l\'anomalie';
+$strEngineAvailable = '%s est disponible sur ce serveur MySQL.';
+$strEngineDisabled = '%s a été désactivé sur ce serveur MySQL.';
+$strEngines = 'Moteurs';
+$strEngineUnsupported = 'Ce serveur MySQL ne supporte pas le moteur de stockage %s.';
+$strEnglish = 'anglais';
+$strEnglishPrivileges = ' Veuillez noter que les noms de privilèges sont exprimés en anglais';
+$strError = 'Erreur';
+$strErrorInZipFile = 'Erreur rencontrée dans l\'archive ZIP :';
+$strErrorRelationAdded = 'Erreur: relation non ajoutée.';
+$strErrorRelationExists = 'Erreur: relation déjà existante.';
+$strErrorRenamingTable = 'Erreur lors du renommage de %1$s en %2$s';
+$strErrorSaveTable = 'Erreur lors de la sauvegarde des coordonnées Concepteur.';
+$strEscapeWildcards = 'Préfixer avec \ les passepartouts _ et % pour un usage littéral';
+$strEsperanto = 'Espéranto';
+$strEstonian = 'estonien';
+$strEvent = 'Événement';
+$strEvents = 'Événements';
+$strExcelEdition = 'Excel en version';
+$strExecuteBookmarked = 'Exécuter la requête en signets';
+$strExplain = 'Expliquer SQL';
+$strExport = 'Exporter';
+$strExportImportToScale = 'Exporter/Importer à l\'échelle';
+$strExportMustBeFile = 'Ce choix d\'exportation doit être sauvegardé dans un fichier!';
+$strExtendedInserts = 'Insertions étendues';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Tentatives échouées';
+$strField = 'Champ';
+$strFieldHasBeenDropped = 'Le champ %s a été effacé';
+$strFieldInsertFromFileTempDirNotExists = 'Erreur lors du déplacement du fichier téléchargé, voir [a@./Documentation.html#faq1_11@Documentation]FAQ 1.11[/a]';
+$strFields = 'Champs';
+$strFieldsEnclosedBy = 'Champs entourés par';
+$strFieldsEscapedBy = 'Caractère spécial';
+$strFieldsTerminatedBy = 'Champs terminés par';
+$strFileAlreadyExists = 'Le fichier %s existe déjà sur le serveur, veuillez changer le nom, ou cocher l\'option Écraser';
+$strFileCouldNotBeRead = 'Le fichier n\'a pu être lu';
+$strFileNameTemplateDescription = 'Cette valeur est interprétée avec %1$sstrftime%2$s, vous pouvez donc utiliser des chaînes de format d\'heure. Ces transformations additionnelles vont se produire: %3$s. Tout autre texte sera conservé tel quel.';
+$strFileNameTemplateDescriptionDatabase = 'nom de base de données';
+$strFileNameTemplateDescriptionServer = 'nom de serveur';
+$strFileNameTemplateDescriptionTable = 'nom de table';
+$strFileNameTemplate = 'Modèle de nom de fichier';
+$strFileNameTemplateRemember = 'se souvenir du modèle';
+$strFiles = 'Fichiers';
+$strFileToImport = 'Fichier à importer';
+$strFixed = 'fixe';
+$strFlushPrivilegesNote = 'Note: phpMyAdmin obtient la liste des privilèges directement à partir des tables MySQL. Le contenu de ces tables peut être différent des privilèges effectifs, si des changements manuels ont été apportés. Dans ce cas, vous devriez %srecharger les privilèges%s avant de continuer.';
+$strFlushQueryCache = 'Vider la cache des requêtes';
+$strFlushTable = 'Recharger la table ("FLUSH")';
+$strFlushTables = 'Fermer toutes les tables';
+$strFontSize = 'Taille du texte';
+$strForeignKeyError = 'Erreur lors de la création de la clé étrangère sur %1$s (vérifiez le type des colonnes)';
+$strForeignKeyRelationAdded = 'Relation de type FOREIGN KEY ajoutée';
+$strFormat = 'format';
+$strFormEmpty = 'Formulaire incomplet !';
+$strFreePages = 'Pages libres';
+$strFullText = 'Textes complets';
+$strFunction = 'Fonction';
+$strFunctions = 'Fonctions';
+
+$strGenBy = 'Généré par';
+$strGeneralRelationFeat = 'Fonctions relationnelles';
+$strGenerate = 'Générer';
+$strGeneratePassword = 'Générer un mot de passe';
+$strGenTime = 'Généré le ';
+$strGeorgian = 'géorgien';
+$strGerman = 'allemand';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Privilèges globaux';
+$strGlobalValue = 'Valeur globale';
+$strGo = 'Exécuter';
+$strGrantOption = '"Grant"';
+$strGreek = 'grec';
+$strGzip = '"gzippé"';
+
+$strHandler = 'Gestionnaire';
+$strHasBeenAltered = 'a été modifié(e).';
+$strHaveToShow = 'Vous devez choisir au moins une colonne à afficher';
+$strHebrew = 'hébreu';
+$strHelp = 'Aide';
+$strHexForBLOB = 'Utiliser l\'hexadecimal pour les BLOB';
+$strHide = 'Cacher';
+$strHideShowAll = 'Cacher/montrer tout';
+$strHideShowNoRelation = 'Cacher/montrer les tables sans liens';
+$strHome = 'Accueil';
+$strHomepageOfficial = 'Site officiel';
+$strHostEmpty = 'Le nom de serveur est vide';
+$strHost = 'Serveur';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'hongrois';
+
+$strIcelandic = 'islandais';
+$strId = 'ID';
+$strIdxFulltext = 'Texte entier';
+$strIEUnsupported = 'Fonction non disponible sous Internet Explorer.';
+$strIgnoreDuplicates = 'Ignorer les doublons';
+$strIgnore = 'Ignorer';
+$strIgnoreInserts = 'Ignorer les erreurs de doublons (INSERT IGNORE)';
+$strImportExportCoords = 'Importer/Exporter les coordonnées pour le schéma PDF';
+$strImportFiles = 'Importe les fichiers';
+$strImportFormat = 'Format du fichier d\'importation';
+$strImport = 'Importer';
+$strImportSuccessfullyFinished = 'L\'importation s\'est terminée avec succès, %d requêtes exécutées.';
+$strIndexes = 'Index';
+$strIndexesSeemEqual = 'Les index %1$s et %2$s semblent identiques et l\'un d\'eux pourrait être supprimé.';
+$strIndexHasBeenDropped = 'L\'index %s a été effacé';
+$strIndex = 'Index';
+$strIndexName = 'Nom de l\'index :';
+$strIndexType = 'Type d\'index :';
+$strIndexWarningTable = 'Il y a des problèmes avec les index de la table `%s`';
+$strInnoDBAutoextendIncrement = 'Auto-croissant: Taille de l\'incrément';
+$strInnoDBAutoextendIncrementDesc = 'La valeur de l\'incrément lors de l\'agrandissement du fichier auto-croissant lorsqu\'il devient plein.';
+$strInnoDBBufferPoolSizeDesc = 'La taille de la mémoire-tampon utilisée par InnoDB pour les opérations d\'antémoire sur les données et les index.';
+$strInnoDBBufferPoolSize = 'Taille de la mémoire-tampon';
+$strInnoDBDataFilePath = 'Fichiers de données';
+$strInnoDBDataHomeDirDesc = 'Le chemin du répertoire pour tous les fichiers de données InnoDB.';
+$strInnoDBDataHomeDir = 'Répertoire des données';
+$strInnoDBPages = 'pages';
+$strInnodbStat = 'État InnoDB';
+$strInsecureMySQL = 'Votre fichier de configuration fait référence à l\'utilisateur root sans mot de passe, ce qui correspond à la valeur par défaut de MySQL. Votre serveur MySQL est donc ouvert aux intrusions, et vous devriez corriger ce problème de sécurité.';
+$strInsertAsNewRow = 'Sauvegarder un nouvel enregistrement';
+$strInsertedRowId = 'Identifiant de l\'enregistrement inséré : %1$d';
+$strInsert = 'Insérer';
+$strInterface = 'Interface';
+$strInternalAndForeign = 'Une relation interne n\'est pas nécessaire lorsqu\'une clé correspondante de type FOREIGN KEY existe';
+$strInternalRelationAdded = 'Relation interne ajoutée';
+$strInternalRelations = 'Relations internes';
+$strInUse = 'utilisé';
+$strInvalidAuthMethod = 'Le fichier de configuration contient un type d\'authentification invalide :';
+$strInvalidColumnCount = 'Le nombre de champs doit être plus grand que zéro.';
+$strInvalidColumn = 'La colonne %s est invalide!';
+$strInvalidCSVFieldCount = 'Nombre de champs invalide dans les données CSV à la ligne %d';
+$strInvalidCSVFormat = 'Format invalide pour les données CSV à la ligne %d.';
+$strInvalidCSVParameter = 'Paramètres invalides pour l\'importation CSV: %s';
+$strInvalidDatabase = 'Nom de base de données invalide';
+$strInvalidFieldAddCount = 'Vous devez ajouter au moins un champ';
+$strInvalidFieldCount = 'La table doit comporter au moins un champ';
+$strInvalidLDIImport = 'Ce greffon ne supporte pas les importations en format comprimé!';
+$strInvalidRowNumber = '%d n\'est pas un numéro d\'enregistrement valable.';
+$strInvalidServerHostname = 'Nom d\'hôte (hostname) invalide pour le serveur %1$s. Veuillez vérifier votre configuration.';
+$strInvalidServerIndex = 'Indice de serveur invalide: "%s"';
+$strInvalidTableName = 'Nom de table invalide';
+
+$strJapanese = 'japonais';
+$strJoins = 'Jointures';
+$strJumpToDB = 'Aller à la base de données &quot;%s&quot;.';
+$strJustDeleteDescr = 'Les utilisateurs &quot;effacés&quot; auront quand même accès au serveur, jusqu\'à ce que les privilèges soient rechargés.';
+$strJustDelete = 'Seulement effacer les utilisateurs des tables de privilèges.';
+
+$strKeepPass = 'Conserver le mot de passe';
+$strKeyCache = 'Cache des clés';
+$strKeyname = 'Nom de l\'index';
+$strKill = 'Supprimer';
+$strKnownExternalBug = 'La fonctionnalité %s est affectée par une anomalie connue, voir %s';
+$strKorean = 'coréen';
+
+$strLandscape = 'Paysage';
+$strLanguage = 'Langue';
+$strLanguageUnknown = 'Langue inconnue: %1$s.';
+$strLatchedPages = 'Pages verrouillées';
+$strLatexCaption = 'Sous-titre de la table';
+$strLatexContent = 'Contenu de la table __TABLE__';
+$strLatexContinuedCaption = 'Sous-titre de la table (suite)';
+$strLatexContinued = '(suite)';
+$strLatexIncludeCaption = 'Inclure les sous-titres';
+$strLatexLabel = 'Clé de l\'étiquette';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Structure de la table __TABLE__';
+$strLatvian = 'letton';
+$strLDI = 'CSV via LOAD DATA';
+$strLDILocal = 'Utiliser l\'option LOCAL';
+$strLengthSet = 'Taille/Valeurs*';
+$strLimitNumRows = 'Nombre d\'enregistrements par page';
+$strLinesTerminatedBy = 'Lignes terminées par';
+$strLinkNotFound = 'Lien absent';
+$strLinksTo = 'Relié à';
+$strLithuanian = 'lituanien';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Emplacement du fichier texte';
+$strLogin = 'Connexion';
+$strLoginInformation = 'Information pour la connexion';
+$strLogout = 'Quitter';
+$strLogPassword = 'Mot de passe&nbsp;:';
+$strLogServer = 'Serveur';
+$strLogUsername = 'Utilisateur&nbsp;:';
+$strLongOperation = 'Cette opération pourrait être longue. Procéder quand même? ';
+
+$strMaxConnects = 'max. de connexions simultanées';
+$strMaximalQueryLength = 'Taille maximum de la requête générée';
+$strMaximumSize = 'Taille maximum: %s%s';
+$strMbExtensionMissing = 'L\'extension PHP mbstring n\'a pu être localisée et il semble que vous utilisiez un jeu de caractères multi-octets. Sans cette extension, phpMyAdmin est incapable de gérer correctement les caractères et il peut en résulter des problèmes.';
+$strMbOverloadWarning = 'Vous avez activé mbstring.func_overload dans votre configuration PHP. Cette option est incompatible avec phpMyAdmin et peut nuire au traitement des données!';
+$strMIME_available_mime = 'Types MIME disponibles';
+$strMIME_available_transform = 'Transformations disponibles';
+$strMIME_description = 'Description';
+$strMIME_MIMEtype = 'Type MIME';
+$strMIME_nodescription = 'Aucune description n\'est disponible pour cette transformation.<br />Veuillez demander à son auteur, des détails sur %s.';
+$strMIME_transformation_note = 'La %sdescription des transformations%s explique les transformations possibles en fonction des types MIME.';
+$strMIME_transformation_options_note = 'Veuillez entrer les valeurs des options de transformation en suivant ce format: \'a\', 100, b,\'c\'...<br />Si vous devez entrer un caractère ("\") ou une apostrophe ("\'") parmi ces valeurs, faites-le précéder du caractère d\'échappement, par exemple \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Options de transformation';
+$strMIME_transformation = 'Transformation';
+$strMIMETypesForTable = 'TYPES MIME POUR LA TABLE';
+$strMIME_without = 'Les types MIME affichées en italiques ne possèdent pas de fonctions de transformation.';
+$strModifications = 'Les modifications ont été sauvegardées.';
+$strModifyIndexTopic = 'Modifier un index';
+$strModify = 'Modifier';
+$strMoveMenu = 'Déplacer le menu';
+$strMoveTable = '<b>Déplacer</b> la table vers (base<b>.</b>table)&nbsp;:';
+$strMoveTableOK = 'La table %s a été déplacée vers %s.';
+$strMoveTableSameNames = 'On ne peut déplacer la table sur elle-même!';
+$strMultilingual = 'multilingue';
+$strMyISAMDataPointerSizeDesc = 'La taille du pointeur (en octets) qui servira lors d\'un CREATE TABLE sur une table MyISAM si aucune option MAX_ROWS n\'est indiquée';
+$strMyISAMDataPointerSize = 'Taille du pointeur de données';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Si le fichier temporaire utilisé pour la création rapide des index MyISAM devrait s\'avérer plus volumineux que d\'employer la cache des clés (la différence étant spécifiée ici), utiliser la méthode de cache des clés';
+$strMyISAMMaxExtraSortFileSize = 'La taille maximum pour les fichiers temporaires utilisés lors de la création d\'index';
+$strMyISAMMaxSortFileSizeDesc = 'La taille maximum du fichier temporaire qu\'il est permis à MySQL d\'allouer pour recréer un index MyISAM (durant un REPAIR TABLE, ALTER TABLE ou LOAD DATA INFILE)';
+$strMyISAMMaxSortFileSize = 'Taille maximum pour les fichiers de tri temporaires';
+$strMyISAMRecoverOptionsDesc = 'Le mode de recouvrement automatique en cas de tables MyISAM en mauvais état, tel que réglé via l\'option --myisam-recover au départ du serveur';
+$strMyISAMRecoverOptions = 'Mode de recouvrement automatique';
+$strMyISAMRepairThreadsDesc = 'Si cette valeur est plus grande que 1, les index de tables MyISAM sont créés en parallèle (chaque index dans son propre fil d\'exécution) lors d\'une réparation.';
+$strMyISAMRepairThreads = 'Nombre de fils d\'exécution pour la réparation';
+$strMyISAMSortBufferSizeDesc = 'La mémoire tampon qui est allouée pour trier les index MyISAM durant une opération REPAIR TABLE ou pour créer les index lors d\'un CREATE INDEX ou ALTER TABLE';
+$strMyISAMSortBufferSize = 'Taille de la mémoire tampon';
+$strMySQLCharset = 'Jeu de caractères pour MySQL';
+$strMysqlClientVersion = 'Version du client MySQL';
+$strMySQLConnectionCollation = 'Interclassement pour la connexion MySQL';
+$strMysqlLibDiffersServerVersion = 'La version de votre bibliothèque MySQL (%s) diffère de la version de votre serveur MySQL (%s). Ceci peut occasionner un comportement imprévisible.';
+$strMySQLSaid = 'MySQL a répondu:';
+$strMySQLShowProcess = 'Afficher les processus';
+
+$strName = 'Nom';
+$strNext = 'Suivant';
+$strNoActivity = 'Aucune activité depuis %s secondes ou plus, veuillez vous reconnecter';
+$strNoDatabases = 'Aucune base de données';
+$strNoDatabasesSelected = 'Aucune base de données n\'a été sélectionnée.';
+$strNoDataReceived = 'Aucune données n\'a été reçu en vue de l\'importation. Aucun nom de fichier n\'a été fourni, ou encore la taille du fichier a dépassé la limite permise par votre configuration de PHP. Voir [a@./Documentation.html#faq1_16@Documentation]FAQ 1.16[/a]';
+$strNoDescription = 'pas de description';
+$strNoDetailsForEngine = 'Aucune information détaillée sur l\'état n\'est disponible pour ce moteur de stockage.';
+$strNoDropDatabases = 'La commande "DROP DATABASE" est désactivée.';
+$strNoExplain = 'Ne pas expliquer SQL';
+$strNoFilesFoundInZip = 'Aucun fichier présent dans l\'archive ZIP!';
+$strNoFrames = 'L\'utilisation de phpMyAdmin est plus aisée avec un navigateur <b>supportant les "frames"</b>.';
+$strNoIndex = 'Aucun index n\'est défini!';
+$strNoIndexPartsDefined = 'Aucune colonne n\'a été définie pour cet index!';
+$strNoModification = 'Pas de modifications';
+$strNone = 'aucune';
+$strNo = 'Non';
+$strNoOptions = 'Ce format ne comporte pas d\'options';
+$strNoPassword = 'aucun mot de passe';
+$strNoPermission = 'Le serveur web n\'a pas les permissions nécessaires pour enregistrer le fichier %s.';
+$strNoPhp = 'Sans source PHP';
+$strNoPrivileges = 'aucun privilège';
+$strNoRights = 'Vous n\'êtes pas autorisé à accéder à cette page';
+$strNoRowsSelected = 'Aucun enregistrement n\'a été sélectionné';
+$strNoSpace = 'Espace-disque insuffisant pour enregistrer le fichier %s.';
+$strNoTablesFound = 'Aucune table n\'a été trouvée dans cette base.';
+$strNoThemeSupport = 'Les thèmes ne sont pas supportés, veuillez vérifier votre configuration et/ou vos thèmes dans le répertoire %s.';
+$strNotNumber = 'Ce n\'est pas un nombre !';
+$strNotOK = 'en erreur';
+$strNotSet = 'La table <b>%s</b> est absente ou non définie dans %s';
+$strNoUsersFound = 'Il n\'y a aucun utilisateur';
+$strNoValidateSQL = 'Ne pas valider SQL';
+$strNull = 'Null';
+$strNumberOfFields = 'Nombre de champs';
+$strNumberOfTables = 'Nombre de tables';
+$strNumSearchResultsInTable = '%s occurence(s) dans la table <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total :</b> <i>%s</i> occurence(s)';
+$strNumTables = 'Tables';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Tableur "Open Document"';
+$strOpenDocumentText = 'Texte "Open Document"';
+$strOpenNewWindow = 'Ouvrir une nouvelle fenêtre phpMyAdmin';
+$strOperations = 'Opérations';
+$strOperator = 'Opérateur';
+$strOptimize = 'Optimiser';
+$strOptimizeTable = 'Optimiser la table';
+$strOptions = 'Options';
+$strOr = 'Ou';
+$strOverhead = 'Perte';
+$strOverwriteExisting = 'Écraser les fichiers existants';
+
+$strPacked = 'Compressé';
+$strPageNumber = 'Page n°:';
+$strPagesToBeFlushed = 'Pages devant être vidées';
+$strPaperSize = 'Taille du papier';
+$strPartialImport = 'Importation partielle';
+$strPartialText = 'Textes réduits';
+$strPartitionDefinition = 'Définition de PARTITION';
+$strPartitioned = 'partitionné';
+$strPartitionMaintenance = 'Gestion des partitions';
+$strPartition = 'Partition %s';
+$strPasswordChanged = 'Le mot de passe de %s a été changé.';
+$strPasswordEmpty = 'Le mot de passe est vide';
+$strPasswordHashing = 'Hachage du mot de passe';
+$strPassword = 'Mot de passe';
+$strPasswordNotSame = 'Les mots de passe doivent être identiques';
+$strPBXTCheckpointFrequencyDesc = 'La quantité de données écrite au journal de transactions avant un point de contrôle (valeur par défaut de 24 Mio).';
+$strPBXTCheckpointFrequency = 'Fréquence des points de contrôle';
+$strPBXTDataFileGrowSizeDesc = 'La taille de l\'augmentation des fichiers pointeurs d\'enregistrements (.xtd).';
+$strPBXTDataFileGrowSize = 'Taille de l\'augmentation du fichier des données';
+$strPBXTDataLogThresholdDesc = 'La taille maximale d\'un fichier journal de données. Sa valeur par défaut est de 64 Mio. PBXT peut créer un maximum de 32000 journaux de données, utilisés par toutes les tables. Par conséquent cette variable peut être augmentée pour augmenter la quantité totale de données pouvant être stockée dans la base de données.';
+$strPBXTDataLogThreshold = 'Seuil du journal des données';
+$strPBXTGarbageThresholdDesc = 'Le pourcentage d\'information parasites dans un journal de données au-delà duquel il est comprimé. Il s\'agit d\'une valeur entre 1 et 99, par défaut 50.';
+$strPBXTGarbageThreshold = 'Seuil des informations parasites';
+$strPBXTIndexCacheSizeDesc = 'La quantité de mémoire allouée au cache des index (valeur par défaut de 32 Mio).';
+$strPBXTIndexCacheSize = 'Taille du cache d\'index';
+$strPBXTLogBufferSizeDesc = 'La taille du tampon utilisé lors de l\'écriture du journal (par défaut 256 Mio).';
+$strPBXTLogBufferSize = 'Taille du tampon du journal';
+$strPBXTLogCacheSizeDesc = 'La quantité de mémoire allouée au cache du journal des transactions (valeur par défaut de 16 Mio).';
+$strPBXTLogCacheSize = 'Taille du cache du journal';
+$strPBXTLogFileCountDesc = 'Le nombre de journaux de transactions (pbxt/system/xlog*.xt) conservés par le système. Si le nombre de journaux dépasse cette valeur, les journaux les plus anciens sont détruits, sinon ils sont renommés.';
+$strPBXTLogFileCount = 'Nombre de fichiers journal';
+$strPBXTLogFileThresholdDesc = 'La taille d\'un journal de transactions au-delà de laquelle un nouveau journal est créé (valeur par défaut de 16 Mio).';
+$strPBXTLogFileThreshold = 'Seuil du fichier journal';
+$strPBXTRecordCacheSizeDesc = 'La quantité de mémoire allouée au cache des enregistrements (valeur par défaut de 32 Mio). Utilisé pour le cache des changements aux fichiers de données (.xtd) et pointeurs (.xtr).';
+$strPBXTRecordCacheSize = 'Taille du cache des enregistrements';
+$strPBXTRowFileGrowSizeDesc = 'La taille de l\'augmentation des fichiers pointeurs d\'enregistrements (.xtr).';
+$strPBXTRowFileGrowSize = 'Taille d\'augmentation du fichier des enregistrements';
+$strPBXTTransactionBufferSizeDesc = 'La taille du tampon du journal global des transactions (deux tampons sont alloués). La valeur par défaut est de 1 Mio.';
+$strPBXTTransactionBufferSize = 'Taille du tampon des transactions';
+$strPdfDbSchema = 'Schema de la base "%s" - Page %s';
+$strPdfInvalidTblName = 'La table "%s" n\'existe pas !';
+$strPdfNoTables = 'Pas de table !';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Génère un rapport contenant les données d\'une seule table)';
+$strPDFReportTitle = 'Titre du rapport';
+$strPerHour = 'par heure';
+$strPerMinute = 'par minute';
+$strPerSecond = 'par seconde';
+$strPersian = 'perse';
+$strPhoneBook = 'annuaire téléphonique';
+$strPhp = 'Créer source PHP';
+$strPHPExtension = 'Extension PHP';
+$strPHPVersion = 'Version de PHP';
+$strPleaseSelectPrimaryOrUniqueKey = 'Veuillez choisir la clé primaire ou un index unique';
+$strPmaDocumentation = 'Documentation de phpMyAdmin';
+$strPmaUriError = 'Le paramètre <tt>$cfg[\'PmaAbsoluteUri\']</tt> DOIT être renseigné dans votre fichier de configuration !';
+$strPolish = 'polonais';
+$strPortrait = 'Portrait';
+$strPos1 = 'Début';
+$strPrevious = 'Précédent';
+$strPrimaryKeyHasBeenDropped = 'La clé primaire a été effacée';
+$strPrimaryKeyName = 'Le nom d\'une clé primaire doit être PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>doit et ne peut être</b> que le nom d\'une clé primaire&nbsp;!)';
+$strPrimary = 'Primaire';
+$strPrint = 'Imprimer';
+$strPrintViewFull = 'Version imprimable (avec textes complets)';
+$strPrintView = 'Version imprimable';
+$strPrivDescAllPrivileges = 'Tous les privilèges sauf GRANT.';
+$strPrivDescAlter = 'Permission de modifier la structure des tables existantes.';
+$strPrivDescAlterRoutine = 'Permission de modifier et de supprimer des procédures stockées.';
+$strPrivDescCreateDb = 'Permission de créer des bases de données et des tables.';
+$strPrivDescCreateRoutine = 'Permission de créer des procédures stockées.';
+$strPrivDescCreateTbl = 'Permission de créer des tables.';
+$strPrivDescCreateTmpTable = 'Permission de créer des tables temporaires.';
+$strPrivDescCreateUser = 'Permission de créer, supprimer et renommer des comptes utilisateurs';
+$strPrivDescCreateView = 'Permission de créer des vues.';
+$strPrivDescDelete = 'Permission de détruire des données';
+$strPrivDescDropDb = 'Permission d\'effacer des bases de données et des tables.';
+$strPrivDescDropTbl = 'Permission d\'effacer des tables.';
+$strPrivDescEvent = 'Permission de mettre en place des événements pour le programmateur d\'événements';
+$strPrivDescExecute5 = 'Permission d\'exécuter des procédures stockées';
+$strPrivDescExecute = 'Permission d\'exécuter des procédures. Non effectif dans cette version de MySQL.';
+$strPrivDescFile = 'Permission d\'importer et d\'exporter des données à partir de / dans des fichiers.';
+$strPrivDescGrant = 'Permission d\'ajouter des utilisateurs et des privilèges sans avoir besoin de recharger les privilèges.';
+$strPrivDescIndex = 'Permission de créer et d\'effacer des index.';
+$strPrivDescInsert = 'Permission d\'ajouter et de remplacer des données';
+$strPrivDescLockTables = 'Permission de verrouiller des enregistrements dans le fil courant (unité d\'exécution).';
+$strPrivDescMaxConnections = 'Limite du nombre de nouvelles connexions qu\'un utilisateur peut démarrer, par heure.';
+$strPrivDescMaxQuestions = 'Limite du nombre de requêtes qu\'un utilisateur peut envoyer au serveur, par heure.';
+$strPrivDescMaxUpdates = 'Limite du nombre de commandes changeant une table ou base de données, qu\'un utilisateur peut exécuter, par heure.';
+$strPrivDescMaxUserConnections = 'Limite le nombre de connexions simultanées autorisées pour un utilisateur.';
+$strPrivDescProcess = 'Permission de voir les processus de tous les utilisateurs';
+$strPrivDescReferences = 'Non effectif dans cette version de MySQL.';
+$strPrivDescReload = 'Permission de recharger les réglages du serveur, et de vidanger la mémoire cache.';
+$strPrivDescReplClient = 'Permission de demander où sont les maîtres et les esclaves (système de duplication).';
+$strPrivDescReplSlave = 'Nécessaire pour les esclaves (système de duplication).';
+$strPrivDescSelect = 'Permission de lire des données.';
+$strPrivDescShowDb = 'Permission de voir la liste complète des noms de bases de données.';
+$strPrivDescShowView = 'Permission d\'exécuter SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Permission d\'arrêter le serveur MySQL.';
+$strPrivDescSuper = 'Permission de se connecter, même si le nombre maximal de connexions permises a été atteint; ceci est requis pour la plupart des opérations de type administratif, par exemple les changements de variables globales ou la destruction de processus.';
+$strPrivDescTrigger = 'Permission de créer et de supprimer des déclencheurs';
+$strPrivDescUpdate = 'Permission de changer des données.';
+$strPrivDescUsage = 'Pas de privilèges';
+$strPrivileges = 'Privilèges';
+$strPrivilegesReloaded = 'Les privilèges ont été rechargés.';
+$strProcedures = 'Procédures';
+$strProcesses = 'Processus';
+$strProcesslist = 'Liste des processus';
+$strProfiling = 'Profilage';
+$strProtocolVersion = 'Version du protocole';
+$strPutColNames = 'Afficher les noms de champ en première ligne';
+
+$strQBEDel = 'Effacer';
+$strQBEIns = 'Ajouter';
+$strQBE = 'Requête';
+$strQueryCache = 'Cache des requêtes';
+$strQueryFrame = 'Fenêtre SQL';
+$strQueryOnDb = 'Requête SQL sur la base <b>%s</b>&nbsp;:';
+$strQueryResultsOperations = 'Opérations sur les résultats de la requête';
+$strQuerySQLHistory = 'Historique SQL';
+$strQueryStatistics = '<b>Statistiques sur les requêtes</b>: Depuis son démarrage, %s requêtes ont été envoyées au serveur.';
+$strQueryTime = 'Traitement en %01.4f sec.';
+$strQueryType = 'Type de requête';
+$strQueryWindowLock = 'Ne pas écraser cette requête depuis une autre fenêtre';
+
+$strReadRequests = 'Requêtes de lecture';
+$strRebuild = 'Reconstruire';
+$strReceived = 'Reçu';
+$strRecommended = 'recommandé';
+$strRecords = 'Enregistrements';
+$strReferentialIntegrity = 'Vérifier l\'intégrité référentielle';
+$strRefresh = 'Actualiser';
+$strRelationalDisplayField = 'Relations : champs descriptifs';
+$strRelationalKey = 'Relations : clés';
+$strRelationalSchema = 'Schéma relationnel';
+$strRelationDeleted = 'Relation supprimée';
+$strRelationNotWorking = 'Certaines fonctionnalités ayant trait aux tables reliées sont désactivées. Pour une analyse du problème, cliquez %sici%s.';
+$strRelationsForTable = 'RELATIONS POUR LA TABLE';
+$strRelations = 'Relations';
+$strRelationView = 'Gestion des relations';
+$strReloadingThePrivileges = 'Chargement des privilèges en cours.';
+$strReloadPrivileges = 'Recharger les privilèges';
+$strReload = 'Recharger';
+$strRemovePartitioning = 'Supprimer le partitionnement';
+$strRemoveSelectedUsers = 'Effacer les utilisateurs sélectionnés.';
+$strRenameDatabaseOK = 'La base de données %s a été renommée en %s';
+$strRenameTable = '<b>Changer le nom</b> de la table pour';
+$strRenameTableOK = 'La table %s se nomme maintenant %s';
+$strRepair = 'Réparer';
+$strRepairTable = 'Réparer la table';
+$strReplaceNULLBy = 'Remplacer NULL par';
+$strReplaceTable = 'Remplacer les données de la table avec le fichier';
+$strReplication = 'Réplication';
+$strReset = 'Réinitialiser';
+$strResourceLimits = 'Limites de ressources.';
+$strRestartInsertion = 'Recommencer l\'insertion avec %s lignes';
+$strReType = 'Entrer à nouveau';
+$strRevokeAndDeleteDescr = 'Les utilisateurs auront le privilege "USAGE", jusqu\'à ce que les privilèges soient rechargés.';
+$strRevokeAndDelete = 'Effacer tous les privilèges de ces utilisateurs, puis les effacer.';
+$strRevokeMessage = 'Vous avez révoqué les privilèges pour %s';
+$strRevoke = 'Révoquer';
+$strRomanian = 'roumain';
+$strRoutineReturnType = 'Type retourné';
+$strRoutines = 'Procédures stockées';
+$strRowLength = 'Longueur enr.';
+$strRowsAffected = '%1$d enregistrement(s) affecté(s).';
+$strRowsDeleted = '%1$d enregistrement(s) supprimé(s).';
+$strRows = 'Enregistrements';
+$strRowsFrom = 'enregistrement(s) à partir de l\'enregistrement n°';
+$strRowsInserted = '%1$d enregistrement(s) inséré(s).';
+$strRowSize = ' Taille enr. ';
+$strRowsModeFlippedHorizontal = 'horizontal (en-têtes pivotés)';
+$strRowsModeHorizontal = 'horizontal';
+$strRowsModeOptions = 'en mode %s et répéter les en-têtes à chaque groupe de %s';
+$strRowsModeVertical = 'vertical';
+$strRowsStatistic = 'Statistiques';
+$strRunning = 'sur le serveur %s';
+$strRunQuery = 'Exécuter la requête';
+$strRunSQLQuery = 'Exécuter une ou des <b>requêtes</b> sur la base %s';
+$strRunSQLQueryOnServer = 'Exécuter une ou des requêtes SQL sur le serveur %s';
+$strRussian = 'russe';
+
+$strSaveOnServer = 'Sauvegarder sur le serveur dans le répertoire %s';
+$strSavePosition = 'Sauvegarder la position';
+$strSave = 'Sauvegarder';
+$strScaleFactorSmall = 'Veuillez augmenter l\'échelle car le schéma déborde la page';
+$strSearchFormTitle = 'Effectuer une nouvelle recherche dans la base de données';
+$strSearchInField = 'Dans la colonne:';
+$strSearchInTables = 'Dans la(les) table(s) :';
+$strSearchNeedle = 'Mot(s) ou Valeur à rechercher (passe-partout: "%") :';
+$strSearchOption1 = 'au moins un mot';
+$strSearchOption2 = 'tous les mots';
+$strSearchOption3 = 'phrase exacte';
+$strSearchOption4 = 'expression réguliére';
+$strSearch = 'Rechercher';
+$strSearchResultsFor = 'Résultats de la recherche de "<i>%s</i>" %s :';
+$strSearchType = 'Type de recherche :';
+$strSecretRequired = 'Vous devez ajouter dans le fichier de configuration une phrase de passe secrète (blowfish_secret).';
+$strSelectADb = 'Choisissez une base de données';
+$strSelectAll = 'Tout sélectionner';
+$strSelectBinaryLog = 'Sélectionnez le log binaire à consulter';
+$strSelectFields = 'Choisir les champs à afficher (au moins un)';
+$strSelectForeignKey = 'Choisissez la clé étrangère';
+$strSelectNumRows = 'dans la requête';
+$strSelectReferencedKey = 'Sélectionnez la clé référencée';
+$strSelectTables = 'Choisissez les tables';
+$strSend = 'Transmettre';
+$strSent = 'Envoyé';
+$strServerChoice = 'Choix du serveur';
+$strServerNotResponding = 'Le serveur ne répond pas.';
+$strServer = 'Serveur';
+$strServers = 'Serveurs';
+$strServerStatusDelayedInserts = 'Insertions avec délais';
+$strServerStatus = 'Informations sur le serveur';
+$strServerStatusUptime = 'Ce serveur MySQL fonctionne depuis %s. Il a démarré le %s.';
+$strServerTabVariables = 'Variables';
+$strServerTrafficNotes = '<b>Statistiques sur le trafic</b>: Ce tableau indique le trafic réseau observé sur ce serveur MySQL depuis son démarrage.';
+$strServerVars = 'Variables et réglages du serveur';
+$strServerVersion = 'Version du serveur';
+$strSessionStartupErrorGeneral = 'Erreur lors du démarrage de la session, veuillez vérifier les erreurs indiquées par PHP ou dans le fichier témoin du serveur web, et configurer PHP correctement.';
+$strSessionValue = 'Valeur pour la session';
+$strSetEnumVal = 'Les différentes valeurs des champs de type enum/set sont à spécifier sous la forme \'a\',\'b\',\'c\'...<br />Pour utiliser un caractère "\\" ou "\'" dans l\'une de ces valeurs, faites-le précéder du caractère d\'échappement "\\" (par exemple \'\\\\xyz\' ou \'a\\\'b\').';
+$strShow = 'Afficher';
+$strShowAll = 'Tout afficher';
+$strShowColor = 'Couleurs';
+$strShowDatadictAs = 'Orientation du dictionnaire:';
+$strShowFullQueries = 'Afficher les requêtes complètes';
+$strShowGrid = 'Grille';
+$strShowHideLeftMenu = 'Montrer/cacher le menu de gauche';
+$strShowingBookmark = 'Affichage du signet';
+$strShowingPhp = 'Affichage du code PHP';
+$strShowingRecords = 'Affichage des enregistrements';
+$strShowingSQL = 'Affichage de la requête SQL';
+$strShowOpenTables = 'Montrer les tables ouvertes';
+$strShowPHPInfo = 'Afficher les informations relatives à PHP';
+$strShowSlaveHosts = 'Montrer les serveurs esclaves';
+$strShowSlaveStatus = 'Montrer l\'état des serveurs esclaves';
+$strShowStatusBinlog_cache_disk_useDescr = 'Le nombre de transactions qui ont utilisé la cache temporaire du log binaire mais qui ont excédé la valeur de binlog_cache_size et ont utilisé un fichier temporaire pour stocker les énoncés de la transaction.';
+$strShowStatusBinlog_cache_useDescr = 'Le nombre de transactions qui ont utilisé la cache temporaire du log binaire.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Le nombre de tables temporaires sur disque créées automatiquement par le serveur lors de l\'exécution d\'énoncés. Si la valeur du paramètre Created_tmp_disk_tables est trop grande, augmentez la valeur de tmp_table_size afin que les tables temporaires soient maintenues en mémoire au lieu d\'être sur disque.';
+$strShowStatusCreated_tmp_filesDescr = 'Le nombre de fichiers temporaires créés par mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'Le nombre de tables temporaires en mémoire créées automatiquement par le serveur lors de l\'exécution d\'énoncés.';
+$strShowStatusDelayed_errorsDescr = 'Le nombre d\'enregistrements écrits avec INSERT DELAYED pour lesquels une erreur est survenue (probablement un doublon sur la clé).';
+$strShowStatusDelayed_insert_threadsDescr = 'Le nombre de fils d\'exécution utilisés pour INSERT DELAYED. Un fil est utilisé pour chacune des tables sur lesquelles un INSERT DELAYED a lieu.';
+$strShowStatusDelayed_writesDescr = 'Le nombre d\'enregistrements écrits via INSERT DELAYED.';
+$strShowStatusFlush_commandsDescr = 'Le nombre de commandes FLUSH exécutées.';
+$strShowStatusHandler_commitDescr = 'Le nombre de commandes COMMIT internes.';
+$strShowStatusHandler_deleteDescr = 'Le nombre de fois qu\'un enregistrement a été supprimé d\'une table.';
+$strShowStatusHandler_discoverDescr = 'Le serveur MySQL peut demander au moteur de données NDB Cluster s\'il connaît une table portant un certain nom. Ceci est appelé &quot;découverte&quot;. Ce paramètre indique le nombre de fois que des tables ont été découvertes.';
+$strShowStatusHandler_read_firstDescr = 'Le nombre de fois que la première entrée a été lue depuis un index. Si c\'est élevé, ceci suggère que le serveur effectue beaucoup de parcours complets d\'un index; par exemple, SELECT coll FROM foo, en assumant que coll est une colonne indexée.';
+$strShowStatusHandler_read_keyDescr = 'Le nombre de requêtes pour lire un enregistrement via une clé. Si élevé, c\'est une bonne indication que vos tables sont correctement indexées.';
+$strShowStatusHandler_read_nextDescr = 'Le nombre de requêtes de lecture du prochain enregistrement, en ordre de clé. Ceci est augmenté si vous interrogez une colonne indexée avec un critère de fourchette ou si vous parcourez l\'index.';
+$strShowStatusHandler_read_prevDescr = 'Le nombre de requêtes de lecture de l\'enregistrement précédent, en ordre de clé. Utilisé surtout pour optimiser ORDER BY ... DESC';
+$strShowStatusHandler_read_rndDescr = 'Le nombre de requêtes de lecture d\'un enregistrement basée sur une position fixe. Ce nombre est élevé si vous faites de nombreuses requêtes qui nécessitent de trier les résultats. Vous avez probablement un grand nombre de requêtes qui demandent à MySQL de parcourir des tables en entier, ou vous avez des jointures qui n\'utilisent pas correctement les clés.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Le nombre de requêtes de lecture du prochaine enregistrement dans le fichier. Élevé si vous faites plusieurs parcours de tables. Ceci suggère que vos tables ne sont pas correctement indexées ou que vos requêtes ne sont pas écrites de façon à tirer parti des index que vous avez définis.';
+$strShowStatusHandler_rollbackDescr = 'Le nombre d\'énoncés ROLLBACK internes.';
+$strShowStatusHandler_updateDescr = 'Le nombre de requêtes de mise à jour d\'enregistrements.';
+$strShowStatusHandler_writeDescr = 'Le nombre de requêtes d\'insertion d\'enregistrements.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Le nombre de pages contenant des données.';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Le nombre de pages contenant des données "dirty"';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Le nombre de pages de mémoire-tampon qui ont été effacées.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Le nombre de pages libres';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Le nombre de pages dans la réserve InnoDB qui sont actuellement en train d\'être lues ou écrites, ou qui ne peuvent être supprimées pour une autre raison.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Le nombre de pages occupées car elles ont été déallouées en raison de verrous sur les enregistrements. Cette valeur peut également être calculée comme suit: Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Taille totale de la réserve, en pages.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Le nombre de lectures discontinues effectuées par InnoDB. Ceci survient lorsqu\'une requête doit balayer une large portion de table en ordre discontinu.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Le nombre de lectures séquentielles effectuées par InnoDB. Ceci survient quand InnoDB fait un parcours séquentiel intégral de la table.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Le nombre de requêtes de lectures "logiques" effectuées par InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Le nombre de lectures que InnoDB n\'a pu faire à partir de la réserve, menant à une lecture directe d\'une page.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalement, l\'écriture dans la réserve InnoDB se passe en arrière-plan. Cependant, s\'il est nécessaire de lire ou de créer une page et qu\'aucune page n\'est disponible, InnoDB doit attendre que des pages soient libérées. Ceci compte le nombre de fois qu\'une telle attente a été nécessaire. Si la taille de la réserve est adéquate, cette valeur devrait être petite.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Le nombre d\'écritures faites dans la réserve InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Le nombre d\'opérations fsync() faites jusqu\'à présent.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Le nombre d\'opérations fsync() actuellement en attente.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Le nombre actuel de lectures en attente.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Le nombre actuel d\'écritures en attente.';
+$strShowStatusInnodb_data_readDescr = 'La quantité d\'octets lus jusqu\'à présent.';
+$strShowStatusInnodb_data_readsDescr = 'Le nombre total de lectures de données.';
+$strShowStatusInnodb_data_writesDescr = 'Le nombre total d\'écritures de données.';
+$strShowStatusInnodb_data_writtenDescr = 'La quantité d\'octets écrits jusqu\'à présent.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Le nombre de pages utilisées pour des opérations "doublewrite".';
+$strShowStatusInnodb_dblwr_writesDescr = 'Le nombre d\'opérations "doublewrite" effectuées.';
+$strShowStatusInnodb_log_waitsDescr = 'Le nombre d\'attentes en raison d\'un tampon du fichier témoin trop petit; il fallait attendre qu\'il se libère avant de continuer.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Le nombre de requêtes d\'écritures sur le fichier témoin.';
+$strShowStatusInnodb_log_writesDescr = 'Le nombre d\'écritures physiques au fichier témoin.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Le nombre d\'écritures fsync() sur le fichier témoin.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Le nombre de fsync() du fichier témoin en attente.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Le nombre d\'écritures du fichier témoin en attente.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Le nombre d\'octets écrits sur le fichier témoin.';
+$strShowStatusInnodb_pages_createdDescr = 'Le nombre de pages créées.';
+$strShowStatusInnodb_page_sizeDescr = 'La taille de page InnoDB telle que compilée (16 Ko par défaut). Plusieurs valeurs sont comptées par page; la taille de page leur permet d\'être facilement converties en octets.';
+$strShowStatusInnodb_pages_readDescr = 'Le nombre de pages lues.';
+$strShowStatusInnodb_pages_writtenDescr = 'Le nombre de pages écrites.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Le nombre de verrous d\'enregistrements actuellement en attente.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Le temps d\'attente moyen pour acquérir un verrou, en millisecondes.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Le temps total utilisé pour acquérir un verrou, en millisecondes.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Le temps d\'attente maximum pour acquérir un verrou, en millisecondes.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Le nombre de fois qu\'on a dû attendre pour un verrou.';
+$strShowStatusInnodb_rows_deletedDescr = 'Le nombre d\'enregistrements supprimés des tables InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'Le nombre d\'enregistrements insérés dans des tables InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'Le nombre d\'enregistrements lus dans des tables InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'Le nombre d\'enregistrements mis à jour dans des tables InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Le nombre de blocs de clés dans la cache de clés qui ont été modifiés mais pas encore transférés sur disque.';
+$strShowStatusKey_blocks_unusedDescr = 'Le nombre de blocs inutilisés dans la cache de clés. Vous pouvez utiliser cette valeur pour déterminer la proportion de la cache de clés qui est utilisée.';
+$strShowStatusKey_blocks_usedDescr = 'Le nombre maximum de blocs qui ont été utilisés en même temps dans la cache de clés.';
+$strShowStatusKey_read_requestsDescr = 'Le nombre de requêtes de lecture d\'un bloc de clés depuis la cache.';
+$strShowStatusKey_readsDescr = 'Le nombre de lectures physiques d\'un bloc de clés depuis le disque. Si cette valeur est élevée, la taille de votre mémoire tampon de clés est trop petite. Le taux d\'échec de la cache peut être calculé par "Key reads/Key read requests".';
+$strShowStatusKey_write_requestsDescr = 'Le nombre de requêtes en vue d\'écrire un bloc de clé dans la cache.';
+$strShowStatusKey_writesDescr = 'Le nombre d\'écritures physiques d\'un bloc de clés vers le disque.';
+$strShowStatusLast_query_costDescr = 'Le coût total de la dernière requête compilée, tel que calculé par l\'optimiseur de requêtes. Utile pour comparer le coût de diverses stratégies pour une même requête. La valeur de 0 indique qu\'aucune requête n\'a encore été compilée.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Le nombre d\'enregistrements en attente d\'écriture (INSERT DELAYED).';
+$strShowStatusOpened_tablesDescr = 'Le nombre tables qui ont été ouvertes. Si trop élevé, votre cache de table est probablement trop petite.';
+$strShowStatusOpen_filesDescr = 'Le nombre de fichiers qui sont ouverts.';
+$strShowStatusOpen_streamsDescr = 'Le nombre de flux de données qui sont ouverts.';
+$strShowStatusOpen_tablesDescr = 'Le nombre de tables qui sont ouvertes.';
+$strShowStatusQcache_free_blocksDescr = 'Le nombre de blocs de mémoire libre dans la cache de requêtes.';
+$strShowStatusQcache_free_memoryDescr = 'La quantité de mémoire libre dans la cache de requêtes.';
+$strShowStatusQcache_hitsDescr = 'Le nombre de succès dans la cache.';
+$strShowStatusQcache_insertsDescr = 'Le nombre de requêtes ajoutées à la cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Le nombre de requêtes qui ont été retirées de la cache pour libérer de la mémoire afin de mettre en cache de nouvelles requêtes. Peut être utilisé afin de peaufiner la taille de la cache. La stratégie utilisée pour déterminer quelles requêtes seront retirées est LRU (least recently used).';
+$strShowStatusQcache_not_cachedDescr = 'Le nombre de requêtes non en cache (impossible à placer en cache, ou non cachée en raison du paramètre query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Le nombre de requêtes enregistrées dans la cache.';
+$strShowStatusQcache_total_blocksDescr = 'Le nombre total de blocs dans la cache de requêtes.';
+$strShowStatusReset = 'Réinitialiser';
+$strShowStatusRpl_statusDescr = 'L\'état de la réplication sans échec (pas encore implantée).';
+$strShowStatusSelect_full_joinDescr = 'Le nombre de jointures qui n\'ont pas utilisé d\'index. Si cette valeur est supérieure à 0, vérifiez soigneusement les indexes de vos tables.';
+$strShowStatusSelect_full_range_joinDescr = 'Le nombre de jointures qui ont utilisé une recherche par plage sur une table de référence.';
+$strShowStatusSelect_range_checkDescr = 'Le nombre de jointures sans clés qui vérifient l\'utilisation de clé à chaque enregistrement. (Si ceci est supérieur à 0, vérifiez soigneusement les indexes de vos tables.)';
+$strShowStatusSelect_rangeDescr = 'Le nombre de jointures qui ont utilisé des plages sur la première table. (Normalement non critique même si cette valeur est élevée.)';
+$strShowStatusSelect_scanDescr = 'Le nombre de jointures qui ont nécessité le parcours complet de la première table.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Le nombre de tables temporaires actuellement ouvertes par le fil d\'exécution SQL de l\'esclave.';
+$strShowStatusSlave_retried_transactionsDescr = 'Nombre de fois (depuis le démarrage) que le fil d\'exécution SQL de l\'esclave a envoyé à nouveau des transactions.';
+$strShowStatusSlave_runningDescr = 'Ceci est à ON si ce serveur est un esclave connecté à un maître.';
+$strShowStatusSlow_launch_threadsDescr = 'Le nombre de fils d\'exécution dont le temps de création a excédé slow_launch_time secondes.';
+$strShowStatusSlow_queriesDescr = 'Le nombre de requêtes dont le temps d\'exécution a excédé long_query_time secondes.';
+$strShowStatusSort_merge_passesDescr = 'Le nombre d\'opérations de fusion effectuées par l\'algorithme de tri. Si ce nombre est élevé, augmentez la valeur du paramètre sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Le nombre de tri effectués avec des plages.';
+$strShowStatusSort_rowsDescr = 'Le nombre d\'enregistrements triés.';
+$strShowStatusSort_scanDescr = 'Le nombre de tri effectués via un parcours de la table.';
+$strShowStatusTable_locks_immediateDescr = 'Le nombre de fois qu\'un verrou de table a été acquis immédiatement.';
+$strShowStatusTable_locks_waitedDescr = 'Le nombre de fois qu\'un verrou de table n\'a pu être acquis immédiatement, induisant un temps d\'attente. Si ce nombre est élevé et que vous éprouvez des problèmes de performance, commencez par optimiser vos requêtes, puis subdivisez vos tables ou encore utiliser la réplication.';
+$strShowStatusThreads_cachedDescr = 'Le nombre de fils dans la cache des fils d\'exécution. Si cette valeur est en rouge, vous devriez augmenter la taille de cette cache.';
+$strShowStatusThreads_connectedDescr = 'Le nombre de connexions ouvertes actuellement.';
+$strShowStatusThreads_createdDescr = 'Le nombre de fils d\'exécution créés afin de gérer les connexions. Si ce nombre est trop grand, vous pourriez augmenter la valeur du paramètre thread_cache_size. (Normalement, ceci ne procure pas une amélioration perceptible de la performance si votre serveur gère correctement les fils d\'exécution.';
+$strShowStatusThreads_runningDescr = 'Le nombre de fils d\'exécution non suspendus.';
+$strShowTableDimension = 'Dimension des tables';
+$strShowTables = 'Afficher les tables';
+$strShowThisQuery = 'Réafficher la requête après exécution';
+$strSimplifiedChinese = 'chinois simplifié';
+$strSingly = '(à refaire après insertions/destructions)';
+$strSize = 'Taille';
+$strSkipQueries = 'Nombre d\'enregistrements (requêtes) à ignorer à partir du début';
+$strSlovak = 'slovaque';
+$strSlovenian = 'slovène';
+$strSmallBigAll = 'Agrandir/réduire tout';
+$strSnapToGrid = 'Accrocher à la grille';
+$strSocketProblem = '(ou l\'interface de connexion ("socket") vers le serveur MySQL local n\'est pas correctement configurée)';
+$strSortByKey = 'Trier sur l\'index';
+$strSorting = 'Mécanisme de tri';
+$strSort = 'Tri';
+$strSpaceUsage = 'Espace utilisé';
+$strSpanish = 'espagnol';
+$strSplitWordsWithSpace = 'Séparer les mots par un espace (" ").';
+$strSQLCompatibility = 'Mode de compatibilité SQL';
+$strSQLExportType = 'Type d\'exportation';
+$strSQLParserBugMessage = 'Il semble que vous ayiez trouvé une anomalie dans l\'analyseur syntaxique SQL. Veuillez examiner votre requête attentivement, et vérifier que vos apostrophes sont conformes. Il se pourrait aussi que vous ayiez chargé un fichier dont le contenu binaire n\'est pas entre apostrophes. Si vous avez accès à MySQL via son interface de commande en mode ligne, vous pouvez y essayer votre requête. Le message d\'erreur présenté plus bas pourrait vous indiquer la source du problème. En dernier recours, veuillez trouver la plus courte requête possible qui cause le problème, et soumettre un rapport d\'anomalie en incluant la section à couper:';
+$strSQLParserUserError = 'Il semble qu\'il y ait une erreur dans votre requête SQL. Le message ci-bas peut vous aider à en trouver la cause.';
+$strSQLQuery = 'requête SQL';
+$strSQLResult = 'Résultat de la requête SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identificateur invalide';
+$strSQPBugUnclosedQuote = 'Apostrophe non fermé';
+$strSQPBugUnknownPunctuation = 'Ponctuation invalide';
+$strStandInStructureForView = 'Doublure de structure pour la vue';
+$strStatCheckTime = 'Dernière vérification';
+$strStatCreateTime = 'Création';
+$strStatement = 'Information';
+$strStatisticsOverrun = 'Sur un serveur surchargé, la capacité des compteurs d\'octets peut être dépassée, auquel cas les statistiques rapportées par MySQL peuvent être inexactes.';
+$strStatUpdateTime = 'Dernière modification';
+$strStatus = 'État';
+$strStorageEngine = 'Moteur de stockage';
+$strStorageEngines = 'Moteurs de stockage';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Structure et données';
+$strStrucExcelCSV = 'CSV pour MS Excel';
+$strStrucNativeExcel = 'Données MS Excel (format natif)';
+$strStrucOnly = 'Structure seule';
+$strStructPropose = 'Suggérer des optimisations quant à la structure de la table';
+$strStructureForView = 'Structure de la vue';
+$strStructure = 'Structure';
+$strSubmit = 'Exécuter';
+$strSuccess = 'Votre requête SQL a été exécutée avec succès';
+$strSuhosin = 'Ce serveur utilise Suhosin. Veuillez vous référer à la %sdocumentation%s pour en connaître les conséquences possibles.';
+$strSum = 'Somme';
+$strSwedish = 'suédois';
+$strSwekeyAuthenticating = 'Authentification en cours...';
+$strSwekeyAuthFailed = 'L\'authentification matérielle a échoué';
+$strSwekeyNoKeyId = 'Le fichier %s ne contient pas d\'identifiant de clé';
+$strSwekeyNoKey = 'La clé d\'authentification n\'est pas branchée';
+$strSwitchToDatabase = 'Aller à la base de données copiée';
+$strSwitchToTable = 'Aller à la table copiée';
+
+$strTableAlreadyExists = 'La table %s existe déjà!';
+$strTableAlteredSuccessfully = 'La table %1$s a été modifiée avec succès.';
+$strTableComments = 'Commentaires sur la table';
+$strTableEmpty = 'Le nom de la table est vide';
+$strTableHasBeenCreated = 'La table %1$s a été créée.';
+$strTableHasBeenDropped = 'La table %s a été effacée';
+$strTableHasBeenEmptied = 'La table %s a été vidée';
+$strTableHasBeenFlushed = 'La table %s a été rechargée';
+$strTableIsEmpty = 'La table semble vide!';
+$strTableMaintenance = '<b>Maintenance</b> de la table';
+$strTableName = 'Nom de la table';
+$strTableOfContents = 'Table des matières';
+$strTableOptions = '<b>Options</b> pour cette table';
+$strTables = '%s table(s)';
+$strTableStructure = 'Structure de la table';
+$strTable = 'Table';
+$strTakeIt = 'utiliser celui-ci';
+$strTblPrivileges = 'Privilèges spécifiques à une table';
+$strTempData = 'Données temporaires';
+$strTextAreaLength = 'Il est possible que ce champ<br />ne soit pas éditable<br />en raison de sa longueur';
+$strTexyText = 'Texte Texy!';
+$strThai = 'thaï';
+$strThemeDefaultNotFound = 'Thème par défaut %s inexistant!';
+$strThemeNoPreviewAvailable = 'Prévisualisation non disponible.';
+$strThemeNotFound = 'Thème %s inexistant!';
+$strThemeNoValidImgPath = 'Chemin des images inexistant pour le thème %s!';
+$strThemePathNotFound = 'Chemin non trouvé pour le thème %s!';
+$strTheme = 'Thème / Style';
+$strThisHost = 'Ce serveur';
+$strThreads = 'Fils d\'exécution';
+$strThreadSuccessfullyKilled = 'Le processus %s a été éliminé.';
+$strTime = 'Durée';
+$strTimeoutInfo = 'L\'importation précédente a échoué en raison du temps; retransmettez et le traitement reprendra à la position %d.';
+$strTimeoutNothingParsed = 'Cependant lors du dernier traitement, aucune section n\a été analysée; ceci signifie que phpMyAdmin ne pourra terminer cette importation, à moins que la limite de temps de PHP ne soit augmentée';
+$strTimeoutPassed = 'La limite de temps a été atteinte; si vous voulez terminer l\'importation, soumettez à nouveau le même fichier et l\'importation continuera.';
+$strToFromPage = 'de/vers la page';
+$strToggleScratchboard = 'Éditeur visuel';
+$strToggleSmallBig = 'Bascule agrandir/réduire';
+$strToSelectRelation = 'Pour sélectionner un lien, cliquez :';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'chinois traditionnel';
+$strTraditionalSpanish = 'espagnol traditionnel';
+$strTraffic = 'Trafic';
+$strTransactionCoordinator = 'Coordonnateur des transactions';
+$strTransformation_application_octetstream__download = 'Affiche un lien pour télécharger le contenu binaire d\'une colonne. La première option est le nom du fichier binaire. La seconde option est le nom de la colonne contenant le nom du fichier. Si vous utilisez la seconde option, veuillez laisser la première option vide.';
+$strTransformation_application_octetstream__hex = 'Affiche une représentation hexadécimale des données. Le premier paramètre est optionnel et spécifie combien d\'espaces seront ajoutés.';
+$strTransformation_image_jpeg__inline = 'Affiche une image timbre-poste cliquable; les options sont: largeur,hauteur en pixels (conserve le rapport original)';
+$strTransformation_image_jpeg__link = 'Affiche un lien vers cette image';
+$strTransformation_image_png__inline = 'Voir image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Affiche un champ TIME, TIMESTAMP, DATETIME ou un champ numérique contenant une valeur TIMESTAMP UNIX en tant que date formatée. La première option est le décalage (en heures) à ajouter (par défaut, 0). La seconde option sert à indiquer le format de date ou d\'heure. La troisième option détermine si vous voulez la date locale ("local") ou UTC ("utc"). Pour le format "local", le second paramètre utilise le format de la fonction PHP strftime() et pour le format "utc", il utilise la fonction gmdate().';
+$strTransformation_text_plain__external = '(Linux seulement) Exécute un programme externe et lui envoit le contenu du champ via l\'entrée standard. Puis capture la sortie standard de ce programme externe. Le programme par défaut est tidy, pour un affichage embelli du code HTML. Pour des raisons de sécurité, vous devez éditer le script libraries/transformations/text_plain__external.inc.php et y insérer les noms de programme externe possibles. La première option est le numéro du programme que vous voulez utiliser, la seconde option contient les paramètres pour ce programme. En troisième option, une valeur de 1 va convertir le résultat avec la fonction htmlspecialchars() (par défaut, 1). En option 4, une valeur de 1 va ajouter NOWRAP à la cellule affichée (par défaut, 1).';
+$strTransformation_text_plain__formatted = 'Préserve le contenu original du champ, sans ajout de caractères d\'échappement.';
+$strTransformation_text_plain__imagelink = 'Affiche une image et un lien, le champ contient le nom du fichier; en première option, un préfixe comme "http://domaine.com/", en seconde option, la largeur en pixels, en troisième option la hauteur en pixels.';
+$strTransformation_text_plain__link = 'Affiche un lien, le champ contient le nom du fichier; en première option, un préfixe comme "http://domaine.com/", en seconde option, un titre pour le lien.';
+$strTransformation_text_plain__sql = 'Affiche le texte comme une requête SQL avec embellissement de la syntaxe.';
+$strTransformation_text_plain__substr = 'N\'affiche qu\'une partie du champ. En première option, la position de départ (par défaut, 0). En seconde option, le nombre de caractères à afficher (par défaut, le reste). En troisième option, des caractères à afficher à la fin du texte (par défaut: "...").';
+$strTriggers = 'Déclencheurs';
+$strTruncateQueries = 'Afficher les requêtes tronquées';
+$strTurkish = 'turc';
+$strType = 'Type';
+
+$strUkrainian = 'ukrainien';
+$strUncheckAll = 'Tout décocher';
+$strUnicode = 'Unicode';
+$strUnique = 'Unique';
+$strUnknown = 'inconnu';
+$strUnselectAll = 'Tout désélectionner';
+$strUnsupportedCompressionDetected = 'Vous avez tenté d\'importer un fichier dont le mode de compression (%s) n\'est pas supporté par votre configuration PHP ou est désactivé dans celle-ci.';
+$strUpdatePrivMessage = 'Vous avez modifié les privilèges pour %s.';
+$strUpdateProfileMessage = 'Le profil a été modifié.';
+$strUpdateQuery = 'Mise-à-jour de la requête';
+$strUpdComTab = 'La documentation indique comment mettre à jour votre table Column_comments';
+$strUpgrade = 'Vous devriez utiliser %s en version %s ou plus récente.';
+$strUploadErrorCantWrite = 'Erreur lors de l\'écriture du fichier sur disque.';
+$strUploadErrorExtension = 'Téléchargement arrêté par l\'extension.';
+$strUploadErrorFormSize = 'La taille du fichier téléchargé dépasse la limite permise par la directive MAX_FILE_SIZE présente dans le formulaire HTML.';
+$strUploadErrorIniSize = 'La taille du fichier téléchargé dépasse la limite permise par la directive upload_max_filesize de php.ini.';
+$strUploadErrorNoTempDir = 'Répertoire temporaire manquant.';
+$strUploadErrorPartial = 'Le fichier n\'a été que partiellement téléchargé.';
+$strUploadErrorUnknown = 'Erreur inconnue durant le téléchargement.';
+$strUploadLimit = 'Vous avez probablement tenté de télécharger un fichier trop volumineux. Veuillez vous référer à la %sdocumentation%s pour des façons de contourner cette limite.';
+$strUploadsNotAllowed = 'Les téléchargements vers ce serveur ne sont pas permis.';
+$strUsage = 'Espace';
+$strUseBackquotes = 'Protéger les noms des tables et des champs par des&nbsp;"`"';
+$strUseHostTable = 'Utiliser la table Host';
+$strUserAlreadyExists = 'L\'utilisateur %s existe déjà!';
+$strUserEmpty = 'Le nom d\'utilisateur est vide';
+$strUserName = 'Nom d\'utilisateur';
+$strUserNotFound = 'L\'utilisateur choisi n\'existe pas dans la table des privilèges';
+$strUserOverview = 'Vue d\'ensemble des utilisateurs';
+$strUsersDeleted = 'Les utilisateurs sélectionnés ont été effacés.';
+$strUsersHavingAccessToDb = 'Utilisateurs ayant accès à &quot;%s&quot;';
+$strUser = 'Utilisateur';
+$strUseTabKey = 'Utilisez la tabulation pour aller d\'une valeur à l\'autre, ou CTRL+flèches pour aller n\'importe où';
+$strUseTables = 'Utiliser les tables';
+$strUseTextField = 'Entrez une valeur';
+$strUseThisValue = 'Utiliser cette valeur';
+
+$strValidateSQL = 'Valider SQL';
+$strValidatorError = 'Le validateur SQL n\'a pas pu être initialisé. Vérifiez que les extensions PHP nécessaires ont bien été installées (voir la %sdocumentation%s).';
+$strValue = 'Valeur';
+$strVar = 'Variable';
+$strVersionInformation = 'Version';
+$strViewDump = '<b>Afficher le schéma</b> de la table';
+$strViewDumpDatabases = 'Schéma et/ou contenu des bases de données';
+$strViewDumpDB = 'Schéma et données de la base ';
+$strViewHasAtLeast = 'Cette vue contient au moins ce nombre d\'enregistrements. Veuillez référer à %sdocumentation%s.';
+$strViewHasBeenDropped = 'La vue %s a été supprimée';
+$strViewName = 'Nom de la vue';
+$strView = 'Vue';
+
+$strWebServer = 'Serveur web';
+$strWebServerUploadDirectoryError = 'Le répertoire de transfert est inaccessible';
+$strWebServerUploadDirectory = 'répertoire de transfert du serveur Web';
+$strWelcome = 'Bienvenue à %s ';
+$strWestEuropean = 'Europe de l\'ouest';
+$strWiki = 'Wiki';
+$strWildcard = 'passepartout';
+$strWindowNotFound = 'La fenêtre principale n\'a pu être mise à jour. Il est possible que vous l\'ayiez fermée, ou encore que votre navigateur bloque les mises à jour inter-fenêtres pour des raisons de sécurité.';
+$strWithChecked = 'Pour la sélection :';
+$strWriteRequests = 'Requêtes d\'écriture';
+$strWrongUser = 'Erreur d\'utilisateur/mot de passe. Accès refusé';
+
+$strXML = 'XML';
+
+$strYes = 'Oui';
+
+$strZeroRemovesTheLimit = 'Note: Une valeur de 0 (zero) enlève la limite.';
+$strZip = '"zippé"';
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/galician-utf-8.inc.php b/lang/galician-utf-8.inc.php
new file mode 100644
index 0000000000..a9a3757348
--- /dev/null
+++ b/lang/galician-utf-8.inc.php
@@ -0,0 +1,1446 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by Xosé Calvo <xosecalvo at galizaweb.net>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$day_of_week = array('Do', 'Lu', 'Ma', 'Mé', 'Xo', 'Ve', 'Sá');
+$month = array('Xan', 'Feb', 'Mar', 'Abr', 'Maio', 'Xuño', 'Xullo', 'Ago', 'Set', 'Out', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d de %B de %Y ás %H:%M';
+
+$timespanfmt = '%s días, %s horas, %s minutos e %s segundos';
+
+$strAbortedClients = 'Cancelado';
+$strAccessDenied = 'Acceso Negado';
+$strAccessDeniedCreateConfig = 'Isto débese, posibelmente, a que non creou un ficheiro de configuración. Talvez queira utilizar %1$ssetup script%2$s para crear un.';
+$strAccessDeniedExplanation = 'O phpMyAdmin tentouse conectar ao servidor de MySQL, mais o servidor rexeitou a conexión. Deberá comprobar o nome do servidor, o nome de usuario e o contrasinal no ficheiro config.inc.php e asegurarse de que corresponden coa información proporcionada polo administrador do servidor do MySQL.';
+$strAction = 'Acción';
+$strActions = 'Accións';
+$strAddAutoIncrement = 'Engadir o valor incremental (AUTO_INCREMENT)';
+$strAddClause = 'Engadir %s';
+$strAddConstraints = 'Adicionar limitacións';
+$strAddDeleteColumn = 'Adicionar/Eliminar columnas de campo';
+$strAddDeleteRow = 'Adicionar/Eliminar filas de criterios';
+$strAddFields = 'Adicionar %s campo(s)';
+$strAddHeaderComment = 'Adicionar un comentario proprio no cabezallo (\n liñas diferentes)';
+$strAddIntoComments = 'Engadir aos comentarios';
+$strAddNewField = 'Adicionar un novo campo';
+$strAddPrivilegesOnDb = 'Adicionar privilexios para a esta base de datos';
+$strAddPrivilegesOnTbl = 'Adicionar privilexios para a esta tabela';
+$strAddSearchConditions = 'Condición da pesquisa (ou sexa, o complemento da cláusula "WHERE"):';
+$strAddToIndex = 'Adicionar ao índice &nbsp;%s&nbsp;coluna(s)';
+$strAddUser = 'Adicionar un novo usuario';
+$strAddUserMessage = 'Usuario adicionado.';
+$strAdministration = 'Administración';
+$strAfter = 'Despois de %s';
+$strAfterInsertBack = 'Voltar';
+$strAfterInsertNewInsert = 'Inserir un novo rexistro';
+$strAfterInsertNext = 'Modificar a fileira seguinte';
+$strAfterInsertSame = 'Voltar para esta páxina';
+$strAllowInterrupt = 'Permitir que se interrumpa a importación no caso de que o guión detecte que está perto do limite. Este podería ser un bon método para importar ficheiros longos, ainda que pode rachar transaccións.';
+$strAllTableSameWidth = 'mostrar todas as tabelas co mesmo ancho?';
+$strAll = 'Todos';
+$strAlterOrderBy = 'Ordenar a tabela por';
+$strAnalyze = 'Analizar';
+$strAnalyzeTable = 'Analizar a tabela';
+$strAnd = 'E';
+$strAndThen = 'e despois';
+$strAngularLinks = 'Ligazóns angulares';
+$strAnIndex = 'Adicionouse un índice a %s';
+$strAny = 'Calquer';
+$strAnyHost = 'Calquer servidor';
+$strAnyUser = 'Calquer usuario';
+$strApproximateCount = 'Pode ser aproximado. Consulte a FAQ 3.11';
+$strAPrimaryKey = 'Adicionouse unha chave primaria a %s';
+$strArabic = 'Árabe';
+$strArmenian = 'Armenio';
+$strAscending = 'Ascendente';
+$strAtBeginningOfTable = 'No comezo da tabela';
+$strAtEndOfTable = 'Ao final da tabela';
+$strAttr = 'Atributos';
+$strAutomaticLayout = 'Distribución automática';
+
+$strBack = 'Voltar';
+$strBaltic = 'Báltico';
+$strBeginCut = 'COMEZA O RECORTE';
+$strBeginRaw = 'COMEZA O TEXTO SIMPLE ("RAW")';
+$strBinary = ' Binario ';
+$strBinaryDoNotEdit = ' Binario - non editar ';
+$strBinaryLog = 'Ficheiro de rexistro binario';
+$strBinLogEventType = 'Tipo de evento';
+$strBinLogInfo = 'Información';
+$strBinLogName = 'Nome do ficheiro de rexistro';
+$strBinLogOriginalPosition = 'Posición orixinal';
+$strBinLogPosition = 'Posición';
+$strBinLogServerId = 'ID do servidor';
+$strBookmarkAllUsers = 'Permitir que calquer usuario poida acceder a este marcador';
+$strBookmarkCreated = 'Creouse o marcador %s';
+$strBookmarkDeleted = 'Eliminouse o marcador.';
+$strBookmarkLabel = 'Nome';
+$strBookmarkQuery = 'A procura de SQL foi gardada';
+$strBookmarkReplace = 'Substituir un marcador xa existente que ten o mesmo nome';
+$strBookmarkThis = 'Gardar esta procura de SQL';
+$strBookmarkView = 'Só visualizar';
+$strBrowseDistinctValues = 'Examinar valores claramente distintos';
+$strBrowseForeignValues = 'Visualizar valores alleos';
+$strBrowse = 'Visualizar';
+$strBufferPoolActivity = 'Actividade da reserva da memoria intermedia';
+$strBufferPool = 'Reserva da memoria intermedia';
+$strBufferPoolUsage = 'Uso da reserva da memoria intermedia';
+$strBufferReadMisses = 'Fallos de lectura';
+$strBufferReadMissesInPercent = 'Fallos de lectura en %';
+$strBufferWriteWaits = 'Esperas para escreber';
+$strBufferWriteWaitsInPercent = 'Esperas para escreber en %';
+$strBulgarian = 'Búlgaro';
+$strBusyPages = 'Páxinas ocupadas';
+$strBzip = 'comprimido no formato "bzip"';
+
+$strCalendar = 'Calendario';
+$strCancel = 'Cancelar';
+$strCanNotLoadExportPlugins = 'Non se deron carregado as extensións de exportación. Verifique a súa instalación!';
+$strCanNotLoadImportPlugins = 'Non se puideron importar as extensións - Comprobe a súa instalación!';
+$strCannotLogin = 'Non se dá conectado co servidor de MySQL';
+$strCantLoad = 'Non se pode carregar a extensión %s.<br />Comprobe a configuración do PHP.';
+$strCantLoadRecodeIconv = 'Non se puido carregar iconv ou precísase da extensión recode para a conversión do charset. Configure o php para que se poidan usar estas extensións ou indique que non se use a conversión de charset en phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Non se pode facer que este índice sexa PRIMARIO!';
+$strCantUseRecodeIconv = 'Non se puido usar nen iconv nen libiconv nen a función recode_stringf mentres haxa extensións por carregar. Comprobe a súa configuración do php.';
+$strCardinality = 'Cardinalidade';
+$strCaseInsensitive = 'sen distinguir maiúsculas de minúsculas';
+$strCaseSensitive = 'distinguindo maiúsculas de minúsculas';
+$strCentralEuropean = 'Centroeuropeu';
+$strChangeCopyModeCopy = '... manter o anterior.';
+$strChangeCopyMode = 'Crear un utilizador novo cos mesmos privilexios e...';
+$strChangeCopyModeDeleteAndReload = ' ... eliminar o anterior das tabelas de utilizadores e recarregar os privilexios despóis.';
+$strChangeCopyModeJustDelete = ' ... eliminar o anterior das tabelas de utilizadores.';
+$strChangeCopyModeRevoke = ' ... retirar-lle todos os privilexios activos ao anterior e eliminalo despóis.';
+$strChangeCopyUser = 'Modificar a información de acceso (login) / Copiar utilizador';
+$strChangeDisplay = 'Escolla o campo que se há de mostrar';
+$strChange = 'Mudar';
+$strChangePassword = 'Trocar o contrasinal';
+$strCharset = 'Conxunto de caracteres';
+$strCharsetOfFile = 'Conxunto de caracteres do ficheiro:';
+$strCharsetsAndCollations = 'Conxuntos de caracteres e Ordes alfabéticas';
+$strCharsets = 'Conxuntos de caracteres';
+$strCheckAll = 'Marcá-los todos';
+$strCheck = 'Comprobar';
+$strCheckOverhead = 'Exceso na comprobación';
+$strCheckPrivs = 'Comprobar os privilexios';
+$strCheckPrivsLong = 'Comprobar os privilexios da base de datos &quot;%s&quot;.';
+$strCheckTable = 'Verificar a tabela';
+$strChoosePage = 'Escolla unha páxina para modificar';
+$strColComFeat = 'Mostrando os comentarios das columnas';
+$strCollation = 'Orde alfabética';
+$strColumnNames = 'Nomes das Columnas';
+$strColumnPrivileges = 'Privilexios proprios de columna';
+$strCommand = 'Comando';
+$strComment = 'Comentario';
+$strComments = 'Comentarios';
+$strCompatibleHashing = 'Compatíbel co MySQL&nbsp;4.0';
+$strCompleteInserts = 'Insercións completas';
+$strCompression = 'Compresión';
+$strCompressionWillBeDetected = 'A compresión do ficheiro importado detectarase automaticamente de: %s';
+$strConfigDefaultFileError = 'Non se puido carregar a configuración desde: "%1$s"';
+$strConfigFileError = 'phpMyAdmin non puido ler o seu ficheiro de configuración<br/>Isto podería deberse a que php atopou un erro nel ou a que php non puido atopar o ficheiro.<br/>Invoque o ficheiro de configuración directamente mediante o vínculo que hai máis abaixo e lea a mensaxe de erro de php que receba. Na maioría dos casos simplesmente faltan unha aspa ou un ponto e vírcula <br/>Se recebe unha páxina en branco é que todo está ben.';
+$strConfigureTableCoord = 'Configure as coordenadas da tabela %s';
+$strConnectionError = 'Non se pode conectar: os axustes non son válidos.';
+$strConnections = 'Conexións';
+$strConstraintsForDumped = 'Limitacións para os volcados das tabelas';
+$strConstraintsForTable = 'Limitacións para a tabela';
+$strControluserFailed = 'Fallou a conexión para controluser tal e como se define na súa configuración.';
+$strCookiesRequired = 'A partir de aqui debe permitir cookies.';
+$strCopy = 'Copiar';
+$strCopyDatabaseOK = 'A base de dastos %s copiouse para %s';
+$strCopyTable = 'Copiar a tabela a (base_de_datos<b>.</b>tabela):';
+$strCopyTableOK = 'A tabela \$table copiouse para \$new_name.';
+$strCopyTableSameNames = 'Non se pode copiar unha tabela sobre si mesma';
+$strCouldNotKill = 'phpMyAdmin foi incapaz de finalizar o fío %s. Probablemente xa está fechado.';
+$strCreate = 'Crear';
+$strCreateDatabaseBeforeCopying = 'CREAR BASE DE DATOS antes de copiar';
+$strCreateIndex = 'Crear un índice en&nbsp;%s&nbsp;colunas';
+$strCreateIndexTopic = 'Crear un novo índice';
+$strCreateNewDatabase = 'Crear unha nova base de datos';
+$strCreateNewTable = 'Crear unha tabela nova na base de datos %s';
+$strCreatePage = 'Crear unha páxina nova';
+$strCreatePdfFeat = 'Creación de PDFs';
+$strCreateRelation = 'Crear relación';
+$strCreateTable = 'Crear tabelas';
+$strCreateUserDatabase = 'Base de datos para o usuario';
+$strCreateUserDatabaseName = 'Crear unha base de datos co mesmo nome e conceder todos os privilexios';
+$strCreateUserDatabaseNone = 'Nengunha';
+$strCreateUserDatabaseWildcard = 'Conceder todos os privilexios para o nome con comodíns (username\_%)';
+$strCreationDates = 'Datas de creación/actualización/comprobación';
+$strCriteria = 'Criterio';
+$strCroatian = 'Croata';
+$strCSV = 'CSV';
+$strCyrillic = 'Cirílico';
+$strCzech = 'Checo';
+$strCzechSlovak = 'Checo-eslovaco';
+
+$strDanish = 'Dinamarqués';
+$strDatabase = 'Base de Datos';
+$strDatabaseEmpty = 'O nome da base de datos non existe!';
+$strDatabaseExportOptions = 'Opcións de exportación da base de datos';
+$strDatabaseHasBeenCreated = 'Creouse a base de datos %1$s.';
+$strDatabaseHasBeenDropped = 'Eliminouse a base de datos %s.';
+$strDatabases = 'Bases de Datos';
+$strDatabasesDropped = 'Elimináronse %s bases de datos sen problemas.';
+$strDatabasesStatsDisable = 'Deshabilitar as estatísticas';
+$strDatabasesStatsEnable = 'Habilitar as estatísticas';
+$strDatabasesStats = 'Estatísticas das bases de datos';
+$strDatabasesStatsHeavyTraffic = 'Nota: De habilitar as estatísticas da base de datos, ocasionará que se produza un tráfico denso entre o servidor web e o de MySQL.';
+$strData = 'Datos';
+$strDataDict = 'Dicionario de datos';
+$strDataOnly = 'Só os datos';
+$strDataPages = 'Páxinas con datos';
+$strDBComment = 'Comentario da base de datos: ';
+$strDBCopy = 'Copiar a base de datos para';
+$strDbIsEmpty = 'Parece ser que a táboa está baleira!';
+$strDbPrivileges = 'Privilexios proprios de base de datos';
+$strDBRename = 'Mudar o nome da base de datos para';
+$strDbSpecific = 'específico da base de datos';
+$strDefaultEngine = '%s é o motor de armacenamento predefinido neste servidor de MySQL.';
+$strDefault = 'Padrón';
+$strDefaultValueHelp = 'Para os valores por omisión, introduza un único valor, sen escapalo con barras ou aspas e usando este formato: a';
+$strDefragment = 'Tabela de defragmentación';
+$strDelayedInserts = 'Usar insercións demoradas';
+$strDeleteAndFlushDescr = 'Este é o modo máis limpo, mais pode que recarregar os privilexios leve un pouco de tempo.';
+$strDeleteAndFlush = 'Eliminar os usuarios e recarregar os privilexios a continuación.';
+$strDeleted = 'Rexistro eliminado';
+$strDelete = 'Eliminar';
+$strDeleteNoUsersSelected = 'Non se seleccionaron utilizadores para eliminar!';
+$strDeleteRelation = 'Eliminar relación';
+$strDeleting = 'A eliminar %s';
+$strDelimiter = 'Delimitador';
+$strDelOld = 'Esta páxina ten referencias a tabelas que xa non existen. Quere eliminar esas referencias?';
+$strDescending = 'Descendente';
+$strDescription = 'Descrición';
+$strDesigner = 'Deseñador';
+$strDesignerHelpDisplayField = 'O campo que se mostra aparece en rosa. Para indicar que un campo se seleccione ou non como o campo a mostrar, clique na icona "Escoller o campo a mostrar" e depois no nome do campo apropiado.';
+$strDetails = 'Detalles...';
+$strDictionary = 'dicionario';
+$strDirectLinks = 'Ligazóns directas';
+$strDirtyPages = 'Páxinas suxas';
+$strDisabled = 'Desactivado';
+$strDisableForeignChecks = 'Desabilitar as comprobacións de chaves exteriores';
+$strDisplayFeat = 'Mostrar as características';
+$strDisplayOrder = 'Mostrar en orde:';
+$strDisplayPDF = 'Mostrar o esquema PDF';
+$strDoAQuery = 'Faga unha "procura por exemplo" (o comodín é "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentación';
+$strDoYouReally = 'Seguro? ';
+$strDropDatabaseStrongWarning = 'Está a piques de DESTRUIR unha base de datos inteira!';
+$strDrop = 'Eliminar';
+$strDropUsersDb = 'Eliminar as bases de datos que teñan os mesmos nomes que os usuarios.';
+$strDumpingData = 'A extrair datos da tabela';
+$strDumpSaved = 'Gardouse o volcado no ficheiro %s.';
+$strDumpXRows = 'Pór %s fileiras a partir da fileira %s.';
+$strDynamic = 'dinámico';
+
+$strEdit = 'Modificar';
+$strEditPDFPages = 'Editar as páxinas PDF';
+$strEditPrivileges = 'Modificar privilexios';
+$strEffective = 'Efectivo';
+$strEmpty = 'Borrar';
+$strEmptyResultSet = 'MySQL retornou un conxunto vacío (ex. cero rexistros).';
+$strEnabled = 'Activado';
+$strEncloseInTransaction = 'Incluir a exportación nunha transacción';
+$strEndCut = 'FIN DO RECORTE';
+$strEnd = 'Fin';
+$strEndRaw = 'FIN DO TEXTO SIMPLE ("RAW")';
+$strEngineAvailable = '%s está disponíbel neste servidor de MySQL.';
+$strEngineDisabled = '%s foi desactivado neste servidor de MySQL.';
+$strEngines = 'Motores';
+$strEngineUnsupported = 'Este servidor de MySQL non acepta o motor de armacenamento %s.';
+$strEnglish = 'Inglés';
+$strEnglishPrivileges = ' Nota: os nomes de privilexios do MySQL están en inglés';
+$strError = 'Erro';
+$strErrorInZipFile = 'Erro no ficheiro ZIP:';
+$strErrorRelationAdded = 'Erro: non se engadiu a relación.';
+$strErrorRelationExists = 'Erro: xa existe unha relación.';
+$strErrorRenamingTable = 'Erro ao mudarlle o nome á tabela %1$s para %2$s';
+$strErrorSaveTable = 'Erro ao gardar as coordenadas para Deseñador.';
+$strEscapeWildcards = 'Os caracteres comodín _ e % deberíanse escapar con \ para podelos usar literalmente';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonio';
+$strEvent = 'Evento';
+$strEvents = 'Acontecementos';
+$strExcelEdition = 'Edición mediante MS-Excel';
+$strExecuteBookmarked = 'Efectuar a procura gardada';
+$strExplain = 'Explicar SQL';
+$strExport = 'Exportar';
+$strExportImportToScale = 'Exportar/Importar a escala';
+$strExportMustBeFile = 'Gardouse nun ficheiro o tipo de exportación seleccionada!';
+$strExtendedInserts = 'Insercións extendidas';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Tentativas falidas';
+$strField = 'Campo';
+$strFieldHasBeenDropped = 'Eliminouse o campo %s';
+$strFieldInsertFromFileTempDirNotExists = 'Erro ao mover o ficheiro enviado. Consulte FAQ 1.11';
+$strFields = 'Campos';
+$strFieldsEnclosedBy = 'Os campos delimítanse con';
+$strFieldsEscapedBy = 'Os campos escápanse con';
+$strFieldsTerminatedBy = 'Os campos rematan por';
+$strFileAlreadyExists = 'O ficheiro %s xa existe no servidor - escolla outro nome ou seleccione a opción de eliminar.';
+$strFileCouldNotBeRead = 'Non se puido ler o ficheiro';
+$strFileNameTemplateDescriptionDatabase = 'nome da base de datos';
+$strFileNameTemplateDescription = 'Este valor interprétase utilizando %1$sstrftime%2$s, de maneira que pode utilizar cadeas de formato de hora. Produciranse transformacións en consecuencia: %3$s. O resto do texto ficará como está.';
+$strFileNameTemplateDescriptionServer = 'nome do servidor';
+$strFileNameTemplateDescriptionTable = 'nome da tabela';
+$strFileNameTemplate = 'Modelo para o nome de ficheiro';
+$strFileNameTemplateRemember = 'lembrar o modelo';
+$strFiles = 'Ficheiros';
+$strFileToImport = 'Ficheiro a importar';
+$strFixed = 'fixo';
+$strFlushPrivilegesNote = 'Nota: phpMyAdmin recolle os privilexios dos usuarios directamente das tabelas de privilexios do MySQL. O contido destas tabelas pode diferir dos privilexios que usa o servidor se se levaron a cabo alteracións manuais. Neste caso, debería %svolver a carregar os privilexios%s antes de proseguir.';
+$strFlushQueryCache = 'Limpar a caché da pesquisa';
+$strFlushTable = 'Fechar a tabela ("FLUSH")';
+$strFlushTables = 'Limpar (fechar) todas as tabelas';
+$strFontSize = 'Tamaño da letra';
+$strForeignKeyError = 'Erro ao crear a chave externa en %1$s (comprobe os tipos de datos)';
+$strForeignKeyRelationAdded = 'Engadiuse unha relación cunha CHAVE EXTERNA';
+$strFormat = 'Formato';
+$strFormEmpty = 'Falta un valor no formulario!';
+$strFreePages = 'Páxinas libres';
+$strFullText = 'Textos completos';
+$strFunction = 'Funcións';
+$strFunctions = 'Funcións';
+
+$strGenBy = 'Xerado por';
+$strGeneralRelationFeat = 'Características xerais das relacións';
+$strGeneratePassword = 'Xerar un contrasinal';
+$strGenerate = 'Xerar';
+$strGenTime = 'Xerado en';
+$strGeorgian = 'Xeorxiano';
+$strGerman = 'Alemán';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Privilexios globais';
+$strGlobalValue = 'Valor global';
+$strGo = 'Executar';
+$strGrantOption = 'Conceder';
+$strGreek = 'Grego';
+$strGzip = 'comprimido no formato "gzip"';
+
+$strHandler = 'Manipulador';
+$strHasBeenAltered = 'foi alterado.';
+$strHaveToShow = 'Ten que escoller polo menos unha columna para mostrar';
+$strHebrew = 'Hebreu';
+$strHelp = 'Axuda';
+$strHexForBLOB = 'Use hexadecimal para BLOB';
+$strHide = 'Agochar';
+$strHideShowAll = 'Agochalo/Mostralo todo';
+$strHideShowNoRelation = 'Agochar/Mostrar Táboas sen relación';
+$strHome = 'Comezo ("Home")';
+$strHomepageOfficial = 'Páxina Oficial do phpMyAdmin';
+$strHostEmpty = 'O nome do servidor está vacío!';
+$strHost = 'Servidor';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Húngaro';
+
+$strIcelandic = 'Islandés';
+$strId = 'ID';
+$strIdxFulltext = 'Texto completo';
+$strIEUnsupported = 'Internet Explorer non permite esta función.';
+$strIgnoreDuplicates = 'Ignorar as fileiras duplicadas';
+$strIgnore = 'Ignorar';
+$strIgnoreInserts = 'Usar insercións ignoradas';
+$strImportExportCoords = 'Importar/Exportar coordenadas para esquema PDF';
+$strImportFiles = 'Importar ficheiros';
+$strImportFormat = 'Formato do ficheiro importado';
+$strImport = 'Importar';
+$strImportSuccessfullyFinished = 'A importación rematou sen problemas. Executáronse %d procuras.';
+$strIndexes = 'Índices';
+$strIndexesSeemEqual = 'Parece que os índice %1$s e %2$s son iguais e posibelmente poderíase eliminar un deles';
+$strIndexHasBeenDropped = 'Eliminouse o índice %s';
+$strIndex = 'Índice';
+$strIndexName = 'Nome do índice&nbsp;:';
+$strIndexType = 'Tipo de índice&nbsp;:';
+$strIndexWarningTable = 'Problemas cos índices da tabela `%s`';
+$strInnoDBAutoextendIncrementDesc = ' Tamaño do incremento para extender o tamaño dun espazo de tabela cando se encha.';
+$strInnoDBAutoextendIncrement = 'Incremento de Autoextend';
+$strInnoDBBufferPoolSizeDesc = 'Tamaño da memoria intermedia que usa InnoDB para gardar provisoriamente os datos e índices das súas tabelas.';
+$strInnoDBBufferPoolSize = 'Tamaño da reserva da memoria intermedia';
+$strInnoDBDataFilePath = 'Ficheiros de datos';
+$strInnoDBDataHomeDirDesc = 'Parte común do camiño do directorio que ten todos os ficheiros de datos de innoDB.';
+$strInnoDBDataHomeDir = 'Directorio base dos datos';
+$strInnoDBPages = 'páxinas';
+$strInnodbStat = 'Estado de InnoDB';
+$strInsecureMySQL = 'O seu ficheiro de configuración contén axustes (en concreto, o usuário root non ten contrasinal) que corresponden coa conta con todos os privilexios que MySQL fai por omisión. O seu servidor de MySQL está a rodar con esta configuración, está aberto a intrusións e habería que mirar de solucionar este problema de seguranza.';
+$strInsertAsNewRow = 'Inserir unha nova columna';
+$strInsertedRowId = 'ID da fileira inserida: %1$d';
+$strInsert = 'Inserir';
+$strInterface = 'Interface';
+$strInternalAndForeign = 'Non se precisas unha relación interna cando existe unha CHAVE EXTERNA correspondente.';
+$strInternalRelationAdded = 'Engadiuse relación interna';
+$strInternalRelations = 'Relacións internas';
+$strInUse = 'en uso';
+$strInvalidAuthMethod = 'Na configuración indicouse un método de autenticación non válido::';
+$strInvalidColumnCount = 'O número de columnas ten que ser maior de cero';
+$strInvalidColumn = 'Especificouse unha columna non válida (%s)!';
+$strInvalidCSVFieldCount = 'Contaxe de campos non válida na entrada de CSV na liña %d.';
+$strInvalidCSVFormat = 'Formato de entrada de CSV non válido na liña %d.';
+$strInvalidCSVParameter = 'Parámetro non válido para a importación de CSV: %s';
+$strInvalidDatabase = 'Base de datos non válida';
+$strInvalidFieldAddCount = 'Ten que engadir un campo polo menos';
+$strInvalidFieldCount = 'A tabela ha de ter, polo menos, un campo.';
+$strInvalidLDIImport = 'Esta extensión non é capaz de realizar importacións comprimidas!';
+$strInvalidRowNumber = '%d non é un número de fileira válido.';
+$strInvalidServerHostname = 'Nome de servidor non válido para o servidor %1$s. Revise a configuración.';
+$strInvalidServerIndex = 'Índice do servidor non válido: "%s"';
+$strInvalidTableName = 'Non se admite este nome de tabela.';
+
+$strJapanese = 'Xaponés';
+$strJoins = 'Unións';
+$strJumpToDB = 'Saltar à base de datos &quot;%s&quot;.';
+$strJustDeleteDescr = 'Os usuarios &quot;eliminados&quot; poderán ainda acceder ao servidor como sempre atá que se recarreguen os privilexios.';
+$strJustDelete = 'Elimine só os usuarios das tabelas de privilexios.';
+
+$strKeepPass = 'Non mude o contrasinal';
+$strKeyCache = 'caché da chave';
+$strKeyname = 'Nome chave';
+$strKill = 'Matar (kill)';
+$strKnownExternalBug = 'A función %s vese afectada por un erro descoñecido; consulte %s';
+$strKorean = 'Coreano';
+
+$strLandscape = 'Horizontal';
+$strLanguage = 'Lingua';
+$strLanguageUnknown = 'Linguaxe descoñecida: %1$s.';
+$strLatchedPages = 'Páxinas fechadas';
+$strLatexCaption = 'Título da tabela';
+$strLatexContent = 'Contido da tabela __TABLE__';
+$strLatexContinuedCaption = 'Título da tabela continuado';
+$strLatexContinued = '(continuado)';
+$strLatexIncludeCaption = 'Incluir o título da tabela';
+$strLatexLabel = 'Chave da etiqueta';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Estrutura da tabela __TABLE__';
+$strLatvian = 'Letonio';
+$strLDI = 'CSV utilizando LOAD DATA';
+$strLDILocal = 'Utilice a palabra chave LOCAL';
+$strLengthSet = 'Tamaño/Definir*';
+$strLimitNumRows = 'Número de rexistros por páxina:';
+$strLinesTerminatedBy = 'As liñas rematan por';
+$strLinkNotFound = 'Non se atopou o vínculo';
+$strLinksTo = 'Vincúlase con';
+$strLithuanian = 'Lituano';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Localización do arquivo de texto';
+$strLogin = 'Entrada (login)';
+$strLoginInformation = 'Información sobre o acceso (login)';
+$strLogout = 'Sair';
+$strLogPassword = 'Contrasinal:';
+$strLogServer = 'Servidor';
+$strLogUsername = 'Nome de usuario:';
+$strLongOperation = 'Esta operación pode que leve moito tempo. Procésase igual?';
+
+$strMaxConnects = 'conexións simultáneas máximas';
+$strMaximalQueryLength = 'Lonxitude máxima da procura creada';
+$strMaximumSize = 'Tamaño máximo: %s%s';
+$strMbExtensionMissing = 'Non se atopou a extensión mbstring PHP e parece que está a usar un conxunto de caracteres multibyte. Sen a extensión mbstring, o phpMyAdmin é incapaz de partir cadeas correctamente e pode provocar resultados inesperados.';
+$strMbOverloadWarning = 'Ten activada mbstring.func_overload na configuración do PHP. Esta opción é incompatíbel co phpMyAdmin e podería ocasionar danos nos datos';
+$strMIME_available_mime = 'Tipos MIME disponíbeis';
+$strMIME_available_transform = 'Transformacións disponíbeis';
+$strMIME_description = 'Descrición';
+$strMIME_MIMEtype = 'Tipo MIME';
+$strMIME_nodescription = 'Non existe descrición desta transformación.<br />Pergunte-lle ao autor que é o que fai %s.';
+$strMIME_transformation_note = 'Para unha lista das opcións de transformación disponíbeis e as súas transformacións de tipos MIME, faga clic sobre %sdescricións de transformacións%s';
+$strMIME_transformation_options_note = 'Introduza os valores das opcións de transformación usando este formato:\'a\', 100, b,\'c\'...<br />Se necesita introducir unha barra para trás ("\") ou aspas simples ("\'") entre estes valores, preceda-os de barra para trás (por exemplo \'\\\\xyz\' ou \'a\\\'b\').';
+$strMIME_transformation_options = 'Opcións de transformación';
+$strMIME_transformation = 'Transformación do navegador';
+$strMIMETypesForTable = 'TIPOS MIME PARA A TABELA';
+$strMIME_without = 'Os tipos MIME en cursiva non contan cunha función de transformación separada';
+$strModifications = 'Gardáronse as modificacións';
+$strModifyIndexTopic = 'Modificar un índice';
+$strModify = 'Modificar';
+$strMoveMenu = 'Mover Menú';
+$strMoveTable = 'Mover a tabela a (base_de_datos<b>.</b>tabela):';
+$strMoveTableOK = 'Moveuse a tabela %s para %s.';
+$strMoveTableSameNames = 'Non se pode mover unha tabela sobre si mesma';
+$strMultilingual = 'multilíngüe';
+$strMyISAMDataPointerSizeDesc = 'O tamaño por omisión do punteiro de datos en bytes; usarase con CREATE TABLE para tabelas MyISAM cando non se especifique a opción MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Tamaño do punteiro de datos';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Se o ficheiro temporario usado para a creación rápida dun índice de MyISAM for máis grande que se se usar o caché de chaves na cantidade que se especifique aquí, preferir o método da caché de chaves.';
+$strMyISAMMaxExtraSortFileSize = 'Tamaño máximo dos ficheiros temporarios no momento de crear índices';
+$strMyISAMMaxSortFileSizeDesc = 'O tamaño máximo do ficheiro temporario que se lle permite utilizar a MySQL no momento de recrear un índice MyISAM (durante REPAIR TABLE, ALTER TABLE, ou LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Tamaño máximo dos ficheiros de ordenación temporarios';
+$strMyISAMRecoverOptionsDesc = 'O modo de recuperación automática de tabelas MyISAM escaralladas, tal e como se configura na opción de inicio do servidor --myisam-recover.';
+$strMyISAMRecoverOptions = 'Modo de recuperación automática';
+$strMyISAMRepairThreadsDesc = 'Se este valor é maior que 1, os índices das tabelas MyISAM créanse en paralelo (cada índice no seu propio fío) durante o proceso Reparar ordenando.';
+$strMyISAMRepairThreads = 'Reparar os fíos';
+$strMyISAMSortBufferSizeDesc = 'Cantidade de memoria intermedia que se reserva ao ordenar os índices MyISAM durante unha instrución REPAIR TABLE ou ao crear índices con CREATE INDEX ou ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Tamaño da memoria intermedia de ordenación';
+$strMySQLCharset = 'Código de caracteres (Charset) MySQL';
+$strMysqlClientVersion = 'Versión do cliente de MySQL';
+$strMySQLConnectionCollation = 'Codificación de caracteres (Collation) da conexión de MySQL';
+$strMysqlLibDiffersServerVersion = 'A versión %s da súa libraría de PHP MySQL difire da versión %s do seu servidor de MySQL. Isto pode ocasionar un comportamento impredicíbel.';
+$strMySQLSaid = 'Mensaxes do MySQL: ';
+$strMySQLShowProcess = 'Mostrar os procesos';
+
+$strName = 'Nome';
+$strNext = 'Seguinte';
+$strNoActivity = 'Non se rexistrou actividade nengunha desde hai %s segundos ou máis. Terá que entrar de novo';
+$strNoDatabases = 'Non hai nengunha base de datos';
+$strNoDatabasesSelected = 'Non hai nengunha base de datos seleccionada.';
+$strNoDataReceived = 'Non se recibiron datos para importar. Ou ben non se enviou o ficheiro ou ben o seu tamaño excede o máximo permitido pola súa configuración de PHP. Consulte FAQ 1.16.';
+$strNoDescription = 'sen descrición';
+$strNoDetailsForEngine = 'Non se conta con información de estado detallada sobre este motor de armacenamento.';
+$strNoDropDatabases = 'Os comandos "Eliminar a base de datos" non están permitidos.';
+$strNoExplain = 'Saltar a explicacion de SQL';
+$strNoFilesFoundInZip = 'Non se atoparon ficheiros dentro do arquivo ZIP!';
+$strNoFrames = 'phpMyAdmin usa-se mellor cun navegador que <b>acepte molduras</b>.';
+$strNoIndex = 'Non se definiu un índice';
+$strNoIndexPartsDefined = 'Non se definiron partes do índice';
+$strNoModification = 'Sen cambios';
+$strNone = 'Nengunha';
+$strNo = 'Non';
+$strNoOptions = 'Este formato non ten opcións';
+$strNoPassword = 'Sen Contrasinal';
+$strNoPermission = 'O servidor web non ten permiso para gardar o ficheiro %s.';
+$strNoPhp = 'sen código PHP';
+$strNoPrivileges = 'Sen Privilexios';
+$strNoRights = 'Non ten direitos suficientes para estar aquí agora!';
+$strNoRowsSelected = 'Non hai fileiras seleccionadas';
+$strNoSpace = 'Non hai espacio para gardar o ficheiro %s.';
+$strNoTablesFound = 'Non se achou nengunha tabela na base de datos';
+$strNoThemeSupport = 'Non ten a funcionalidade dos temas. Comprobe a configuración e/ou os seus temas no directorio %s.';
+$strNotNumber = 'Non é un número!';
+$strNotOK = 'non conforme';
+$strNotSet = 'Non se atopou a tabela <b>%s</b>ou non se indicou en %s';
+$strNoUsersFound = 'Non se achou nengun(s) usuario(s).';
+$strNoValidateSQL = 'Saltarse a validacion de';
+$strNull = 'Nulo';
+$strNumberOfFields = 'Número de campos';
+$strNumberOfTables = 'Número de tabelas';
+$strNumSearchResultsInTable = '%s ocorrencias(s) dentro da tabela <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> ocorrencia(s)';
+$strNumTables = 'Tabelas';
+
+$strOK = 'Conforme';
+$strOpenDocumentSpreadsheet = 'Folla de cálculo Open Document';
+$strOpenDocumentText = 'Texto Open Document';
+$strOpenNewWindow = 'Abrir unha xanela nova co phpMyAdmin';
+$strOperations = 'Operacións';
+$strOperator = 'Operador';
+$strOptimize = 'Optimizar';
+$strOptimizeTable = 'Optimizar a tabela';
+$strOptions = 'Opcións';
+$strOr = 'ou';
+$strOverhead = 'De máis (Overhead)';
+$strOverwriteExisting = 'Eliminar o(s) ficheiro(s) xa existente(s)';
+
+$strPacked = 'Empaquetado';
+$strPageNumber = 'Número de páxina:';
+$strPagesToBeFlushed = 'Páxinas que se eliminarán';
+$strPaperSize = 'Tamaño do papel';
+$strPartialImport = 'Importación parcial';
+$strPartialText = 'Textos parciais';
+$strPartitionDefinition = 'Definición da PARTICIÓN';
+$strPartitioned = 'particionado';
+$strPartitionMaintenance = 'Mentemento da partición';
+$strPartition = 'Partición %s';
+$strPasswordChanged = 'Modificou-se sen problemas o contrasinal de %s.';
+$strPassword = 'Contrasinal';
+$strPasswordEmpty = 'O contrasinal está vacío!';
+$strPasswordHashing = 'Hash do contrasinal';
+$strPasswordNotSame = 'Os contrasinais non son os mesmos!';
+$strPdfDbSchema = 'Esquema da base de datos "%s" - Páxina %s';
+$strPdfInvalidTblName = 'Non existe a tabela "%s".';
+$strPdfNoTables = 'Sen tabelas';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Xera un informe que contén os datos dunha única tabela)';
+$strPDFReportTitle = 'Título do informe';
+$strPerHour = 'por hora';
+$strPerMinute = 'por minuto';
+$strPerSecond = 'por segundo';
+$strPersian = 'Persa';
+$strPhoneBook = 'directorio telefónico';
+$strPhp = 'Crear código PHP';
+$strPHPVersion = 'Versión do PHP';
+$strPleaseSelectPrimaryOrUniqueKey = 'Escolla a chave primaria ou unha chave única';
+$strPmaDocumentation = 'Documentación do phpMyAdmin';
+$strPmaUriError = 'A directiva <tt>$cfg[\'PmaAbsoluteUri\']</tt> DEBE estar asignada no seu ficheiro de configuración.';
+$strPolish = 'Polonés';
+$strPortrait = 'Vertical';
+$strPos1 = 'Inicio';
+$strPrevious = 'Anterior';
+$strPrimaryKeyHasBeenDropped = 'Eliminouse a chave primaria';
+$strPrimaryKeyName = 'O nome da chave primaria debe ser... PRIMARIA';
+$strPrimaryKeyWarning = '("PRIMARIA" <b>debe</b> ser o nome de e <b>só de</b> unha chave primaria)';
+$strPrimary = 'Primaria';
+$strPrint = 'Imprimir';
+$strPrintViewFull = 'Vista previa da impresión (con textos completos)';
+$strPrintView = 'Visualización previa da impresión';
+$strPrivDescAllPrivileges = 'Inclue todos os privilexios a excepción de GRANT (Conceder).';
+$strPrivDescAlter = 'Permite alterar a estrutura das tabelas xa existentes.';
+$strPrivDescAlterRoutine = 'Permite alterar e eliminar rotinas armacenadas.';
+$strPrivDescCreateDb = 'Permite crear novas bases de datos e tabelas.';
+$strPrivDescCreateRoutine = 'Permite crear rotinas armacenadas.';
+$strPrivDescCreateTbl = 'Permite crear tabelas novas.';
+$strPrivDescCreateTmpTable = 'Permite crear tabelas temporais.';
+$strPrivDescCreateUser = 'Permite crear, eliminar e mudar o nome das contas de usuario.';
+$strPrivDescCreateView = 'Permite crear vistas novas.';
+$strPrivDescDelete = 'Permite eliminar datos.';
+$strPrivDescDropDb = 'Permite eliminar bases de datos e tabelas.';
+$strPrivDescDropTbl = 'Permite eliminar tabelas.';
+$strPrivDescEvent = 'Permite configurar acontecementos para o programador de acontecementos';
+$strPrivDescExecute5 = 'Permite executar rotinas armacenadas.';
+$strPrivDescExecute = 'Permite facer correr procedimentos armacenados. Non funciona nesta versión do MySQL.';
+$strPrivDescFile = 'Permite importar e exportar datos desde e para ficheiros.';
+$strPrivDescGrant = 'Permite acrescentar usuarios e privilexios sen recarregar as tabelas de privilexios.';
+$strPrivDescIndex = 'Permite crear e eliminar índices.';
+$strPrivDescInsert = 'Permite inserir e substituir datos.';
+$strPrivDescLockTables = 'Permite bloquear tabelas do fío en uso';
+$strPrivDescMaxConnections = 'Limita o número de conexións novas por hora que pode abrir un usuario.';
+$strPrivDescMaxQuestions = 'Limita o número de procuras por hora que pode enviar un usuario.';
+$strPrivDescMaxUpdates = 'Limita o número de comandos que modifiquen unha tabela ou database por hora que pode executar un usuario.';
+$strPrivDescMaxUserConnections = 'Limita o número de conexións simultáneas que pode ter o utilizador.';
+$strPrivDescProcess = 'Permite ver procesos de todos os usuarios';
+$strPrivDescReferences = 'Non funciona nesta versión do MySQL.';
+$strPrivDescReload = 'Permite recarregar a configuración do servidor e limpar a súa caché.';
+$strPrivDescReplClient = 'Permite-lle ao usuario perguntar onde están os escravos e os masters.';
+$strPrivDescReplSlave = 'Necesario para os escravos de replicación.';
+$strPrivDescSelect = 'Permite gravar datos.';
+$strPrivDescShowDb = 'Permite acceder á listaxe de bases de datos completa';
+$strPrivDescShowView = 'Permite realizar consultas SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Permite apagar o servidor.';
+$strPrivDescSuper = 'Permite conexións, mesmo chegado ao número máximo de conexións. Ven requerido para a maioría das operación administracións, como configurar as variábeis globais ou matar os fíos doutros usuarios.';
+$strPrivDescTrigger = 'Permite crear e eliminar gatillos';
+$strPrivDescUpdate = 'Permite modificar datos.';
+$strPrivDescUsage = 'Sen privilexios.';
+$strPrivileges = 'Privilexios';
+$strPrivilegesReloaded = 'Non houbo problemas ao recarregar os privilexios.';
+$strProcedures = 'Procedementos';
+$strProcesses = 'Procesos';
+$strProcesslist = 'Listaxe dos procesos';
+$strProfiling = 'Análise do desempeño';
+$strProtocolVersion = 'Versión do protocolo';
+$strPutColNames = 'Pór os nomes dos campos na primeira fileira';
+
+$strQBEDel = 'Eliminar';
+$strQBEIns = 'Inserir';
+$strQBE = 'Procurar cun exemplo';
+$strQueryCache = 'caché de procuras';
+$strQueryFrame = 'Xanela de procuras';
+$strQueryOnDb = 'Procura tipo SQL na base de datos <b>%s</b>:';
+$strQueryResultsOperations = 'Operacións de resultados da procura';
+$strQuerySQLHistory = 'Historial de SQL';
+$strQueryStatistics = '<b>Estatística das procuras</b>: Desde que se iniciou, enviáronselle ao servidor %s procuras.';
+$strQueryTime = 'A pesquisa levou %01.4f segundos';
+$strQueryType = 'Tipo de procura';
+$strQueryWindowLock = 'Non escreber sobre esta procura desde fora da xanela';
+
+$strReadRequests = 'Peticións de lectura';
+$strRebuild = 'Reconstruir';
+$strReceived = 'Recibido';
+$strRecommended = 'recomendado';
+$strRecords = 'Rexistros';
+$strReferentialIntegrity = 'Comprobar a integridade das referencias:';
+$strRefresh = 'Refrescar';
+$strRelationalSchema = 'Relational schema';
+$strRelationDeleted = 'Eliminouse a relación';
+$strRelationNotWorking = 'Desactivouse a funcionalidade adicional para o traballo con tabelas vinculadas. Para saber o por que, faga click%saqu&iacute;%s.';
+$strRelationsForTable = 'RELACIÓNS PARA A TABELA';
+$strRelations = 'Relacións';
+$strRelationView = 'Vista das relacións';
+$strReloadingThePrivileges = 'A recarregar os privilexios';
+$strReloadPrivileges = 'Volver a carregar os privilexios';
+$strReload = 'Recarregar';
+$strRemovePartitioning = 'Eliminar particións';
+$strRemoveSelectedUsers = 'Eliminar os usuarios seleccionados';
+$strRenameDatabaseOK = 'Mudou-se-lle o nome á base de datos %s para %s';
+$strRenameTableOK = 'A tabela \$table renomeouse para \$new_name';
+$strRenameTable = 'Renomear a tabela para';
+$strRepair = 'Arranxar';
+$strRepairTable = 'Reparar a tabela';
+$strReplaceNULLBy = 'Substituir NULL por ';
+$strReplaceTable = 'Substituir os datos da tabela polos do ficheiro';
+$strReplication = 'Replicación';
+$strReset = 'Reiniciar';
+$strResourceLimits = 'Limites de recursos';
+$strRestartInsertion = 'Reiniciar inserción con %s fileiras';
+$strReType = 'Reescreber';
+$strRevokeAndDeleteDescr = 'Os usuarios terán ainda o privilexio USAGE até que se recarreguen os privilexios.';
+$strRevokeAndDelete = 'Retirar-lles todos os privilexios activos aos usuarios e eliminá-los a continuación.';
+$strRevokeMessage = 'Retirou-lle os privilexios a %s';
+$strRevoke = 'Revogar';
+$strRomanian = 'Romeno';
+$strRoutineReturnType = 'Tipo de retorno';
+$strRoutines = 'Rutinas';
+$strRowLength = 'Lonxitude da fileira';
+$strRowsAffected = '%1$d fileira(s) afectada(s).';
+$strRowsDeleted = '%1$d fileira(s) eliminada(s).';
+$strRows = 'Fileiras';
+$strRowsFrom = 'fileiras, a comezar da';
+$strRowsInserted = '%1$d fileira(s) inserida(s).';
+$strRowSize = ' Tamaño da fileira ';
+$strRowsModeFlippedHorizontal = 'horizontal (cabezallos rotados)';
+$strRowsModeHorizontal = 'horizontal';
+$strRowsModeOptions = 'en modo %s e repetir os cabezallos de cada %s celas';
+$strRowsModeVertical = 'vertical';
+$strRowsStatistic = 'Estatísticas da Fileira';
+$strRunning = 'a rodar no servidor %s';
+$strRunQuery = 'Enviar esta procura';
+$strRunSQLQuery = 'Efectuar unha procura SQL na base de datos %s';
+$strRunSQLQueryOnServer = 'Executar procura/s SQL no servidor %s';
+$strRussian = 'Ruso';
+
+$strSave = 'Gardar';
+$strSaveOnServer = 'Gardar no servidor no directorio %s';
+$strSavePosition = 'Gardar a posición';
+$strScaleFactorSmall = 'O factor de reducción é demasiado pequeno para que o esquema caiba nunha única páxina';
+$strSearchFormTitle = 'Procurar na base de datos';
+$strSearchInField = 'No campo:';
+$strSearchInTables = 'Dentro da(s) tabela(s):';
+$strSearchNeedle = 'Palabras(s) ou valore(s) a procurar (o comodín é: "%"):';
+$strSearchOption1 = 'polo menos unha das palabras';
+$strSearchOption2 = 'todas as palabras';
+$strSearchOption3 = 'a frase exacta';
+$strSearchOption4 = 'como expresión regular';
+$strSearch = 'Procurar';
+$strSearchResultsFor = 'Procurar os resultados para "<i>%s</i>" %s:';
+$strSearchType = 'Atopar:';
+$strSecretRequired = 'O ficheiro de configuración agora necesita un contrasinal secreto (blowfish_secret).';
+$strSelectADb = 'Seleccione unha base de dados';
+$strSelectAll = 'Seleccionar todo';
+$strSelectBinaryLog = 'Seleccione o ficheiro de rexistro binario que quer ver';
+$strSelectFields = 'Seleccione os campos (mínimo 1)';
+$strSelectForeignKey = 'Escoller unha Chave Externa';
+$strSelectNumRows = 'a procurar';
+$strSelectReferencedKey = 'Seleccionar a chave referida';
+$strSelectTables = 'Seleccionar tabelas';
+$strSend = 'Enviar <i>(gravar nun ficheiro)</i><br />';
+$strSent = 'Enviado';
+$strServerChoice = 'Escolla de Servidor';
+$strServerNotResponding = 'O servidor non está a responder';
+$strServer = 'Servidor';
+$strServers = 'Servidores';
+$strServerStatusDelayedInserts = 'Insercións demoradas';
+$strServerStatus = 'Información sobre o runtime';
+$strServerStatusUptime = 'Este servidor de MySQL leva funcionando %s. Iniciouse às %s.';
+$strServerTabVariables = 'Variábeis';
+$strServerTrafficNotes = '<b>Tráfico do servidor</b>: Estas tabelas mostran as estatísticas do tráfico da rede neste servidor de MySQL desde que se iniciou.';
+$strServerVars = 'Variábeis e configuración do servidor';
+$strServerVersion = 'Versión do servidor';
+$strSessionStartupErrorGeneral = 'Non se pode iniciar sesión sen erros. Comproble os erros que aparecen no ficheiro de rexistro do seu servidor de PHP ou web e cofnigure a súa instalación PHP adecuadamente.';
+$strSessionValue = 'Valor da sesión';
+$strSetEnumVal = 'Se o tipo de campo é "enum" ou "set", introduza os valores usando este formato: \'a\',\'b\',\'c\'...<br />Se precisar pór unha barra invertida (" \ ") ou aspas simples (" \' ") entre estes valores, preceda a barra e as aspas de barras invertidas (por exemplo \'\\\\xyz\' ou \'a\\\'b\').';
+$strShowAll = 'Ver todos os rexistros';
+$strShowColor = 'Mostrar a cor';
+$strShowDatadictAs = 'Formato do dicionario de datos';
+$strShowFullQueries = 'Mostrar as procuras completas';
+$strShowGrid = 'Mostrar a grella';
+$strShowHideLeftMenu = 'Mostrar/Agochar o menú esquerdo';
+$strShowingBookmark = 'A mostrar o marcador';
+$strShowingPhp = 'Mostrar como código PHP';
+$strShowingRecords = 'A mostrar rexistros ';
+$strShowingSQL = 'Mostrar procura SQL';
+$strShow = 'Mostrar';
+$strShowOpenTables = 'Mostrar as tabelas abertas';
+$strShowPHPInfo = 'Mostrar información sobre o PHP';
+$strShowSlaveHosts = 'Mostrar os servidores escravos';
+$strShowSlaveStatus = 'Mostrar o estado dos escravos';
+$strShowStatusBinlog_cache_disk_useDescr = 'Número de transaccións que utilizaron o caché do rexistro binario mais que excederon o valor de binlog_cache_size e utilizaron un ficheiro temporal para armacenar instrucións para a transacción.';
+$strShowStatusBinlog_cache_useDescr = 'Número de transaccións que utilizaron o caché do rexistro binario.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Número de tabelas temporais no disco creadas automaticamente polo servidor ao executar as instrucións. Se Created_tmp_disk_tables é grande; pode que queira incrementar o valor de tmp_table_size para que as tabelas temporais se baseen na memoria en vez de no disco.';
+$strShowStatusCreated_tmp_filesDescr = 'Cantos ficheiros temporais creou mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'Número de tabelas temporais na memoria creadas automaticamente polo servidor ao executar instrucións.';
+$strShowStatusDelayed_errorsDescr = 'Número de fileiras escritas con INSERT DELAYED que sofriron algún erro (probabelmente unha chave duplicada).';
+$strShowStatusDelayed_insert_threadsDescr = 'Número de fíos de manipulación INSERT DELAYED en uso. Cada tabela diferente na que se utiliza INSERT DELAYED recebe o seu propio fío.';
+$strShowStatusDelayed_writesDescr = 'Número de fileiras INSERT DELAYED escritas.';
+$strShowStatusFlush_commandsDescr = 'Número de instrucións FLUSH executadas.';
+$strShowStatusHandler_commitDescr = 'Número de instrucións COMMIT internas.';
+$strShowStatusHandler_deleteDescr = 'Número de veces que se eliminou unha fileira dunha tabela.';
+$strShowStatusHandler_discoverDescr = 'O servidor de MySQL pódelle perguntar ao motor de armacenamento NDB Cluster se sabe dunha tabela cun nome dado. Isto chámase descobrimento. Handler_discovery indica o número de veces que se descobriron tabelas.';
+$strShowStatusHandler_read_firstDescr = 'Número de veces que se leu a primeira entrada dun índice. Se é alto, tamén suxire que o servidor está realizando un monte de de exames de índice completos; por exemplo, SELECT col FROM algo, supoñendo que col está indexada.';
+$strShowStatusHandler_read_keyDescr = 'Número de peticións para ler unha fileira baseadas nunha chave. Se é alto, é unha boa indicación de que as procuras e tabelas están ben indexadas.';
+$strShowStatusHandler_read_nextDescr = 'Número de peticións para ler a seguinte fileira na orde da chave. Isto increméntase se está procurando unha columna de índice cunha limitación de rango ou se está a examinar un índice.';
+$strShowStatusHandler_read_prevDescr = 'Número de peticións para ler a fileira anterior na orde da chave. Este método de lectura utilízase sobre todo para optimizar ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Número de peticións para ler unha fileira baseadas nunha posición fixa. Isto é alto se está a realizar moitas procuras que requiren ordenar o resultado. Posibelmente terá un monte de procuras que esixen que MySQL examine tabelas completas ou ten unións que non usan as chaves apropiadamente.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Número de peticións para ler a seguinte fileira no ficheiro de datos. Isto é alto se está a realizar moitos exames de tabelas. Normalmente suxire que as tabelas non están indexadas apropiadamente ou que as súas procuras non están escritas para aproveitar os índices de que dispón.';
+$strShowStatusHandler_rollbackDescr = 'Número de instrucións de ROLLBACK ("desfacer") interno.';
+$strShowStatusHandler_updateDescr = 'Número de peticións para actualizar unha fileira nunha tabela.';
+$strShowStatusHandler_writeDescr = 'Número de peticións para inserir un ficheiro nunha tabela.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Número de páxinas que conteñen datos (suxos ou limpos).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Número de páxinas actualmente suxas.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Número de páxinas do buffer que se pediu que se limpasen.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Número de páxinas libres.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Número de páxinas con seguro no buffer InnoDB buffer. Estas páxinas están actualmente a ser lidas ou escritas ou non se poden limpar ou eliminar por algunha outra razón.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'O número de páxinas ocupadas porque se destinan a reserva administrativa, tais como bloqueos de fileiras ou o índice hash adaptativo. Este valor tamén se pode calcular así: Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Tamaño total do búfer, en páxinas.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Número de pré-lecturas "aleatorias" iniciadas por InnoDB. Isto acontece cando unha procura vai examinar unha porción grande dunha tabela mais en orde aleatoria.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Número de pre-lecturas secuenciais iniciadas por innoDB. Isto acontece cando InnoDB realiza un exame secuencial completo dunha tabela.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Número de peticións de lectura lóxicas feitas por InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Número de lecturas lóxicas que InnoDB non puido satisfacer do búfer e tivo que efectuar por medio de lecturas dunha única páxina.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalmente, escríbese no búfer de InnoDB como tarefa de fondo. Porén, de se precisar ler ou crear unha páxina e non haber páxinas limpas disponíbeis, hai que agardar a que se limpen. Este contador vai contando cantas veces hai que esperar. Se o tamaño do búfer é o apropiado, este valor debería ser pequeno.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Número de veces que se escribiu no búfer InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Número de operacións fsync() até o momento.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Número actual de operacións fsync() pendentes.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Número actual de lecturas pendentes.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Número actual de escritas pendentes.';
+$strShowStatusInnodb_data_readDescr = 'Cantidade de datos lida até o momento, en bytes.';
+$strShowStatusInnodb_data_readsDescr = 'Número total de lecturas de datos.';
+$strShowStatusInnodb_data_writesDescr = 'Número total de escritas de datos.';
+$strShowStatusInnodb_data_writtenDescr = 'Cantidade de datos escrita até o momento, en bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Número de escritas duplas realizadas e número de páxinas escritas con este propósito.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Número de escritas duplas realizadas e número de páxinas escritas con este propósito.';
+$strShowStatusInnodb_log_waitsDescr = 'Número de esperas debidas a que o búfer do rexistro é demasiado pequeno e houbo que agardar até que se limpase para continuar.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Número de peticións de escrita no rexistro.';
+$strShowStatusInnodb_log_writesDescr = 'Número de escritas físicas no ficheiro de rexistro.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Número de escritas fsyncss feitas no ficheiro de rexistro.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Número de fsyncs do ficheiro de rexistro pendentes.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Escritas no ficheiro de rexistro pendentes.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Número de bytes escritos no ficheiro de rexistro.';
+$strShowStatusInnodb_pages_createdDescr = 'Número de páxinas creadas.';
+$strShowStatusInnodb_page_sizeDescr = 'O tamaño de páxina InnoDB incluído (por omisión 16KB). Moitos valores cóntanse en páxinas: o tamaño da páxina permite que se convirtan doadamente en bytes.';
+$strShowStatusInnodb_pages_readDescr = 'Número de páxinas lidas.';
+$strShowStatusInnodb_pages_writtenDescr = 'Número de páxinas escritas.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Número de bloqueo de fileiras polos que se está a aguardar agora mesmo.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Tempo que, de media, leva adquirir un bloqueo sobre unha fileira, en milisegundos.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Tempo total empregado na adquisición de bloqueos sobre as fileiras, en milisegundos.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Tempo máximo en adquirir un bloqueo de fileira, en milisegundos.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Número de veces que houbo que agardar polo bloqueo dunha fileira.';
+$strShowStatusInnodb_rows_deletedDescr = 'Número de fileiras eliminadas das tabelas InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'Número de fileiras inseridas nas tabelas InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'Número de fileiras lidas das tabelas InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'Número de fileiras actualizadas en tabelas InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Número de bloques chave na caché de chaves que se mudaron mais que ainda non se limparon para o disco. Antes era Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Número de bloques sen utilizar na caché de chaves. Pode utilizar este valor para determinar canta caché de chave está en uso.';
+$strShowStatusKey_blocks_usedDescr = 'Número de bloques utilizados na caché de chaves. Este valor é unha referencia superior que indica o número máximo de bloques que se teñen empregado.';
+$strShowStatusKey_read_requestsDescr = 'Número de peticións para ler un bloque chave da caché.';
+$strShowStatusKey_readsDescr = 'Número de lecturas físicas dun bloque chave desde o disco. Se key_reads é grande, entón o valor de key_fuffer_size é posibelmente demasiado baixo. A relación de perdas da caché pódese calcular así: Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Número de peticións para escribir un bloque chave na caché.';
+$strShowStatusKey_writesDescr = 'Número de escritas físicas dun bloque chave no disco.';
+$strShowStatusLast_query_costDescr = 'Custo total da última procura compilada tal e como se computa mediante o optimizador de procuras. Resulta útil para comparar o custo de planos de procura diferentes para a mesma pesquisa. O valor por omisión é 0, que significa que ainda non se compilou nengunha procura.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Número de procuras que están a agardar para seren escritas nas filas INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Número de tabelas abertas en total. Se a cantidade é grande, o valor da caché de tabelas posibelmente é demasiado pequeno.';
+$strShowStatusOpen_filesDescr = 'Número de ficheiros abertos.';
+$strShowStatusOpen_streamsDescr = 'Número de fluxos abertos (utilizado principalmente para o rexistro).';
+$strShowStatusOpen_tablesDescr = 'Número de tabelas abertas.';
+$strShowStatusQcache_free_blocksDescr = 'Número de bloques de memoria libres na caché de procuras.';
+$strShowStatusQcache_free_memoryDescr = 'Cantidade de memoria libre para a caché de procuras.';
+$strShowStatusQcache_hitsDescr = 'Número de impactos na caché.';
+$strShowStatusQcache_insertsDescr = 'Número de procuras adicionadas á caché.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Número de procuras eliminadas da caché para liberar memoria para deixar a caché para procuras novas. Esta información pode axudar a afinar o tamaño da caché de procuras. A caché de procuras utiliza unha estratexia de utilizado menos recentemente (LRU) para decidir que procuras debe eliminar da caché.';
+$strShowStatusQcache_not_cachedDescr = 'Número de procuras non enviadas á caché (que non se poden enviar, debido á configuración de query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Número de procuras rexistradas na caché.';
+$strShowStatusQcache_total_blocksDescr = 'Número total de bloques na caché de procuras.';
+$strShowStatusReset = 'Reiniciar';
+$strShowStatusRpl_statusDescr = 'Estado da replicación en modo seguro (ainda non realizado).';
+$strShowStatusSelect_full_joinDescr = 'Número de unións que non utilizan índices. Se este valor non é 0, debería comprobar con atención os índices das tabelas.';
+$strShowStatusSelect_full_range_joinDescr = 'Número de unións que utilizaron un rango de procura nunha tabela de referencia.';
+$strShowStatusSelect_range_checkDescr = 'Número de unións de chaves que comproban a utilización de chaves despois de cada fileira (se non é 0, debería comprobar con atención os índices das tabelas).';
+$strShowStatusSelect_rangeDescr = 'Número de unións que utilizaron rangos na primeira tabela (Normalmente non é grave mesmo de ser grande)';
+$strShowStatusSelect_scanDescr = 'Número de unións que realizaron un exame completo da primeira tabela.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Número de tabelas temporais actualmente abertas polo fío SQL escravo.';
+$strShowStatusSlave_retried_transactionsDescr = 'Número total de veces (desde o inicio) que o fío de replicación SQL escravo reintentou as transaccións.';
+$strShowStatusSlave_runningDescr = 'Isto está ON se este servidor é un escravo conectado a un máster.';
+$strShowStatusSlow_launch_threadsDescr = 'Número de fíos aos que lles levou crearse máis segundos dos indicados en slow_launch_time.';
+$strShowStatusSlow_queriesDescr = 'Número de procuras ás que lles levou máis segundos dos indicados en long_query_time.';
+$strShowStatusSort_merge_passesDescr = 'Número de pasaxes de fusión que tivo que facer o algoritmo de ordenación. Se este valor é grande, debería considerar incrementar o valor da variábel de sistema sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Número de ordenacións feitas con rangos.';
+$strShowStatusSort_rowsDescr = 'Número de fileiras ordenadas.';
+$strShowStatusSort_scanDescr = 'Número de ordenacións realizadas examinando a tabela.';
+$strShowStatusTable_locks_immediateDescr = 'Número de veces que se adquiriu inmediatamente un bloqueo de tabela.';
+$strShowStatusTable_locks_waitedDescr = 'Número de veces que non se puido adquirir inmediatamente un bloqueo de tabela e houbo que agardar. De ser alto e ter observado problemas no desempeño, debería en primeiro lugar mellorar as procuras e despois, ora partir a tabela ou tabelas, ora utilizar replicación.';
+$strShowStatusThreads_cachedDescr = 'Número de fíos na caché de fíos. A relación de impactos da caché pódese calcular como Threads_created/Connections. Se este valor é vermello debería aumentar a thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Número de conexións abertas neste momento.';
+$strShowStatusThreads_createdDescr = 'Número de fíos creados para xerir as conexións. De ser Threads_created grande, pode querer aumentar o valor de thread_cache_size. (Normalmente isto non fornece unha mellora notábel no desempeño se ten unha boa implementación de fíos.)';
+$strShowStatusThreads_runningDescr = 'Número de fíos que non están a durmir.';
+$strShowTableDimension = 'Mostrar a dimensión das tabelas';
+$strShowTables = 'Mostrar as tabelas';
+$strShowThisQuery = ' Mostrar esta procura aquí outra vez ';
+$strSimplifiedChinese = 'Chinés simplificado';
+$strSingly = 'a refacer logo de insercións e destrucións (shingly)';
+$strSize = 'Tamaño';
+$strSkipQueries = 'Número de rexistros (procuras) a saltar desde o inicio';
+$strSlovak = 'Eslovaco';
+$strSlovenian = 'Esloveno';
+$strSmallBigAll = 'Todo Grande/Pequeno';
+$strSnapToGrid = 'Axustar á grella';
+$strSocketProblem = '(ou o soquete local do servidor de MySQL non se configurou correctamente)';
+$strSortByKey = 'Ordenar pola chave';
+$strSorting = 'Ordenación';
+$strSort = 'Ordenar';
+$strSpaceUsage = 'Uso do espazo';
+$strSpanish = 'Español';
+$strSplitWordsWithSpace = 'As palabras divídense cun carácter de espazo (" ").';
+$strSQLCompatibility = 'Modo de compatiblidade SQL';
+$strSQLExportType = 'Tipo de exportación';
+$strSQLParserBugMessage = 'Cabe a posibilidade de que atopase un erro no procesador de SQL. Examine a súa pesquisa con atención e comprobe que as aspas son correctas e que cada un ten o seu par. Outras causas posíbeis serían que tentase enviar un ficheiro con binario fora dunha área de texto entre aspas. Tamén pode tentar facer a súa pesquisa na liña de comandos do MySQL. A mensaxe de erro que lle envía o servidor de MySQL, e que aparece máis abaixo (de habela), tamén o pode axudar a diagnosticar o problema. Se persisten os erros ou se o procesador falla cando mesmo a liña de comandos vai ben,reduza o texto da pesquisa à parte concreta que produce o erro e envíe unha mensaxe de erro co texto da sección RECORTE que aparece a continuación:';
+$strSQLParserUserError = 'Parece que houbo un problema na súa pesquisa en SQL. Se máis abaixo aparece unha mensaxe de erro do servidor de MySQL, isto pode axudar a diagnosticar o problema';
+$strSQLQuery = 'comando SQL';
+$strSQLResult = 'Resultado SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'O identificador non é válido';
+$strSQPBugUnclosedQuote = 'Falta pór a aspa final';
+$strSQPBugUnknownPunctuation = 'Hai unha secuencia de puntuación que resulta descoñecida';
+$strStandInStructureForView = 'Estrutura existente para a vista';
+$strStatCheckTime = 'Comprobación máis recente';
+$strStatCreateTime = 'Creación';
+$strStatement = 'Informacións';
+$strStatisticsOverrun = 'Nun servidor ocupado, os contadores de bytes poden sobrecarregarse, de maneria que esas estatísticas, tal e como as transmite o servidor de MySQL, poden resultar incorrectas.';
+$strStatUpdateTime = 'Actualización máis recente';
+$strStatus = 'Estado';
+$strStorageEngine = 'Motor de armacenamento';
+$strStorageEngines = 'Motores de armacenamento';
+$strStrucCSV = 'Datos CSV';
+$strStrucData = 'Estrutura e datos';
+$strStrucExcelCSV = 'CSV (para datos de MS Excel)';
+$strStrucNativeExcel = 'Datos nativos de MS Excel';
+$strStrucOnly = 'Só a estrutura';
+$strStructPropose = 'Propor unha estrutura para a tabela';
+$strStructure = 'Estrutura';
+$strStructureForView = 'Estrutura para a vista';
+$strSubmit = 'Submeter';
+$strSuccess = 'O seu comando de SQL executou-se com éxito';
+$strSuhosin = 'Servidor a executarse con Suhosin. Consulte os posíbeis problemas na %sdocumentation%s.';
+$strSum = 'Suma';
+$strSwedish = 'Sueco';
+$strSwitchToDatabase = 'Pasar á base de datos copiada';
+$strSwitchToTable = 'Ir à tabela copiada';
+
+$strTableAlreadyExists = 'A tabela %s xa existe!!';
+$strTableAlteredSuccessfully = 'Alterouse a tabela %1$s sen problemas';
+$strTableComments = 'Comentarios da tabela';
+$strTableEmpty = 'O nome da tabela está vacío!';
+$strTableHasBeenCreated = 'Creouse a tabela %1$s.';
+$strTableHasBeenDropped = 'Eliminouse a tabela %s';
+$strTableHasBeenEmptied = 'Vaciouse a tabela %s';
+$strTableHasBeenFlushed = 'Fechouse a tabela %s';
+$strTableIsEmpty = 'Parece ser que a tabela está baleira!';
+$strTableMaintenance = 'Tabela de manutención';
+$strTableName = 'Nome da tabela';
+$strTableOfContents = 'Índice';
+$strTableOptions = 'Opcións de tabela';
+$strTables = '%s tabela(s)';
+$strTableStructure = 'Estrutura da tabela';
+$strTable = 'Tabela';
+$strTakeIt = 'colle-o';
+$strTblPrivileges = 'Privilexios proprios de tabela';
+$strTempData = 'Datos temporais';
+$strTextAreaLength = ' Por causa da sua lonxitude,<br /> este campo pode non ser editábel ';
+$strTexyText = 'Texto para Texy!';
+$strThai = 'Tailandés';
+$strThemeDefaultNotFound = 'Non se atopou o tema por omisión %s!';
+$strThemeNoPreviewAvailable = 'Non se dispón de ante-visión.';
+$strThemeNotFound = 'Non se atopou o tema %s!';
+$strThemeNoValidImgPath = 'Non hai unha rota válida de imaxe para o tema %s!';
+$strThemePathNotFound = 'Non se atopou a rota do tema para o tema %s!';
+$strTheme = 'Tema / Estilo';
+$strThisHost = 'Este servidor';
+$strThreads = 'Fíos';
+$strThreadSuccessfullyKilled = 'Finalizouse o fío %s.';
+$strTimeoutInfo = 'A importación anterior excedeu do tempo permitido; unha vez reiniciada continuará desde a posición %d.';
+$strTimeoutNothingParsed = 'Porén, na última executación non se examinou nada de datos, o que normalmente significa que o phpMyAdmin non poderá rematar esta importación a non ser que lle incrementen os limites de tempo de php.';
+$strTimeoutPassed = 'Ultrapasouse o tempo de espera do guión. Se quer rematar a importación, volva a enviar o mesmo ficheiro e a importación continuará.';
+$strTime = 'Tempo';
+$strToFromPage = 'até/desde páxina';
+$strToggleScratchboard = 'conmutar o borrador';
+$strToggleSmallBig = 'Alternar pequeno/grande';
+$strToSelectRelation = 'Para seleccionar unha relación, prema:';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'Chinés tradicional';
+$strTraditionalSpanish = 'Español tradicional';
+$strTraffic = 'Tráfico';
+$strTransactionCoordinator = 'Coordinador da transacción';
+$strTransformation_application_octetstream__download = 'Mostrar un vínculo para baixar os datos binarios dun campo. A primeira opción é o nome do ficheiro binario. A segunda é un nome posíbel para o campo dunha fileira de tabela que conteña o nome do ficheiro. Se pretende seleccionar a segunda opción, a primeira deberá conter só unha cadea vacia';
+$strTransformation_application_octetstream__hex = 'Mostra unha representación hexadecimal dos datos. O primeiro parámetro, opcional, especifica con que frecuencia se engadirá espazo (por omisión, 2 nibbles).';
+$strTransformation_image_jpeg__inline = 'Mostra unha imaxe reducida vinculábel. Opcións: anchura,altura en píxeles (mantén a proporción orixinal)';
+$strTransformation_image_jpeg__link = 'Mostra un vínculo a esta imaxe (ou sexa, baixada directa de blob).';
+$strTransformation_image_png__inline = 'Ver image/jpeg: na liña';
+$strTransformation_text_plain__dateformat = 'Mostra un campo coa hora e data numérica de unix TIME, TIMESTAMP, DATETIME como hora e data con formato. A primeira opción é a diferenza (en horas) que se engadirá á hora ou data (Por omisión: 0). Use a segunda opción para especificar unha cadea de formato de data/hora diferente. A terceira opción determina se quere ver a hora local ou a UTC (empregue as cadeas "local" ou "utc") para iso. Segundo isto, o formato de data ten un valor diferente - para "local" vexa a documentación acerca da función PHP\'s strftime() e para "utc" faise empregando a función gmdate().';
+$strTransformation_text_plain__external = 'SÓ EN LINUX: Inícia unha aplicación externa e envia-lle o campo de datos por meio do input padrón. Devolve a saída padrón da aplicación. Por omisión é Tidy, para que resulte código HTML claro. Por razóns de seguranza, ten que editar manualmente o ficheiro libraries/transformations/text_plain__external.inc.php e inserir as ferramentas que quer permitir que funcionen. A primeira opción, polo tanto, é o número do programa que quer usar e a segunda opción son os parámetros do programa. O terceiro parámetro, se é 1, usará htmlspecialchars() para convertir a saída (Por omisión é 1). Un cuarto parámetro, se é 1, porá un NOWRAP na cela de contidos para que toda a saída se mostre sen reformatar (Por omisión é 1)';
+$strTransformation_text_plain__formatted = 'Mantén o formato orixinal do campo. Non hai Escape.';
+$strTransformation_text_plain__imagelink = 'Mostra unha imaxe e un vínculo; o campo conte o nome do ficheiro. A primeira opción é un prefixo do tipo "http://domain.com/"; a segunda opción é o ancho en píxeles; a terceira é a altura.';
+$strTransformation_text_plain__link = 'Mostra un vínculo; o campo contén o nome do ficheiro. A primeira opción é un prefixo do tipo "http://domain.com/"; a segunda opción é un título para o vínculo.';
+$strTransformation_text_plain__sql = 'Formata texto como procura SQL e resalta a sintaxe.';
+$strTransformation_text_plain__substr = 'Só mostra parte dunha cadea. A primeira opción é unha distancia para definir onde comeza a saída de texto (por omisión, 0). A segunda opción é unha distancia cando texto se devolve. Se é vacio, volve todo o texto que resta. A terceira opción define que caracteres se engadirán á saída cando se devolve unha subcadea (Por omisión: ...).';
+$strTriggers = 'Lanza';
+$strTruncateQueries = 'Interrumpir as procuras mostradas';
+$strTurkish = 'Turco';
+$strType = 'Tipo';
+
+$strUkrainian = 'Ucraniano';
+$strUncheckAll = 'Quitar-lles as marcas a todos';
+$strUnicode = 'Unicode';
+$strUnique = 'Único';
+$strUnknown = 'descoñecido';
+$strUnselectAll = 'Non seleccionar nada';
+$strUnsupportedCompressionDetected = 'Tentou carregar un ficheiro cunha compresión descoñecida (%s). Ora non se sabe como descomprimir, ora está desactivada na configuración.';
+$strUpdatePrivMessage = 'Acaba de actualizar os privilexios de %s.';
+$strUpdateProfileMessage = 'Actualizouse o perfil.';
+$strUpdateQuery = 'Actualizar a procura';
+$strUpdComTab = 'Consulte a Documentación para saber como actualizar a tabela Column_comments';
+$strUpgrade = 'Deberia actualizar a %s %s ou posterior.';
+$strUploadErrorCantWrite = 'Non se puido escribir no disco.';
+$strUploadErrorExtension = 'Detívose o envío do ficheiro por causa da extensión.';
+$strUploadErrorFormSize = 'O tamaño do ficheiro excede a directiva MAX_FILE_SIZE que se especificou no formulario HTML.';
+$strUploadErrorIniSize = 'O tamaño do ficheiro enviado excede a directiva upload_max_filesize de php.ini.';
+$strUploadErrorNoTempDir = 'Falta un directorio temporal.';
+$strUploadErrorPartial = 'O ficheiro enviado só se recibiu parcialmente.';
+$strUploadErrorUnknown = 'Erro descoñecido ao enviar o ficheiro.';
+$strUploadLimit = 'Posibelmente tentou enviar un ficheiro demasiado grande. Consulte a %sdocumentación%s para averiguar como evitar este limite.';
+$strUploadsNotAllowed = 'Este servidor non admite a recepción de ficheiros.';
+$strUsage = 'Uso';
+$strUseBackquotes = 'Protexer os nomes das tabelas e dos campos con&nbsp;" ` "';
+$strUseHostTable = 'Usar a tabela de Host';
+$strUserAlreadyExists = 'Xa existe o usuario %s';
+$strUserEmpty = 'O nome do usuario está vacío!';
+$strUserName = 'Nome do usuario';
+$strUserNotFound = 'Non se atopou o usuario seleccionado na tabela de privilexios.';
+$strUserOverview = 'Vista xeral dos usuarios';
+$strUsersDeleted = 'Os usuarios seleccionados eliminaron-se sen problemas.';
+$strUsersHavingAccessToDb = 'Utilizadores que teñen acceso a &quot;%s&quot;';
+$strUser = 'Usuario';
+$strUseTabKey = 'Use a tecla do tabulador para moverse de valor en valor ou a tecla CONTROL combinada cunha flecha para moverse a calquer sitio';
+$strUseTables = 'Usar as tabelas';
+$strUseTextField = 'Use campo de texto';
+$strUseThisValue = 'Usar este valor';
+
+$strValidateSQL = 'Validar SQL';
+$strValidatorError = 'Non foi posíbel iniciar o comprobador de SQL. Comprobe que ten instaladas todas as extensións de php tal e como se descrebe na %sdocumentación%s.';
+$strValue = 'Valor';
+$strVar = 'Variábel';
+$strVersionInformation = 'Información sobre a versión';
+$strViewDumpDatabases = 'Ver o volcado das bases de datos';
+$strViewDumpDB = 'Ver o esquema do volcado da base de datos';
+$strViewDump = 'Ver o esquema do volcado da tabela';
+$strViewHasAtLeast = 'Esta vista ten, cando menos, este número de fileiras. Vexa a %sdocumentation%s.';
+$strViewHasBeenDropped = 'Deixouse a vista %s';
+$strViewName = 'Nome da VISTA';
+$strView = 'Vista';
+
+$strWebServerUploadDirectory = 'directorio de recepción do servidor web';
+$strWebServerUploadDirectoryError = 'Non se pode acceder ao directorio que designou para os envíos';
+$strWelcome = 'Reciba a benvida a a %s';
+$strWestEuropean = 'Europeu ocidental';
+$strWildcard = 'comodín';
+$strWindowNotFound = 'Non se puido modificar a xanela de destino do navegador. Talvez porque fechou a xanela da que depende ou porque o seu navegador está a bloquear as actualizacións entre xanelas xa que asi o pediu na configuración de seguranza do navegador.';
+$strWithChecked = 'Todos os marcados';
+$strWriteRequests = 'Peticións de escrita';
+$strWrongUser = 'Usuario ou contrasinal errado. Acceso negado.';
+
+$strXML = 'XML';
+
+$strYes = 'Si';
+
+$strZeroRemovesTheLimit = 'Nota: Se estas opcións se configuran como 0 (cero) elimina-se o limite.';
+$strZip = 'comprimido no formato "zip"';
+
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/georgian-utf-8.inc.php b/lang/georgian-utf-8.inc.php
new file mode 100644
index 0000000000..6275ad37a8
--- /dev/null
+++ b/lang/georgian-utf-8.inc.php
@@ -0,0 +1,1473 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translation by Kakha Mchedlidze <kakha at qartuli.com>
+ *
+ * It requires some special Unicode font faces that can downloaded at
+ * http://www.main.osgf.ge/eng/dounen.htm
+ * http://www.osgf.ge/resources/fonts/sylfaen.zip
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ' ';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('ბაიტი', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y at %I:%M %p';
+$timespanfmt = '%s days, %s hours, %s minutes and %s seconds';
+
+$strAccessDenied = 'აკრძალულია';
+$strAction = 'მოქმედება';
+$strAddDeleteColumn = 'დაამატე/წაშალე სვეტის ველები';
+$strAddDeleteRow = 'დაამატე/წაშალე სტრიქონის კრიტერია';
+$strAddNewField = 'ახალი ველის დამატება.';
+$strAddSearchConditions = 'ძებნის პარამეტრების დამატება ("where" ნაწილის ტანი):';
+$strAddToIndex = '&nbsp;%s&nbsp;ამ ინდექსში სვეტის(სვეტების) დამატება';
+$strAddUser = 'ახალი მომხმარებლის დამატება.';
+$strAddUserMessage = 'თქვენ დაამატეთ ახალი მომხმარებელი.';
+$strAfterInsertBack = 'წინა გვერდზე დაბრუნება';
+$strAfterInsertNewInsert = 'ახალი სვეტის ჩამატება';
+$strAfter = '%s შემდეგ';
+$strAll = 'ყველა';
+$strAlterOrderBy = 'შეცვლილი ცხრილი სორტირებული';
+$strAnalyzeTable = 'ცხრილის ანალიზი';
+$strAnd = 'და';
+$strAnIndex = 'ინდექსი დამატებულია ველზე %s';
+$strAny = 'ნებისმიერი.';
+$strAnyHost = 'ნებისმიერი ჰოსტი';
+$strAnyUser = 'ნებისმიერი მომხმარებელი';
+$strAPrimaryKey = 'პირველადი გასაღები დამატებულია ველზე %s';
+$strAscending = 'ამომავალი';
+$strAtBeginningOfTable = 'ცხრილის დასაწყისში';
+$strAtEndOfTable = 'ცხრილის დასასრულში';
+$strAttr = 'ატრიბუტები';
+
+$strBack = 'უკან';
+$strBinary = 'ბინარული';
+$strBinaryDoNotEdit = 'ბინარული - არ რედაქტირდება';
+$strBookmarkDeleted = 'სანიშნი წაიშალა.';
+$strBookmarkLabel = 'ჭდე';
+$strBookmarkQuery = 'SQL-შეკითხვის(მოთხოვნის) სანიშნი';
+$strBookmarkThis = 'მოცემული SQL-შეკითხვის(მოთხოვნის) სანიშნი';
+$strBookmarkView = 'მხოლოდ დათვალიერება';
+$strBrowse = 'ნახვა';
+$strBzip = '"bzip შეკუმშვა"';
+
+$strCantLoadRecodeIconv = 'ვერ ჩაიტვირთა iconv,რაც საჭიროა charset-ის ასამუშავებლად, შეცვალეთ php-ს კონფიგურირება თუ გინდათ ამ ფუნქციის გამოყენება, ან გამორთეთ charset ფუნქცია phpMyAdmin-ში';
+$strCantRenameIdxToPrimary = 'PRIMARY-ში ინდექსის სახელის შეცვლა შეუძლებელია!';
+$strCantUseRecodeIconv = 'iconv-ს ან libiconv-ს და recode_string-ს ვერ იყენებს, მაშინ როდესაც ფუნქცია ჩატვირთულია. შეამოწმეთ php კონფიგურაცია.';
+$strCardinality = 'ელემენტების რაოდენობა';
+$strChange = 'შეცვლა';
+$strChangeDisplay = 'აირჩიეთ მონაცემი გვერდზე გამოსაჩენად';
+$strChangePassword = 'შეცვალე პაროლი';
+$strCheckAll = 'მონიშნე ყველა';
+$strCheckTable = 'ცხრილის შემოწმება';
+$strChoosePage = 'აირჩიეთ გვერდი რედაქტირებისთვის';
+$strColumnNames = 'სვეტის სახელები';
+$strComments = 'კომენტარი';
+$strCompleteInserts = 'სრულყოფილი ჩამატება';
+$strConfigFileError = 'phpMyAdmin-მა ვერ შეძლო კონფიგურაციის ფაილის წაკითხვა!<br/>ეს მაშინ ხდება თუ php-მ იპოვა parse შეცდომა, ან php-მ ვერ იპოვა ფაილი.<br />გამოიძახეთ კონფიგურაციის ფაილი და ქვევით ჩამოწერილი შეცდომები გაასწორეთ. უმეტეს შემთხვევაში წერტილ-მძიმე აკლია ხოლმე.<br />თუ ცარიელი გვერდი ჩამოიტვირთა, ესეიგი ყველაფერი რიგზეა.';
+$strConfigureTableCoord = 'საჭიროა %s ცხრილის კოორდინატების კონფიგურირება';
+$strCookiesRequired = 'ამ ადგილის შემდეგ Cookies უნდა ჩართოთ.';
+$strCopyTable = 'ცხრილის კოპირება (ბაზა<b>.</b>ცხრილი):';
+$strCopyTableOK = 'ცხრილი %s კოპირებულია %s ცხრილში.';
+$strCreate = 'შექმნა';
+$strCreateIndex = '&nbsp;%s&nbsp;ინდექსის შექმნა სვეტებზე';
+$strCreateIndexTopic = 'ახალი ინდექსის შექმნა';
+$strCreateNewDatabase = 'ახალი მონაცემთა ბაზის შექმნა';
+$strCreateNewTable = 'მონაცემთა ბაზაში ახალი ცხრილის შექმნა %s';
+$strCreatePage = 'შექმენი ახალი გვერდი';
+$strCriteria = 'კრიტერია';
+
+$strData = 'მონაცემები';
+$strDatabase = 'მონაცემთა ბაზა';
+$strDatabaseHasBeenDropped = 'მონაცემთა ბაზა %s წაიშალა.';
+$strDatabases = 'ბაზები';
+$strDatabasesStats = 'მონაცემთა ბაზის სტატისტიკა';
+$strDataOnly = 'მხოლოდ მონაცემები';
+$strDefault = 'ავტო მნიშვნელობა';
+$strDelete = 'წაშლა';
+$strDeleted = 'სტრიქონი წაიშალა';
+$strDescending = 'შუთავსებელი';
+$strDisplayOrder = 'დათვალიერების წესი:';
+$strDisplayPDF = 'PDF სქემის ჩვენება';
+$strDoAQuery = 'შეასრულე "მოთხოვნა მაგალითის მოხედვით" (ნებისმიერი სიმბოლოს აღმნიშვნელია: "%")';
+$strDocu = 'დოკუმენტაცია';
+$strDoYouReally = 'დარწმუნებული ხართ, რომ გინდათ ';
+$strDrop = 'წაშლა';
+$strDumpingData = 'მონაცემები ცხრილიდან ';
+$strDynamic = 'დინამიური';
+
+$strEdit = 'შესწორება';
+$strEditPDFPages = 'PDF გვერდების რედაქტირება';
+$strEditPrivileges = 'პრივილეგიების რედაქტირება';
+$strEffective = 'ეფექტური';
+$strEmpty = 'ცარიელი';
+$strEmptyResultSet = 'MySQL-ის მიერ დააბრუნებული ჩანაწერების რაოდენობაა 0.';
+$strEnd = 'დასასრული';
+$strEnglishPrivileges = ' შენიშვნა: MySQL-ის პრივილეგიები ენიჭება ინგლისურად ';
+$strError = 'შეცდომა';
+$strExport = 'ექსპორტი';
+$strExtendedInserts = 'ჩამატების გაფართოება';
+$strExtra = 'სხვა';
+
+$strField = 'ველი';
+$strFieldHasBeenDropped = 'ველი %s წაიშალა';
+$strFields = 'ველები';
+$strFieldsEnclosedBy = 'ველები ჩაკეტილია by';
+$strFieldsEscapedBy = 'ველები გახსნილია by';
+$strFieldsTerminatedBy = 'ველები განცალკავებულია by';
+$strFixed = 'გამართულია';
+$strFlushTable = 'კეში გადატანა ("FLUSH") ცხრილში';
+$strFormat = 'ფორმატი';
+$strFormEmpty = 'საჭიროა ფორმის აღმნიშვნელები!';
+$strFullText = 'სრული ტექსტი';
+$strFunction = 'ფუნქცია';
+
+$strGenBy = 'შექმნილია by';
+$strGenTime = 'შექმნის დრო';
+$strGo = 'შესრულება';
+$strGzip = '"gzip-ში შეკუმშვა"';
+
+$strHasBeenAltered = 'შეიცვალა.';
+$strHaveToShow = 'თქვენ ერთი ცხრილი მაინც უნდა აირჩიოთ';
+$strHome = 'დასაწყისი';
+$strHomepageOfficial = 'phpMyAdmin ოფიციალური ვებგვერდი';
+$strHost = 'ჰოსტი';
+$strHostEmpty = 'ჰოსტის სახელი ცარიელია!';
+
+$strIdxFulltext = 'სრული ტექსტი';
+$strIgnore = 'იგნორირება';
+$strIndex = 'ინდექსირება';
+$strIndexes = 'ინდექსები';
+$strIndexHasBeenDropped = 'ინდექსი %s წაიშალა';
+$strIndexName = 'ინდექსის სახელი&nbsp;:';
+$strIndexType = 'ინდექსის ტიპი&nbsp;:';
+$strInsert = 'დამატება';
+$strInsertAsNewRow = 'დამატება ახალ ჩანაწერად';
+$strInUse = 'გამოყენებულია';
+
+$strKeepPass = 'არ შეცვალო ეს პაროლი';
+$strKeyname = 'Keyname';
+$strKill = 'Kill';
+
+$strLengthSet = 'სიგრძე/მნიშვნელობა*';
+$strLimitNumRows = 'სტრიქონის რაოდენობა თითოეულ გვერდზე';
+$strLinesTerminatedBy = 'სტრიქონები დაყოფილია by';
+$strLinkNotFound = 'ლინკი ვერ ვიპოვე';
+$strLinksTo = 'ლინკები';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'მიუთითეთ ტექსტური ფაილის მდებარეობა';
+$strLogin = 'ლოგინი';
+$strLogout = 'გასვლა';
+$strLogPassword = 'პაროლი:';
+$strLogUsername = 'სახელი:';
+
+$strModifications = 'ცვლილებები შენახულია';
+$strModify = 'შეცვალე';
+$strModifyIndexTopic = 'ინდექსის შეცვლა';
+$strMoveTable = 'გადაიტანე ცხრილები (მონაცემთა ბაზა<b>.</b>ცხრილი):';
+$strMoveTableOK = 'ცხრილი %s გადატანილია %s ში.';
+$strMySQLCharset = 'MySQL Charset-ი';
+$strMySQLSaid = 'MySQL-მა თქვა: ';
+$strMySQLShowProcess = 'პროცესების შვენება';
+
+$strName = 'სახელი';
+$strNext = 'შემდეგი';
+$strNo = 'არა';
+$strNoDatabases = 'ცარიელია';
+$strNoDescription = 'შინაარსი არ არის';
+$strNoDropDatabases = '"DROP DATABASE" ოპერატორები გათიშულია.';
+$strNoFrames = 'phpMyAdmin-თან სამუშაოდ საჭიროა ისეთი ბროუზერი რომელიც <b>ფრეიმებთან</b> მუშაობს.';
+$strNoIndex = 'ინდექსი არ არსებობს!';
+$strNoIndexPartsDefined = 'ინდექსის ნაწილები არ არსებობს!';
+$strNoModification = 'ცვლილებები არ მომხდარა';
+$strNone = 'არა';
+$strNoPassword = 'არ არის პარილი';
+$strNoPhp = 'PHP კოდის გარეშე';
+$strNoPrivileges = 'არ არის პრივილეგიები';
+$strNoRights = 'თქვენ არაგაქვთ ამის უფლება!';
+$strNoTablesFound = 'მონაცემთა ბაზა არ შეიცავს ცხრილებს.';
+$strNotNumber = 'ეს რიცხვი არაა!';
+$strNotSet = '<b>%s</b> ცხრილი ვერ ვიპვე ან უწესრიგობაა %s-ში';
+$strNoUsersFound = 'მომხმარებელი არ არის ნაპოვნი.';
+$strNull = 'ნული';
+$strNumSearchResultsInTable = '%s შესაბამისობა ცხრილის შიგნით<i>%s</i>';
+$strNumSearchResultsTotal = '<b>სულ:</b> <i>%s</i> შესაბამისობა';
+
+$strOperations = 'ოპერაციები';
+$strOptimizeTable = 'ცხრილის ოპტიმიზაცია';
+$strOr = 'ან';
+$strOverhead = 'ზედმეტი';
+
+$strPageNumber = 'გვერდის ნომერი:';
+$strPartialText = 'ტექსტების ნაწილი';
+$strPassword = 'პაროლი';
+$strPasswordEmpty = 'პაროლი ცარიელია!';
+$strPasswordNotSame = 'პაროლები განსხვავდება!';
+$strPdfDbSchema = '"%s"-ს სქემა %s მონაცემთა ბაზაში';
+$strPdfInvalidTblName = 'The "%s" table does not exist!';
+$strPhp = 'PHP კოდის შექმნა';
+$strPHPVersion = 'PHP ვერსია';
+$strPmaDocumentation = 'phpMyAdmin-ის დოკუმენტაცია';
+$strPmaUriError = 'დირექტივა <tt>$cfgPmaAbsoluteUri</tt> უნდა დაყენდეს კონფიგურაციის ფაილში!';
+$strPos1 = 'დასაწყისი';
+$strPrevious = 'წინა';
+$strPrimary = 'პირველადი';
+$strPrimaryKeyHasBeenDropped = 'პირველი გასაღები წაშლილია';
+$strPrimaryKeyName = 'პირველი გასაღების სახელი უნდა იყოს PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>უნდა იყოს მხოლოდ</b> პირველი გასაღების სახელი!)';
+$strPrintView = 'ბეჭდვისთვის';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivileges = 'პრივილეგიები';
+
+$strQBE = 'ამორჩევა მაგალითის მიხედვით';
+$strQBEDel = 'წაშლა';
+$strQBEIns = 'დამატება';
+$strQueryOnDb = 'SQL-შეკითხვა <b>%s</b> მონაცემთა ბაზაში:';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+
+$strRecords = 'ჩანაწერები';
+$strReferentialIntegrity = 'მონაცემთა შემოწმება:';
+$strRelationView = 'ურთიერთობათა სახე';
+$strRenameTable = 'სახელის შეცვლა';
+$strRenameTableOK = 'ცხრილი %s გადაკეთდა %s-დ';
+$strRepairTable = 'ცხრილის აღდგენა';
+$strReplaceTable = 'შეცვალე ცხრილი მონაცემებით შემდეგი ფაილიდან';
+$strReset = 'საწყისი მნიშვნელობები';
+$strReType = 'დამოწმება';
+$strRevoke = 'გაუქმება';
+$strRevokeMessage = 'თქვენ შეცვალეთ პრივიკებიები %s-სთვის';
+$strRowLength = 'სტრიქონის სიგრძე ';
+$strRows = 'ჩანაწერები';
+$strRowsFrom = 'სტრიქონი. საწყისი სტრიქონი:';
+$strRowSize = ' სტრიქონის ზომა ';
+$strRowsModeHorizontal = 'ჰორიზონტალური';
+$strRowsModeOptions = '%s-ს რეჟიმში, სათაურები %s სვეტების სემდეგ';
+$strRowsModeVertical = 'ვერტიკალური';
+$strRowsStatistic = 'სტრიქონის სტატისტიკა';
+$strRunning = 'გაშვებულია ჰოსტზე %s';
+$strRunQuery = 'სესრულება';
+$strRunSQLQuery = 'შეასრულე SQL მოთხოვნა/მოთხოვნები მონაცემთა ბაზაზე %s';
+
+$strSave = 'შენახვა';
+$strScaleFactorSmall = 'მაშტაბის ფაქტორი ძალიან პატარაა იმისთვის, რომ გვერდის სქემაში აისახოს';
+$strSearch = 'ძებნა';
+$strSearchFormTitle = 'ძებნა მონაცემთა ბაზაში';
+$strSearchInTables = 'Inside ცხრილი:';
+$strSearchNeedle = 'საძიებელი სიტყვები ან მნიშვნელობები (wildcard: "%"):';
+$strSearchOption1 = 'ერთი სიტყვა მაინც';
+$strSearchOption2 = 'ყველა სიტყვა';
+$strSearchOption3 = 'ზუსტი ფრაზა';
+$strSearchOption4 = 'როგორც სწორი ფრაზა';
+$strSearchResultsFor = 'ძებნის შედეგი "<i>%s</i>" %s:';
+$strSearchType = 'ძიება:';
+$strSelectADb = 'გთხოვთ მონიშნეთ მონაცემთა ბაზა';
+$strSelectAll = 'ყველას მონიშვნა';
+$strSelectFields = 'აირჩიეთ ველები (მინიმუმ ერთი მაინც):';
+$strSelectNumRows = 'მოთხოვნაში';
+$strSelectTables = 'ცხრილის მონიშვნა';
+$strSend = 'ფაილად შენახვა';
+$strServerChoice = 'სერვერის არჩევა';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strServerVersion = 'სერვერის ვერსია';
+$strSetEnumVal = '"enum" ან "set" ტიპის ველებისათვის მონაცემები შეიყვანეთ შემდეგი ფორმატის მიხედვით: \'a\',\'b\',\'c\'...<br />თუ თქვენ დაგჭირდებათ დახრილი ხაზის ("\") ან დახრილი ხაზისა და აპოსტროფის ("\'") შეყვანა, ამ სიმბოლოების წინ და შორის ჩასვით დახრილი ხაზი ისე როგორც აქაა (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strShow = 'გამოიტანე';
+$strShowAll = 'ყველას დათვალიერება';
+$strShowColor = 'ფერების ჩვენება';
+$strShowGrid = 'ჩვენების ბადე';
+$strShowingRecords = 'ნაჩვენებია ჩანაწერები ';
+$strShowPHPInfo = 'PHP ინფორმაცია';
+$strShowTableDimension = 'ცხრილის ჩვენების ცვლილება';
+$strShowTables = 'ცხრილების დათვალიერება';
+$strShowThisQuery = ' მოცემული შეკითხვის ხელახლა ჩვენება ';
+$strSingly = '(ცალკე)';
+$strSize = 'ზომა';
+$strSort = 'სორტირება';
+$strSpaceUsage = 'გამოყენებული სივრცე';
+$strSplitWordsWithSpace = 'სიტყვები არის დაშლილია ცალკეულ სიმბოლოენად (" ").';
+$strSQLQuery = 'SQL-ის ამორჩევა';
+$strSQLResult = 'SQL შედეგი';
+$strSQL = 'SQL-ი';
+$strStatement = 'აღწერა';
+$strStrucCSV = 'CSV მონაცემები';
+$strStrucData = 'სტრუქტურა და მონაცემები';
+$strStrucExcelCSV = 'CSV MS Excel-ის მონაცემებისთვის ';
+$strStrucOnly = 'მხოლოდ სტრუქტურა';
+$strStructPropose = 'ცხრილის სტრუქტურის შეთავაზება';
+$strStructure = 'სტრუქტურა';
+$strSubmit = 'თანხმობა';
+$strSuccess = 'თქვენი SQL მოთხოვნა წარმატებით შესრულდა';
+$strSum = 'ჯამი';
+
+$strTable = 'ცხრილი ';
+$strTableComments = 'კომენტარი ცხრილზე';
+$strTableEmpty = 'ცხრილის სახელი არა არის მითითებული!';
+$strTableHasBeenDropped = 'ცხრილი %s წაიშალა';
+$strTableHasBeenEmptied = 'ცხრილი %s დაცარიელდა';
+$strTableHasBeenFlushed = 'ცხრილი %s კეშირებულია';
+$strTableMaintenance = 'ცხრილის მომსახურება';
+$strTables = '%s ცხრილი';
+$strTableStructure = 'ცხრილის სტრუქტურა. ცხრილი:';
+$strTextAreaLength = ' მისი სიგრძის გამო,<br /> ეს ველი შეიძლება არ არის რედაქტირებადი ';
+$strTotal = 'სულ ცხრილში';
+$strType = 'ტიპი';
+
+$strUncheckAll = 'Uncheck All';
+$strUnique = 'უნიკალური';
+$strUnselectAll = 'მონიშვნის გაუქმება';
+$strUpdatePrivMessage = 'პრივილეგიები განახლდა %s-სთვის.';
+$strUpdateProfileMessage = 'პროფაილი განახლდა.';
+$strUpdateQuery = 'შეკითხვის (მოთხოვნის) განახლება';
+$strUsage = 'მოცულობა';
+$strUseBackquotes = 'შებრუნებული ბრჭყალები';
+$strUser = 'მომხმარებელი';
+$strUserEmpty = 'მომხმარებლის სახელი ცარიელია!';
+$strUserName = 'მომხმარებლის სახელი';
+$strUseTables = 'მომხმარებლის ცხრილები';
+
+$strValue = 'მნიშვნელობა';
+$strViewDump = 'ცხრილისი სქემა';
+$strViewDumpDB = 'მონაცემთა ბაზის სქემა';
+
+$strWelcome = 'კეთილი იყოს თქვენი მობრძანება %s';
+$strWithChecked = 'მონიშნულებთან:';
+$strWrongUser = 'არასწორი სახელი/პაროლი. მიმართვა ბლოკირებულია';
+
+$strYes = 'კი';
+
+$strZip = '"zip-ში შეკუმშვა"';
+
+// To translate:
+$strAbortedClients = 'Aborted'; //to translate
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAddIntoComments = 'Add into comments';//to translate
+$strAddPrivilegesOnDb = 'Add privileges on the following database'; //to translate
+$strAddPrivilegesOnTbl = 'Add privileges on the following table'; //to translate
+$strAdministration = 'Administration'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAllTableSameWidth = 'display all Tables with same width?'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+$strArabic = 'Arabic'; //to translate
+$strArmenian = 'Armenian'; //to translate
+$strAutomaticLayout = 'Automatic layout'; //to translate
+
+$strBaltic = 'Baltic'; //to translate
+$strBeginCut = 'BEGIN CUT'; //to translate
+$strBeginRaw = 'BEGIN RAW'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBulgarian = 'Bulgarian'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCannotLogin = 'Cannot login to MySQL server'; //to translate
+$strCantLoad = 'cannot load %s extension,<br />please check PHP Configuration'; //to translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCentralEuropean = 'Central European'; //to translate
+$strChangeCopyModeCopy = '... keep the old one.'; //to translate
+$strChangeCopyMode = 'Create a new user with the same privileges and ...'; //to translate
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; //to translate
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; //to translate
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; //to translate
+$strChangeCopyUser = 'Change Login Information / Copy User'; //to translate
+$strCharset = 'Charset'; //to translate
+$strCharsetOfFile = 'Character set of the file:'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCharsets = 'Charsets'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCheckPrivs = 'Check Privileges'; //to translate
+$strCheckPrivsLong = 'Check privileges for database &quot;%s&quot;.'; //to translate
+$strColComFeat = 'Displaying Column Comments'; //to translate
+$strCollation = 'Collation'; //to translate
+$strColumnPrivileges = 'Column-specific privileges'; //to translate
+$strCommand = 'Command'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompression = 'Compression'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConnections = 'Connections'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCopyTableSameNames = 'Can\'t copy table to same one!'; //to translate
+$strCouldNotKill = 'phpMyAdmin was unable to kill thread %s. It probably has already been closed.'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreatePdfFeat = 'Creation of PDFs'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCroatian = 'Croatian'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCyrillic = 'Cyrillic'; //to translate
+$strCzech = 'Czech'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDanish = 'Danish'; //to translate
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDatabaseExportOptions = 'Database export options';//to translate
+$strDatabasesDropped = '%s databases have been dropped successfully.'; //to translate
+$strDatabasesStatsDisable = 'Disable Statistics'; //to translate
+$strDatabasesStatsEnable = 'Enable Statistics'; //to translate
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the Database statistics here might cause heavy traffic between the webserver and the MySQL one.'; //to translate
+$strDataDict = 'Data Dictionary'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBComment = 'Database comment: ';//to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDbPrivileges = 'Database-specific privileges'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDbSpecific = 'database-specific'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteAndFlush = 'Delete the users and reload the privileges afterwards.'; //to translate
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDeleting = 'Deleting %s'; //to translate
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+$strDescription = 'Description'; //to translate
+$strDictionary = 'dictionary'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisabled = 'Disabled'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDisplayFeat = 'Display Features'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+$strDropUsersDb = 'Drop the databases that have the same names as the users.'; //to translate
+$strDumpSaved = 'Dump has been saved to file %s.'; //to translate
+$strDumpXRows = 'Dump %s row(s) starting at record # %s.'; //to translate
+
+$strEnabled = 'Enabled'; //to translate
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEndCut = 'END CUT'; //to translate
+$strEndRaw = 'END RAW'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strEnglish = 'English'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strEstonian = 'Estonian'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+$strExplain = 'Explain SQL'; //to translate
+
+$strFailedAttempts = 'Failed attempts'; //to translate
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.'; //to translate
+$strFileCouldNotBeRead = 'File could not be read'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileNameTemplate = 'File name template';//to translate
+$strFileNameTemplateRemember = 'remember template';//to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of this tables may differ from the privileges the server uses if manual changes have made to it. In this case, you should %sreload the privileges%s before you continue.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGeneralRelationFeat = 'General relation features'; //to translate
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+$strGerman = 'German'; //to translate
+$strGlobal = 'global'; //to translate
+$strGlobalPrivileges = 'Global privileges'; //to translate
+$strGlobalValue = 'Global value'; //to translate
+$strGrantOption = 'Grant'; //to translate
+$strGreek = 'Greek'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHebrew = 'Hebrew'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+$strHungarian = 'Hungarian'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strId = 'ID'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFiles = 'Import files'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInnodbStat = 'InnoDB Status'; //to translate
+$strInsecureMySQL = 'Your configuration file contains settings (root with no password) that correspond to the default MySQL privileged account. Your MySQL server is running with this default, is open to intrusion, and you really should fix this security hole.'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJapanese = 'Japanese'; //to translate
+$strJoins = 'Joins'; //to translate
+$strJumpToDB = 'Jump to database &quot;%s&quot;.'; //to translate
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.'; //to translate
+$strJustDelete = 'Just delete the users from the privilege tables.'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+$strKorean = 'Korean'; //to translate
+
+$strLandscape = 'Landscape'; //to translate
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption';//to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexContinued = '(continued)';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLaTeX = 'LaTeX'; //to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLithuanian = 'Lithuanian'; //to translate
+$strLoginInformation = 'Login Information'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIME_available_mime = 'Available MIME-types';//to translate
+$strMIME_available_transform = 'Available transformations';//to translate
+$strMIME_description = 'Description';//to translate
+$strMIME_MIMEtype = 'MIME-type';//to translate
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.';//to translate
+$strMIME_transformation = 'Browser transformation';//to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';//to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';//to translate
+$strMIME_transformation_options = 'Transformation options';//to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';//to translate
+$strMoveTableSameNames = 'Can\'t move table to same one!'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDatabasesSelected = 'No databases selected.'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoExplain = 'Skip Explain SQL'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoOptions = 'This format has no options';//to translate
+$strNoPermission = 'The web server does not have permission to save the file %s.'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoSpace = 'Insufficient space to save the file %s.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNotOK = 'not OK'; //to translate
+$strNoValidateSQL = 'Skip Validate SQL'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+$strNumTables = 'Tables'; //to translate
+
+$strOK = 'OK'; //to translate
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+$strOverwriteExisting = 'Overwrite existing file(s)'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPaperSize = 'Paper size'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordChanged = 'The Password for %s was changed successfully.'; // to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPdfNoTables = 'No tables'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPerHour = 'per hour'; //to translate
+$strPerMinute = 'per minute';//to translate
+$strPerSecond = 'per second';//to translate
+$strPersian = 'Persian'; //to translate
+$strPhoneBook = 'phone book'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPortrait = 'Portrait'; //to translate
+$strPrint = 'Print'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.'; //to translate
+$strPrivDescAlter = 'Allows altering the structure of existing tables.'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateDb = 'Allows creating new databases and tables.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateTbl = 'Allows creating new tables.'; //to translate
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescDelete = 'Allows deleting data.'; //to translate
+$strPrivDescDropDb = 'Allows dropping databases and tables.'; //to translate
+$strPrivDescDropTbl = 'Allows dropping tables.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescExecute = 'Allows running stored procedures; Has no effect in this MySQL version.'; //to translate
+$strPrivDescFile = 'Allows importing data from and exporting data into files.'; //to translate
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.'; //to translate
+$strPrivDescIndex = 'Allows creating and dropping indexes.'; //to translate
+$strPrivDescInsert = 'Allows inserting and replacing data.'; //to translate
+$strPrivDescLockTables = 'Allows locking tables for the current thread.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReferences = 'Has no effect in this MySQL version.'; //to translate
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.'; //to translate
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescSelect = 'Allows reading data.'; //to translate
+$strPrivDescShowDb = 'Gives access to the complete list of databases.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescShutdown = 'Allows shutting down the server.'; //to translate
+$strPrivDescSuper = 'Allows connectiong, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strPrivDescUpdate = 'Allows changing data.'; //to translate
+$strPrivDescUsage = 'No privileges.'; //to translate
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.'; //to translate
+$strProcesses = 'Processes'; //to translate
+$strProcesslist = 'Process list'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+$strPutColNames = 'Put fields names at first row'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryFrame = 'Query window';//to translate
+$strQuerySQLHistory = 'SQL-history';//to translate
+$strQueryTime = 'Query took %01.4f sec';//to translate
+$strQueryType = 'Query type'; //to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReceived = 'Received'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationalSchema = 'Relational schema'; //to translate
+$strRelationNotWorking = 'The additional Features for working with linked Tables have been deactivated. To find out why click %shere%s.'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strRelations = 'Relations'; //to translate
+$strReloadingThePrivileges = 'Reloading the privileges'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRemoveSelectedUsers = 'Remove selected users'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplaceNULLBy = 'Replace NULL by'; //to translate
+$strReplication = 'Replication'; //to translate
+$strResourceLimits = 'Resource limits'; //to translate
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.'; //to translate
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)';//to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+$strRussian = 'Russian'; //to translate
+
+$strSaveOnServer = 'Save on server in %s directory'; //to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strSent = 'Sent'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServer = 'Server'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strServerStatus = 'Runtime Information'; //to translate
+$strServerStatusUptime = 'This MySQL server has been running for %s. It started up on %s.'; //to translate
+$strServerTabVariables = 'Variables'; //to translate
+$strServerVars = 'Server variables and settings'; //to translate
+$strSessionValue = 'Session value'; //to translate
+$strShowDatadictAs = 'Data Dictionary Format'; //to translate
+$strShowFullQueries = 'Show Full Queries'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:'; //to translate
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem'; //to translate
+$strSQPBugInvalidIdentifer = 'Invalid Identifer'; //to translate
+$strSQPBugUnclosedQuote = 'Unclosed quote'; //to translate
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String'; //to translate
+$strStatCheckTime = 'Last check';//to translate
+$strStatCreateTime = 'Creation';//to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStatUpdateTime = 'Last update';//to translate
+$strStatus = 'Status'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwedish = 'Swedish'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+$strSwitchToTable = 'Switch to copied table'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableOfContents = 'Table of contents'; //to translate
+$strTableOptions = 'Table options'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTblPrivileges = 'Table-specific privileges'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThisHost = 'This Host'; //to translate
+$strThreads = 'Threads'; //to translate
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTime = 'Time'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTotalUC = 'Total'; //to translate
+$strTraditionalChinese = 'Traditional Chinese'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTraffic = 'Traffic'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)'; //to translate
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).';//to translate
+$strTransformation_image_png__inline = 'See image/jpeg: inline'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';//to translate
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.';//to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';//to translate
+$strTruncateQueries = 'Truncate Shown Queries'; //to translate
+$strTurkish = 'Turkish'; //to translate
+
+$strUkrainian = 'Ukrainian'; //to translate
+$strUnicode = 'Unicode'; //to translate
+$strUnknown = 'unknown'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseHostTable = 'Use Host Table'; //to translate
+$strUserAlreadyExists = 'The user %s already exists!'; //to translate
+$strUserNotFound = 'The selected user was not found in the privilege table.'; //to translate
+$strUserOverview = 'User overview'; //to translate
+$strUsersDeleted = 'The selected users have been deleted successfully.'; //to translate
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseTextField = 'Use text field'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strValidateSQL = 'Validate SQL'; //to translate
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary php extensions as described in the %sdocumentation%s.'; //to translate
+$strVar = 'Variable'; //to translate
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases';//to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWebServerUploadDirectoryError = 'The directory you set for upload work cannot be reached'; //to translate
+$strWebServerUploadDirectory = 'web-server upload directory'; //to translate
+$strWestEuropean = 'West European'; //to translate
+$strWildcard = 'wildcard'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strXML = 'XML';//to translate
+
+$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/german-utf-8.inc.php b/lang/german-utf-8.inc.php
new file mode 100644
index 0000000000..15a93831ff
--- /dev/null
+++ b/lang/german-utf-8.inc.php
@@ -0,0 +1,1453 @@
+<?php
+/**
+ * German locale file
+ *
+ * For suggestions concerning this file please contact
+ * https://sourceforge.net/tracker/?group_id=23067&atid=387645
+ *
+ * Bei Verbesserungsvorschlägen diese Datei betreffend wenden Sie sich bitte an
+ * https://sourceforge.net/tracker/?group_id=23067&atid=387645
+ *
+ * $Id$
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$mysql_5_1_doc_lang = 'de';
+
+$day_of_week = array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
+$month = array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d. %B %Y um %H:%M';
+$timespanfmt = '%s Tage, %s Stunden, %s Minuten und %s Sekunden';
+
+$strAPrimaryKey = 'Ein Primärschlüssel wurde in %s erzeugt';
+$strAbortedClients = 'Abgebrochen';
+$strAccessDenied = 'Zugriff verweigert.';
+$strAccessDeniedCreateConfig = 'Eine mögliche Ursache wäre, dass Sie noch keine Konfigurationsdatei angelegt haben. Verwenden Sie in diesem Fall doch das %1$sSetup-Skript%2$s, um eine solche zu erstellen.';
+$strAccessDeniedExplanation = 'phpMyAdmin hat versucht eine Verbindung zum MySQL-Server aufzubauen, jedoch hat dieser die Verbindung zurückgewiesen. Sie sollten Ihre Einstellungen für Host, Benutzername und Passwort in Ihrer config.inc.php überprüfen und sich vergewissern, dass diese den Informationen, welche Sie vom Administrator erhalten haben, entsprechen.';
+$strAction = 'Aktion';
+$strAddAutoIncrement = 'AUTO_INCREMENT-Wert hinzufügen';
+$strAddClause = 'Füge %s hinzu';
+$strAddConstraints = 'Constraints hinzufügen';
+$strAddDeleteColumn = 'Spalten hinzufügen/entfernen';
+$strAddDeleteRow = 'Zeilen hinzufügen/entfernen';
+$strAddFields = '%s Felder hinzufügen';
+$strAddHeaderComment = 'Individuelle Kommentare für den Kopfbereich (\\n erzeugt einen Zeilenumbruch)';
+$strAddIntoComments = 'In Kommentarbereich einbeziehen';
+$strAddNewField = 'Neue Felder hinzufügen';
+$strAddPrivilegesOnDb = 'Rechte zu folgender Datenbank hinzufügen';
+$strAddPrivilegesOnTbl = 'Rechte zu folgender Tabelle hinzufügen';
+$strAddSearchConditions = 'Eigenes Filterkriterium (Argumente für den WHERE-Ausdruck):';
+$strAddToIndex = '%s&nbsp;Spalten zum Index hinzufügen';
+$strAddUser = 'Neuen Benutzer hinzufügen';
+$strAddUserMessage = 'Der Benutzer wurde hinzugefügt.';
+$strAdministration = 'Administration';
+$strAfter = 'Nach %s';
+$strAfterInsertBack = 'zurück';
+$strAfterInsertNewInsert = 'anschließend einen weiteren Datensatz einfügen';
+$strAfterInsertNext = 'nächste Zeile bearbeiten';
+$strAfterInsertSame = 'Zurück zu dieser Seite';
+$strAll = 'Alle';
+$strAllTableSameWidth = 'Sollen alle Tabellen mit der gleichen Breite angezeigt werden?';
+$strAllowInterrupt = 'Abbruch wenn die maximale Scriptlaufzeit erreicht wird. Damit ist es möglich große Dateien zu importieren, allerdings kann es Transaktionen zerstören.';
+$strAlterOrderBy = 'Tabelle sortieren nach';
+$strAnIndex = 'Ein Index wurde in %s erzeugt';
+$strAnalyze = 'Analysieren';
+$strAnalyzeTable = 'Analysiere Tabelle';
+$strAnd = 'und';
+$strAndThen = 'und dann';
+$strAngularLinks = 'Winklige Verbindung';
+$strAny = 'Jeder';
+$strAnyHost = 'Jeder Host';
+$strAnyUser = 'Jeder Benutzer';
+$strApproximateCount = 'Es kann sich hierbei um Näherungswerte handeln. Bitte lesen Sie auch FAQ 3.11';
+$strArabic = 'Arabisch';
+$strArmenian = 'Armenisch';
+$strAscending = 'aufsteigend';
+$strAtBeginningOfTable = 'An den Anfang der Tabelle';
+$strAtEndOfTable = 'An das Ende der Tabelle';
+$strAttr = 'Attribute';
+$strAutomaticLayout = 'Automatische Anordnung';
+
+$strBack = 'Zurück';
+$strBaltic = 'Baltisch';
+$strBeginCut = 'AUSSCHNITTSANFANG';
+$strBeginRaw = 'BEGINN DER AUSGABE';
+$strBinLogEventType = 'Ereignistyp';
+$strBinLogInfo = 'Information';
+$strBinLogName = 'Protokoll';
+$strBinLogOriginalPosition = 'Ursprungsposition';
+$strBinLogPosition = 'Position';
+$strBinLogServerId = 'Server-ID';
+$strBinary = 'Binär';
+$strBinaryDoNotEdit = 'Binär - nicht editierbar!';
+$strBinaryLog = 'Binäres Protokoll';
+$strBookmarkAllUsers = 'Diese gespeicherte SQL-Abfrage für jeden Benutzer verfügbar machen';
+$strBookmarkCreated = 'Bookmark %s wurde gespeichert';
+$strBookmarkDeleted = 'SQL-Abfrage wurde gelöscht.';
+$strBookmarkLabel = 'Titel';
+$strBookmarkQuery = 'Gespeicherte SQL-Abfrage';
+$strBookmarkReplace = 'Überschreibe gleichnamiges Bookmark';
+$strBookmarkThis = 'SQL-Abfrage speichern';
+$strBookmarkView = 'Nur zeigen';
+$strBrowse = 'Anzeigen';
+$strBrowseDistinctValues = 'Zeige nur unterschiedliche Werte';
+$strBrowseForeignValues = 'Fremdschlüsselwerte ansehen';
+$strBufferPool = 'Puffer-Pool';
+$strBufferPoolActivity = 'Aktivität des Puffer-Pools';
+$strBufferPoolUsage = 'Auslastung des Puffer-Pools';
+$strBufferReadMisses = 'Fehlgeschlagene Leseanfragen';
+$strBufferReadMissesInPercent = 'Fehlgeschlagene Leseanfragen in %';
+$strBufferWriteWaits = 'Schreibverzögerungen';
+$strBufferWriteWaitsInPercent = 'Schreibverzögerungen in %';
+$strBulgarian = 'Bulgarisch';
+$strBusyPages = 'Ausgelastete Seiten';
+$strBzip = 'BZip-komprimiert';
+
+$strCSV = 'CSV';
+$strCalendar = 'Kalender';
+$strCanNotLoadExportPlugins = 'Export-Plugins konnten nicht geladen werden, bitte Installation überprüfen!';
+$strCanNotLoadImportPlugins = 'Die Import-Plugins konnten nicht geladen werden. Bitte überprüfen Sie Ihre phpMyAdmin-Installation.';
+$strCancel = 'Abbrechen';
+$strCannotLogin = 'Die Anmeldung am MySQL-Server ist fehlgeschlagen.';
+$strCantLoad = 'Die Erweiterung [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] kann nicht geladen werden. Bitte überprüfen Sie Ihre PHP-Konfiguration.';
+$strCantLoadRecodeIconv = 'Die PHP-Erweiterungen iconv und recode, welche für die Zeichensatzkonvertierung benötigt werden, konnten nicht geladen werden. Bitte ändern Sie Ihre PHP-Konfiguration und aktivieren Sie diese Erweiterungen oder deaktivieren Sie die Zeichensatzkonvertierung in phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Kann Index nicht in PRIMARY umbenennen!';
+$strCantUseRecodeIconv = 'Weder die iconv- noch libiconv- oder recode_string-Funktion konnte verwandt werden, obwohl die benötigten php-Erweiterungen angeblich geladen wurden. Bitte überprüfen Sie Ihre PHP-Konfiguration.';
+$strCardinality = 'Kardinalität';
+$strCaseInsensitive = 'case-insensitive';
+$strCaseSensitive = 'case-sensitive';
+$strCentralEuropean = 'Mitteleuropäisch';
+$strChange = 'Ändern';
+$strChangeCopyMode = 'Erstelle einen neuen Benutzer mit identischen Rechten und ...';
+$strChangeCopyModeCopy = ' ... behalte den alten bei.';
+$strChangeCopyModeDeleteAndReload = ' ... lösche den alten und lade anschließend die Benutzertabellen neu.';
+$strChangeCopyModeJustDelete = ' ... lösche den alten von den Benutzertabellen.';
+$strChangeCopyModeRevoke = ' ... entziehe dem alten alle Rechte und lösche ihn anschließend.';
+$strChangeCopyUser = 'Anmelde-Information ändern / Benutzer kopieren';
+$strChangeDisplay = 'Anzuzeigende Spalte bestimmen';
+$strChangePassword = 'Passwort ändern';
+$strCharset = 'Zeichensatz';
+$strCharsetOfFile = 'Zeichencodierung der Datei:';
+$strCharsets = 'Zeichensätze';
+$strCharsetsAndCollations = 'Zeichensätze und Kollationen';
+$strCheck = 'Überprüfen';
+$strCheckAll = 'Alle auswählen';
+$strCheckOverhead = 'Tabellen m. Überhang ausw.';
+$strCheckPrivs = 'Rechte überprüfen';
+$strCheckPrivsLong = 'Überprüft die Rechte für die Datenbank &quot;%s&quot;.';
+$strCheckTable = 'Überprüfe Tabelle';
+$strChoosePage = 'Bitte wählen Sie die zu bearbeitende Seite.';
+$strColComFeat = 'Darstellung von Spaltenkommentaren';
+$strCollation = 'Kollation';
+$strColumnNames = 'Spaltennamen';
+$strColumnPrivileges = 'Spaltenspezifische Rechte';
+$strCommand = 'Befehl';
+$strComments = 'Kommentare';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 kompatibel';
+$strCompleteInserts = 'Vollständige \'INSERT\'s';
+$strCompression = 'Kompression';
+$strCompressionWillBeDetected = 'Dateikomprimierung wird automatisch erkannt bei: %s';
+$strConfigDefaultFileError = 'Fehler beim Laden der Standard-Konfiguration von: "%1$s"';
+$strConfigFileError = 'phpMyAdmin konnte Ihre Konfigurationsdatei nicht verarbeiten!<br />Dies kann passieren, wenn der PHP-Parser Syntaxfehler in ihr findet oder sie nicht existiert.<br />Bitte rufen Sie die Konfigurationsdatei über den unteren Link direkt auf und lesen Sie die PHP-Fehlermeldungen, die Sie erhalten. Meistens fehlt bloß irgendwo ein Anführungszeichen oder Semikolon.<br />Wenn Sie eine leere Seite erhalten, ist Ihre Konfigurationsdatei in Ordnung.';
+$strConfigureTableCoord = 'Bitte konfigurieren Sie die Koordinaten für die Tabelle %s';
+$strConnectionError = 'Die Verbindung konnte aufgrund von ungültigen Einstellungen nicht hergestellt werden.';
+$strConnections = 'Verbindungen';
+$strConstraintsForDumped = 'Constraints der exportierten Tabellen';
+$strConstraintsForTable = 'Constraints der Tabelle';
+$strControluserFailed = 'Verbindung für den controluser, wie er in Ihrer Konfiguration angegeben ist, ist fehlgeschlagen.';
+$strCookiesRequired = 'Ab diesem Punkt müssen Cookies aktiviert sein.';
+$strCopy = 'Kopieren';
+$strCopyDatabaseOK = 'Datenbank %s wurde nach %s kopiert';
+$strCopyTable = 'Kopiere Tabelle nach (Datenbank<b>.</b>Tabellenname):';
+$strCopyTableOK = 'Tabelle %s wurde nach %s kopiert.';
+$strCopyTableSameNames = 'Tabelle kann nicht mit gleichem Namen kopiert werden!';
+$strCouldNotKill = 'phpMyAdmin konnte den Prozess %s nicht abbrechen. Er wurde wahrscheinlich bereits geschlossen.';
+$strCreate = 'Anlegen';
+$strCreateDatabaseBeforeCopying = 'Vor dem Kopieren CREATE DATABASE ausführen.';
+$strCreateIndex = 'Index über&nbsp;%s&nbsp;Spalten anlegen';
+$strCreateIndexTopic = 'Neuen Index anlegen';
+$strCreateNewDatabase = 'Neue Datenbank anlegen';
+$strCreateNewTable = 'Neue Tabelle in Datenbank %s erstellen';
+$strCreatePage = 'Neue Seite erstellen';
+$strCreatePdfFeat = 'Erzeugen von PDFs';
+$strCreateRelation = 'Erzeuge Verknüpfung';
+$strCreateTable = 'Erzeuge Tabelle';
+$strCreateUserDatabase = 'Datenbank für Benutzer';
+$strCreateUserDatabaseName = 'Erstelle eine Datenbank mit gleichem Namen und gewähre alle Rechte';
+$strCreateUserDatabaseNone = 'Keine';
+$strCreateUserDatabaseWildcard = 'Gewähre alle Rechte auf Datenbanken die mit dem Benuterznamen beginnen (username\_%)';
+$strCreationDates = 'Erzeugungs- / Aktualisierungs- / Überprüfungszeiten';
+$strCriteria = 'Kriterium';
+$strCroatian = 'Kroatisch';
+$strCyrillic = 'Kyrillisch';
+$strCzech = 'Tschechisch';
+$strCzechSlovak = 'Tschechoslowakisch';
+
+$strDBComment = 'Datenbankkommentar: ';
+$strDBCopy = 'Datenbank kopieren nach';
+$strDBRename = 'Datenbank umbenennen in';
+$strDanish = 'Dänisch';
+$strData = 'Daten';
+$strDataDict = 'Strukturverzeichnis';
+$strDataOnly = 'Nur Daten';
+$strDataPages = 'Daten enthaltende Seiten';
+$strDatabase = 'Datenbank';
+$strDatabaseEmpty = 'Der Datenbankname ist leer!';
+$strDatabaseExportOptions = 'Export-Optionen der Datenbank';
+$strDatabaseHasBeenCreated = 'Die Datenbank %1$s wurde erzeugt.';
+$strDatabaseHasBeenDropped = 'Datenbank %s wurde gelöscht.';
+$strDatabases = 'Datenbanken';
+$strDatabasesDropped = 'Es wurden %s Datenbanken gelöscht.';
+$strDatabasesStats = 'Statistik über alle Datenbanken';
+$strDatabasesStatsDisable = 'Datenbankstatistiken deaktivieren';
+$strDatabasesStatsEnable = 'Datenbankstatistiken aktivieren';
+$strDatabasesStatsHeavyTraffic = 'Bitte beachten Sie: Das Aktivieren der Datenbankstatistiken kann starken Traffic zwischen dem Web- und dem MySQL-Server zur Folge haben.';
+$strDbIsEmpty = 'Die Datenbank scheint leer zu sein!';
+$strDbPrivileges = 'Datenbankspezifische Rechte';
+$strDbSpecific = 'datenbankspezifisch';
+$strDefault = 'Standard';
+$strDefaultEngine = 'Neue Tabellen werden standardmäßig im Format %s angelegt.';
+$strDefaultValueHelp = 'Bitte geben Sie jeweils nur einen Standardwert ohne Escape- oder Anführungszeichen an.';
+$strDefragment = 'Tabelle defragmentieren';
+$strDelOld = 'Auf der aktuellen Seite bestehen Referenzen zu Tabellen, die nicht mehr existieren. Sollen diese Referenzen gelöscht werden?';
+$strDelayedInserts = 'Verzögerten INSERT-Befehl verwenden';
+$strDelete = 'Löschen';
+$strDeleteAndFlush = 'Die Benutzer löschen und die Benutzertabellen anschließend neu laden.';
+$strDeleteAndFlushDescr = 'Dies ist zwar der sauberste Weg, jedoch kann es einige Zeit in Anspruch nehmen, die Benutzertabellen neu zu laden.';
+$strDeleteNoUsersSelected = 'Es wurden keine Benutzer zum Löschen ausgewählt!';
+$strDeleteRelation = 'Verknüpfung löschen';
+$strDeleted = 'Die Zeile wurde gelöscht.';
+$strDeleting = 'Lösche %s';
+$strDelimiter = 'Begrenzer';
+$strDescending = 'absteigend';
+$strDescription = 'Beschreibung';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'Das Anzeigefeld wird in rosa angezeigt. Um ein Feld anzeigen zu lassen oder nicht, klicken Sie auf das "Anzeige-Wahl-Bild", dann auf den passenden Feldnamen.';
+$strDictionary = 'Wörterbuch';
+$strDirectLinks = 'Direkte Verbindung';
+$strDirtyPages = 'Inkonsistente Seiten (&quot;dirty&quot;)';
+$strDisableForeignChecks = 'Fremdschlüsselüberprüfung deaktivieren';
+$strDisabled = 'Deaktiviert';
+$strDisplayFeat = 'Anzeige verknüpfter Daten';
+$strDisplayOrder = 'Sortierung nach:';
+$strDisplayPDF = 'PDF-Schema anzeigen';
+$strDoAQuery = 'Suche über Beispielwerte ("query by example") (Platzhalter: "%")';
+$strDoYouReally = 'Möchten Sie wirklich diese Abfrage ausführen ';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentation';
+$strDrop = 'Löschen';
+$strDropDatabaseStrongWarning = 'Sie sind dabei eine komplette Datenbank zu ZERSTÖREN!';
+$strDropUsersDb = 'Die gleichnamigen Datenbanken löschen.';
+$strDumpSaved = 'Dump (Schema) wurde in Datei %s gespeichert.';
+$strDumpXRows = 'Exportiere %s Datensätze ab Zeile %s.';
+$strDumpingData = 'Daten für Tabelle';
+$strDynamic = 'dynamisch';
+
+$strEdit = 'Bearbeiten';
+$strEditPDFPages = 'PDF-Seiten bearbeiten';
+$strEditPrivileges = 'Rechte ändern';
+$strEffective = 'Effektiv';
+$strEmpty = 'Leeren';
+$strEmptyResultSet = 'MySQL lieferte ein leeres Resultat zurück (d.&nbsp;h. null Zeilen).';
+$strEnabled = 'Aktiviert';
+$strEncloseInTransaction = 'Export in einer Transaktion zusammenfassen';
+$strEnd = 'Ende';
+$strEndCut = 'AUSSCHNITTSENDE';
+$strEndRaw = 'ENDE DER AUSGABE';
+$strEngineAvailable = '%s ist auf diesem MySQL-Server verfügbar.';
+$strEngineDisabled = '%s wurde auf diesem MySQL-Server deaktiviert.';
+$strEngineUnsupported = 'Dieser MySQL-Server unterstützt %s nicht.';
+$strEngines = 'Formate';
+$strEnglish = 'Englisch';
+$strEnglishPrivileges = 'MySQL-Rechte werden auf Englisch angegeben.';
+$strError = 'Fehler';
+$strErrorInZipFile = 'Fehler im ZIP-Archiv:';
+$strErrorRelationAdded = 'Fehler: Verknüpfung nicht hinzugefügt.';
+$strErrorRelationExists = 'Fehler: Verknüpfung existiert bereits.';
+$strErrorRenamingTable = 'Fehler beim umbenennen von Tabelle %1$s nach %2$s';
+$strErrorSaveTable = 'Fehler beim speichern der Koordinaten für den Designer.';
+$strEscapeWildcards = 'Platzhalter _ und % sollten mit einem \ escaped werden, um das gewünschte Sonderzeichen einzubinden';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estnisch';
+$strEvent = 'Ereignis';
+$strExcelEdition = 'Excel-Ausgabe';
+$strExecuteBookmarked = 'Gespeicherte SQL-Anfrage ausführen';
+$strExplain = 'SQL erklären';
+$strExport = 'Exportieren';
+$strExportMustBeFile = 'Der gewählte Export-Typ kann nur als Datei exportiert werden!';
+$strExtendedInserts = 'Erweiterte \'INSERT\'s';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Fehlgeschlagen';
+$strField = 'Feld';
+$strFieldHasBeenDropped = 'Spalte %s wurde entfernt.';
+$strFieldInsertFromFileTempDirNotExists = 'Fehler beim Verschieben der hochgeladenen Datei, siehe FAQ 1.11';
+$strFields = 'Felder';
+$strFieldsEnclosedBy = 'Felder eingeschlossen von';
+$strFieldsEscapedBy = 'Felder escaped von';
+$strFieldsTerminatedBy = 'Felder getrennt mit';
+$strFileAlreadyExists = 'Die Datei %s besteht bereits auf dem Server. Bitte ändern Sie den Dateinamen oder wählen Sie die Überschreibungs-Option.';
+$strFileCouldNotBeRead = 'Die Datei konnte nicht gelesen werden';
+$strFileNameTemplate = 'Dateinamenskonvention';
+$strFileNameTemplateDescription = 'Dieser Wert wird mit %1$sstrftime%2$s geparst, Sie können also Platzhalter für Datum und Uhrzeit verwenden. Darüber hinaus werden folgende Umformungen durchgeführt: %3$s. Der übrige Text bleibt unberührt.';
+$strFileNameTemplateDescriptionDatabase = 'Datenbank-Name';
+$strFileNameTemplateDescriptionServer = 'Server-Name';
+$strFileNameTemplateDescriptionTable = 'Tabellen-Name';
+$strFileNameTemplateRemember = 'Konvention merken';
+$strFileToImport = 'Zu importierende Datei';
+$strFiles = 'Dateien';
+$strFixed = 'starr';
+$strFlushPrivilegesNote = 'phpMyAdmin liest die Benutzerprofile direkt aus den entsprechenden MySQL-Tabellen aus. Der Inhalt dieser Tabellen kann sich von den Benutzerprofilen, die MySQL z.Zt. verwendet, unterscheiden, wenn manuelle Änderungen vorgenommen wurden. In diesem Fall sollten Sie %sdie Benutzerprofile neu laden%s bevor Sie fortfahren.';
+$strFlushQueryCache = 'Den Abfragencache leeren (FLUSH)';
+$strFlushTable = 'Leeren des Tabellencaches ("FLUSH")';
+$strFlushTables = 'Den Tabellencache leeren ("FLUSH")';
+$strFontSize = 'Schriftgröße';
+$strForeignKeyError = 'Fehler beim Erzeugen eines Fremdschlüssels für %1$s (überprüfen Sie die Datentypen)';
+$strFormEmpty = 'Das Formular ist leer !';
+$strFormat = 'Format';
+$strFreePages = 'Unbenutzte Seiten';
+$strFullText = 'vollständige Textfelder';
+$strFunction = 'Funktion';
+$strFunctions = 'Funktionen';
+
+$strGenBy = 'Erstellt von';
+$strGenTime = 'Erstellungszeit';
+$strGeneralRelationFeat = 'Allgemeine Verknüpfungsfunktionen';
+$strGenerate = 'Generieren';
+$strGeneratePassword = 'Passwort generieren';
+$strGeorgian = 'Georgisch';
+$strGerman = 'Deutsch';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Globale Rechte';
+$strGlobalValue = 'Globaler Wert';
+$strGo = 'OK';
+$strGrantOption = 'Grant';
+$strGreek = 'Griechisch';
+$strGzip = 'GZip-komprimiert';
+
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHandler = 'Handler';
+$strHasBeenAltered = 'wurde geändert.';
+$strHaveToShow = 'Bitte wählen Sie mindestens eine anzuzeigende Spalte';
+$strHebrew = 'Hebräisch';
+$strHelp = 'Hilfe';
+$strHexForBLOB = 'Benutze hexadecimal für BLOB';
+$strHide = 'Verstecken';
+$strHideShowAll = 'Zeige/Verstecke alles';
+$strHideShowNoRelation = 'Zeige/Verstecke Tabellen ohne Verknüpfung';
+$strHome = 'Home';
+$strHomepageOfficial = ' Offizielle Homepage ';
+$strHost = 'Host';
+$strHostEmpty = 'Es wurde kein Host angegeben!';
+$strHungarian = 'Ungarisch';
+
+$strIEUnsupported = 'Der Internet Explorer unterstützt diese Funktion nicht.';
+$strIcelandic = 'Isländisch';
+$strId = 'ID';
+$strIdxFulltext = 'Volltext';
+$strIgnore = 'Ignorieren';
+$strIgnoreDuplicates = 'Ignoriere doppelte Zeilen';
+$strIgnoreInserts = 'Fehlerübergehenden INSERT-Befehl verwenden';
+$strImport = 'Importieren';
+$strImportExportCoords = 'Import/Export Koordinaten für das PDF Schema';
+$strImportFiles = 'Dateiimport';
+$strImportFormat = 'Dateiformat';
+$strImportSuccessfullyFinished = 'Der Import wurde erfolgreich abgeschlossen, %d Abfragen wurden ausgeführt.';
+$strInUse = 'in Benutzung';
+$strIndex = 'Index';
+$strIndexHasBeenDropped = 'Index %s wurde entfernt.';
+$strIndexName = 'Indexname:';
+$strIndexType = 'Indextyp:';
+$strIndexWarningTable = 'Warnungen bei den Indizes der Tabelle `%s`';
+$strIndexes = 'Indizes';
+$strIndexesSeemEqual = 'Die Indizes %1$s und %2$s scheinen gleich zu sein und einer könnte möglicherweise entfernt werden.';
+$strInnoDBAutoextendIncrement = 'Autoerweiterungs-Schrittgröße';
+$strInnoDBAutoextendIncrementDesc = 'Die Größe, um die ein Tablespace erweitert wird, wenn er voll ist.';
+$strInnoDBBufferPoolSize = 'Größe des Puffer-Pools';
+$strInnoDBBufferPoolSizeDesc = 'Die Größe des Arbeitsspeicherpuffers, den InnoDB verwendet, um Daten und Indizes zwischenzuspeichern.';
+$strInnoDBDataFilePath = 'Datendateien';
+$strInnoDBDataHomeDir = 'Pfad für Datendateien';
+$strInnoDBDataHomeDirDesc = 'Der Pfad des Verzeichnisses, unter welchem alle InnoDB-Datendateien abgelegt werden.';
+$strInnoDBPages = 'Seiten';
+$strInnodbStat = 'InnoDB-Status';
+$strInsecureMySQL = 'Ihre Konfigurationsdatei enthält Einstellungen (Benutzer &quot;root&quot; ohne Passwort), welche denen des MySQL-Standardbenutzers entsprechen. Wird Ihr MySQL-Server mit diesen Einstellungen betrieben, so können Unbefugte leicht von außen auf ihn zugreifen. Sie sollten diese Sicherheitslücke unbedingt schließen!';
+$strInsert = 'Einfügen';
+$strInsertAsNewRow = ' Als neuen Datensatz speichern ';
+$strInsertedRowId = 'ID der eingefügten Zeile: %1$d';
+$strInternalRelationAdded = 'Interne Verknüpfung hinzugefügt';
+$strInternalRelations = 'Interne Beziehungen';
+$strInvalidAuthMethod = 'Ungültige Authentifikationsmethode:';
+$strInvalidCSVFieldCount = 'Ungültige Anzahl an Feldern in Zeile %d.';
+$strInvalidCSVFormat = 'Ungültiges Format in Zeile %d.';
+$strInvalidCSVParameter = 'Ungültiger Parameter für CSV-Import: "%s"';
+$strInvalidColumn = 'Ungültige Spalte angegeben (%s)!';
+$strInvalidColumnCount = 'Die Spaltenanzahl muss größer als 0 sein.';
+$strInvalidDatabase = 'ungültige Datenbank';
+$strInvalidFieldAddCount = 'Sie müssen mindestens ein Feld hinzufügen.';
+$strInvalidFieldCount = 'Die Tabelle muss mindestens ein Feld haben.';
+$strInvalidLDIImport = 'Dieses Plugin unterstützt keine Kompression!';
+$strInvalidRowNumber = '%d ist keine gültige Zeilennummer.';
+$strInvalidServerHostname = 'Ungültiger Host-Name für Server %1$s. Bitte überprüfen Sie Ihre Konfiguration.';
+$strInvalidServerIndex = 'Ungültige Server-Nummer: "%s"';
+$strInvalidTableName = 'ungültiger Tabellenname';
+
+$strJapanese = 'Japanisch';
+$strJoins = 'Tabellenverknüpfungen (joins)';
+$strJumpToDB = 'Zur Datenbank &quot;%s&quot; springen.';
+$strJustDelete = 'Die Benutzer aus den Benutzertabellen löschen.';
+$strJustDeleteDescr = 'Die &quot;gelöschten&quot; Benutzer könnten weiterhin wie gewohnt auf den Server zugreifen, bis die Benutzertabellen neu geladen werden.';
+
+$strKeepPass = 'Passwort nicht verändert';
+$strKeyCache = 'Schlüssel-Cache';
+$strKeyname = 'Name';
+$strKill = 'Beenden';
+$strKnownExternalBug = 'Die Funktion "%s" wird durch einen bekannten Fehler beeinträchtigt, siehe %s';
+$strKorean = 'Koreanisch';
+
+$strLDI = 'CSV mit LOAD DATA';
+$strLDILocal = 'verwende LOCAL';
+$strLaTeX = 'LaTeX';
+$strLandscape = 'Querformat';
+$strLanguage = 'Sprache';
+$strLanguageUnknown = 'Unbekannte Sprache: "%1$s".';
+$strLatchedPages = 'Belegte Seiten';
+$strLatexCaption = 'Tabellenbeschriftung';
+$strLatexContent = 'Inhalt der Tabelle __TABLE__';
+$strLatexContinued = '(Fortsetzung)';
+$strLatexContinuedCaption = 'Fortgesetzte Tabellenbeschriftung';
+$strLatexIncludeCaption = 'Tabellenbeschriftung einfügen';
+$strLatexLabel = 'Kennzeichen';
+$strLatexStructure = 'Struktur der Tabelle __TABLE__';
+$strLatvian = 'Lettisch';
+$strLengthSet = 'Länge/Set';
+$strLimitNumRows = 'Einträge pro Seite';
+$strLinesTerminatedBy = 'Zeilen getrennt mit';
+$strLinkNotFound = 'Der Verweis wurde nicht gefunden.';
+$strLinksTo = 'Verweise';
+$strLithuanian = 'Litauisch';
+$strLocalhost = 'Lokal';
+$strLocationTextfile = 'Datei';
+$strLogPassword = 'Passwort:';
+$strLogServer = 'Server';
+$strLogUsername = 'Benutzername:';
+$strLogin = 'Anmeldung';
+$strLoginInformation = 'Anmelde-Informationen';
+$strLogout = 'Neu anmelden';
+$strLongOperation = 'Diese Operation könnte einige Zeit beanspruchen. Trotzdem weitermachen?';
+
+$strMIMETypesForTable = 'MIME TYPEN DER TABELLE';
+$strMIME_MIMEtype = 'MIME-Typ';
+$strMIME_available_mime = 'Verfügbare MIME-Typen';
+$strMIME_available_transform = 'Verfügbare Umwandlungen';
+$strMIME_description = 'Beschreibung';
+$strMIME_nodescription = 'Für diese Umwandlung ist keine Beschreibung verfügbar.<br />Für weitere Informationen wenden Sie sich bitte an den Autoren der Funktion &quot;%s&quot;.';
+$strMIME_transformation = 'Darstellungsumwandlung';
+$strMIME_transformation_note = 'Um eine Liste aller verfügbaren MIME-Typen-Umwandlungen und deren Optionen zu sehen, klicken Sie bitte auf %sUmwandlungen%s';
+$strMIME_transformation_options = 'Umwandlungsoptionen';
+$strMIME_transformation_options_note = 'Bitte die Werte für die Umwandlungsoptionen in folgendem Format angeben: \'a\', 100, b,\'c\',... Wann immer Sie ein Backslash ("\") oder ein einfaches Anführungszeichen ("\'") verwenden, setzen Sie bitte ein Backslash vor das Zeichen. (z. B.: \'\\\\xyz\' oder \'a\\\'b\').';
+$strMIME_without = 'Kursiv dargestellte MIME-Typen besitzen keine untergliederten Umwandlungen.';
+$strMaxConnects = 'max. gleichzeitige Verbindungen';
+$strMaximalQueryLength = 'Maximale Länge der erstellten Abfrage';
+$strMaximumSize = 'Maximale Dateigröße: %s%s';
+$strMbExtensionMissing = 'Die PHP-Erweiterung "mbstring" wurde nicht gefunden, trotzdem jedoch scheinen Sie einen Mehrbyte-Zeichensatz zu verwenden. Ohne besagte Erweiterung ist phpMyAdmin nicht in der Lage Zeichenketten zu trennen, was zu unerwarteten Ergebnissen führen kann.';
+$strMbOverloadWarning = 'Sie haben die Option "mbstring.func_overload" in Ihrer PHP-Konfiguration aktiviert. Diese ist nicht kompatibel zu phpMyAdmin, weshalb es zu Problemen und Datenverlust kommen kann.';
+$strModifications = 'Änderungen gespeichert.';
+$strModify = 'Verändern';
+$strModifyIndexTopic = 'Index modifizieren';
+$strMoveMenu = 'Verschiebe Menü';
+$strMoveTable = 'Verschiebe Tabelle nach (Datenbank<b>.</b>Tabellenname):';
+$strMoveTableOK = 'Tabelle %s wurde nach %s verschoben.';
+$strMoveTableSameNames = 'Tabelle kann nicht mit gleichem Namen verschoben werden!';
+$strMultilingual = 'mehrsprachig';
+$strMyISAMDataPointerSize = 'Größe des Datenzeigers';
+$strMyISAMDataPointerSizeDesc = 'Standardmäßige Größe des Zeigers, welcher von CREATE TABLE für MyISAM-Tabellen verwendet wird, sofern die Option MAX_ROWS nicht angegeben wird.';
+$strMyISAMMaxExtraSortFileSize = 'Maximum Größe temporärer Dateien bei Indexerstellung';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Wenn das Erzeugen der temporären Datei für schnelle Index-Erzeugung um diesen Wert größer sein würde als die Benutzung des Schlüssel-Caches, wird die Schlüssel-Cache-Methode bevorzugt.';
+$strMyISAMMaxSortFileSize = 'Maximale Größe temporärer Dateien beim Sortieren';
+$strMyISAMMaxSortFileSizeDesc = 'Die maximale Größe der temporären Datei, die MySQL benutzen darf, während es den Index erzeugt (während REPAIR, ALTER TABLE oder LOAD DATA INFILE).';
+$strMyISAMRecoverOptions = 'Autoreparatur-Modus';
+$strMyISAMRecoverOptionsDesc = 'Der Modus der automatischen Wiederherstellung abgestürzter MyISAM-Tabellen, wie über den Startparameter --myisam-recover angegeben.';
+$strMyISAMRepairThreads = 'Reparaturprozess';
+$strMyISAMRepairThreadsDesc = 'Wenn dieser Wert größer als 1 ist, werden MyISAM-Tabellenindizes während einer Reparatur oder eines Sortierungsprozesses parallel erstellt (jeder Index in einem separatem Prozess).';
+$strMyISAMSortBufferSize = 'Größe des Sortierungspuffers';
+$strMyISAMSortBufferSizeDesc = 'Der Puffer, der beim Sortieren des Indexes zugewiesen wird, wenn man ein REPAIR oder ausführt oder Indizes mit CREATE INDEX oder ALTER TABLE erzeugt.';
+$strMySQLCharset = 'MySQL-Zeichensatz';
+$strMySQLConnectionCollation = 'Zeichensatz / Kollation der MySQL-Verbindung';
+$strMySQLSaid = 'MySQL meldet: ';
+$strMySQLShowProcess = 'Prozesse anzeigen';
+$strMysqlClientVersion = 'MySQL-Client-Version';
+$strMysqlLibDiffersServerVersion = 'Die Version der verwendeten PHP MySQL Bibliothek %s unterscheidet sich von der Version des MySQL Servers %s. Dies kann zu unerwartetem Verhalten führen.';
+
+$strName = 'Name';
+$strNext = 'Nächste';
+$strNo = 'Nein';
+$strNoActivity = 'Da Sie seit mindestens %s Sekunden inaktiv waren, wurden Sie automatisch abgemeldet. Bitte melden Sie sich erneut an.';
+$strNoDataReceived = 'Es wurden keinen Daten zum importieren empfangen. Entweder wurde keine Datei ausgewählt, oder die Dateigröße hat die maximal erlaubte Größe der PHP Konfiguration überschritten. Siehe FAQ 1.16.';
+$strNoDatabases = 'Keine Datenbanken';
+$strNoDatabasesSelected = 'Es wurden keine Datenbanken ausgewählt.';
+$strNoDescription = 'keine Beschreibung';
+$strNoDetailsForEngine = 'Für dieses Tabellenformat sind keine Statusinformationen verfügbar';
+$strNoDropDatabases = 'Die Anweisung "DROP DATABASE" wurde deaktiviert.';
+$strNoExplain = 'SQL-Erklärung umgehen';
+$strNoFilesFoundInZip = 'Keine Dateien im ZIP-Archiv gefunden!';
+$strNoFrames = 'phpMyAdmin arbeitet besser mit einem <b>Frame</b>-fähigen Browser.';
+$strNoIndex = 'Kein Index definiert!';
+$strNoIndexPartsDefined = 'Keine Indizes definiert.';
+$strNoModification = 'Keine Änderung';
+$strNoOptions = 'Für dieses Format sind keine Optionen vorhanden';
+$strNoPassword = 'Kein Passwort';
+$strNoPermission = 'Der Webserver hat keine Schreibrechte um die Datei %s zu speichern.';
+$strNoPhp = 'ohne PHP-Code';
+$strNoPrivileges = 'Keine Rechte';
+$strNoRights = 'Sie haben nicht genug Rechte um fortzufahren!';
+$strNoRowsSelected = 'Es wurden keine Datensätze ausgewählt.';
+$strNoSpace = 'Zu wenig Speicherplatz um die Datei %s zu speichern.';
+$strNoTablesFound = 'Es wurden keine Tabellen in der Datenbank gefunden.';
+$strNoThemeSupport = 'Die Unterstützung für Oberflächendesigns ist deaktiviert. Bitte überprüfen Sie Ihre Konfiguration und / oder Ihre Designs im Verzeichnis %s.';
+$strNoUsersFound = 'Es wurden keine Benutzer gefunden.';
+$strNoValidateSQL = 'SQL-Validierung umgehen';
+$strNone = 'keine';
+$strNotNumber = 'Das ist keine Zahl!';
+$strNotOK = 'fehlerhaft';
+$strNotSet = 'Die Tabelle <b>%s</b> wurde entweder nicht gefunden oder in der Kofigurationsdatei %s nicht gesetzt.';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s Treffer in der Tabelle <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Insgesamt</b> <i>%s</i> Treffer';
+$strNumTables = 'Tabellen';
+$strNumberOfFields = 'Anzahl der Felder';
+$strNumberOfTables = 'Anzahl Tabellen';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Open Document Kalkulationstabelle';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Neues phpMyAdmin-Fenster';
+$strOperations = 'Operationen';
+$strOperator = 'Operator';
+$strOptimize = 'Optimieren';
+$strOptimizeTable = 'Optimiere Tabelle';
+$strOptions = 'Optionen';
+$strOr = 'oder';
+$strOverhead = 'Überhang';
+$strOverwriteExisting = 'Bestehende Datei(en) überschreiben';
+
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Erstellt einen Report mit den Daten einer Tabelle)';
+$strPDFReportTitle = 'Titel des Reports';
+$strPHPVersion = 'PHP-Version';
+$strPageNumber = 'Seite:';
+$strPagesToBeFlushed = 'Zurückzuschreibende Seiten';
+$strPaperSize = 'Papiergröße';
+$strPartialImport = 'Partieller Import';
+$strPartialText = 'gekürzte Textfelder';
+$strPartition = 'Partition %s';
+$strPartitionDefinition = 'PARTITION Definition';
+$strPartitionMaintenance = 'Partitions-Hilfsmittel';
+$strPartitioned = 'partitioniert';
+$strPassword = 'Passwort';
+$strPasswordChanged = 'Das Passwort für %s wurde geändert.';
+$strPasswordEmpty = 'Es wurde kein Passwort angegeben!';
+$strPasswordHashing = 'Password-Verschlüsselung';
+$strPasswordNotSame = 'Die eingegebenen Passwörter sind nicht identisch!';
+$strPdfDbSchema = 'Schema der Datenbank "%s" - Seite %s';
+$strPdfInvalidTblName = 'Die Tabelle "%s" existiert nicht!';
+$strPdfNoTables = 'keine Tabellen';
+$strPerHour = 'pro Stunde';
+$strPerMinute = 'pro Minute';
+$strPerSecond = 'pro Sekunde';
+$strPersian = 'Persisch';
+$strPhoneBook = 'Telefonbuch';
+$strPhp = 'PHP-Code erzeugen';
+$strPleaseSelectPrimaryOrUniqueKey = 'Bitte den PRIMARY KEY oder einen UNIQUE KEY wählen';
+$strPmaDocumentation = 'phpMyAdmin-Dokumentation';
+$strPmaUriError = 'Das <tt>$cfg[\'PmaAbsoluteUri\']</tt>-Verzeichnis MUSS in Ihrer Konfigurationsdatei angegeben werden!';
+$strPolish = 'Polnisch';
+$strPortrait = 'Hochformat';
+$strPos1 = 'Anfang';
+$strPrevious = 'Vorherige';
+$strPrimary = 'Primärschlüssel';
+$strPrimaryKeyHasBeenDropped = 'Der Primärschlüssel wurde gelöscht.';
+$strPrimaryKeyName = 'Der Name des Primärschlüssels muss PRIMARY lauten!';
+$strPrimaryKeyWarning = 'Der Name des Primärschlüssels darf <b>nur</b> "PRIMARY" lauten.';
+$strPrint = 'Drucken';
+$strPrintView = 'Druckansicht';
+$strPrintViewFull = 'Druckansicht (vollständige Textfelder)';
+$strPrivDescAllPrivileges = 'Enthält alle Rechte bis auf GRANT.';
+$strPrivDescAlter = 'Erlaubt das Verändern der Struktur bestehender Tabellen.';
+$strPrivDescAlterRoutine = 'Erlaubt das Verändern und Löschen von Routinen.';
+$strPrivDescCreateDb = 'Erlaubt das Erstellen neuer Datenbanken und Tabellen.';
+$strPrivDescCreateRoutine = 'Erlaubt das Erstellen von gespeicherten Routinen.';
+$strPrivDescCreateTbl = 'Erlaubt das Erstellen neuer Tabellen.';
+$strPrivDescCreateTmpTable = 'Erlaubt das Erstellen temporärer Tabellen.';
+$strPrivDescCreateUser = 'Erlaubt das Erstellen, Löschen und Umbenennen von Benutzern.';
+$strPrivDescCreateView = 'Erlaubt das Erstellen von Views.';
+$strPrivDescDelete = 'Erlaubt das Löschen von Daten.';
+$strPrivDescDropDb = 'Erlaubt das Löschen ganzer Datenbanken und Tabellen.';
+$strPrivDescDropTbl = 'Erlaubt das Löschen ganzer Tabellen.';
+$strPrivDescEvent = 'Erlaubt das Anlegen von Events für den Event-Scheduler';
+$strPrivDescExecute = 'Erlaubt das Ausführen gespeicherter Prozeduren; Hat keinen Effekt in dieser MySQL-Version.';
+$strPrivDescExecute5 = 'Erlaubt das Ausführen von Routinen.';
+$strPrivDescFile = 'Erlaubt das Importieren von Daten aus und das Exportieren in externe Dateien.';
+$strPrivDescGrant = 'Erlaubt das Hinzufügen von Benutzern und Rechten ohne den die Benutzerprofile neu laden zu müssen.';
+$strPrivDescIndex = 'Erlaubt das Erstellen und Löschen von Indizes.';
+$strPrivDescInsert = 'Erlaubt das Hinzufügen und Ersetzen von Daten.';
+$strPrivDescLockTables = 'Erlaubt die Sperrung bestimmter Tabellen.';
+$strPrivDescMaxConnections = 'Begrenzt die Anzahl neuer Verbindungen, welche ein Benutzer pro Stunde aufbauen darf.';
+$strPrivDescMaxQuestions = 'Begrenzt die Anzahl der Abfragen, welche ein Benutzer pro Stunde senden darf.';
+$strPrivDescMaxUpdates = 'Begrenzt die Anzahl der Veränderungen, welche ein Benutzer pro Stunde an allen Datenbanken und Tabellen vornehmen darf.';
+$strPrivDescMaxUserConnections = 'Beschränkt die Anzahl der gleichzeitigen Verbindungen für diesen Benutzer.';
+$strPrivDescProcess = 'Erlaubt die Anzeige der Prozesse aller Benutzer';
+$strPrivDescReferences = 'Hat keinen Effekt in dieser MySQL-Version.';
+$strPrivDescReload = 'Erlaubt das erneute Laden von Servereinstellungen und das Leeren der Zwischenspeicher zur Laufzeit.';
+$strPrivDescReplClient = 'Erlaubt dem Benutzer zu fragen, wo sich die Master- bzw. Slave-Systeme befinden';
+$strPrivDescReplSlave = 'Wird für die Replication-Slave-Systeme benötigt.';
+$strPrivDescSelect = 'Erlaubt das Auslesen von Daten.';
+$strPrivDescShowDb = 'Gewährt Zugang zur vollständigen Datenbankliste.';
+$strPrivDescShowView = 'Erlaubt das Ausführen von \'SHOW CREATE VIEW\'.';
+$strPrivDescShutdown = 'Erlaubt das Beenden des Servers.';
+$strPrivDescSuper = 'Erlaubt eine Verbindung, selbst wenn die maximale Anzahl an Verbindungen bereits erreicht ist; Wird für viele administrative Operationen, wie das Setzen globaler Variables oder das Beenden fremder Prozesse, vorausgesetzt.';
+$strPrivDescTrigger = 'Erlaubt das Erzeugen und Löschen Triggern';
+$strPrivDescUpdate = 'Erlaubt das Verändern von gespeicherten Daten.';
+$strPrivDescUsage = 'Keine Rechte.';
+$strPrivileges = 'Rechte';
+$strPrivilegesReloaded = 'Die Benutzerprofile wurden neu geladen.';
+$strProcedures = 'Prozeduren';
+$strProcesses = 'Prozesse';
+$strProcesslist = 'Prozesse';
+$strProfiling = 'Messen';
+$strProtocolVersion = 'Protokoll-Version';
+$strPutColNames = 'Feldnamen in die erste Zeile setzen';
+
+$strQBE = 'Abfrageeditor';
+$strQBEDel = 'Entf.';
+$strQBEIns = 'Einf.';
+$strQueryCache = 'Abfragencache';
+$strQueryFrame = 'Abfragefenster';
+$strQueryOnDb = ' SQL-Befehl in der Datenbank <b>%s</b>:';
+$strQueryResultsOperations = 'Operationen für das Abfrageergebnis';
+$strQuerySQLHistory = 'SQL-Verlaufsprotokoll';
+$strQueryStatistics = '<b>Abfragestatistik</b>: Seit seinem Start wurden %s Abfragen an diesen MySQL-Server gesandt.';
+$strQueryTime = 'die Abfrage dauerte %01.4f sek.';
+$strQueryType = 'Abfrageart';
+$strQueryWindowLock = 'Abfrage vor Änderungen außerhalb des Fensters schützen';
+
+$strReType = 'Wiederholen';
+$strReadRequests = 'Leseanfragen';
+$strRebuild = 'Neuaufbauen';
+$strReceived = 'Empfangen';
+$strRecommended = 'empfohlen';
+$strRecords = 'Einträge';
+$strReferentialIntegrity = 'Prüfe referentielle Integrität:';
+$strRefresh = 'Aktualisieren';
+$strRelationDeleted = 'Verknüpfung gelöscht';
+$strRelationNotWorking = 'Die zusätzlichen Funktionen für verknüpfte Tabellen wurden automatisch deaktiviert. Klicken Sie %shier%s um herauszufinden warum.';
+$strRelationView = 'Beziehungsübersicht';
+$strRelationalSchema = 'Beziehungsschema';
+$strRelations = 'Tabellenverknüpfungen';
+$strRelationsForTable = 'RELATIONEN DER TABELLE';
+$strReload = 'Neuladen';
+$strReloadPrivileges = 'Die Rechte neu laden';
+$strReloadingThePrivileges = 'Lade die Benutzertabellen neu';
+$strRemovePartitioning = 'Entferne die Partitionierung';
+$strRemoveSelectedUsers = 'Die ausgewählten Benutzer löschen';
+$strRenameDatabaseOK = 'Datenbank %s wurde umbenannt zu %s';
+$strRenameTable = 'Tabelle umbenennen in';
+$strRenameTableOK = 'Tabelle %s wurde umbenannt in %s.';
+$strRepair = 'Reparieren';
+$strRepairTable = 'Repariere Tabelle';
+$strReplaceNULLBy = 'Ersetze NULL durch';
+$strReplaceTable = 'Tabelleninhalt ersetzen';
+$strReplication = 'Replikation';
+$strReset = 'Zurücksetzen';
+$strResourceLimits = 'Ressourcenbeschränkungen';
+$strRestartInsertion = 'Einfügen mit %s Zeilen neu starten';
+$strRevoke = 'Entfernen';
+$strRevokeAndDelete = 'Den Benutzern alle Rechte entziehen und sie anschließend aus den Benutzertabellen löschen.';
+$strRevokeAndDeleteDescr = 'Die Benutzer würden weiterhin das USAGE-Recht behalten, bis die Benutzertabellen neu geladen werden.';
+$strRevokeMessage = 'Sie haben die Rechte für %s entfernt.';
+$strRomanian = 'Rumänisch';
+$strRoutineReturnType = 'Rückgabe-Typ';
+$strRoutines = 'Routinen';
+$strRowLength = 'Zeilenlänge';
+$strRowSize = 'Zeilengröße';
+$strRows = 'Zeilen';
+$strRowsAffected = '%1$d Zeile(n) betroffen.';
+$strRowsDeleted = '%1$d Zeile(n) gelöscht.';
+$strRowsFrom = 'Datensätze, beginnend ab';
+$strRowsInserted = '%1$d Zeile(n) eingefügt.';
+$strRowsModeFlippedHorizontal = 'horizontal (gedrehte Bezeichner)';
+$strRowsModeHorizontal = 'untereinander';
+$strRowsModeOptions = '%s angeordnet und wiederhole die Kopfzeilen nach %s Datensätzen.';
+$strRowsModeVertical = 'nebeneinander';
+$strRowsStatistic = 'Zeilenstatistik';
+$strRunQuery = 'SQL-Befehl ausführen';
+$strRunSQLQuery = 'SQL-Befehl(e) in Datenbank %s ausführen';
+$strRunSQLQueryOnServer = 'SQL-Befehl(e) auf Server %s ausführen';
+$strRunning = 'auf %s';
+$strRussian = 'Russisch';
+
+$strSQL = 'SQL';
+$strSQLCompatibility = 'SQL-Kompatibilitätsmodus';
+$strSQLExportType = 'Exporttyp';
+$strSQLParserBugMessage = 'Möglicherweise haben Sie einen Bug im SQL-Parser entdeckt. Bitte überprüfen Sie Ihre Abfrage genaustens, insbesondere auf falsch gesetzte oder nicht geschlossene Anführungszeichen. Eine weitere Ursache könnte darin liegen, dass Sie versuchen eine Datei mit binären Daten, welche nicht von Anführungszeichen eingeschlossen sind, hochzuladen. Sie können alternativ versuchen Ihre Abfrage über das MySQL-Kommandozeileninterface zu senden. Die MySQL-Fehlerausgabe, falls vorhanden, kann Ihnen auch bei der Fehleranalyse helfen. Falls Sie weiterhin Probleme haben sollten oder der Parser dort versagt, wo die Kommandozeile erfolgreich ist, so reduzieren Sie bitte Ihre Abfrage auf den Befehl, welcher die Probleme verursacht, und senden Sie uns einen Fehlerbericht mit den Datenausschnitt, den Sie weiter unten auf dieser Seite finden.:';
+$strSQLParserUserError = 'Es scheint einen Fehler in Ihrer MySQL-Abfrage zu geben. Die MySQL-Fehlerausgabe, falls vorhanden, kann Ihnen auch bei der Fehleranalyse helfen.';
+$strSQLQuery = 'SQL-Befehl';
+$strSQLResult = 'SQL-Abfrageergebnis';
+$strSQPBugInvalidIdentifer = 'Ungültiger Bezeichner';
+$strSQPBugUnclosedQuote = 'Nicht geschlossene Anführungszeichen';
+$strSQPBugUnknownPunctuation = 'Unbekannte Interpunktion';
+$strSave = 'Speichern';
+$strSaveOnServer = 'Datei auf dem Server in Verzeichnis %s speichern';
+$strSavePosition = 'Speichere Position';
+$strScaleFactorSmall = 'Der Skalierungsfaktor ist zu klein, sodass das Schema nicht auf eine Seite passt!';
+$strSearch = 'Suche';
+$strSearchFormTitle = 'Durchsuche die Datenbank';
+$strSearchInTables = 'In der / den Tabelle(n):';
+$strSearchNeedle = 'Zu suchende Wörter oder Werte (Platzhalter: "%"):';
+$strSearchOption1 = 'mindestens eines der Wörter';
+$strSearchOption2 = 'alle Wörter';
+$strSearchOption3 = 'genau diese Zeichenkette';
+$strSearchOption4 = 'als regulären Ausdruck';
+$strSearchResultsFor = 'Suchergebnisse für "<i>%s</i>" %s:';
+$strSearchType = 'Finde:';
+$strSecretRequired = 'Ab sofort muss ein geheimes Passwort zur Verschlüsselung in der Konfigurationsdatei gesetzt werden (blowfish_secret).';
+$strSelectADb = 'Bitte Datenbank auswählen';
+$strSelectAll = 'Alle auswählen';
+$strSelectBinaryLog = 'Binäres Protokoll zur Anzeige auswählen';
+$strSelectFields = 'Felder auswählen (min. eines):';
+$strSelectForeignKey = 'Wähle Fremdschlüssel';
+$strSelectNumRows = 'in der Abfrage';
+$strSelectReferencedKey = 'Wählen Sie den referenzierten Schlüssel';
+$strSelectTables = 'Tabellenauswahl';
+$strSend = 'Senden';
+$strSent = 'Gesendet';
+$strServer = 'Server';
+$strServerChoice = 'Server Auswählen';
+$strServerNotResponding = 'Der Server antwortet nicht.';
+$strServerStatus = 'Laufzeit-Informationen';
+$strServerStatusDelayedInserts = 'Verzögertes Einfügen (delayed inserts)';
+$strServerStatusUptime = 'Dieser MySQL-Server läuft bereits %s. Er wurde am %s gestartet.';
+$strServerTabVariables = 'Variablen';
+$strServerTrafficNotes = '<b>Servertraffic</b>: In diesen Tabellen wird der Netzwerkverkehr dieses MySQL-Servers seit dessen Start aufgeführt.';
+$strServerVars = 'Servervariablen und -einstellungen';
+$strServerVersion = 'Server Version';
+$strServers = 'Server';
+$strSessionStartupErrorGeneral = 'Die Sitzung konnte nicht ohne Fehler gestartet werden, schauen Sie bitte in das Fehlerprokoll von PHP und/oder Ihres Webservers und konfigurieren Sie PHP entsprechend (session.save_path, Schreibrechte).';
+$strSessionValue = 'Wert für diese Sitzung';
+$strSetEnumVal = 'Wenn das Feld vom Typ \'ENUM\' oder \'SET\' ist, benutzen Sie bitte das Format: \'a\',\'b\',\'c\',... Wann immer Sie ein Backslash ("\") oder ein einfaches Anführungszeichen ("\'") verwenden, setzen Sie bitte ein Backslash vor das Zeichen. (z. B.: \'\\\\xyz\' oder \'a\\\'b\').';
+$strShow = 'Zeige';
+$strShowAll = 'Alles anzeigen';
+$strShowColor = 'mehrfarbig';
+$strShowDatadictAs = 'Format des Strukturverzeichnisses';
+$strShowFullQueries = 'Zeige die SQL-Abfragen vollständig an';
+$strShowGrid = 'Gitterlinien anzeigen';
+$strShowHideLeftMenu = 'Zeige/Verstecke linkes Menü';
+$strShowOpenTables = 'Zeige alle offenen Tabellen';
+$strShowPHPInfo = 'PHP-Informationen anzeigen';
+$strShowSlaveHosts = 'Zeige alle Slave-Rechner';
+$strShowSlaveStatus = 'Zeige den Slave-Status';
+$strShowStatusBinlog_cache_disk_useDescr = 'Anzahl der Transaktionen die den Binarylog-Cache verwendet, aber die Größe des Binarylog-Caches (binlog_cache_size) überschritten und eine temporäre Datei verwendet haben um die Statements der Transaktion zu speichern.';
+$strShowStatusBinlog_cache_useDescr = 'Anzahl der Transaktionen, die den temporären Binarylog-Cache verwendet haben.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Anzahl der (implizit) auf der Platte erzeugten temporären Tabellen bei der Ausführung von Statements. Wenn Created_tmp_disk_tables hoch ist, sollten Sie eventuell die Variable tmp_table_size herauf setzen, damit temporäre Tabellen im Speicher erzeugt werden statt auf der Festplatte.';
+$strShowStatusCreated_tmp_filesDescr = 'Anzahl der temporären Dateien, die mysqld erzeugt hat.';
+$strShowStatusCreated_tmp_tablesDescr = 'Anzahl der (implizit) im Arbeitsspeicher erzeugten temporären Tabellen bei der Ausführung von Statements.';
+$strShowStatusDelayed_errorsDescr = 'Anzahl der Zeilen, die mit INSERT DELAYED geschrieben wurden, und bei denen ein Fehler auftrat (z. B. duplicate key).';
+$strShowStatusDelayed_insert_threadsDescr = 'Anzahl der verzögerten Insert-Handler-Prozesse in Benutzung. Jede einzelne Tabelle mit verzögerten Inserts bekommt einen eigenen Prozess.';
+$strShowStatusDelayed_writesDescr = 'Anzahl der Zeilen, die mit INSERT DELAYED geschrieben wurden.';
+$strShowStatusFlush_commandsDescr = 'Anzahl der ausgeführten FLUSH-Befehle.';
+$strShowStatusHandler_commitDescr = 'Anzahl der Anfragen, ein COMMIT auszuführen.';
+$strShowStatusHandler_deleteDescr = 'Anzahl der Zeilen, die aus Tabellen gelöscht wurden.';
+$strShowStatusHandler_discoverDescr = 'Anzahl der gesuchten und gefundenen (discovered) Tabellen. Der MySQL-Server kann die NDB-Cluster-Storage-Engine fragen, ob sie eine bestimmte Tabelle kennt. Dieser Vorgang wird &quot;discovery&quot; genannt.';
+$strShowStatusHandler_read_firstDescr = 'Wie oft der erste Eintrag aus einem Index gelesen wurde. Ein hoher Wert hier deutet darauf hin, dass der Server viele komplette Index-Scans macht (zum Beispiel SELECT spalte1 FROM foo, unter der Annahme, dass spalte1 indiziert ist).';
+$strShowStatusHandler_read_keyDescr = 'Anzahl der Anfragen, eine Zeile basierend auf einem Schlüssel zu lesen. Wenn dieser Wert hoch ist, ist das ein gutes Indiz dafür, dass Ihre Anfragen und Tabellen korrekt indiziert sind.';
+$strShowStatusHandler_read_nextDescr = 'Anzahl der Anfragen, die nächste Zeile in der Reihenfolge des Schlüssels zu lesen. Dieser Wert wird herauf gezählt, wenn Sie eine Index-Spalte mit einer Bereichsbeschränkung (Limit) abfragen. Er wird ebenfalls herauf gezählt, wenn Sie einen Index-Scan durchführen.';
+$strShowStatusHandler_read_prevDescr = 'Anzahl der Anfragen, die vorhergehende Zeile in der Reihenfolge des Schlüssels zu lesen. Diese Lese-Methode ist hauptsächlich zur Optimierung von ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Anzahl der Anfragen, eine Zeile basierend auf einer festen Position zu lesen. Dieser Wert wird hoch sein, wenn Sie viele Anfragen ausführen, die erfordern, dass das Ergebnis sortiert wird. Wenn Handler_read_rnd hoch ist, haben Sie wahrscheinlich viele Anfragen, die MySQL zwingen, ganze Tabellen zu scannen, oder Sie haben Joins, die Schlüssel nicht richtig benutzen.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Anzahl der Anfragen, die nächste Zeile in der Daten-Datei zu lesen. Dieser Wert wird hoch sein, wenn Sie viele Tabellen-Scans durchführen. Im Allgemeinen weist das darauf hin, dass Ihre Tabellen nicht korrekt indiziert sind, oder dass Ihre Anfragen nicht so geschrieben sind, dass Sie Vorteile aus den Indexen ziehen, die Sie haben.';
+$strShowStatusHandler_rollbackDescr = 'Anzahl der Anfragen, ein ROLLBACK auszuführen.';
+$strShowStatusHandler_updateDescr = 'Anzahl der Anfragen, eine Zeile in einer Tabelle zu aktualisieren.';
+$strShowStatusHandler_writeDescr = 'Anzahl der Anfragen, eine Zeile in eine Tabelle einzufügen.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Anzahl der Seiten, die Daten enthalten (ob &quot;dirty&quot; oder nicht).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Anzahl der als &quot;dirty&quot; markierten Seiten.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Anzahl der Seiten im Puffer-Pool, die zurückgeschrieben werden müssen.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Anzahl der unbenutzten Seiten.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Anzahl der belegten Seiten. Diese Seiten werden gerade gelesen oder beschrieben oder können aus einem anderen Grund nicht zurückgeschrieben oder entfernt werden können.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Anzahl der durch administrativen Overhead, wie z. B. Zeilensperren oder den adaptiven Hash-Index ausgelasteten Seiten. Dieser Wert errechnet sich auch aus Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Die Größe des Puffer-Pools in Seiten.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Anzahl "random" read-aheads durch InnoDB. Dies geschieht wenn eine Abfrage einen großen Teil einer Tabelle durchsucht aber in zufälliger Reihenfolge.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Anzahl sequentieller read-aheads durch InnoDB. Dies geschieht wenn InnoDB eine Tabelle komplett sequentiell durchsucht.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Anzahl angeforderter Lesevorgängen durch InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Anzahl an Lesevorgängen die InnoDB nicht aus dem Zwischenspeicher bedienen konnte und deshalb einen Einzel-Seiten-Lesevorgang starten musste.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalerweise geschehen Schreibvorgänge im InnoDB Zwischenspeicher im Hintergrund. Abber wenn es nötig ist eine Seite zu lesen oder zu erstellen und es ist keine saubere Seite verfügbar dann ist es notwendig darauf zu warten das Seiten weggeschrieben werden. Dieser Wert gibt wieder wie oft das geschehen ist. Wenn die Zwischenspeicher-Größe korrekt eingestellt ist sollte dieser Wert klein sein.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Anzahl der Schreibvorgänge im InnoDB Zwischenspeicher.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Bisher ausgeführte fsync()-Operationen.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Momentan anstehende fsync()-Operationen.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Momentan anstehende Lesezugriffe.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Momentan anstehende Schreizugriffe.';
+$strShowStatusInnodb_data_readDescr = 'Wieviel Daten bisher gelesen wurden, in Byte.';
+$strShowStatusInnodb_data_readsDescr = 'Wie oft Daten gelesen wurden.';
+$strShowStatusInnodb_data_writesDescr = 'Wie oft Daten geschrieben wurden.';
+$strShowStatusInnodb_data_writtenDescr = 'Wieviel Daten bisher geschrieben wurden, in Byte.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Anzahl der ausgeführten "doublewrite" Schreibzugriffe und die Anzahl der Seiten die dafür geschrieben wurden.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Anzahl der ausgeführten "doublewrite" Schreibzugriffe und die Anzahl der Seiten die dafür geschrieben wurden.';
+$strShowStatusInnodb_log_waitsDescr = 'Wie oft gewartet werden musste weil der Protokoll-Zwischenspeicher zu klein war und deshalb gewartet wurde das er geleert wird.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Anzahl der Schreibzugriffe für die Protokoll-Datei.';
+$strShowStatusInnodb_log_writesDescr = 'Anzahl der tatsächlichen Schreibvorgänge der Protokoll-Datei.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Getätigte fsyncs Schreibzugriffe für die Protokoll-Datei.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Anstehende "fsyncs" für die Protokoll-Datei.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Anstehende Schreibzugriffe für die Protokoll-Datei.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Anzahl an Byte die in die Protokoll-Datei geschrieben wurden.';
+$strShowStatusInnodb_page_sizeDescr = 'Die fest kompilierte InnnoDB Seitengröße (Standard 16 KiB). Viele Werte werden in Seiten gezählt; die Seitengröße erlaubt es diese einfach in Byte umzurechnen.';
+$strShowStatusInnodb_pages_createdDescr = 'Anzahl erstellter Seiten.';
+$strShowStatusInnodb_pages_readDescr = 'Anzahl gelesener Seiten.';
+$strShowStatusInnodb_pages_writtenDescr = 'Anzahl geschriebener Seiten.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Momentan anstehende Zeilen-Sperren.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Summe aller Wartezeiten um Zeilen-Sperren zu bekommen, in Millisekunden.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Durchschnittliche Wartezeite um eine Zeilen-Sperre zu bekommen, in Millisekunden.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Längste Wartezeite um eine Zeilen-Sperre zu bekommen, in Millisekunden.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Wie oft auf ein Zeilen-Sperre gewartet werden musste.';
+$strShowStatusInnodb_rows_deletedDescr = 'Anzahl gelöschter Zeilen aller InnoDB Tabellen.';
+$strShowStatusInnodb_rows_insertedDescr = 'Anzahl der eingefügten Zeilen in alle InnoDB Tabellen.';
+$strShowStatusInnodb_rows_readDescr = 'Anzahl der Zeilen, die aus InnoDB-Tabellen gelesen wurden.';
+$strShowStatusInnodb_rows_updatedDescr = 'Anzahl der Zeilen, die in InnoDB-Tabellen aktualisiert wurden.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Schlüssel-Blöcke im Schlüssel-Cache, die verändert wurden, aber noch nicht auf die Platte zurück geschrieben (flush) wurden; auch bekannt als Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Die Anzahl der unbenutzten Schlüssel-Blöcke im Schlüssel-Cache. Dieser Wert kann dazu dienen die Auslastung des Schlüssel-Cache zu bestimmen.';
+$strShowStatusKey_blocks_usedDescr = 'Die Anzahl der maximal gleichzeitig benutzten Blocks im Schlüssel-Cache.';
+$strShowStatusKey_read_requestsDescr = 'Die Anzahl der Anfragen, einen Schlüssel-Block aus dem Cache zu lesen.';
+$strShowStatusKey_readsDescr = 'Die Anzahl physikalischer Lesezugriffe eines Schlüssel-Blocks von der Platte. Wenn key_reads hoch ist, ist Ihr key_cache wahrscheinlich zu klein. Die Cache-Zugriffsrate kann mit key_reads / key_read_requests berechnet werden.';
+$strShowStatusKey_write_requestsDescr = 'Die Anzahl der Anfragen, einen Schlüssel-Block in den Cache zu schreiben.';
+$strShowStatusKey_writesDescr = 'Die Anzahl physikalischer Schreibvorgänge eines Schlüssel-Blocks auf Platte.';
+$strShowStatusLast_query_costDescr = 'Die Kosten für die zuletzt verarbeitete Abfrage wie vom Abfrage-Optimierer berechnet. Nützlich um verschiedene Formulierungen für eine Abfrage zu vergleichen. Der Wert 0 besagt das bisher keine Abfrage übersetzt wurde.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Anzahl der Zeilen, die in INSERT-DELAYED-Warteschleifen darauf warten, geschrieben zu werden.';
+$strShowStatusOpen_filesDescr = 'Anzahl der geöffneten Dateien.';
+$strShowStatusOpen_streamsDescr = 'Anzahl der geöffneten Streams (hauptsächlich zum Protokolieren benutzt).';
+$strShowStatusOpen_tablesDescr = 'Anzahl der geöffneten Tabellen.';
+$strShowStatusOpened_tablesDescr = 'Anzahl der Tabellen, die geöffnet wurden. Wenn Opened_tables hoch ist, ist Ihre table_cache-Variable wahrscheinlich zu niedrig.';
+$strShowStatusQcache_free_blocksDescr = 'Freie Speicherblöcke im Abfragen-Cache.';
+$strShowStatusQcache_free_memoryDescr = 'Freier Speicher im Abfragen-Cache.';
+$strShowStatusQcache_hitsDescr = 'Abfrage-Cache-Zugriffsrate.';
+$strShowStatusQcache_insertsDescr = 'Die Anzahl der Abfragen die dem Cache hinzugefügt wurden.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Die Anzahl der Abfragen die aus dem Cache entfernt wurden, um Speicher für neue Abfragen frei zu geben. Dieser Wert kann helfen die Abfrage-Cache-Größe zu optimieren. Der Abfrage-Cache arbeitet nach der LRU-Strategie (least recently used), d.&nbsp;h. es wird stets die Abfrage gelöscht, die am längsten unbenutzt im Cache lag.';
+$strShowStatusQcache_not_cachedDescr = 'Die Anzahl der nicht im Cache eingetragenen Abfragen (nicht möglich, oder aufgrund der query_cache_type Einstellung).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Die Anzahl der Abfragen im Cache.';
+$strShowStatusQcache_total_blocksDescr = 'Die Anzahl aller Speicherblöcke im Abfrage-Cache.';
+$strShowStatusReset = 'Zurücksetzen';
+$strShowStatusRpl_statusDescr = 'Der Status der ausfallsicheren Replikation.';
+$strShowStatusSelect_full_joinDescr = 'Anzahl der Joins ohne Schlüssel. Wenn dieser Wert nicht 0 ist sollten die Indizes der Tabellen sorgfältig überprüft werden.';
+$strShowStatusSelect_full_range_joinDescr = 'Anzahl der Joins, bei denen eine Bereichssuche auf die Referenztabelle statt fand.';
+$strShowStatusSelect_rangeDescr = 'Anzahl der Joins, bei denen Bereiche auf die erste Tabelle benutzt wurden. (Es ist normalerweise unkritisch, wenn dieser Wert hoch ist.)';
+$strShowStatusSelect_range_checkDescr = 'Anzahl der Joins ohne Schlüssel, bei denen nach jeder Zeile auf Schlüsselbenutzung geprüft wurde. Wenn dieser Wert nicht 0 ist sollten die Indizes der Tabellen sorgfältig überprüft werden.';
+$strShowStatusSelect_scanDescr = 'Anzahl der Joins, bei denen die erste Tabelle gescannt wurde.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Anzahl der temporären Tabellen, die momentan vom Slave-Prozess geöffnet sind.';
+$strShowStatusSlave_retried_transactionsDescr = 'Gesamtzahl (seit Start des Servers) der vom Replikations-Slave-SQL-Thread wiederversuchten Transaktionen.';
+$strShowStatusSlave_runningDescr = 'Dieser Wert steht auf ON wenn dieser Server ein Slave ist und mit dem Master verbunden ist.';
+$strShowStatusSlow_launch_threadsDescr = 'Anzahl der Prozesse, die länger als slow_launch_time brauchten, um sich zu verbinden.';
+$strShowStatusSlow_queriesDescr = 'Anzahl der Anfragen, die länger als long_query_time benötigten.';
+$strShowStatusSort_merge_passesDescr = 'Anzahl der Verschmelzungen (Merge), die von einem Sortiervorgang benötigt wurden. Wenn dieser Wert hoch ist, sollten Sie in Betracht ziehen, sort_buffer herauf zu setzen.';
+$strShowStatusSort_rangeDescr = 'Anzahl der Sortiervorgänge, die mit Bereichen durchgeführt wurden.';
+$strShowStatusSort_rowsDescr = 'Anzahl der sortierten Zeilen.';
+$strShowStatusSort_scanDescr = 'Anzahl der Sortiervorgänge, die durchgeführt wurden, indem die Tabelle gescannt wurde.';
+$strShowStatusTable_locks_immediateDescr = 'Wie oft eine Tabellensperre sofort erlangt wurde.';
+$strShowStatusTable_locks_waitedDescr = 'Wie oft eine Tabellensperre nicht sofort erlangt werden konnte und gewartet werden musste. Wenn dieser Wert hoch ist und Sie Performance-Probleme haben, sollten Sie zunächst Ihre Anfragen optimieren und dann entweder Ihre Tabelle(n) zerteilen oder Replikation benutzen.';
+$strShowStatusThreads_cachedDescr = 'Anzahl der Prozesse im Prozess-Cache. Die Cache-Zugriffsrate kann mit Threads_created / Connections berechnet werden. Wenn dieser Wert rot ist, sollte der thread_cache_size erhöht werden.';
+$strShowStatusThreads_connectedDescr = 'Anzahl der momentan offenen Verbindungen.';
+$strShowStatusThreads_createdDescr = 'Anzahl der Prozesse, die zur Handhabung von Verbindungen erzeugt wurden. Wenn Threads_created hoch ist, sollten Sie eventuell die Thread_cache_size-Variable herauf setzen. (Normalerweise ergibt sich daraus keine bemerkbare Performance-Steigerung wenn eine gute Prozess-Implementierung vorliegt.)';
+$strShowStatusThreads_runningDescr = 'Anzahl der Prozesse, die nicht schlafen.';
+$strShowTableDimension = 'Tabellendimensionen anzeigen.';
+$strShowTables = 'Tabellen anzeigen';
+$strShowThisQuery = 'SQL-Befehl hier wieder anzeigen';
+$strShowingBookmark = 'Bookmark wird angezeigt';
+$strShowingPhp = 'Ansicht als PHP Code';
+$strShowingRecords = 'Zeige Datensätze ';
+$strShowingSQL = 'Ansicht als SQL Abfrage';
+$strSimplifiedChinese = 'Vereinfachtes Chinesisch';
+$strSingly = '(einmalig)';
+$strSize = 'Größe';
+$strSkipQueries = 'Anzahl der am Anfang zu überspringenden Einträge (Abfragen)';
+$strSlovak = 'Slovakisch';
+$strSlovenian = 'Slovenisch';
+$strSmallBigAll = 'Alles klein/groß';
+$strSnapToGrid = 'Am Gitter anordnen';
+$strSocketProblem = '(evtl. ist auch der Socket des lokalen MySQL-Servers socket nicht korrekt konfiguriert)';
+$strSort = 'Sortierung';
+$strSortByKey = 'Nach Schlüssel sortieren';
+$strSorting = 'Sortierung';
+$strSpaceUsage = 'Speicherplatzverbrauch';
+$strSpanish = 'Spanisch';
+$strSplitWordsWithSpace = 'Die Wörter werden durch Leerzeichen (" ") getrennt.';
+$strStandInStructureForView = 'Stellvertreter-Struktur des Views';
+$strStatCheckTime = 'Letzter Check am';
+$strStatCreateTime = 'Erzeugt am';
+$strStatUpdateTime = 'Aktualisiert am';
+$strStatement = 'Angaben';
+$strStatisticsOverrun = 'Auf stark frequentierten Server kann der Byte-Zähler "überlaufen" (Wieder bei 0 beginnen), deshalb können diese Werte wie sie vom MySQL Server ausgegeben werden falsch sein.';
+$strStatus = 'Status';
+$strStorageEngine = 'Tabellenformat';
+$strStorageEngines = 'Tabellenformate';
+$strStrucCSV = 'CSV-Daten';
+$strStrucData = 'Struktur und Daten';
+$strStrucExcelCSV = 'CSV-Daten für MS Excel';
+$strStrucNativeExcel = 'Excel-Datei';
+$strStrucOnly = 'Nur Struktur';
+$strStructPropose = 'Tabellenstruktur analysieren';
+$strStructure = 'Struktur';
+$strStructureForView = 'Struktur des Views';
+$strSubmit = 'Abschicken';
+$strSuccess = 'Ihr SQL-Befehl wurde erfolgreich ausgeführt.';
+$strSum = 'Gesamt';
+$strSwedish = 'Schwedisch';
+$strSwitchToDatabase = 'Zu kopierter Datenbank wechseln';
+$strSwitchToTable = 'Zur kopierten Tabelle wechseln';
+
+$strTable = 'Tabelle';
+$strTableAlreadyExists = 'Die Tabelle %s existiert bereits!';
+$strTableAlteredSuccessfully = 'Die Tabelle %1$s wurde erfolgreich geändert';
+$strTableComments = 'Tabellen-Kommentar';
+$strTableEmpty = 'Der Tabellenname ist leer!';
+$strTableHasBeenCreated = 'Die Tabelle %1$s wurde erzeugt.';
+$strTableHasBeenDropped = 'Die Tabelle %s wurde gelöscht.';
+$strTableHasBeenEmptied = 'Die Tabelle %s wurde geleert.';
+$strTableHasBeenFlushed = 'Die Tabelle %s wurde geschlossen und zwischengespeicherte Daten gespeichert.';
+$strTableIsEmpty = 'Die Tabelle scheint leer zu sein!';
+$strTableMaintenance = 'Hilfsmittel';
+$strTableName = 'Tabellenname';
+$strTableOfContents = 'Inhalt';
+$strTableOptions = 'Tabellenoptionen';
+$strTableStructure = 'Tabellenstruktur für Tabelle';
+$strTables = '%s Tabellen';
+$strTakeIt = 'auswählen';
+$strTblPrivileges = 'Tabellenspezifische Rechte';
+$strTempData = 'Temporäre Daten';
+$strTextAreaLength = 'Wegen seiner Länge ist dieses<br />Feld vielleicht nicht editierbar.';
+$strThai = 'Thai';
+$strTheme = 'Oberflächendesign';
+$strThemeDefaultNotFound = 'Standard-Oberflächendesign "%s" nicht gefunden!';
+$strThemeNoPreviewAvailable = 'Keine Vorschau verfügbar.';
+$strThemeNoValidImgPath = 'Keinen gültiges Pfad für Grafiken des Oberflächendesigns "%s" gefunden!';
+$strThemeNotFound = 'Oberflächendesign "%s" nicht gefunden!';
+$strThemePathNotFound = 'Pfad für das Oberflächendesign "%s" nicht gefunden!';
+$strThisHost = 'Dieser Host';
+$strThreadSuccessfullyKilled = 'Der Prozess %s wurde erfolgreich abgebrochen.';
+$strThreads = 'Prozesse';
+$strTime = 'Dauer';
+$strTimeoutInfo = 'Der vorherige Import-Vorgang wurde abgebrochen. Er wird nun bei Position %d fortgesetzt.';
+$strTimeoutNothingParsed = 'Allerdings wurden hierbei keine Daten eingelesen. Das bedeutet in der Regel, dass phpMyAdmin nicht in der Lage sein wird, den Import zu beenden, sofern nicht die Ausführungszeitbeschränkungen von php gelockert werden.';
+$strTimeoutPassed = 'Das Ausführungszeitlimit wurde erreicht. Wenn Sie die Datei erneut abschicken, wird der Import fortgesetzt.';
+$strToFromPage = 'nach/von Seite';
+$strToSelectRelation = 'Um eine Relation auszuwählen, klicken Sie :';
+$strToggleScratchboard = 'Klemmbrett anzeigen';
+$strToggleSmallBig = 'Wechseln klein/groß';
+$strTotal = 'insgesamt';
+$strTotalUC = 'Insgesamt';
+$strTraditionalChinese = 'Traditionelles Chinesisch';
+$strTraditionalSpanish = 'Traditionelles Spanisch';
+$strTraffic = 'Traffic';
+$strTransactionCoordinator = 'Transaction Koordinator';
+$strTransformation_application_octetstream__download = 'Zeigt einen Link an, um die binären Daten eines Feldes downloaden zu können. Die erste Option benennt den Dateinamen. Die zweite Option kann einen Spaltennamen der Tabelle benennen, aus dem der Dateiname geholt werden soll. Sollte die zweite Option gesetzt sein ist es notwendig, die erste Option auf einen Leerstring zu setzen (\'\')';
+$strTransformation_application_octetstream__hex = 'Daten in hexadezimaler Schreibweise darstellen. Der optionale Parameter legt fest, nach wie vielen Halbbyte ein Leerzeichen eingefügt werden soll (Standardwert ist 2).';
+$strTransformation_image_jpeg__inline = 'Ein klickbares Vorschaubild anzeigen. Optionen: Breite, Höhe in Pixeln (berücksichtigt Seitenverhältnis)';
+$strTransformation_image_jpeg__link = 'Einen Link zum Bild anzeigen, z. B. zum Download von BLOB-Daten.';
+$strTransformation_image_png__inline = 'Siehe image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Zeigt ein TIME-, TIMESTAMP-, DATETIME- oder numerisches Unixtimestamp-Feld als formatiertes Datum. Die erste Option ist der Offset (in Stunden), der zum Timestamp (Vorgabe: 0) hinzugefügt wird. Benutzen Sie die zweite Option, um einen abweichenden Datum-/Zeit-Format-String vorzugeben. Die dritte Option bestimmt, ob Sie das lokale oder das UTC Datum/Zeit dafür zeigen wollen (benutzen Sie "local" oder "utc"). Dementsprechend hat das Datumsformat verschiedene Werte - für "lokal" siehe die PHP Dokumentation für die strftime() Funktion und für "utc" wird es mittels der gmdate() Funktion konvertiert.';
+$strTransformation_text_plain__external = 'Nur für LINUX: Startet ein externes Programm und verwendet die Daten des Feldes für die Standardeingabe. Stellt innerhalb von phpMyAdmin die Standardausgabe des externen Programmes dar. Die Voreinstellung wurde für Tidy optimiert, um HTML code optisch zu formatieren. Aus Sicherheitsgründen müssen Sie die Datei libraries/transformations/text_plain__external.inc.php von Hand bearbeiten um weitere Programme hinzuzufügen. Die erste Option ist die Nummer des dort hinterlegten Programmes und die zweite Option legt die Parameter für das externe Programm fest. Die dritte Option bestimmt, falls auf 1 gesetzt, dass die Ausgabe mit htmlspecialchars() formatiert wird (Standard: 1). Die vierte Option bestimmt, falls auf 1 gesetzt, ob ein NOWRAP-Parameter der Tabellenzelle hinzugefügt wird um einen automatischen Umbruch der Standardausgabe zu verhindern (Standard: 1)';
+$strTransformation_text_plain__formatted = 'Behält Ursprungsformatierung des Feldes bei. Kein Escaping oder Umlautwandlung wird durchgeführt.';
+$strTransformation_text_plain__imagelink = 'Benutzt den Inhalt eines Feldes um ein Bild und einen Link dazu darzustellen. Die erste Option ist ein Präfix vor dem eigentlichen Feldinhalt wie "http://www.domain.com". Zweite Option ist die Breite des Bildes, die dritte Option die Höhe des Bildes in Pixeln.';
+$strTransformation_text_plain__link = 'Benutzt den Inhalt eines Feldes um einen Link darzustellen. Die erste Option ist ein Präfix vor dem eigentlichen Feldinhalt wie "http://www.domain.com". Zweite Option ist der darzustellende Titel des Links';
+$strTransformation_text_plain__sql = 'Formatiert den Text als SQL mit Syntaxhervorhebung.';
+$strTransformation_text_plain__substr = 'Stellt nur einen Teil des Feldinhaltes dar. Die erste Option definiert die Position des Textes ab dem die Ausgabe startet (Standard: 0), die zweite Option gibt an wieviel Zeichen ab dort dargestellt werden sollen. Falls diese Option leer ist, wird der gesamte verbleibende Text dargestellt. Die dritte Option kann einen Text enthalten, der bei partieller Ausgabe des Textes angehängt wird, um eine Abschneidung kenntlich zu machen (Standard: ...).';
+$strTriggers = 'Trigger';
+$strTruncateQueries = 'Zeige die SQL-Abfragen verkürzt an';
+$strTurkish = 'Türkisch';
+$strType = 'Typ';
+
+$strUkrainian = 'Ukrainisch';
+$strUncheckAll = 'Auswahl entfernen';
+$strUnicode = 'Unicode';
+$strUnique = 'Unique';
+$strUnknown = 'unbekannt';
+$strUnselectAll = 'Auswahl entfernen';
+$strUnsupportedCompressionDetected = 'Sie haben versucht, eine Datei zu laden, die mit einem nicht unterstützten Verfahren komprimiert wurde (%s). Entweder ist die Unterstützung für selbiges nicht implementiert oder in Ihrer Konfiguration deaktiviert.';
+$strUpdComTab = 'Bitte lesen Sie in der Dokumentation nach, wie Sie die Struktur Ihrer Spaltenkommentartabelle aktualisieren können';
+$strUpdatePrivMessage = 'Die Rechte für %s wurden geändert.';
+$strUpdateProfileMessage = 'Benutzer wurde geändert.';
+$strUpdateQuery = 'Aktualisieren';
+$strUpgrade = 'Sie sollten auf %s %s oder neuer umsteigen.';
+$strUploadErrorCantWrite = 'Datei konnte gespeichert werden.';
+$strUploadErrorExtension = 'Dateihochladen durch eine Erweiterung gestoppt.';
+$strUploadErrorFormSize = 'Die hochgeladene Datei ist größer als der in MAX_FILE_SIZE des HTML Formulars angegebene Wert.';
+$strUploadErrorIniSize = 'Die hochgeladene Datei ist größer als der in der php.ini in upload_max_filesize angegebene Wert.';
+$strUploadErrorNoTempDir = 'Kein gültiges Temporäres Verzeichnis für hochgeladene Dateien.';
+$strUploadErrorPartial = 'Die Datei wurde teilweise übertragen.';
+$strUploadErrorUnknown = 'Unbekannter Fehler beim Dateihochladen.';
+$strUploadLimit = 'Möglicherweise wurde eine zu große Datei hochgeladen. Bitte lesen Sie die %sDokumentation%s zur Lösung diese Problems.';
+$strUploadsNotAllowed = 'Das hochladen von Dateien ist auf diesem Server nicht erlaubt.';
+$strUsage = 'Verbrauch';
+$strUseBackquotes = ' Tabellen- und Feldnamen in einfachen Anführungszeichen ';
+$strUseHostTable = 'Verwende Hosttabelle';
+$strUseTabKey = 'Mittels TAB-Taste von Feld zu Feld springen, oder mit STRG+Pfeiltasten beliebig bewegen';
+$strUseTables = 'Verwendete Tabellen';
+$strUseTextField = 'Textfeld verwenden';
+$strUseThisValue = 'Diesen Wert verwenden';
+$strUser = 'Benutzer';
+$strUserAlreadyExists = 'Der Benutzer %s existiert bereits!';
+$strUserEmpty = 'Kein Benutzername eingegeben!';
+$strUserName = 'Benutzername';
+$strUserNotFound = 'Der gewählte Benutzer wurde in der Benutzertabelle nicht gefunden.';
+$strUserOverview = 'Benutzerübersicht';
+$strUsersDeleted = 'Die gewählten Benutzer wurden gelöscht.';
+$strUsersHavingAccessToDb = 'Benutzer mit Zugriff auf &quot;%s&quot;';
+
+$strValidateSQL = 'SQL validieren';
+$strValidatorError = 'Bei der Initialisierung des SQL-Validators ist ein Fehler aufgetreten. Bitte überprüfen Sie, ob Sie die in der %sDokumentation%s beschriebenen php-Erweiterungen installiert haben.';
+$strValue = 'Wert';
+$strVar = 'Variable';
+$strVersionInformation = 'Versionsinformationen';
+$strView = 'Ansicht';
+$strViewDump = 'Dump (Schema) der Tabelle anzeigen';
+$strViewDumpDB = 'Dump (Schema) der Datenbank anzeigen';
+$strViewDumpDatabases = 'Dump (Schema) der Datenbanken anzeigen';
+$strViewHasBeenDropped = 'Die Ansicht %s wurde gelöscht';
+$strViewName = 'VIEW Name';
+
+$strWebServerUploadDirectory = 'Upload-Verzeichnis auf dem Webserver';
+$strWebServerUploadDirectoryError = 'Auf das festgelegte Upload-Verzeichnis kann nicht zugegriffen werden.';
+$strWelcome = 'Willkommen bei %s';
+$strWestEuropean = 'Westeuropäisch';
+$strWildcard = 'Platzhalter';
+$strWindowNotFound = 'Das Ziel-Browserfenster konnte nicht aktualisiert werden. Möglicherweise wurde das Ursprungsfenster geschlossen oder der Browser verhindert den Zugriff aufgrund von Ihren Sicherheitseinstellungen.';
+$strWithChecked = 'markierte:';
+$strWriteRequests = 'Schreibanfragen';
+$strWrongUser = 'Falscher Benutzername/Passwort. Zugriff verweigert.';
+
+$strXML = 'XML';
+
+$strYes = 'Ja';
+
+$strZeroRemovesTheLimit = 'Der Wert 0 (null) entfernt die Beschränkung.';
+$strZip = 'Zip-komprimiert';
+
+$strExportImportToScale = 'Export/Import to scale'; // to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/greek-utf-8.inc.php b/lang/greek-utf-8.inc.php
new file mode 100644
index 0000000000..22d7b7501d
--- /dev/null
+++ b/lang/greek-utf-8.inc.php
@@ -0,0 +1,1470 @@
+<?php
+/* $Id$ */
+
+/* Translated by Kyriakos Xagoraris <theremon at users.sourceforge.net> */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ');
+$month = array('Ιαν', 'Φεβ', 'Μάρ', 'Απρ', 'Μάι', 'Ιούν', 'Ιούλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y, στις %I:%M %p';
+
+// To Arrange
+
+$timespanfmt = '%s μέρες, %s ώρες, %s λεπτά and %s δευτερόλεπτα';
+
+$strAbortedClients = 'Ακυρωμένες συνδέσεις';
+$strAccessDeniedExplanation = 'Το phpMyAdmin προσπάθησε να συνδεθεί με τον διακομιστή MySQL αλλά ο διακομιστής απέριψε τη σύνδεση. Θα πρέπει να ελέγξετε την διεύθυνση, το όνομα χρήστη και τον κωδικό πρόσβασης στο αρχείο ρυθμίσεων config.inc.php και να βεβαιωθείτε ότι αντιστοιχούν σε αυτά που σας έχει δώσει ο διαχειρηστής του διακομιστή MySQL.';
+$strAccessDenied = '\'Αρνηση Πρόσβασης';
+$strAction = 'Ενέργεια';
+$strAddAutoIncrement = 'Προσθήκη τιμής AUTO_INCREMENT';
+$strAddDeleteColumn = 'Προσθήκη/Αφαίρεση Στήλης Πεδίου';
+$strAddDeleteRow = 'Προσθήκη/Αφαίρεση Γραμμής Κριτηρίων';
+$strAddIntoComments = 'Προσθήκη στα σχόλια';
+$strAddNewField = 'Προσθήκη νέου Πεδίου';
+$strAddPrivilegesOnDb = 'Προσθήκη προνομίων στην ακόλουθη βάση δεδομένων';
+$strAddPrivilegesOnTbl = 'Προσθήκη δεδομένων στον ακόλουθο πίνακα';
+$strAddSearchConditions = 'Προσθήκη νέου όρου (σώμα της "where" πρότασης):';
+$strAddToIndex = 'Προσθήκη στο ευρετήριο &nbsp;%s&nbsp;κολώνας(ων)';
+$strAddUserMessage = 'Προσθέσατε ένα νέο χρήστη.';
+$strAddUser = 'Προσθήκη νέου Χρήστη';
+$strAdministration = 'Διαχείριση';
+$strAfterInsertBack = 'Επιστροφή';
+$strAfterInsertNewInsert = 'Εισαγωγή νέας εγγραφής';
+$strAfter = 'Μετά το %s';
+$strAllTableSameWidth = 'εμφάνιση όλων των πινάκων με το ίδιο πλάτος;';
+$strAll = 'Όλα';
+$strAlterOrderBy = 'Αλλαγή ταξινόμησης Πίνακα κατά';
+$strAnalyzeTable = 'Ανάλυση Πίνακα';
+$strAnd = 'Και';
+$strAnIndex = 'Ένα ευρετήριο προστέθηκε στο %s';
+$strAnyHost = 'Οποιοδήποτε Σύστημα';
+$strAnyUser = 'Οποιοσδήποτε Χρήστης';
+$strAny = 'Οποιοδήποτε';
+$strAPrimaryKey = 'Ένα πρωτεύον κλειδί προστέθηκε στο %s';
+$strArabic = 'Αραβικά';
+$strArmenian = 'Αρμενικά';
+$strAscending = 'Αύξουσα';
+$strAtBeginningOfTable = 'Στην αρχή του Πίνακα';
+$strAtEndOfTable = 'Στο τέλος του Πίνακα';
+$strAttr = 'Χαρακτηριστικά';
+$strAutomaticLayout = 'Αυτόματη διάταξη';
+
+$strBack = 'Επιστροφή';
+$strBaltic = 'Βαλτικής';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinaryDoNotEdit = 'Δυαδικό - χωρίς δυνατότητα επεξεργασίας';
+$strBinary = 'Δυαδικό';
+$strBookmarkDeleted = 'Η ετικέτα διεγράφη.';
+$strBookmarkLabel = 'Τίτλος';
+$strBookmarkQuery = 'Αποθηκευμένο επερώτημα SQL';
+$strBookmarkThis = 'Αποθήκευση αυτού του επερωτήματος SQL';
+$strBookmarkView = 'Μόνο ανάγνωση';
+$strBrowse = 'Περιήγηση';
+$strBulgarian = 'Βουλγαρικά';
+$strBzip = 'συμπίεση «bzip»';
+
+$strCannotLogin = 'Δεν ήταν δυνατή η σύνδεση με τον διακομιστή MySQL';
+$strCantLoadRecodeIconv = 'Δεν είναι δυνατή η φόρτωση της επέκτασης iconv ή recode που χρειάζεται για την μετατροπή του σετ χαρακτήρων. Ρυθμίστε την php να επιτρέπει την χρήση αυτών των επεκτάσεων ή απανεργοποιήστε την μετατροπή χαρακτήρων στο phpMyAdmin.';
+$strCantLoad = 'δεν ήταν δυνατή η φόρτωση της επέκτασης %s ,<br />παρακαλώ ελέγξτε τις ρυθμίσεις της PHP';
+$strCantRenameIdxToPrimary = 'Η μετονομασία του ευρετηρίου σε PRIMARY σε είναι εφικτή!';
+$strCantUseRecodeIconv = 'Δεν είναι δυνατή η χρήση της επέκτασης iconv ούτε της libiconv ούτε της ρουτίνας recode_string, ενώ η επέκταση έχει φορτωθεί. Ελέξτε τις ρυθμίσεις της php.';
+$strCardinality = 'Μοναδικότητα';
+$strCentralEuropean = 'Κεντρικής Ευρώπης';
+$strChangeCopyModeCopy = '... διατήρηση του παλιού χρήστη.';
+$strChangeCopyModeDeleteAndReload = ' ... διαγραφή του παλιού χρήστη από τους πίνακες χρηστών και επαναφόρτωση των προνομίων.';
+$strChangeCopyModeJustDelete = ' ... διαγραφή του παλιού χρήστη από τους πίνακες χρηστών.';
+$strChangeCopyModeRevoke = ' ... ανάκληση των προνομίων του παλιού χρήστη και διαγραφή του.';
+$strChangeCopyMode = 'Δημιουργία νέα χρήστη με τα ίδια προνόμια και ...';
+$strChangeCopyUser = 'Αλλαγή Στοιχείων Πρόσβασης / Αντιγραφή Χρήστη';
+$strChangeDisplay = 'Επιλέξτε πεδίο για εμφάνιση';
+$strChangePassword = 'Αλλαγή κωδικού πρόσβασης';
+$strChange = 'Αλλαγή';
+$strCharsetOfFile = 'Σετ χαρακτήρων του αρχείου:';
+$strCharsets = 'Σετ χαρακτήρων';
+$strCharset = 'Σετ χαρακτήρων';
+$strCheckAll = 'Επιλογή όλων';
+$strCheckPrivsLong = 'Έλεγχος προνομίων για τη βάση &quot;%s&quot;.';
+$strCheckPrivs = 'Έλεγχος Προνομίων';
+$strCheckTable = 'Έλεγχος πίνακα';
+$strChoosePage = 'Παρακαλώ επιλέξτε σελίδα για αλλαγή';
+$strColComFeat = 'Εμφάνιση σχολίων πεδίων';
+$strColumnNames = 'Ονόματα στηλών';
+$strColumnPrivileges = 'Προνόμια πεδίων';
+$strCommand = 'Εντολή';
+$strComments = 'Σχόλια';
+$strCompleteInserts = 'Ολοκληρωμένες εντολές «Insert»';
+$strCompression = 'Συμπίεση';
+$strConfigFileError = 'Το phpMyAdmin δεν μπόρεσε να διαβάσει το αρχείο ρυθμίσεων!<br />Αυτό μπορεί να συμβεί εάν η php βρει κάποιο λάθος στο αρχείο ή εάν η php δεν μπορεί να βρει το αρχείο.<br />Παρακαλώ καλέστε το αρχείο ρυθμίσεων απ\' ευθείας χρησιμοποιώντας το ακόλουθο link και διαβάστε τα μυνήματα λάθους που θα επιστρέψει η php. Στις περισσότερες περιπτώσεις κάπου λείπουν εισαγωγικά (") ή ερωτιματικά (;).<br />Εάν η php επιστρέψει μια λευκή σελίδα, όλα είναι σωστά.';
+$strConfigureTableCoord = 'Παρακαλώ ορίστε τις συντεταγμένες για τον πίνακα %s';
+$strConnections = 'Συνδέσεις';
+$strCookiesRequired = 'Από αυτό το σημείο πρέπει να έχετε ενεργοποιημένα cookies.';
+$strCopyTableOK = 'Ο Πίνακας %s αντιγράφηκε στο %s.';
+$strCopyTableSameNames = 'Δεν είναι δυνατή η αντιγραφή του πίνακα στον εαυτό του!';
+$strCopyTable = 'Αντιγραφή πίνακα σε (βάση<b>.</b>πίνακας):';
+$strCouldNotKill = 'Το phpMyAdmin δεν μπόρεσε να διακόψει τη λειτουργία %s. Μπορεί να έχει ήδη σταματήσει.';
+$strCreateIndexTopic = 'Δημιουργία νέου ευρετηρίου';
+$strCreateIndex = 'Δημιουργία ευρετηρίου σε &nbsp;%s&nbsp;πεδία';
+$strCreateNewDatabase = 'Δημιουργία νέας βάσης';
+$strCreateNewTable = 'Δημιουργία νέου πίνακα στη βάση %s';
+$strCreatePage = 'Δημιουργία νέας σελίδας';
+$strCreatePdfFeat = 'Δημιουργία αρχείων PDF';
+$strCreate = 'Δημιουργία';
+$strCriteria = 'Κριτήρια';
+$strCroatian = 'Κροατικά';
+$strCyrillic = 'Κυριλλικά';
+$strCzech = 'Τσεχικά';
+
+$strDanish = 'Δανικά';
+$strDatabaseExportOptions = 'Επιλογές εξαγωγής βάσης δεδομένων';
+$strDatabaseHasBeenDropped = 'Η βάση δεδομένων %s διεγράφη.';
+$strDatabasesDropped = '%s βάσεις δεδομένων διεγράφησαν επιτυχώς.';
+$strDatabasesStatsDisable = 'Απενεργοποίηση Στατιστικών';
+$strDatabasesStatsEnable = 'Ενεργοποίηση Στατιστικών';
+$strDatabasesStatsHeavyTraffic = 'Σημείωση: Η ενεργοποίηση στατιστικών μπορεί να προκαλέσει μεγάλη μεταφορά δεδομένων μεταξύ του διακομιστή διαδικτύου και του διακομιστή MySQL.';
+$strDatabasesStats = 'Στατιστικά βάσης';
+$strDatabases = 'Βάσεις Δεδομένων';
+$strDatabase = 'Βάση';
+$strDataDict = 'Λεξικό δεδομένων';
+$strDataOnly = 'Μόνο τα δεδομένα';
+$strData = 'Δεδομένα';
+$strDBComment = 'Σχόλιο βάσης: ';
+$strDbPrivileges = 'Προνόμια βάσης δεδομένων';
+$strDbSpecific = 'Χρήστης Βάσης';
+$strDefaultValueHelp = 'Για προκαθορισμένες τιμές, παρακαλώ εισάγετε μία τιμή, χωρίς χαρακτήρες διαφυγής ή εισαγωγικά, χρησιμοποιώντας τη μορφή: a';
+$strDefault = 'Προκαθορισμένο';
+$strDeleteAndFlushDescr = 'Αυτός είναι ο πιο "καθαρός" τρόπος, αλλά η επαναφόρτωση των προνομίων μπορεί να καθυστερήσει.';
+$strDeleteAndFlush = 'Διαγραφή των χρηστών και επαναφόρτωση των προνομίων.';
+$strDeleted = 'Η Εγγραφή έχει διαγραφεί';
+$strDelete = 'Διαγραφή';
+$strDeleting = 'Διαγραφή %s';
+$strDelOld = 'Η τρέχουσα σελίδα έχει αναφορές σε πίνακες που δεν υπάρχουν πια. Θέλετε να διαγραφές αυτές οι αναφορές;';
+$strDescending = 'Φθίνουσα';
+$strDescription = 'Περιγραφή';
+$strDictionary = 'λεξικό';
+$strDisabled = 'Απενεργοποιημένο';
+$strDisplayFeat = 'Λειτουργίες εμφάνισης';
+$strDisplayOrder = 'Σειρά εμφάνισης:';
+$strDisplayPDF = 'Εμφάνιση σχήματος PDF';
+$strDoAQuery = 'Εκτέλεσε ένα «επερώτημα κατά παράδειγμα» (χαρακτήρας μπαλαντέρ "%")';
+$strDocu = 'Τεκμηρίωση';
+$strDoYouReally = 'Θέλετε να εκτελέσετε την εντολή';
+$strDropUsersDb = 'Διαγραφή βάσεων δεδομένων που έχουν ίδια ονόματα με χρήστες.';
+$strDrop = 'Διαγραφή';
+$strDumpingData = '\'Αδειασμα δεδομένων του πίνακα';
+$strDumpSaved = 'Το αρχείο εξόδου αποθηκεύτηκε ως %s.';
+$strDumpXRows = 'Εμφάνιση %s εγγραφών ξεκινώντας από την εγγραφή %s.';
+$strDynamic = 'δυναμικά';
+
+$strEditPDFPages = 'Αλλαγή σελίδων PDF';
+$strEditPrivileges = 'Επεξεργασία Προνομίων';
+$strEdit = 'Επεξεργασία';
+$strEffective = 'Αποτελεσματικός';
+$strEmptyResultSet = 'Η MySQL επέστρεψε ένα άδειο σύνολο αποτελεσμάτων (π.χ. καμμία εγγραφή).';
+$strEmpty = '\'Αδειασμα';
+$strEnabled = 'Ενεργοποιημένο';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'Τέλος';
+$strEnglishPrivileges = ' Σημείωση: Τα ονόματα προνομίων της MySQL εκφράζονται στα Αγγλικά ';
+$strEnglish = 'Αγγλικά';
+$strError = 'λάθος';
+$strEstonian = 'Εσθονικά';
+$strExecuteBookmarked = 'Εκτέλεση αποθηκευμένου επερωτήματος';
+$strExplain = 'Ανάλυση SQL';
+$strExport = 'Εξαγωγή';
+$strExtendedInserts = 'Εκτεταμένες εντολές «Insert»';
+$strExtra = 'Πρόσθετα';
+
+$strFailedAttempts = 'Αποτυχημένες προσπάθειες';
+$strFieldHasBeenDropped = 'Το πεδίο %s διεγράφη';
+$strFieldsEnclosedBy = 'Πεδία που περικλείονται σε';
+$strFieldsEscapedBy = 'Τα πεδία χρησιμοποιούν το χαρακτήρα διαφυγής ';
+$strFieldsTerminatedBy = 'Πεδία που τελειώνουν σε';
+$strFields = 'Πεδία';
+$strField = 'Πεδίο';
+$strFileAlreadyExists = 'Το αρχείο %s υπάρχει ήδη στον διακομιστή. Επιλέξτε διαφορετικό όνομα αρχείου ή ενεργοποιήστε την επιλογή αντικατάστασης.';
+$strFileCouldNotBeRead = 'Δεν ήταν δυνατή η ανάγνωση του αρχείου';
+$strFileNameTemplateRemember = 'αποθήκευση μορφής';
+$strFileNameTemplate = 'Μορφή ονόματος αρχείου';
+$strFixed = 'προκαθορισμένου μήκους';
+$strFlushPrivilegesNote = 'Σημείωση: Το phpMyAdmin διαβάζει τα προνόμια των χρηστών απ\' ευθείεας από τους πίνακες προνομίων της MySQL. Το περιεχόμενο αυτών των πινάκων μπορεί να διαφέρει από τα προνόμια που χρησιμοποιεί ο διακομιστής εάν έχουν γίνει αλλαγές χειροκίνητα. Σε αυτήν την περίπτωση, θα πρέπει να %sεπαναφορτώσετε τα προνόμια%s πριν συνεχίσετε.';
+$strFlushTable = 'Εκκαθάριση ("FLUSH") πίνακα';
+$strFormat = 'Μορφοποίηση';
+$strFormEmpty = 'Ελλειπής τιμή στο πεδίο !';
+$strFullText = 'Πλήρη κείμενα';
+$strFunction = 'Έλεγχος';
+
+$strGenBy = 'Δημιουργήθηκε από:';
+$strGeneralRelationFeat = 'Γενικές λειτουργίες συσχέτισης';
+$strGenTime = 'Χρόνος δημιουργίας';
+$strGerman = 'Γερμανικά';
+$strGlobalPrivileges = 'Γενικά προνόμια';
+$strGlobalValue = 'Γενική τιμή';
+$strGlobal = 'Γενικός';
+$strGo = 'Εκτέλεση';
+$strGrantOption = 'Χορήγηση'; // Grant
+$strGreek = 'Ελληνικά';
+$strGzip = 'συμπίεση «gzip»';
+
+$strHasBeenAltered = 'έχει αλλαχθεί.';
+$strHaveToShow = 'Πρέπει να επιλέξετε τουλάχιστον μία στήλη για εμφάνιση';
+$strHebrew = 'Εβραϊκά';
+$strHomepageOfficial = 'Επίσημη σελίδα του phpMyAdmin';
+$strHome = 'Κεντρική σελίδα';
+$strHostEmpty = 'Το όνομα του Συστήματος είναι κενό!';
+$strHost = 'Σύστημα';
+$strHungarian = 'Ουγγρικά';
+
+$strId = 'ID';
+$strIdxFulltext = 'Πλήρες κείμενο';
+$strIgnore = 'Παράληψη';
+$strImportFiles = 'Εισαγωγή αρχείων';
+$strIndexes = 'Ευρετήρια';
+$strIndexHasBeenDropped = 'Το ευρετήριο %s διεγράφη';
+$strIndexName = 'Όνομα ευρετηρίου&nbsp;:';
+$strIndexType = 'Τύπος ευρετηρίου&nbsp;:';
+$strIndex = 'Ευρετήριο';
+$strInnodbStat = 'Κατάσταση InnoDB';
+$strInsecureMySQL = 'Το αρχείο ρυθμίσεών σας περιέχει ρυθμίσεις (χρήστης root χωρίς κωδικό πρόσβασης) που αντιστοιχούν στον εξ\' ορισμού λογαριασμό χρήστη MySQL. Ο διακομιστής MySQL σας που τρέχει με αυτή τη ρύθμιση, είναι ανοιχτός σε επιθέσεις και θα πρέπει να διορθώσετε το πρόβλημα.';
+$strInsertAsNewRow = 'Εισαγωγή ως νέα εγγραφές';
+$strInsert = 'Εισαγωγή';
+$strInUse = 'σε χρήση';
+
+$strJapanese = 'Ιαπωνικά';
+$strJumpToDB = 'Μεταπήδηση στην βάση &quot;%s&quot;.';
+$strJustDeleteDescr = 'Οι &quot;διεγραμμένοι&quot; χρήστες θα συνεχίσουν να έχουν πρόσβαση στον διακομιστή μέχρις ότου να επαναφορτωθούν οι πίνακες προνομίων.';
+$strJustDelete = 'Απλή διαγραφή των χρηστών από τους πίνακες προνομίων.';
+
+$strKeepPass = 'Διατήρηση κωδικού πρόσβασης';
+$strKeyname = 'Όνομα κλειδιού';
+$strKill = 'Τερματισμός';
+$strKorean = 'Κορεατικά';
+
+$strLandscape = 'Οριζόντια διάταξη';
+$strLaTeX = 'LaTeX';
+$strLengthSet = 'Μήκος/Τιμές*';
+$strLimitNumRows = 'Εγγραφές ανά σελίδα';
+$strLinesTerminatedBy = 'Γραμμές που τελειώνουν σε';
+$strLinkNotFound = 'Δεν βρέθηκε η σύνδεση';
+$strLinksTo = 'Σύνδεση με';
+$strLithuanian = 'Λιθουανικά';
+$strLocalhost = 'Τοπικό';
+$strLocationTextfile = 'Τοποθεσία του αρχείου κειμένου';
+$strLoginInformation = 'Πληροφορίες Σύνδεσης';
+$strLogin = 'Σύνδεση';
+$strLogout = 'Αποσύνδεση';
+$strLogPassword = 'Κωδικός πρόσβασης:';
+$strLogUsername = 'Όνομα χρήστη:';
+
+$strMIME_available_mime = 'Διαθέσιμοι τύποι MIME';
+$strMIME_available_transform = 'Διαθέσιμες μετατροπές';
+$strMIME_description = 'Περιγραφή';
+$strMIME_MIMEtype = 'Τύπος MIME';
+$strMIME_nodescription = 'Δεν υπάρχει διαθέσιμη περιγραφή για αυτή τη μετατροπή.<br />Παρακαλώ απευθηνθείτε στον δημιουργό της για να μάθετε, τι κάνει η μετατροπή %s.';
+$strMIME_transformation_note = 'Για μία λίστα με τις διαθέσιμες μετατροπές και τις μετατροπές τύπου MIME, πατήστε %sπεριγραφές μετατροπών%s';
+$strMIME_transformation_options_note = 'Παρακαλώ εισάγετε τις τιμές για τη μετατροπή χρησιμοποιώντας τη μορφή: \'a\', 100, b,\'c\'...<br />Εάν χρειαστείτε να χρησιμοποιήσετε καθέτους ("\") ή μονά εισαγωγικά ("\'") στις τιμές, χρησιμοποιείτε καθέτους (παράδειγμα \'\\\\xyz\' ή \'a\\\'b\').';
+$strMIME_transformation_options = 'Επιλογές μετατροπής';
+$strMIME_transformation = 'Μετατροπή περιηγητή';
+$strMIME_without = 'Οι τύποι MIME που εμφανίζονται με πλάγια γράμματα δεν έχουν ξεχωριστή λειτουργία μετατροπής';
+$strModifications = 'Οι αλλαγές αποθηκεύτηκαν';
+$strModifyIndexTopic = 'Αλλαγή ενός ευρετηρίου';
+$strModify = 'Τροποποίηση';
+$strMoveTableOK = 'Ο πίνακας %s μεταφέρθηκε στο %s.';
+$strMoveTableSameNames = 'Δεν είναι δυνατή η μεταφορά του πίνακα στον εαυτό του!';
+$strMoveTable = 'Μεταφορά πίνακα σε (βάση<b>.</b>πίνακας):';
+$strMultilingual = 'πολυγλωσσικό';
+$strMySQLCharset = 'Σετ χαρακτήρων της MySQL';
+$strMySQLSaid = 'Η MySQL επέστρεψε το μύνημα: ';
+$strMySQLShowProcess = 'Εμφάνιση διεργασιών';
+
+$strName = 'Όνομα';
+$strNext = 'Επόμενο';
+$strNoDatabasesSelected = 'Δεν έχετε επιλέξει βάσεις.';
+$strNoDatabases = 'Δεν υπάρχουν βάσεις δεδομένων';
+$strNoDescription = 'χωρίς περιγραφή';
+$strNoDropDatabases = 'Οι εντολές «DROP DATABASE» έχουν απενεργοποιηθεί.';
+$strNoExplain = 'Χωρίς ανάλυση SQL';
+$strNoFrames = 'Το phpMyAdmin είναι πιο φιλικό με έναν browser <b>που υποστηρίζει frames</b>.';
+$strNoIndexPartsDefined = 'Δεν ορίστηκαν τα στοιχεία του ευρετηρίου!';
+$strNoIndex = 'Δεν ορίστηκε ευρετήριο!';
+$strNoModification = 'Χωρίς αλλαγή';
+$strNone = 'Κανένα';
+$strNoOptions = 'Αυτή η μορφή δεν έχει επιλογές';
+$strNoPassword = 'Χωρίς Κωδικό Πρόσβασης';
+$strNoPermission = 'Ο διακομιστής δεν έχει δικαιώματα αποθήκευσης του αρχείου %s.';
+$strNoPhp = 'χωρίς κώδικα PHP';
+$strNoPrivileges = 'Χωρίς Προνόμια';
+$strNoRights = 'Δεν έχετε αρκετά δικαιώματα να είσαστε εδώ τώρα!';
+$strNoSpace = 'Δεν υπάρχει διαθέσιμος χώρος για την αποθήκευση του αρχείου %s.';
+$strNoTablesFound = 'Δεν βρέθηκαν Πίνακες στη βάση.';
+$strNotNumber = 'Αυτό δεν είναι αριθμός!';
+$strNotOK = 'ΛΑΘΟΣ';
+$strNotSet = 'Ο πίνακας <b>%s</b> δεν βρέθηκε ή δεν ορίστηκε στη %s';
+$strNoUsersFound = 'Δεν βρέθηκαν χρήστες.';
+$strNoValidateSQL = 'Skip Validate SQL';
+$strNo = 'Όχι';
+$strNull = 'Κενό';
+$strNumSearchResultsInTable = '%s αποτελέσματα στον πίνακα <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Σύνολο:</b> <i>%s</i> αποτελέσματα';
+$strNumTables = 'Πίνακες';
+
+$strOK = 'OK';
+$strOperations = 'Λειτουργίες';
+$strOptimizeTable = 'Βελτιστοποίηση Πίνακα';
+$strOr = 'Ή';
+$strOverhead = 'Επιβάρυνση';
+$strOverwriteExisting = 'Αντικατάσταση υπαρχόντων αρχείων';
+
+$strPageNumber = 'Σελίδα:';
+$strPaperSize = 'Μέγεθος χαρτιού';
+$strPartialText = 'Επιμέρους κείμενα';
+$strPasswordChanged = 'Ο Κωδικός Πρόσβασης για τον χρήστη %s άλλαξε επιτυχώς.';
+$strPasswordEmpty = 'Ο Κωδικός Πρόσβασης είναι κενός!';
+$strPasswordNotSame = 'Οι κωδικοί πρόσβασης δεν είναι ίδιοι!';
+$strPassword = 'Κωδικός Πρόσβασης';
+$strPdfDbSchema = 'Σχήμα της βάσης "%s" - Σελίδα %s';
+$strPdfInvalidTblName = 'Ο πίνακας "%s" δεν υπάρχει!';
+$strPdfNoTables = 'Δεν υπάρχουν πίνακες';
+$strPerHour = 'ανά ώρα';
+$strPerMinute = 'ανά λεπτό';
+$strPerSecond = 'ανά δευτερόλεπτο';
+$strPhoneBook = 'τηλ. κατάλογος';
+$strPHPVersion = 'Έκδοση PHP';
+$strPhp = 'Δημιουργία κώδικα PHP';
+$strPmaDocumentation = 'Τεκμηρίωση phpMyAdmin';
+$strPmaUriError = 'Η εντολή <tt>$cfg[\'PmaAbsoluteUri\']</tt> ΠΡΕΠΕΙ να οριστεί στο αρχείο ρυθμίσεων!';
+$strPortrait = 'Κάθετη διάταξη';
+$strPos1 = 'Αρχή';
+$strPrevious = 'Προηγούμενο';
+$strPrimaryKeyHasBeenDropped = 'Το πρωτεύον κλειδί διεγράφη';
+$strPrimaryKeyName = 'Το όνομα του πρωτεύοντος κλειδιού πρέπει να είναι... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>πρέπει</b> να είναι το όνομα του πρωτεύοντος κλειδιού και <b>μόνο αυτού</b> !)';
+$strPrimary = 'Πρωτεύον';
+$strPrintView = 'Εμφάνιση για εκτύπωση';
+$strPrint = 'Εκτύπωση';
+$strPrivDescAllPrivileges = 'Περιλαμβάνει όλα τα προνόμια εκτός από το GRANT.';
+$strPrivDescAlter = 'Επιτρέπει την αλλαγή δομής των υπαρχόντων πινάκων.';
+$strPrivDescCreateDb = 'Επιτρέπει τη δημιουργία νέων βάσεων και πινάκων.';
+$strPrivDescCreateTbl = 'Επιτρέπει τη δημιουργία νέων πινάκων.';
+$strPrivDescCreateTmpTable = 'Επιτρέπει τη δημιουργία προσωρινών πινάκων.';
+$strPrivDescDelete = 'Επιτρέπει τη διαγραφή δεδομένων.';
+$strPrivDescDropDb = 'Επιτρέπει τη διαγραφή βάσεων και πινάκων.';
+$strPrivDescDropTbl = 'Επιτρέπει τη διαγραφή πινάκων.';
+$strPrivDescExecute = 'Επιτρέπει την εκτέλεση αποθηκευμένων ρουτινών. Δεν έχει χρήση σε αυτήν την έκδοση MySQL version.';
+$strPrivDescFile = 'Επιτρέπει την εισαγωγή και εξαγωγή δεδομένων από και σε αρχεία.';
+$strPrivDescGrant = 'Επιτρέπει την προσθήκη χρηστών και προνομίων χωρίς να επαναφορτώσετε τους πίνακες προνομίων.';
+$strPrivDescIndex = 'Επιτρέπει την δημιουργία και την διαγραφή ευρετηρίων.';
+$strPrivDescInsert = 'Επιτρέπει την εισαγωγή και την αντικατάσταση δεδομένων.';
+$strPrivDescLockTables = 'Επιτρέπει το κλείδωμα πινάκων για την τρέχουσα λειτουργία.';
+$strPrivDescMaxConnections = 'Περιορίζει τον αριθμό των νέων συνδέσεων που ο χρήστης μπορεί να ξεκινήσει ανά ώρα.';
+$strPrivDescMaxQuestions = 'Περιορίζει τον αριθμό των επερωτημάτων που ο χρήστης μπορεί να στείλει στον διακομιστή ανά ώρα.';
+$strPrivDescMaxUpdates = 'Περιορίζει τον αριθμό των αλλαγής πινάκων ή βάσεων που ο χρήστης μπορεί να εκετελέσει ανά ώρα.';
+$strPrivDescReferences = 'Δεν έχει χρήση σε αυτήν την έκδοση MySQL.';
+$strPrivDescReload = 'Επιτρέπει την επανεκκίνηση του διακομιστή και τον καθαρισμό των προσωρινών αρχείων του.';
+$strPrivDescReplClient = 'Δίνει το δικαίωμα στον χρήστη να βρει που είναι οι κύριοι και δευτερεύοντες διακομιστές.';
+$strPrivDescReplSlave = 'Απαιτείται για τους δευτερευόντες διακομιστές αναπαραγωγής.';
+$strPrivDescSelect = 'Επιτρέπει την ανάγνωση δεδομένων.';
+$strPrivDescShowDb = 'Δίνει πρόσβαση στην πλήρη λίστα των βάσεων δεδομένων.';
+$strPrivDescShutdown = 'Επιτρέπει την διακοπή λειτουργίας του διακομιστή.';
+$strPrivDescSuper = 'Επιτρέπει τη σύνδεση, ακόμα και όταν ο μέγιστος αριθμός συνδέσεων έχει καλυθφεί; Απαιτείται για τις περισσότερες λειτουργίες διαχείρισης όπως ο ορισμός γενικών μεταβλητών ή τη διακοπή λειτουργιών άλλων χρηστών.';
+$strPrivDescUpdate = 'Επιτρέπει την αλλαγή δεδομένων.';
+$strPrivDescUsage = 'Χωρίς προνόμια.';
+$strPrivilegesReloaded = 'Τα προνόμια επαναφορτώθηκαν επιτυχώς.';
+$strPrivileges = 'Προνόμια';
+$strProcesses = 'Διεργασίες';
+$strProcesslist = 'Λίστα διεργασιών';
+$strPutColNames = 'Εμφάνιση ονομάτων πεδίων στην πρώτη γραμμή';
+
+$strQBEDel = 'Διαγραφή';
+$strQBEIns = 'Εισαγωγή';
+$strQBE = 'Επερώτημα κατά παράδειγμα';
+$strQueryFrame = 'Παράθυρο επερωτήματος';
+$strQueryOnDb = 'Εντολή SQL στη βάση <b>%s</b>:';
+$strQuerySQLHistory = 'Ιστορικό SQL';
+$strQueryStatistics = '<b>Στατιστικά επερωτημάτων</b>: Από την έναρξη λειτουργίας, %s επερωτήματα έχουν σταλεί στον διακομιστή.';
+$strQueryTime = 'Το επερώτημα χρειάστηκε %01.4f δευτ/τα';
+$strQueryType = 'Τύπος επερωτήματος';
+$strQueryWindowLock = 'Να μην αλλάξει το επερώτημα από εξωτερική πηγή';
+
+$strReceived = 'Λήφθησαν';
+$strRecords = 'Εγγραφές';
+$strReferentialIntegrity = 'Έλεγχος ακεραιότητας σχέσεων:';
+$strRelationalSchema = 'Σχεσιακό σχήμα';
+$strRelationNotWorking = 'Οι επιπρόσθετες λειτουργίες για εργασία με συσχετισμένους πίνακες έχουν απενεργοποιηθεί. Για να μάθετε γιατί, πατήστε %sεδώ%s.';
+$strRelations = 'Σχέσεις';
+$strRelationView = 'Εμφάνιση σχέσεων';
+$strReloadingThePrivileges = 'Επαναφόρτωση προνομίων';
+$strRemoveSelectedUsers = 'Διαγραφή των επιλεγμένων χρηστών';
+$strRenameTableOK = 'Ο Πίνακας %s μετονομάσθηκε σε %s';
+$strRenameTable = 'Μετονομασία πίνακα σε';
+$strRepairTable = 'Επιδιόρθωση πίνακα';
+$strReplaceNULLBy = 'Αντικατάσταση τιμής NULL με';
+$strReplaceTable = 'Αντικατάσταση δεδομένων Πίνακα με το αρχείο';
+$strReset = 'Επαναφορά';
+$strResourceLimits = 'Όρια πόρων';
+$strReType = 'Επαναεισαγωγή';
+$strRevokeAndDeleteDescr = 'Οι χρήστες θα συνεχίσουν να έχουν το προνόμιο USAGE μέχρις ότου επαναφορτωθούν τα προνόμια.';
+$strRevokeAndDelete = 'Ανάκληση όλων των ενεργών προνομίων από τους χρήστες και διαγραφή τους.';
+$strRevokeMessage = 'Ανακαλέσατε τα προνόμια για %s';
+$strRevoke = 'Ανάκληση';
+$strRowLength = 'Μέγεθος Γραμμής';
+$strRowsFrom = 'Εγγραφές αρχίζοντας από την εγγραφή';
+$strRowSize = ' Μέγεθος Εγγραφής ';
+$strRowsModeFlippedHorizontal = 'οριζόντια (στραμμένες επικεφαλίδες)';
+$strRowsModeHorizontal = 'οριζόντια';
+$strRowsModeOptions = 'σε %s μορφή με επανάληψη επικεφαλίδων ανά %s κελιά';
+$strRowsModeVertical = 'κάθετη';
+$strRowsStatistic = 'Στατιστικά Εγγραφών';
+$strRows = 'Εγγραφές';
+$strRunning = 'που εκτελείται στο %s';
+$strRunQuery = 'Υποβολή επερωτήματος';
+$strRunSQLQuery = 'Εκτέλεση εντολής/εντολών SQL στη βάση δεδομένων %s';
+$strRussian = 'Ρωσσικά';
+
+$strSaveOnServer = 'Αποθήκευση στον διακομιστή στον φάκελο %s';
+$strSave = 'Αποθήκευση';
+$strScaleFactorSmall = 'Η κλίμακα είναι πολύ μικρή για να εμφανιστεί το σχήμα σε μία σελίδα';
+$strSearchFormTitle = 'Αναζήτηση στη βάση';
+$strSearchInTables = 'Μέσα στους πίνακες:';
+$strSearchNeedle = 'Όροι ή τιμές για αναζήτηση (μπαλαντέρ: "%"):';
+$strSearchOption1 = 'τουλάχιστον έναν από τους όρους';
+$strSearchOption2 = 'όλους τους όρους';
+$strSearchOption3 = 'την ακριβή φράση';
+$strSearchOption4 = 'ως regular expression';
+$strSearchResultsFor = 'Αποτελέσματα αναζήτησης για "<i>%s</i>" %s:';
+$strSearchType = 'Έυρεση:';
+$strSearch = 'Αναζήτηση';
+$strSecretRequired = 'Το αρχείο ρυθμίσεων χρειάζεται τώρα μία μυστική φράση-κλειδί (blowfish_secret).';
+$strSelectADb = 'Παρακαλώ επιλέξτε μία βάση δεδομένων';
+$strSelectAll = 'Επιλογή όλων';
+$strSelectFields = 'Επιλογή πεδίων (τουλάχιστον ένα)';
+$strSelectNumRows = 'στην εντολή';
+$strSelectTables = 'Επιλογή Πινάκων';
+$strSend = 'Αποστολή';
+$strSent = 'Εστάλησαν';
+$strServerChoice = 'Επιλογή Διακομιστή';
+$strServerStatusUptime = 'Αυτός ο διακομιστής MySQL λειτουργεί για %s. Ξεκίνησε στις %s.';
+$strServerStatus = 'Πληροφορίες εκτέλεσης';
+$strServerTabVariables = 'Μεταβλητές';
+$strServerTrafficNotes = '<b>Κίνηση Διακομιστή</b>: Αυτοί οι πίνακες δείχνουν στατιστικά χρήσης δικτύου αυτού του διακομιστή MySQL από την έναρξη της λειτουργίας του.';
+$strServerVars = 'Ρυθμίσεις και μεταβλητές του διακομιστή';
+$strServerVersion = 'Έκδοση Διακομιστή';
+$strServer = 'Διακομιστής';
+$strSessionValue = 'Τιμή Session';
+$strSetEnumVal = 'Αν ο τύπος του πεδίου είναι «enum» ή «set», παρακαλώ εισάγετε τις τιμές χρησιμοποιώντας την εξής μορφή: \'α\',\'β\',\'γ\'...<br /> Αν χρειάζεται να εισάγετε την ανάποδη κάθετο ("\") ή απλά εισαγωγικά ("\'"), προθέστε τα με ανάποδη κάθετο στην αρχή (για παράδειγμα \'\\\\χψω\' ή \'α\\\'β\').';
+$strShowAll = 'Εμφάνιση όλων';
+$strShowColor = 'Εμφάνιση χρωμάτων';
+$strShowDatadictAs = 'Μορφή λεξικού δεδομένων';
+$strShowFullQueries = 'Πλήρης εμφάνιση επερωτημάτων';
+$strShowGrid = 'Εμφάνιση πλέγματος';
+$strShowingRecords = 'Εμφάνιση εγγραφής ';
+$strShowPHPInfo = 'Εμφάνιση πληροφοριών της PHP';
+$strShowTableDimension = 'Εμφάνιση διαστάσεων πινάκων';
+$strShowTables = 'Εμφάνιση πινάκων';
+$strShowThisQuery = ' Εμφάνισε εδώ ξανά αυτό το επερώτημα';
+$strShow = 'Εμφάνιση';
+$strSimplifiedChinese = 'Απλοποιημένα Κινεζικά';
+$strSingly = '(μοναδικά)';
+$strSize = 'Μέγεθος';
+$strSort = 'Ταξινόμηση';
+$strSpaceUsage = 'Χρήση χώρου';
+$strSplitWordsWithSpace = 'Οι λέξεις χωρίζονται από τον χαρακτήρα διαστήματος (" ").';
+$strSQLParserBugMessage = 'Υπάρχει περίπτωση να εντοπίσατε ένα πρόβλημα στον SQL parser. Παρακαλώ εξετάστε το επερώτημά σας προσεκτικά και ελέγξτε ότι όλα τα εισαγωγικά ανοίγουν και κλείνουν σωστά. \'Αλλες πιθανές αιτίες μπορούν να είναι η αποστολή αρχείου με δυαδικό κώδικα εκτός εισαγωγικών. Μπορείτε επίσης να δοκιμάσετε το επερώτημά σας στη γραμμή εντολών της MySQL. Εάν συνεχίζετε να έχετε πρόβλημα, ή εάν ο parser αποτυγχάνει όπου η γραμμή εντολών επιτυγχάνει, παρακαλώ απομονώστε το επερώτημα εκείνο που δημιουργεί το πρόβλημα και στείλτε αναφορά λάθους με τα δεδομένα που βρίσκονται στο τμήμα CUT που ακολουθεί:';
+$strSQLParserUserError = 'Φαίνεται να υπάρχει ένα λάθος στο επερώτημά σας. Το κάτωθι λάθος διακομιστή MySQL, εάν υπάρχει κάποιο, μπορεί επίσης να σας βοηθήσει να διαγνώσετε το πρόβλημα.';
+$strSQLQuery = 'Εντολή SQL';
+$strSQLResult = 'αποτέλεσμα SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = '\'Αγνωστο Αναγνωριστικό';
+$strSQPBugUnclosedQuote = 'Ανοιχτά εισαγωγικά';
+$strSQPBugUnknownPunctuation = '\'Αγνωστο σημείο στίξης';
+$strStatCheckTime = 'τελευταίος έλεγχος';
+$strStatCreateTime = 'Δημιουργία';
+$strStatement = 'Δηλώσεις';
+$strStatUpdateTime = 'Τελευταία ενημέρωση';
+$strStatus = 'Κατάσταση';
+$strStrucCSV = 'Δεδομένα CSV';
+$strStrucData = 'Δομή και δεδομένα';
+$strStrucExcelCSV = 'Μορφή CSV για δεδομένα MS Excel';
+$strStrucOnly = 'Μόνο η δομή';
+$strStructPropose = 'Προτεινόμενη δομή πίνακα';
+$strStructure = 'Δομή';
+$strSubmit = 'Αποστολή';
+$strSuccess = 'Η SQL εντολή σας εκτελέσθηκε επιτυχώς';
+$strSum = 'Σύνολο';
+$strSwedish = 'Σουηδικά';
+$strSwitchToTable = 'Μεταφορά στον αντεγραμμένο πίνακα';
+
+$strTableComments = 'Σχόλια Πίνακα';
+$strTableEmpty = 'Το όνομα του Πίνακα είναι κενό!';
+$strTableHasBeenDropped = 'Ο Πίνακας %s διεγράφη';
+$strTableHasBeenEmptied = 'Ο Πίνακας %s άδειασε';
+$strTableHasBeenFlushed = 'Ο Πίνακας %s εκκαθαρίστικε ("FLUSH")';
+$strTableMaintenance = 'Συντήρηση Πίνακα';
+$strTableOfContents = 'Πίνακας περιεχομένων';
+$strTableOptions = 'Επιλογές πίνακα';
+$strTables = '%s Πίνακας/Πίνακες';
+$strTableStructure = 'Δομή Πίνακα για τον Πίνακα';
+$strTable = 'Πίνακας ';
+$strTblPrivileges = 'Προνόμια πινάκων';
+$strTextAreaLength = ' Εξαιτίας του μεγέθος του,<br /> αυτό το πεδίο ίσως να μη μπορεί να διορθωθεί ';
+$strThai = 'Ταϋλανδικά';
+$strThisHost = 'Αυτός ο διακομιστής';
+$strThreadSuccessfullyKilled = 'Η λειτουργία %s διεκόπη.';
+$strTime = 'Χρόνος';
+$strToggleScratchboard = '(Απ)ενεργοποίηση πίνακα σχεδιασμού';
+$strTotalUC = 'Σύνολο';
+$strTotal = 'συνολικά';
+$strTraditionalChinese = 'Παραδοσιακά Κινεζικά';
+$strTraffic = 'Κίνηση';
+$strTransformation_image_jpeg__inline = 'Εμφανίζει μια εικόνα προεπισκόπησης με σύνδεσμο; επιλογές: πλάτος, ύψος σε pixels (διατηρεί τις αρχικές αναλογίες)';
+$strTransformation_image_jpeg__link = 'Εμφανίζει έναν σύνδεσμο για αυτήν την εικόνα.';
+$strTransformation_image_png__inline = 'Δείτε image/jpeg: inline';
+$strTransformation_text_plain__external = 'ΜΟΝΟ ΓΙΑ LINUX: Εκτελεί μία εξωτερική εφαρμογή και στέλνει τα δεδομένα μέσω \'standard input\'. Επιστρέφει το αποτέλεσμα της εφαρμογής. Εξ\' ορισμού τιμή είναι το Tidy, που τυπώνει μορφοποιημένο κώδικα HTML. Για λόγους ασφαλείες, πρέπει χειροκίνητα να αλλάξετε το αρχείο libraries/transformations/text_plain__external.inc.php και να εισάγετε τις εφαρμογές που εσείς επιτρέπετε να εκτελούνται. Η πρώτη επιλογή είναι ο αριθμός της εφαρμογής που θέλετε να χρησιμοποιήσετε και η δεύτερη επιλογή είναι οι παράμετροι της. Η τρίτη επιλογή, αν τεθεί σε 1 θα μετατρέψει το αποτέλεσμα χρησιμοποιώντας την εντολή htmlspecialchars() (Εξ\' ορισμού τιμή: 1). Η τέταρτη επιλογή, αν τεθεί σε 1 θα εισάγει NOWRAP στο κελί περιεχομένου ούτως ώστε όλο το αποτέλεσμα να εμφανιστεί χωρίς αλλαγές στην διάταξη (Εξ\' ορισμού τιμή: 1)';
+$strTransformation_text_plain__formatted = 'Διατηρεί την αρχική μορφοποίηση του πεδίου. Δεν χρησιμοποιούνται χαρακτήρες διαφυγής.';
+$strTransformation_text_plain__imagelink = 'Εμφανίζει μία εικόνα και ένα σύνδεσμο, το πεδίο περιέχει το όνομα αρχείου. Η πρώτη επιλογή είναι ένα πρόθεμα όπως "http://domain.com/", η δεύτερη επιλογή είναι το πλάτος σε pixels, η τρίτη είναι το ύψος.';
+$strTransformation_text_plain__link = 'Εμφανίζει ένα σύνδεσμο, το πεδίο περιέχει το όνομα αρχείου. Η πρώτη επιλογή είναι ένα πρόθεμα όπως "http://domain.com/", η δεύτερη επιλογή είναι ένας τίτλος για τον σύνδεσμο.';
+$strTransformation_text_plain__substr = 'Εμφανίζει μόνο μέρος ενός αλφαριθμητικού. Η πρώτη επιλογή είναι η θέση στην οποία ξεκινά η εμφάνιση του κειμένου (Εξ\' ορισμού 0). Η δεύτερη επιλογή είναι το μήκος του κειμένου. Αν μείνει κενό θα επιστραφεί όλο το αλφαριθμητικό. Η τρίτη επιλογή καθορίζει ποιοι χαρακτήρες θα ακολουθούν το κείμενο όταν εμφανίζεται μέρος του (Εξ\' ορισμού: ...) .';
+$strTruncateQueries = 'Αποκοπή εμφανιζόμενων επερωτημάτων';
+$strTurkish = 'Τουρκικά';
+$strType = 'Τύπος';
+
+$strUkrainian = 'Ουκρανικά';
+$strUncheckAll = 'Απεπιλογή όλων';
+$strUnicode = 'Unicode';
+$strUnique = 'Μοναδικό';
+$strUnknown = 'άγνωστο';
+$strUnselectAll = 'Απεπιλογή όλων';
+$strUpdatePrivMessage = 'Τα προνόμια του χρήστη %s ενημερώθηκαν.';
+$strUpdateProfileMessage = 'Τα στοιχεία ανανεώθηκαν.';
+$strUpdateQuery = 'Ενημέρωση της εντολής';
+$strUpdComTab = 'Παρακαλώ διαβάστε στην τεκμηρίωση για το πως μπορείτε να ανανεώσετε τον πίνακα Column_comments';
+$strUsage = 'Χρήση';
+$strUseBackquotes = 'Χρήση ανάποδων εισαγωγικών στα ονόματα των Πινάκων και των Πεδίων';
+$strUseHostTable = 'Use Host Table';
+$strUserAlreadyExists = 'Ο χρήστης %s υπάρχει ήδη!';
+$strUserEmpty = 'Το όνομα του χρήστη είναι κενό!';
+$strUserName = 'Όνομα χρήστη';
+$strUserNotFound = 'Ο επιλεγμένος χρήστης δεν βρέθηκε στον πίνακα προνομίων.';
+$strUserOverview = 'Περίληψη χρηστών';
+$strUsersDeleted = 'Οι επιλεγμένοι χρήστες διεγράφησαν επιτυχώς.';
+$strUsersHavingAccessToDb = 'Χρήστες με πρόσβαση στη βάση &quot;%s&quot;';
+$strUser = 'Χρήστης';
+$strUseTables = 'Χρήση Πινάκων';
+$strUseTextField = 'Χρησιμοποιήστε το πεδίο κειμένου';
+$strUseThisValue = 'Χρήση αυτής της τιμής';
+
+$strValidateSQL = 'Επικύρωση SQL';
+$strValidatorError = 'Ο επικυρωτής SQL δεν μπόρεσε να ενεργοποιηθεί. Παρακαλώ ελέγξτε ότι έχετε εγκαταστήσει της απαραίτητες επεκτάσεις της php όπως περιγράφεται στην %sdocumentation%s.';
+$strValue = 'Τιμή';
+$strVar = 'Μεταβλητή';
+$strViewDumpDatabases = 'Εμφάνισης σχήματος βάσεων';
+$strViewDumpDB = 'Εμφάνιση σχήματος της βάσης';
+$strViewDump = 'Εμφάνιση σχήματος του πίνακα';
+
+$strWebServerUploadDirectoryError = 'Ο υποκατάλογος που ορίσατε για την αποθήκευση αρχείων δεν μπόρεσε να βρεθεί';
+$strWebServerUploadDirectory = 'Υποκατάλογος αποθήκευσης αρχείων διακομιστή';
+$strWelcome = 'Καλωσήρθατε στο %s';
+$strWestEuropean = 'Δυτικής Ευρώπης';
+$strWildcard = 'μπαλαντέρ';
+$strWindowNotFound = 'Δεν ήταν δυνατό να ανανεωθεί το target παράθυρο του περιηγητή. Ίσως κλείσατε το parent παράθυρο ή ο περιηγητής σας δεν επιτρέπει τις ανανεώσεις μεταξύ παραθύρων λόγω ρυθμίσεων ασφαλείας.';
+$strWithChecked = 'Με τους επιλεγμένους:';
+$strWrongUser = 'Λανθασμένο όνομα χρήστη/κωδικός πρόσβασης. \'Αρνηση πρόσβασης.';
+
+$strXML = 'XML';
+
+$strYes = 'Ναι';
+
+$strZeroRemovesTheLimit = 'Σημείωση: Αν ορίσετε αυτές τις επιλογές σε 0 (μηδέν) αφαιρείτε ο περιορισμός.';
+$strZip = 'συμπίεση «zip»';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCollation = 'Collation'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption';//to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexContinued = '(continued)';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/hebrew-utf-8.inc.php b/lang/hebrew-utf-8.inc.php
new file mode 100644
index 0000000000..01dcb1b2f5
--- /dev/null
+++ b/lang/hebrew-utf-8.inc.php
@@ -0,0 +1,1465 @@
+<?php
+/* $Id$
+ * Translated by Hadar Porat <hadar at banner.co.il> */
+
+$charset = 'utf-8';
+$text_dir = 'rtl'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('יום ראשון', 'יום שני', 'יום שלישי', 'יום רביעי', 'יום חמישי', 'יום שישי', 'שבת');
+$month = array('ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y at %I:%M %p';
+$timespanfmt = '%s ימים, %s שעות, %s דקות ו- %s שניות';
+
+$strAbortedClients = 'בוטל';
+$strAccessDeniedExplanation = 'phpMyAdmin ניסה לתקשר עם שרת MySQL, והשרת דחה את החיבור. אתה צריך לבדוק את כתובת השרת, שם משתמש והסיסמא בקובץ config.inc.php ולוודא כי הם תואמים למידע שקיבלת ע"י אחראי השרת של MySQL.';
+$strAccessDenied = 'גישה נדתחה';
+$strAction = 'פעולה';
+$strAddAutoIncrement = 'הוספת ערך AUTO_INCREMENT (מספור אוטומטי)';
+$strAddConstraints = 'הוספת הגבלות';
+$strAddDeleteColumn = 'הוספת/מחיקת עמודות שדה';
+$strAddDeleteRow = 'Add/Delete Criteria Row';
+$strAddFields = 'הוספת %s תאים';
+$strAddHeaderComment = 'הוספת הערה מותאמת אל פתיחה(\\n לשבירת שורות)';
+$strAddIntoComments = 'הוספה אל הערות';
+$strAddNewField = 'הוספת שדה חדש';
+$strAddPrivilegesOnDb = 'הוספת הרשאות למאגר הנתונים הבא';
+$strAddPrivilegesOnTbl = 'הוספת הראשאות לטבלה הבאה';
+$strAddSearchConditions = 'הוספת תנאי חיפוש (הגוף של תנאי "where"):';
+$strAddToIndex = 'הוספה לאינדקס &nbsp;%s&nbsp;שורה/שורות';
+$strAddUserMessage = 'משתמש חדש נוסף.';
+$strAddUser = 'הוספת משתמש חדש';
+$strAdministration = 'ניהול';
+$strAfterInsertBack = 'חזרה לעמוד הקודם';
+$strAfterInsertNewInsert = 'הוספה נוספת של שורה חדשה';
+$strAfterInsertNext = 'עריכת השורה הבאה';
+$strAfterInsertSame = 'חזרה אחורה לעמוד זה';
+$strAfter = 'לאחר %s';
+$strAllTableSameWidth = 'הצגת כל הטבלאות ברוחב דומה?';
+$strAll = 'הכל';
+$strAlterOrderBy = 'שינוי סדר הטבלה לפי';
+$strAnalyzeTable = 'ניתוח טבלה';
+$strAndThen = 'ואז';
+$strAnd = 'וגם';
+$strAnIndex = 'אינדקס נוסף אל %s';
+$strAnyHost = 'כל שרת מארח';
+$strAnyUser = 'כל משתמש';
+$strAny = 'כל דבר';
+$strApproximateCount = 'יכול להיות הערכה. ראה FAQ 3.11';
+$strAPrimaryKey = 'מפתח ראשי נוסף אל %s';
+$strArabic = 'ערבית';
+$strArmenian = 'ארמנית';
+$strAscending = 'עולה';
+$strAtBeginningOfTable = 'בתחילת טבלה';
+$strAtEndOfTable = 'בסוף טבלה';
+$strAttr = 'תכונות';
+$strAutomaticLayout = 'עיצוב אוטומטי';
+
+$strBack = 'חזרה';
+$strBaltic = 'בלטית';
+$strBeginCut = 'התחלת חיתוך';
+$strBeginRaw = 'התחלת RAW';
+$strBinaryDoNotEdit = 'בינארי - אין לערוך';
+$strBinaryLog = 'דו"ח בינארי';
+$strBinary = 'בינארי';
+$strBinLogEventType = 'סוג אירוע';
+$strBinLogInfo = 'מידע';
+$strBinLogName = 'שם דו"ח';
+$strBinLogOriginalPosition = 'מיקום מקורי';
+$strBinLogPosition = 'מיקום';
+$strBinLogServerId = 'קוד שרת (ID)';
+$strBookmarkAllUsers = 'אפשר לכל משתמש לגשת לכתובת מועדפת זאת';
+$strBookmarkDeleted = 'כתובת מועדפת נמחקה.';
+$strBookmarkLabel = 'תווית';
+$strBookmarkQuery = 'שאילתות SQL מועדפות';
+$strBookmarkThis = 'הכנס שאילתת SQL זאת למועדפים';
+$strBookmarkView = 'ראה רק';
+$strBrowse = 'עיון';
+$strBulgarian = 'בולגרית';
+$strBusyPages = 'עמודים עסוקים';
+$strBzip = '"bzipped"';
+
+$strCalendar = 'לוח שנה';
+$strCannotLogin = 'נכשל בכניסה לשרת MySQL';
+$strCantLoadRecodeIconv = 'נכשל בטעית תוספת iconv או recode הדרושה להמרת קידודים. או שתגדיר את PHP להפעיל את תוספות אלו, או שתבטל את המרת הקידודים בתוך phpMyAdmin.';
+$strCantLoad = 'התוספת %s לא נטענה בהצלחה,<br />אנא בדוק את הגדרות ה- PHP שלך.';
+$strCantRenameIdxToPrimary = 'לא ניתן לשנות שם אינדקס אל PRIMARY!';
+$strCantUseRecodeIconv = 'נכשל בשימוש בפונקציות iconv, libiconv או recode, למרות שזה נראה כי התוספות הדרושות נטענו. בדוק את הגדרות PHP שלך.';
+$strCardinality = 'מספור';
+$strCaseInsensitive = 'אין חשיבות לרישיות (case)';
+$strCaseSensitive = 'יש חשיבות לרישיות (case)';
+$strChangeCopyModeCopy = '... שמירת הישן.';
+$strChangeCopyModeDeleteAndReload = ' ... מחיקת הישן מטבלאות המשתמשים וטען מחדש את ההרשאות לאחר מכן.';
+$strChangeCopyModeJustDelete = ' ... מחיקת הישן מטבלאות המשתמשים.';
+$strChangeCopyModeRevoke = ' ... בטל את כל ההרשאות הפעילות מהישן ומחק אותו לאחר מכן.';
+$strChangeCopyMode = 'יצירת משתמש חדש עם אותן ההרשאות וגם ...';
+$strChangeCopyUser = 'שינוי מידע כניסה / העתקת משתמש';
+$strChangeDisplay = 'בחירת שדה להצגה';
+$strChangePassword = 'שינוי סיסמא';
+$strChange = 'שינוי';
+$strCharsetOfFile = 'חבילת הקידוד של הקובץ:';
+$strCharsetsAndCollations = 'חבילות קידוד';
+$strCharsets = 'קידודים';
+$strCharset = 'קידוד';
+$strCheckAll = 'בחירת הכל';
+$strCheckOverhead = 'בדיקת טבלאות עבור תקורה';
+$strCheckPrivsLong = 'בדיקת הראשות עבור מאגר נתונים &quot;%s&quot;.';
+$strCheckPrivs = 'בדיקת הרשאות';
+$strCheckTable = 'בדיקת טבלה';
+$strChoosePage = 'אנא בחר עמוד לעריכה';
+$strColComFeat = 'מציג הערות עמודה';
+$strCollation = 'קידוד';
+$strColumnNames = 'שמות עמודה';
+$strColumnPrivileges = 'הרשאות ספציפיות-לעמודה';
+$strCommand = 'פקודה';
+$strComments = 'הערות';
+$strCompatibleHashing = 'תואם MySQL&nbsp;4.0';
+$strCompleteInserts = 'השלם הכנסות';
+$strCompression = 'דחיסה';
+$strConfigFileError = 'phpMyAdmin לא הצליח לקרוא את קובץ ההגדרות שלך! מצב זה יתכן אם PHP מוצא טעות בקוד הקובץ או אם הוא לא מוצא את הקובץ.<br /> אנא קרא לקובץ הקונפיגורציה ישירות בעזרת הקישור מתחת להודעה זו וקרא את הודעת PHP שהינך מקבל. ברוב המילים גרש או נקודה-פסיק חסרים במקום כלשהו.<br /> אם הינך מקבל דף ריק, הכל בסדר.';
+$strConfigureTableCoord = 'אנא הגדר נקודות ציון עבור טבלה %s';
+$strConnectionError = 'חיבור נכשל: הגדרות לא תקינות.';
+$strConnections = 'חיבורים';
+$strConstraintsForDumped = 'הגבלות לטבלאות שהוצאו';
+$strConstraintsForTable = 'הגבלות לטבלה';
+$strCookiesRequired = 'עוגיות (Cookies) חייבות לפעול מנקודה זאת.';
+$strCopyDatabaseOK = 'מאגר נתונים %s הועתק אל %s';
+$strCopyTableOK = 'טבלה %s הועתקה אל %s.';
+$strCopyTableSameNames = 'לא ניתן להעתיק טבלה אל אותה אחת!';
+$strCopyTable = 'העתקת טבלה אל (מסד נתונים<b>.</b>טבלה):';
+$strCopy = 'העתקה';
+$strCouldNotKill = 'phpMyAdmin נכשל בחיסול בהליך %s. רוב הסיכויים שהוא כבר נסגר.';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE לפני העתקה';
+$strCreateIndexTopic = 'יצירת אינדקס חדש';
+$strCreateIndex = 'יצירת אינדקס על&nbsp;%s&nbsp; עמודות';
+$strCreateNewDatabase = 'יצירת מאגר נתונים חדש';
+$strCreateNewTable = 'יצירת טבלה חדשה על מאגר נתונים %s';
+$strCreatePage = 'יצירת עמוד חדש';
+$strCreatePdfFeat = 'יצירה של קבצי PDF';
+$strCreate = 'יצירה';
+$strCreationDates = 'יצירת/עדכון/בדיקת תאריכים';
+$strCriteria = 'קריטריון';
+$strCroatian = 'קרואטית';
+$strCyrillic = 'קירילית';
+$strCzech = 'צ\'יכית';
+
+$strDanish = 'דנית';
+$strDatabaseEmpty = 'שם מאגר הנתונים ריק!';
+$strDatabaseExportOptions = 'אפשרויות ייצוא מאגר נתונים';
+$strDatabaseHasBeenDropped = 'מסד הנתונים %s נמחק.';
+$strDatabasesDropped = '%s מסדי נתונים נמחקו בהצלחה.';
+$strDatabasesStatsDisable = 'ביטול סטטיסטיקה';
+$strDatabasesStatsEnable = 'הפעלת סטטיסטיקה';
+$strDatabasesStatsHeavyTraffic = 'הערה: הפעלת סטטיסטיקות מאגר נתונים כאן יכולות לגרום לתעבורה כבדה בין השרת האינטרנט לשרת MySQL.';
+$strDatabasesStats = 'סטטיסטיקת מסד הנתונים';
+$strDatabases = 'מאגרי נתונים';
+$strDatabase = 'מאגר נתונים';
+$strDataDict = 'מילון מידע';
+$strDataOnly = 'מידע בלבד';
+$strDataPages = 'דפים מכילים מידע';
+$strData = 'נתונים';
+$strDBComment = 'הערה על מאגר הנתונים: ';
+$strDBCopy = 'העתקת מאגר נתונים אל';
+$strDbPrivileges = 'הרשאות ספציפיות למאגר נתונים';
+$strDBRename = 'שינוי שם מאגר נתונים אל';
+$strDbSpecific = 'ספציפי למאגר הנתונים';
+$strDefaultEngine = '%s הוא מנוע האחסון ברירת המחדשל של שרת MySQL זה.';
+$strDefaultValueHelp = 'לערכי ברירת מחדל, אנא הכנס רק ערך בודד, ללא סימני ציטוט או לוכסנים, השתמש בתבנית הזאת : a';
+$strDefault = 'ברירת מחדל';
+$strDefragment = 'איחוי טבלה';
+$strDelayedInserts = 'השתמש בהכנסות מעוכבות';
+$strDeleteAndFlushDescr = 'זהו השיטה הנקייה ביותר, אבל טעינה של ההרשאות יכולה לקחת זמן מה.';
+$strDeleteAndFlush = 'מחיקת המשתמשים וטעינה מחדש של ההרשאות לאחר מכן.';
+$strDeleted = 'השורה נמחקה';
+$strDelete = 'מחיקה';
+$strDeleting = 'מוחק %s';
+$strDelOld = 'לעמוד הנוכחי יש הפניות לטבלאות שכבר לא קיימות. האם אתה רוצה למחוק את הפניות אלו?';
+$strDescending = 'יורד';
+$strDescription = 'תיאור';
+$strDictionary = 'מילון';
+$strDirtyPages = 'דפים מלוכלכים';
+$strDisabled = 'מבוטל';
+$strDisplayFeat = 'הצגת תכונות';
+$strDisplayOrder = 'סדר תצוגה:';
+$strDisplayPDF = 'הצגת תרשים PDF';
+$strDoAQuery = 'ביצוע "שאילתה לדוגמה" (תו כללי: "%")';
+$strDocu = 'תיעוד';
+$strDoYouReally = 'האם אתה באמת רוצה ';
+$strDropDatabaseStrongWarning = 'אתה עומד להרוס מאגר נתונים שלם!';
+$strDropUsersDb = 'הסרת מאגרי נתונים שיש להם שמות דומים כמו למשתמשים.';
+$strDrop = 'הסרה';
+$strDumpingData = 'הוצאת מידע עבור טבלה';
+$strDumpSaved = 'הוצאה נשמרה אל קובץ %s.';
+$strDumpXRows = 'הוצאת %s שורות מתחילת רשומה מספר %s.';
+$strDynamic = 'דינאמי';
+
+$strEditPDFPages = 'עריכת דפי PDG';
+$strEditPrivileges = 'עריכת הרשאות';
+$strEdit = 'עריכה';
+$strEffective = 'יעיל';
+$strEmptyResultSet = 'MySQL החזיר חבילת תוצאות ריקה (לדוגמא, אפס שורות).';
+$strEmpty = 'ריקון';
+$strEnabled = 'מופעל';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'סיום';
+$strEngineAvailable = '%s זמין על שרת MySQL זה.';
+$strEngineDisabled = '%s מובטל על שרת MySQL זה.';
+$strEngines = 'מנועים';
+$strEngineUnsupported = 'שרת MySQL לא תומך במנוע אחסון %s.';
+$strEnglishPrivileges = ' הערה: שמות הרשאות MySQL מובטאות באנגלית ';
+$strEnglish = 'אנגלית';
+$strError = 'שגיאה';
+$strEscapeWildcards = 'תווים כללים _ וגם % צריכים לבוא ביחד עם \ על מנת להשתמש בהם באמת';
+$strEstonian = 'אסטונית';
+$strExcelEdition = 'מהדורת Excel';
+$strExecuteBookmarked = 'הרצת שאילתה מועדפת';
+$strExplain = 'הסברת SQL';
+$strExport = 'ייצוא';
+$strExtendedInserts = 'הכנסות מורחבות';
+$strExtra = 'תוספת';
+
+$strFailedAttempts = 'ניסיונות כושלים';
+$strFieldHasBeenDropped = 'שדה %s נמחק';
+$strFieldsEnclosedBy = 'שדות מוקפים ע"י';
+$strFieldsEscapedBy = 'הורדת שדות עם';
+$strFieldsTerminatedBy = 'סיום שדות ע"י';
+$strFields = 'שדות';
+$strField = 'שדה';
+$strFileAlreadyExists = 'קובץ %s כבר קיים על השרת, שנה שם קובץ או בדוק אופציית כתיבה-על.';
+$strFileCouldNotBeRead = 'נכשל בקריאת הקובץ';
+$strFileNameTemplateRemember = 'זכור תבנית';
+$strFileNameTemplate = 'תבנית שם קובץ';
+$strFixed = 'תוקן';
+$strFlushPrivilegesNote = 'הערה: phpMyAdmin מקבל הרשאות משתמש ישירות מטבלאות הרשאות של MySQL. התוכן של הטבלאות האלו יכול להיות שונה מההרשאות שהשרת משתמש בהן, אם הן שונו באופן ידני. במקרה זה, אתה צריך לבצע %sטעינה מחדש של הרשאות%s לפני שאתה ממשיך.';
+$strFlushTable = 'ריקון טבלה ("FLUSH")';
+$strFormat = 'תבנית';
+$strFormEmpty = 'ערך ריק בטופס!';
+$strFreePages = 'דפים חופשיים';
+$strFullText = 'טקסטים מלאים';
+$strFunction = 'פונקציה';
+
+$strGenBy = 'נוצר ע"י';
+$strGeneralRelationFeat = 'תכונות קשר כלליות';
+$strGeneratePassword = 'ייצור סיסמא';
+$strGenerate = 'ייצור';
+$strGenTime = 'זמן ייצור';
+$strGeorgian = 'גרוזינית';
+$strGerman = 'גרמנית';
+$strGlobalPrivileges = 'הרשאות גלובליות';
+$strGlobalValue = 'ערך גלובלי';
+$strGlobal = 'עולמי';
+$strGo = 'סע';
+$strGrantOption = 'הענקה';
+$strGreek = 'יוונית';
+$strGzip = '"gzipped"';
+
+$strHasBeenAltered = 'שונתה.';
+$strHaveToShow = 'עליך לבחור לפחות עמודה אחת לתצוגה';
+$strHebrew = 'עברית';
+$strHomepageOfficial = 'דף הבית phpMyAdmin הרשמי';
+$strHome = 'בית';
+$strHostEmpty = 'שם המארח ריק!';
+$strHost = 'מארח';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'הונגרית';
+
+$strIcelandic = 'איסלנדית';
+$strIdxFulltext = 'Fulltext';
+$strId = 'קוד זיהוי';
+$strIgnoreInserts = 'השתמש בהעלמות מהכנסות';
+$strIgnore = 'התעלמות';
+$strImportFiles = 'קבצי ייבוא';
+$strIndexes = 'אינדקסים';
+$strIndexHasBeenDropped = 'אינדקס %s הוסר';
+$strIndexName = 'שם אינדקס:';
+$strIndexType = 'סוג אינדקס:';
+$strIndexWarningTable = 'בעיות עם אינדקסים של טבלה `%s`';
+$strIndex = 'אינדקס';
+$strInnoDBDataFilePath = 'קבצי נתונים';
+$strInnoDBDataHomeDir = 'תיקיית בית של נתונים';
+$strInnoDBPages = 'דפים';
+$strInnodbStat = 'מצב InnoDB';
+$strInsecureMySQL = 'קובץ ההגדרות שלך מכיל הגדרות (root ללא סיסמא) אשר תואמות את חשבון הרשאה ברירת מחדל של MySQL. שרת MySQL שלך פועל עם ברירת מחדל זאת, והוא פתוח לחדירות,ואתה ממש צריך לתקן את חור אבטחה זה.';
+$strInsertAsNewRow = 'הכנסה כשורה חדשה';
+$strInsert = 'הכנסה';
+$strInternalRelations = 'יחסים פנימיים';
+$strInUse = 'בשימוש';
+$strInvalidColumnCount = 'מספר העמודות צריך להיות גדול מאפס.';
+$strInvalidFieldAddCount = 'אתה חייב להוסיף לפחות שדה אחד.';
+$strInvalidFieldCount = 'טבלה חייבית להכיל לפחות שדה אחד.';
+$strInvalidRowNumber = '%d הוא לא מספר שורה תקין.';
+
+$strJapanese = 'יפנית';
+$strJumpToDB = 'קפיצה אל מאגר נתונים &quot;%s&quot;.';
+$strJustDelete = 'רק תמחק את המשתמשים מטבלאות ההרשאות.';
+
+$strKeepPass = 'אל תשנה את הסיסמא';
+
+$strLatexCaption = 'כותרת טבלה';
+$strLatexContent = 'תוכן של טבלה __TABLE__';
+$strLatexContinuedCaption = 'כותרת טבלה מומשך';
+$strLatexContinued = '(מומשך)';
+$strLatexIncludeCaption = 'כלול כותרת טבלה';
+$strLatexLabel = 'מפתח תווית';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'מבנה של טבלה __TABLE__';
+$strLatvian = 'Latvian';
+$strLengthSet = 'אורך/ערכים*';
+$strLimitNumRows = 'מספר של שורות לכל דף';
+$strLinesTerminatedBy = 'שורות מסתיימות ע"י';
+$strLinkNotFound = 'קישור לא נמצא';
+$strLinksTo = 'קישורים אל';
+$strLithuanian = 'ליטאית';
+$strLocalhost = 'מקומי';
+$strLocationTextfile = 'מיקום של קובץ טקסט';
+$strLoginInformation = 'מידע כניסה';
+$strLogin = 'כניסה';
+$strLogout = 'יציאה';
+$strLogPassword = 'סיסמא:';
+$strLogServer = 'שרת';
+$strLogUsername = 'שם משתמש:';
+$strLongOperation = 'תהליך זה יכול לקחת זמן רב. להמשיך בכל מקרה?';
+
+$strMaximumSize = 'מירבי: %s%s';
+$strMbExtensionMissing = 'תוספת mbstring לא נמצאה וזה נראה כי אתה משתמש בקידוד multibyte. ללא תוספת mbstring מותקנת, phpMyAdmin אינו יכול לחלק מחרוזות באופן תקין וזה יכול לגרום לתוצאות לא רצויות.';
+$strMIME_available_mime = 'סוגי MIME זמינים';
+$strMIME_available_transform = 'שינויי צורה זמינים';
+$strMIME_description = 'תיאור';
+$strMIME_MIMEtype = 'סוג MIME';
+$strModifications = 'שינויים נשמרו';
+$strModifyIndexTopic = 'עריכת אינדקס';
+$strModify = 'עריכה';
+$strMoveTableOK = 'הטבלה %s הועברה ל- %s.';
+$strMoveTable = 'העברת טבלה אל (מסד נתונים<b>.</b>טבלה):';
+$strMySQLCharset = 'קידוד MySQL';
+$strMySQLConnectionCollation = 'קידוד חיבור MySQL';
+$strMySQLSaid = 'MySQL אמר: ';
+$strMySQLShowProcess = 'ראיית תהליכים';
+
+$strName = 'שם';
+$strNext = 'הבא';
+$strNoDatabasesSelected = 'אף מאגר נתונים לא נבחר.';
+$strNoDatabases = 'אין מאגרי נתונים';
+$strNoDescription = 'ללא תיאור';
+$strNoDetailsForEngine = 'אין מידע מצב מפורט על מנוע אחסון זה.';
+$strNoDropDatabases = 'הוראות "DROP DATABASE" מבוטלות.';
+$strNoExplain = 'Skip Explain SQL';
+$strNoFrames = 'phpMyAdmin יותר ידידותי עם דפדפן <b>frames-capable</b>.';
+$strNoIndexPartsDefined = 'No index parts defined!';
+$strNoIndex = 'אין אינדקסים מוגדרים!';
+$strNoModification = 'ללא שינוי';
+$strNone = 'ללא';
+$strNoOptions = 'לתבנית זאת אין אפשרויות';
+$strNoPassword = 'ללא סיסמא';
+$strNoPermission = 'לשרת אין הרשאה לשמור את קובץ %s.';
+$strNoPhp = 'ללא קוד PHP';
+$strNoPrivileges = 'ללא הרשאות';
+$strNoRights = 'אין לך הרשאות מספיקות להיות כאן כרגע!';
+$strNoRowsSelected = 'לא נבחרו שורות';
+$strNoSpace = 'אןי מספיק מקום לשמור את הקובץ %s.';
+$strNoTablesFound = 'לא נמצאו טבלאות במאגר נתונים.';
+$strNotNumber = 'זה אינו מספר!';
+$strNotOK = 'לא בסדר';
+$strNotSet = 'טבלה <b>%s</b> לא נמצאה או לא קיימת בתוך %s';
+$strNoUsersFound = 'לא נמצאו משתמשים.';
+$strNo = 'לא';
+$strNull = 'Null';
+$strNumberOfFields = 'מספר שדות';
+$strNumSearchResultsTotal = '<b>סה"כ:</b> <i>%s</i> פריטים';
+$strNumTables = 'טבלאות';
+
+$strOK = 'אישור';
+$strOperations = 'פעולות';
+$strOptimizeTable = 'ייעול טבלה';
+$strOr = 'או';
+$strOverhead = 'תקורה';
+
+$strPageNumber = 'מספר דף:';
+$strPagesToBeFlushed = 'דפים לריקון';
+$strPaperSize = 'גודל דף';
+$strPartialText = 'טקסטים חלקיים';
+$strPasswordChanged = 'הסיסמא עבור %s שונתה בהצלחה.';
+$strPasswordEmpty = 'הסיסמא ריקה!';
+$strPasswordNotSame = 'הסיסמאות אינן זהות!';
+$strPassword = 'סיסמא';
+$strPdfInvalidTblName = 'הטבלה "%s" לא קיימת!';
+$strPdfNoTables = 'אין טבלאות';
+$strPerHour = 'לשעה';
+$strPerMinute = 'לדקה';
+$strPerSecond = 'לשנייה';
+$strPersian = 'Persian';
+$strPhoneBook = 'phone book';
+$strPHPVersion = 'גרסת PHP';
+$strPhp = 'ייצור קוד PHP';
+$strPmaDocumentation = 'תיעוד phpMyAdmin';
+$strPolish = 'Polish';
+$strPortrait = 'Portrait';
+$strPos1 = 'התחלה';
+$strPrevious = 'הקודם';
+$strPrimaryKeyHasBeenDropped = 'המפתח הראשי הוסר';
+$strPrimary = 'ראשי';
+$strPrintViewFull = 'תצוגת הדפסה (עם טקסטים מלאים)';
+$strPrintView = 'תצוגת הדפסה';
+$strPrint = 'הדפסה';
+$strPrivDescAllPrivileges = 'כלול כל ההרשאות חוץ מ- GRANT.';
+$strPrivDescAlter = 'מאפשר שינוי של מבני הטבלאות הקיימות.';
+$strPrivDescCreateRoutine = 'מאפשר יצירת שגרות מאוחסנות.';
+$strPrivDescCreateTbl = 'מאפשר יצירת טבלאות חדשות.';
+$strPrivDescCreateTmpTable = 'מאפשר יצירת טבלאות זמניות.';
+$strPrivDescDelete = 'מאפשר מחיקת מידע.';
+$strPrivDescDropDb = 'מאפשר מחיקת מאגרי נתונים וטבלאות.';
+$strPrivDescDropTbl = 'מאפשר מחיקת טבלאות.';
+$strPrivDescUsage = 'ללא הרשאות.';
+$strPrivilegesReloaded = 'ההרשאות נטענו מחדש בהצלחה.';
+$strPrivileges = 'הרשאות';
+$strProcesses = 'תהליכים';
+$strProcesslist = 'רשימת תהליכים';
+
+$strQBEDel = 'מחיקה';
+$strQBEIns = 'הכנסה';
+$strQBE = 'שאילתה';
+$strQueryFrame = 'חלון שאילתה';
+$strQuerySQLHistory = 'היסטוריית SQL';
+$strQueryStatistics = '<b>סטטיטיקת שאילתות</b>: מאז ההפעלה, %s שאילתות נשלחו לשרת.';
+$strQueryTime = 'שאילתה לקחה %01.4f שניות';
+$strQueryType = 'סוג שאילתה';
+$strQueryWindowLock = 'אל תכתוב מחדש על שאילתה זאת מחוץ לחלון זה';
+
+$strReceived = 'התקבל';
+$strRecords = 'רשומות';
+$strRefresh = 'רענון';
+$strRelationNotWorking = 'תכונות נוספות לעבודה עם טבלאות מקושרות בוטלו. לעוד מידע למה לחץ %sכאן%s.';
+$strRelations = 'יחסים';
+$strRelationView = 'תצוגת יחסים';
+$strReloadingThePrivileges = 'טוען מחדש הרשאות';
+$strRemoveSelectedUsers = 'הסרת משתמשים שנבחרו';
+$strRenameDatabaseOK = 'מאגר נתונים %s שונה אל %s';
+$strRenameTableOK = 'טבלה %s שונתה אל %s';
+$strRenameTable = 'שינוי שם טבלה אל';
+$strRepairTable = 'תיקון טבלה';
+$strReplaceNULLBy = 'החלפת NULL ע"י';
+$strReplaceTable = 'החלפת נתוני הטבלה עם הקובץ';
+$strReset = 'איפוס';
+$strResourceLimits = 'גבולות משאבים';
+$strReType = 'הקלדה נוספת';
+$strRevokeAndDelete = 'שלילת כל ההרשאות הפעילות מהמשתמשים ומחיקתם לאחר מכן.';
+$strRevokeMessage = 'אתה שללת הרשאות עבור %s';
+$strRevoke = 'שלילה';
+$strRomanian = 'רומנית';
+$strRowLength = 'אורך שורה';
+$strRowsFrom = 'שורות המתחילות מרשומה #';
+$strRowSize = ' גודל שורה ';
+$strRowsModeFlippedHorizontal = 'מאוזן (headers מסובבים)';
+$strRowsModeHorizontal = 'מאוזן';
+$strRowsModeOptions = 'במצב %s וחזור אחרי Headers לאחר %s תאים';
+$strRowsModeVertical = 'ניצב';
+$strRowsStatistic = 'סטטיסטיקת שורה';
+$strRows = 'שורות';
+$strRunning = 'פועל על %s';
+$strRunQuery = 'שליחת שאילתה';
+$strRunSQLQuery = 'הרצת את שאילתה/שאילתות על מסד הנתונים %s';
+$strRussian = 'רוסית';
+
+$strSaveOnServer = 'שמירת שרת בתוך תיקיית %s';
+$strSave = 'שמירה';
+$strSearchFormTitle = 'חפש במסד הנתונים';
+$strSearchInTables = 'בתוך הטבלה/הטבלאות:';
+$strSearchNeedle = 'מילים או ערכים עבור חיפוש (תו כללי: "%"):';
+$strSearchOption1 = 'לפחות אחת מן המילים';
+$strSearchOption2 = 'כל המילים';
+$strSearchOption3 = 'הביטוי המדוייק';
+$strSearchOption4 = 'כביטוי רגיל';
+$strSearchResultsFor = 'תוצאות חיפוש עבור "<i>%s</i>" %s:';
+$strSearchType = 'מצא:';
+$strSearch = 'חיפוש';
+$strSelectADb = 'אנא בחר מאגר נתונים';
+$strSelectAll = 'בחירת הכל';
+$strSelectFields = 'בחירת שדות (לפחות אחד):';
+$strSelectNumRows = 'בשאילתה';
+$strSelectTables = 'בחירת טבלאות';
+$strSend = 'שמירה כקובץ';
+$strSent = 'נשלח';
+$strServerChoice = 'בחירת שרת';
+$strServerNotResponding = 'השרת אינו מגיב';
+$strServerStatusUptime = 'שרת MySQL פעיל במשך %s. הוא התחיל לפעול ב- %s.';
+$strServerStatus = 'מידע זמן ריצה';
+$strServerTabVariables = 'משתנים';
+$strServerVars = 'משתני והגדרות שרת';
+$strServerVersion = 'גרסת שרת';
+$strServer = 'שרת';
+$strSessionValue = 'ערך זמן חיבור (Session)';
+$strSetEnumVal = 'אם סוג השדה הוא "enum" או "set", אנא השתמש בערכים בתבנית הבאה : \'a\',\'b\',\'c\'...<br /> אם אתה צריך להשתמש באלכסונים ("\") או בציטוט יחיד ("\'") ביחד עם הערכים האלה, הכנס לוכסן אחורי לפניהם (לדוגמא \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'ראיית הכל';
+$strShowColor = 'ראיית צבע';
+$strShowDatadictAs = 'תבנית מידע מילון';
+$strShowFullQueries = 'הראה שאילתות שלמות';
+$strShowGrid = 'הראה רשת';
+$strShowingRecords = 'מראה שורות';
+$strShowPHPInfo = 'ראיית מידע PHP';
+$strShowTableDimension = 'ראיית ממדים של טבלאות';
+$strShowTables = 'ראיית טבלאות';
+$strShowThisQuery = ' הראה את שאילתה כאן שוב ';
+$strShow = 'ראייה';
+$strSingly = '(singly)';
+$strSize = 'גודל';
+$strSlovak = 'סלובקית';
+$strSlovenian = 'סלובנית';
+$strSort = 'סידור';
+$strSpaceUsage = 'שימוש מקום';
+$strSpanish = 'ספרדית';
+$strSplitWordsWithSpace = 'מילים מופרדות ע"י תו רווח (" ").';
+$strSQLExportType = 'סוג ייצוא';
+$strSQLQuery = 'שאילתת SQL';
+$strSQLResult = 'תוצאת SQL';
+$strSQL = 'SQL';
+$strStatCheckTime = 'נבדק לאחרונה';
+$strStatCreateTime = 'יצירה';
+$strStatement = 'משפטים';
+$strStatUpdateTime = 'עדכון אחרון';
+$strStatus = 'מצב';
+$strStorageEngines = 'מנועי אחסון';
+$strStorageEngine = 'מנוע אחסון';
+$strStrucCSV = 'CSV';
+$strStrucData = 'מבנה ומידע';
+$strStrucExcelCSV = 'CSV עבור MS Excel';
+$strStrucNativeExcel = 'תבנית MS Excel טבעית';
+$strStrucOnly = 'מבנה בלבד';
+$strStructPropose = 'הצעת מבנה טבלה';
+$strStructure = 'מבנה';
+$strSubmit = 'שליחה';
+$strSuccess = 'שאילתת SQL שלך בוצעה בהצלחה';
+$strSum = 'סכום';
+$strSwedish = 'שוודית';
+$strSwitchToDatabase = 'מעבר למאגר נתונים שהועתק';
+$strSwitchToTable = 'מעבר לטבלה שהועתקה';
+
+$strTableComments = 'הערות טבלה';
+$strTableEmpty = 'שם הטבלה ריק!';
+$strTableHasBeenDropped = 'טבלה %s נמחקה';
+$strTableHasBeenEmptied = 'טבלה %s רוקנה';
+$strTableHasBeenFlushed = 'טבלה %s אופסה';
+$strTableMaintenance = 'אחזקת טבלה';
+$strTableOfContents = 'תוכן עניניים';
+$strTableOptions = 'אפשרויות טבלה';
+$strTables = '%s טבלאות';
+$strTableStructure = 'מבנה טבלה עבור טבלה';
+$strTable = 'טבלה';
+$strTakeIt = 'קח זאת';
+$strTblPrivileges = 'הרשאות ספציפיות-לטבלאות';
+$strTextAreaLength = ' משום אורכם, <br /> השדה הזה יכול להיות בלתי עריך ';
+$strTheme = 'תבנית / סגנון';
+$strThisHost = 'מארח זה';
+$strTime = 'זמן';
+$strTotalUC = 'סה"כ';
+$strTotal = 'סה"כ';
+$strTraditionalChinese = 'סינית מסורתית';
+$strTraditionalSpanish = 'ספרדית מסורתית';
+$strTraffic = 'Traffic';
+$strTurkish = 'טורקית';
+$strType = 'סוג';
+
+$strUkrainian = 'אוקראינית';
+$strUncheckAll = 'בטל סימון הכל';
+$strUnicode = 'Unicode';
+$strUnique = 'ייחודי';
+$strUnknown = 'לא ידוע';
+$strUnselectAll = 'בטל בחירת הכל';
+$strUpdatePrivMessage = 'אתה עדכנת הרשאות עבור %s.';
+$strUpdateProfileMessage = 'הפרופיל עודכן בהצלחה.';
+$strUpdateQuery = 'עדכון שאילתה';
+$strUpgrade = 'אתה צריך לשדרג אל %s %s לפחות.';
+$strUsage = 'שימוש';
+$strUseBackquotes = 'צירוף תוי ציטוט (backquotes) אל שמות טבלאות ושדות';
+$strUseHostTable = 'Use Host Table';
+$strUserAlreadyExists = 'שם המשתמש %s כבר קיים!';
+$strUserEmpty = 'שם המשתמש ריק !';
+$strUserName = 'שם משתמש';
+$strUserNotFound = 'המשתמש שנבחר לא נמצא בטבלת ההרשאות.';
+$strUserOverview = 'סקירת משתמשים';
+$strUser = 'משתמש';
+$strUseTables = 'השתמש בטבלאות';
+$strUseTextField = 'השתמש בשדה טקסט';
+$strUseThisValue = 'השתמש בערך זה';
+
+$strValidateSQL = 'בדיקת תקינות SQL';
+$strValue = 'ערך';
+$strVar = 'משתנה';
+$strVersionInformation = 'מידע גרסאות';
+$strViewDumpDatabases = 'ראיית הוצאה (תבנית) של מאגרי נתונים';
+$strViewDumpDB = 'ראיית הוצאה (תבנית) של מאגר נתונים';
+$strViewDump = 'ראיית הוצאה (תבנית) של טבלה';
+
+$strWelcome = 'ברוך הבא אל %s';
+$strWildcard = 'תו כללי';
+$strWithChecked = 'עם הנבחרים:';
+$strWriteRequests = 'בקשות כתיבה';
+$strWrongUser = 'שם משתמש/סיסמה שגויים. הגישה נדחתה.';
+
+$strXML = 'XML';
+
+$strYes = 'כן';
+
+$strZeroRemovesTheLimit = 'הערה: הגדרת אפשרויות אלו אל 0 (אפס) יבטלו את ההגבלה.';
+$strZip = '"zipped"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCentralEuropean = 'Central European'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+
+$strHandler = 'Handler'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+$strKeyname = 'Keyname'; //to translate
+$strKill = 'Kill'; //to translate
+$strKorean = 'Korean'; //to translate
+
+$strLandscape = 'Landscape'; //to translate
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause some data to be corrupted!'; //to translate
+$strMIME_nodescription = 'No description is available for this transformation.<br />Please ask the author what %s does.'; //to translate
+$strMIME_transformation = 'Browser transformation'; //to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME type transformations, click on %stransformation descriptions%s'; //to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').'; //to translate
+$strMIME_transformation_options = 'Transformation options'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME types printed in italics do not have a separate transformation function'; //to translate
+$strMoveTableSameNames = 'Can\'t move table to same one!'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoActivity = 'No activity within %s seconds; please log in again'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoThemeSupport = 'No themes support; please check your configuration and/or your themes in directory %s.'; //to translate
+$strNoValidateSQL = 'Skip Validate SQL'; //to translate
+$strNumSearchResultsInTable = '%s match(es) inside table <i>%s</i>'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+$strOverwriteExisting = 'Overwrite existing file(s)'; //to translate
+
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPdfDbSchema = 'Schema of the "%s" database - Page %s'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPmaUriError = 'The <tt>$cfg[\'PmaAbsoluteUri\']</tt> directive MUST be set in your configuration file!'; //to translate
+$strPrimaryKeyName = 'The name of the primary key must be "PRIMARY"!'; //to translate
+$strPrimaryKeyWarning = '("PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!)'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateDb = 'Allows creating new databases and tables.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescExecute = 'Allows running stored procedures; has no effect in this MySQL version.'; //to translate
+$strPrivDescFile = 'Allows importing data from and exporting data into files.'; //to translate
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.'; //to translate
+$strPrivDescIndex = 'Allows creating and dropping indexes.'; //to translate
+$strPrivDescInsert = 'Allows inserting and replacing data.'; //to translate
+$strPrivDescLockTables = 'Allows locking tables for the current thread.'; //to translate
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.'; //to translate
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.'; //to translate
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReferences = 'Has no effect in this MySQL version.'; //to translate
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.'; //to translate
+$strPrivDescReplClient = 'Allows the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescSelect = 'Allows reading data.'; //to translate
+$strPrivDescShowDb = 'Gives access to the complete list of databases.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescShutdown = 'Allows shutting down the server.'; //to translate
+$strPrivDescSuper = 'Allows connecting, even if maximum number of connections is reached; required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strPrivDescUpdate = 'Allows changing data.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+$strPutColNames = 'Put fields names in the first row'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryOnDb = 'SQL query on database <b>%s</b>:'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReferentialIntegrity = 'Check referential integrity:'; //to translate
+$strRelationalSchema = 'Relational schema'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page'; //to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:'; //to translate
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem'; //to translate
+$strSQPBugInvalidIdentifer = 'Invalid Identifer'; //to translate
+$strSQPBugUnclosedQuote = 'Unclosed quote'; //to translate
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToggleScratchboard = 'Toggle scratchboard'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Displays a link to download the binary data of the field. You can use the first option to specify the filename, or use the second option as the name of a field which contains the filename. If you use the second option, you need to set the first option to the empty string.'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail. The options are the maximum width and height in pixels. The original aspect ratio is preserved.'; //to translate
+$strTransformation_image_jpeg__link = 'Displays a link to download this image.'; //to translate
+$strTransformation_image_png__inline = 'See image/jpeg: inline'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds it the field data via standard input. Returns the standard output of the application. The default is Tidy, to pretty-print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and list the tools you want to make available. The first option is then the number of the program you want to use and the second option is the parameters for the program. The third option, if set to 1, will convert the output using htmlspecialchars() (Default 1). The fourth option, if set to 1, will prevent wrapping and ensure that the output appears all on one line (Default 1).'; //to translate
+$strTransformation_text_plain__formatted = 'Displays the contents of the field as-is, without running it through htmlspecialchars(). That is, the field is assumed to contain valid HTML.'; //to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second and third options are the width and the height in pixels.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Displays a part of a string. The first option is the number of characters to skip from the beginning of the string (Default 0). The second option is the number of characters to return (Default: until end of string). The third option is the string to append and/or prepend when truncation occurs (Default: "...").'; //to translate
+$strTruncateQueries = 'Truncate Shown Queries'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpdComTab = 'Please see the documentation on how to update your column_comments table'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUsersDeleted = 'The selected users have been deleted successfully.'; //to translate
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary PHP extensions as described in the %sdocumentation%s.'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWebServerUploadDirectoryError = 'The directory you set for upload work cannot be reached'; //to translate
+$strWebServerUploadDirectory = 'web server upload directory'; //to translate
+$strWestEuropean = 'West European'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window, or your browser\'s security settings are configured to block cross-window updates.'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/hindi-utf-8.inc.php b/lang/hindi-utf-8.inc.php
new file mode 100644
index 0000000000..23b7cf45e6
--- /dev/null
+++ b/lang/hindi-utf-8.inc.php
@@ -0,0 +1,1473 @@
+<?php
+/* $Id$ */
+
+// Hindi translation
+// 1st release : by Girish Nair <girishn@nagpur.dot.net.in(outdated)> : 08-Aug-2002
+// 2nd updates : by Girish Nair <girishn@nagpur.dot.net.in(outdated)> : 23-Aug-2002
+// 3rd updates : by Girish Nair <girishn@nagpur.dot.net.in(outdated)> : 09-Sep-2002
+// 4th updates : by Girish Nair <girishn@nagpur.dot.net.in(outdated)> : 15-Nov-2002
+// 5th updates : by Girish Nair <girishn2003_@_yahoo_._co_._in(latest), www.girishn.com> : 25-Nov-2003
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+//$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+$byteUnits = array(' बैट्स', ' केबी', ' एमबी', ' जीबी','टीबी','पीबी','ईबी');
+
+$day_of_week = array('रवी', 'सोम', 'मन्गल', 'बुध', 'गुरु', 'शुक्र', 'शनि');
+$month = array('जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', ' सितम्बर', 'अक्तूबर', 'नवम्बर', 'दिसमबर');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B, %Y को %I:%M %p';
+$timespanfmt = '%s days, %s hours, %s minutes and %s seconds';
+
+$strAccessDenied = 'प्रवेश निषेध';
+$strAction = ' कार्य';
+$strAddNewField = 'नया फील्ड जोडो';
+$strAddPrivilegesOnDb = 'इन डाटाबेसों के लिये प्रिविलेज जोडिये';
+$strAddPrivilegesOnTbl = 'इन टेबल के लिये प्रिविलेज जोडिये';
+$strAddUser = 'नया यूसर बनाओ';
+$strAddUserMessage = 'आपने नया यूसर बना लिया ।';
+$strAfterInsertBack = 'पिछले पृष्ट पर वापस जाओ';
+$strAfterInsertNewInsert = ' अगला नया रौ जोडे';
+$strAfter = '%s के बाद में';
+$strAll = 'सभी';
+$strAlterOrderBy = ' टेबल ओरडर को बदलिये ';
+$strAnalyzeTable = ' टेबल अनालैज करें';
+$strAnd = 'और';
+$strAnIndex = ' %s पर एक इन्डेक्स बनाया';
+$strAny = 'कोई';
+$strAnyHost = 'कोई भी होस्ट';
+$strAnyUser = 'कोई भी यूसर';
+$strAPrimaryKey = ' %s पर एक प्राईमरी की बनाया';
+$strArabic = 'पर्शियन';
+$strAtBeginningOfTable = ' टेबल के शुरू में';
+$strAtEndOfTable = ' टेबल के आखिर में';
+$strAttr = ' विशेषता';
+
+$strBack = 'वापस';
+$strBinary = 'बइनरी';
+$strBinaryDoNotEdit = 'बइनरी - एडिट मत करिये';
+$strBookmarkDeleted = 'यह bookmark डिलीट कर दिया गया।';
+$strBookmarkLabel = 'लेबल';
+$strBookmarkQuery = 'Bookmark किया हुआ SQL-क्वरी';
+$strBookmarkThis = 'इस SQL-क्वरी को bookmark कीजिये ';
+$strBookmarkView = 'केवल देखिये';
+$strBrowse = ' ब्रौस';
+
+$strCantRenameIdxToPrimary = 'इन्डेक्स को PRIMARY नाम मे नहीं बदल सकते!';
+$strChange = 'बदलिये';
+$strChangePassword = 'पासव्रड बदलिये';
+$strCheckAll = 'सभी को चेक करें';
+$strCheckPrivs = 'प्रिविलेज चेक करें';
+$strCheckPrivsLong = 'डाटाबेस के प्रिविलेज चेक करें &quot;%s&quot;.';
+$strCheckTable = ' टेबल को चेक करें';
+$strChoosePage = ' एडिट करने के लिये पेज़ चुने';
+$strColumnNames = 'कोलम के नाम';
+$strColumnPrivileges = ' केवल कोलम के प्रिविलेज';
+$strComments = ' टिप्पणी';
+$strCompleteInserts = 'पूरा इनसर्टस';
+$strCopyTable = ' (database<b>.</b>table) में टेबल को कापी करें:';
+$strCopyTableOK = ' %s टेबल को %s में कापी कर दिया.';
+$strCouldNotKill = 'thread %s को मारने में phpMyAdmin असफल हुआ। शायद वह खतम हो चुका है।';
+$strCreate = 'बनाइये';
+$strCreateIndex = ' &nbsp;%s&nbsp; कोलम पर इन्डेक्स बनाऐं ';
+$strCreateIndexTopic = 'एक नया इन्डेक्स बनाऐं';
+$strCreateNewDatabase = ' नया डाटाबेस बनाओ';
+$strCreateNewTable = ' डाटाबेस मे नया टेबल बनाओ';
+$strCreatePage = 'नया पेज़ बनाऐं';
+
+$strData = ' डाटा';
+$strDatabase = ' डाटाबेस';
+$strDatabaseHasBeenDropped = 'डाटाबेस %s को ड्रोप कर दिया ।';
+$strDatabases = ' डाटाबेस';
+$strDatabasesDropped = '%s डाटाबेस को सफलता से डिलीट कर दिया गया।';
+$strDatabasesStats = ' डाटाबेसों के आँकडे';
+$strDatabasesStatsDisable = 'आँकडे Disable करें';
+$strDatabasesStatsEnable = 'आँकडे Enable करें';
+$strDatabasesStatsHeavyTraffic = ' नोट: यहां डाटाबेस के आँकडे Enable करने से webserver और MySQL के बीच में ट्रेफिक बडने की संभावना है। ';
+$strDataOnly = 'केवल डाटा';
+$strDBComment = 'डाटाबेस की टिप्पणि: ';
+$strDbPrivileges = ' केवल डाटाबेस के प्रिविलेज';
+$strDefault = 'Default';
+$strDelete = 'डिलीट';
+$strDeleted = 'रौ को डिलीट कर दिया';
+$strDescription = 'वर्णन';
+$strDictionary = 'शब्दकोश';
+$strDisplayFeat = 'फीचरस दिखाओ';
+$strDisplayOrder = 'क्रम से दिखाओ:';
+$strDisplayPDF = 'PDF schema दिखाओ';
+$strDocu = 'डोक्युमेंटेशन';
+$strDoYouReally = 'क्या आप सचमुच चाहते है की';
+$strDrop = ' ड्रोप';
+$strDropUsersDb = 'Drop the databases that have the same names as the users.';
+
+$strEdit = 'एडिट';
+$strEditPDFPages = 'PDF पेज एडिट करें';
+$strEditPrivileges = ' प्रिविलेज एडिट करें';
+$strEffective = ' वास्तविक';
+$strEmpty = 'खाली करें';
+$strEnd = 'आखरी';
+$strEnglish = 'अंग्रेजी';
+$strEnglishPrivileges = ' नोट: MySQL प्रिविलेज नामों को अंग्रेजी मे लिखा गया है ';
+$strError = 'गल्ती';
+$strExplain = 'SQL की व्याख्या ';
+$strExport = 'एक्सपोर्ट';
+$strExtendedInserts = 'विस्तृत इनसर्टस';
+$strExtra = ' अतिरिक्त';
+
+$strField = ' फील्ड';
+$strFieldHasBeenDropped = ' फील्ड %s ड्रोप कर दिया';
+$strFields = ' फील्डस';
+$strFlushTable = ' टेबल को Flush करें ("FLUSH")';
+
+$strGenTime = 'समय पर बनाया';
+$strGerman = 'जर्मन';
+$strGreek = ' ग्रीक';
+
+$strHasBeenAltered = 'को बदला गया। ';
+$strHome = 'होम';
+$strHomepageOfficial = 'phpMyAdmin का आधिकारिक होमपेज';
+$strHost = 'होस्ट';
+$strHostEmpty = 'होस्ट का नाम (hostname) खाली है!';
+
+$strInsert = 'इनसर्ट';
+$strInsertAsNewRow = 'इसको नया रौ में जोडे ';
+
+$strJapanese = 'जापानी';
+
+$strKeepPass = 'पासवर्ड मत बदलिये';
+$strKorean = 'कोरियन';
+
+$strLengthSet = 'लंबाई/अर्थ*';
+$strLimitNumRows = 'प्रति पृष्ट कितने रौ';
+$strLinesTerminatedBy = 'लाईन समाप्त होता है';
+$strLocalhost = 'Local';
+$strLogin = 'लोगिन';
+$strLogout = 'लोग औट';
+$strLogPassword = 'पासव्रड:';
+$strLogUsername = 'यूसरनेम:';
+
+$strMoveTable = ' टेबल को (database<b>.</b>table) में मूव करें:';
+$strMoveTableOK = ' %s टेबल को %s में मूव कर दिया.';
+$strMySQLShowProcess = 'प्रोसेस दिखाओ';
+
+$strName = 'नाम';
+$strNext = ' अगला';
+$strNo = 'नहीं';
+$strNoDatabases = 'कोइ डाटाबेस नहिं';
+$strNoDatabasesSelected = ' कोइ डाटाबेस नहीं चुना गया है।';
+$strNoModification = 'कोइ बदलाव नहीं';
+$strNoPassword = 'पासवर्ड नहीं है';
+$strNoPrivileges = 'कोइ प्रिविलेज नहीं';
+$strNoTablesFound = 'डाटाबेस में कोई टेबल नहीं।';
+$strNotNumber = 'यह नंबर नहीं है!';
+$strNoUsersFound = 'कोई यूसर नहीं।';
+
+$strOperations = 'कार्रवाई';
+$strOptimizeTable = ' टेबल को Optimize करें';
+$strOr = 'अथवा';
+
+$strPdfNoTables = ' कोई टेबल नहीं';
+$strPhp = 'PHP Code बनाओ';
+$strPmaDocumentation = 'phpMyAdmin डोक्युमेंटेशन';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivileges = ' प्रिविलेज';
+
+$strQBE = 'क्वरी';
+$strQueryFrame = 'क्वरी पेज';
+$strQuerySQLHistory = 'SQL- इतिहास';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+$strQueryTime = 'क्वरी को %01.4f सेकेंड का समय लगा';
+
+$strRepairTable = ' टेबल को टीक करें';
+$strRevoke = 'वापस लो';
+$strRevokeMessage = 'आपने %s के privileges वापस ले लिया ';
+$strRowLength = ' रौ की लंबाई';
+$strRowsFrom = 'रौ, इस record से #';
+$strRowsModeHorizontal = 'समतल';
+$strRowsModeOptions = ' %s रूप में और %s सेल के बाद शीर्षक को दोहराईये';
+$strRowsModeVertical = 'खडा';
+$strRunning = ' %s पर चल रहा है';
+$strRunSQLQuery = 'डाटाबेस %s में SQL query/queries चलाइये ';
+$strRussian = 'रशियन';
+
+$strSearch = 'सर्च';
+$strSearchFormTitle = 'डाटाबेस में सर्च करें';
+$strSearchInTables = ' टेबल में:';
+$strSearchNeedle = 'शब्द अथवा वेल्यु जिसे सर्च करना है (wildcard: "%"):';
+$strSearchOption1 = 'कोई भी एक शब्द';
+$strSearchOption2 = 'सभी शब्द';
+$strSearchOption3 = 'यथार्थ वाक्यांश';
+$strSearchResultsFor = '"<i>%s</i>" %s के लिये सर्च के परिणाम :';
+$strSearchType = 'खोजो:';
+$strSelectADb = 'कृपया एक डाटाबेस चुनिये ';
+$strSelectAll = ' सभी को सेल्कट करें';
+$strSelectTables = ' टेबल चुनिये';
+$strSend = 'फाईल मे सेव करें';
+$strServerChoice = 'Server चुनिये';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strShow = 'दिखाओ';
+$strShowAll = 'सभी दिखाओ';
+$strShowColor = 'रंगीन दिखाओ';
+$strShowGrid = 'grid दिखाओ';
+$strShowingRecords = 'रौ देखिये';
+$strShowPHPInfo = 'PHP कि जानकारी दिखाओ';
+$strShowTableDimension = ' टेबल के परिमाण दिखाओ';
+$strShowTables = ' टेबल दिखाओ';
+$strShowThisQuery = ' यह query वापस यहीं दिखायें ';
+$strSplitWordsWithSpace = 'शब्दों में space (" ") से अंतर करें.';
+$strStrucData = 'संरचना और डाटा';
+$strStrucOnly = 'केवल संरचना';
+$strStructure = 'संरचना';
+$strSuccess = 'आपकी SQL-query सफलता से पूरा किया';
+$strSum = 'जोड';
+
+$strTable = ' टेबल ';
+$strTableComments = ' टेबल की टिप्पणि';
+$strTableEmpty = ' टेबल का नाम खाली है!';
+$strTableHasBeenDropped = ' टेबल %s को ड्रोप किया';
+$strTableHasBeenEmptied = ' टेबल %s को खाली किया';
+$strTableHasBeenFlushed = ' टेबल %s को flush किया';
+$strTableMaintenance = ' टेबल रख-रखाव';
+$strTables = ' %s टेबल(s)';
+$strTblPrivileges = ' केवल टेबल के प्रिविलेज';
+$strThreadSuccessfullyKilled = 'Thread %s को सफलता से मारा गया।';
+$strTotal = ' कुल';
+$strTurkish = 'तुर्क';
+$strType = ' प्रकार';
+
+$strUncheckAll = ' सभी को अनचेक करें';
+$strUnselectAll = ' सभी को अनसेल्कट करें';
+$strUpdatePrivMessage = 'आपने %s के प्रिविलेज अपडेट कर दिया ।';
+$strUpdateProfileMessage = 'प्रोफाइल अपडेट कर दिया ।';
+$strUpdateQuery = ' क्वरी अपडेट करो';
+$strUsage = 'उपयोग';
+$strUseBackquotes = ' टेबल और फील्ड के नाम को backquotes से Enclose करें';
+$strUser = 'यूसर';
+$strUserEmpty = 'यूसरनेम खाली है!';
+$strUserName = 'यूसर नेम';
+$strUseTables = ' टेबल का उपयोग करो';
+
+$strValue = 'मूल्य';
+
+$strWelcome = ' %s मे स्वागत है';
+$strWithChecked = 'चुने हुओं को:';
+$strWrongUser = 'यूसरनेम/पासवर्ड गलत है। Access denied.';
+
+$strYes = 'हाँ ';
+
+// To translate:
+$strAbortedClients = 'Aborted'; //to translate
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddDeleteColumn = 'Add/Delete Field Columns'; //to translate
+$strAddDeleteRow = 'Add/Delete Criteria Row'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAddIntoComments = 'Add into comments';//to translate
+$strAddSearchConditions = 'Add search conditions (body of the "where" clause):'; //to translate
+$strAddToIndex = 'Add to index &nbsp;%s&nbsp;column(s)'; //to translate
+$strAdministration = 'Administration'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAllTableSameWidth = 'display all Tables with same width?'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+$strArmenian = 'Armenian'; //to translate
+$strAscending = 'Ascending'; //to translate
+$strAutomaticLayout = 'Automatic layout'; //to translate
+
+$strBaltic = 'Baltic'; //to translate
+$strBeginCut = 'BEGIN CUT'; //to translate
+$strBeginRaw = 'BEGIN RAW'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBulgarian = 'Bulgarian'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+$strBzip = '"bzipped"'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCannotLogin = 'Cannot login to MySQL server'; //to translate
+$strCantLoad = 'cannot load %s extension,<br />please check PHP Configuration'; //to translate
+$strCantLoadRecodeIconv = 'Can not load iconv or recode extension needed for charset conversion, configure php to allow using these extensions or disable charset conversion in phpMyAdmin.'; //to translate
+$strCantUseRecodeIconv = 'Can not use iconv nor libiconv nor recode_string function while extension reports to be loaded. Check your php configuration.'; //to translate
+$strCardinality = 'Cardinality'; //to translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCentralEuropean = 'Central European'; //to translate
+$strChangeCopyModeCopy = '... keep the old one.'; //to translate
+$strChangeCopyMode = 'Create a new user with the same privileges and ...'; //to translate
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; //to translate
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; //to translate
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; //to translate
+$strChangeCopyUser = 'Change Login Information / Copy User'; //to translate
+$strChangeDisplay = 'Choose Field to display'; //to translate
+$strCharset = 'Charset'; //to translate
+$strCharsetOfFile = 'Character set of the file:'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCharsets = 'Charsets'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strColComFeat = 'Displaying Column Comments'; //to translate
+$strCollation = 'Collation'; //to translate
+$strCommand = 'Command'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompression = 'Compression'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConfigFileError = 'phpMyAdmin was unable to read your configuration file!<br />This might happen if php finds a parse error in it or php cannot find the file.<br />Please call the configuration file directly using the link below and read the php error message(s) that you recieve. In most cases a quote or a semicolon is missing somewhere.<br />If you recieve a blank page, everything is fine.'; //to translate
+$strConfigureTableCoord = 'Please configure the coordinates for table %s'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConnections = 'Connections'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCookiesRequired = 'Cookies must be enabled past this point.'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCopyTableSameNames = 'Can\'t copy table to same one!'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreatePdfFeat = 'Creation of PDFs'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCriteria = 'Criteria'; //to translate
+$strCroatian = 'Croatian'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCyrillic = 'Cyrillic'; //to translate
+$strCzech = 'Czech'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDanish = 'Danish'; //to translate
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDatabaseExportOptions = 'Database export options';//to translate
+$strDataDict = 'Data Dictionary'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDbSpecific = 'database-specific'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteAndFlush = 'Delete the users and reload the privileges afterwards.'; //to translate
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDeleting = 'Deleting %s'; //to translate
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+$strDescending = 'Descending'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisabled = 'Disabled'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDoAQuery = 'Do a "query by example" (wildcard: "%")'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+$strDumpingData = 'Dumping data for table'; //to translate
+$strDumpSaved = 'Dump has been saved to file %s.'; //to translate
+$strDumpXRows = 'Dump %s row(s) starting at record # %s.'; //to translate
+$strDynamic = 'dynamic'; //to translate
+
+$strEmptyResultSet = 'MySQL returned an empty result set (i.e. zero rows).'; //to translate
+$strEnabled = 'Enabled'; //to translate
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEndCut = 'END CUT'; //to translate
+$strEndRaw = 'END RAW'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strEstonian = 'Estonian'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+
+$strFailedAttempts = 'Failed attempts'; //to translate
+$strFieldsEnclosedBy = 'Fields enclosed by'; //to translate
+$strFieldsEscapedBy = 'Fields escaped by'; //to translate
+$strFieldsTerminatedBy = 'Fields terminated by'; //to translate
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.'; //to translate
+$strFileCouldNotBeRead = 'File could not be read'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileNameTemplate = 'File name template';//to translate
+$strFileNameTemplateRemember = 'remember template';//to translate
+$strFileToImport = 'File to import'; //to translate
+$strFixed = 'fixed'; //to translate
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of this tables may differ from the privileges the server uses if manual changes have made to it. In this case, you should %sreload the privileges%s before you continue.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFormat = 'Format'; //to translate
+$strFormEmpty = 'Missing value in the form !'; //to translate
+$strFreePages = 'Free pages'; //to translate
+$strFullText = 'Full Texts'; //to translate
+$strFunction = 'Function'; //to translate
+
+$strGenBy = 'Generated by'; //to translate
+$strGeneralRelationFeat = 'General relation features'; //to translate
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+$strGlobal = 'global'; //to translate
+$strGlobalPrivileges = 'Global privileges'; //to translate
+$strGlobalValue = 'Global value'; //to translate
+$strGo = 'Go'; //to translate
+$strGrantOption = 'Grant'; //to translate
+$strGzip = '"gzipped"'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHaveToShow = 'You have to choose at least one Column to display'; //to translate
+$strHebrew = 'Hebrew'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+$strHungarian = 'Hungarian'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strId = 'ID'; //to translate
+$strIdxFulltext = 'Fulltext'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnore = 'Ignore'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFiles = 'Import files'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexes = 'Indexes'; //to translate
+$strIndexHasBeenDropped = 'Index %s has been dropped'; //to translate
+$strIndex = 'Index'; //to translate
+$strIndexName = 'Index name&nbsp;:'; //to translate
+$strIndexType = 'Index type&nbsp;:'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInnodbStat = 'InnoDB Status'; //to translate
+$strInsecureMySQL = 'Your configuration file contains settings (root with no password) that correspond to the default MySQL privileged account. Your MySQL server is running with this default, is open to intrusion, and you really should fix this security hole.'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInUse = 'in use'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+$strJumpToDB = 'Jump to database &quot;%s&quot;.'; //to translate
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.'; //to translate
+$strJustDelete = 'Just delete the users from the privilege tables.'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+$strKeyname = 'Keyname'; //to translate
+$strKill = 'Kill'; //to translate
+
+$strLandscape = 'Landscape'; //to translate
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption';//to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexContinued = '(continued)';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLaTeX = 'LaTeX'; //to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLinkNotFound = 'Link not found'; //to translate
+$strLinksTo = 'Links to'; //to translate
+$strLithuanian = 'Lithuanian'; //to translate
+$strLocationTextfile = 'Location of the textfile'; //to translate
+$strLoginInformation = 'Login Information'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIME_available_mime = 'Available MIME-types';//to translate
+$strMIME_available_transform = 'Available transformations';//to translate
+$strMIME_description = 'Description';//to translate
+$strMIME_MIMEtype = 'MIME-type';//to translate
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.';//to translate
+$strMIME_transformation = 'Browser transformation';//to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';//to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';//to translate
+$strMIME_transformation_options = 'Transformation options';//to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';//to translate
+$strModifications = 'Modifications have been saved'; //to translate
+$strModifyIndexTopic = 'Modify an index'; //to translate
+$strModify = 'Modify'; //to translate
+$strMoveTableSameNames = 'Can\'t move table to same one!'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMySQLCharset = 'MySQL charset'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+$strMySQLSaid = 'MySQL said: '; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDescription = 'no Description'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoDropDatabases = '"DROP DATABASE" statements are disabled.'; //to translate
+$strNoExplain = 'Skip Explain SQL'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoFrames = 'phpMyAdmin is more friendly with a <b>frames-capable</b> browser.'; //to translate
+$strNoIndex = 'No index defined!'; //to translate
+$strNoIndexPartsDefined = 'No index parts defined!'; //to translate
+$strNone = 'None'; //to translate
+$strNoOptions = 'This format has no options';//to translate
+$strNoPermission = 'The web server does not have permission to save the file %s.'; //to translate
+$strNoPhp = 'Without PHP Code'; //to translate
+$strNoRights = 'You don\'t have enough rights to be here right now!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoSpace = 'Insufficient space to save the file %s.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNotOK = 'not OK'; //to translate
+$strNotSet = '<b>%s</b> table not found or not set in %s'; //to translate
+$strNoValidateSQL = 'Skip Validate SQL'; //to translate
+$strNull = 'Null'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+$strNumSearchResultsInTable = '%s match(es) inside table <i>%s</i>'; //to translate
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> match(es)'; //to translate
+$strNumTables = 'Tables'; //to translate
+
+$strOK = 'OK'; //to translate
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+$strOverhead = 'Overhead'; //to translate
+$strOverwriteExisting = 'Overwrite existing file(s)'; //to translate
+
+$strPageNumber = 'Page number:'; //to translate
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPaperSize = 'Paper size'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPartialText = 'Partial Texts'; //to translate
+$strPasswordChanged = 'The Password for %s was changed successfully.'; // to translate
+$strPasswordEmpty = 'The password is empty!'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPasswordNotSame = 'The passwords aren\'t the same!'; //to translate
+$strPassword = 'Password'; //to translate
+$strPdfDbSchema = 'Schema of the "%s" database - Page %s'; //to translate
+$strPdfInvalidTblName = 'The "%s" table doesn\'t exist!'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPerHour = 'per hour'; //to translate
+$strPerMinute = 'per minute';//to translate
+$strPerSecond = 'per second';//to translate
+$strPersian = 'Persian'; //to translate
+$strPhoneBook = 'phone book'; //to translate
+$strPHPVersion = 'PHP Version'; //to translate
+$strPmaUriError = 'The <tt>$cfg[\'PmaAbsoluteUri\']</tt> directive MUST be set in your configuration file!'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPortrait = 'Portrait'; //to translate
+$strPos1 = 'Begin'; //to translate
+$strPrevious = 'Previous'; //to translate
+$strPrimaryKeyHasBeenDropped = 'The primary key has been dropped'; //to translate
+$strPrimaryKeyName = 'The name of the primary key must be... PRIMARY!'; //to translate
+$strPrimaryKeyWarning = '("PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!)'; //to translate
+$strPrimary = 'Primary'; //to translate
+$strPrint = 'Print'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrintView = 'Print view'; //to translate
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.'; //to translate
+$strPrivDescAlter = 'Allows altering the structure of existing tables.'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateDb = 'Allows creating new databases and tables.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateTbl = 'Allows creating new tables.'; //to translate
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescDelete = 'Allows deleting data.'; //to translate
+$strPrivDescDropDb = 'Allows dropping databases and tables.'; //to translate
+$strPrivDescDropTbl = 'Allows dropping tables.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescExecute = 'Allows running stored procedures; Has no effect in this MySQL version.'; //to translate
+$strPrivDescFile = 'Allows importing data from and exporting data into files.'; //to translate
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.'; //to translate
+$strPrivDescIndex = 'Allows creating and dropping indexes.'; //to translate
+$strPrivDescInsert = 'Allows inserting and replacing data.'; //to translate
+$strPrivDescLockTables = 'Allows locking tables for the current thread.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReferences = 'Has no effect in this MySQL version.'; //to translate
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.'; //to translate
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescSelect = 'Allows reading data.'; //to translate
+$strPrivDescShowDb = 'Gives access to the complete list of databases.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescShutdown = 'Allows shutting down the server.'; //to translate
+$strPrivDescSuper = 'Allows connectiong, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strPrivDescUpdate = 'Allows changing data.'; //to translate
+$strPrivDescUsage = 'No privileges.'; //to translate
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.'; //to translate
+$strProcesses = 'Processes'; //to translate
+$strProcesslist = 'Process list'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+$strPutColNames = 'Put fields names at first row'; //to translate
+
+$strQBEDel = 'Del'; //to translate
+$strQBEIns = 'Ins'; //to translate
+$strQueryCache = 'Query cache'; //to translate
+$strQueryOnDb = 'SQL-query on database <b>%s</b>:'; //to translate
+$strQueryType = 'Query type'; //to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReceived = 'Received'; //to translate
+$strRecords = 'Records'; //to translate
+$strReferentialIntegrity = 'Check referential integrity:'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationalSchema = 'Relational schema'; //to translate
+$strRelationNotWorking = 'The additional Features for working with linked Tables have been deactivated. To find out why click %shere%s.'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strRelations = 'Relations'; //to translate
+$strRelationView = 'Relation view'; //to translate
+$strReloadingThePrivileges = 'Reloading the privileges'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRemoveSelectedUsers = 'Remove selected users'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strRenameTableOK = 'Table %s has been renamed to %s'; //to translate
+$strRenameTable = 'Rename table to'; //to translate
+$strReplaceNULLBy = 'Replace NULL by'; //to translate
+$strReplaceTable = 'Replace table data with file'; //to translate
+$strReplication = 'Replication'; //to translate
+$strReset = 'Reset'; //to translate
+$strResourceLimits = 'Resource limits'; //to translate
+$strReType = 'Re-type'; //to translate
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.'; //to translate
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRowSize = ' Row size '; //to translate
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)';//to translate
+$strRows = 'Rows'; //to translate
+$strRowsStatistic = 'Row Statistic'; //to translate
+$strRunQuery = 'Submit Query'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSaveOnServer = 'Save on server in %s directory'; //to translate
+$strSave = 'Save'; //to translate
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page'; //to translate
+$strSearchOption4 = 'as regular expression'; //to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strSelectFields = 'Select fields (at least one):'; //to translate
+$strSelectNumRows = 'in query'; //to translate
+$strSent = 'Sent'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServer = 'Server'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strServerStatus = 'Runtime Information'; //to translate
+$strServerStatusUptime = 'This MySQL server has been running for %s. It started up on %s.'; //to translate
+$strServerTabVariables = 'Variables'; //to translate
+$strServerVars = 'Server variables and settings'; //to translate
+$strServerVersion = 'Server version'; //to translate
+$strSessionValue = 'Session value'; //to translate
+$strSetEnumVal = 'If field type is "enum" or "set", please enter the values using this format: \'a\',\'b\',\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').'; //to translate
+$strShowDatadictAs = 'Data Dictionary Format'; //to translate
+$strShowFullQueries = 'Show Full Queries'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSingly = '(singly)'; //to translate
+$strSize = 'Size'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSort = 'Sort'; //to translate
+$strSpaceUsage = 'Space usage'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:'; //to translate
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem'; //to translate
+$strSQLQuery = 'SQL-query'; //to translate
+$strSQLResult = 'SQL result'; //to translate
+$strSQL = 'SQL'; //to translate
+$strSQPBugInvalidIdentifer = 'Invalid Identifer'; //to translate
+$strSQPBugUnclosedQuote = 'Unclosed quote'; //to translate
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String'; //to translate
+$strStatCheckTime = 'Last check';//to translate
+$strStatCreateTime = 'Creation';//to translate
+$strStatement = 'Statements'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStatUpdateTime = 'Last update';//to translate
+$strStatus = 'Status'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucCSV = 'CSV data'; //to translate
+$strStrucExcelCSV = 'CSV for MS Excel data'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strStructPropose = 'Propose table structure'; //to translate
+$strSubmit = 'Submit'; //to translate
+$strSwedish = 'Swedish'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+$strSwitchToTable = 'Switch to copied table'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableOfContents = 'Table of contents'; //to translate
+$strTableOptions = 'Table options'; //to translate
+$strTableStructure = 'Table structure for table'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strTextAreaLength = ' Because of its length,<br /> this field might not be editable '; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThisHost = 'This Host'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTime = 'Time'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTotalUC = 'Total'; //to translate
+$strTraditionalChinese = 'Traditional Chinese'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTraffic = 'Traffic'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)'; //to translate
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).';//to translate
+$strTransformation_image_png__inline = 'See image/jpeg: inline'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';//to translate
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.';//to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';//to translate
+$strTruncateQueries = 'Truncate Shown Queries'; //to translate
+
+$strUkrainian = 'Ukrainian'; //to translate
+$strUnicode = 'Unicode'; //to translate
+$strUnique = 'Unique'; //to translate
+$strUnknown = 'unknown'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseHostTable = 'Use Host Table'; //to translate
+$strUserAlreadyExists = 'The user %s already exists!'; //to translate
+$strUserNotFound = 'The selected user was not found in the privilege table.'; //to translate
+$strUserOverview = 'User overview'; //to translate
+$strUsersDeleted = 'The selected users have been deleted successfully.'; //to translate
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseTextField = 'Use text field'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strValidateSQL = 'Validate SQL'; //to translate
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary php extensions as described in the %sdocumentation%s.'; //to translate
+$strVar = 'Variable'; //to translate
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases';//to translate
+$strViewDumpDB = 'View dump (schema) of database'; //to translate
+$strViewDump = 'View dump (schema) of table'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWebServerUploadDirectoryError = 'The directory you set for upload work cannot be reached'; //to translate
+$strWebServerUploadDirectory = 'web-server upload directory'; //to translate
+$strWestEuropean = 'West European'; //to translate
+$strWildcard = 'wildcard'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strXML = 'XML';//to translate
+
+$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.'; //to translate
+$strZip = '"zipped"' ; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/hungarian-utf-8.inc.php b/lang/hungarian-utf-8.inc.php
new file mode 100644
index 0000000000..42ba5ababe
--- /dev/null
+++ b/lang/hungarian-utf-8.inc.php
@@ -0,0 +1,1450 @@
+<?php
+/* $Id$ */
+// Peter Bakondy <bakondyp@freemail.hu>
+// Mihály Mészáros <poizon at sth dot sze dot hu>
+// József Tamás Herczeg <localicer @NOSPAM@ gmail DOT com>
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr': balról jobbra, 'rtl': jobbról balra)
+$number_thousands_separator = ' ';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bájt', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+// MySQL manual language definition, this is optional, en will be used
+// if not defined
+$mysql_4_1_doc_lang = 'en';
+$mysql_5_0_doc_lang = 'en';
+$mysql_5_1_doc_lang = 'en';
+
+$day_of_week = array('V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo');
+$month = array('jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%Y. %B %d. %H:%M';
+$timespanfmt = '%s nap, %s óra, %s perc, %s másodperc';
+
+$strAbortedClients = 'Megszakítva';
+$strAccessDenied = 'A hozzáférés megtagadva';
+$strAccessDeniedCreateConfig = 'Ön valószínűleg nem hozta létre a konfigurációs fájlt. A %1$stelepítőszkripttel%2$s el tudja készíteni.';
+$strAccessDeniedExplanation = 'A phpMyAdmin megpróbált csatlakozni a MySQL szerverhez, de a szerver elutasította a kapcsolatot. Ellenőrizze a host, a username és a jelszó mezőt a config.inc.php fájlban, s győződjön meg róla, hogy ezek megfelelnek-e a MySQL szerver adminisztrátorától kapott információknak.';
+$strAction = 'Művelet';
+$strActions = 'Műveletek';
+$strAddAutoIncrement = 'AUTO_INCREMENT érték hozzáadása';
+$strAddClause = '%s hozzáadása';
+$strAddConstraints = 'Megszorítás hozzáadása';
+$strAddDeleteColumn = 'Mezőoszlopok hozzáadása/törlése';
+$strAddDeleteRow = 'Feltételsor hozzáadása/törlése';
+$strAddFields = '%s mező hozzáadása';
+$strAddHeaderComment = 'Egyéni megjegyzés hozzáadása a fejléchez (a \\n töri a sorokat)';
+$strAddIntoComments = 'Hozzáadás a megjegyzéshez';
+$strAddNewField = 'Új mező hozzáadása';
+$strAddPrivilegesOnDb = 'Jogok hozzáadása a következő adatbázison';
+$strAddPrivilegesOnTbl = 'Jogok hozzáadása a következő táblán:';
+$strAddSearchConditions = 'adja meg a keresési feltételeket (a "where" feltétel törzsét):';
+$strAddToIndex = 'Hozzáadás az index &nbsp;%s&nbsp;oszlophoz';
+$strAddUser = 'Új felhasználó hozzáadása';
+$strAddUserMessage = 'Az új felhasználó hozzáadása megtörtént.';
+$strAdministration = 'Adminisztráció';
+$strAfter = '%s után';
+$strAfterInsertBack = 'Vissza az előző oldalra';
+$strAfterInsertNewInsert = 'Új sor beszúrása';
+$strAfterInsertNext = 'Következő sor szerkesztése';
+$strAfterInsertSame = 'Visszatérés erre az oldalra';
+$strAll = 'Mind';
+$strAllowInterrupt = 'Az importálás megszakításának engedélyezése, ha a szkript észleli, hogy közel van az időkorláthoz. Nagy fájlok importálásakor jól jöhet, azonban meg tudja szakítani a tranzakciót.';
+$strAllTableSameWidth = 'Az összes tábla megjelenítése ugyanolyan szélességgel';
+$strAlterOrderBy = 'Tábla rendezésének módosítása e szerint:';
+$strAnalyze = 'Elemzés';
+$strAnalyzeTable = 'Tábla elemzése';
+$strAnd = 'És';
+$strAndThen = 'és utána';
+$strAngularLinks = 'Összeférhetetlen hivatkozások';
+$strAnIndex = 'Az index hozzáadása a(z) %s mezőn megtörtént';
+$strAny = 'Bármi';
+$strAnyHost = 'Bármilyen hoszt';
+$strAnyUser = 'Bármilyen felhasználó';
+$strApproximateCount = 'Becsült érték lehet. Lásd: GYIK 3.11';
+$strAPrimaryKey = 'Az elsődleges kulcs hozzáadása a(z) %s mezőn megtörtént';
+$strArabic = 'Arab';
+$strArmenian = 'Örmény';
+$strAscending = 'Növekvő';
+$strAsDefined = 'Mint meghatározva:';
+$strAtBeginningOfTable = 'A tábla elején';
+$strAtEndOfTable = 'A tábla végén';
+$strAttr = 'Tulajdonságok';
+$strAutomaticLayout = 'Automatikus elrendezés';
+
+$strBack = 'Vissza';
+$strBaltic = 'Balti';
+$strBeginCut = 'Kivágás kezdete';
+$strBeginRaw = 'Feldolgozatlan kezdete';
+$strBinary = 'Bináris';
+$strBinaryDoNotEdit = 'Bináris - nem szerkeszthető';
+$strBinaryLog = 'Bináris napló';
+$strBinLogEventType = 'Esemény típusa';
+$strBinLogInfo = 'Információ';
+$strBinLogName = 'Napló neve';
+$strBinLogOriginalPosition = 'Eredeti pozíció';
+$strBinLogPosition = 'Pozíció';
+$strBinLogServerId = 'Szerver AZ';
+$strBLOBRepository = 'BLOB-tár';
+$strBLOBRepositoryDamaged = 'Sérült';
+$strBLOBRepositoryDisableAreYouSure = 'Biztosan le akarja tiltani a(z) %s adatbázis összes BLOB hivatkozását?';
+$strBLOBRepositoryDisabled = 'Letiltott';
+$strBLOBRepositoryDisable = 'Letiltás';
+$strBLOBRepositoryDisableStrongWarning = 'Ön egy BLOB-tár LETILTÁSÁRA készül!';
+$strBLOBRepositoryEnabled = 'Engedélyezett';
+$strBLOBRepositoryEnable = 'Engedélyezés';
+$strBLOBRepositoryRemove = 'BLOB-tár hivatkozás eltávolítása';
+$strBLOBRepositoryRepair = 'Javítás';
+$strBLOBRepositoryStatus = 'Állapot';
+$strBLOBRepositoryUpload = 'Feltöltés a BLOB-tárba';
+$strBookmarkAllUsers = 'A hozzáférés ehhez a könyvjelzőhöz az összes felhasználó számára engedélyezett';
+$strBookmarkCreated = 'A(z) %s könyvjelző elkészült';
+$strBookmarkDeleted = 'A könyvjelző törlése megtörtént.';
+$strBookmarkLabel = 'Név';
+$strBookmarkQuery = 'Könyvjelzőkhöz hozzáadott SQL-lekérdezés';
+$strBookmarkReplace = 'Az ugyanazon nevű könyvjelző kicserélése';
+$strBookmarkThis = 'Az SQL-lekérdezés hozzáadása a könyvjelzőkhöz';
+$strBookmarkView = 'Csak megtekinthető';
+$strBrowse = 'Tartalom';
+$strBrowseDistinctValues = 'A különböző értékek tallózása';
+$strBrowseForeignValues = 'Az idegen kulcsok böngészése';
+$strBufferPoolActivity = 'Pufferkészlet művelete';
+$strBufferPool = 'Pufferkészlet';
+$strBufferPoolUsage = 'Pufferkészlet kihasználtsága';
+$strBufferReadMissesInPercent = 'Olvasási hibák %-ban';
+$strBufferReadMisses = 'Olvasási hibák';
+$strBufferWriteWaitsInPercent = 'Írási várakozások %-ban';
+$strBufferWriteWaits = 'Írási várakozások';
+$strBulgarian = 'Bolgár';
+$strBusyPages = 'Foglalt oldalak';
+$strBzip = '"bzip tömörítés"';
+
+$strCalendar = 'Naptár';
+$strCancel = 'Mégse';
+$strCanNotLoadExportPlugins = 'Nem lehetett betölteni az exportáló beépülő modulokat. Kérjük, ellenőrizze a telepítését!';
+$strCanNotLoadImportPlugins = 'Nem lehetett betölteni az importáló beépülő modulokat. Kérjük, ellenőrizze a telepítését!';
+$strCannotLogin = 'Nem lehet bejelentkezni a MySQL szerverre';
+$strCantLoad = 'Nem tölthető be a [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] kiterjesztés. Ellenőrizze a PHP beállításait.';
+$strCantLoadRecodeIconv = 'Nem lehetett betölteni az iconv vagy a recode kiterjesztést a karakterkészlet-átalakításhoz. Állítsa be úgy a PHP-t, hogy engedélyezze ezeket a kiterjesztéseket vagy tiltsa le a karakterkészlet-átalakítást a phpMyAdminban.';
+$strCantRenameIdxToPrimary = 'Nem nevezhető át PRIMARY-re az index!';
+$strCantUseRecodeIconv = 'Nem lehetett használni az iconv, libiconv, sem a recode_string funkciót, bár úgy tűnik, hogy a szükséges kiterjesztések betöltése megtörtént. Ellenőrizze a PHP beállításokat.';
+$strCardinality = 'Számosság';
+$strCaseInsensitive = 'a kis- és nagybetű nem különbözik';
+$strCaseSensitive = 'a kis- és nagybetű különbözik';
+$strCentralEuropean = 'Közép-európai';
+$strChange = 'Módosítás';
+$strChangeCopyModeCopy = '... a régiek megőrzése.';
+$strChangeCopyMode = 'Új felhasználó létrehozása ezekkel a jogokkal, és ...';
+$strChangeCopyModeDeleteAndReload = ' ... a régiek törlése a felhasználói táblákból, majd a jogok újratöltése.';
+$strChangeCopyModeJustDelete = ' ... a régiek törlése a felhasználói táblákból.';
+$strChangeCopyModeRevoke = ' ... az összes aktív jog visszaállítása a régiekből, majd törlés.';
+$strChangeCopyUser = 'Bejelentkezési adatok módosítása / Felhasználó másolása';
+$strChangeDisplay = 'Válassza ki a megjelenítendő mezőt';
+$strChangePassword = 'Jelszó megváltoztatása';
+$strCharset = 'Karakterkészlet';
+$strCharsetOfFile = 'A fájl karakterkészlete:';
+$strCharsetsAndCollations = 'Karakterkészletek és illesztések';
+$strCharsets = 'Karakterkészlet';
+$strCheckAll = 'Mind kijelölése';
+$strCheck = 'Ellenőrzés';
+$strCheckOverhead = 'A felülírott táblák kijelölése';
+$strCheckPrivs = 'Jogok ellenőrzése';
+$strCheckPrivsLong = 'A(z) &quot;%s&quot; adatbázis jogainak ellenőrzése.';
+$strCheckTable = 'Tábla ellenőrzése';
+$strChoosePage = 'Válassza ki a szerkesztendő oldalt';
+$strColComFeat = 'Oszlopmegjegyzések megjelenítése';
+$strCollation = 'Illesztés';
+$strColumnNames = 'Oszlopnevek';
+$strColumnPrivileges = 'Oszlopspecifikus jogok';
+$strCommand = 'Parancs';
+$strComment = 'Megjegyzés';
+$strComments = 'Megjegyzések';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 kompatibilis';
+$strCompleteInserts = 'Teljes beszúrások';
+$strCompression = 'Tömörítés';
+$strCompressionWillBeDetected = 'Az importált fájl tömörítése automatikusan felismerésre kerül a következőből: %s';
+$strConfigDefaultFileError = 'Nem lehetett betölteni az alapértelmezett konfigurációt innen: "%1$s"';
+$strConfigFileError = 'Nem tudta beolvasni a konfigurációs fájlt a phpMyAdmin!<br />Ez azért fordulhatott elő, mert a PHP elemzési hibát talált benne, vagy nem találta a fájlt.<br />Hívja meg közvetlenül a konfigurációs fájlt az alábbi hivatkozással, és olvassa el a kapott PHP üzenet)ek)et. Többnyire idézőjel vagy pontosvessző hiányzik valahol.<br />Ha üres oldalt kap, akkor minden rendben.';
+$strConfigureTableCoord = 'Állítsa be a(z) %s tábla koordinátáit';
+$strConnectionError = 'Nem lehet csatlakozni: érvénytelenek a beállítások.';
+$strConnections = 'Kapcsolatok';
+$strConstraintsForDumped = 'Megkötések a kiírt táblákhoz';
+$strConstraintsForTable = 'Megkötések a táblához';
+$strControluserFailed = 'A konfigurációban meghatározott kapcsolat a kontrollfelhasználó számára nem sikerült.';
+$strCookiesRequired = 'Ettől a ponttól engedélyeznie kell a cookie-k fogadását.';
+$strCopy = 'Másolás';
+$strCopyDatabaseOK = 'A(z) %s adatbázis másolása a(z) %s adatbázisba megtörtént';
+$strCopyTable = 'Tábla másolása (adatbázis<b>.</b>tábla):';
+$strCopyTableOK = 'A(z) %s tábla másolása %s néven megtörtént.';
+$strCopyTableSameNames = 'Nem másolható ugyanabba a tábla!';
+$strCouldNotKill = 'A phpMyAdmin nem tudta leállítani a(z) %s szálat. Valószínűleg már befejeződött.';
+$strCreate = 'Létrehozás';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE másolás előtt';
+$strCreateIndex = 'Index készítése a(z) %s. oszlopon';
+$strCreateIndexTopic = 'Új index létrehozása';
+$strCreateNewDatabase = 'Új adatbázis létrehozása';
+$strCreateNewTable = 'Új tábla létrehozása a(z) %s adatbázisban';
+$strCreatePage = 'Új oldal készítése';
+$strCreatePdfFeat = 'PDF készítése';
+$strCreateRelation = 'Kapcsolat létrehozása';
+$strCreateTable = 'Tábla létrehozása';
+$strCreateUserDatabase = 'Adatbázis a felhasználó számára';
+$strCreateUserDatabaseName = 'Azonos nevű adatbázis létrehozása, és az összes jog engedélyezése';
+$strCreateUserDatabaseNone = 'Nincs';
+$strCreateUserDatabaseWildcard = 'Az összes jog engedélyezése karakterhelyettesítős néven (username\_%)';
+$strCreationDates = 'Létrehozás/módosítás/ellenőrzés dátuma';
+$strCriteria = 'Feltételek';
+$strCroatian = 'Horvát';
+$strCSV = 'CSV';
+$strCustomColor = 'Egyéni szín';
+$strCyrillic = 'Cirill';
+$strCzech = 'Cseh';
+$strCzechSlovak = 'Csehszlovák';
+
+$strDanish = 'Dán';
+$strDatabase = 'Adatbázis';
+$strDatabaseEmpty = 'Üres az adatbázis neve!';
+$strDatabaseExportOptions = 'Adatbázis exportálási beállításai';
+$strDatabaseHasBeenCreated = 'A(z) %1$s adatbázis elkészült.';
+$strDatabaseHasBeenDropped = 'A(z) %s adatbázis eldobása megtörtént.';
+$strDatabases = 'Adatbázisok';
+$strDatabasesDropped = 'A(z) %s adatbázis eldobása sikerült.';
+$strDatabasesStats = 'Adatbázis-statisztika';
+$strDatabasesStatsDisable = 'Statisztika letiltása';
+$strDatabasesStatsEnable = 'Statisztika engedélyezése';
+$strDatabasesStatsHeavyTraffic = 'Megjegyzés: az adatbázis-statisztika engedélyezése a webszerver és a MySQL közti nagy adatforgalomhoz vezethet.';
+$strData = 'Adatok';
+$strDataDict = 'Adatkönyvtár';
+$strDataOnly = 'Csak az adatok';
+$strDataPages = 'Adatokat tartalmazó lapok';
+$strDBComment = 'Megjegyzés az adatbázishoz: ';
+$strDBCopy = 'Adatbázis másolása';
+$strDbIsEmpty = 'Üresnek tűnik az adatbázis!';
+$strDbPrivileges = 'Adatbázis-specifikus jogok';
+$strDBRename = 'Adatbázis átnevezése';
+$strDbSpecific = 'adatbázis-specifikus';
+$strDefault = 'Alapértelmezett';
+$strDefaultEngine = 'Ezen a MySQL szerveren a(z) %s az alapértelmezett tárolómotor.';
+$strDefaultValueHelp = 'Írjon be egy értéket az alapértelmezett értékekhez, fordított perjel, escape karakter vagy idézőjelek nélkül, a következő formátum használatával: a';
+$strDefragment = 'Tábla töredezettségmentesítése';
+$strDelayedInserts = 'Késleltetett beszúrások használata';
+$strDeleteAndFlush = 'Törölje a felhasználót, azután töltse be újra a jogokat.';
+$strDeleteAndFlushDescr = 'Ez a legtisztább út, viszont a jogok újratöltése eltarthat egy ideig.';
+$strDelete = 'Törlés';
+$strDeleted = 'A sor törlése megtörtént';
+$strDeleteNoUsersSelected = 'Nincs törlésre kijelölt felhasználó!';
+$strDeleteRelation = 'Kapcsolat törlése';
+$strDeleting = '%s törlése';
+$strDelimiter = 'Elválasztó';
+$strDelOld = 'A jelenlegi oldalon lévő táblahivatkozások már léteznek. Szeretné törölni ezeket a hivatkozásokat?';
+$strDescending = 'Csökkenő';
+$strDescription = 'Leírás';
+$strDesigner = 'Tervező';
+$strDesignerHelpDisplayField = 'A megjelenítendő mező rózsaszínben látható. Egy mező megjelenítendő mezőként történő beállításához/eltávolításához kattintson a "Válassza ki a megjelenítendő mezőt" ikonra, majd kattintson a megfelelő mező nevére.';
+$strDetails = 'Részletek...';
+$strDictionary = 'szótár';
+$strDirectLinks = 'Közvetlen hivatkozások';
+$strDirtyPages = 'Piszkos lapok';
+$strDisabled = 'Letiltott';
+$strDisableForeignChecks = 'Az idegen kulcsok ellenőrzésének letiltása';
+$strDisplayFeat = 'Tulajdonságok megjelenítése';
+$strDisplayOrder = 'Megjelenítési sorrend:';
+$strDisplayPDF = 'PDF séma megjelenítése';
+$strDoAQuery = 'Egy "példa szerinti lekérdezés" végrehajtása (karakterhelyettesítő: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentáció';
+$strDownloadFile = 'Fájl letöltése';
+$strDoYouReally = 'Valóban a következőt akarja ';
+$strDropDatabaseStrongWarning = 'Ön a teljes adatbázis MEGSEMMISÍTÉSÉRE készül!';
+$strDrop = 'Eldobás';
+$strDropUsersDb = 'A felhasználókéval azonos nevű adatbázisok eldobása.';
+$strDumpingData = 'A tábla adatainak kiíratása';
+$strDumpSaved = 'A kiíratás mentése a(z) %s fájlba megtörtént.';
+$strDumpXRows = '%s sor kiírása a(z) %s. rekorddal kezdődően';
+$strDynamic = 'dinamikus';
+
+$strEdit = 'Szerkesztés';
+$strEditPDFPages = 'PDF oldalak szerkesztése';
+$strEditPrivileges = 'Jogok szerkesztése';
+$strEffective = 'Hatályos';
+$strEmpty = 'Kiürítés';
+$strEmptyResultSet = 'A MySQL üres eredményhalmazt adott vissza (pl. nulla sorok).';
+$strEnabled = 'Engedélyezett';
+$strEncloseInTransaction = 'Az exportálás befoglalása egy tranzakcióban';
+$strEndCut = 'Kivágás vége';
+$strEnd = 'Vége';
+$strEndRaw = 'Feldolgozatlan Vége';
+$strEngineAvailable = 'A(z) %s motor elérhető ezen a MySQL szerveren.';
+$strEngineDisabled = '%s letiltott ezen a MySQL szerveren.';
+$strEngines = 'Motorok';
+$strEngineUnsupported = 'Ez a MySQL szerver nem támogatja a(z) %s tárolómotort.';
+$strEnglish = 'Angol';
+$strEnglishPrivileges = ' Megjegyzés: a MySQL jognevek az angolból származnak.';
+$strError = 'Hiba';
+$strErrorInZipFile = 'Hiba a ZIP archívumban:';
+$strErrorRelationAdded = 'Hiba: Nem adta hozzá a kapcsolatot.';
+$strErrorRelationExists = 'Hiba: A kapcsolat már létezik.';
+$strErrorRenamingTable = 'Hiba történt a(z) %1$s tábla %2$s névre történő átnevezésekor';
+$strErrorSaveTable = 'Hiba történt a Tervező koordinátáinak mentésekor.';
+$strEscapeWildcards = 'A _ és a % karakterhelyettesítőt \ jellel kell lezárni, hogy szövegkonstansként lehessen őket használni';
+$strEsperanto = 'Eszperantó';
+$strEstonian = 'Észt';
+$strEvent = 'Esemény';
+$strEvents = 'Események';
+$strExcelEdition = 'Excel szerkesztés';
+$strExecuteBookmarked = 'Könyvjelzőkhöz hozzáadott lekérdezés végrehajtása';
+$strExplain = 'SQL magyarázat';
+$strExport = 'Exportálás';
+$strExportImportToScale = 'Méretezendő exportálás/importálás';
+$strExportMustBeFile = 'Fájlban kell menteni a kiválasztott exportálási típust!';
+$strExtendedInserts = 'Kiterjesztett beszúrások';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Sikertelen próbák';
+$strField = 'Mező';
+$strFieldHasBeenDropped = 'A(z) %s mező eldobása megtörtént';
+$strFieldInsertFromFileTempDirNotExists = 'Hiba történt a feltöltött fájl áthelyezésekor, lásd: GYIK 1.11';
+$strFieldsEnclosedBy = 'Mező lezárás';
+$strFieldsEscapedBy = 'Mező escape karakter';
+$strFields = 'Mezők száma';
+$strFieldsTerminatedBy = 'Mező vége';
+$strFileAlreadyExists = 'már létezik %s fájl a szerveren, változtassa meg a fájlnevet, vagy állítsa be a felülírási opciót!';
+$strFileCouldNotBeRead = 'Nem lehetett beolvasni a fájlt';
+$strFileNameTemplateDescriptionDatabase = 'adatbázis neve';
+$strFileNameTemplateDescriptionServer = 'szerver neve';
+$strFileNameTemplateDescriptionTable = 'tábla neve';
+$strFileNameTemplateDescription = 'Ennek az értéknek az értelmezése az %1$sstrftime%2$s használatával történik, vagyis időformázó karakterláncokat használhat. A következő átalakításokra kerül továbbá sor: %3$s. Más szöveg eredeti állapotában kerül megtartásra.';
+$strFileNameTemplate = 'Fájlnévsablon';
+$strFileNameTemplateRemember = 'a sablon megjegyzése';
+$strFiles = 'Fájlok';
+$strFileToImport = 'Importálandó fájl';
+$strFixed = 'rögzített';
+$strFlushPrivilegesNote = 'Megjegyzés: a phpMyAdmin a felhasználók jogait közvetlenül a MySQL privilégium táblákból veszi. Ezen táblák tartalma eltérhet a szerver által használt jogoktól, ha a módosításuk kézzel történt. Ebben az esetben %stöltse be újra a jogokat%s a folytatás előtt.';
+$strFlushQueryCache = 'Lekérdezési gyorsítótár kiírása';
+$strFlushTable = 'Tábla kiírása ("FLUSH")';
+$strFlushTables = 'Összes tábla kiírása (bezárása)';
+$strFontSize = 'Betűméret';
+$strForeignKeyError = 'Hiba történt az idegen kulcs %1$s táblán történő létrehozásakor (ellenőrizze az adattípusokat)';
+$strForeignKeyRelationAdded = 'IDEGEN KULCS kapcsolat hozzáadása megtörtént';
+$strFormat = 'Formátum';
+$strFormEmpty = 'Érték hiányzik az űrlapban!';
+$strFreePages = 'Szabad lapok';
+$strFullText = 'Teljes szövegek';
+$strFunction = 'Függvény';
+$strFunctions = 'Függvények';
+
+$strGenBy = 'Készítette';
+$strGeneralRelationFeat = 'Általános relációs jellemzők';
+$strGenerate = 'Generálás';
+$strGeneratePassword = 'Jelszó generálása';
+$strGenTime = 'Létrehozás ideje';
+$strGeorgian = 'Grúz';
+$strGerman = 'Német';
+$strGlobal = 'globális';
+$strGlobalPrivileges = 'Globális jogok';
+$strGlobalValue = 'Globális változó';
+$strGo = 'Indítás';
+$strGrantOption = 'Engedélyezés';
+$strGreek = 'Görög';
+$strGzip = '"gzip tömörítés"';
+
+$strHandler = 'Kezelő';
+$strHasBeenAltered = 'megváltozott.';
+$strHaveToShow = 'Ki kell legalább egy megjelenítendő oszlopot választanod';
+$strHebrew = 'Héber';
+$strHelp = 'Súgó';
+$strHexForBLOB = 'Hexadecimális értékek használata a BLOB művelethez';
+$strHide = 'Elrejtés';
+$strHideShowAll = 'Minden elrejtése/megjelenítése';
+$strHideShowNoRelation = 'A kapcsolat nélküli táblák megjelenítése/elrejtése';
+$strHome = 'Kezdőlap';
+$strHomepageOfficial = 'Hivatalos honlap';
+$strHostEmpty = 'A hosztnév üres!';
+$strHost = 'Hoszt';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Magyar';
+
+$strIcelandic = 'Izlandi';
+$strId = 'AZ';
+$strIdxFulltext = 'Teljes szöveg';
+$strIEUnsupported = 'Az Internet Explorer nem támogatja ezt a funkciót.';
+$strIgnoreDuplicates = 'A dupla sorok figyelmen kívül hagyása';
+$strIgnore = 'Kihagyás';
+$strIgnoreInserts = 'Mellőző beszúrások használata';
+$strImportExportCoords = 'A PDF-séma importálási/exportálási koordinátái';
+$strImportFiles = 'Fájlok importálása';
+$strImportFormat = 'Importálandó fájl formátuma';
+$strImport = 'Importálás';
+$strImportSuccessfullyFinished = 'Az importálás sikeresen befejeződött, %d lekérdezés került végrehajtásra.';
+$strIndexes = 'Indexek';
+$strIndexesSeemEqual = 'A(z) %1$s és a(z) %2$s egyenlőnek tűnik, és egyikük valószínűleg eltávolítható.';
+$strIndexHasBeenDropped = 'A(z) %s index eldobása megtörtént';
+$strIndex = 'Index';
+$strIndexName = 'Index neve:';
+$strIndexType = 'Index típusa:';
+$strIndexWarningTable = 'Probléma a(z) `%s` tábla indexeivel';
+$strInnoDBAutoextendIncrement = 'Növekmény automatikus bővítése';
+$strInnoDBAutoextendIncrementDesc = ' A növekmény mérete egy automatikusan bővülő táblahely méretének bővítéséhez, amikor megtelik.';
+$strInnoDBBufferPoolSize = 'Pufferkészlet mérete';
+$strInnoDBBufferPoolSizeDesc = 'Az InnoDB által a táblák adatainak és indexeinek gyorsítótárazásához használt memóriapuffer mérete.';
+$strInnoDBDataFilePath = 'Adatfájlok';
+$strInnoDBDataHomeDir = 'Adatok kezdőkönyvtára';
+$strInnoDBDataHomeDirDesc = 'Az összes InnoDB adatfájl könyvtára elérési útjának közös része.';
+$strInnoDBPages = 'lapok';
+$strInnodbStat = 'InnoDB állapota';
+$strInsecureMySQL = 'A konfigurációs fájl olyan beállításokat (jelszó nélküli root hozzáférés) tartalmaz, melyek megegyeznek az alapértelmezett MySQL jogosult fiókéval. A MySQL szerver most ezzel az alapbeállítással fut, behatolásra nyitott. Javítsa ezt a biztonsági rést.';
+$strInsertAsNewRow = 'Beszúrás új sorként';
+$strInsertedRowId = 'A beszúrt sor azonosítószáma: %1$d';
+$strInsert = 'Beszúrás';
+$strInterface = 'Kezelőfelület';
+$strInternalAndForeign = 'Nincs szükség belső kapcsolatra, ha létezik megfelelő IDEGEN KULCS kapcsolat.';
+$strInternalRelationAdded = 'A belső kapcsolat hozzáadása megtörtént';
+$strInternalRelations = 'Belső kapcsolatok';
+$strInUse = 'használatban';
+$strInvalidAuthMethod = 'Érvénytelen hitelesítési mód került beállításra a konfigurációban:';
+$strInvalidColumnCount = 'Az oszlopok számának nullánál nagyobbnak kell lennie.';
+$strInvalidColumn = 'A megadott oszlop (%s) érvénytelen!';
+$strInvalidCSVFieldCount = 'A CSV bevitel %d. sorában a mezők száma érvénytelen.';
+$strInvalidCSVFormat = 'A CSV bevitel %d. sorában a formázás érvénytelen.';
+$strInvalidCSVParameter = 'A CSV importálás paramétere érvénytelen: %s';
+$strInvalidDatabase = 'Érvénytelen adatbázis';
+$strInvalidFieldAddCount = 'Legalább egy mezőt meg kell adnia.';
+$strInvalidFieldCount = 'A táblázatnak legalább egy mezőt kell tartalmaznia.';
+$strInvalidLDIImport = 'Ez a beépülő modul nem támogatja a tömörített importálásokat!';
+$strInvalidRowNumber = 'A(z) %d érvénytelen sorszám.';
+$strInvalidServerHostname = 'A(z) %1$s szerver hosztneve érvénytelen. Ellenőrizze a beállításokat.';
+$strInvalidServerIndex = 'Érvénytelen szerverindex: "%s"';
+$strInvalidTableName = 'Érvénytelen táblanév';
+
+$strJapanese = 'Japán';
+$strJoins = 'Illesztések';
+$strJumpToDB = 'Ugrás a(z) &quot;%s&quot; adatbázishoz.';
+$strJustDeleteDescr = 'A &quot;törölt&quot; felhasználók a jogok újratöltéséig még hozzáférhetnek a szerverhez.';
+$strJustDelete = 'Egyszerűen törölje a felhasználókat a jogtáblákból.';
+
+$strKeepPass = 'Nincs jelszó megváltoztatás';
+$strKeyCache = 'Kulcs gyorsítótár';
+$strKeyname = 'Kulcsnév';
+$strKill = 'Leállít';
+$strKnownExternalBug = 'A(z) %s funkcióra egy ismert hiba van hatással, lásd itt: %s';
+$strKorean = 'Koreai';
+
+$strLandscape = 'Fekvő';
+$strLanguage = 'Nyelv';
+$strLanguageUnknown = 'Ismeretlen nyelv: %1$s.';
+$strLatchedPages = 'Zárolt lapok';
+$strLatexCaption = 'Táblacím';
+$strLatexContent = '__TABLE__ tábla tartalma';
+$strLatexContinuedCaption = 'Táblacím folytatása';
+$strLatexContinued = '(folytatás)';
+$strLatexIncludeCaption = 'Tartalmazza a táblacímet';
+$strLatexLabel = 'Feliratkulcs';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = '__TABLE__ tábla szerkezete';
+$strLatvian = 'Lett';
+$strLDI = 'CSV a LOAD DATA használatával';
+$strLDILocal = 'LOCAL kulcsszó használata';
+$strLengthSet = 'Hossz/Érték*';
+$strLimitNumRows = 'Sorok száma oldalanként';
+$strLinesTerminatedBy = 'Sorok vége';
+$strLinkNotFound = 'Nem található a hivatkozás';
+$strLinksTo = 'Hivatkozások:';
+$strLithuanian = 'Litván';
+$strLocalhost = 'Helyi';
+$strLocationTextfile = 'A szövegfájl helye';
+$strLoginInformation = 'Bejelentkezési adatok';
+$strLogin = 'Belépés';
+$strLogout = 'Kilépés';
+$strLogPassword = 'Jelszó:';
+$strLogServerHelp = 'A hosztnevet/IP-címét és a portot szóközzel elválasztva írhatja be.';
+$strLogServer = 'Szerver';
+$strLogUsername = 'Felhasználónév:';
+$strLongOperation = 'Ez a művelet sokáig eltarthat. Mindenképp folytatja?';
+
+$strMaxConnects = 'Max. egyidejű kapcsolatok száma';
+$strMaximalQueryLength = 'A létrehozott lekérdezés hossza legfeljebb';
+$strMaximumSize = 'Legnagyobb méret: %s%s';
+$strMbExtensionMissing = 'Nem található az mbstring PHP-kiterjesztés, s úgy tűnik, hogy Ön több bájtos karakterkészletet használ. Az mbstring kiterjesztés nélkül a phpMyAdmin nem tudja megfelelően felosztani a karakterláncokat, mely nem várt eredményhez vezethet.';
+$strMbOverloadWarning = 'Ön engedélyezte az mbstring.func_overload funkciót a PHP konfigurációban. Ez a beállítás nem kompatibilis a phpMyAdminnal, és az adatsérüléssel járhat!';
+$strMIME_available_mime = 'Létező MIME-típusok';
+$strMIME_available_transform = 'Létező átalakítások';
+$strMIME_description = 'Leírás';
+$strMIME_MIMEtype = 'MIME-típus';
+$strMIME_nodescription = 'Ehhez az átalakításhoz nem érhető el leírás.<br />Kérdezze meg a szerzőtől, hogy mit csinál a(z) %s.';
+$strMIME_transformation = 'Böngésző átalakítása';
+$strMIME_transformation_note = 'Az elérhető átalakítási beállítások listájához és a hozzájuk tartozó MIME-típusokhoz kattintson ide: %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Írja be az átalakítási beállítások értékeit a következő formátumban: \'a\', 100, b,\'c\'...<br />Ha fordított perjelet ("\") vagy idézőjelet ("\'") akar beszúrni az értékekbe, akkor kezdje fordított perjellel (például: \'\\\\xyz\' vagy \'a\\\'b\').';
+$strMIME_transformation_options = 'Átalakítás beállításai';
+$strMIMETypesForTable = 'Tábla MIME-típusok';
+$strMIME_without = 'A dőlttel írt MIME-típusoknak nincs külön átalakítási funkciójuk';
+$strModifications = 'A módosítások mentése megtörtént';
+$strModifyIndexTopic = 'Index módosítása';
+$strModify = 'Módosítás';
+$strMoveMenu = 'Menü áthelyezése';
+$strMoveTable = 'Tábla áthelyezése (adatbázis<b>.</b>tábla):';
+$strMoveTableOK = 'A(z) %s tábla áthelyezése a(z) %s adatbázisba kész.';
+$strMoveTableSameNames = 'Nem helyezhető át ugyanabba a tábla!';
+$strMultilingual = 'többnyelvű';
+$strMyISAMDataPointerSize = 'Adatmutató mérete';
+$strMyISAMDataPointerSizeDesc = 'Az alapértelmezett mutató mérete bájtban, a CREATE TABLE által a MyISAM táblákhoz, ha nem adták meg a MAX_ROWS beállítás értékét.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Ha a MyISAM indexkészítéshez használt ideiglenes fájl nagyobb volna az itt megadott érték által használt kulcsgyorsítótárnál, akkor részesítse előnyben a kulcsgyorsítótár módszert.';
+$strMyISAMMaxExtraSortFileSize = 'Index készítésekor az ideiglenes fájlok mérete legfeljebb';
+$strMyISAMMaxSortFileSizeDesc = 'A MySQL által engedélyezett ideiglenes fájl legnagyobb mérete a MyISAM index újralétrehozásakor (REPAIR TABLE, ALTER TABLE vagy LOAD DATA INFILE során).';
+$strMyISAMMaxSortFileSize = 'Az ideiglenes rendezőfájlok mérete legfeljebb';
+$strMyISAMRecoverOptions = 'Automatikus helyreállítási mód';
+$strMyISAMRecoverOptionsDesc = 'Az összeomlott MyISAM táblák automatikus helyreállítási módja, a --myisam-recover szerver indítási beállításnál megadottak szerint.';
+$strMyISAMRepairThreadsDesc = 'Ha ez az érték nagyobb, mint 1, akkor a MyISAM táblaindexek készítése a tároló folyamat által párhuzamosan (mindegyik index a saját szálában) történik a javítás során ';
+$strMyISAMRepairThreads = 'Szálak kijavítása';
+$strMyISAMSortBufferSizeDesc = 'A MyISAM indexek rendezésekor lefoglalt puffer a REPAIR TABLE művelet során, vagy az indexek CREATE INDEX vagy ALTER TABLE paranccsal történő készítésekor.';
+$strMyISAMSortBufferSize = 'Rendezőpuffer mérete';
+$strMySQLCharset = 'MySQL karakterkészlet';
+$strMysqlClientVersion = 'MySQL kliens verzió';
+$strMySQLConnectionCollation = 'MySQL kapcsolat illesztése';
+$strMysqlLibDiffersServerVersion = 'A PHP MySQL függvénytár %s-s verziója eltér a MySQL szerver %s-s verziójától. Ez kiszámíthatatlan viselkedést okozhat.';
+$strMySQLSaid = 'A MySQL mondta: ';
+$strMySQLShowProcess = 'Folyamatok megjelenítése';
+
+$strName = 'Név';
+$strNext = 'Következő';
+$strNoActivity = 'Nem volt tevékenység %s másodperce; jelentkezzen be újra';
+$strNoDatabases = 'Nincs adatbázis';
+$strNoDatabasesSelected = 'Nincs kiválasztott adatbázis.';
+$strNoDataReceived = 'Nem került importálandó adat fogadásra. Vagy nem került átadásra fájlnév, vagy a fájlméret túllépte a PHP beállításokban engedélyezett legnagyobb méretet. Lásd GYIK 1.16.';
+$strNoDescription = 'nincs leírás';
+$strNoDetailsForEngine = 'Erről a tárolómotorról részletes állapot-információ nem áll rendelkezésre.';
+$strNoDropDatabases = 'A "DROP DATABASE" utasítást letiltották.';
+$strNoExplain = 'SQL magyarázat átugrása';
+$strNoFilesFoundInZip = 'Nem található fájl a ZIP archívumban!';
+$strNoFrames = 'A phpMyAdmin <b>keretkezelő</b> böngészőben használhatóbb.';
+$strNoIndex = 'Nincs meghatározott index!';
+$strNoIndexPartsDefined = 'Nincs meghatározott indexrész!';
+$strNoModification = 'Nincs változás';
+$strNone = 'Nincs';
+$strNo = 'Nem';
+$strNoOptions = 'Ennek a formátumnak nincsenek beállításai';
+$strNoPassword = 'Nincs jelszó';
+$strNoPermission = 'A webszerver számára nem engedélyezett a(z) %s fájl mentése.';
+$strNoPhp = 'PHP kód nélkül';
+$strNoPrivileges = 'Nincs jog';
+$strNoRights = 'Önnek nincs elég joga ahhoz, hogy épp most itt tartózkodjon!';
+$strNoRowsSelected = 'Nem jelölte ki a sort';
+$strNoSpace = 'Kevés a hely a(z) %s fájl mentéséhez.';
+$strNoTablesFound = 'Nem található tábla az adatbázisban.';
+$strNoThemeSupport = 'Nincs téma támogatás, ellenőrizze a beállításokat és/vagy a témákat a(z) %s könyvtárban.';
+$strNotNumber = 'Ez nem szám!';
+$strNotOK = 'Nincs rendben';
+$strNotSet = 'Nem található a(z) <b>%s</b> tábla, vagy nem adták meg a(z) %s adatbázisban';
+$strNoUsersFound = 'Nem található(k) a felhasználó(k).';
+$strNoValidateSQL = 'SQL érvényesítés átugrása';
+$strNull = 'Nulla';
+$strNumberOfFields = 'Mezők száma';
+$strNumberOfTables = 'Táblák száma';
+$strNumSearchResultsInTable = '%s találat a(z) <i>%s</i> táblában';
+$strNumSearchResultsTotal = '<b>Összesen:</b> <i>%s</i> találat';
+$strNumTables = 'Táblák';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Open Document munkafüzet';
+$strOpenDocumentText = 'Open Document szöveges dokumentum';
+$strOpenNewWindow = 'Új phpMyAdmin ablak nyitása';
+$strOperations = 'Műveletek';
+$strOperator = 'Kezelő';
+$strOptimize = 'Optimalizálás';
+$strOptimizeTable = 'Tábla optimalizálása';
+$strOptions = 'Beállítások';
+$strOr = 'Vagy';
+$strOverhead = 'Felülírás';
+$strOverwriteExisting = 'Létező fájl(ok) felülírása';
+
+$strPacked = 'Csomagolt';
+$strPageNumber = 'Oldalszám:';
+$strPagesToBeFlushed = 'Kiírandó oldalak';
+$strPaperSize = 'Papírméret';
+$strPartialImport = 'Részleges importálás';
+$strPartialText = 'Részleges szövegek';
+$strPartitionDefinition = 'PARTITION definíció';
+$strPartitioned = 'particionált';
+$strPartitionMaintenance = 'Partíció karbantartása';
+$strPartition = '%s partíció';
+$strPasswordChanged = '%s jelszavának megváltoztatása sikerült.';
+$strPasswordEmpty = 'Üres a jelszó mező!';
+$strPasswordHashing = 'Jelszó kivonatolása';
+$strPasswordNotSame = 'Nem egyeznek a jelszavak!';
+$strPassword = 'Jelszó';
+$strPBXTCheckpointFrequency = 'Ellenőrzőpont gyakorisága';
+$strPBXTCheckpointFrequencyDesc = 'Az ellenőrzőpont végrehajtása előtt a tranzakciónaplóba írt adatok mennyisége. Az alapértelmezés 24 MB.';
+$strPBXTDataFileGrowSize = 'Az adatfájl növekedési mérete';
+$strPBXTDataFileGrowSizeDesc = 'Az adatkezelő (.xtd) fájlok növekedési mérete.';
+$strPBXTDataLogThreshold = 'Adatnapló küszöbértéke';
+$strPBXTDataLogThresholdDesc = 'Egy adatnaplófájl legnagyobb mérete. Az alapértelmezett érték 64 MB. A PBXT legfeljebb 32000 adatnaplót tud létrehozni, melyeket az összes tábla használ. Így ennek a változónak az értéke növelhető, hogy növelje az adatbázisban tárolható adatok összes mennyiségét.';
+$strPBXTGarbageThresholdDesc = 'Az adatnaplófájlban lévő szemét tömörítés előtti százalékaránya. Ez 1 és 99 közti érték. Alapértelmezés: 50.';
+$strPBXTGarbageThreshold = 'Szemét küszöbértéke';
+$strPBXTIndexCacheSizeDesc = 'Ez az indexgyorsítótár számára lefoglalt memória mennyisége. Az alapértelmezett érték 32 MB. Az itt lefoglalt memória kerül felhasználásra az indexoldalak gyorsítótárazásához.';
+$strPBXTIndexCacheSize = 'Indexgyorsítótár mérete';
+$strPBXTLogBufferSizeDesc = 'A Az adatnaplóba íráskor használt puffer mérete. Az alapértelmezés 256 MB. A motor szálanként egy puffert foglal le, de csak akkor, ha a szálnak írnia kell az adatnaplóba.';
+$strPBXTLogBufferSize = 'Napló gyorsítótárának mérete';
+$strPBXTLogCacheSizeDesc = 'A tranzakciónapló gyorsítótárához lefoglalt, a tranzakciónapló adatainak gyorsítótárazásához használt memória mennyisége. Alapértelmezés: 16 MB.';
+$strPBXTLogCacheSize = 'Naplógyorsítótár mérete';
+$strPBXTLogFileCountDesc = 'Ez a rendszer által kezelt tranzakció-naplófájlok (pbxt/system/xlog*.xt) száma. Ha a naplók száma túllépi ezt az értéket, akkor a régi naplókat törli, egyéb esetben átnevezi őket, és a következő legnagyobb számot adja nekik.';
+$strPBXTLogFileCount = 'Naplófájlok száma';
+$strPBXTLogFileThresholdDesc = 'A tranzakciónapló váltás előtti mérete, s egy új napló készül. Az alapértelmezett érték 16MB.';
+$strPBXTLogFileThreshold = 'Naplófájl küszöbértéke';
+$strPBXTRecordCacheSizeDesc = 'Ez a tábla adatainak gyorsítótárazásához használt rekordgyorsítótárhoz lefoglalt memória mennyisége. Az alapértelmezett érték 32 MB. Ez a memória kerül felhasználásra az adat (.xtd) és a sormutató (.xtr) fájlok kezeléséhez szükséges változások gyorsítótárazásához.';
+$strPBXTRecordCacheSize = 'Rekordgyorsítótár mérete';
+$strPBXTRowFileGrowSizeDesc = 'A sormutató (.xtr) fájlok növekedési mérete.';
+$strPBXTRowFileGrowSize = 'Sorfájl növekedési mérete';
+$strPBXTTransactionBufferSizeDesc = 'A globális tranzakciónapló pufferének mérete (a motor 2 ilyen méretű puffert foglal le). Alapértelmezés: 1 MB.';
+$strPBXTTransactionBufferSize = 'Tranzakció puffer mérete';
+$strPdfDbSchema = 'A(z) "%s" adatbázis sémája - %s. oldal';
+$strPdfInvalidTblName = 'Nem létezik a(z) "%s" tábla!';
+$strPdfNoTables = 'Nincs tábla';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Egyetlen táblázat adatait tartalmazó jelentést generál)';
+$strPDFReportTitle = 'A jelentés címe';
+$strPerHour = 'óránként';
+$strPerMinute = 'percenként';
+$strPerSecond = 'másodpercenként';
+$strPersian = 'Perzsa';
+$strPhoneBook = 'telefonkönyv';
+$strPhp = 'PHP kód készítése';
+$strPHPExtension = 'PHP-kiterjesztés';
+$strPHPVersion = 'PHP verzió';
+$strPlayAudio = 'Hang lejátszása';
+$strPleaseSelectPrimaryOrUniqueKey = 'Válassza ki az elsődleges kulcsot, vagy egy egyedi kulcsot';
+$strPmaDocumentation = 'phpMyAdmin dokumentáció';
+$strPmaUriError = 'A <tt>$cfg[\'PmaAbsoluteUri\']</tt> utasítás értékét a konfigurációs fájlban KELL megadni!';
+$strPolish = 'Lengyel';
+$strPortrait = 'Álló';
+$strPos1 = 'A tetejére';
+$strPrevious = 'Előző';
+$strPrimaryKeyHasBeenDropped = 'Az elsődleges kulcs eldobása megtörtént';
+$strPrimaryKeyName = 'Az elsődleges kulcs nevének "PRIMARY"-nak kell lennie!';
+$strPrimaryKeyWarning = '(Az elsődleges kulcs nevének, és <b>csak annak</b> "PRIMARY"-nak <b>kell</b> lennie!)';
+$strPrimary = 'Elsődleges';
+$strPrint = 'Nyomtatás';
+$strPrintViewFull = 'Nyomtatási nézet (teljes szöveggel)';
+$strPrintView = 'Nyomtatási nézet';
+$strPrivDescAllPrivileges = 'A GRANT kivételével minden jogot tartalmaz.';
+$strPrivDescAlter = 'Engedélyezi a létező táblák szerkezetének megváltoztatását.';
+$strPrivDescAlterRoutine = 'Engedélyezi a tárolt eljárások módosítását és eldobását.';
+$strPrivDescCreateDb = 'Engedélyezi új adatbázisok és táblák készítését.';
+$strPrivDescCreateRoutine = 'Engedélyezi tárolt eljárások létrehozását.';
+$strPrivDescCreateTbl = 'Engedélyezi új táblák készítését.';
+$strPrivDescCreateTmpTable = 'Engedélyezi ideiglenes táblák készítését.';
+$strPrivDescCreateUser = 'Engedélyezi a felhasználói fiókok létrehozását, törlését és átnevezését.';
+$strPrivDescCreateView = 'Engedélyezi új nézetek létrehozását.';
+$strPrivDescDelete = 'Engedélyezi az adatok törlését.';
+$strPrivDescDropDb = 'Engedélyezi az adatbázisok és táblák eldobását.';
+$strPrivDescDropTbl = 'Engedélyezi a táblák eldobását.';
+$strPrivDescEvent = 'Az eseményütemező eseményeinek beállítását teszi lehetővé';
+$strPrivDescExecute5 = 'Engedélyezi a tárolt eljárások végrehajtását.';
+$strPrivDescExecute = 'Engedélyezi a tárolt eljárások futtatását; még nem valósult meg ebben a MySQL verzióban.';
+$strPrivDescFile = 'Engedélyezi az adatok fájlokba történő exportálását/importálását.';
+$strPrivDescGrant = 'A privilégium táblák újratöltése nélkül engedélyezi a felhasználók és jogok hozzáadását.';
+$strPrivDescIndex = 'Engedélyezi indexek készítését és törlését.';
+$strPrivDescInsert = 'Engedélyezi az adatok beírását és megváltoztatását.';
+$strPrivDescLockTables = 'A jelenlegi szálon engedélyezi a táblák blokkolását.';
+$strPrivDescMaxConnections = 'Korlátozza a felhasználó által óránként megnyitható új kapcsolatok számát.';
+$strPrivDescMaxQuestions = 'Korlátozza a felhasználó által a kiszolgálóra óránként küldhető lekérdezések számát.';
+$strPrivDescMaxUpdates = 'Korlátozza a felhasználó által óránként végrehajtható, bármelyik táblát vagy adatbázist módosító parancsok számát.';
+$strPrivDescMaxUserConnections = 'Korlátozza a felhasználó egyidejű kapcsolatainak számát.';
+$strPrivDescProcess = 'Az összes felhasználó folyamatainak megtekintését engedélyezi';
+$strPrivDescReferences = 'Nem valósult meg ebben a MySQL verzióban';
+$strPrivDescReload = 'Engedélyezi a szerver beállításainak újratöltését, és a szerver gyorsítótárának törlését.';
+$strPrivDescReplClient = 'Engedélyezi a felhasználónak, hogy megkérdezze, hol találhatók a kisegítő/fő helyek.';
+$strPrivDescReplSlave = 'A kisegítő helyek másolásához szükséges.';
+$strPrivDescSelect = 'Engedélyezi az adatok olvasását.';
+$strPrivDescShowDb = 'Hozzáférést ad az adatbázisok teljes listájához.';
+$strPrivDescShowView = 'Engedélyezi SHOW CREATE VIEW lekérdezések végrehajtását.';
+$strPrivDescShutdown = 'Engedélyezi a szerver leállítását.';
+$strPrivDescSuper = 'Akkor is engedélyezi a kapcsolódást, ha a kapcsolatok száma elérte a maximumot. A legfontosabb adminisztrációs műveletekhez szükséges, mint a globális változók beállítása, vagy más felhasználók folyamatainak megszüntetése.';
+$strPrivDescTrigger = 'Eseményindítók létrehozásának és eldobásának engedélyezése';
+$strPrivDescUpdate = 'Engedélyezi az adatok megváltoztatását.';
+$strPrivDescUsage = 'Nincsenek jogok.';
+$strPrivileges = 'Jogok';
+$strPrivilegesReloaded = 'A jogok újratöltése sikerült.';
+$strProcedures = 'Eljárások';
+$strProcesses = 'Folyamatok';
+$strProcesslist = 'Folyamatlista';
+$strProfiling = 'Adatgyűjtés';
+$strProtocolVersion = 'Protokoll verzió';
+$strPutColNames = 'A mezőneveket az első sorba teszi';
+
+$strQBEDel = 'Törlés';
+$strQBEIns = 'Beszúrás';
+$strQBE = 'Lekérdezés';
+$strQueryCache = 'Lekérdezési gyorsítótár';
+$strQueryFrame = 'Lekérdezési ablak';
+$strQueryOnDb = 'SQL-lekérdezés a(z) <b>%s</b> adatbázison:';
+$strQueryResultsOperations = 'Műveletek a lekérdezési eredménnyel';
+$strQuerySQLHistory = 'SQL-előzmények';
+$strQueryStatistics = '<b>Lekérdezési statisztika</b>: Az indulás óta %s kérés került elküldésre a szerverhez.';
+$strQueryTime = 'a lekérdezés %01.4f másodpercig tartott';
+$strQueryType = 'Lekérdezés típusa';
+$strQueryWindowLock = 'Nem írja felül ezt a lekérdezést az ablakon kívülről';
+
+$strReadRequests = 'Olvasási kérések';
+$strRebuild = 'Újraépítés';
+$strReceived = 'Fogadott';
+$strRecommended = 'ajánlott';
+$strRecords = 'Rekordok';
+$strReferentialIntegrity = 'Hivatkozási sértetlenség ellenőrzése:';
+$strRefresh = 'Frissítés';
+$strRelationalDisplayField = 'Relációs megjelenítési mező';
+$strRelationalKey = 'Relációs kulcs';
+$strRelationalSchema = 'Kapcsolati séma';
+$strRelationDeleted = 'A kapcsolat törlése kész';
+$strRelationNotWorking = 'A hivatkozott táblákkal történő munka kiegészítő funkciói inaktiválásra kerültek. Ha szeretné megtudni, hogy miért, kattintson %side%s.';
+$strRelationsForTable = 'TÁBLA KAPCSOLATAI';
+$strRelations = 'Kapcsolatok';
+$strRelationView = 'Kapcsolat nézete';
+$strReloadingThePrivileges = 'A jogok újratöltése';
+$strReloadPrivileges = 'Jogok újratöltése';
+$strReload = 'Újratöltés';
+$strRemovePartitioning = 'Particionálás eltávolítása';
+$strRemoveSelectedUsers = 'A kijelölt felhasználók törlése';
+$strRenameDatabaseOK = 'A(z) %s adatbázis átnevezése %s névre megtörtént';
+$strRenameTableOK = 'A(z) %s tábla átnevezése %s névre megtörtént';
+$strRenameTable = 'Tábla átnevezése';
+$strRepair = 'Javítás';
+$strRepairTable = 'Tábla javítása';
+$strReplaceNULLBy = 'NULL cseréje ezzel:';
+$strReplaceTable = 'A táblaadatok lecserélése fájlra';
+$strReplication = 'Többszörözés';
+$strReset = 'Alaphelyzet';
+$strResourceLimits = 'Erőforrás-korlátozások';
+$strRestartInsertion = 'Beszúrás újrakezdése %s sorral';
+$strReType = 'Újraírás';
+$strRevokeAndDeleteDescr = 'A felhasználóknak még van USAGE joguk a jogok újratöltéséig.';
+$strRevokeAndDelete = 'A felhasználók összes jogának visszavonása, majd törlése.';
+$strRevokeMessage = '%s jogainak visszavonása megtörtént';
+$strRevoke = 'Visszavonás';
+$strRomanian = 'Román';
+$strRoutineReturnType = 'Típus visszaadása';
+$strRoutines = 'Eljárások';
+$strRowLength = 'Sor hossza';
+$strRowsAffected = '%1$d sor érintett.';
+$strRowsDeleted = 'A(z) %1$d sor törlése megtörtént.';
+$strRowsFrom = 'sor a következő számú rekordtól kezdődően:';
+$strRowsInserted = 'A(z) %1$d sor beszúrása megtörtént.';
+$strRowSize = ' Sor mérete ';
+$strRowsModeFlippedHorizontal = 'vízszintesen (elforgatott fejlécek)';
+$strRowsModeHorizontal = 'vízszintesen';
+$strRowsModeOptions = '%s és a fejlécek megismétlése %s cella után';
+$strRowsModeVertical = 'függőlegesen';
+$strRows = 'sor';
+$strRowsStatistic = 'Sorstatisztika';
+$strRunning = ': %s';
+$strRunQuery = 'Lekérdezés indítása';
+$strRunSQLQueryOnServer = 'A(z) %s szerveren lefuttatandó SQL lekérdezés(ek)';
+$strRunSQLQuery = 'SQL lekérdezés(ek) futtatása a(z) %s adatbázison';
+$strRussian = 'Orosz';
+
+$strSaveOnServer = 'Mentés a szerver %s könyvtárában';
+$strSavePosition = 'Pozíció mentése';
+$strSave = 'Mentés';
+$strScaleFactorSmall = 'A mérettényező túl kicsi, hogy a séma ráférjen egy oldalra';
+$strSearchFormTitle = 'Keresés az adatbázisban';
+$strSearchInField = 'Mezőben:';
+$strSearchInTables = 'Táblá(k)ban:';
+$strSearchNeedle = 'Keresendő szavak vagy értékek (karakterhelyettesítő: "%"):';
+$strSearchOption1 = 'legalább az egyik szó';
+$strSearchOption2 = 'minden szó';
+$strSearchOption3 = 'a pontos kifejezés';
+$strSearchOption4 = 'reguláris kifejezésként';
+$strSearchResultsFor = 'Keresési eredmények "<i>%s</i>" %s:';
+$strSearch = 'Keresés';
+$strSearchType = 'Keresés:';
+$strSecretRequired = 'A konfigurációs fájlnak egy titkos hozzáférési kódra (blowfish_secret) van szüksége.';
+$strSelectADb = 'Válasszon adatbázist';
+$strSelectAll = 'Mind kijelölése';
+$strSelectBinaryLog = 'Válassza ki a megtekintendő bináris naplót';
+$strSelectFields = 'Válasszon mezőket (legalább egyet):';
+$strSelectForeignKey = 'Idegen kulcs kiválasztása';
+$strSelectNumRows = 'lekérdezésben';
+$strSelectReferencedKey = 'Válassza ki a hivatkozott kulcsot';
+$strSelectTables = 'Táblák kiválasztása';
+$strSend = 'Mentés fájlként';
+$strSent = 'Küldött';
+$strServerChoice = 'Szerver választása';
+$strServerNotResponding = 'A szerver nem válaszol';
+$strServer = 'Szerver';
+$strServers = 'Szerverek';
+$strServerStatusDelayedInserts = 'Késleltetett beszúrások';
+$strServerStatus = 'Futtatási információk';
+$strServerStatusUptime = 'Ez a MySQL szerver %s óta fut. Indítás időpontja: %s.';
+$strServerTabVariables = 'Változók';
+$strServerTrafficNotes = '<b>Szerver forgalma</b>: Ezek a táblázatok a MySQL szerver hálózati forgalmának statisztikájáit mutatják az indítástól kezdve.';
+$strServerVars = 'Szerver változók és beállítások';
+$strServerVersion = 'Szerver verzió';
+$strSessionStartupErrorGeneral = 'A munkamenet nem indítható hibák nélkül. Ellenőrizze a PHP és/vagy a webszerver naplófájljába bejegyzett hibákat, és konfigurálja megfelelően a PHP telepítését.';
+$strSessionValue = 'Munkamenet értéke';
+$strSetEnumVal = 'Ha a mező típusa "enum" vagy "set", akkor az értékeket ilyen formában írja be: \'a\',\'b\',\'c\'...<br />Ha fordított perjelet ("\") vagy aposztrófot ("\'") akar ezekben az értékekben használni, akkor fordított perjellel kezdje (pl.: \'\\\\xyz\' vagy \'a\\\'b\').';
+$strShowAll = 'Mind látható';
+$strShowColor = 'Szín megjelenítése';
+$strShowDatadictAs = 'Adatkönyvtár formátum';
+$strShowFullQueries = 'Teljes lekérdezések megjelenítése';
+$strShowGrid = 'Rács megjelenítése';
+$strShowHideLeftMenu = 'Bal oldali menü megjelenítése/elrejtése';
+$strShowingBookmark = 'Könyvjelző megjelenítése';
+$strShowingPhp = 'Megjelenítés PHP kódként';
+$strShowingRecords = 'Megjelenített sorok:';
+$strShowingSQL = 'Megjelenítés SQL lekérdezésként';
+$strShowKeys = 'Csak a kulcsok megjelenítése';
+$strShowOpenTables = 'Nyitott táblák megjelenítése';
+$strShowPHPInfo = 'PHP információ megjelenítése';
+$strShow = 'Megjelenítés';
+$strShowSlaveHosts = 'Kisegítő állomások megjelenítése';
+$strShowSlaveStatus = 'Kisegítő állapot megjelenítése';
+$strShowStatusBinlog_cache_disk_useDescr = 'A tranzakciók száma, melyek az ideiglenes bináris naplógyorsítótárat használt, azonban az túllépte a binlog_cache_size méretet, és ideiglenes fájlt használt az utasítások tárolásához a tranzakcióból.';
+$strShowStatusBinlog_cache_useDescr = 'Az ideiglenes bináris naplógyorsítótár által használt tranzakciók száma.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'A szerver által az utasítások végrehajtásakor a lemezen automatikusan létrehozott ideiglenes táblák száma. Ha a Created_tmp_disk_tables értéke nagy, akkor növelheti a tmp_table_size értékét, mely az ideiglenes táblákból memóriaalapúakat csinál a lemezalapú helyett.';
+$strShowStatusCreated_tmp_filesDescr = 'Ennyi ideiglenes fájlt hozott létre a mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'A szerver által az utasítások végrehajtásakor automatikusan létrehozott, a memóriában tárolt ideiglenes táblák száma.';
+$strShowStatusDelayed_errorsDescr = 'Az INSERT DELAYED utasítással írt sorok száma, melyeknél néhány hiba történt (valószínűleg ismétlődő kulcs).';
+$strShowStatusDelayed_insert_threadsDescr = 'A használatban lévő INSERT DELAYED kezelőszálak száma. Minden eltérő táblának, melyen valaki INSERT DELAYED parancsot használ, saját szála lesz.';
+$strShowStatusDelayed_writesDescr = 'A beírt INSERT DELAYED sorok száma.';
+$strShowStatusFlush_commandsDescr = 'A végrehajtott FLUSH utasítások száma.';
+$strShowStatusHandler_commitDescr = 'A belső COMMIT utasítások száma.';
+$strShowStatusHandler_deleteDescr = 'Egy sornak a táblázatból történő törléseinek a száma.';
+$strShowStatusHandler_discoverDescr = 'A MySQL szerver meg tudja kérdezni az NDB fürt tárolómotortól, hogy ismeri a megadott nevű táblát. Ezt hívják felfedezésnek. A handler_discover jelzi a táblák felfedezésének számát.';
+$strShowStatusHandler_read_firstDescr = 'Az első bejegyzés egy indexből történő beolvasásainak száma. Ha ez magas, akkor ez azt sugallja, hogy a szerver sok teljes indexvizsgálatot végez; például a SELECT col1 FROM foo azt feltételezi, hogy a col1 kerül indexelésre.';
+$strShowStatusHandler_read_keyDescr = 'Egy sor kulcs alapján történő beolvasási kéréseinek száma. Ha ez magas, akkor jól mutatja, hogy a lekérdezések és a táblák megfelelően indexeltek.';
+$strShowStatusHandler_read_nextDescr = 'A kulcssorrendben a következő sort beolvasandó kérések száma. Ez növekszik, ha Ön tartománymegkötéses index oszlopot kérdez le, vagy ha indexvizsgálatot végez.';
+$strShowStatusHandler_read_prevDescr = 'A kulcssorrendben előző sort beolvasandó kérések száma. Ezt a beolvasási módszert főleg az ORDER BY ... DESC optimalizálásához használják.';
+$strShowStatusHandler_read_rndDescr = 'Egy sor beolvasásához szükséges kérések száma egy rögzített pozíció alapján. Ez magas, ha Ön sok, az eredmény rendezését igénylő lekérdezést hajt végre. Valószínűleg sok olyan lekérdezés van, s a MySQL-nek teljes táblákat kell megvizsgálnia, vagy a kulcsokat nem megfelelően használó illesztések vannak.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Az adatfájlban lévő következő sor beolvasásához szükséges kérések száma. Ez magas, ha Ön sokszor vizsgálja át a táblákat. Ez általában azt javasolja, hogy a táblák nem megfelelően indexeltek, vagy a lekérdezések nincsenek írva az indexek kihasználása végett.';
+$strShowStatusHandler_rollbackDescr = 'A belső ROLLBACK utasítások száma.';
+$strShowStatusHandler_updateDescr = 'A kérések száma egy táblában lévő sor frissítéséhez.';
+$strShowStatusHandler_writeDescr = 'A kérések száma egy táblában lévő sor beszúrásához.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Az adatokat tartalmazó lapok száma (piszkos vagy tiszta).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'A jelenleg piszkos lapok száma.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'A pufferkészlet oldalainak száma, melyeket kiírásra kértek.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'A szabad lapok száma.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Az InnoDB pufferkészletében zárolt oldalak száma. Ezek az épp beolvasás vagy írás alatt lévő oldalak, melyeket bizonyos más okok miatt nem lehet kiírni vagy eltávolítani.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'A foglalt oldalak száma, mert le lettek foglalva adminisztratív többletterheléshez, mint például a sorzárolások vagy az adaptív kivonatindex. Ez az érték Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data értékként is számolható.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'A pufferkészlet teljes mérete lapokban.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Az InnoDB által kezdeményezett "véletlenszerű" előreolvasások száma. Ez akkor történik, ha egy lekérdezés meg akarja vizsgálni egy tábla nagy részét, viszont véletlenszerű sorrendben.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Az InnoDB által kezdeményezett sorozatos előreolvasások száma. Ez akkor történik, mikor az InnoDB sorozatos teljes táblavizsgálatot tart.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Az InnoDB által elvégzett logikai olvasási kérések száma.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'A logikai olvasások száma, melyeket az InnoDB nem tudott a pufferkészletből kielégíteni, s egyoldalas beolvasást végzett.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normál esetben az InnoDB pufferkészletébe írások a háttérben történnek. Ha viszont be kell olvasni vagy létre kell hozni egy oldalt, s nincs több tiszta oldal, akkor várni kell az előbb kiírandó oldalakra. Ez a számláló számolja ezeknek a várakozásoknak az előfordulásait. Ha a pufferkészlet méretét megfelelően állították be, akkor ennek az értéknek kicsinek kell lennie.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Az InnoDB pufferkészletébe történt írások száma.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Az fsync() műveletek eddigi száma.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'A folyamatban lévő fsync() műveletek száma.';
+$strShowStatusInnodb_data_pending_readsDescr = 'A folyamatban lévő olvasások száma.';
+$strShowStatusInnodb_data_pending_writesDescr = 'A folyamatban lévő írások száma.';
+$strShowStatusInnodb_data_readDescr = 'Az eddig beolvasott adatok mennyisége bájtban.';
+$strShowStatusInnodb_data_readsDescr = 'Az összes beolvasott adat.';
+$strShowStatusInnodb_data_writesDescr = 'Az összes írott adat.';
+$strShowStatusInnodb_data_writtenDescr = 'Az összes írott adat, bájtban.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'A végrehajtott duplaírásos írások száma, s az e célból kiírt oldalak száma.';
+$strShowStatusInnodb_dblwr_writesDescr = 'A végrehajtott duplaírásos írások száma, s az e célból kiírt oldalak száma.';
+$strShowStatusInnodb_log_waitsDescr = 'Várakozások száma, amiket a naplópuffer kis mérete okozott és folytatás előtt meg kellett várni a kiírást.';
+$strShowStatusInnodb_log_write_requestsDescr = 'A naplóírási kérések száma.';
+$strShowStatusInnodb_log_writesDescr = 'A naplófájlba történt fizikai írások száma.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'A naplófájlba történt fsyncs írások száma.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'A folyamatban lévő naplófájl fsync-ek száma.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'A folyamatban lévő naplófájl írások száma.';
+$strShowStatusInnodb_os_log_writtenDescr = 'A naplófájlba írt bájtok száma.';
+$strShowStatusInnodb_pages_createdDescr = 'A létrehozott lapok száma.';
+$strShowStatusInnodb_page_sizeDescr = 'A belefordított InnoDB oldal mérete (alapértelmezés: 16 KB). Sok érték került számolásra az oldalakban; az oldal mérete teszi lehetővé a bájtokká történő könnyű átalakítást.';
+$strShowStatusInnodb_pages_readDescr = 'A beolvasott lapok száma.';
+$strShowStatusInnodb_pages_writtenDescr = 'Az írott lapok száma.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'A jelenleg várakozás alatt lévő sorzárolások száma.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'A sorzároláshoz szükséges átlag időtartam, milliszekundumban.';
+$strShowStatusInnodb_row_lock_timeDescr = 'A sorzárolásokra fordított összes idő, milliszekundumban.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'A sorzároláshoz szükséges időtartam, milliszekundumban.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'A sorzárolásra váráshoz szükséges alkalmak száma.';
+$strShowStatusInnodb_rows_deletedDescr = 'Az InnoDB táblákból törölt sorok száma.';
+$strShowStatusInnodb_rows_insertedDescr = 'Az InnoDB táblákba beszúrt sorok száma.';
+$strShowStatusInnodb_rows_readDescr = 'Az InnoDB táblákból beolvasott sorok száma.';
+$strShowStatusInnodb_rows_updatedDescr = 'Az InnoDB táblákban frissített sorok száma.';
+$strShowStatusKey_blocks_not_flushedDescr = 'A kulcsgyorsítótárban lévő kulcsblokkok száma, melyek megváltoztak, de még nem kerültek lemezre kiírásra. Ez Not_flushed_key_blocks néven ismert.';
+$strShowStatusKey_blocks_unusedDescr = 'A kulcsgyorsítótárban lévő, nem használt blokkok száma. Ezzel az értékkel állapíthatja meg, hogy mennyire van használatban a kulcsgyorsítótár.';
+$strShowStatusKey_blocks_usedDescr = 'A kulcsgyorsítótárban lévő használt blokkok száma. Ez az érték egy maximális jel, mely a valamikor használatban volt blokkok számát jelzi.';
+$strShowStatusKey_read_requestsDescr = 'A gyorsítótárból egy kulcsblokk beolvasásához szükséges kérések száma.';
+$strShowStatusKey_readsDescr = 'Egy kulcsblokk lemezről történő fizikai beolvasásainak száma. Ha a Key_reads nagy, akkor valószínűleg túl kicsi a key_buffer_size értéke. A gyorsítótár sikertelen találatainak aránya a Key_reads/Key_read_requests alapján számítható ki.';
+$strShowStatusKey_write_requestsDescr = 'A kérések száma egy kulcsblokk gyorsítótárba történő írásához.';
+$strShowStatusKey_writesDescr = 'Egy kulcsblokk lemezre történő fizikai írásainak száma.';
+$strShowStatusLast_query_costDescr = 'Az utoljára lefordított lekérdezés összköltsége a lekérdezésoptimalizáló számítása szerint. Ugyanazon lekérdezés különféle lekérdezési tervei költségének lekérdezéséhez hasznos. Az alapértelmezett 0 érték azt jelenti, hogy lekérdezés lefordítására még nem került sor.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Az INSERT DELAYED sorokban írásra várakozó sorok száma.';
+$strShowStatusOpened_tablesDescr = 'Az eddig megnyitott táblák száma. Ha a megnyitott táblák nagy,akkor valószínűleg túl kicsi a táblagyorsítótár értéke.';
+$strShowStatusOpen_filesDescr = 'A megnyitott fájlok száma.';
+$strShowStatusOpen_streamsDescr = 'Az adatfolyamok száma, melyek nyitottak (főleg a naplózáshoz kerül felhasználásra).';
+$strShowStatusOpen_tablesDescr = 'A megnyitott táblák száma.';
+$strShowStatusQcache_free_blocksDescr = 'A szabad memóriablokkok száma a lekérdezési gyorsítótárban.';
+$strShowStatusQcache_free_memoryDescr = 'A szabad memória mérete a lekérdezési gyorsítótárhoz.';
+$strShowStatusQcache_hitsDescr = 'A gyorsítótár találatok száma.';
+$strShowStatusQcache_insertsDescr = 'A gyorsítótárhoz adott lekérdezések száma.';
+$strShowStatusQcache_lowmem_prunesDescr = 'A lekérdezések száma, melyek eltávolításra kerültek a gyorsítórából az új lekérdezések gyorsítótárazásához történő memória felszabadításához. Ez az információ a lekérdezési gyorsítótár méretének szabályozásában segíthet. A lekérdezési gyorsítótár a legrégebben használt (LRU) stratégiával dönti el, hogy mely lekérdezéseket kell eltávolítani a gyorsítótárból.';
+$strShowStatusQcache_not_cachedDescr = 'A nem gyorsítótárazott lekérdezések száma (nem gyorsítótárazható, vagy nem gyorsítótárazott a query_cache_type beállítás miatt).';
+$strShowStatusQcache_queries_in_cacheDescr = 'A gyorsítótárban bejegyzett lekérdezések száma.';
+$strShowStatusQcache_total_blocksDescr = 'A blokkok száma a lekérdezési gyorsítótárban.';
+$strShowStatusReset = 'Reset';
+$strShowStatusRpl_statusDescr = 'A hibabiztos többszörözések állapota (megvalósításra vár).';
+$strShowStatusSelect_full_joinDescr = 'Az indexeket nem használó illesztések száma. Ha ez az érték nem 0, akkor ellenőrizze körültekintően a táblák indexeit.';
+$strShowStatusSelect_full_range_joinDescr = 'Egy hivatkozási táblán tartománykeresést használt illesztések száma.';
+$strShowStatusSelect_range_checkDescr = 'A kulcsok nélküli illesztések száma, melyek minden sor után kulcs használatát ellenőrzik. (Ha ez nem 0, akkor ellenőrizze körültekintően a táblák indexeit.))';
+$strShowStatusSelect_rangeDescr = 'Az első táblán tartományokat használt illesztések száma. (Normál esetben ez nem súlyos, még ha túl nagy is ez.)';
+$strShowStatusSelect_scanDescr = 'Az első tábla teljes vizsgálatát elvégzett illesztések száma.';
+$strShowStatusSlave_open_temp_tablesDescr = 'A kisegítő SQL szál által épp megnyitott ideiglenes táblák száma.';
+$strShowStatusSlave_retried_transactionsDescr = 'A többszörözésben kisegítő SQL szál (az indítás óta) ennyiszer próbálta újra a tranzakciókat.';
+$strShowStatusSlave_runningDescr = 'Ez BE, ha ez főszerverhez csatlakoztatott kisegítő szerver.';
+$strShowStatusSlow_launch_threadsDescr = 'A szálak száma, melyek létrehozásához slow_launch_time másodpercnél többre volt szükség.';
+$strShowStatusSlow_queriesDescr = 'A lekérdezések száma, melyekhez long_query_time másodpercnél többre volt szükség.';
+$strShowStatusSort_merge_passesDescr = 'Az egyesítési menetek száma, amit a rendezési algoritmusnak el kellett végeznie. Ha ez az érték nagy, akkor gondolja meg a sort_buffer_size rendszerváltozó értékének növelését.';
+$strShowStatusSort_rangeDescr = 'A tartományokkal végzett rendezések száma.';
+$strShowStatusSort_rowsDescr = 'Rendezett sorok száma.';
+$strShowStatusSort_scanDescr = 'A tábla vizsgálatával végrehajtott rendezések száma.';
+$strShowStatusTable_locks_immediateDescr = 'Ennyiszer nem lehetett azonnal megszerezni egy táblazárolást.';
+$strShowStatusTable_locks_waitedDescr = 'Ennyiszer nem lehetett azonnal megszerezni egy táblazárolást, s várni kellett. Ha ez magas, s Önnek teljesítményproblémái vannak, akkor előbb optimalizálja a lekérdezéseket, majd vagy ossza fel a táblát vagy táblákat, vagy használja a többszörözést.';
+$strShowStatusThreads_cachedDescr = 'A szálak száma a szál gyorsítótárban. A gyorsítótár találati aránya a Threads_created/Connections alapján számítható ki. Ha ez az érték piros, akkor növelnie kell a thread_cache_size méretét.';
+$strShowStatusThreads_connectedDescr = 'A jelenleg megnyitott kapcsolatok száma.';
+$strShowStatusThreads_createdDescr = 'A kapcsolatok kezeléséhez létrehozott szálak száma. Ha a Threads_created nagy, akkor növelheti a thread_cache_size értékét. (Normál esetben ez nem növeli jelentősen a teljesítményt, ha jó szálmegvalósítása van.)';
+$strShowStatusThreads_runningDescr = 'A nem alvó szálak száma.';
+$strShowTableDimension = 'A táblák méretének megjelenítése';
+$strShowTables = 'A táblák megjelenítése';
+$strShowThisQuery = ' A fenti lekérdezés megjelenítése itt újra ';
+$strSimplifiedChinese = 'Egyszerűsített kínai';
+$strSingly = '(egyenként)';
+$strSize = 'Méret';
+$strSkipQueries = 'Az elejétől kihagyandó rekordok (lekérdezések) száma';
+$strSlovak = 'Szlovák';
+$strSlovenian = 'Szlovén';
+$strSmallBigAll = 'Mind kicsi/nagy';
+$strSnapToGrid = 'Rácshoz illesztés';
+$strSocketProblem = '(vagy nem megfelelően állították be a helyi MySQL szerver szoftvercsatornáját)';
+$strSortByKey = 'Kulcs szerinti rendezés';
+$strSorting = 'Rendezés';
+$strSort = 'Rendezés';
+$strSpaceUsage = 'Területhasználat';
+$strSpanish = 'Spanyol';
+$strSplitWordsWithSpace = 'A szavak elválasztása szóköz karakterrel (" ").';
+$strSQLCompatibility = 'SQL kompatibilitási mód';
+$strSQLExportType = 'Exportálás típusa';
+$strSQLParserBugMessage = 'Esély van rá, hogy hibát találhatott az SQL szintaktikai elemzőben (parser). Kérjük, hogy vizsgálja meg gondosan a lekérdezésedet, ellenőrizze, hogy az idézőjelek jók-e és jól illeszkednek-e. Más lehetséges hiba oka lehet, hogy binárisan töltött fel egy fájlt az idézett szövegmezőn kívül. Kipróbálhatja a lekérdezésedet a MySQL parancssoros kezelőfelületén. A MySQL szerver hibakimenete alul látható, ha van ott valami, az segíthet a hiba okának kiderítésében. Ha még mindig gondjai vannak, vagy a szintaktikai elemző (parser) hibát jelez, ahol a parancssoros kezelőfelületen végrehajtódik, redukálja a problémát okozó SQL lekérdezést egy egyszerű lekérdezéssé, és küldjön be hibabejelentést az alsó Kivágás részben levő adatokkal együtt:';
+$strSQLParserUserError = 'Úgy látszik, hogy hiba van az SQL lekérdezésben. A MySQL szerver hibakimenete alul látható, ha van ott valami, az segíthet kideríteni a hiba okát';
+$strSQLQuery = 'SQL-lekérdezés';
+$strSQLResult = 'SQL-eredmény';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Érvénytelen azonosító';
+$strSQPBugUnclosedQuote = 'Lezáratlan idézőjel';
+$strSQPBugUnknownPunctuation = 'Ismeretlen írásjeleket tartalmazó karakterlánc';
+$strStandInStructureForView = 'A nézet helyettes szerkezete';
+$strStatCheckTime = 'Utolsó ellenőrzés';
+$strStatCreateTime = 'Létrehozás';
+$strStatement = 'Utasítások';
+$strStatisticsOverrun = 'Foglalt szerveren túlfuthatnak a bájtszámlálók, ezért a MySQL által jelentett statisztikák pontatlanok lehetnek.';
+$strStatUpdateTime = 'Utolsó frissítés';
+$strStatus = 'Állapot';
+$strStorageEngines = 'Tárolómotorok';
+$strStorageEngine = 'Tárolómotor';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Szerkezet és adatok';
+$strStrucExcelCSV = 'MS Excel CSV adat';
+$strStrucNativeExcel = 'Natív MS Excel formátum';
+$strStrucOnly = 'Csak a szerkezet';
+$strStructPropose = 'Táblaszerkezet ajánlása';
+$strStructureForView = 'Nézet szerkezete';
+$strStructure = 'Szerkezet';
+$strSubmit = 'Indítás';
+$strSuccess = 'Az SQL-lekérdezés végrehajtása sikerült';
+$strSuhosin = 'A szerver Suhosinnal fut. Kérjük, hogy a lehetséges problémáknak nézzen utána a %sdokumentációban%s.';
+$strSum = 'Összeg';
+$strSwedish = 'Svéd';
+$strSwekeyAuthenticating = 'Hitelesítés...';
+$strSwekeyAuthFailed = 'A hardveres hitelesítés nem sikerült';
+$strSwekeyNoKeyId = 'A(z) %s fájl nem tartalmaz semmilyen kulcsazonosítót';
+$strSwekeyNoKey = 'Érvényes hitelesítési kulcs csatlakoztatása nem történt meg';
+$strSwitchToDatabase = 'A másolt adatbázisra váltás';
+$strSwitchToTable = 'A másolt táblára váltás';
+
+$strTableAlreadyExists = 'Már létezik nevű %s tábla!';
+$strTableAlteredSuccessfully = 'A(z) %1$s tábla módosítása sikerült';
+$strTableComments = 'Tábla megjegyzése';
+$strTableEmpty = 'Üres a tábla neve!';
+$strTableHasBeenCreated = 'A(z) %1$s tábla elkészült.';
+$strTableHasBeenDropped = 'A(z) %s tábla eldobása megtörtént';
+$strTableHasBeenEmptied = 'A(z) %s tábla kiürítése megtörtént';
+$strTableHasBeenFlushed = 'A(z) %s tábla kiírása megtörtént';
+$strTableIsEmpty = 'Üresnek tűnik a tábla!';
+$strTableMaintenance = 'Tábla karbantartása';
+$strTableName = 'Tábla neve';
+$strTableOfContents = 'Tartalomjegyzék';
+$strTableOptions = 'Tábla beállításai';
+$strTables = '%s tábla';
+$strTableStructure = 'Tábla szerkezet:';
+$strTable = 'Tábla';
+$strTakeIt = 'csináld';
+$strTblPrivileges = 'Táblaspecifikus jogok';
+$strTempData = 'Ideiglenes adatok';
+$strTextAreaLength = 'A hossza miatt<br /> lehet, hogy ez a mező nem szerkeszthető ';
+$strTexyText = 'Texy! szöveg';
+$strThai = 'Thai';
+$strThemeDefaultNotFound = 'A(z) %s alapértelmezett téma nem található!';
+$strThemeNoPreviewAvailable = 'Nincs előnézet.';
+$strThemeNotFound = 'Nem található a(z) %s téma!';
+$strThemeNoValidImgPath = 'Nincs érvényes kép elérési útja a(z) %s témának!';
+$strThemePathNotFound = 'Nem található a(z) %s téma téma elérési útja!';
+$strTheme = 'Téma / Séma';
+$strThisHost = 'Ez a hoszt';
+$strThreads = 'Szálak';
+$strThreadSuccessfullyKilled = 'Sikerült leállítani a(z) %s. szálat.';
+$strTimeoutInfo = 'Az előző importálás időtúllépés miatt leállt, újraküldés után a(z) %d pozíciótól folytatódik.';
+$strTimeoutNothingParsed = 'Az utolsó futáskor azonban nem került adat elemzésre, ami általában azt jelenti, hogy a phpMyAdmin nem tudja befejezni ezt az importálást, ha Ön nem növeli meg a PHP időkorlátozását.';
+$strTimeoutPassed = 'Script időtúllépés történt, ha be akarja fejezni az importálást, akkor küldje újra ugyanazt a fájlt és az importálás folytatódni fog.';
+$strTime = 'Idő';
+$strToFromPage = 'oldalra/-ról';
+$strToggleScratchboard = 'Scratchboard kapcsolása';
+$strToggleSmallBig = 'Kicsi/nagy kapcsoló';
+$strToSelectRelation = 'A kapcsolat kiválasztásához, kattintson :';
+$strTotal = 'összesen';
+$strTotalUC = 'Összesen';
+$strTraditionalChinese = 'Hagyományos kínai';
+$strTraditionalSpanish = 'Hagyományos spanyol';
+$strTraffic = 'Forgalom';
+$strTransactionCoordinator = 'Tranzakció koordinátor';
+$strTransformation_application_octetstream__download = 'Egy hivatkozást jelenít meg a mező bináris adatának letöltéséhez. Használhatja az első lehetőséget a fájlnév megadásához, vagy használhatja a második lehetőséget egy mező neveként, mely tartalmazza a fájlnevet. Ha a második lehetőséget használja, akkor az első lehetőséget üres karakterláncra kell állítania.';
+$strTransformation_application_octetstream__hex = 'Az adatokat hexadecimálisan ábrázolja. Az elhagyható első paraméter határozza meg, hogy milyen gyakran kerül szóköz hozzáadásra (alapértelmezés 2 négybit).';
+$strTransformation_image_jpeg__inline = 'Kattintható bélyegképet jelenít meg. A képpontban megadott legnagyobb szélesség és magasság a lehetőségek. Az eredeti méretarányok megtartásra kerülnek.';
+$strTransformation_image_jpeg__link = 'A kép letöltésére mutató hivatkozást jelenít meg.';
+$strTransformation_image_png__inline = 'Lásd image/jpeg megtekintése: bent';
+$strTransformation_text_plain__dateformat = 'TIME, TIMESTAMP, DATETIME vagy numerikus Unix időbélyegzés mezőt formázott dátumként jelenít meg. Az első lehetőség az eltolás (órában), mely hozzáadásra kerül az időbélyegzéshez (alapértelmezés: 0). Másik dátum/idő formázási karakterlánc megadásához használja a második lehetőséget. A harmadik lehetőség határozza meg, hogy helyi dátumot vagy UTC-t akar-e használni hozzá (a "local" vagy az "utc" karakterlánc megadásával). Eszerint eltérő értéke van a dátum formátumának - a "local" esetén tekintse meg a dokumentációban a PHP strftime() függvényét, míg az "utc" végrehajtása a gmdate() függvénnyel történik.';
+$strTransformation_text_plain__external = 'CSAK LINUX: Elindít egy külső alkalmazást, mely hagyományos bemeneten keresztül kapja a mezőadatokat. Visszatér az alkalmazás hagyományos bemenetén. Alapértelmezés a Tidy, mely csinos HTML kódot kap. Biztonsági okokból a libraries/transformations/text_plain__external.inc.php fájlt kézzel kell szerkeszteni, és beírni a hozzáférni kívánt eszközök neveit. Az első lehetőség akkor a használni kívánt program száma, a második a program paramáterei. A harmadik lehetőség, ha 1-re állított, akkor konvertálja a kimenetet a htmlspecialchars() eljárással (alapértelmezés: 1). A negyedik lehetőség, ha egyre van beállítva, megakadályozza a beágyazást, és biztosítja, hogy a kimenet az összes soron megjelenik (alapértelmezés: 1)';
+$strTransformation_text_plain__formatted = 'Eredeti állapotában jeleníti meg a mező tartalmát, a htmlspecialchars() függvényen keresztüli lefuttatás nélkül. Vagyis feltételezi, hogy a mező érvényes HTML-kódot tartalmaz.';
+$strTransformation_text_plain__imagelink = 'Egy képet és egy hivatkozást jelenít meg; a mező tartalmazza a fájlnevet. Az első opcíó egy URL előtag, mint a "http://www.pelda.hu/". A második és harmadik lehetőség a szélesség és a magasság képpontban.';
+$strTransformation_text_plain__link = 'Egy hivatkozást jelenít meg; a mező tartalmazza a fájlnevet. ; Az első lehetőség egy URL előtag, mint a "http://www.pelda.hu/". A második lehetőség a hivatkozás címe.';
+$strTransformation_text_plain__sql = 'SQL-lekérdezésként, színkódolással formázza a szöveget.';
+$strTransformation_text_plain__substr = 'Valamely karakterlánc egy részét mutatja. Az első lehetőség a karakterlánc elejéről kihagyandó karakterek száma (alapértelmezés: 0). A második lehetőség a visszaadandó karakterek száma száma (alapértelmezés: a karakterlánc végéig). A harmadik lehetőség az elején és/vagy a végén hozzáfűzendő karakterlánc a tranzakció előfordulásakor (alapértelmezés: "...").';
+$strTriggers = 'Eseményindítók';
+$strTruncateQueries = 'A megjelenített lekérdezések lerövidítése';
+$strTurkish = 'Török';
+$strType = 'Típus';
+
+$strUkrainian = 'Ukrán';
+$strUncheckAll = 'Kijelölés törlése';
+$strUnicode = 'Unicode';
+$strUnique = 'Egyedi';
+$strUnknown = 'ismeretlen';
+$strUnselectAll = 'Mind törlése';
+$strUnsupportedCompressionDetected = 'Ön nem támogatott tömörítésű (%s) fájlt kísérelt meg betölteni. Vagy nem valósították meg a támogatását, vagy letiltják a beállítások.';
+$strUpdatePrivMessage = 'Ön frissítette %s jogait.';
+$strUpdateProfileMessage = 'A profil frissítése megtörtént.';
+$strUpdateQuery = 'Lekérdezés frissítése';
+$strUpdComTab = 'Kérjük, olvassa el a dokumentációban a column_comments tábla frissítéséről szóló fejezetet';
+$strUpgrade = 'Frissítenie kell %s %s vagy újabb verzióra.';
+$strUploadErrorCantWrite = 'Nem sikerült lemezre írni a fájlt.';
+$strUploadErrorExtension = 'A fájlfeltöltés kiterjesztés alapján leállt.';
+$strUploadErrorFormSize = 'A feltöltött fájl mérete túllépi a HTML űrlapban megadott MAX_FILE_SIZE utasítást.';
+$strUploadErrorIniSize = 'A feltöltött fájl mérete túllépi a php.ini fájlban megadott upload_max_filesize utasítást.';
+$strUploadErrorNoTempDir = 'Hiányzik egy ideiglenes mappa.';
+$strUploadErrorPartial = 'A feltöltött fájl csak részben került feltöltésre.';
+$strUploadErrorUnknown = 'Ismeretlen hiba a fájlfeltöltésben.';
+$strUploadLimit = 'Ön bizonyára túl nagy fájlt próbált meg feltölteni. Kérjük, nézzen utána a %sdokumentációban%s a korlátozás feloldásának.';
+$strUploadsNotAllowed = 'Ezen a szerveren a fájlfeltöltések nem engedélyezettek.';
+$strUsage = 'Méret';
+$strUseBackquotes = 'Idézőjelek használata a tábla- és mezőneveknél';
+$strUseHostTable = 'Hoszt-tábla használata';
+$strUserAlreadyExists = '%s felhasználó már létezik!';
+$strUserEmpty = 'Üres a felhasználónév!';
+$strUserName = 'Felhasználónév';
+$strUserNotFound = 'Nem található a kiválasztott felhasználó a privilégium táblában.';
+$strUserOverview = 'Felhasználók áttekintése';
+$strUsersDeleted = 'A kiválasztott felhasználók törlése sikerült.';
+$strUsersHavingAccessToDb = 'A(z) &quot;%s&quot; adatbázishoz hozzáférhető felhasználók';
+$strUser = 'Felhasználó';
+$strUseTabKey = 'A TAB billentyűvel értékről értékre lépkedhet, ill. a CTRL+nyilakkal bárhová léphet.';
+$strUseTables = 'Felhasználandó táblák';
+$strUseTextField = 'Szöveges mező használata';
+$strUseThisValue = 'Ezen érték használata';
+
+$strValidateSQL = 'SQL érvényesítése';
+$strValidatorError = 'Nem lehetett inicializálni az SQL ellenőrzőt. Ellenőrizze, hogy a %dokumentációban% leírtak szerint telepítette-e a szükséges PHP-kiterjesztést.';
+$strValue = 'Érték';
+$strVar = 'Változó';
+$strVersionInformation = 'Verziószám';
+$strViewDumpDatabases = 'Adatbázis kiírás (séma) megtekintése';
+$strViewDumpDB = 'Adatbázis kiírás (vázlat) megtekintése';
+$strViewDump = 'Tábla kiírás (vázlat) megtekintése';
+$strViewHasAtLeast = 'Ebben a nézetben legalább ennyi számú sor van. Kérjük, hogy nézzen utána a %sdokumentációban%s.';
+$strViewHasBeenDropped = 'A(z) %s nézet eldobása kész';
+$strViewImage = 'Kép megtekintése';
+$strViewName = 'NÉZET neve';
+$strViewVideo = 'Videó megtekintése';
+$strView = 'Nézet';
+
+$strWebServerUploadDirectoryError = 'Nem elérhető a feltöltésekhez megadott könyvtár';
+$strWebServerUploadDirectory = 'webszerver feltöltési könyvtár';
+$strWebServer = 'Webszerver';
+$strWelcome = 'Üdvözli a %s';
+$strWestEuropean = 'Nyugat-európai';
+$strWiki = 'Wiki';
+$strWildcard = 'karakterhelyettesítő';
+$strWindowNotFound = 'Nem lehetett frissíteni a cél böngészőablakot. Lehet, hogy bezárta a szülőablakot, vagy a böngésző biztonsági beállításai tiltják az ablakok közti frissítést';
+$strWithChecked = 'A kijelöltekkel végzendő művelet:';
+$strWriteRequests = 'Írási kérések';
+$strWrongUser = 'Hibás felhasználónév/jelszó. A hozzáférés megtagadva.';
+
+$strXML = 'XML';
+
+$strYes = 'Igen';
+
+$strZeroRemovesTheLimit = 'Megjegyzés: Ezen beállítások 0-ra (nulla) állítása eltávolítja a korlátozást.';
+$strZip = '"zip tömörítés"';
+
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/indonesian-utf-8.inc.php b/lang/indonesian-utf-8.inc.php
new file mode 100644
index 0000000000..ee3b5d7267
--- /dev/null
+++ b/lang/indonesian-utf-8.inc.php
@@ -0,0 +1,1463 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu');
+$month = array('Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'Nopember', 'Desember');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d. %B %Y jam %H:%M';
+$timespanfmt = '%s hari, %s jam, %s menit dan %s detik';
+
+$strAbortedClients = 'Pembatalan';
+$strAccessDenied = 'Akses ditolak';
+$strAccessDeniedExplanation = 'phpMyAdmin telah berusaha untuk membuka koneksi ke server MySQL tetapi koneksi ditolak oleh server. Silakan periksa kembali nama host, nama pengguna dan kata sandi pada file config.inc.php untuk memastikan kecocokannya dengan informasi yang telah diberikan oleh administrator server MySQL.';
+$strAction = 'Aksi';
+$strAddAutoIncrement = 'Menambahkan nilai AUTO_INCREMENT';
+$strAddConstraints = 'Menambahkan pembatas';
+$strAddDeleteColumn = 'Menambahkan/Hapus kolom';
+$strAddDeleteRow = 'Menambahkan/Hapus baris';
+$strAddFields = 'Menambahkan %s field(s)';
+$strAddHeaderComment = 'Menambahkan komentar individual pada Header (\\n membelahkan garis)';
+$strAddIntoComments = 'Penambahkan pada komentar:';
+$strAddNewField = 'Menambahkan field baru';
+$strAddPrivilegesOnDb = 'Menambahkan hak (privileges) pada database berikut';
+$strAddPrivilegesOnTbl = 'Menambahkan hak (privileges) pada tabel berikut';
+$strAddSearchConditions = 'Menambahkan kriteria pencarian (Argumen untuk WHERE-Statement):';
+$strAddToIndex = 'Menambahkan ke indeks &nbsp;%s&nbsp;kolom';
+$strAddUser = 'Menambahkan pengguna baru';
+$strAddUserMessage = 'Pengguna baru telah ditambahkan.';
+$strAdministration = 'Administrasi';
+$strAfterInsertBack = 'kembali';
+$strAfterInsertNewInsert = 'sisipkan baris baru berikutnya';
+$strAfterInsertNext = 'Edit baris berikut';
+$strAfterInsertSame = 'Kembali ke halaman ini';
+$strAfter = 'sisipkan setelah %s';
+$strAll = 'Semua';
+$strAllTableSameWidth = 'Tampilkan seluruh tabel dengan lebar yang sama?';
+$strAlterOrderBy = 'Urutkan tabel berdasarkan';
+$strAnalyzeTable = 'Analisa tabel';
+$strAnd = 'dan';
+$strAndThen = 'selanjutnya';
+$strAnIndex = 'Indeks telah ditambahkan pada %s';
+$strAnyHost = 'Setiap host';
+$strAny = 'Setiap';
+$strAnyUser = 'Setiap pengguna';
+$strApproximateCount = 'Kemungkinan hanya perkiraan saja. Lihat FAQ 3.11';
+$strAPrimaryKey = 'Primary key telah ditambahkan pada %s';
+$strArabic = 'Bahasa Arab';
+$strArmenian = 'Bahasa Armenia';
+$strAscending = 'Urutan menaik';
+$strAtBeginningOfTable = 'pada awal tabel';
+$strAtEndOfTable = 'pada akhir tabel';
+$strAttr = 'Atribut';
+$strAutomaticLayout = 'Layout otomatis';
+
+$strBack = 'Kembali';
+$strBaltic = 'Bahasa Baltik';
+$strBeginCut = 'Mulai potong (CUT)';
+$strBeginRaw = 'MULAI mentah (RAW)';
+$strBinary = 'Binari';
+$strBinaryDoNotEdit = 'Binari - jangan di-edit';
+$strBinaryLog = 'Log binari';
+$strBinLogEventType = 'Tipe Kejadian';
+$strBinLogInfo = 'Informasi';
+$strBinLogName = 'Catat nama';
+$strBinLogOriginalPosition = 'Posisi aslinya';
+$strBinLogPosition = 'Posisi';
+$strBinLogServerId = 'ID Server';
+$strBookmarkAllUsers = 'Izinkan semua pengguna untuk mengakses simpanan ini';
+$strBookmarkDeleted = 'Penyimpanan telah dihapus.';
+$strBookmarkLabel = 'Judul';
+$strBookmarkQuery = 'Ingat pada pencarian SQL ';
+$strBookmarkThis = 'Simpan pencarian SQL ini';
+$strBookmarkView = 'Hanya melihat';
+$strBrowse = 'Browse';
+$strBrowseForeignValues = 'Menjelajahi nilai luar';
+$strBufferPoolActivity = 'Aktifitas penampungan Buffer';
+$strBufferPool = 'Penampungan Buffer';
+$strBufferPoolUsage = 'Penggunaan penampungan Buffer';
+$strBufferReadMissesInPercent = 'Pembacaan yang kelewat dalam %';
+$strBufferReadMisses = 'Pembacaan yang kelewat';
+$strBufferWriteWaitsInPercent = 'Penundaan penulisan dalam %';
+$strBufferWriteWaits = 'Penundaan penulisan';
+$strBulgarian = 'Bahasa Bulgaria';
+$strBusyPages = 'Halaman yang sibuk';
+$strBzip = '"Dikompress dengan BZip"';
+
+$strCalendar = 'Kalender';
+$strCannotLogin = 'Gagal login ke MySQL server';
+$strCantLoad = 'gagal loading ekstensi %s,<br />mohon periksa kembali konfigurasi PHP.';
+$strCantLoadRecodeIconv = 'Gagal loading iconv atau perubahan kode extension untuk konversi charset diperlukan. Silakan konfigurasikan php untuk menggunakan extensions yang diperlukan atau matikan fasilitas konversi Charset pada phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Gagal ubah nama Indeks ke PRIMARY!';
+$strCantUseRecodeIconv = 'Gagal menggunakan iconv, libiconv atau fungsi recode_string selama ekstensi masih dalam keadaan di-load. Periksa kembali konfigurasi PHP.';
+$strCardinality = 'Bilangan Pokok';
+$strCaseInsensitive = 'peka terhadap huruf besar/kecil';
+$strCaseSensitive = 'tidak peka terhadap huruf besar/kecil';
+$strCentralEuropean = 'Eropa Tengah';
+$strChangeCopyMode = 'Ciptakan pengguna baru dengan hak-hak yang sama dan ...';
+$strChangeCopyModeCopy = '... mempertahankan yang lama.';
+$strChangeCopyModeDeleteAndReload = ' ... hapuskan yang lama dari User Table, kemudian reload hak-hak.';
+$strChangeCopyModeJustDelete = ' ... hapus yang lama dari User Table.';
+$strChangeCopyModeRevoke = ' ... cabut seluruh hak yang aktif, kemudian hapuskan yang lama.';
+$strChangeCopyUser = 'Ubah informasi Login / Salip pengguna';
+$strChangeDisplay = 'Pilih Field untuk ditampilkan';
+$strChangePassword = 'Ubah Kata Sandi';
+$strChange = 'Ubah';
+$strCharsetOfFile = 'Penyusunan karakter dalam file:';
+$strCharset = 'Perangkat karakter (Charset)';
+$strCharsetsAndCollations = 'Penyusunan karakter dan tabel urutan';
+$strCharsets = 'Penyusunan Karakter';
+$strCheckAll = 'Pilih semua';
+$strCheckOverhead = 'Periksa Overheaded';
+$strCheckPrivsLong = 'Periksa hak-hak untuk database &quot;%s&quot;.';
+$strCheckPrivs = 'Periksa hak-hak';
+$strCheckTable = 'Periksa tabel';
+$strChoosePage = 'Silakan pilih halaman untuk diubah';
+$strColComFeat = 'Tampilkan komentar kolom';
+$strCollation = 'Penyortiran';
+$strColumnNames = 'Nama kolom';
+$strColumnPrivileges = 'Hak (privileges) khusus terhadap kolum';
+$strCommand = 'Perintah';
+$strComments = 'Komentar';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible';
+$strCompleteInserts = 'INSERT lengkap';
+$strCompression = 'Kompresi';
+$strConfigFileError = 'phpMyAdmin gagal membaca file konfigurasi!<br />Hal ini diakibatkan oleh Parse Error atau file tidak ditemukan.<br />Silakan bukakan file konfigurasi dengan cara mengunakan link dibawah ini. Mohon perhatikan PHP Error Message(s) yang akan ditampilkan. Seringkali sebuah tanda kutip atau titik-koma ketinggalan.<br />Jika muncul sebuah halaman kosong, artinya tidak ada masalah.';
+$strConfigureTableCoord = 'Silakan konfigurasikan koordinasi bagi tabel %s';
+$strConnectionError = 'Koneksi gagal: Stelan tidak berlaku.';
+$strConnections = 'Koneksi';
+$strConstraintsForDumped = 'Ketidakleluasaan untuk tabel pelimpahan (Dumped Tables)';
+$strConstraintsForTable = 'Ketidakleluasaan untuk tabel';
+$strCookiesRequired = 'Mulai dari sini Cookies harus diaktifkan.';
+$strCopyDatabaseOK = 'Database %s telah disalin ke %s';
+$strCopy = 'Salin';
+$strCopyTableOK = 'Tabel %s telah disalin ke %s.';
+$strCopyTable = 'Salin tabel ke (database<b>.</b>nama tabel):';
+$strCopyTableSameNames = 'Penyalinan tabel pada diri-sendiri tidak bisa dilakukan!';
+$strCouldNotKill = 'phpMyAdmin gagal menutup Thread %s. Kemungkinan Thread tersebut sudah ditutup terlebih dahulu';
+$strCreate = 'Ciptakan';
+$strCreateDatabaseBeforeCopying = 'CIPTAKAN DATABASE sebelum menyalin';
+$strCreateIndex = 'Ciptakan indeks pada kolom &nbsp;%s&nbsp;';
+$strCreateIndexTopic = 'Ciptakan indeks baru';
+$strCreateNewDatabase = 'Ciptakan database baru';
+$strCreateNewTable = 'Ciptakan tabel baru pada database %s';
+$strCreatePage = 'Ciptakan halaman baru';
+$strCreatePdfFeat = 'Penciptaan PDF';
+$strCreationDates = 'Tanggal Penciptaan/Update/Pemeriksaan';
+$strCriteria = 'Kriteria';
+$strCroatian = 'Bahasa Kroatia';
+$strCyrillic = 'Bahasa Kirilia';
+$strCzech = 'Bahasa Ceko';
+$strCzechSlovak = 'Cecko-Slovakia';
+
+$strDanish = 'Bahasa Denmark';
+$strDatabase = 'Database';
+$strDatabaseEmpty = 'Nama database kosong!';
+$strDatabaseExportOptions = 'Pilihan cara untuk mengekspor Database';
+$strDatabaseHasBeenDropped = 'Database %s telah dihapus.';
+$strDatabases = 'Database';
+$strDatabasesDropped = 'Sukses menghapus database %s.';
+$strDatabasesStatsDisable = 'Mencacatkan Statistik';
+$strDatabasesStatsEnable = 'Menggiatkan Statistik';
+$strDatabasesStatsHeavyTraffic = 'Perhatian: Menggiatkan statistik database dengan kemungkinan besar mengakibatkan traffic yang cukup tinggi antara webserver dan server MySQL.';
+$strDatabasesStats = 'Statistik Database';
+$strData = 'Data';
+$strDataDict = 'Kamus Data';
+$strDataOnly = 'Data saja';
+$strDataPages = 'Halaman yang berisi data';
+$strDBComment = 'Komentar Database: ';
+$strDBCopy = 'Salin database ke';
+$strDbPrivileges = 'Hak (privileges) khusus terhadap Database';
+$strDBRename = 'Ubah nama database menjadi';
+$strDbSpecific = 'database-spesifik';
+$strDefault = 'Default';
+$strDefaultEngine = '%s adalah mesin penyimpan utama pada server MySQL ini.';
+$strDefaultValueHelp = 'Untuk nilai (value) default cukup diisi single value saja tanpa menggunakan backslash, escaping atau quotes dan dengan menggunakan format sbb.: a';
+$strDefragment = 'Defragmentasikan tabel';
+$strDelayedInserts = 'Gunakan perintah INSERT memperlambat';
+$strDeleteAndFlushDescr = 'Ini cara yang terbaik tetapi akan memakan waktu cukup lama.';
+$strDeleteAndFlush = 'Hapus pengguna, lantas Reload hak-hak (Privileges).';
+$strDeleted = 'Baris telah dihapus';
+$strDelete = 'Hapus';
+$strDeleting = 'Menghapus %s';
+$strDelOld = 'Halaman ini berisi referensi tentang tabel yang sudah tidak ada. Apakah Anda ingin hapus referensi yang bersangkutan?';
+$strDescending = 'Urutan menurun';
+$strDescription = 'Deskripsi';
+$strDictionary = 'kamus';
+$strDirtyPages = 'Halaman yang kotor';
+$strDisabled = 'Tidak aktif';
+$strDisableForeignChecks = 'Tanpa pemeriksaan kunci asing';
+$strDisplayFeat = 'Tampilkan ciri-ciri';
+$strDisplayOrder = 'Urut tampilan berdasarkan:';
+$strDisplayPDF = 'Tampilkan skema PDF';
+$strDoAQuery = 'cari berdasarkan data contoh ("query by example") (wildcard: "%")';
+$strDocu = 'Dokumentasi';
+$strDoYouReally = 'Apakah anda ingin ';
+$strDropDatabaseStrongWarning = 'Anda akan MENGHAPUS SELURUH database!';
+$strDrop = 'Hapus';
+$strDropUsersDb = 'Hapus database yang memiliki nama yang sama dengan pengguna.';
+$strDumpingData = 'Dumping data untuk tabel';
+$strDumpSaved = 'Dump (Skema) disimpan pada file %s.';
+$strDumpXRows = 'Dump %s baris bermula pada baris %s.';
+$strDynamic = 'dinamis';
+
+$strEditPDFPages = 'Ubah halaman PDF';
+$strEditPrivileges = 'Ubah hak akses (privilege)';
+$strEdit = 'Ubah';
+$strEffective = 'Efektif';
+$strEmpty = 'Mengosongkan';
+$strEmptyResultSet = 'MySQL balikkan hasil kosong (a.k. baris yang kosong).';
+$strEnabled = 'Aktif';
+$strEncloseInTransaction = 'Menyertakan ekspor dalam transaksi';
+$strEndCut = 'Akhiri potong (CUT)';
+$strEndRaw = 'AKHIRI mentah (RAW)';
+$strEnd = 'Terakhir';
+$strEngineAvailable = '%s siap untuk digunakan pada server MySQL ini.';
+$strEngineDisabled = '%s dimatikan untuk server MySQL ini.';
+$strEngines = 'Mesin';
+$strEngineUnsupported = 'Server MySQL ini tidak mendukung mesin penyimpan %s.';
+$strEnglish = 'Bahasa Ingris';
+$strEnglishPrivileges = ' Catatan: Nama privilege MySQL dalam bahasa Ingris ';
+$strError = 'Error';
+$strEscapeWildcards = 'Wildcard _ dan % sebaiknya diakhiri dengan tanda \ untuk mengunakannya secara harfiah';
+$strEstonian = 'Bahasa Estonia';
+$strExcelEdition = 'Edisi Excel';
+$strExecuteBookmarked = 'Eksekusikan pencarian dengan mengikuti penunjuk halaman';
+$strExplain = 'Terangkan SQL';
+$strExport = 'Ekspor';
+$strExtendedInserts = 'INSERT memperluas';
+$strExtra = 'Ekstra';
+
+$strFailedAttempts = 'Gagal';
+$strField = 'Field';
+$strFieldHasBeenDropped = 'Field %s telah dihapus';
+$strFieldsEnclosedBy = 'Field ditutup dengan';
+$strFieldsEscapedBy = 'Field dikembalikan oleh';
+$strFields = 'Field';
+$strFieldsTerminatedBy = 'Fields diputus oleh';
+$strFileAlreadyExists = 'File %s sudah ada pada server. Gantikan nama file atau periksa pilihan Overwrite.';
+$strFileCouldNotBeRead = 'Gagal membaca File';
+$strFileNameTemplate = 'Konvensi nama file';
+$strFileNameTemplateRemember = 'ingat konvensi';
+$strFixed = 'telah diperbaiki';
+$strFlushPrivilegesNote = 'Perhatian: phpMyAdmin membaca data tentang pengguna secara langsung dari tabel profil pengguna MySQL. Isi dari tabel bisa saja berbeda dengan profil pengguna yang digunakan oleh Server pada saat ini bila tabel tsb. pernah diubah secara manual. Disarankan untuk %sme-reload profil pengguna%s sebelum melanjut.';
+$strFlushTable = 'Tutup tabel ("FLUSH")';
+$strFormat = 'Format';
+$strFormEmpty = 'Data dalam form kurang !';
+$strFreePages = 'Halaman yang bebas';
+$strFullText = 'Teks Penuh';
+$strFunction = 'Fungsi';
+
+$strGenBy = 'Diciptakan oleh';
+$strGeneralRelationFeat = 'Ciri-ciri dari General Relation';
+$strGenerate = 'Menghasilkan';
+$strGeneratePassword = 'Menghasilkan kata sandi';
+$strGenTime = 'Waktu pembuatan';
+$strGeorgian = 'Georgia';
+$strGerman = 'Bahasa Jerman';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Hak Istimewa (Privileges) Global';
+$strGlobalValue = 'Nilai Global';
+$strGo = 'Go';
+$strGrantOption = 'Izin';
+$strGreek = 'Bahasa Yunani';
+$strGzip = 'Dikompress dengan GZip';
+
+$strHasBeenAltered = 'telah diubah.';
+$strHaveToShow = 'Sekurang-kurangnya satu kolom harus dipilih untuk ditampilkan';
+$strHebrew = 'Bahasa Yahudi';
+$strHome = 'Home';
+$strHomepageOfficial = 'Homepage resmi phpMyAdmin';
+$strHostEmpty = 'Nama Host harus diisi!';
+$strHost = 'Host';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Bahasa Hongaria';
+
+$strIcelandic = 'Islandia';
+$strId = 'ID';
+$strIdxFulltext = 'Teks penuh';
+$strIgnore = 'Abaikan';
+$strIgnoreInserts = 'Gunakan perintah INSERT dengan mengabaikan kesalahan';
+$strImportFiles = 'Impor file';
+$strIndexes = 'Indeks';
+$strIndexHasBeenDropped = 'Indeks %s telah dihapus';
+$strIndex = 'Indeks';
+$strIndexName = 'Nama indeks&nbsp;:';
+$strIndexType = 'Tipe indeks&nbsp;:';
+$strIndexWarningTable = 'Ditemukan masalah dengan indeks dalam tabel `%s`';
+$strInnoDBAutoextendIncrementDesc = ' Ukuran bertahap dari pembesaran ruang tabel otomatis bila ia mempenuh.';
+$strInnoDBAutoextendIncrement = 'Pembesaran otomatis';
+$strInnoDBBufferPoolSizeDesc = 'Ukuran Memory Buffer yang digunakan oleh InnoDB untuk meng-cache data dan indeks dari tabelnya.';
+$strInnoDBBufferPoolSize = 'Ukuran penampungan buffer';
+$strInnoDBDataFilePath = 'File data';
+$strInnoDBDataHomeDirDesc = 'Bagian lazim dari Directory Path untuk seluruh file data milik InnoDB.';
+$strInnoDBDataHomeDir = 'Home direktori data';
+$strInnoDBPages = 'halaman';
+$strInnodbStat = 'Status dari InnoDB';
+$strInsecureMySQL = 'File konfigurasi Anda ditentukan dengan pengguna Root dan tanpa adanya Kata Sandi (sama dengan Default MySQL Privileged Account). Jika MySQL-Server dijalankan dengan sedemikian, server Anda terbuka lebar untuk suatu penyerangan. Disarankan untuk memperbaiki kelemahan keamanan (security hole) ini.';
+$strInsertAsNewRow = 'Sisipkan sebagai baris baru';
+$strInsert = 'Sisipkan';
+$strInternalRelations = 'Relasi internal';
+$strInUse = 'sedang digunakan';
+$strInvalidColumnCount = 'Perhitungan kolom wajib lebih besar dari nol.';
+$strInvalidFieldAddCount = 'Anda perlu menambahkan sedikitnya satu Field.';
+$strInvalidFieldCount = 'Tabel wajib mengandung sesedikitnya satu Field.';
+$strInvalidRowNumber = '%d bukanlah nomor baris yang berlaku.';
+
+$strJapanese = 'Bahasa Jepang';
+$strJumpToDB = 'Lompat langsung ke database &quot;%s&quot;.';
+$strJustDeleteDescr = 'Pengguna yang &quot;dihapus&quot; tetap berhak untuk mengakses Server seperti biasa sampai Hak Istimewa (Privileges) di-reload.';
+$strJustDelete = 'Hapus pengguna dari dari tabel daftar pengguna.';
+
+$strKeepPass = 'Jangan ubah Kata Sandi';
+$strKeyname = 'Nama Kunci';
+$strKill = 'Tutup';
+$strKorean = 'Bahasa Korea';
+
+$strLandscape = 'Landscape';
+$strLatchedPages = 'Halaman yang dipalang';
+$strLatexCaption = 'Judul halaman';
+$strLatexContent = 'Isi dari tabel __TABLE__';
+$strLatexContinuedCaption = 'Lanjutan dari judul halaman tabel';
+$strLatexContinued = '(dilanjutkan)';
+$strLatexIncludeCaption = 'Masukkan judul halaman tabel';
+$strLatexLabel = 'Kunci nama';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktur dari tabel __TABLE__';
+$strLatvian = 'Latvia';
+$strLengthSet = 'Ukuran Panjang/Nilai*';
+$strLimitNumRows = 'Jumlah baris per halaman';
+$strLinesTerminatedBy = 'Garis diputuskan oleh';
+$strLinkNotFound = 'Link tidak ditemukan';
+$strLinksTo = 'Link ke';
+$strLithuanian = 'Bahasa Lithuania';
+$strLocalhost = 'Lokal';
+$strLocationTextfile = 'dari File';
+$strLoginInformation = 'Informasi Login';
+$strLogin = 'Login';
+$strLogout = 'Logout';
+$strLogPassword = 'Kata Sandi:';
+$strLogServer = 'Server';
+$strLogUsername = 'Nama Pengguna:';
+$strLongOperation = 'Aktifitas ini membutuhkan waktu yang lama. Tetap melanjutkan?';
+
+$strMaximumSize = 'Batas ukuran: %s%s';
+$strMbExtensionMissing = 'Ekstensi PHP mbstring tidak ditemukan dan rupanya Anda menggunakan Charset Multibyte. Tanpa ekstensi mbstring phpMyAdmin tidak sanggup untuk membagikan baris-baris dengan cara yang benar. Hal ini mampu mengakibatkan hasil yang tidak diinginkan.';
+$strMbOverloadWarning = 'Fungsi mbstring.func_overload aktif pada konfigurasi PHP Anda. Pilihan ini tidak cocok dengan phpMyAdmin dan mampu merusak sebagian data!';
+$strMIME_available_mime = 'Tipe MIME yang tersedia';
+$strMIME_available_transform = 'Transformasi yang tersedia';
+$strMIME_description = 'Deskripsi';
+$strMIME_MIMEtype = 'Tipe MIME';
+$strMIME_nodescription = 'Tidak ada deskripsi untuk transformasi ini.<br />Mohon ditanyakan kepada penulis tentang artinya %s.';
+$strMIME_transformation_note = 'Untuk tampilan daftar tentang pilihan transformasi dan transformasi jenis MIME-nya, silakan klik pada %sDeskripsi Transformasi%s';
+$strMIME_transformation_options_note = 'Mohon masukkan nilai untuk pilihan transformasi dengan menggunakan format sbb.: \'a\', 100, b,\'c\'...<br />Bila sebuah Backslash ("\") atau Single Quote ("\'") diperlukan di antara nilai tersebut, mohon gunakan tanda Backslash (contoh: \'\\\\xyz\' atau \'a\\\'b\').';
+$strMIME_transformation_options = 'Pilihan transformasi';
+$strMIME_transformation = 'Transformasi Browser';
+$strMIMETypesForTable = 'TIPE MIME UNTUK TABEL';
+$strMIME_without = 'Jenis MIME yang dicetak dalam huruf miring tidak memiliki fungsi transformasi';
+$strModifications = 'Modifikasi telah disimpan';
+$strModifyIndexTopic = 'Ubah indeks';
+$strModify = 'Ubah';
+$strMoveTableOK = 'Tabel %s telah dipindahkan ke %s.';
+$strMoveTable = 'Pindahkan tabel ke (database<b>.</b>tabel):';
+$strMoveTableSameNames = 'Memindahkan tabel ke diri-sendiri tidak bisa dilakukan!';
+$strMultilingual = 'berbagai bahasa';
+$strMyISAMDataPointerSizeDesc = 'Ukuran standar dari petunjuk (Pointer) dalam Byte untuk digunakan oleh CREATE TABLE untuk tabel jenis MyISAM bila pilihan MAX_ROWS tidak ditentukan.';
+$strMyISAMDataPointerSize = 'Ukuran petunjuk data (Data Pointer)';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Jika ukuran file sementara untuk pembuatan Indeks MyISAM Cepat lebih besar dibandingkan dengan ukuran Key Cache yang disebut disini, disarankan untuk menggunakan metode Key Cache.';
+$strMyISAMMaxExtraSortFileSize = 'Ukuran maksimal untuk file sementara pada pembuatan indeks';
+$strMyISAMMaxSortFileSizeDesc = 'Ukuran maksimal untuk file sementara yang diperbolehkan untuk digunakan oleh MySQL pada saat pembuatan ulang sebuah indeks MyISAM (sewaktu menjalankan REPAIR TABLE, ALTER TABLE, atau LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Ukuran maksimal untuk penyortiran file sementara';
+$strMyISAMRecoverOptionsDesc = 'Modus untuk restorasi secara otomatis sebuah tabel MyISAM yang telah runtuh sesuai dengan pengaturan melalui pilihan --myisam-recover pada startup server.';
+$strMyISAMRecoverOptions = 'Modus restorasi otomatis';
+$strMyISAMRepairThreadsDesc = 'Jika nilai ini lebih besar dari 1, pembuatan indeks MyISAM akan dijalankan dalam modus paralel (setiap indeks memiliki proses tersendiri) selama perbaikan dijalankan oleh proses penyortiran.';
+$strMyISAMRepairThreads = 'Perbaiki proses';
+$strMyISAMSortBufferSizeDesc = 'Buffer yang dialokasikan bila menyortir indeks MyISAM pada saat REPAIR TABLE atau pada saat membuat indeks dengan cara CREATE INDEX atau cara ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Urutkan ukuran Buffer';
+$strMySQLCharset = 'Charset MySQL';
+$strMySQLConnectionCollation = 'Penyortiran koneksi MySQL';
+$strMySQLSaid = 'MySQL menyatakan: ';
+$strMySQLShowProcess = 'Tampilkan Proses';
+
+$strName = 'Nama';
+$strNext = 'Berikutnya';
+$strNoActivity = 'Tidak ada aktifitas selama %s detik atau lebih. Silakan login kembali';
+$strNoDatabases = 'Database tidak ditemukan';
+$strNoDatabasesSelected = 'Database belum dipilih.';
+$strNoDescription = 'tanpa keterangan';
+$strNoDetailsForEngine = 'Informasi secara rinci tentang keadaan mesin penyimpan ini tidak ditemukan.';
+$strNoDropDatabases = 'Perintah "HAPUS DATABASE" dimatikan.';
+$strNoExplain = 'Melewati keterangan SQL';
+$strNoFrames = 'Lebih mudah untuk menggunakan phpMyAdmin dengan browser yang <b>mendukung frame</b>.';
+$strNoIndex = 'Indeks belum ditentukan!';
+$strNoIndexPartsDefined = 'Bagian indeks belum diberi definisin!';
+$strNoModification = 'Tidak ada perubahan';
+$strNone = 'tanpa';
+$strNoOptions = 'Format ini tidak ada pilihannya';
+$strNoPassword = 'Kata Sandi belum ditetapkan';
+$strNoPermission = 'Webserver tidak memilik hak (permission) untuk menyimpan file %s.';
+$strNoPhp = 'Kode PHP tidak ditemukan';
+$strNoPrivileges = 'Tidak ada Hak Akses (privilege)';
+$strNoRights = 'Hak Akses Anda untuk melanjut tidak cukup!';
+$strNoRowsSelected = 'Tidak ada baris yang dipilih';
+$strNoSpace = 'Tidak cukup ruang untuk menyimpan %s.';
+$strNoTablesFound = 'Tidak ada tabel dalam database.';
+$strNoThemeSupport = 'Tidak ada dukungan untuk desain penampilan. Mohon periksa kembali konfigurasi dan/atau desain penampilan dalam direktori %s.';
+$strNo = 'Tidak';
+$strNotNumber = 'Ini bukan angka!';
+$strNotOK = 'tidak oke';
+$strNotSet = '<b>%s</b> tabel tidak ditemukan atau tidak diset di %s';
+$strNoUsersFound = 'Pengguna tidak ditemukan.';
+$strNoValidateSQL = 'Melewati pengesahan (validation) SQL';
+$strNull = 'Kosong';
+$strNumSearchResultsInTable = '%s catatan dalam tabel <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Jumlah:</b> <i>%s</i> rekord';
+$strNumTables = 'Tabel';
+
+$strOK = 'Oke';
+$strOperations = 'Operasi';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optimasikan tabel';
+$strOr = 'Atau';
+$strOverhead = 'Kelebihan (Overhead)';
+$strOverwriteExisting = 'Timpahkan (Overwrite) file(s) yang ada';
+
+$strPageNumber = 'Halaman no.:';
+$strPagesToBeFlushed = 'Halaman yang akan di-flush';
+$strPaperSize = 'Ukuran kertas';
+$strPartialText = 'Teks yang disingkat';
+$strPasswordChanged = 'Sukses mengubah Kata Sandi untuk %s .';
+$strPasswordEmpty = 'Kata Sandi kosong!';
+$strPasswordHashing = 'Pengernaian Kata Sandi (Password Hashing)';
+$strPassword = 'Kata Sandi';
+$strPasswordNotSame = 'Kata Sandi tidak sama!';
+$strPdfDbSchema = 'Skema dari database "%s" - Halaman %s';
+$strPdfInvalidTblName = 'Tabel "%s" tidak ditemukan!';
+$strPdfNoTables = 'Tabel tidak ditemukan';
+$strPerHour = 'dalam sejam';
+$strPerMinute = 'per menit';
+$strPerSecond = 'per detik';
+$strPersian = 'Persia';
+$strPhoneBook = 'buku telpon';
+$strPhp = 'Ciptakan kode PHP';
+$strPHPVersion = 'Versi PHP';
+$strPmaDocumentation = 'Dokumentasi phpMyAdmin';
+$strPmaUriError = 'Directif <tt>$cfg[\'PmaAbsoluteUri\']</tt> WAJIB diset dalam file konfigurasi!';
+$strPolish = 'Polandia';
+$strPortrait = 'Gambaran';
+$strPos1 = 'Awal';
+$strPrevious = 'Sebelumnya';
+$strPrimaryKeyHasBeenDropped = 'Kunci utama telah dihapus';
+$strPrimaryKeyName = 'Nama Kunci utama diwajibkan... PRIMARY!';
+$strPrimaryKeyWarning = '(Tanda nama "PRIMARY" <b>wajib</b> sebagai satu-satunya nama dan <b>hanya</b> sebagai Kunci utama saja!)';
+$strPrimary = 'Kunci Utama';
+$strPrint = 'Cetak';
+$strPrintViewFull = 'Pandangan cetak (dengan teks lengkap)';
+$strPrintView = 'Pandangan cetak';
+$strPrivDescAllPrivileges = 'Menggunakan seluruh Hak Istimewa (Privileges) selain GRANT.';
+$strPrivDescAlter = 'Mengizinkan untuk merubah struktur dari tabel yang ada.';
+$strPrivDescAlterRoutine = 'Mengizinkan perubahan dan penghapusan dari Routines yang tersimpan.';
+$strPrivDescCreateDb = 'Mengizinkan untuk menciptakan database dan tabel baru.';
+$strPrivDescCreateRoutine = 'Mengizinkan penciptaan Routines yang akan disimpan.';
+$strPrivDescCreateTbl = 'Mengizinkan untuk menciptakan tabel baru.';
+$strPrivDescCreateTmpTable = 'Mengizinkan untuk menciptakan tabel yang bersifat temporer.';
+$strPrivDescCreateUser = 'Mengizinkan penciptaan, penghapusan dan perubahan account pengguna.';
+$strPrivDescCreateView = 'Mengizinkan untuk menciptakan pandangan baru.';
+$strPrivDescDelete = 'Mengizinkan untuk hapus data.';
+$strPrivDescDropDb = 'Mengizinkan untuk hapus database dan tabel.';
+$strPrivDescDropTbl = 'Mengizinkan untuk hapus tabel.';
+$strPrivDescExecute5 = 'Mengizinkan eksekusi Routines yang tersimpan.';
+$strPrivDescExecute = 'Mengizinkan untuk berjalan dengan prosedur yang tersimpan; tidak ada efek dalam versi MySQL ini.';
+$strPrivDescFile = 'Mengizinkan untuk impor data dari file dan ekspor data kedalam file.';
+$strPrivDescGrant = 'Mengizinkan untuk menambah pengguna dan Hak Istimewa (Privileges) tanpa harus me-reload ulang tabel Hak Istimewa.';
+$strPrivDescIndex = 'Mengizinkan untuk menciptakan dan hapus Indeks.';
+$strPrivDescInsert = 'Mengizinkan untuk tambah dan ganti data.';
+$strPrivDescLockTables = 'Mengizinkan untuk mengunci tabel dalam Thread yang lagi berjalan.';
+$strPrivDescMaxConnections = 'Membatasi jumlah koneksi baru yang diperbolehkan untuk setiap pengguna dalam batas waktu satu jam.';
+$strPrivDescMaxQuestions = 'Membatasi jumlah pencarian (Queries) yang diperbolehkan untuk setiap pengguna dalam batas waktu satu jam.';
+$strPrivDescMaxUpdates = 'Membatasi jumlah perintah untuk merubah sebuah tabel atau database untuk setiap pengguna dalam batas waktu satu jam.';
+$strPrivDescReferences = 'Tidak ada efek dalam versi MySQL yang digunakan.';
+$strPrivDescReload = 'Mengizinkan untuk reload stelan dari server dan untuk flush cache dari server.';
+$strPrivDescReplClient = 'Memberi hak kepada pengguna untuk menanyakan lokasi dari slaves / masters.';
+$strPrivDescReplSlave = 'Digunakan untuk replikasi dari slaves.';
+$strPrivDescSelect = 'Mengizinkan untuk baca data.';
+$strPrivDescShowDb = 'Memberi akses ke seluruh daftar database.';
+$strPrivDescShowView = 'Mengizinkan pencarian dengan cara SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Mengizinkan untuk shut-down server.';
+$strPrivDescSuper = 'Mengizinkan untuk tetap konek meskipun jumlah batas koneksi telah tercapai; diperlukan untuk hampir semua operasi administratif seperti stelan variabel global atau untuk mematikan sebuah Thread yang dimiliki oleh pengguna lain.';
+$strPrivDescUpdate = 'Mengizinkan untuk ubah data.';
+$strPrivDescUsage = 'Tanpa Hak Istimewa (Privileges).';
+$strPrivileges = 'Hak Akses';
+$strPrivilegesReloaded = 'Sukses reload Hak Istimewa (Privileges).';
+$strProcesses = 'Proses Aktif';
+$strProcesslist = 'Daftar proses';
+$strPutColNames = 'Letakkan nama Fields pada baris pertama';
+
+$strQBE = 'Cari berdasarkan data contoh';
+$strQBEDel = 'Hapus';
+$strQBEIns = 'Sisipkan';
+$strQueryFrame = 'Jendela Pencarian';
+$strQueryOnDb = 'Pencarian SQL dalam database <b>%s</b>:';
+$strQuerySQLHistory = 'Sejarah SQL';
+$strQueryStatistics = '<b>Informasi statistik</b>: Sejak dihidupkan, %s pencarian telah dikirim kepada server.';
+$strQueryTime = 'pencarian membutuhkan waktu %01.4f detik';
+$strQueryType = 'Tipe Pencarian';
+$strQueryWindowLock = 'Jangan timpahkan pencarian ini dari jendela luar';
+
+$strReadRequests = 'Permintaan pembacaan';
+$strReceived = 'Penerimaan';
+$strRecords = 'Catatan';
+$strReferentialIntegrity = 'Cek integriti referensial:';
+$strRefresh = 'Menyegarkan';
+$strRelationalSchema = 'Skema Relational';
+$strRelationNotWorking = 'Fasilitas penambahan untuk bekerja dengan tabel yang di-link di nonaktifkan. Untuk mengetahui sebabnya silakan klik %sdisini%s.';
+$strRelationsForTable = 'RELASI UNTUK TABEL';
+$strRelations = 'Tabel Relasi';
+$strRelationView = 'Tampilan relasi';
+$strReloadingThePrivileges = 'Reload Hak Istimewa (Privileges)';
+$strRemoveSelectedUsers = 'Hapus pengguna yang dipilih';
+$strRenameDatabaseOK = 'Nama database %s telah diubah menjadi %s';
+$strRenameTableOK = 'Nama tabel %s telah diubah menjadi %s';
+$strRenameTable = 'Ubah nama tabel menjadi ';
+$strRepairTable = 'Perbaiki tabel';
+$strReplaceNULLBy = 'Menggantikan NULL dengan';
+$strReplaceTable = 'Ganti data tabel dengan file';
+$strReset = 'Reset';
+$strResourceLimits = 'Batas dari sumber';
+$strReType = 'Ketik ulang';
+$strRevokeAndDelete = 'Cabut seluruh Hak Istimewa (Privileges) dari pengguna, lantas hapus pengguna tsb. dari daftar tabel pengguna.';
+$strRevokeAndDeleteDescr = 'Pengguna yang bersangkutan tetap memiliki hak untuk USAGE sampai seluruh Hak Istimewa (Privileges) di-reload kembali.';
+$strRevoke = 'Cabut';
+$strRevokeMessage = 'Hak akses untuk %s telah dicabut';
+$strRomanian = 'Romania';
+$strRowLength = 'Panjangnya baris';
+$strRows = 'Baris';
+$strRowsFrom = 'baris dimulai dari rekord #';
+$strRowSize = ' Besarnya baris ';
+$strRowsModeFlippedHorizontal = 'horisontal (rotated headers)';
+$strRowsModeHorizontal = 'horisontal';
+$strRowsModeOptions = 'diatur dengan urutan %s dan mengulang header setelah %s sel.';
+$strRowsModeVertical = 'vertikal';
+$strRowsStatistic = 'Statistik Baris';
+$strRunning = 'dijalankan pada %s';
+$strRunQuery = 'Jalankan pencarian SQL';
+$strRunSQLQuery = 'Melaksanakan perintah SQL pada database %s';
+$strRussian = 'Bahasa Rusia';
+
+$strSaveOnServer = 'Simpan pada server dalam direktori %s';
+$strSave = 'Simpan';
+$strScaleFactorSmall = 'Faktor skala yang dipilih terlalu kecil untuk dimuat dalam skema satu halaman';
+$strSearch = 'Cari';
+$strSearchFormTitle = 'Cari dalam database';
+$strSearchInTables = 'Cari dalam tabel:';
+$strSearchNeedle = 'Kata atau nilai untuk dicari (wildcard: "%"):';
+$strSearchOption1 = 'sekurang-kurangnya salah satu kata';
+$strSearchOption2 = 'seluruh kata';
+$strSearchOption3 = 'kata-kata tepat';
+$strSearchOption4 = 'sebagai regular expression';
+$strSearchResultsFor = 'Hasil pencarian untuk "<i>%s</i>" %s:';
+$strSearchType = 'Cari:';
+$strSecretRequired = 'File konfigurasi membutuhkan susunan kata-kata rahasia (blowfish_secret).';
+$strSelectADb = 'Silakan pilih database';
+$strSelectAll = 'Pilih semua';
+$strSelectBinaryLog = 'Pilih Log binari untuk ditinjau';
+$strSelectFields = 'Pilihan field (min. satu):';
+$strSelectNumRows = 'dalam susunan pemeriksaan';
+$strSelectTables = 'Pilih tabel';
+$strSend = 'Kirimkan ke';
+$strSent = 'Pengiriman';
+$strServerChoice = 'Pilihan Server';
+$strServerNotResponding = 'Server tidak menjawab';
+$strServer = 'Server';
+$strServerStatus = 'Informasi Runtime';
+$strServerStatusUptime = 'MySQL server ini telah berjalan secara berturut-turut selama %s. Server dijalankan pada tanggal %s.';
+$strServerTabVariables = 'Variabel';
+$strServerTrafficNotes = '<b>Server traffic</b>: Tabel ini menampilkan statistik jaringan lalu-lintas server MySQL sejak dihidupkan.';
+$strServerVars = 'Variabel dan penyetelan server';
+$strServerVersion = 'Versi Server';
+$strSessionValue = 'Nilai dari Session';
+$strSetEnumVal = 'Jika tipe field sama dengan "enum" atau "set", silakan masukkan nilai dengan format: \'a\',\'b\',\'c\'...<br />Jika sebuah backslash ("\") atau suatu tanda kutip ("\'") diperlukan, tanda tersebut perlu ditutupi dengan tanda backslash (seb. contoh \'\\\\xyz\' atau \'a\\\'b\').';
+$strShowAll = 'Tampilkan semua';
+$strShowColor = 'Tampilkan warna';
+$strShowDatadictAs = 'Format dari kamus data';
+$strShowFullQueries = 'Tampilkan pencarian yang lengkap';
+$strShowGrid = 'Tampilkan garis';
+$strShowingRecords = 'Tampilan baris';
+$strShowPHPInfo = 'Tampilkan informasi PHP';
+$strShowTableDimension = 'Tampilkan ukuran dari tabel';
+$strShowTables = 'Tampilkan tabel';
+$strShow = 'Tampilkan';
+$strShowThisQuery = ' Tampilkan ulang perintah SQL ';
+$strSimplifiedChinese = 'Bahasa Cina sederhana';
+$strSingly = '(unik)';
+$strSize = 'Ukuran';
+$strSlovak = 'Slovakia';
+$strSlovenian = 'Slovenia';
+$strSocketProblem = '(atau konfigurasi socket dari server MySQL tidak benar)';
+$strSortByKey = 'Urut berdasarkan kunci';
+$strSort = 'Urutkan';
+$strSpaceUsage = 'Penggunaan tempat';
+$strSpanish = 'Bahasa Spanyol';
+$strSplitWordsWithSpace = 'Kata dipisahkan oleh karakter spasi (" ").';
+$strSQLExportType = 'Jenis Ekspor';
+$strSQLParserBugMessage = 'Mungkin Anda telah temukan sebuah Bug dalam parser SQL. Mohon periksa ulang pencarian SQL dengan teliti dan perhatikan apakah seluruh tanda kutip benar dan seimbang. Penyebab kegagalan bisa terjadi bila Anda meng-upload sebuah file binari diluar teks kutipan. Silakan menjalankan ulang pencarian tersebut dengan menggunakan command line interface. Hasil dari MySQL server error, jika tertampil, akan menolong Anda untuk mengetahui penyebab dari masalah ini. Bila masalah ini tetap muncul atau Parser dari kami masih juga gagal meskipun pencarian melalui command line interface berhasil mohon kurangi input pada SQL query sampai pencarian yang menyebabkan masalah ini ditemukan. Mohon kirimkan sebuah Bug Report dengan cara menyisipkan data di bagian bawah ini kepada kami:';
+$strSQLParserUserError = 'Rupanya ada Error pada Query SQL. Hasil dari MySQL server error dibawa ini, jika tertampil, akan menolong Anda untuk mengetahui penyebab dari problem tersebut.';
+$strSQLQuery = 'Pencarian SQL';
+$strSQLResult = 'Hasil SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identifer tidak valid';
+$strSQPBugUnclosedQuote = 'Tanda kutip tidak ditutup';
+$strSQPBugUnknownPunctuation = 'Punctation String tidak dikenali';
+$strStatCheckTime = 'Pemeriksaan terakhir';
+$strStatCreateTime = 'Pembuatan';
+$strStatement = 'Keterangan';
+$strStatUpdateTime = 'Update terakhir';
+$strStatus = 'Status';
+$strStorageEngine = 'Mesin Penyimpan';
+$strStorageEngines = 'Mesin Penyimpan';
+$strStrucCSV = 'Data CSV';
+$strStrucData = 'Struktur dan data';
+$strStrucExcelCSV = 'CSV untuk data MS Excel';
+$strStrucNativeExcel = 'Data asli MS Excel';
+$strStrucOnly = 'Struktur saja';
+$strStructPropose = 'Menganalisa struktur tabel';
+$strStructure = 'Struktur';
+$strSubmit = 'Kirim';
+$strSuccess = 'Sukses menjalankan perintah SQL';
+$strSum = 'Jumlah';
+$strSwedish = 'Bahasa Swedia';
+$strSwitchToDatabase = 'Pindah ke database yang disalin';
+$strSwitchToTable = 'Pindah ke tabel salinan';
+
+$strTableComments = 'Komentar tabel';
+$strTableEmpty = 'Nama tabel kosong!';
+$strTableHasBeenDropped = 'Tabel %s telah dihapus';
+$strTableHasBeenEmptied = 'Tabel %s telah dikosongkan';
+$strTableHasBeenFlushed = 'Tabel %s telah dibuang';
+$strTableMaintenance = 'Pemeliharaan tabel';
+$strTableOfContents = 'Daftar Isi';
+$strTableOptions = 'Pilihan untuk tabel';
+$strTables = 'tabel %s';
+$strTableStructure = 'Struktur dari tabel';
+$strTable = 'Tabel';
+$strTakeIt = 'ambil';
+$strTblPrivileges = 'Hak (privileges) khusus terhadap tabel';
+$strTextAreaLength = ' Disebabkan ukuran panjangnya,<br /> field ini tidak dapat di-edit ulang. ';
+$strThai = 'Bahasa Thailand';
+$strTheme = 'Desain Penampilan';
+$strThisHost = 'Host yang ini';
+$strThreadSuccessfullyKilled = 'Sukses hentikan Thread %s.';
+$strTime = 'Jangka Waktu';
+$strToggleScratchboard = 'pindah buku catatan (Scratchboard)';
+$strTotal = 'jumlah';
+$strTotalUC = 'Jumlah';
+$strTraditionalChinese = 'Bahasa Cina tradisional';
+$strTraditionalSpanish = 'Spanyol tradisional';
+$strTraffic = 'Lalu-Lintas';
+$strTransformation_application_octetstream__download = 'Tampilkan Link untuk men-download data binari dari Field. Pilihan pertama adalah nama dari file binari tersebut. Pilihan kedua adalah nama Field dari sebuah baris tabel yang memiliki nama file. Bila Anda menetapkan pilihan kedua, pilihan pertama harus ditepatkan ke sebuah string yang kosong';
+$strTransformation_application_octetstream__hex = 'Menampilkan representasi data heksadesimal. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Tampilkan Thumbnail yang bisa diklik; pilihan: lebar, tinggi dalam piksel (rasio asli dipertahankan)';
+$strTransformation_image_jpeg__link = 'Tampilkan link ke gambar ini (direct blob download, i.e.).';
+$strTransformation_image_png__inline = 'Lihat image/jpeg: inline';
+$strTransformation_text_plain__external = 'HANYA UNTUK LINUX: Luncurkan aplikasi eksternal dan mengisi data Field dengan cara standar. Menghasilkan output standar dari aplikasi yang bersangkutan. Default-nya adalah Tidy untuk mempercantik kode HTML cetakan. Dengan alasan pengamanan sistem, Anda perlu meng-edit file libraries/transformations/text_plain__external.inc.php dan menambahkan Tools yang akan diizinkan secara manual. Pilihan pertama adalah jumlah dari program yang ingin digunakan dan pilihan kedua adalah parameter untuk program-program tersebut. Parameter ketiga, bila diset ke 1 akan mengubah output dengan menggunakan htmlspecialchars() (Default adalah 1). Parameter keempat, bila diset ke 1 akan menambahkan sebuah NOWRAP pada Content Cell dengan hasil output yang akan ditampilkan tanpa keperluan untuk me-format ulang (Default 1)';
+$strTransformation_text_plain__formatted = 'Menyimpan format asli dari field. Escaping tidak dilakukan.';
+$strTransformation_text_plain__imagelink = 'Tampilkan sebuah gambar dan sebuah Link, nama file berada dalam field; pilihan utama adalah awalan seperti "http://domain.com/", pilihan kedua adalah lebar dalam piksel, pilihan ketiga adalah tingginya.';
+$strTransformation_text_plain__link = 'Tampilkan sebuah Link, nama file berada dalam field; pilihan utama adalah awalan seperti "http://domain.com/", pilihan kedua adalah judul untuk Link tersebut.';
+$strTransformation_text_plain__substr = 'Hanya menampilkan sebagian dari sebuah String. Pilihan pertama adalah sebuah Offset untuk menentukan tempat dari permulaan teks Anda (Default 0). Pilihan kedua adalah sebuah Offset untuk menentukan jumlah teks yang akan dikembalikan. Bila ditinggal kosong, seluruh teks yang tersisa akan dibalikkan. Pilihan ketiga mendefinisikan Chars yang akan ditambahkan pada Output bila sebuah Substring dibalikkan (Default: ...) .';
+$strTruncateQueries = 'Potongkan pencarian yang ditampilkan';
+$strTurkish = 'Bahasa Turki';
+$strType = 'Jenis';
+
+$strUkrainian = 'Bahasa Ukrainia';
+$strUncheckAll = 'Balik pilihan';
+$strUnicode = 'Unikode';
+$strUnique = 'Unik';
+$strUnknown = 'tidak diketahui';
+$strUnselectAll = 'Unselect semua';
+$strUpdatePrivMessage = 'Hak Akses (privilege) untuk %s telah di-update.';
+$strUpdateProfileMessage = 'Profil pengguna telah di-update.';
+$strUpdateQuery = 'Update proses pencarian';
+$strUpdComTab = 'Mohon belajari dokumentasi untuk mengetahui cara meng-update tabel Column_comments Anda';
+$strUpgrade = 'Disarankan untuk meng-update ke %s versi %s atau lebih baru.';
+$strUsage = 'Penggunaan';
+$strUseBackquotes = 'Nama tabel dan nama field dalam tanda kutip biasa';
+$strUseHostTable = 'Gunakan Host Table';
+$strUserAlreadyExists = 'Pengguna %s telah terdaftar!';
+$strUserEmpty = 'Nama pengguna masih kosong!';
+$strUserName = 'Nama pengguna';
+$strUserNotFound = 'Pengguna yang dipilih tidak ditemukan pada tabel hak (privilege table).';
+$strUserOverview = 'Pandangan Umum Pengguna';
+$strUser = 'Pengguna';
+$strUsersDeleted = 'Sukses menghapus Pengguna yang dipilih.';
+$strUsersHavingAccessToDb = 'Pengguna memiliki akses ke &quot;%s&quot;';
+$strUseTabKey = 'Gunakan tombol TAB untuk maju dari angka ke angka atau gunakan CTRL+panah untuk maju kemana saja';
+$strUseTables = 'Gunakan tabel';
+$strUseTextField = 'Gunakan text field';
+$strUseThisValue = 'gunakan nilai ini';
+
+$strValidateSQL = 'Mengesahkan (validate) SQL';
+$strValidatorError = 'Pengesahan SQL tidak dapat disahkan. Mohon periksa kembali ekstension PHP yang diperlukan seperti yang tercatat dalam %sdokumentasi%s.';
+$strValue = 'Nilai';
+$strVar = 'Variabel';
+$strVersionInformation = 'Informasi tentang versi';
+$strViewDumpDatabases = 'Tampilkan Dump (skema) dari database';
+$strViewDumpDB = 'Tampilkan Dump (Skema) dari database';
+$strViewDump = 'Tampilkan Dump (Skema) dari tabel';
+$strView = 'Gambarkan';
+$strViewHasBeenDropped = 'Pandangan %s telah dibubarkan';
+
+$strWebServerUploadDirectory = 'direktori upload pada web-server';
+$strWebServerUploadDirectoryError = 'Direktori yang telah ditetapkan untuk meng-upload tidak dapat dihubungi';
+$strWelcome = 'Selamat Datang di %s';
+$strWestEuropean = 'Eropa Barat';
+$strWildcard = 'wildcard';
+$strWindowNotFound = 'Mengupdate jendela browser gagal. Ada kemungkinan Anda telah menutup jendela induknya atau pilihan keamanan pada browser Anda melarang untuk mengupdate dengan cara Cross-Window';
+$strWithChecked = 'yang ditandai:';
+$strWriteRequests = 'Permintaan penulisan';
+$strWrongUser = 'Nama Pengguna/Kata Sandi salah. Akses ditolak.';
+
+$strXML = 'XML';
+
+$strYes = 'Ya';
+
+$strZeroRemovesTheLimit = 'Perhatian: Perubahan pilihan ini ke posisi 0 (zero) akan menghapus batas yang telah ditentukan.';
+$strZip = 'Dikompress dengan Zip';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+
+$strHandler = 'Handler'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+
+$strPartialImport = 'Partial import'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/italian-utf-8.inc.php b/lang/italian-utf-8.inc.php
new file mode 100644
index 0000000000..427ee99ce6
--- /dev/null
+++ b/lang/italian-utf-8.inc.php
@@ -0,0 +1,1451 @@
+<?php
+/* $Id$ */
+
+/**
+ * translated by: Pietro Danesi <danone at users.sourceforge.net> 2002-03-29
+ * Revised by: "DPhantom" <dphantom at users.sourceforge.net> 2002-04-16
+ * Revised by: "Luca Rebellato" <rebeluca at users.sourceforge.net> 2008-10-21
+ */
+
+$charset = 'utf-8';
+$allow_recoding = TRUE;
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$day_of_week = array('Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'); //italian days
+$month = array('gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'); //italian months
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B, %Y at %I:%M %p'; //italian time
+$timespanfmt = '%s giorni, %s ore, %s minuti e %s secondi';
+
+$strAbortedClients = 'Fallito';
+$strAccessDenied = 'Accesso negato';
+$strAccessDeniedCreateConfig = 'La ragione di questo è che probabilmente non hai creato alcun file di configurazione. Potresti voler usare %1$ssetup script%2$s per crearne uno.';
+$strAccessDeniedExplanation = 'phpMyAdmin ha provato a connettersi al server MySQL, e il server ha rifiutato la connessione. Si dovrebbe controllare il nome dell\'host, l\'username e la password nel file config.inc.php ed assicurarsi che corrispondano alle informazioni fornite dall\'amministratore del server MySQL.';
+$strAction = 'Azione';
+$strActions = 'Azioni';
+$strAddAutoIncrement = 'Aggiungi valore AUTO_INCREMENT';
+$strAddClause = 'Aggiungi %s';
+$strAddConstraints = 'Aggiungi vincoli';
+$strAddDeleteColumn = 'Aggiungi/Cancella campo';
+$strAddDeleteRow = 'Aggiungi/Cancella criterio';
+$strAddFields = 'Aggiungi %s campo(i)';
+$strAddHeaderComment = 'Aggiunge un commento personalizzato all\'header (\\n per tornare a capo)';
+$strAddIntoComments = 'Aggiungi nei commenti';
+$strAddNewField = 'Aggiungi un nuovo campo';
+$strAddPrivilegesOnDb = 'Aggiungi privilegi sul seguente database';
+$strAddPrivilegesOnTbl = 'Aggiungi privilegi sulla seguente tabella';
+$strAddSearchConditions = 'Aggiungi condizioni di ricerca (corpo della clausola "where"):';
+$strAddToIndex = 'Aggiungi all\'indice %s colonna/e';
+$strAddUser = 'Aggiungi un nuovo utente';
+$strAddUserMessage = 'Hai aggiunto un nuovo utente.';
+$strAdministration = 'Amministrazione';
+$strAfter = 'Dopo %s';
+$strAfterInsertBack = 'Indietro';
+$strAfterInsertNewInsert = 'Inserisci un nuovo record';
+$strAfterInsertNext = 'Modifica il record successivo';
+$strAfterInsertSame = 'Torna a questa pagina';
+$strAllowInterrupt = 'di interrompere il processo di importazione nel caso lo script rilevi di essere troppo vicino al tempo limite. Questo potrebbe essere un buon modo di importare grandi file, tuttavia potrebbe interrompere la transazione.';
+$strAllTableSameWidth = 'mostra tutte le Tabelle con la stessa larghezza?';
+$strAll = 'Tutti';
+$strAlterOrderBy = 'Altera tabella ordinata per';
+$strAnalyze = 'Analizza';
+$strAnalyzeTable = 'Analizza tabella';
+$strAnd = 'e';
+$strAndThen = 'e quindi';
+$strAngularLinks = 'Link angolari';
+$strAnIndex = 'Un indice è stato aggiunto in %s';
+$strAnyHost = 'Qualsiasi host';
+$strAny = 'Qualsiasi';
+$strAnyUser = 'Qualsiasi utente';
+$strApproximateCount = 'Può essere approssimato. Vedere FAQ 3.11';
+$strAPrimaryKey = 'Una chiave primaria è stata aggiunta in %s';
+$strArabic = 'Arabo';
+$strArmenian = 'Armeno';
+$strAscending = 'Crescente';
+$strAsDefined = 'Come definito:';
+$strAtBeginningOfTable = 'All\'inizio della tabella';
+$strAtEndOfTable = 'Alla fine della tabella';
+$strAttr = 'Attributi';
+$strAutomaticLayout = 'Impaginazione automatica';
+
+$strBack = 'Indietro';
+$strBaltic = 'Baltico';
+$strBeginCut = 'INIZIO CUT';
+$strBeginRaw = 'INIZIO RAW';
+$strBinary = 'Binario';
+$strBinaryDoNotEdit = 'Tipo di dato Binario - non modificare';
+$strBinaryLog = 'Log binario';
+$strBinLogEventType = 'Tipo di evento';
+$strBinLogInfo = 'Informazioni';
+$strBinLogName = 'Nome del Log';
+$strBinLogOriginalPosition = 'Posizione originale';
+$strBinLogPosition = 'Posizione';
+$strBinLogServerId = 'ID del server';
+$strBLOBRepositoryDamaged = 'Danneggiato';
+$strBLOBRepositoryDisabled = 'Disabilitato';
+$strBLOBRepositoryDisable = 'Disabilita';
+$strBLOBRepositoryEnable = 'Abilita';
+$strBLOBRepositoryEnabled = 'Abilitato';
+$strBLOBRepositoryRepair = 'Ripara';
+$strBLOBRepositoryStatus = 'Stato';
+$strBookmarkAllUsers = 'Permetti ad ogni utente di accedere a questo bookmark';
+$strBookmarkCreated = 'Segnalibro %s creato';
+$strBookmarkDeleted = 'Il bookmark è stato cancellato.';
+$strBookmarkLabel = 'Etichetta';
+$strBookmarkQuery = 'Query SQL aggiunte ai preferiti';
+$strBookmarkReplace = 'Sostituzione dei segnalibri esistenti con lo stesso nome';
+$strBookmarkThis = 'Aggiungi ai preferiti questa query SQL';
+$strBookmarkView = 'Visualizza solo';
+$strBrowseDistinctValues = 'Naviga tra i valori DISTINCT';
+$strBrowseForeignValues = 'Sfoglia le opzioni straniere';
+$strBrowse = 'Mostra';
+$strBufferPoolActivity = 'Attività del Buffer Pool';
+$strBufferPool = 'Buffer Pool';
+$strBufferPoolUsage = 'Utilizzo del Buffer Pool';
+$strBufferReadMissesInPercent = 'Non letto in %';
+$strBufferReadMisses = 'Non letto';
+$strBufferWriteWaits = 'In attesa di scrittura';
+$strBufferWriteWaitsInPercent = 'In attesa di scrittura in %';
+$strBulgarian = 'Bulgaro';
+$strBusyPages = 'Pagine occupate';
+$strBzip = '"compresso con bzip2"';
+
+$strCalendar = 'Calendario';
+$strCancel = 'Annulla';
+$strCanNotLoadExportPlugins = 'Non posso caricare i plugins di esportazione. Controlla l\'installazione!';
+$strCanNotLoadImportPlugins = 'Non posso caricare i plugins di importazione, controlla la tua configurazione!';
+$strCannotLogin = 'Impossibile eseguire il login nel server MySQL';
+$strCantLoad = 'Impossibile caricare l\'estensione %s,<br />prego controllare la configurazione di PHP';
+$strCantLoadRecodeIconv = 'Impossibile caricare l\'estensione iconv o recode necessaria per la conversione del set di caratteri, configurare il PHP per permettere di utilizzare queste estenzioni o disabilitare la conversione dei set di caratteri in phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Impossibile rinominare l\'indice a PRIMARIO!';
+$strCantUseRecodeIconv = 'Impossibile utilizzare le funzioni iconv o libiconv o recode_string in quanto l\'estensione deve essere caricata. Controllare la configurazione del PHP.';
+$strCardinality = 'Cardinalità';
+$strCaseInsensitive = 'case-insensitive';
+$strCaseSensitive = 'case-sensitive';
+$strCentralEuropean = 'Europeo Centrale';
+$strChangeCopyModeCopy = '... mantieni quello vecchio.';
+$strChangeCopyMode = 'Crea un nuovo utente con gli stessi privilegi e ...';
+$strChangeCopyModeDeleteAndReload = ' ... cancella quello vecchio dalla tabella degli utenti e in seguito ricarica i privilegi.';
+$strChangeCopyModeJustDelete = ' ... cancella quello vecchio dalla tabella degli utenti.';
+$strChangeCopyModeRevoke = ' ... revoca tutti i privilegi attivi da quello vecchio e in seguito cancellalo.';
+$strChangeCopyUser = 'Cambia le Informazioni di Login / Copia Utente';
+$strChangeDisplay = 'Scegli il campo da mostrare';
+$strChange = 'Modifica';
+$strChangePassword = 'Cambia password';
+$strCharsetOfFile = 'Set di caratteri del file:';
+$strCharsetsAndCollations = 'Set di Caratteri e Collation';
+$strCharset = 'Set di caratteri';
+$strCharsets = 'Set di caratteri';
+$strCheckAll = 'Seleziona tutti';
+$strCheck = 'Controlla';
+$strCheckOverhead = 'Controllo addizionale';
+$strCheckPrivs = 'Controlla i privilegi';
+$strCheckPrivsLong = 'Controlla i privilegi per il database "%s".';
+$strCheckTable = 'Controlla tabella';
+$strChoosePage = 'Prego scegliere una Page da modificare';
+$strColComFeat = 'Visualizzazione commenti delle colonne';
+$strCollation = 'Collation';
+$strColumnNames = 'Nomi delle colonne';
+$strColumnPrivileges = 'Privilegi relativi alle colonne';
+$strCommand = 'Comando';
+$strComment = 'Commenti';
+$strComments = 'Commenti';
+$strCompatibleHashing = 'Compatibile con MySQL 4.0';
+$strCompleteInserts = 'Inserimenti completi';
+$strCompression = 'Compressione';
+$strCompressionWillBeDetected = 'Il tipo di compressione del file importato sarà automaticamente rilevato da: %s';
+$strConfigDefaultFileError = 'Non posso leggere la configurazione da: "%1$s"';
+$strConfigFileError = 'phpMyAdmin non riesce a leggere il file di configurazione!<br />Questo può accadere se il php trova un parse error in esso oppure il php non trova il file.<br />Richiamate il file di configurazione direttamente utilizzando il link sotto e leggete il/i messaggio/i di errore del php che ricevete. Nella maggior parte dei casi ci sono un apostrofo o una virgoletta mancanti.<br />Se ricevete una pagina bianca, allora è tutto a posto.';
+$strConfigureTableCoord = 'Prego, configurare le coordinate per la tabella %s';
+$strConnectionError = 'Impossibile connettersi: impostazioni non valide.';
+$strConnections = 'Connessioni';
+$strConstraintsForDumped = 'Limiti per le tabelle scaricate';
+$strConstraintsForTable = 'Limiti per la tabella';
+$strControluserFailed = 'Connessione per controluser come definito nella configurazione fallita.';
+$strCookiesRequired = 'Da questo punto in poi, i cookie devono essere abilitati.';
+$strCopy = 'Copia';
+$strCopyDatabaseOK = 'Il Database %s è stato copiato in %s';
+$strCopyTable = 'Copia la tabella nel (database<b>.</b>tabella):';
+$strCopyTableOK = 'La tabella %s è stata copiata su %s.';
+$strCopyTableSameNames = 'Impossibile copiare la tabella su se stessa!';
+$strCouldNotKill = 'phpMyAdmin non è in grado di terminare il thread %s. Probabilmente è già stato terminato.';
+$strCreate = 'Crea';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE prima di copiare';
+$strCreateIndex = 'Crea un indice su %s columns';
+$strCreateIndexTopic = 'Crea un nuovo indice';
+$strCreateNewDatabase = 'Crea un nuovo database';
+$strCreateNewTable = 'Crea una nuova tabella nel database %s';
+$strCreatePage = 'Crea una nuova pagina';
+$strCreatePdfFeat = 'Creazione di PDF';
+$strCreateRelation = 'Crea relazioni';
+$strCreateTable = 'Crea tabelle';
+$strCreateUserDatabase = 'Database per l\'utente';
+$strCreateUserDatabaseName = 'Crea un database con lo stesso nome e concedi tutti i privilegi';
+$strCreateUserDatabaseNone = 'None';
+$strCreateUserDatabaseWildcard = 'Concedi tutti i privilegi al nome con caratteri jolly (username\_%)';
+$strCreationDates = 'Creazione/Aggiornamento/Controllo date';
+$strCriteria = 'Criterio';
+$strCroatian = 'Croato';
+$strCSV = 'CSV';
+$strCustomColor = 'Colore definito dall\'utente';
+$strCyrillic = 'Cirillico';
+$strCzech = 'Ceco';
+$strCzechSlovak = 'Ceco-Slovacco';
+
+$strDanish = 'Danese';
+$strDatabase = 'Database';
+$strDatabaseEmpty = 'Il nome del DataBase è vuoto!';
+$strDatabaseExportOptions = 'Opzioni di esportazione del database';
+$strDatabaseHasBeenCreated = 'Il dtabase %1$s è stato creato.';
+$strDatabaseHasBeenDropped = 'Il Database %s è stato eliminato.';
+$strDatabases = 'Database';
+$strDatabasesDropped = '%s databases sono stati cancellati correttamente.';
+$strDatabasesStatsDisable = 'Disabilita le Statistiche';
+$strDatabasesStatsEnable = 'Abilita le Statistiche';
+$strDatabasesStatsHeavyTraffic = 'N.B.: Abilitare qui le statistiche del Database potrebbe causare del traffico intenso fra il server web e MySQL.';
+$strDatabasesStats = 'Statistiche dei databases';
+$strData = 'Dati';
+$strDataDict = 'Data Dictionary';
+$strDataOnly = 'Solo dati';
+$strDataPages = 'Pagine contenenti dati';
+$strDBComment = 'Commento al Database: ';
+$strDBCopy = 'Copia il Database in';
+$strDbIsEmpty = 'Il databse sembra essere vuoto!';
+$strDbPrivileges = 'Privilegi specifici al database';
+$strDBRename = 'Rinomina il DataBase in';
+$strDbSpecific = 'specifico del database';
+$strDefaultEngine = '%s è il motore di memorizzazione predefinito su questo server MySQL.';
+$strDefault = 'Predefinito';
+$strDefaultValueHelp = 'Per i valori predefiniti, prego inserire un singolo valore, senza backslash escaping o virgolette, utilizzando questo formato: a';
+$strDefragment = 'Deframmenta la tabella';
+$strDelayedInserts = 'Utilizza inserimenti ritardati';
+$strDeleteAndFlush = 'Cancella gli utenti e dopo ricarica i privilegi.';
+$strDeleteAndFlushDescr = 'Questa è la vita più giusta, ma il caricamento dei privilegi può durare qualche secondo.';
+$strDeleted = 'La riga è stata cancellata';
+$strDelete = 'Elimina';
+$strDeleteNoUsersSelected = 'Nessun utente selezionato per la cancellazione!';
+$strDeleteRelation = 'Elimina relazione';
+$strDeleting = 'Cancellazione in corso di %s';
+$strDelimiter = 'Delimitatori';
+$strDelOld = 'La Pagina corrente contiene Riferimenti a Tabelle che non esistono più. Volete cancellare questi Riferimenti?';
+$strDescending = 'Decrescente';
+$strDescription = 'Descrizione';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'Il campi da mostrare sono in colore rosa. Per impostare/togliere un campo come campo da mostrare, clicca l\'icona "Scegli il campo da mostrare", e poi clicca sul nome appropriato del campo.';
+$strDetails = 'Dettagli...';
+$strDictionary = 'dizionario';
+$strDirectLinks = 'Link diretti';
+$strDirtyPages = 'Pagine sporche';
+$strDisabled = 'Disabilitata';
+$strDisableForeignChecks = 'Disabilita i controlli sulle chiavi straniere';
+$strDisplayFeat = 'Mostra Caratteristiche';
+$strDisplayOrder = 'Ordine di visualizzazione:';
+$strDisplayPDF = 'Mostra lo schema del PDF';
+$strDoAQuery = 'Esegui "query da esempio" (carattere jolly: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentazione';
+$strDownloadFile = 'Scarica file';
+$strDoYouReally = 'Confermi: ';
+$strDropDatabaseStrongWarning = 'Si sta per DISTRUGGERE COMPLETAMENTE un intero DataBase!';
+$strDrop = 'Elimina';
+$strDropUsersDb = 'Elimina i databases gli stessi nomi degli utenti.';
+$strDumpingData = 'Dump dei dati per la tabella';
+$strDumpSaved = 'Il dump è stato salvato sul file %s.';
+$strDumpXRows = 'Dump di %s righe a partire dalla riga %s.';
+$strDynamic = 'dinamico';
+
+$strEdit = 'Modifica';
+$strEditPDFPages = 'Modifica pagine PDF';
+$strEditPrivileges = 'Modifica Privilegi';
+$strEffective = 'Effettivo';
+$strEmptyResultSet = 'MySQL ha restituito un insieme vuoto (i.e. zero righe).';
+$strEmpty = 'Svuota';
+$strEnabled = 'Abilitata';
+$strEncloseInTransaction = 'Includi export in una transazione';
+$strEndCut = 'FINE CUT';
+$strEnd = 'Fine';
+$strEndRaw = 'FINE RAW';
+$strEngineAvailable = '%s è disponibile su questo server MySQL.';
+$strEngineDisabled = '%s è stato disabilitato su questo server MySQL.';
+$strEngines = 'Motori';
+$strEngineUnsupported = 'Questo server MySQL non supporta il motore di memorizzazione %s.';
+$strEnglish = 'Inglese';
+$strEnglishPrivileges = 'Nota: i nomi dei privilegi di MySQL sono in Inglese';
+$strError = 'Errore';
+$strErrorInZipFile = 'Errore nell\'archivio ZIP:';
+$strErrorRelationAdded = 'Errore: relazione non aggiunta.';
+$strErrorRelationExists = 'Errore: relazione già esistente.';
+$strErrorRenamingTable = 'Errore nel rinominare la tabella %1$s in %2$s';
+$strErrorSaveTable = 'Errore nel salvare le coordinate per il Designer.';
+$strEscapeWildcards = 'I caratteri jolly _ e % dovrebbero essere preceduti da un \ per l\'utilizzo letterale';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estone';
+$strEvent = 'Eventi';
+$strEvents = 'Eventi';
+$strExcelEdition = 'Edizione Excel';
+$strExecuteBookmarked = 'Esegue la query dalle preferite';
+$strExplain = 'Spiega SQL';
+$strExport = 'Esporta';
+$strExportImportToScale = 'Importa/esporta alla dimensione';
+$strExportMustBeFile = 'Il tipo di esportazione selezionato necessita di essere salvato in un file!';
+$strExtendedInserts = 'Inserimenti estesi';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Tentativi falliti';
+$strField = 'Campo';
+$strFieldHasBeenDropped = 'Il campo %s è stato eliminato';
+$strFieldInsertFromFileTempDirNotExists = 'Errore nello spostare il file caricato, vedi FAQ 1.11';
+$strFields = 'Campi';
+$strFieldsEnclosedBy = 'Campo composto da';
+$strFieldsEscapedBy = 'Campo impedito da';
+$strFieldsTerminatedBy = 'Campo terminato da';
+$strFileAlreadyExists = 'Il file %s esiste già sul server: prego, cambiare nome del file o selezionare l\'opzione "sovrascrivi".';
+$strFileCouldNotBeRead = 'Il file non può essere letto';
+$strFileNameTemplateDescriptionDatabase = 'nome database';
+$strFileNameTemplateDescription = 'Questo valore è interpretato usando %1$sstrftime%2$s: in questo modo puoi usare stringhe di formattazione per le date/tempi. Verranno anche aggiunte le seguenti trasformazioni: %3$s. Il testo rimanente resterà invariato.';
+$strFileNameTemplateDescriptionServer = 'nome server';
+$strFileNameTemplateDescriptionTable = 'nome tabella';
+$strFileNameTemplate = 'Nome file template';
+$strFileNameTemplateRemember = 'ricorda il template';
+$strFiles = 'File';
+$strFileToImport = 'File importato';
+$strFixed = 'fisso';
+$strFlushPrivilegesNote = 'N.B.: phpMyAdmin legge i privilegi degli utenti direttamente nella tabella dei privilegi di MySQL. Il contenuto di questa tabella può differire dai privilegi usati dal server se sono stati fatti cambiamenti manuali. In questo caso, Si dovrebbero %srinfrescare i privilegi%s prima di continuare.';
+$strFlushQueryCache = 'Rinfresca la cache delle query';
+$strFlushTable = 'Inizializza ("FLUSH") la tabella';
+$strFlushTables = 'Rinfresca (chiudi) tutte le tabelle';
+$strFontSize = 'Dimensione font';
+$strForeignKeyError = 'Errore nel creare una "foreign key" su %1$s (controlla il tipo di dati)';
+$strForeignKeyRelationAdded = 'Relazione "FOREIGN KEY" aggiunta';
+$strFormat = 'Formato';
+$strFormEmpty = 'Valore mancante nel form!';
+$strFreePages = 'Pagine libere';
+$strFullText = 'Testo completo';
+$strFunction = 'Funzione';
+$strFunctions = 'Funzioni';
+
+$strGenBy = 'Generato da';
+$strGeneralRelationFeat = 'Caratteristiche Generali di Relazione';
+$strGenerate = 'Genera';
+$strGeneratePassword = 'Genera Password';
+$strGenTime = 'Generato il';
+$strGeorgian = 'Georgiano';
+$strGerman = 'Tedesco';
+$strGlobal = 'globale';
+$strGlobalPrivileges = 'Privilegi globali';
+$strGlobalValue = 'Valore globale';
+$strGo = 'Esegui';
+$strGrantOption = 'Grant';
+$strGreek = 'Greco';
+$strGzip = '"compresso con gzip"';
+
+$strHandler = 'Handler';
+$strHasBeenAltered = 'è stato modificato.';
+$strHaveToShow = 'Devi scegliere almeno una Colonna da mostrare';
+$strHebrew = 'Ebreo';
+$strHelp = 'Aiuto';
+$strHexForBLOB = 'Usa dati esadecimali per BLOB';
+$strHide = 'Nascondi';
+$strHideShowAll = 'Mostra/nascondi tutto';
+$strHideShowNoRelation = 'Mostra/nascondi tabella senza relazioni';
+$strHome = 'Home';
+$strHomepageOfficial = 'Home page ufficiale di phpMyAdmin';
+$strHostEmpty = 'Il nome di host è vuoto!';
+$strHost = 'Host';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Ungherese';
+
+$strIcelandic = 'Islandese';
+$strId = 'ID';
+$strIdxFulltext = 'Testo completo';
+$strIEUnsupported = 'Internet explorer non supporta questa funzione.';
+$strIgnoreDuplicates = 'Ignora le righe duplicate';
+$strIgnore = 'Ignora';
+$strIgnoreInserts = 'Utilizza gli IGNORE INSERTS';
+$strImportExportCoords = 'Importa/esporta le coordinate per PDF schema';
+$strImportFiles = 'Importa file';
+$strImportFormat = 'Formato del file importato';
+$strImport = 'Importa';
+$strImportSuccessfullyFinished = 'Importazione eseguita con successo, %d query eseguite.';
+$strIndexes = 'Indici';
+$strIndexesSeemEqual = 'Gli indici %1$s e %2$s sembrano essere uguali e andrebbero, possibilmente, essere rimossi.';
+$strIndexHasBeenDropped = 'L\'indice %s è stato eliminato';
+$strIndex = 'Indice';
+$strIndexName = 'Nome dell\'indice :';
+$strIndexType = 'Tipo di indice :';
+$strIndexWarningTable = 'Problemi con gli indici della tabella `%s`';
+$strInnoDBAutoextendIncrementDesc = ' La dimensione di incremento per aumentare la dimensione di una tabella autoextending quando diventa piena.';
+$strInnoDBAutoextendIncrement = 'Incremento autoextend';
+$strInnoDBBufferPoolSizeDesc = 'La dimensione del buffer di memoria InnoDB cacha dati e indici delle proprie tabelle.';
+$strInnoDBBufferPoolSize = 'Dimensione del Buffer pool';
+$strInnoDBDataFilePath = 'File dati';
+$strInnoDBDataHomeDirDesc = 'La parte comune del path della directory per tutti i file dati InnoDB.';
+$strInnoDBDataHomeDir = 'Home directory dei dati';
+$strInnoDBPages = 'pagine';
+$strInnodbStat = 'Stato InnoDB';
+$strInsecureMySQL = 'Il file di configurazione in uso contiene impostazioni (root con nessuna password) che corrispondono ai privilegi dell\'account MySQL predefinito. Un server MySQL funzionante con queste impostazioni è aperto a intrusioni, e si dovrebbe realmente riparare a questa falla nella sicurezza.';
+$strInsertAsNewRow = 'Inserisci come nuova riga';
+$strInsertedRowId = 'Inserita riga id: %1$d';
+$strInsert = 'Inserisci';
+$strInterface = 'Interfacce';
+$strInternalAndForeign = 'Una relazione interna non %è necessaria, quando una corrispondente relazione FOREIGN KEY esiste.';
+$strInternalRelationAdded = 'Aggiunte relazioni internet';
+$strInternalRelations = 'Relazioni interne';
+$strInUse = 'in uso';
+$strInvalidAuthMethod = 'Metodo di autenticazione settato nella configurazione non valido:';
+$strInvalidColumn = 'Colonna specificata (%s) invalida!';
+$strInvalidColumnCount = 'Il contatore delle colonne deve essere superiore a 0.';
+$strInvalidCSVFieldCount = 'Contatore di campo non valido nell\'input CSV alla linea %d.';
+$strInvalidCSVFormat = 'Formato non valido per l\'input CSV alla linea %d.';
+$strInvalidCSVParameter = 'Parametro non valido per importazione CSV: %s';
+$strInvalidDatabase = 'Database non valido';
+$strInvalidFieldAddCount = 'Deviaggiungere come minimo un campo.';
+$strInvalidFieldCount = 'la tabella deve avere come minimo un dato.';
+$strInvalidLDIImport = 'Questo plugin non supporta importazioni di dati compressi!';
+$strInvalidRowNumber = '%d non è un numero valido di righe.';
+$strInvalidServerHostname = 'Nome host per il server %1$s non valido. Controlla la tua configurazione.';
+$strInvalidServerIndex = 'Server index non valido: "%s"';
+$strInvalidTableName = 'Nome tabella non valido';
+
+$strJapanese = 'Giapponese';
+$strJoins = 'Joins';
+$strJumpToDB = 'Passa al database "%s".';
+$strJustDelete = 'Cancella soltanto gli utenti dalle tabelle dei privilegi.';
+$strJustDeleteDescr = 'Gli utenti "cancellati" saranno ancora in grado di accedere al server come al solito, finché i privilegi non verranno ricaricati.';
+
+$strKeepPass = 'Non cambiare la password';
+$strKeyCache = 'Key cache';
+$strKeyname = 'Nome chiave';
+$strKill = 'Rimuovi';
+$strKnownExternalBug = 'La %s funzionalità è affetta da un bug noto, vedi %s';
+$strKorean = 'Coreano';
+
+$strLandscape = 'Orizzontale';
+$strLanguage = 'Lingua';
+$strLanguageUnknown = 'Lingua non conosciuta : %1$s.';
+$strLatchedPages = 'Latched pages';
+$strLatexCaption = 'Sottotitolo della tabella';
+$strLatexContent = 'Contenuto della tabella __TABLE__';
+$strLatexContinuedCaption = 'Sottotitolo della tabella continuato';
+$strLatexContinued = '(continua)';
+$strLatexIncludeCaption = 'Includi sottotitolo della tabella';
+$strLatexLabel = 'Chiave etichetta';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struttura della tabella __TABLE__';
+$strLatvian = 'Lituano';
+$strLDI = 'CSV usando LOAD DATA';
+$strLDILocal = 'Usa LOCAL keyword';
+$strLengthSet = 'Lunghezza/Set*';
+$strLimitNumRows = 'record per pagina';
+$strLinesTerminatedBy = 'Linee terminate da';
+$strLinkNotFound = 'Link non trovato';
+$strLinksTo = 'Collegamenti a';
+$strLithuanian = 'Lituano';
+$strLocalhost = 'Locale';
+$strLocationTextfile = 'Percorso del file';
+$strLogin = 'Connetti';
+$strLoginInformation = 'Informazioni di Login';
+$strLogout = 'Disconnetti';
+$strLogPassword = 'Password:';
+$strLogServerHelp = 'Puoi inserire Indirizzo IP/hostname a porta separati dallo spazio.';
+$strLogServer = 'Server';
+$strLogUsername = 'Nome utente:';
+$strLongOperation = 'Questa operazione potrebbe impiegare molto tempo. Procedere comunque?';
+
+$strMaxConnects = 'max. connessioni contemporanee';
+$strMaximalQueryLength = 'Lunghezza massima di una query creata';
+$strMaximumSize = 'Dimensione massima: %s%s';
+$strMbExtensionMissing = 'L\'estensione PHP mbstring non è stata trovata e sembra che si stia utilizzando un set di caratteri multibyte. Senza l\'estensione mbstring, phpMyAdmin non è in grado di dividere correttamente le stringhe di caratteri e questo può portare a risultati inaspettati.';
+$strMbOverloadWarning = 'Avete abilitato mbstring.func_overload nella configurazione del PHP. Questa opzione è incompatibile con phpMyAdmin e potrebbe causare la corruzione di alcuni dati!';
+$strMIME_available_mime = 'Tipi-MIME disponibili';
+$strMIME_available_transform = 'Trasformazioni disponibili';
+$strMIME_description = 'Descrizione';
+$strMIME_MIMEtype = 'tipo MIME';
+$strMIME_nodescription = 'Nessuna descrizione è disponibile per questa trasformazione.<br />Prego, chiedere all\'autore cosa %s faccia.';
+$strMIME_transformation_note = 'Per una lista di opzioni di trasformazione disponibili e le loro rispettive trasformazioni di tipi-MIME, cliccate su %strasformazione descrizioni%s';
+$strMIME_transformation_options_note = 'Prego, immettere i valori per le opzioni di trasformazioneutilizzando questo formato: \'a\', 100, b,\'c\'...<br />Se c\'è la necessità di immettere un backslash ("\") o un apostrofo ("\'") tra questi valori, essi vanno backslashati (per es. \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Opzioni di Transformation';
+$strMIME_transformation = 'Trasformazione del Browser';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE';
+$strMIME_without = 'Tipi-MIME stampati in italics non hanno una funzione di trasformazione separata';
+$strModifications = 'Le modifiche sono state salvate';
+$strModifyIndexTopic = 'Modifica un indice';
+$strModify = 'Modifica';
+$strMoveMenu = 'Muovi menù';
+$strMoveTableOK = 'La tabella %s è stata spostata in %s.';
+$strMoveTableSameNames = 'Impossibile spostare la tabella su se stessa!';
+$strMoveTable = 'Sposta la tabella nel (database<b>.</b>tabella):';
+$strMultilingual = 'multilingua';
+$strMyISAMDataPointerSizeDesc = 'Dimensione del puntatore predefinito in Bytes, che deve essere usata da CREATE TABLE per le tabelle MyISAM quando non è stata specificata l\'opzione MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Domensione del puntatore dati';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Se il file temporaneo è usato per la creazione veloce di un indice MyISAM, occuperebbe più spazio dell\'utilizzo del metodo key cache con la quantità ivi specificata: perciò si deve prediligere il metodo key cache.';
+$strMyISAMMaxExtraSortFileSize = 'Dimensione massima per i file temporanei nella creazione di un indice';
+$strMyISAMMaxSortFileSizeDesc = 'La dimensione massima dei file temporanei MySQL può essere utilizzata nella rigenerazione di un indice MyISAM (durante un REPAIR TABLE, ALTER TABLE, o LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Dimensione massima dei file temporanei di ordinamento';
+$strMyISAMRecoverOptionsDesc = 'La modalità di irppristino automatico di tabelle MyISAM corrotte, come impostato tramite l\'opzione di lan cio del server --myisam-recover.';
+$strMyISAMRecoverOptions = 'Modalità di ripristino automatico';
+$strMyISAMRepairThreadsDesc = 'Se questo valore è maggiore di 1, gli indici della tabella MyISAM vengono creati in parallelo (ogni indice nel suo thread) durante il processo di ordinamento Repair by.';
+$strMyISAMRepairThreads = 'Thread di riparazione';
+$strMyISAMSortBufferSizeDesc = 'Il buffer che viene allocato nell\'ordinamento degli indici MyISAM durante un REPAIR TABLE o nella creazione degli indici con CREATE INDEX o ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Ordina la dimensione del buffer';
+$strMySQLCharset = 'Set di caratteri MySQL';
+$strMysqlClientVersion = 'Versione MySQL client';
+$strMySQLConnectionCollation = 'collation della connessione di MySQL';
+$strMysqlLibDiffersServerVersion = 'Le tue librerie di PHP per MySQL versione %s sono diverse dalla versione di MySQL server %s. Potrebbe causare comportamenti imprevedibili.';
+$strMySQLSaid = 'Messaggio di MySQL: ';
+$strMySQLShowProcess = 'Visualizza processi in esecuzione';
+
+$strName = 'Nome';
+$strNext = 'Prossimo';
+$strNoActivity = 'Nessuna attività da %s secondi o più, si prega di autenticarsi nuovamente';
+$strNoDatabases = 'Nessun database';
+$strNoDatabasesSelected = 'Nessun database selezionato.';
+$strNoDataReceived = 'Non sono stati ricevuti dati da importare. O non è stato indicato alcun nome file, oppure è stato superata la dimensione massima consentita per il file, impostata nella configurazione di PHP. Vedi FAQ 1.16.';
+$strNoDescription = 'nessuna Description';
+$strNoDetailsForEngine = 'Non è disponibile nessuna informazione dettagliata sullo stato di questo motore di memorizzazione.';
+$strNoDropDatabases = 'I comandi "DROP DATABASE" sono disabilitati.';
+$strNoExplain = 'Non Spiegare SQL';
+$strNoFilesFoundInZip = 'Non sono stati trovati file ZIP all\'interno dell\'archivio!';
+$strNoFrames = 'phpMyAdmin funziona meglio con browser che supportano frames';
+$strNoIndex = 'Nessun indice definito!';
+$strNoIndexPartsDefined = 'Nessuna parte di indice definita!';
+$strNoModification = 'Nessun cambiamento';
+$strNone = 'Nessuno';
+$strNo = ' No ';
+$strNoOptions = 'Questo formato non ha opzioni';
+$strNoPassword = 'Nessuna Password';
+$strNoPermission = 'Il server web non possiede i privilegi per salvare il file %s.';
+$strNoPhp = 'senza codice PHP';
+$strNoPrivileges = 'Nessun Privilegio';
+$strNoRights = 'Non hai i permessi per effettuare questa operazione!';
+$strNoRowsSelected = 'Nessuna riga selezionata';
+$strNoSpace = 'Spazio insufficiente per salvare il file %s.';
+$strNoTablesFound = 'Non ci sono tabelle nel database.';
+$strNoThemeSupport = 'Nessun supporto per i temi, si prega di controllare la configurazione e/o i temi nella cartella %s.';
+$strNotNumber = 'Questo non è un numero!';
+$strNotOK = 'non OK';
+$strNotSet = '<b>%s</b> tabella non trovata o non settata in %s';
+$strNoUsersFound = 'Nessun utente trovato.';
+$strNoValidateSQL = 'Non Validare SQL';
+$strNull = 'Null';
+$strNumberOfFields = 'Numero di campi';
+$strNumberOfTables = 'Numero di tabelle';
+$strNumSearchResultsInTable = '%s corrisponde/ono nella tabella <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Totale:</b> <i>%s</i> corrispondenza/e';
+$strNumTables = 'Tabelle';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Foglio di calcolo nel formato Open Document';
+$strOpenDocumentText = 'Testo nel formato Open Document';
+$strOpenNewWindow = 'Apri una nuova finestra di PhpMyAdmin';
+$strOperations = 'Operazioni';
+$strOperator = 'Operatore';
+$strOptimize = 'Ottimizza';
+$strOptimizeTable = 'Ottimizza tabella';
+$strOptions = 'Opzioni';
+$strOr = 'Oppure';
+$strOverhead = 'In eccesso';
+$strOverwriteExisting = 'Sovrascrivi file(s) esistente/i';
+
+$strPacked = 'Compresso';
+$strPageNumber = 'Numero pagina:';
+$strPagesToBeFlushed = 'Pagine che devono essere flushate';
+$strPaperSize = 'Dimensioni carta';
+$strPartialImport = 'Importazione parziale';
+$strPartialText = 'Testo parziale';
+$strPartitionDefinition = 'Definizione Partizioni';
+$strPartitioned = 'partizionato';
+$strPartitionMaintenance = 'Manutenzione partizione';
+$strPartition = 'Partizione %s';
+$strPasswordChanged = 'La password per l\'utente %s è cambiata con successo.';
+$strPasswordEmpty = 'La password è vuota!';
+$strPasswordHashing = 'Password Hashing';
+$strPasswordNotSame = 'La password non coincide!';
+$strPassword = 'Password';
+$strPBXTCheckpointFrequencyDesc = 'L\'ammontare dei dati scritti sul log delle trasazioni, prima che sia eseguito un checkpoint. Il valore di default è 24MB.';
+$strPBXTCheckpointFrequency = 'Frequheckpoint';
+$strPBXTDataFileGrowSizeDesc = 'Dimensione dell\'incremento del file (.xtd) con gli "handle data".';
+$strPBXTDataFileGrowSize = 'Dimensione incremento del file dei dati';
+$strPBXTDataLogThresholdDesc = 'La dimensione massima di un file con i log. Il valore di default è 64MB. PBXT può creare un massimo di 32000 log dei dati, che sono usati da tutte le tabelle. Il valore può essere incrementato per aumentare la dimensione massima dei dati che possono essere memorizzati complessivamente nel database.';
+$strPBXTDataLogThreshold = 'Dimensione del log dei dati';
+$strPBXTGarbageThresholdDesc = 'La percentuale di dati "spazzatura" in un file di log prima che questo debba essere compattato. Il valore deve essere compreso tra 1 e 99. Il valore di default è 50.';
+$strPBXTGarbageThreshold = 'Dimensione del cestino';
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Il valore di default è 32MB. La memoria allocata qui è usata solo per la cache delle pagine di indice.';
+$strPBXTIndexCacheSize = 'Dimensione cache degli indici';
+$strPBXTLogBufferSizeDesc = 'La dimensione del buffer usata quando si scrive un log dei dati. Il valore di default è 256MB. Il motore allora un buffer per ciascun thread, ma solo se è necessario scrivere un log dei dati.';
+$strPBXTLogBufferSize = 'Dimensione del buffer dei log';
+$strPBXTLogCacheSizeDesc = 'L\'ammontare di memoria allocata per la cache del log delle trasazioni. Il valore di default è 16MB.';
+$strPBXTLogCacheSize = 'Dimensione cache dei log';
+$strPBXTLogFileCountDesc = 'Questo è il numero dei file di log della trasazioni (pbxt/system/xlog*.xt) che il sistema conserva. Se il numero dei log è superiore i file più sono cancellati, altrimenti vengono rinominati e gli viene assegnato il numero più alto.';
+$strPBXTLogFileCount = 'Numero dei file di log';
+$strPBXTLogFileThresholdDesc = 'La dimensione del log delle trasazioni prima di un rollover, quando viene creato un nuovo file. Il valore di default è 16MB.';
+$strPBXTLogFileThreshold = 'Soglia dei file di log';
+$strPBXTRecordCacheSizeDesc = 'L\'ammontare della memoria allocata nella cache dei record, usata per la cache dei dati della tabella. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.';
+$strPBXTRecordCacheSize = 'Dimensione cache dei record';
+$strPBXTRowFileGrowSizeDesc = 'Dimensione dell\'incremento del file (.xtr) con i puntatori delle righe.';
+$strPBXTRowFileGrowSize = 'Dimensione incremento del file delle righe';
+$strPBXTTransactionBufferSizeDesc = 'La dimensione del buffer globale dei log di trasazione (il motore alloca 2 buffer di questa dimensione). Il valore di default è 1MB.';
+$strPBXTTransactionBufferSize = 'Dimensione buffer delle transazioni';
+$strPdfDbSchema = 'Schema del database "%s" - Pagina %s';
+$strPdfInvalidTblName = 'La tabella "%s" non esiste!';
+$strPdfNoTables = 'Nessuna Tabella';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Genera un report contenete i dati di una singola tabella)';
+$strPDFReportTitle = 'Titolo del Report';
+$strPerHour = 'all\'ora';
+$strPerMinute = 'al minuto';
+$strPerSecond = 'al secondo';
+$strPersian = 'Persiano';
+$strPhoneBook = 'rubrica';
+$strPhp = 'Crea il codice PHP';
+$strPHPExtension = 'Estensioni PHP';
+$strPHPVersion = 'Versione PHP';
+$strPlayAudio = 'Avvia audio';
+$strPleaseSelectPrimaryOrUniqueKey = 'Seleziona la chiave primaria o una chiave univoca';
+$strPmaDocumentation = 'Documentazione di phpMyAdmin';
+$strPmaUriError = 'La direttiva <tt>$cfg[\'PmaAbsoluteUri\']</tt> DEVE essere impostata nel file di configurazione!';
+$strPolish = 'Polacco';
+$strPortrait = 'Verticale';
+$strPos1 = 'Inizio';
+$strPrevious = 'Precedente';
+$strPrimaryKeyHasBeenDropped = 'La chiave primaria è stata eliminata';
+$strPrimaryKeyName = 'Il nome della chiave primaria deve essere... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>deve</b> essere il nome di, e <b>solo di</b>, una chiave primaria!)';
+$strPrimary = 'Primaria';
+$strPrint = 'Stampa';
+$strPrintViewFull = 'Vista stampa (con full text)';
+$strPrintView = 'Visualizza per stampa';
+$strPrivDescAllPrivileges = 'Comprende tutti i privilegi tranne GRANT.';
+$strPrivDescAlter = 'Permette di alterare la struttura di tabelle esistenti.';
+$strPrivDescAlterRoutine = 'Permette l\'alterazione e l\'eliminazione di routines memorizzate.';
+$strPrivDescCreateDb = 'Permette di creare nuove tabelle e nuovi databases.';
+$strPrivDescCreateRoutine = 'Permette la creazione di routines memorizzate.';
+$strPrivDescCreateTbl = 'Permette di creare nuove tabelle.';
+$strPrivDescCreateTmpTable = 'Permette di creare tabelle temporanee.';
+$strPrivDescCreateUser = 'Permette di creare, cancellare e rinominare gli account utente.';
+$strPrivDescCreateView = 'Permette la creazione di nuove viste.';
+$strPrivDescDelete = 'Permette di cancellare dati.';
+$strPrivDescDropDb = 'Permette di eliminare databases e tabelle.';
+$strPrivDescDropTbl = 'Permette di eliminare tabelle.';
+$strPrivDescEvent = 'Permette di impostare gli eventi per lo scheduler';
+$strPrivDescExecute5 = 'Permette l\'esecuzione di routines memorizzate.';
+$strPrivDescExecute = 'Permette di eseguire procedure memorizzate; Non ha effetto in questa versione di MySQL.';
+$strPrivDescFile = 'Permette di importare dati da e esportare dati in file.';
+$strPrivDescGrant = 'Permette di aggiungere utenti e privilegi senza ricaricare le tabelle dei privilegi.';
+$strPrivDescIndex = 'Permette di creare ed eliminare gli indici.';
+$strPrivDescInsert = 'Permette di inserire e sovrascrivere dati.';
+$strPrivDescLockTables = 'Permette di bloccare le tabelle per il thread corrente.';
+$strPrivDescMaxConnections = 'Limita il numero di nuove connessioni che un utente può aprire in un\'ora.';
+$strPrivDescMaxQuestions = 'Limita il numero di query che un utente può mandare al server in un\'ora.';
+$strPrivDescMaxUpdates = 'Limita il numero di comandi che possono cambiare una tabella o un database che un utente può eseguire in un\'ora.';
+$strPrivDescMaxUserConnections = 'Limite di connessioni simultanee che un utente può fare.';
+$strPrivDescProcess = 'Permette di vedere i processi di tutti gli utenti';
+$strPrivDescReferences = 'Non ha alcun effetto in questa versione di MySQL.';
+$strPrivDescReload = 'Permette di ricaricare i parametri del server e di resettare la cache del server.';
+$strPrivDescReplClient = 'Accorda il diritto ad un utente di domandare dove sono i masters/slaves.';
+$strPrivDescReplSlave = 'Necessario per la replicazione degli slaves.';
+$strPrivDescSelect = 'Permette di leggere i dati.';
+$strPrivDescShowDb = 'Accorda l\'accesso alla lista completa dei databases.';
+$strPrivDescShowView = 'Permette di effettuare query del tipo SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Permette di chiudere il server.';
+$strPrivDescSuper = 'Permette altre connessioni, anche se è stato raggiunto il massimo numero di connessioni; Necessario per molte operazioni di amministrazione come il settaggio di variabili globali o la cancellazione dei threads di altri utenti.';
+$strPrivDescTrigger = 'Permette di creare e di eliminare i triggers';
+$strPrivDescUpdate = 'Permette di cambiare i dati.';
+$strPrivDescUsage = 'Nessun privilegio.';
+$strPrivileges = 'Privilegi';
+$strPrivilegesReloaded = 'I privilegi sono stati ricaricati con successo.';
+$strProcedures = 'Procedure';
+$strProcesses = 'Processi';
+$strProcesslist = 'Lista Processi';
+$strProfiling = 'Profiling';
+$strProtocolVersion = 'Versione protocollo';
+$strPutColNames = 'Mette i nomi delle colonne alla prima riga';
+
+$strQBEDel = 'Elimina';
+$strQBEIns = 'Aggiungi';
+$strQBE = 'Query da esempio';
+$strQueryCache = 'Cache delle query';
+$strQueryFrame = 'Finestra della Query';
+$strQueryOnDb = 'SQL-query sul database <b>%s</b>:';
+$strQueryResultsOperations = 'Risultato delle operazioni di Query';
+$strQuerySQLHistory = 'Storico dell\'SQL';
+$strQueryStatistics = '<b>Query delle Statistiche</b>: Dall\'avvio, %s query sono state effettuate sul server.';
+$strQueryTime = 'La query ha impiegato %01.4f sec';
+$strQueryType = 'Tipo di Query';
+$strQueryWindowLock = 'Non sovrascrivere questa query da fuori della finestra';
+
+$strReadRequests = 'Richieste di lettura';
+$strRebuild = 'Ricrea';
+$strReceived = 'Ricevuti';
+$strRecommended = 'raccomandato';
+$strRecords = 'Record';
+$strReferentialIntegrity = 'Controlla l\'integrità delle referenze:';
+$strRefresh = 'Aggiorna';
+$strRelationalDisplayField = 'Mosta il campo relazionale';
+$strRelationalKey = 'Chiave relazionale';
+$strRelationalSchema = 'Schema relazionale';
+$strRelationDeleted = 'Relazione cancellata';
+$strRelationNotWorking = 'Le caratteristiche aggiuntive sono state disattivate per funzionare con le tabelle linkate. Per scoprire perché clicca %squi%s.';
+$strRelationsForTable = 'RELATIONS FOR TABLE';
+$strRelations = 'Relazioni';
+$strRelationView = 'Vedi relazioni';
+$strReloadingThePrivileges = 'Caricamento dei privilegi in corso';
+$strReloadPrivileges = 'Ricarica i privilegi';
+$strReload = 'Ricarica';
+$strRemovePartitioning = 'Rimuove partizionamento';
+$strRemoveSelectedUsers = 'Rimuove gli utenti selezionati';
+$strRenameDatabaseOK = 'Il DataBase %s è stato rinominato in %s';
+$strRenameTableOK = 'La tabella %s è stata rinominata %s';
+$strRenameTable = 'Rinomina la tabella in';
+$strRepair = 'Ripara';
+$strRepairTable = 'Ripara tabella';
+$strReplaceNULLBy = 'Sostituisci NULL con';
+$strReplaceTable = 'Sostituisci i dati della tabella col file';
+$strReplication = 'Replicazione';
+$strReset = 'Riavvia';
+$strResourceLimits = 'Limiti di risorse';
+$strRestartInsertion = 'Riprendi inserimento con la riga %s';
+$strReType = 'Reinserisci';
+$strRevokeAndDeleteDescr = 'Gli utenti UTILIZZERANNO comunque il privilegio finché i privilegi non saranno ricaricati.';
+$strRevokeAndDelete = 'Revoca tutti i privilegi attivi agli utenti e dopo li cancella.';
+$strRevokeMessage = 'Hai revocato i privilegi per %s';
+$strRevoke = 'Revoca';
+$strRomanian = 'Rumeno';
+$strRoutineReturnType = 'Tipo di risultato';
+$strRoutines = 'Routines';
+$strRowLength = 'Lunghezza riga';
+$strRowsAffected = '%1$d riga/e modificata.';
+$strRowsDeleted = '%1$d riga/e cancellata.';
+$strRowsFrom = 'righe a partire da';
+$strRowsInserted = '%1$d riga/e inserita.';
+$strRowSize = 'Dimensione riga';
+$strRowsModeFlippedHorizontal = 'orizzontale (headers ruotati)';
+$strRowsModeHorizontal = ' orizzontale ';
+$strRowsModeOptions = ' in modalità %s e ripeti gli headers dopo %s celle ';
+$strRowsModeVertical = ' verticale ';
+$strRows = 'Righe';
+$strRowsStatistic = 'Statistiche righe';
+$strRunning = 'in esecuzione su %s';
+$strRunQuery = 'Invia Query';
+$strRunSQLQuery = 'Esegui la/e query SQL sul database %s';
+$strRunSQLQueryOnServer = 'Eseguendo query SQL sul server %s';
+$strRussian = 'Russo';
+
+$strSaveOnServer = 'Salva sul server nella directory %s';
+$strSavePosition = 'Salva la posizione';
+$strSave = 'Salva';
+$strScaleFactorSmall = 'Il fattore di scala è troppo piccolo per riempire lo schema nella pagina';
+$strSearch = 'Cerca';
+$strSearchFormTitle = 'Cerca nel database';
+$strSearchInField = 'Campi contenuti:';
+$strSearchInTables = 'Nella/e tabella/e:';
+$strSearchNeedle = 'parola/e o valore/i da cercare (carattere jolly: "%"):';
+$strSearchOption1 = 'almeno una delle parole';
+$strSearchOption2 = 'tutte le parole';
+$strSearchOption3 = 'la frase esatta';
+$strSearchOption4 = 'come espressione regolare';
+$strSearchResultsFor = 'Cerca i risultati per "<i>%s</i>" %s:';
+$strSearchType = 'Trova:';
+$strSecretRequired = 'Adesso c\'è bisogno di una password per il file di configurazione (blowfish_secret).';
+$strSelectADb = 'Prego, selezionare un database';
+$strSelectAll = 'Seleziona tutto';
+$strSelectBinaryLog = 'Selezionare il log binario da visualizzare';
+$strSelectFields = 'Seleziona campi (almeno uno):';
+$strSelectForeignKey = 'Seleziona Foreign Key';
+$strSelectNumRows = 'nella query';
+$strSelectReferencedKey = 'Seleziona le chiavi referenziali';
+$strSelectTables = 'Seleziona Tables';
+$strSend = 'Salva con nome...';
+$strSent = 'Spediti';
+$strServerChoice = 'Scelta del server';
+$strServerNotResponding = 'Il server non risponde';
+$strServer = 'Server';
+$strServers = 'Servers';
+$strServerStatusDelayedInserts = 'Inserimento ritardato';
+$strServerStatus = 'Informazioni di Runtime';
+$strServerStatusUptime = 'Questo server MySQL sta girando da %s. E\' stato avviato il %s.';
+$strServerTabVariables = 'Variabili';
+$strServerTrafficNotes = '<b>Traffico del server</b>: Queste tabelle mostrano le statistiche del traffico di rete di questo server MySQL dal momento del suo avvio.';
+$strServerVars = 'Variabili e parametri del Server';
+$strServerVersion = 'Versione MySQL';
+$strSessionStartupErrorGeneral = 'Non posso far partire la sessione senza errori, controlla gli errori nel log di PHP e/o del tuo server web e configura correttamente la tua installazione di PHP.';
+$strSessionValue = 'Valore sessione';
+$strSetEnumVal = 'Se il tipo di campo è "enum" o "set", immettere i valori usando il formato: \'a\',\'b\',\'c\'...<br />Se comunque dovete mettere dei backslash ("\") o dei single quote ("\'") davanti a questi valori anteporre un "\" (per esempio \'\\\\xyz\' o \'a\\\'b\').';
+$strShowAll = 'Mostra tutti';
+$strShowColor = 'Mostra il colore';
+$strShowDatadictAs = 'Formato del Data Dictionary';
+$strShowFullQueries = 'Mostra query complete';
+$strShowGrid = 'Mostra la griglia';
+$strShowHideLeftMenu = 'Mostra/nascondi il menù di sinistra';
+$strShowingBookmark = 'Mostrando i segnalibri';
+$strShowingPhp = 'Mostrando il codice PHP';
+$strShowingRecords = 'Visualizzazione record ';
+$strShowingSQL = 'Mostrando la query SQL';
+$strShowKeys = 'Mostra solo le chiavi';
+$strShow = 'Mostra';
+$strShowOpenTables = 'Mostra le tabelle aperte';
+$strShowPHPInfo = 'Mostra le info sul PHP';
+$strShowSlaveHosts = 'Mostra gli hosts slave';
+$strShowSlaveStatus = 'Mostra lo stato degli slave';
+$strShowStatusBinlog_cache_disk_useDescr = 'Il numero delle transazioni che usano la cache temporanea del log binario, ma che oltrepassano il valore di binlog_cache_size e usano un file temporaneo per salvare gli statements dalle transazioni.';
+$strShowStatusBinlog_cache_useDescr = 'Il numero delle transazioni che usano la cache temporanea del log binario.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Il numero delle tabelle temporanee create automaticamente sul disco dal server mentre esegue i comandi. Se il valore Created_tmp_disk_tables è grande, potresti voler aumentare il valore tmp_table_size, per fare im modo che le tabelle temporanee siano memory-based anzichè disk-based.';
+$strShowStatusCreated_tmp_filesDescr = 'Numero di file temporanei che mysqld ha creato.';
+$strShowStatusCreated_tmp_tablesDescr = 'Il numero di tabelle temporanee create automaticamente in memoria dal server durante l\'esecuzione dei comandi.';
+$strShowStatusDelayed_errorsDescr = 'Numero di righe scritte con INSERT DELAYED in cui ci sono stati degli errori (probabilmete chiave dublicata).';
+$strShowStatusDelayed_insert_threadsDescr = 'Il numero di processi INSERT DELAYED in uso. Ciascuna tabella su cui è usato INSERT DELAYED occupa un thread.';
+$strShowStatusDelayed_writesDescr = 'Il numero di righe INSERT DELAYED scritte.';
+$strShowStatusFlush_commandsDescr = 'Il numero di comandi FLUSH eseguiti.';
+$strShowStatusHandler_commitDescr = 'Il numero di comandi interni COMMIT eseguiti.';
+$strShowStatusHandler_deleteDescr = 'Il numero di volte in cui una riga è stata cancellata da una tabella.';
+$strShowStatusHandler_discoverDescr = 'Il server MySQL può chiedere al motore di storage NDB Cluster se conosce una tabella sulla base di un nome dato. Questo è chaiamto discovery. Handler_discover indica il numero di volte che una tabella è stata trovata.';
+$strShowStatusHandler_read_firstDescr = 'Il numero di volte che il primo valore è stato letto da un indice. Se è troppo alto è probabile che il server stia facendo molte scansioni complete degli indici; per esempio, SELECT col1 FROM foo, assumento che col1 sia indicizzata.';
+$strShowStatusHandler_read_keyDescr = 'Il numero di richieste per leggere una riga basata su di una chiave. Se è alta, è un buon indice che le tue query e le tue tabelle sono correttamente indicizzate.';
+$strShowStatusHandler_read_nextDescr = 'Il numero di richieste per leggere la riga successiva nell\'ordine delle chiavi. Questo valore è incrementato se stai facendo una query su di una colonna indice con un range costante, oppure se stai facendo una scansione degli indici.';
+$strShowStatusHandler_read_prevDescr = 'Il numero di richieste per leggere la riga precedente nell\'ordine delle chiavi. Questo metodo di lettura è principalmente utilizzato per ottimizzare ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Il numero di richieste per leggere una riga basata su una posizione fissa. Questo valore è alto se stai facendo molte richieste che richiedono un ordinamento dei risultati. Probabilmente hai molte query che che richiedono a MySQL di leggere l\'intera tabella oppure ci sono dei joins che non usano le chiavi correttamente.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Il numero di richieste per leggere la riga successiva in un file di dati. Questo valore è alto se stai facendo molte scansioni della tabella. Generalmente è un segnale che le tue tabelle non sono correttamente indicizzate, o che le query non sono state scritte per trarre vantaggi dagli indici che hai.';
+$strShowStatusHandler_rollbackDescr = 'Il numero di comandi ROLLBACK interni.';
+$strShowStatusHandler_updateDescr = 'Il numero di richieste per aggiornare una riga in una tabella.';
+$strShowStatusHandler_writeDescr = 'Il numero di richieste per inserire una riga in una tabella.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Il numero di pagine che contengono dati (sporchi o puliti).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Il numero di pagine attualmente sporche.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Il numero di buffer pool pages che hanno avuto richiesta di essere aggiornate.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Il numero di pagine libere.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Il numero di pagine bloccate in un InnoDB buffer pool. Queste pagine sono attualmente in lettura o in scittura e non possono essere aggiornate o rimosse per altre ragioni.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Il numero di pagine occupate perchè sono state allocate per amministrazione, come row locks o per hash index adattivi. Questo valore può essere calcolato come Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Il numero totale di buffer pool, in pagine.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Il numero di read-aheads "random" InnoDB iniziate. Questo accade quando una query legge una porzione di una tabella, ma in ordine casuale.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Il numero di read-aheads InnoDB sequanziali. Questo accade quando InnoDB esegue una scansione completa sequenziale di una tabella.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Il numero di richieste logiche che InnoDb ha fatto.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Il numero di richieste logiche che InnoDB non può soddisfare dal buffer pool e che devono fare una lettura di una pagina singola.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalmente le sritture nel buffer pool InnoDB vengono effettuate in background. Tuttavia se è necessario leggere o creare una pagina, e non sono disponibile pagine pulite è necessario attendere che le pagine siano aggiornate prima. Questo contatore conta le istanze di queste attese. Se la dimesione del buffer pool è stata settata correttamente questo valore dovrebbe essere basso.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Il numero di scritture effettuate nel buffer pool InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Il numero delle operazioni fsync() fino ad ora.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Il numero di operazioni fsync() in attesa.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Il numero di letture in attesa.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Il numero di scritture in attesa.';
+$strShowStatusInnodb_data_readDescr = 'La quantità di dati letti fino ad ora, in bytes.';
+$strShowStatusInnodb_data_readsDescr = 'Il numero totale di dati letti.';
+$strShowStatusInnodb_data_writesDescr = 'Il numero totale di dati scritti.';
+$strShowStatusInnodb_data_writtenDescr = 'La quantità di dati scritti fino ad ora, in bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Il numero di scritture doublewrite che sono state eseguite ed il numero che sono state scritte a questo scopo.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Il numero di scritture doublewrite che sono state eseguite ed il numero che sono state scritte a questo scopo.';
+$strShowStatusInnodb_log_waitsDescr = 'Il numero di attese che abbiamo avuto perchè il buffer di log era troppo piccolo e abbiamo duvuto attendere che fosse aggiornato prima di continuare.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Il numero di richieste di scrittura dei log.';
+$strShowStatusInnodb_log_writesDescr = 'Il numero scritture fisiche del log file.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Il numero di scritture fsync fatte sul log file.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Il numero degli fsyncs in sospeso sul log file.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Il numero di scritture in sospeso sul log file.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Il numero di bytes scritti sul log file.';
+$strShowStatusInnodb_pages_createdDescr = 'Il numero di pagine create.';
+$strShowStatusInnodb_page_sizeDescr = 'La dimesione di-compilazione delle pagine InnoDB (default 16KB). Molti valori sono conteggiati nelle pagine; la dimesione delle pagine permette di convertirli facilmente in bytes.';
+$strShowStatusInnodb_pages_readDescr = 'Il numero di pagine lette.';
+$strShowStatusInnodb_pages_writtenDescr = 'Il numero di pagine scritte.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Il numero di row locks attualmente in attesa.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Il tempo medio per l\'acquisizione di un row lock, in millisecondi.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Il tempo totale per l\'acquisizione di un row locks, in millisecondi.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Il tempo massimo per l\'acquisizione di un row lock, in millisecondi.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Il numero di volte che un row lock ha dovuto attendere.';
+$strShowStatusInnodb_rows_deletedDescr = 'Il numero di righe cancellate da una tabella InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'Il numero di righe inserite da una tabella InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'Il numero di righe lette da una tabella InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'Il numero di righe aggiornate da una tabella InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Il numero di blocchi chaive aggiunti nella cache chiave che sono stati cambiati, ma che non sono stai aggiornati su disco. E\' conosciuto con il nome di Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Il numero di blocchi non usati nella cache chiave. Puoi usare questo valore per determinare quanta cache chiave è in uso.';
+$strShowStatusKey_blocks_usedDescr = 'Il numero di blocchi usati nella cache chiave. The number of used blocks in the key cache. Questo valore è un\'importante segnale che indica il numero massimo di blocchi che sono stati in uso contemporaneamente.';
+$strShowStatusKey_read_requestsDescr = 'Il numero di richieste per le ggere un blocco chiave dalla cache.';
+$strShowStatusKey_readsDescr = 'Il numero di letture fisiche dal disco di un blocco chiave. Se Key_reads è grande allora il valore key_buffer_size è probabilmente troppo piccolo. IIl rapporto di cache miss rate può essere calcolato come Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Il numero di richieste per scrivere una blocco chiave nella cache.';
+$strShowStatusKey_writesDescr = 'Il numero di scritture fisiche di un blocco chiave sul disco.';
+$strShowStatusLast_query_costDescr = 'Il costo totale dell\'ultima query compilata così come computato dall\'ottimizzatore delle query. Utile per comparare il costo di differenti query per la stessa operazione di query. Il valore di default è 0, che significa che nessuna query è stata ancora compilata.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'In numero di righe in attesa di essere scritte nella coda INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Il numero di tabelle che sono state aperte. Se il valore opened_tables è grande, probabilmente il valore di table cache è troppo piccolo.';
+$strShowStatusOpen_filesDescr = 'Il numero di file che sono aperti.';
+$strShowStatusOpen_streamsDescr = 'il numero di stream che sono aperti (usato principalmente per il logging).';
+$strShowStatusOpen_tablesDescr = 'Il numero di tabelle che sono aperte.';
+$strShowStatusQcache_free_blocksDescr = 'Il numero di blocchi di memoria liberi nella cache delle query.';
+$strShowStatusQcache_free_memoryDescr = 'L\'ammontare di memoria libera nella cache delle query.';
+$strShowStatusQcache_hitsDescr = 'Il numero di cache hits.';
+$strShowStatusQcache_insertsDescr = 'Il numero di query aggiunte alla cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Il numero di query che sono state rimosse dalla cache per liberare memoria per la cache di nuove query. Questa informazione può aiutarti per parametrare la dimensione della cache delle query. La cache delle query usa una strategia di "meno usate recentemente" (LRU - least recently used) per decidere quali query rimuovere dalla cache.';
+$strShowStatusQcache_not_cachedDescr = 'Il numero di query non in cache (impossibilità di inserirle nella cache oppure non inserite per i settaggi del parametro query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Il numero di query registrate nella cache.';
+$strShowStatusQcache_total_blocksDescr = 'Il numero totale di blocchi nella cache delle query.';
+$strShowStatusReset = 'Reset';
+$strShowStatusRpl_statusDescr = 'Lo sato delle repliche failsafe (non ancora implementato).';
+$strShowStatusSelect_full_joinDescr = 'Il numero di joins che non usano gli indici. (Se questo valore non è 0, dovresti controllare attentamente gli indici delle tue tabelle.)';
+$strShowStatusSelect_full_range_joinDescr = 'Il numero di joins che usano una ricerca limitata su di una tabella di riferimento.';
+$strShowStatusSelect_range_checkDescr = 'Il numero di joins senza chiavi che controllano per l\'uso di una chiave dopo ogni riga. (Se questo valore non è 0, dovresti controllare attentamente gli indici delle tue tabelle.)';
+$strShowStatusSelect_rangeDescr = 'Il numero di joins che usano un range sulla prima tabella. (Non è, solitamente, un valore critico anche se è grande.)';
+$strShowStatusSelect_scanDescr = 'Il numero di join che hanno effettuato una scansione completa della prima tabella.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Il numero di tabelle temporaneamente aperte da processi SQL slave.';
+$strShowStatusSlave_retried_transactionsDescr = 'Numero totale di volte (dalla partenza) in cui la replica slave SQL ha ritentato una transazione.';
+$strShowStatusSlave_runningDescr = 'Questa chiave è ON se questo è un server slave connesso ad un server master.';
+$strShowStatusSlow_launch_threadsDescr = 'Numero di processi che hanno impiegato più di "slow_launch_time" secondi per partire.';
+$strShowStatusSlow_queriesDescr = 'Numero di query che hanno impiegato più di "long_query_time" seconds.';
+$strShowStatusSort_merge_passesDescr = 'Il numero di fusioni passate all\'algoritmo di ordianemento che sono state fatte. Se questo valore è grande, dovresti incrementare la variabile di sistema sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Il numero di ordinamenti che sono stati eseguiti in un intervallo.';
+$strShowStatusSort_rowsDescr = 'Il numero di righe ordinate.';
+$strShowStatusSort_scanDescr = 'Il numero di ordinamenti che sono stati fatti leggendo la tabella.';
+$strShowStatusTable_locks_immediateDescr = 'Il numero di volte che un table lock è stato eseguito immediatamente.';
+$strShowStatusTable_locks_waitedDescr = 'Il numero di volte che un table lock è stato eseguito immediatamente ed era necessaria un\'attesa. Se è alto, potresti avere dei problemi con le performance, dovresti prima ottimizzare le query, oppure sia utilizzare le repliche, sia dividere le tabelle.';
+$strShowStatusThreads_cachedDescr = 'Il numero dei processi nella cache dei processi. L\'hit rate della cache può essere calcolato come processi_creati/connessioni. Se questo valore è rosso devi aumentare la tua thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Il numero di connessioni correntemente aperte.';
+$strShowStatusThreads_createdDescr = 'Il numero di processi creati per gestire le connessioni. Se Threads_created è grosso, devi probabilmente aumentare il valore thread_cache_size. (Normalmente questo non fornisce un significatico incremento delle performace se hai una buona implementazione dei processi.)';
+$strShowStatusThreads_runningDescr = 'Il numero di processi non in attesa.';
+$strShowTableDimension = 'Mostra la dimensione delle tabelle';
+$strShowTables = 'Mostra le tabelle';
+$strShowThisQuery = 'Mostra di nuovo questa query';
+$strSimplifiedChinese = 'Cinese Semplificato';
+$strSingly = '(singolarmente)';
+$strSize = 'Dimensione';
+$strSkipQueries = 'Numero di record (query) da saltare a partire dall\'inizio';
+$strSlovak = 'Slovacco';
+$strSlovenian = 'Sloveno';
+$strSmallBigAll = 'Espandi/Contrai';
+$strSnapToGrid = 'Calamita alla griglia';
+$strSocketProblem = '(o il socket del server locale MySQL non è correttamente configurato)';
+$strSortByKey = 'Ordina per chiave';
+$strSorting = 'Ordinando';
+$strSort = 'Ordinamento';
+$strSpaceUsage = 'Spazio utilizzato';
+$strSpanish = 'Spagnolo';
+$strSplitWordsWithSpace = 'Le parole sono separate da spazi (" ").';
+$strSQLCompatibility = 'Modo di compatibilità SQL';
+$strSQLExportType = 'Tipo di esportazione';
+$strSQLParserBugMessage = 'C\'è la possibilità che ci sia un bug nel parser SQL. Per favore, esaminate la query accuratamente, e controllate che le virgolette siano corrette e non sbagliate. Altre possibili cause d\'errori possono essere che si stia cercando di uploadare un file binario al di fuori di un\'area di testo virgolettata. Si può anche provare la query MySQL dalla riga di comando di MySQL. L\'errore qui sotto restituito dal server MySQL, se ce n\'è uno, può anche aiutare nella diagnostica del problema. Se ci sono ancora problemi, o se il parser SQL di phpMyAdmin sbaglia quando invece l\'interfaccia a riga di comando non mostra problemi, si può ridurre la query SQL in ingresso alla singola query che causa problemi, e inviare un bug report con i dati riportati nella sezione CUT qui sotto:';
+$strSQLParserUserError = 'Pare che ci sia un errore nella query SQL immessa. L\'errore del server MySQL mostrato qui sotto, se c\'è, può anche aiutare nella risoluzione del problema';
+$strSQLQuery = 'query SQL';
+$strSQLResult = 'Risultato SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identificatore Non Valido';
+$strSQPBugUnclosedQuote = 'Virgolette Non Chiuse';
+$strSQPBugUnknownPunctuation = 'Stringa di Punctuation Sconosciuta';
+$strStandInStructureForView = 'Struttura Stand-in per le viste';
+$strStatCheckTime = 'Ultimo controllo';
+$strStatCreateTime = 'Creazione';
+$strStatement = 'Istruzioni';
+$strStatisticsOverrun = 'Su di un server sovraccarico, il contatore dei bytes potrebbe incrementarsi, e per questa ragione le statistiche riportate dal server MySQL potrebbero non essere corrette.';
+$strStatUpdateTime = 'Ultimo cambiamento';
+$strStatus = 'Stato';
+$strStorageEngine = 'Motore di Memorizzazione';
+$strStorageEngines = 'Motori di Memorizzazione';
+$strStrucCSV = 'dati CSV';
+$strStrucData = 'Struttura e dati';
+$strStrucExcelCSV = 'CSV per dati MS Excel';
+$strStrucNativeExcel = 'Dati nativi di MS Excel';
+$strStrucOnly = 'Solo struttura';
+$strStructPropose = 'Proponi la struttura della tabella';
+$strStructureForView = 'Struttura per la vista';
+$strStructure = 'Struttura';
+$strSubmit = 'Invia';
+$strSuccess = 'La query è stata eseguita con successo';
+$strSuhosin = 'Sul server è in esecuzione Suhosin. Controlla la documentazione: %sdocumentation%s per possibili problemi.';
+$strSum = 'Totali';
+$strSwedish = 'Svedese';
+$strSwekeyAuthenticating = 'Autenticazione...';
+$strSwekeyAuthFailed = 'Autentificazione hardware fallita';
+$strSwekeyNoKeyId = 'Il file %s non contiente nessuna chiave id';
+$strSwekeyNoKey = 'Nessuna chiave di autentificazione valida inserita';
+$strSwitchToDatabase = 'Passare al Database copiato';
+$strSwitchToTable = 'Passa alla tabella copiata';
+
+$strTableAlreadyExists = 'La tabella %s esiste già!';
+$strTableAlteredSuccessfully = 'La tabella %1$s è già stata modificata con successo';
+$strTableComments = 'Commenti sulla tabella';
+$strTableEmpty = 'Il nome della tabella è vuoto!';
+$strTableHasBeenCreated = 'La tabella %1$s è stata creata.';
+$strTableHasBeenDropped = 'La tabella %s è stata eliminata';
+$strTableHasBeenEmptied = 'La tabella %s è stata svuotata';
+$strTableHasBeenFlushed = 'La tabella %s è stata inizializzata';
+$strTableIsEmpty = 'La tabella sembra essere vuota!';
+$strTableMaintenance = 'Amministrazione tabella';
+$strTableName = 'Nome tabella';
+$strTableOfContents = 'Tabella dei contenuti';
+$strTableOptions = 'Opzioni della tabella';
+$strTables = '%s tabella(e)';
+$strTableStructure = 'Struttura della tabella';
+$strTable = 'Tabella';
+$strTakeIt = 'prendilo';
+$strTblPrivileges = 'Privilegi relativi alle tabelle';
+$strTempData = 'Dati temporanei';
+$strTextAreaLength = ' A causa della sua lunghezza,<br /> questo campo non può essere modificato ';
+$strTexyText = 'Testo "Texy!"';
+$strThai = 'Thai';
+$strThemeDefaultNotFound = 'Tema di default %s non trovato!';
+$strThemeNoPreviewAvailable = 'Nessuna preview disponibile.';
+$strThemeNotFound = 'Tema %s non trovato!';
+$strThemeNoValidImgPath = 'Nessun percorso per le immagini per il tema %s trovato!';
+$strThemePathNotFound = 'Percorso per il tema non trovato %s!';
+$strTheme = 'Tema / Stile';
+$strThisHost = 'Questo Host';
+$strThreads = 'Processi';
+$strThreadSuccessfullyKilled = 'Il thread %s è stato terminato con successo.';
+$strTimeoutInfo = 'Una precedente importazione è entrata in timeout, dopo un nuovo inoltro riprenderà dalla posizione: %d.';
+$strTimeoutNothingParsed = 'Nell\'ultima esecuzione nessun dato è stato processato, questo, solitamente, vuole dire che che phpMyAdmin non è in grado di ultimare l\'operazione fino a che non verrà aumentato il parametro php time limits.';
+$strTimeoutPassed = 'Superato il tempo limite dello script, se vuoi finire l\'importazione inoltra nuovamente il file e il processo riprenderà.';
+$strTime = 'Tempo';
+$strToFromPage = 'da/per pagina';
+$strToggleScratchboard = '(dis)attiva scratchboard';
+$strToggleSmallBig = 'Contrai/Espandi';
+$strToSelectRelation = 'Per selezionare una relazione, click :';
+$strTotal = 'Totali';
+$strTotalUC = 'Totale';
+$strTraditionalChinese = 'Cinese Tradizionale';
+$strTraditionalSpanish = 'Spagnolo tradizionale';
+$strTraffic = 'Traffico';
+$strTransactionCoordinator = 'Coordinatore delle transazioni';
+$strTransformation_application_octetstream__download = 'Visualizza un collegamento per trasferire i dati di un campo in formato binario. La prima opzione è il nome del file binario. La seconda opzione è un nome di campo possibile di una riga della tabella che contiene il nome di schedario. Se fornite una seconda opzione dovete avere la prima opzione settata ad una stringa vuota';
+$strTransformation_application_octetstream__hex = 'Mostra una rappresentazione esadecimale dei dati. Il primo parametro, opzionale, specifica ogni quanto deve essere aggiunto uno spazio (default a 2 nibbles).';
+$strTransformation_image_jpeg__inline = 'Mostra un thumbnalil cliccabile; opzioni: larghezza,altezza in pixel (mantiere la proporzione iniziale)';
+$strTransformation_image_jpeg__link = 'Mostra un link a questa immagine (download blob diretto, i.e.).';
+$strTransformation_image_png__inline = 'Vedi immagine/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Mostra i campi TIME, TIMESTAMP, DATETIME o il TIMESTAMP UNIX come data formattata. La prima opzione è l\'offset (in ore) che verrà aggiunto all\'ora (Default: 0). Usare la seconda opzione per specificare un differente formato di data/ora. La terza opzione determina se vuoi vedere l\'ora locale o UTC (usa "local" o "utc" per questo). In relazione a questo, il formato data ha differenti valori - per "local" guarda la documentazione della funzione PHP strftime(); per "utc" viene usata la funzione gmdate().';
+$strTransformation_text_plain__external = 'SOLO PER LINUX: Lancia un\'applicazione esterna e riempie i dati dei campi tramite lo standard input. Restituisce lo standard output dell\'applicazione. L\'impostazione predefinita è Tidy, per stampare in maniera corretta il codice HTML. Per motivi di sicurezza, dovete editare manualmente il file libraries/transformations/text_plain__external.inc.php e inserire gli strumenti che permettete di utilizzare. La prima opzione è così il numero del programma che volete utilizzare e la seconda sono i parametri per il programma. Il terzo parametro, se impostato a 1 convertirà l\'output utilizzando htmlspecialchars() (Predefinito: 1). Un quarto parametro, se impostato a 1 inserirà un NOWRAP al contenuto della cella così che l\'intero output sarà mostrato senza essere riformattato (Predefinito: 1)';
+$strTransformation_text_plain__formatted = 'Preserva l\'originale formattazione del campo. Nessun Escaping viene applicato.';
+$strTransformation_text_plain__imagelink = 'Mostra un collegamento ad una immagine esterna; il campo contiene il nome del file; la prima opzione è un prefisso come "http://tuodominio.com/", la seconda opzione è la larghezza in pixel, la terza è l\'altezza.';
+$strTransformation_text_plain__link = 'Mostra un collegamento, il campo contiene il nome del file; la prima opzione è un prefisso come "http://tuodominio.com/", la seconda opzione è un titolo per il collegamento.';
+$strTransformation_text_plain__sql = 'Formatta il testo come query SQL con evidenziazione della sintassi.';
+$strTransformation_text_plain__substr = 'Mostra soltanto una parte della stringa. La prima opzione è l\'offset che serve a definire dove inizia l\'output del vostro testo (Prefinito: 0). La seconda opzione è un offset che indica quanto testo viene restituito. Se vuoto, restituisce tutto il testo rimanente. La terza opzione definisce quali caratteri saranno aggiunti in fondo all\'output quando una soptto-stringa viene restituita (Predefinito: ...) .';
+$strTriggers = 'Triggers';
+$strTruncateQueries = 'Tronca le Query Mostrate';
+$strTurkish = 'Turco';
+$strType = 'Tipo';
+
+$strUkrainian = 'Ucraino';
+$strUncheckAll = 'Deseleziona tutti';
+$strUnicode = 'Unicode';
+$strUnique = 'Unica';
+$strUnknown = 'sconosciuto';
+$strUnselectAll = 'Deseleziona tutto';
+$strUnsupportedCompressionDetected = 'Stai cercando di importare un file con un tipo di compressione non supportato. Altrimenti il supporto per questo tipo di compressione non è stato ancora implementato o è stato disabilitato dalla tua configurazione.';
+$strUpdatePrivMessage = 'Hai aggiornato i permessi per %s.';
+$strUpdateProfileMessage = 'Il profilo è stato aggiornato.';
+$strUpdateQuery = 'Aggiorna Query';
+$strUpdComTab = 'Prego leggere la documentazione su come aggiornare la vostra tabella Column_comments';
+$strUpgrade = 'Si dovrebbe aggiornare %s alla versione %s o successiva.';
+$strUploadErrorCantWrite = 'Non riesco a scrivere il file su disco.';
+$strUploadErrorExtension = 'Caricamento del file interrotto per estensione errata.';
+$strUploadErrorFormSize = 'Il file caricato eccede il parametro MAX_FILE_SIZE specificato nel form HTML.';
+$strUploadErrorIniSize = 'Il file caricato eccede il parametro upload_max_filesize in php.ini.';
+$strUploadErrorNoTempDir = 'Non trovo la cartella temporanea.';
+$strUploadErrorPartial = 'Il file è stato solo parzialmente caricato.';
+$strUploadErrorUnknown = 'Errore sconosciuto nel caricamento del file.';
+$strUploadLimit = 'Stai probabilmente cercando di caricare sul server un file troppo grosso. Fai riferimento alla documentazione %sdocumentation%s Per i modi di aggirare questo limite.';
+$strUploadsNotAllowed = 'Non è permesso l\'upload dei file su questo server.';
+$strUsage = 'Utilizzo';
+$strUseBackquotes = 'Usa i backquotes con i nomi delle tabelle e dei campi';
+$strUseHostTable = 'Utilizza la Tabella dell\'Host';
+$strUserAlreadyExists = 'L\'utente %s esiste già!';
+$strUserEmpty = 'Il nome utente è vuoto!';
+$strUserName = 'Nome utente';
+$strUserNotFound = 'L\'utente selezionato non è stato trovato nella tabella dei privilegi.';
+$strUserOverview = 'Vista d\'insieme dell\'utente';
+$strUsersDeleted = 'Gli utenti selezionati sono stati cancellati con successo.';
+$strUsersHavingAccessToDb = 'Utenti che hanno accesso a "%s"';
+$strUser = 'Utente';
+$strUseTabKey = 'Usare il tasto TAB per spostare il cursore di valore in valore, o CTRL+frecce per spostarlo altrove';
+$strUseTables = 'Utilizza tabelle';
+$strUseTextField = 'Utilizza campo text';
+$strUseThisValue = 'Usa questa opzione';
+
+$strValidateSQL = 'Valida SQL';
+$strValidatorError = 'L\'SQL validator non può essere inizializzato. Prego controllare di avere installato le estensioni php necessarie come descritto nella %sdocumentazione%s.';
+$strValue = 'Valore';
+$strVar = 'Variabile';
+$strVersionInformation = 'Informazioni sulla versione';
+$strViewDumpDatabases = 'Visualizza il dump (schema) dei databases';
+$strViewDumpDB = 'Visualizza dump (schema) del database';
+$strViewDump = 'Visualizza dump (schema) della tabella';
+$strViewHasAtLeast = 'Questa visuale ha, come minimo, questo numero di righe. Per informazioni controlla la %sdocumentazione%s.';
+$strViewHasBeenDropped = 'La vista %s è stata eliminata';
+$strViewImage = 'Visualizza immagine';
+$strViewName = 'Nome VISTA';
+$strViewVideo = 'Visualizza video';
+$strView = 'Vista';
+
+$strWebServerUploadDirectory = 'directory di upload del web-server';
+$strWebServerUploadDirectoryError = 'La directory impostata per l\'upload non può essere trovata';
+$strWebServer = 'Web server';
+$strWelcome = 'Benvenuto in %s';
+$strWestEuropean = 'Europeo Occidentale';
+$strWiki = 'Wiki';
+$strWildcard = 'wildcard';
+$strWindowNotFound = 'La finestra destinataria del browser non può essere aggiornata. Può darsi che sia stata chiusa la finestra madre o che il vostro browser stia bloccando gli aggiornamenti fra browsers a causa di qualche impostazione di sicurezza';
+$strWithChecked = 'Se selezionati:';
+$strWriteRequests = 'Richieste di scrittura';
+$strWrongUser = 'Nome utente o password errati. Accesso negato.';
+
+$strXML = 'XML';
+
+$strYes = 'Sì';
+
+$strZeroRemovesTheLimit = 'N.B.: 0 (zero) significa nessun limite.';
+$strZip = '"compresso con zip"';
+
+// To translate:
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/japanese-utf-8.inc.php b/lang/japanese-utf-8.inc.php
new file mode 100644
index 0000000000..0211f14bdb
--- /dev/null
+++ b/lang/japanese-utf-8.inc.php
@@ -0,0 +1,1453 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by Yukihiro Kawada <kawada at den.fujifilm.co.jp>
+ * Tadashi Jokagi <elf2000 at users.sourceforge.net>
+ * Kenichi Ishigaki <ishigaki at tcool.org>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('バイト', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$mysql_4_1_doc_lang = 'ja';
+
+$day_of_week = array('日', '月', '火', '水', '木', '金', '土');
+$month = array('1 月','2 月','3 月','4 月','5 月','6 月','7 月','8 月','9 月','10 月','11 月','12 月');
+// See http://www.php.net/manual/ja/function.strftime.php to define the
+// variable below
+$datefmt = '%Y 年 %B %d 日 %H:%M';
+$timespanfmt = '%s 日 %s 時間 %s 分 %s 秒';
+
+$strAbortedClients = '中断';
+$strAccessDeniedCreateConfig = '設定ファイルが作成されていないものと思われます。%1$sセットアップスクリプト%2$s を利用して設定ファイルを作成してください';
+$strAccessDeniedExplanation = 'MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください';
+$strAccessDenied = 'アクセスは拒否されました';
+$strActions = 'アクション';
+$strAction = '操作';
+$strAddAutoIncrement = 'AUTO_INCREMENT 値を追加する';
+$strAddClause = '%s を追加';
+$strAddConstraints = '制約を追加する';
+$strAddDeleteColumn = 'フィールド列を追加・削除する';
+$strAddDeleteRow = '条件行を追加・削除する';
+$strAddFields = '%s 個のフィールドを追加する';
+$strAddHeaderComment = 'ヘッダにカスタムコメントを追加 (\\n で改行)';
+$strAddIntoComments = '追加コメント';
+$strAddNewField = '新規フィールドを追加する';
+$strAddPrivilegesOnDb = 'データベースに特権を追加';
+$strAddPrivilegesOnTbl = 'テーブルに特権を追加';
+$strAddSearchConditions = '検索条件("where"節の内容)を追加してください:';
+$strAddToIndex = 'インデックスに&nbsp;%s&nbsp; の列を追加しました';
+$strAddUserMessage = '新しいユーザを追加しました';
+$strAddUser = '新しいユーザを追加する';
+$strAdministration = '管理';
+$strAfterInsertBack = '前のページに戻る';
+$strAfterInsertNewInsert = '新しいレコードを追加する';
+$strAfterInsertNext = '次の行を編集する';
+$strAfterInsertSame = 'このページに戻る';
+$strAfter = '指定カラムの後に %s';
+$strAllowInterrupt = '制限時間が近くなったときにスクリプト側でインポートを中断できるようにします。大きなファイルをインポートする場合には便利ですが、トランザクションが壊れることもあります';
+$strAllTableSameWidth = 'すべてのテーブルを同じ幅で表示しますか?';
+$strAll = '全部';
+$strAlterOrderBy = 'テーブルの並び順';
+$strAnalyzeTable = 'テーブルを分析する';
+$strAnalyze = '分析';
+$strAnd = 'および';
+$strAndThen = '続いて';
+$strAngularLinks = '角リンク';
+$strAnIndex = '%s にインデックスを追加しました';
+$strAny = 'すべて';
+$strAnyHost = 'すべてのホスト';
+$strAnyUser = 'すべてのユーザ';
+$strApproximateCount = '正確な数字とは限りません。FAQ 3.11 をご覧ください';
+$strAPrimaryKey = '%s に主キーを追加しました';
+$strArabic = 'アラビア語';
+$strArmenian = 'アルメニア語';
+$strAscending = '昇順';
+$strAsDefined = 'ユーザ定義';
+$strAtBeginningOfTable = 'テーブルの先頭';
+$strAtEndOfTable = 'テーブルの末尾';
+$strAttr = '属性';
+$strAutomaticLayout = '自動レイアウト';
+
+$strBack = '戻る';
+$strBaltic = 'バルト諸語';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = ' バイナリ';
+$strBinaryDoNotEdit = ' バイナリ - 編集不可';
+$strBinaryLog = 'バイナリログ';
+$strBinLogEventType = 'イベント種別';
+$strBinLogInfo = '情報';
+$strBinLogName = 'ログ名';
+$strBinLogOriginalPosition = '元の位置';
+$strBinLogPosition = '位置';
+$strBinLogServerId = 'サーバ ID';
+$strBookmarkAllUsers = 'すべてのユーザがこのブックマークを利用できるようにする';
+$strBookmarkCreated = 'ブックマーク %s を作成しました';
+$strBookmarkDeleted = 'ブックマークを削除しました';
+$strBookmarkLabel = 'ラベル';
+$strBookmarkQuery = 'ブックマークされている SQL';
+$strBookmarkReplace = '同名のブックマークは差し替える';
+$strBookmarkThis = 'この SQL をブックマークする';
+$strBookmarkView = '表示のみ';
+$strBrowseDistinctValues = '重複している値を表示しない';
+$strBrowseForeignValues = '参照されている値を表示する';
+$strBrowse = '表示';
+$strBufferPool = 'バッファプール';
+$strBufferPoolActivity = 'バッファプールの利用状況';
+$strBufferPoolUsage = 'バッファプールの使用量';
+$strBufferReadMissesInPercent = '読み込みミス(%)';
+$strBufferReadMisses = '読み込みミス';
+$strBufferWriteWaitsInPercent = '書き込み待ち(%)';
+$strBufferWriteWaits = '書き込み待ち';
+$strBulgarian = 'ブルガリア語';
+$strBusyPages = 'ビジーなページ数';
+$strBzip = '"bzip 形式"';
+
+$strCalendar = 'カレンダー';
+$strCancel = 'キャンセル';
+$strCanNotLoadExportPlugins = 'エクスポートプラグインをロードできません。正しくインストールされているか確認してください!';
+$strCanNotLoadImportPlugins = 'インポートプラグインをロードできません。正しくインストールされているか確認してください!';
+$strCannotLogin = 'MySQL サーバにログインできません';
+$strCantLoad = '[a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] 拡張をロードできません。PHP の設定を確認してください';
+$strCantLoadRecodeIconv = '文字セットの変換に必要な iconv ないし GNU recode 拡張をロードできません。PHP 側でこの拡張を有効にするか、phpMyAdmin 側で文字セットの変換を無効にしてください';
+$strCantRenameIdxToPrimary = 'インデックス名を PRIMARY に変更することはできません!';
+$strCantUseRecodeIconv = '必要な拡張はロードされているようですが、iconv や libiconv、recode_string の関数を利用できません。PHP の設定を確認してください';
+$strCardinality = '一意な値の数';
+$strCaseInsensitive = '大文字小文字を区別しない';
+$strCaseSensitive = '大文字小文字を区別する';
+$strCentralEuropean = '中央ヨーロッパ諸語';
+$strChangeCopyModeCopy = '元のユーザも残す';
+$strChangeCopyModeDeleteAndReload = 'ユーザテーブルから元のユーザを削除し、特権をリロードする';
+$strChangeCopyModeJustDelete = 'ユーザテーブルから元のユーザを削除する';
+$strChangeCopyModeRevoke = '元のユーザの特権をすべて無効にしてから削除する';
+$strChangeCopyMode = '同じ特権を持つ新しいユーザを作る';
+$strChangeCopyUser = 'ログイン情報の変更 / ユーザの複製';
+$strChangeDisplay = '表示するフィールドを選択してください';
+$strChangePassword = 'パスワードを変更する';
+$strChange = '変更';
+$strCharsetOfFile = 'ファイルの文字セット:';
+$strCharsetsAndCollations = '文字セットと照合順序';
+$strCharsets = '文字セット';
+$strCharset = '文字セット';
+$strCheckAll = 'すべてチェックする';
+$strCheckOverhead = 'オーバーヘッドのあるテーブルを確認してください';
+$strCheckPrivsLong = 'データベース &quot;%s&quot; の特権を確認してください';
+$strCheckPrivs = '特権をチェックする';
+$strCheckTable = 'テーブルをチェックする';
+$strCheck = '確認';
+$strChoosePage = '編集するページを選択してください';
+$strColComFeat = '列コメント表示機能'; // XXX
+$strCollation = '照合順序';
+$strColumnNames = 'カラム名';
+$strColumnPrivileges = 'このカラムに固有の特権';
+$strCommand = 'コマンド';
+$strComment = 'コメント';
+$strComments = 'コメント';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 互換';
+$strCompleteInserts = '完全な INSERT 文を作成する';
+$strCompressionWillBeDetected = 'インポートしたファイルの圧縮方法は次の中から自動検出されます: %s';
+$strCompression = '圧縮';
+$strConfigDefaultFileError = 'デフォルトの設定を読み込めませんでした: "%1$s"';
+$strConfigFileError = 'phpMyAdmin の設定ファイルを読み込めませんでした! <br />文法エラーが発生したか、ファイルが見つかりません。<br />下のリンクから直接設定ファイルを読み込んで PHP のエラーメッセージを確認してください。たいていの場合はどこかに引用符やセミコロンの抜けがあります。<br />空白のページが表示されれば問題なしです';
+$strConfigureTableCoord = 'テーブル %s の座標を設定してください';
+$strConnectionError = '接続できません: 設定が無効です';
+$strConnections = '接続';
+$strConstraintsForDumped = 'ダンプしたテーブルの制約';
+$strConstraintsForTable = 'テーブルの制約';
+$strControluserFailed = '設定ファイルに定義されている管理ユーザ(controluser)での接続に失敗しました';
+$strCookiesRequired = 'クッキーを有効にしてください';
+$strCopy = 'コピー';
+$strCopyDatabaseOK = 'データベース %s を %s にコピーしました';
+$strCopyTable = 'テーブルを(database<b>.</b>table)にコピーする:';
+$strCopyTableOK = 'テーブル %s を %s にコピーしました';
+$strCopyTableSameNames = '同じテーブルにはコピーできません!';
+$strCouldNotKill = 'スレッド %s の終了に失敗しました。すでに閉じているようです';
+$strCreateDatabaseBeforeCopying = 'コピーの前に CREATE DATABASE する';
+$strCreateIndex = '&nbsp;%s&nbsp; のカラムにインデックスを作成する';
+$strCreateIndexTopic = '新しいインデックスを作成する';
+$strCreateNewDatabase = '新規データベースを作成する';
+$strCreateNewTable = 'データベース %s に新しいテーブルを作成する';
+$strCreatePage = '新しいページを作成する';
+$strCreatePdfFeat = 'PDF の作成';
+$strCreateRelation = 'リレーションを作成';
+$strCreateTable = 'テーブルを作成';
+$strCreateUserDatabaseName = '同名のデータベースを作成してすべての特権を与える';
+$strCreateUserDatabaseNone = 'なし';
+$strCreateUserDatabaseWildcard = 'ワイルドカード(ユーザ名_%)に該当するデータベースにすべての特権を与える';
+$strCreateUserDatabase = 'ユーザ専用データベース';
+$strCreate = '作成';
+$strCreationDates = '作成/更新/検査日';
+$strCriteria = '条件';
+$strCroatian = 'クロアチア語';
+$strCSV = 'CSV';
+$strCustomColor = 'カスタムカラー';
+$strCyrillic = 'キリル諸語';
+$strCzechSlovak = 'チェコのスロバキア語';
+$strCzech = 'チェコ語';
+
+$strDanish = 'デンマーク語';
+$strData = 'データ';
+$strDatabase = 'データベース';
+$strDatabaseEmpty = 'データベース名が空です!';
+$strDatabaseExportOptions = 'データベースエクスポートオプション';
+$strDatabaseHasBeenCreated = 'データベース %1$s を作成しました。';
+$strDatabaseHasBeenDropped = 'データベース %s を削除しました';
+$strDatabases = 'データベース';
+$strDatabasesDropped = 'データベース %s を正常に削除しました';
+$strDatabasesStatsDisable = '統計を無効にする';
+$strDatabasesStatsEnable = '統計を有効にする';
+$strDatabasesStatsHeavyTraffic = '注意: データベースの統計を有効にするとウェブサーバと MySQL サーバの間の通信量が激増することがあります';
+$strDatabasesStats = 'データベースの統計';
+$strDataDict = 'データ辞書';
+$strDataOnly = 'データのみ';
+$strDataPages = 'データが含まれているページ数';
+$strDBComment = 'データベースのコメント:';
+$strDBCopy = 'データベースのコピー先';
+$strDbIsEmpty = 'データベースが空のようです!';
+$strDbPrivileges = 'データベースに固有の特権';
+$strDBRename = '新しいデータベース名';
+$strDbSpecific = 'データベース固有';
+$strDefaultEngine = '%s はこの MySQL サーバのデフォルトストレージエンジンです';
+$strDefaultValueHelp = 'デフォルト値にはひとつの値のみ入力してください。バックスラッシュによるエスケープや引用符を含めることはできません。例: a';
+$strDefault = 'デフォルト値';
+$strDefragment = 'テーブルのデフラグ';
+$strDelayedInserts = '遅延インサートを使用する';
+$strDeleteAndFlushDescr = 'これはもっともクリーンな方法ですが、特権のリロードに時間がかかることがあります';
+$strDeleteAndFlush = 'ユーザを削除して特権をリロードする';
+$strDeleted = '行を削除しました';
+$strDeleteNoUsersSelected = '削除するユーザが選択されていません!';
+$strDeleteRelation = 'リレーションを削除';
+$strDelete = '削除';
+$strDeleting = '%s を削除中です';
+$strDelimiter = 'デリミタ';
+$strDelOld = 'このページには存在しないテーブルへの参照があります。これらの参照を削除しますか?';
+$strDescending = '降順';
+$strDescription = '説明';
+$strDesigner = 'デザイナ';
+$strDesignerHelpDisplayField = '表示するフィールドはピンク色で表示されます。表示非表示を切り替える場合は「表示するフィールドを選択する」というアイコンをクリックしてから適切なフィールド名をクリックください';
+$strDetails = '詳細...';
+$strDictionary = '辞書';
+$strDirectLinks = '直リンク';
+$strDirtyPages = 'ダーティページ';
+$strDisabled = '無効';
+$strDisableForeignChecks = '外部キーのチェックを無効にする';
+$strDisplayFeat = '表示機能';
+$strDisplayOrder = '表示順:';
+$strDisplayPDF = 'PDF スキーマを表示する';
+$strDoAQuery = '"query by example"を実行 (ワイルドカード: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'ドキュメント';
+$strDoYouReally = '本当に実行しますか?';
+$strDropDatabaseStrongWarning = 'データベースを完全に削除しようとしています!';
+$strDropUsersDb = 'ユーザと同名のデータベースを削除する';
+$strDrop = '削除';
+$strDumpingData = 'テーブルのデータをダンプしています';
+$strDumpSaved = 'ダンプをファイル %s に保存しました';
+$strDumpXRows = '%s 行をダンプします(開始行: %s)';
+$strDynamic = '動的';
+
+$strEditPDFPages = 'PDF ページを編集する';
+$strEditPrivileges = '特権を編集';
+$strEdit = '編集';
+$strEffective = '有効';
+$strEmptyResultSet = '返り値が空でした(行数0)';
+$strEmpty = '空にする';
+$strEnabled = '有効';
+$strEncloseInTransaction = 'エクスポートをトランザクションで囲む';
+$strEncto = 'エンコーディングへ変換する'; // encoding convert
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = '最後';
+$strEngineAvailable = '%s は有効になっています';
+$strEngineDisabled = '%s は無効になっています';
+$strEngines = 'エンジン';
+$strEngineUnsupported = 'この MySQL サーバは %s ストレージエンジンをサポートしていません';
+$strEnglishPrivileges = '注意: MySQL の特権名は英語で表示されます';
+$strEnglish = '英語';
+$strError = 'エラー';
+$strErrorInZipFile = 'ZIP アーカイブにエラーがあります:';
+$strErrorRelationAdded = 'エラー: リレーションを追加できませんでした';
+$strErrorRelationExists = 'エラー: リレーションはすでに存在しています';
+$strErrorRenamingTable = 'テーブルを %1$s から %2$s にリネームするときにエラーが発生しました';
+$strErrorSaveTable = 'デザイナの座標を保存するときにエラーが発生しました';
+$strEscapeWildcards = '_ や % というワイルドカードを文字として使用するときは \ でエスケープしてください';
+$strEsperanto = 'エスペラント語';
+$strEstonian = 'エストニア語';
+$strEvent = 'イベント';
+$strEvents = 'イベント';
+$strExcelEdition = 'Excel のエディション';
+$strExecuteBookmarked = 'ブックマークされたクエリを実行する';
+$strExplain = 'EXPLAIN で確認';
+$strExport = 'エクスポート';
+$strExportImportToScale = '倍率にあわせたエクスポート/インポート';
+$strExportMustBeFile = 'この形式のエクスポートはファイルに保存する必要があります!';
+$strExtendedInserts = '長い INSERT 文を作成する';
+$strExtra = 'その他';
+
+$strFailedAttempts = '失敗回数';
+$strField = 'フィールド';
+$strFieldHasBeenDropped = 'フィールド %s を削除しました';
+$strFieldInsertFromFileTempDirNotExists = 'アップロードされたファイルの移動に失敗しました。FAQ 1.11 をご覧ください。';
+$strFields = 'フィールド';
+$strFieldsEnclosedBy = 'フィールド囲み記号';
+$strFieldsEscapedBy = 'フィールドのエスケープ記号';
+$strFieldsTerminatedBy = 'フィールド区切り記号';
+$strFileAlreadyExists = 'サーバ上に既存のファイル %s があります。ファイル名を変更するか、上書きオプションを有効にしてください';
+$strFileCouldNotBeRead = 'ファイルを読み込めませんでした';
+$strFileNameTemplateDescription = 'このテンプレートは %1$sstrftime%2$s を使って解釈されます。そのため、時間の書式文字列を利用できます。また、次の変換も行われます。%3$s それ以外のテキストは修正されません';
+$strFileNameTemplateDescriptionDatabase = 'データベース名';
+$strFileNameTemplateDescriptionServer = 'サーバ名';
+$strFileNameTemplateDescriptionTable = 'テーブル名';
+$strFileNameTemplateRemember = 'テンプレートを記憶させる';
+$strFileNameTemplate = 'ファイル名のテンプレート';
+$strFiles = 'ファイル';
+$strFileToImport = 'インポートするファイル';
+$strFixed = '固定';
+$strFlushPrivilegesNote = '注意: phpMyAdmin は MySQL の特権テーブルから直接ユーザ特権を取得しますが、手作業で特権を更新した場合は phpMyAdmin が利用しているテーブルの内容とサーバの特権の内容が一致しなくなることがありますので、作業を続ける前に %s特権リロード%s をしてください';
+$strFlushQueryCache = 'クエリキャッシュをフラッシュする';
+$strFlushTable = 'テーブルをフラッシュする("FLUSH")';
+$strFlushTables = 'すべてのテーブルをフラッシュする(閉じる)';
+$strFontSize = 'フォントサイズ';
+$strForeignKeyError = '%1$s に外部キーを作成するときにエラーが発生しました (データ型を確認してください)';
+$strForeignKeyRelationAdded = '外部キーを追加しました';
+$strFormat = 'フォーマット';
+$strFormEmpty = 'フォームに入力されていない値があります!';
+$strFreePages = 'フリーページ数';
+$strFullText = '全文';
+$strFunctions = '関数';
+$strFunction = '関数';
+
+$strGenBy = '生成環境';
+$strGeneralRelationFeat = '一般的なリレーション機能';
+$strGeneratePassword = 'パスワードを生成する';
+$strGenerate = '生成する';
+$strGenTime = '生成時間';
+$strGeorgian = 'グルジア語';
+$strGerman = 'ドイツ語';
+$strGlobal = 'グローバル';
+$strGlobalPrivileges = 'グローバル特権';
+$strGlobalValue = 'グローバル値';
+$strGo = '実行する';
+$strGrantOption = '権限委譲';
+$strGreek = 'ギリシア語';
+$strGzip = '"gzip 形式"';
+
+$strHandler = 'ハンドラ';
+$strHasBeenAltered = 'を変更しました';
+$strHaveToShow = '最低ひとつは表示するカラムを選択してください';
+$strHebrew = 'ヘブライ語';
+$strHelp = 'ヘルプ';
+$strHexForBLOB = 'BLOBに16進数表記を利用する';
+$strHideShowAll = 'すべて隠す/表示';
+$strHideShowNoRelation = 'リレーションのないテーブルを隠す/表示';
+$strHide = '隠す';
+$strHome = 'メインページへ';
+$strHomepageOfficial = 'phpMyAdmin のオフィシャルサイト';
+$strHost = 'ホスト';
+$strHostEmpty = 'ホスト名が空です!';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'ハンガリー語';
+
+$strIcelandic = 'アイスランド語';
+$strId = 'ID';
+$strIdxFulltext = '全文';
+$strIEUnsupported = 'Internet Explorer ではこの機能は利用できません';
+$strIgnoreDuplicates = '重複している行を無視する';
+$strIgnoreInserts = 'INSERT IGNORE を使用する';
+$strIgnore = '無視';
+$strImport = 'インポート';
+$strImportExportCoords = 'PDF スキーマの座標をインポート/エクスポートする';
+$strImportFiles = 'インポートファイル';
+$strImportFormat = 'インポートするファイルの形式';
+$strImportSuccessfullyFinished = 'インポートは正常終了しました。%d 個のクエリを実行しました';
+$strIndex = 'インデックス';
+$strIndexes = 'インデックスサイズ';
+$strIndexesSeemEqual = 'インデックス %1$s と %2$s は同一のもののようです。一方は削除してもよいかもしれません。';
+$strIndexHasBeenDropped = 'インデックス %s を削除しました';
+$strIndexName = 'インデックス名:';
+$strIndexType = 'インデックスの種類:';
+$strIndexWarningTable = 'テーブル `%s` のインデックスに問題があります';
+$strInnoDBAutoextendIncrementDesc = 'スペースがいっぱいになったときに自動的にテーブルを拡張する場合に追加されるテーブルの大きさ';
+$strInnoDBAutoextendIncrement = '自動拡張時に追加されるテーブルの大きさ';
+$strInnoDBBufferPoolSizeDesc = 'InnoDB がテーブルのデータやインデックスをキャッシュするのに使うメモリバッファ量';
+$strInnoDBBufferPoolSize = 'バッファプールの大きさ';
+$strInnoDBDataFilePath = 'データファイル';
+$strInnoDBDataHomeDir = 'データのホームディレクトリ';
+$strInnoDBDataHomeDirDesc = 'すべての InnoDB データファイルに共通するディレクトリパス';
+$strInnoDBPages = 'ページ';
+$strInnodbStat = 'InnoDB ステータス';
+$strInsecureMySQL = 'お使いの設定ファイルに MySQL のデフォルト特権アカウントに相当する設定 (root ユーザでパスワードなし) が含まれています。お使いの MySQL サーバはこのデフォルト設定で動作しているため不正アクセス可能な状態になっています。このセキュリティホールはかならず閉ざしてください';
+$strInsertAsNewRow = '新しい行として挿入する';
+$strInsertedRowId = 'id %1$d の行を挿入しました';
+$strInsert = '挿入';
+$strInterface = 'インタフェース';
+$strInternalAndForeign = '対応する外部リレーションが存在する場合、内部リレーションは必要ありません。';
+$strInternalRelationAdded = '内部リレーションを追加しました';
+$strInternalRelations = '内部リレーション';
+$strInUse = '使用中';
+$strInvalidAuthMethod = '設定ファイルに無効な認証方法が指定されています:';
+$strInvalidColumnCount = 'カラム数は 0 より大きくなければいけません';
+$strInvalidColumn = '不正なカラム(%s)が指定されています!';
+$strInvalidCSVFieldCount = 'CSV 入力のフィールド数が不正です (行: %d)';
+$strInvalidCSVFormat = 'CSV 入力の書式が不正です (行: %d)';
+$strInvalidCSVParameter = 'CSV インポートのパラメータが不正です: %s';
+$strInvalidDatabase = '不正なデータベースです';
+$strInvalidFieldAddCount = '最低ひとつはフィールドを追加してください';
+$strInvalidFieldCount = 'テーブルには最低ひとつのフィールドが必要です';
+$strInvalidLDIImport = 'このプラグインでは圧縮されたファイルのインポートはできません!';
+$strInvalidRowNumber = '%d は不正な行番号です';
+$strInvalidServerHostname = 'サーバ %1$s のホスト名が不正です。設定を確認してください';
+$strInvalidServerIndex = 'サーバのインデックスが不正です: "%s"';
+$strInvalidTableName = 'テーブル名が不正です';
+
+$strJapanese = '日本語';
+$strJoins = '結合';
+$strJumpToDB = '&quot;%s&quot; データベースに移動';
+$strJustDeleteDescr = '特権がリロードされるまでは「削除」されたユーザもふつうにサーバにアクセスできます';
+$strJustDelete = '特権テーブルからユーザを削除するだけにする';
+
+$strKanjiEncodConvert = '漢字コード変換'; // kanji code convert
+$strKeepPass = 'パスワードは変更しない';
+$strKeyCache = 'キーキャッシュ';
+$strKeyname = 'キー名';
+$strKill = '停止';
+$strKnownExternalBug = '%s の機能には既知のバグがあります。%s をご覧ください';
+$strKorean = '韓国語';
+
+$strLandscape = '横向き';
+$strLanguageUnknown = '言語ファイルが登録されていません: %1$s';
+$strLanguage = '言語';
+$strLatchedPages = 'ラッチされているページ';
+$strLatexCaption = 'テーブルのキャプション';
+$strLatexContent = 'テーブル __TABLE__ の内容';
+$strLatexContinuedCaption = 'テーブルのキャプション(続き)';
+$strLatexContinued = '(続き)';
+$strLatexIncludeCaption = 'テーブルのキャプションを含める';
+$strLatexLabel = 'ラベルキー';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'テーブル __TABLE__ の構造';
+$strLatvian = 'ラトビア語';
+$strLDI = 'LOAD DATA する CSV';
+$strLDILocal = 'LOCAL キーワードを使用する';
+$strLengthSet = '長さ/値';
+$strLimitNumRows = 'ページあたりの行数';
+$strLinesTerminatedBy = '行の終端記号';
+$strLinkNotFound = 'リンク先が見つかりません';
+$strLinksTo = 'リンク先';
+$strLithuanian = 'リトアニア語';
+$strLocalhost = 'ローカル';
+$strLocationTextfile = 'テキストファイルの位置';
+$strLogin = 'ログイン';
+$strLoginInformation = 'ログイン情報';
+$strLogout = 'ログアウト';
+$strLogPassword = 'パスワード:';
+$strLogServer = 'サーバ';
+$strLogUsername = 'ユーザ名:';
+$strLongOperation = 'この作業には時間がかかることがあります。続行しますか?';
+
+$strMaxConnects = '最大同時接続数';
+$strMaximalQueryLength = '作成するクエリの最大長';
+$strMaximumSize = '最長: %s%s';
+$strMbExtensionMissing = 'PHP の mbstring 拡張が見つかりませんでした。マルチバイト文字セットを使用しているようですが、mbstring 拡張がないと phpMyAdmin は文字列を正しく分割できないため予期しない結果になることがあります';
+$strMbOverloadWarning = 'PHP の設定で mbstring.func_overload が有効になっています。phpMyAdmin はこのオプションに対応していないため、データが破壊されることがあります!';
+$strMIME_available_mime = '利用できる MIME タイプ';
+$strMIME_available_transform = '利用できる変換機能';
+$strMIME_description = '説明';
+$strMIME_MIMEtype = 'MIME タイプ';
+$strMIME_nodescription = 'この変換機能には説明がありません。<br />%s の動作については作者にご確認ください';
+$strMIME_transformation_note = '利用可能な変換オプションや MIME タイプの変換の一覧については %s変換機能の説明%s をご覧ください';
+$strMIME_transformation_options_note = '変換オプションの値の書式: \'a\',\'b\',\'c\'...<br />バックスラッシュ ("\") やシングルクォート ("\'") を値に含める必要がある場合は ( \\\\xyz や a\\\'b のように) バックスラッシュでエスケープしてください';
+$strMIME_transformation_options = '変換オプション';
+$strMIME_transformation = 'ブラウザ変換機能';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE';
+$strMIME_without = 'イタリック表示されている MIME タイプには個別の変換関数はありません';
+$strModifications = '修正を保存しました';
+$strModifyIndexTopic = 'インデックスを修正する';
+$strModify = '修正';
+$strMoveMenu = 'メニューを移動する';
+$strMoveTableOK = 'テーブル %s を %s に移動しました';
+$strMoveTableSameNames = '同じテーブルには移動できません!';
+$strMoveTable = 'テーブルの移動先(database<b>.</b>table):';
+$strMultilingual = '多言語';
+$strMyISAMDataPointerSize = 'データポインタのサイズ';
+$strMyISAMDataPointerSizeDesc = 'MAX_ROWS オプションを指定せずに MyISAM テーブルを作成するときに CREATE TABLE が使用するデフォルトのポインタサイズ (バイト単位)';
+$strMyISAMMaxExtraSortFileSizeDesc = 'MyISAM のインデックスを高速生成するときに利用される一時ファイルとキーキャッシュの差がここで指定した値以上に大きくなる場合は、キーキャッシュ法が使われます';
+$strMyISAMMaxExtraSortFileSize = 'インデックス作成時に利用する一時ファイルの最大サイズ';
+$strMyISAMMaxSortFileSizeDesc = 'MyISAM インデックスを再作成するとき (REPAIR TABLE や ALTER TABLE、LOAD DATA INFILE の最中) に利用できる一時ファイルの最大サイズ';
+$strMyISAMMaxSortFileSize = 'ソート用の一時ファイルの最大サイズ';
+$strMyISAMRecoverOptionsDesc = 'クラッシュした MyISAM テーブルを自動修復するときのモード (サーバ起動オプション --myisam-recover で設定されるもの)';
+$strMyISAMRecoverOptions = '自動修復モード';
+$strMyISAMRepairThreadsDesc = 'この値が 1 より大きい場合は MyISAM テーブルのインデックスも修復中にソートプロセスによって (スレッドごとに) 同時作成されます';
+$strMyISAMRepairThreads = 'スレッドの修復';
+$strMyISAMSortBufferSize = 'ソートバッファのサイズ';
+$strMyISAMSortBufferSizeDesc = 'REPAIR TABLE の最中に MyISAM のインデックスをソートするとき、あるいは CREATE INDEX や ALTER TABLE でインデックスを作成するときに割り当てられるバッファ';
+$strMySQLCharset = 'MySQL の文字セット';
+$strMysqlClientVersion = 'MySQL クライアントのバージョン';
+$strMySQLConnectionCollation = 'MySQL 接続の照合順序';
+$strMysqlLibDiffersServerVersion = 'お使いの PHP MySQL ライブラリのバージョン %s が MySQL サーバのバージョン %s と異なります。これは予期しない不具合を起こす可能性があります。';
+$strMySQLSaid = 'MySQLのメッセージ: ';
+$strMySQLShowProcess = 'MySQL プロセスの表示';
+
+$strName = '名前';
+$strNext = '次へ';
+$strNo = 'いいえ';
+$strNoActivity = '%s 秒以上操作をしませんでした。ログインしなおしてください';
+$strNoDatabasesSelected = 'データベースが選択されていません';
+$strNoDatabases = 'データベースが存在しません';
+$strNoDataReceived = 'インポートするデータを受信できませんでした。ファイル名が送信されていないか、ファイルサイズが PHP の設定で許可された最大値を超えています。FAQ 1.16をご覧ください';
+$strNoDescription = '説明がありません';
+$strNoDetailsForEngine = 'このストレージエンジンにはステータスの詳細情報はありません';
+$strNoDropDatabases = 'DROP DATABASE 文は無効にされています';
+$strNoExplain = 'SQL の EXPLAIN 解析をスキップ';
+$strNoFilesFoundInZip = 'ZIP アーカイブにファイルが含まれていません!';
+$strNoFrames = 'phpMyAdmin は<b>フレーム対応</b>ブラウザでの利用をお勧めします';
+$strNoIndexPartsDefined = 'インデックス部分が定義されていません!';
+$strNoIndex = 'インデックスが定義されていません!';
+$strNoModification = '変更なし';
+$strNone = 'なし';
+$strNoOptions = 'この書式にはオプションはありません';
+$strNoPassword = 'パスワードなし';
+$strNoPermission = 'このウェブサーバにはファイル %s を保存する権限がありません';
+$strNoPhp = 'PHP コードを省略';
+$strNoPrivileges = '特権なし';
+$strNoRights = '特権不足でアクセスできません!';
+$strNoRowsSelected = '行が選択されていません';
+$strNoSpace = '空き容量不足でファイル %s を保存できません';
+$strNoTablesFound = 'このデータベースにはテーブルがありません';
+$strNoThemeSupport = 'テーマは利用できません。設定やテーマディレクトリ %s を確認してください';
+$strNotNumber = '数値ではありません!';
+$strNotOK = 'Not OK';
+$strNotSet = 'テーブル <b>%s</b> が見つかりません。あるいは %s には設定されていません';
+$strNoUsersFound = 'ユーザが存在しません';
+$strNoValidateSQL = 'SQL の検証をスキップ';
+$strNull = 'ヌル(NULL)';
+$strNumberOfFields = 'フィールド数';
+$strNumberOfTables = 'テーブル数';
+$strNumSearchResultsInTable = '%s 件(テーブル <i>%s</i>)';
+$strNumSearchResultsTotal = '<b>合計:</b> <i>%s</i> 件';
+$strNumTables = 'テーブル';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Openスプレッドシート';
+$strOpenDocumentText = 'Openテキスト';
+$strOpenNewWindow = '別ウィンドウで開く';
+$strOperations = '操作';
+$strOperator = '演算子';
+$strOptimizeTable = 'テーブルを最適化する';
+$strOptimize = '最適化';
+$strOptions = 'オプション';
+$strOr = 'または';
+$strOverhead = 'オーバーヘッド';
+$strOverwriteExisting = '既存のファイルは上書き';
+
+$strPacked = '圧縮';
+$strPageNumber = 'ページ番号:';
+$strPagesToBeFlushed = 'フラッシュ待ちページ数';
+$strPaperSize = '用紙サイズ';
+$strPartialImport = '部分インポート';
+$strPartialText = '部分テキスト';
+$strPartitionDefinition = 'パーティションの定義';
+$strPartitioned = 'パーティション有り';
+$strPartitionMaintenance = 'パーティション管理';
+$strPartition = 'パーティション %s';
+$strPassword = 'パスワード';
+$strPasswordChanged = '%s のパスワードは正しく変更されました';
+$strPasswordEmpty = 'パスワードが空です!';
+$strPasswordHashing = 'パスワードハッシュ';
+$strPasswordNotSame = 'パスワードが異なっています!';
+$strPBXTCheckpointFrequencyDesc = 'チェックポイントを実行する前にトランザクションログに書き込むデータ量。デフォルト値は 24MB です。';
+$strPBXTCheckpointFrequency = 'チェックポイント頻度';
+$strPBXTDataFileGrowSizeDesc = 'ハンドルデータファイル(.xtd)の増分。';
+$strPBXTDataFileGrowSize = 'データファイルの増分';
+$strPBXTDataLogThresholdDesc = 'データログファイルの大きさの最大値。デフォルト値は 64MB です。PBXT は最大 32000 個のデータログを作成できますが、これはあらゆるテーブルが使うものですので、この変数の値を大きくするとデータベースに保存できるデータの総数を増やすことができます。';
+$strPBXTDataLogThreshold = 'データログの閾値';
+$strPBXTGarbageThresholdDesc = 'データログファイルのガベージが何%になったら圧縮するか。1 から 99 までの値をとります。デフォルトは 50 です。';
+$strPBXTGarbageThreshold = 'ガベージ閾値';
+$strPBXTIndexCacheSizeDesc = 'インデックスキャッシュに割り当てるメモリ量。デフォルト値は 32MB です。ここで割り当てたメモリはインデックスページのキャッシュにのみ利用されます。';
+$strPBXTIndexCacheSize = 'インデックスキャッシュの大きさ';
+$strPBXTLogBufferSizeDesc = 'データログを書き出すときに使うバッファの大きさ。デフォルトは 256MB です。このエンジンはスレッドごとにバッファをひとつ割り当てます(そのスレッドがデータログを書き出す必要がある場合のみ)。';
+$strPBXTLogBufferSize = 'ログバッファの大きさ';
+$strPBXTLogCacheSizeDesc = 'トランザクションログデータをキャッシュするのに使うトランザクションログキャッシュに割り当てるメモリ量。デフォルトは 16MB です。';
+$strPBXTLogCacheSize = 'ログキャッシュの大きさ';
+$strPBXTLogFileCountDesc = 'システムが保存するトランザクションログファイル (pbxt/system/xlog*.xt) の数。ログの数がそれ以上になると古いログが削除されるか、リネームされて最大値の1つ前の番号がつけられます。';
+$strPBXTLogFileCount = 'ログファイル数';
+$strPBXTLogFileThresholdDesc = 'トランザクションログがどこまで増えたらロールオーバーして新しいログを作成するか。デフォルト値は 16MB です。';
+$strPBXTLogFileThreshold = 'ログファイルの閾値';
+$strPBXTRecordCacheSizeDesc = 'テーブルデータをキャッシュするのに使うレコードキャッシュに割り当てるメモリ量。デフォルト値は 32MB です。このメモリはハンドルデータファイル(.xtd)や列ポインタファイル(.xtr)の変更をキャッシュするのに利用されます。';
+$strPBXTRecordCacheSize = 'レコードキャッシュの大きさ';
+$strPBXTRowFileGrowSizeDesc = '列ポインタファイル(.xtr)の増分。';
+$strPBXTRowFileGrowSize = '列ファイルの増分';
+$strPBXTTransactionBufferSizeDesc = 'グローバルトランザクションログバッファの大きさ(このエンジンはこの大きさのバッファを2つ割り当てます)。デフォルトは 1MB です。';
+$strPBXTTransactionBufferSize = 'トランザクションバッファの大きさ';
+$strPdfDbSchema = 'データベース %s のスキーマ - ページ %s';
+$strPdfInvalidTblName = '"%s" テーブルは存在しません!';
+$strPdfNoTables = 'テーブルがありません';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(ひとつのテーブルのデータを含むレポートを生成します)';
+$strPDFReportTitle = 'レポートのタイトル';
+$strPerHour = '/時';
+$strPerMinute = '/分';
+$strPerSecond = '/秒';
+$strPersian = 'ペルシア語';
+$strPhoneBook = '電話帳';
+$strPHPExtension = 'PHP 拡張';
+$strPhp = 'PHP コードの作成';
+$strPHPVersion = 'PHP のバージョン';
+$strPleaseSelectPrimaryOrUniqueKey = '主キーまたはユニークキーを選択してください';
+$strPmaDocumentation = 'phpMyAdmin のドキュメント';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> はかならず設定ファイルで設定する必要があります!';
+$strPolish = 'ポーランド語';
+$strPortrait = '縦向き';
+$strPos1 = '先頭';
+$strPrevious = '前';
+$strPrimaryKeyHasBeenDropped = '主キーを削除しました';
+$strPrimaryKeyName = '主キーの名前は PRIMARY でなければなりません!';
+$strPrimaryKeyWarning = '(主キーはかならず "PRIMARY" という名前でなければなりません。また主キー以外に "PRIMARY" という名前を使ってはなりません!)';
+$strPrimary = '主';
+$strPrintViewFull = '印刷用画面 (全テキストを含む)';
+$strPrintView = '印刷用画面';
+$strPrint = '印刷';
+$strPrivDescAllPrivileges = 'GRANT 以外のすべての特権を付与する';
+$strPrivDescAlterRoutine = 'ストアドルーチンの修正と削除を許可する';
+$strPrivDescAlter = '既存のテーブル構造の変更を許可する';
+$strPrivDescCreateDb = '新しいデータベースやテーブルの作成を許可する';
+$strPrivDescCreateRoutine = 'ストアドルーチンの作成を許可する';
+$strPrivDescCreateTbl = '新しいテーブルの作成を許可する';
+$strPrivDescCreateTmpTable = '一時テーブルの作成を許可する';
+$strPrivDescCreateUser = 'ユーザアカウントの作成・削除・リネームを許可する';
+$strPrivDescCreateView = '新しいビューの作成を許可する';
+$strPrivDescDelete = 'データの削除を許可する';
+$strPrivDescDropDb = 'データベースとテーブルの削除を許可す';
+$strPrivDescDropTbl = 'テーブルの削除を許可する';
+$strPrivDescEvent = 'イベントスケジューラにイベントを設定できるようにする';
+$strPrivDescExecute5 = 'ストアドルーチンの実行を許可する';
+$strPrivDescExecute = 'ストアードプロシジャの実行を許可する (このバージョンの MySQL では無効です)';
+$strPrivDescFile = 'データのインポート、エクスポートを許可する';
+$strPrivDescGrant = '特権テーブルのリロードなしのユーザ・特権の追加を許可する';
+$strPrivDescIndex = 'インデックスの作成、削除を許可する';
+$strPrivDescInsert = 'データの挿入、置換を許可する';
+$strPrivDescLockTables = '現在のスレッドのテーブルロックを許可する';
+$strPrivDescMaxConnections = '単位時間内に可能な新規接続回数を制限する';
+$strPrivDescMaxQuestions = '単位時間内にサーバに送信可能なクエリ数を制限する';
+$strPrivDescMaxUpdates = '単位時間内に実行可能なテーブルないしデータベースの編集コマンド数を制限する';
+$strPrivDescMaxUserConnections = 'ユーザの同時接続数を制限する';
+$strPrivDescProcess = '全ユーザのプロセスを閲覧できるようにする';
+$strPrivDescReferences = 'このバージョンの MySQL では無効です';
+$strPrivDescReload = 'サーバ設定のリロード、サーバキャッシュのフラッシュを許可する';
+$strPrivDescReplClient = 'スレーブ/マスターの照会を許可する';
+$strPrivDescReplSlave = 'レプリケーションスレーブでは有効にする必要があります';
+$strPrivDescSelect = 'データの読み込みを許可する';
+$strPrivDescShowDb = 'データベース総一覧へのアクセスを許可する';
+$strPrivDescShowView = 'SHOW CREATE VIEW クエリの実行を許可する';
+$strPrivDescShutdown = 'サーバのシャットダウンを許可する';
+$strPrivDescSuper = '最大接続数に達しているときでも接続を許可する。グローバル変数の設定や他のユーザのスレッドを停止するといった管理操作をする場合はたいていこの設定が必要になります';
+$strPrivDescTrigger = 'トリガの作成・削除を許可する';
+$strPrivDescUpdate = 'データの修正を許可する';
+$strPrivDescUsage = '特権はありません';
+$strPrivilegesReloaded = '特権を正常にリロードしました';
+$strPrivileges = '特権';
+$strProcedures = 'プロシジャ';
+$strProcesses = 'プロセス';
+$strProcesslist = 'プロセス一覧';
+$strProfiling = 'プロファイリング';
+$strProtocolVersion = 'プロトコルバージョン';
+$strPutColNames = '1 行目にフィールド名を追加する';
+
+$strQBE = 'クエリ';
+$strQBEDel = '削除';
+$strQBEIns = '挿入';
+$strQueryCache = 'クエリキャッシュ';
+$strQueryFrame = 'クエリウィンドウ';
+$strQueryOnDb = 'データベース <b>%s</b> のSQL:';
+$strQueryResultsOperations = 'クエリ結果操作';
+$strQuerySQLHistory = 'SQL 履歴';
+$strQueryStatistics = '<b>クエリ統計</b>: 起動時から数えて %s 個のクエリをサーバに送信しました';
+$strQueryTime = 'クエリの実行時間 %01.4f 秒';
+$strQueryType = 'クエリ種別';
+$strQueryWindowLock = '他のウィンドウからクエリを上書きすることはできません';
+
+$strReadRequests = '読み込みリクエスト数';
+$strRebuild = '再構築';
+$strReceived = '受信済';
+$strRecommended = '推奨';
+$strRecords = 'レコード数';
+$strReferentialIntegrity = '参照整合性の確認:';
+$strRefresh = '再描画';
+$strRelationalDisplayField = 'リレーション表示フィールド';
+$strRelationalKey = 'リレーションキー';
+$strRelationalSchema = 'リレーショナルスキーマ';
+$strRelationDeleted = 'リレーションを削除しました';
+$strRelationNotWorking = 'リンクテーブルを処理するための追加機能が無効になっています。理由については%sこちら%sをご覧ください';
+$strRelations = 'リレーション';
+$strRelationsForTable = 'RELATIONS FOR TABLE';
+$strRelationView = 'リレーションビュー';
+$strReload = 'リロード';
+$strReloadingThePrivileges = '特権をリロードしています';
+$strReloadPrivileges = '特権をリロードする';
+$strRemovePartitioning = 'パーティションを削除';
+$strRemoveSelectedUsers = '選択したユーザを削除する';
+$strRenameDatabaseOK = 'データベース %s を %s にリネームしました';
+$strRenameTableOK = 'テーブル %s を %s にリネームしました';
+$strRenameTable = 'リネーム後のテーブル名';
+$strRepairTable = 'テーブルを修復する';
+$strRepair = '修復';
+$strReplaceNULLBy = 'NULL の代替文字列';
+$strReplaceTable = 'テーブルデータを差し替えるファイル';
+$strReplication = 'レプリケーション';
+$strReset = 'リセット';
+$strResourceLimits = 'リソースの制限';
+$strRestartInsertion = '%s 行から挿入を再開する';
+$strReType = 'もう一度入力してください';
+$strRevokeAndDeleteDescr = 'USAGE 特権については特権をリロードするまで残ります';
+$strRevokeAndDelete = '特権をすべて取り消してユーザを削除する';
+$strRevokeMessage = '%s の特権を取り消しました';
+$strRevoke = '取り消し';
+$strRomanian = 'ルーマニア語';
+$strRoutineReturnType = '返り値の種類';
+$strRoutines = 'ルーチン';
+$strRowLength = '行の長さ';
+$strRowsAffected = '%1$d 行変更しました。';
+$strRowsDeleted = '%1$d 行削除しました。';
+$strRowsFrom = '開始行';
+$strRowsInserted = '%1$d 行挿入しました。';
+$strRowSize = ' 行のサイズ ';
+$strRowsModeFlippedHorizontal = '水平 (ヘッダも回転)';
+$strRowsModeHorizontal = '水平';
+$strRowsModeOptions = 'モード: %s (%s セルごとにヘッダを表示)';
+$strRowsModeVertical = '垂直';
+$strRowsStatistic = '行の統計';
+$strRows = '行';
+$strRunning = '実行環境: %s';
+$strRunQuery = 'クエリを実行する';
+$strRunSQLQueryOnServer = 'サーバ %s 上でクエリを実行する';
+$strRunSQLQuery = 'データベース %s 上でクエリを実行する';
+$strRussian = 'ロシア語';
+
+$strSaveOnServer = 'サーバ上のディレクトリ %s に保存する';
+$strSavePosition = '位置を保存';
+$strSave = '保存する';
+$strScaleFactorSmall = '倍率が小さすぎるためスキーマが 1 ページに収まりません';
+$strSearchFormTitle = 'データベース内検索';
+$strSearchInField = '検索するフィールド:';
+$strSearchInTables = '検索するテーブル:';
+$strSearchNeedle = '検索する単語や値 (ワイルドカード: "%"):';
+$strSearchOption1 = 'いずれかの単語を含む';
+$strSearchOption2 = 'すべての単語を含む';
+$strSearchOption3 = '完全一致';
+$strSearchOption4 = '正規表現';
+$strSearchResultsFor = '"<i>%s</i>" の検索結果 %s:';
+$strSearchType = '検索条件:';
+$strSearch = '検索';
+$strSecretRequired = '設定ファイルが秘密のパスフレーズ (blowfish_secret) を必要とするようになりました';
+$strSelectADb = 'データベースを選択してください';
+$strSelectAll = '全選択';
+$strSelectBinaryLog = '表示するバイナリログを選択してください';
+$strSelectFields = 'フィールドを選択してください(最低1つ):';
+$strSelectForeignKey = '外部キーを選択してください';
+$strSelectNumRows = '行/クエリ';
+$strSelectReferencedKey = '参照されているキーを選択';
+$strSelectTables = 'テーブルを選択してください';
+$strSend = 'ファイルに保存する';
+$strSent = '送信済';
+$strServer = 'サーバ';
+$strServerChoice = 'サーバの選択';
+$strServerNotResponding = 'サーバが応答しません';
+$strServers = 'サーバ';
+$strServerStatusDelayedInserts = '遅延インサート';
+$strServerStatusUptime = 'この MySQL サーバの稼働時間: %s (起動時刻: %s)';
+$strServerStatus = 'ランタイム情報';
+$strServerTabVariables = '変数';
+$strServerTrafficNotes = '<b>サーバトラフィック</b>: これらの表は MySQL サーバ起動以後のネットワークトラフィックの統計です';
+$strServerVars = 'サーバ変数と設定値';
+$strServerVersion = 'サーバのバージョン';
+$strSessionStartupErrorGeneral = 'エラーが出たためセッションを開始できませんでした。PHP やウェブサーバのログファイルに出ているエラーを確認して、PHP を正しく設定してください。';
+$strSessionValue = 'セッション値';
+$strSetEnumVal = 'フィールド種別が「enum」ないし「set」の場合の値の書式: \'a\',\'b\',\'c\'...<br />バックスラッシュ("\")やシングルクォート("\'")を含める必要がある場合は ( \\\\xyz や a\\\'b のように) その前にバックスラッシュを付けてください';
+$strShowAll = 'すべて表示';
+$strShowColor = '色表示';
+$strShowDatadictAs = 'データ辞書形式';
+$strShowFullQueries = 'クエリ全体を表示';
+$strShowGrid = 'グリッドを表示';
+$strShowHideLeftMenu = '左側のメニューを表示する/隠す';
+$strShowingBookmark = '表示中のブックマーク';
+$strShowingPhp = 'PHP コードとして表示';
+$strShowingRecords = '表示中の列';
+$strShowingSQL = 'SQL クエリを表示';
+$strShowOpenTables = '開いているテーブルを表示する';
+$strShowPHPInfo = 'PHP 情報';
+$strShowSlaveHosts = 'スレーブホストを表示する';
+$strShowSlaveStatus = 'スレーブの状態を表示する';
+$strShowStatusBinlog_cache_disk_useDescr = '一時バイナリログキャッシュを利用したものの binlog_cache_size の値を超過したため一時ファイルにステートメントを保存したトランザクション数';
+$strShowStatusBinlog_cache_useDescr = '一時バイナリログキャッシュを使用したトランザクション数';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'ステートメント実行中にサーバがディスク上に自動生成した一時テーブル数。Created_tmp_disk_tables の値が大きい場合は tmp_table_size の値を増やしてディスク上ではなくメモリ上に一時テーブルを構築した方がよいかもしれません';
+$strShowStatusCreated_tmp_filesDescr = 'mysqld が生成した一時ファイル数';
+$strShowStatusCreated_tmp_tablesDescr = 'ステートメント実行中にサーバが自動生成したメモリ上の一時テーブル数';
+$strShowStatusDelayed_errorsDescr = '何らかのエラー (たぶんキーの重複) が発生したため INSERT DELAYED された行数';
+$strShowStatusDelayed_insert_threadsDescr = '使用中の INSERT DELAYED ハンドラのスレッド数。INSERT DELAYED を適用するテーブルの数だけ固有のスレッドが用意されます';
+$strShowStatusDelayed_writesDescr = 'INSERT DELAYED で書き込まれた行数';
+$strShowStatusFlush_commandsDescr = 'FLUSH 文の実行回数';
+$strShowStatusHandler_commitDescr = '内部で COMMIT 文を実行した回数';
+$strShowStatusHandler_deleteDescr = 'テーブルから行を削除した回数';
+$strShowStatusHandler_discoverDescr = 'MySQL サーバは NDB クラスタストレージエンジンに特定の名前を持つテーブルについての情報を持っているか問い合わせることができます。これを開示と言いますが、Handler_discover はその開示されたタイムテーブルの数です';
+$strShowStatusHandler_read_firstDescr = 'インデックスの最初のエントリを読み込んだ回数。この値が高い場合はサーバが何度もインデックスのフルスキャンを実行しているものと思われます。例えば SELECT col1 FROM foo を実行した場合 (col1 はインデックスに含まれているものとします)';
+$strShowStatusHandler_read_keyDescr = 'キーに基づいて行を読み込んだリクエストの数。この値が高い場合はクエリとテーブルが適切にインデックスされているものと考えられます';
+$strShowStatusHandler_read_nextDescr = 'キーの順序通りに次の行を読み込んだリクエストの数。この値はインデックス列のクエリに範囲指定をしているか、インデックススキャンを行っているときに増加します';
+$strShowStatusHandler_read_prevDescr = 'キーの順序通りに前の行を読み込んだリクエストの数。この読み込みは主に ORDER BY ... DESC の最適化に利用されます';
+$strShowStatusHandler_read_rndDescr = '決まった位置を基準に行を読み込んだリクエストの数。この値が高いのは結果をソートする必要があるクエリを大量に実行している場合です。おそらくテーブル全体をスキャンしなければならないクエリを大量に行っているか、結合の際のキーの使い方に不適切なところがあります';
+$strShowStatusHandler_read_rnd_nextDescr = 'データファイルの次の行を読み込んだリクエストの数。この値が高いのはテーブルスキャンを大量に実行しているためです。一般にこれはテーブルのインデックスが不適切か、クエリがインデックスを利用するように書かれていないことを意味します';
+$strShowStatusHandler_rollbackDescr = '内部で ROLLBACK 文を実行した回数';
+$strShowStatusHandler_updateDescr = 'テーブル内の行を更新したリクエストの数';
+$strShowStatusHandler_writeDescr = 'テーブル内に行を挿入したリクエストの数';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'データが含まれるページの数 (ダーティページ、クリーンページの別を問わず)';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = '現在のダーティページの数';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'フラッシュリクエストを受けたバッファプールのページ数';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = '空きページ数';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'InnoDBバッファプールでラッチされているページ数。これは現在読み込んでいる、あるいは書き込んでいるページ、あるいは他の何らかの理由でフラッシュしたり削除したりできなくなっているページの数です';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = '行ロックやアダプティブハッシュインデックスといった管理オーバヘッドのせいでビジーになっているページ数。この値はInnodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_dataという式でも計算できます';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'ページのバッファプールサイズの合計';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'InnoDBが開始したランダム読み込みの回数。これはクエリがテーブルの大部分をランダムな順番でスキャンするときに発生します';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'InnoDBが開始したシーケンシャル読み込みの回数。これはInnoDBがシーケンシャルなフルテーブルスキャンを行うときに発生します';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'InnoDB が実行した論理読み込みリクエストの数';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'InnoDB がバッファプールの内容を利用できず、シングルページ読み込みを行わなければならなかった論理読み込みの回数';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = '通常 InnoDB バッファプールへの書き込みはバックグラウンドで行われますが、ページの読み込みないし作成を行う必要があるのにクリーンなページが得られない場合は、まずそのページがフラッシュされるのを待つ必要があります。このカウンタは、そのウェイトの回数をカウントするものです。バッファプールの値が適切に設定されていれば、この値は小さいはずです';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'InnoDB バッファプールへの書き込み回数';
+$strShowStatusInnodb_data_fsyncsDescr = 'これまでに fsync() を実行した回数';
+$strShowStatusInnodb_data_pending_fsyncsDescr = '現在保留されている fsync() の回数';
+$strShowStatusInnodb_data_pending_readsDescr = '現在保留されている読み込みの数';
+$strShowStatusInnodb_data_pending_writesDescr = '現在保留されている書き込みの数';
+$strShowStatusInnodb_data_readDescr = 'これまでのデータ読み込み量 (単位:バイト)';
+$strShowStatusInnodb_data_readsDescr = 'データ読み込み回数の合計';
+$strShowStatusInnodb_data_writesDescr = 'データ書き込み回数の合計';
+$strShowStatusInnodb_data_writtenDescr = 'これまでのデータの書き込み量 (単位:バイト)';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = '二重書き込みの実行回数と二重書き込みが発生したページ数';
+$strShowStatusInnodb_dblwr_writesDescr = '二重書き込みの実行回数と二重書き込みが発生したページ数';
+$strShowStatusInnodb_log_waitsDescr = 'ログバッファが小さすぎてフラッシュしないと作業を続行できなくなったために発生したウェイトの回数';
+$strShowStatusInnodb_log_write_requestsDescr = 'ログ書き込みリクエストの数';
+$strShowStatusInnodb_log_writesDescr = 'ログファイルへの物理書き込みの回数';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'ログファイルへの fsync 書き込みの回数';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = '保留中のログファイルへの fsync 回数';
+$strShowStatusInnodb_os_log_pending_writesDescr = '保留中のログファイルへの書き込み回数';
+$strShowStatusInnodb_os_log_writtenDescr = 'ログファイルに書き込んだバイト数';
+$strShowStatusInnodb_pages_createdDescr = '作成されたページ数';
+$strShowStatusInnodb_page_sizeDescr = 'コンパイル時の InnoDB のページサイズ (デフォルト:16KB)。多くの値がページ単位で計算されますが、この値を使えば簡単にバイト単位に変換できます';
+$strShowStatusInnodb_pages_readDescr = '読み込んだページ数';
+$strShowStatusInnodb_pages_writtenDescr = '書き込んだページ数';
+$strShowStatusInnodb_row_lock_current_waitsDescr = '現在待機中の行ロックの数';
+$strShowStatusInnodb_row_lock_time_avgDescr = '行ロック取得に要する平均時間 (単位:ミリ秒)';
+$strShowStatusInnodb_row_lock_timeDescr = '行ロック取得に要した時間の合計 (単位:ミリ秒)';
+$strShowStatusInnodb_row_lock_time_maxDescr = '行ロック取得に要した時間の最大値 (単位:ミリ秒)';
+$strShowStatusInnodb_row_lock_waitsDescr = '行ロック取得時に待機した回数';
+$strShowStatusInnodb_rows_deletedDescr = 'InnoDB テーブルから削除した行数';
+$strShowStatusInnodb_rows_insertedDescr = 'InnoDB テーブルに挿入した行数';
+$strShowStatusInnodb_rows_readDescr = 'InnoDB テーブルから読み込んだ行数';
+$strShowStatusInnodb_rows_updatedDescr = 'InnoDB テーブルで更新された行数';
+$strShowStatusKey_blocks_not_flushedDescr = '変更されてからディスクにフラッシュされていないキーキャッシュのキーブロックの数。以前は Not_flushed_key_blocks でした';
+$strShowStatusKey_blocks_unusedDescr = 'キーキャッシュの未使用ブロックの数。キーキャッシュの使用率を調べるときに使えます';
+$strShowStatusKey_blocks_usedDescr = 'キーキャッシュの使用済みブロックの数。この値はこれまで一度に使用されたブロックの最大数です';
+$strShowStatusKey_read_requestsDescr = 'キャッシュからキーブロックを読み込んだリクエストの数';
+$strShowStatusKey_readsDescr = 'ディスクからキーブロックを物理読み込みした回数。Key_reads が大きいのはおそらく key_buffer_size が小さすぎるためです。キャッシュミスの割合は Key_reads/Key_read_requests で計算できます';
+$strShowStatusKey_write_requestsDescr = 'キャッシュにキーブロックを書き込んだリクエストの数';
+$strShowStatusKey_writesDescr = 'ディスクにキーブロックを物理書き込みした回数';
+$strShowStatusLast_query_costDescr = 'クエリオプティマイザーの計算による、最後にコンパイルされたクエリの総コスト。クエリのプランを変えたときにコストがどう変わるか比較するときに便利です。デフォルト値の 0 はまだ一度もクエリをコンパイルしていないという意味です';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'INSERT DELAYED キューの中で書き込まれるのを待っている行数';
+$strShowStatusOpened_tablesDescr = '開いているテーブルの数。開いているテーブルが多い場合はおそらくテーブルキャッシュの値が小さすぎます';
+$strShowStatusOpen_filesDescr = '開いているファイルの数';
+$strShowStatusOpen_streamsDescr = '開いているストリームの数 (主にログの記録用です)';
+$strShowStatusOpen_tablesDescr = '開いているテーブルの数';
+$strShowStatusQcache_free_blocksDescr = 'クエリキャッシュ内の空きメモリブロックの数';
+$strShowStatusQcache_free_memoryDescr = 'クエリキャッシュの空きメモリ量';
+$strShowStatusQcache_hitsDescr = 'キャッシュのヒット数';
+$strShowStatusQcache_insertsDescr = 'キャッシュに追加されたクエリの数';
+$strShowStatusQcache_lowmem_prunesDescr = '新しいクエリをキャッシュするためにメモリを解放するべくキャッシュから削除されたクエリの数。この情報はクエリキャッシュのサイズを調整するときに便利です。クエリキャッシュは最後に使われた時刻が最も古いものから削除する(LRU)戦略に従って削除するクエリを決めます';
+$strShowStatusQcache_not_cachedDescr = 'キャッシュされなかった (キャッシュできないか query_cache_type の設定でキャッシュしないことになっている) クエリの数';
+$strShowStatusQcache_queries_in_cacheDescr = 'キャッシュに登録されているクエリの数';
+$strShowStatusQcache_total_blocksDescr = 'クエリキャッシュの総ブロック数';
+$strShowStatusReset = 'リセット';
+$strShowStatusRpl_statusDescr = 'フェイルセーフレプリケーションの状態 (未実装)';
+$strShowStatusSelect_full_joinDescr = 'インデックスを利用しなかった結合の数。この値が 0 でない場合はテーブルのインデックスをよく確認してください';
+$strShowStatusSelect_full_range_joinDescr = '参照テーブルで範囲検索をした結合の数';
+$strShowStatusSelect_range_checkDescr = 'キーが指定されていなかったため一行ずつキーが使われているか確認した結合の数(0 でない場合はテーブルのインデックスをよく確認してください)';
+$strShowStatusSelect_rangeDescr = '最初のテーブルで範囲指定された結合の数 (この値は大きくてもふつう問題ありません)';
+$strShowStatusSelect_scanDescr = '最初のテーブルをフルスキャンした結合の数';
+$strShowStatusSlave_open_temp_tablesDescr = 'スレーブの SQL スレッドが現在開いている一時テーブルの数';
+$strShowStatusSlave_retried_transactionsDescr = 'レプリケーションスレーブの SQL スレッドがトランザクションを再試行した回数(起動時からの合計)';
+$strShowStatusSlave_runningDescr = 'このサーバがマスターに接続するスレーブである場合は ON になります';
+$strShowStatusSlow_launch_threadsDescr = 'slow_launch_time で指定された秒数以上に作成時間がかかったスレッドの数';
+$strShowStatusSlow_queriesDescr = 'long_query_time で指定された秒数以上に時間のかかったクエリの数';
+$strShowStatusSort_merge_passesDescr = 'ソートアルゴリズムが実行しなければならなかったマージの回数。この値が高い場合は sort_buffer_size システム変数の値を増やした方がよいでしょう';
+$strShowStatusSort_rangeDescr = '範囲指定付きでソートが行われた回数';
+$strShowStatusSort_rowsDescr = 'ソート済の行数';
+$strShowStatusSort_scanDescr = 'テーブルをスキャンしたときに実行されたソートの回数';
+$strShowStatusTable_locks_immediateDescr = 'テーブルロックをすぐに取得できた回数';
+$strShowStatusTable_locks_waitedDescr = 'テーブルロックをすぐに取得できずウェイトが発生した回数。この値が高く、パフォーマンスに問題が生じている場合は、まずクエリを最適化してください。それでもだめならテーブルを分割するか、レプリケーションを利用してください';
+$strShowStatusThreads_cachedDescr = 'スレッドキャッシュ内のスレッド数。キャッシュのヒット率は Threads_created/Connections で計算できます。この値が赤くなっている場合は thread_cache_size を大きくしてください';
+$strShowStatusThreads_connectedDescr = '現在開いている接続の数';
+$strShowStatusThreads_createdDescr = '接続処理のために作成されたスレッドの数。Threads_created が大きい場合は thread_cache_size の値を増やした方がよいかもしれません (スレッドの実装に問題がない場合はふつうあまりパフォーマンスは向上しません)';
+$strShowStatusThreads_runningDescr = 'スリープしていないスレッドの数';
+$strShowTableDimension = 'テーブルの大きさを表示する';
+$strShowTables = 'テーブルを表示する';
+$strShowThisQuery = ' 実行したクエリをここに表示する';
+$strShow = '表示';
+$strSimplifiedChinese = '簡体字中国語';
+$strSingly = '(1 回)';
+$strSize = 'サイズ';
+$strSkipQueries = '先頭から数えたスキップするレコード(クエリ)の数';
+$strSlovak = 'スロバキア語';
+$strSlovenian = 'スロベニア語';
+$strSmallBigAll = 'すべてを大きく/小さく';
+$strSnapToGrid = 'グリッドにあわせる';
+$strSocketProblem = '(あるいはローカルの MySQL サーバのソケットが正しく設定されていません)';
+$strSort = 'ソート';
+$strSortByKey = 'キーでソート';
+$strSorting = 'ソート中';
+$strSpaceUsage = 'ディスク使用量';
+$strSpanish = 'スペイン語';
+$strSplitWordsWithSpace = '各単語は空白文字(" ")で区切ってください';
+$strSQLCompatibility = 'SQL互換モード';
+$strSQLExportType = 'エクスポート形式';
+$strSQLParserBugMessage = 'SQL パーサにバグが見つかることもありえますが、まずはクエリをよく見て引用符の数や種類に間違いがないか確認してください。クォートされていないテキスト領域にバイナリファイルをアップロードしたからクエリが失敗したということもありえます。MySQL のコマンドラインインタフェースを利用してクエリを実行してみてもよいでしょう。下に MySQL サーバのエラー出力が出ているようなら問題の解析に役立つかもしれません。それでも解決しないか、コマンドラインでは成功するのにパーサでは失敗する場合は、SQL クエリの入力データを実際に問題を起こしているクエリひとつに絞り込んでから、以下の「CUT」セクションにデータを添えてバグ報告を送ってください:';
+$strSQLParserUserError = 'SQL にエラーがあるようです。下に MySQL サーバのエラー出力が出ているようなら問題の解析に役立つかもしれません';
+$strSQLQuery = '実行した SQL';
+$strSQLResult = 'SQL の結果';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = '不正な識別子です';
+$strSQPBugUnclosedQuote = '引用符が閉じていません';
+$strSQPBugUnknownPunctuation = '無効な句読点文字です';
+$strStandInStructureForView = 'ビュー用の代替構造';
+$strStatCheckTime = '最終検査';
+$strStatCreateTime = '作成日時';
+$strStatement = 'ステートメント';
+$strStatisticsOverrun = '処理が集中するサーバではバイトカウンタが超過することがあるため、MySQL サーバが報告してくる統計は不正確なことがあります';
+$strStatUpdateTime = '最終更新';
+$strStatus = '状態';
+$strStorageEngine = 'ストレージエンジン';
+$strStorageEngines = 'ストレージエンジン';
+$strStrucCSV = 'CSV データ';
+$strStrucData = '構造とデータ';
+$strStrucExcelCSV = 'MS Excel 用の CSV';
+$strStrucNativeExcel = 'MS Excel のネイティブ形式';
+$strStrucOnly = '構造のみ';
+$strStructPropose = 'テーブル構造を確認する';
+$strStructureForView = 'ビュー用の構造';
+$strStructure = '構造';
+$strSubmit = '実行する';
+$strSuccess = 'SQL は正常に実行されました';
+$strSuhosin = 'Suhosin が稼働しているため問題が発生する可能性があります。詳しくは%sドキュメント%sをご覧ください。';
+$strSum = '合計';
+$strSwedish = 'スウェーデン語';
+$strSwitchToDatabase = 'コピーしたデータベースに切り替える';
+$strSwitchToTable = 'コピーしたテーブルに切り替える';
+
+$strTable = 'テーブル';
+$strTableAlreadyExists = 'テーブル %s は既に存在します!';
+$strTableAlteredSuccessfully = 'テーブル %1$s を変更しました';
+$strTableComments = 'テーブルのコメント';
+$strTableEmpty = 'テーブル名が空です!';
+$strTableHasBeenCreated = 'テーブル %1$s を作成しました。';
+$strTableHasBeenDropped = 'テーブル %s を削除しました';
+$strTableHasBeenEmptied = 'テーブル %s を空にしました';
+$strTableHasBeenFlushed = 'テーブル %s をフラッシュしました';
+$strTableIsEmpty = 'テーブルが空のようです!';
+$strTableMaintenance = 'テーブル管理';
+$strTableName = 'テーブル名';
+$strTableOfContents = 'テーブルの内容';
+$strTableOptions = 'テーブルオプション';
+$strTables = '%s テーブル';
+$strTableStructure = 'テーブルの構造';
+$strTakeIt = 'これにする';
+$strTblPrivileges = 'テーブル固有の特権';
+$strTempData = '一時データ';
+$strTextAreaLength = ' 長さによってはこのフィールドを<br /> 修正できなくなる場合もあります';
+$strTexyText = 'Texy! テキスト';
+$strThai = 'タイ語';
+$strTheme = 'テーマ / スタイル';
+$strThemeDefaultNotFound = 'デフォルトテーマ %s が見つかりません!';
+$strThemeNoPreviewAvailable = 'プレビューは利用できません';
+$strThemeNotFound = 'テーマ %s が見つかりません!';
+$strThemeNoValidImgPath = 'テーマ %s の画像パスが無効です!';
+$strThemePathNotFound = 'テーマ %s のテーマパスが見つかりません!';
+$strThisHost = 'このホスト';
+$strThreads = 'スレッド';
+$strThreadSuccessfullyKilled = 'スレッド %s は正常終了しました';
+$strTimeoutInfo = '直前のインポートはタイムアウトしました。再送信すると位置 %d から再開されます';
+$strTimeoutNothingParsed = 'ただし、最後に実行したときはまったくデータを解析できませんでした。ふつうは PHP の時間制限を伸ばさない限りこのデータのインポートはできません';
+$strTimeoutPassed = 'スクリプトがタイムアウトしました。インポートを完了させたいのであれば同じファイルを再送信すればインポートが再開されます';
+$strTime = '時間';
+$strToFromPage = '開始/終了ページ';
+$strToggleScratchboard = 'スクラッチボードを切り替える';
+$strToggleSmallBig = '大小を切り替える';
+$strToSelectRelation = 'リレーションを選択します:';
+$strTotalUC = '合計';
+$strTotal = '合計';
+$strTraditionalChinese = '繁体字中国語';
+$strTraditionalSpanish = 'スペイン語 (伝統表記)';
+$strTraffic = 'トラフィック';
+$strTransactionCoordinator = 'トランザクションコーディネータ';
+$strTransformation_application_octetstream__download = 'フィールドのバイナリデータをダウンロードするリンクを表示します。1 つ目のオプションにバイナリファイルのファイル名を指定することもできますし、2 つ目のオプションにファイル名を保持しているフィールドの名前を渡すこともできます。2 つ目のオプションを使う場合は 1 つ目のオプションは空文字列にする必要があります';
+$strTransformation_application_octetstream__hex = 'データを 16 進数で表記します。オプションとして最初のパラメータにスペースを追加する頻度を指定することもできます (デフォルトは 2 ニブルごとです)';
+$strTransformation_image_jpeg__inline = 'クリック可能なサムネイルを表示します; オプションとして幅と高さの最大値をピクセル単位で指定できます。アスペクト比はそのまま維持されます';
+$strTransformation_image_jpeg__link = 'この画像をダウンロードするためのリンクを表示します';
+$strTransformation_image_png__inline = 'image/jpeg: inlineをご覧ください';
+$strTransformation_text_plain__dateformat = 'TIME、TIMESTAMP、DATETIME、あるいはUnixタイムスタンプの値が入っているフィールドを書式にあわせて表示します。1 つ目のオプションはタイムスタンプに加算する時差です(デフォルト: 0)。2 つ目のオプションには日時の書式文字列を指定します。3 つ目のオプションはローカルの日時とみなすか UTC とみなすかです ("local"ないし"utc"という文字列を指定してください)。この値によって日時の表記が変わります。"local" の場合は PHP の strftime() 関数の説明をご覧ください。"utc" の場合は gmdate() を利用します'; // XXX replaced
+$strTransformation_text_plain__external = 'LINUX のみ: 外部アプリケーションを起動して標準入力経由でフィールドデータを渡します。アプリケーションの標準出力が返ります。デフォルトは Tidy です (これは HTML コードを綺麗にするためのものです)。セキュリティ上の理由から libraries/transformations/text_plain__external.inc.php を自分で編集して利用したいツールを明記しておく必要があります。最初のオプションは利用したいプログラムの数で、2 つ目のオプションはプログラムのパラメータです。3 つ目のオプションが 1 に設定されている場合は htmlspecialchars() を用いて出力を変換します(デフォルトは 1 です)。4 つ目のオプションが 1 に設定されている場合は禁則処理をせず出力全体が 1 行に収まるようにします (デフォルトは 1 です)';
+$strTransformation_text_plain__formatted = 'フィールドの内容をそのまま、htmlspecialchars()を通さずに表示します。この場合、フィールドには正しい HTML が含まれているものと仮定します';
+$strTransformation_text_plain__imagelink = '画像とリンクを表示します。フィールドにはファイル名を入れてください。1 つ目のオプションは "http://domain.com/" のようなURLの先頭部分です。2 つ目と3 つ目のオプションには幅と高さをピクセル単位で指定します';
+$strTransformation_text_plain__link = 'リンクを表示します。フィールドにはファイル名を入れてください。1 つ目のオプションは "http://domain.com/" のような URL の先頭部分、2 つ目のオプションはリンクのタイトルです';
+$strTransformation_text_plain__sql = 'テキストの内容を SQL クエリとみなし、構文ハイライト表示します';
+$strTransformation_text_plain__substr = '文字列の一部のみを表示します。1 つ目のオプションは文字列の先頭から何文字スキップするか (デフォルトは 0 です)、2 つ目のオプションは表示するテキストの文字数です (デフォルトは文字列の末尾までです)。3 つ目のオプションは文字列を切り詰めるときに前/後に補う省略記号です (デフォルトは ... です)';
+$strTriggers = 'トリガ';
+$strTruncateQueries = 'クエリの表示を切り詰める';
+$strTurkish = 'トルコ語';
+$strType = '種別';
+
+$strUkrainian = 'ウクライナ語';
+$strUncheckAll = 'すべてのチェックを外す';
+$strUnicode = 'UNICODE';
+$strUnique = 'ユニーク';
+$strUnknown = '不明';
+$strUnselectAll = '全選択解除';
+$strUnsupportedCompressionDetected = 'サポートされていない圧縮形式(%s)のファイルをロードしようとしました。この形式はサポートされていないか設定で無効にされています';
+$strUpdatePrivMessage = '%s の特権を更新しました';
+$strUpdateProfileMessage = 'プロファイルを更新しました';
+$strUpdateQuery = 'クエリを更新する';
+$strUpdComTab = 'column_comments テーブルの更新方法についてはドキュメントをご覧ください';
+$strUpgrade = '%s を %s 以降にアップグレードしてください';
+$strUploadErrorCantWrite = 'ファイルをディスクに書き込めません。';
+$strUploadErrorExtension = '拡張のせいでファイルのアップロードが中断されました。';
+$strUploadErrorFormSize = 'アップロードしたファイルは HTML フォームに指定されている MAX_FILE_SIZE ディレクティブの値を超えています。';
+$strUploadErrorIniSize = 'アップロードしたファイルは php.ini に指定されている upload_max_filesize ディレクティブの値を超えています。';
+$strUploadErrorNoTempDir = '一時フォルダが見つかりません。';
+$strUploadErrorPartial = 'アップロードしたファイルは一部分しかアップロードできませんでした。';
+$strUploadErrorUnknown = 'ファイルのアップロード中に予期しないエラーが発生しました。';
+$strUploadLimit = 'アップロードしようとしたファイルが大きすぎるようです。対策については %sドキュメント%s をご覧ください';
+$strUploadsNotAllowed = 'このサーバではファイルのアップロードはできません';
+$strUsage = '使用量';
+$strUseBackquotes = 'テーブル名やフィールド名を逆クォートで囲む';
+$strUseHostTable = 'ホストテーブルを使う';
+$strUser = 'ユーザ';
+$strUserAlreadyExists = 'ユーザ %s は既に存在します!';
+$strUserEmpty = 'ユーザ名が空です!';
+$strUserName = 'ユーザ名';
+$strUserNotFound = '特権テーブルには選択したユーザがいません';
+$strUserOverview = 'ユーザ概略';
+$strUsersDeleted = '選択したユーザを正しく削除しました';
+$strUsersHavingAccessToDb = '&quot;%s&quot; にアクセスできるユーザ';
+$strUseTabKey = '次の値に移動するときは TAB キーを使ってください。CTRL+カーソルキーを使うと自由に移動できます';
+$strUseTables = '利用するテーブル';
+$strUseTextField = 'テキストフィールドの値を利用する';
+$strUseThisValue = 'この値を利用する';
+
+$strValidateSQL = 'SQL の検証';
+$strValidatorError = 'SQL の検証機能を初期化できません。%sドキュメント%s の記載通りに必要な PHP 拡張がインストールされているか確認してください';
+$strValue = '値';
+$strVar = '変数';
+$strVersionInformation = 'バージョン情報';
+$strView = 'ビュー';
+$strViewDumpDatabases = 'データベースのダンプ(スキーマ)表示';
+$strViewDumpDB = 'DB のダンプ(スキーマ)表示';
+$strViewDump = 'テーブルのダンプ(スキーマ)表示';
+$strViewHasAtLeast = 'このビューの最低行数。詳しくは%sドキュメント%sをご覧ください。';
+$strViewHasBeenDropped = 'ビュー %s を破棄しました';
+$strViewName = 'VIEW の名前';
+
+$strWebServerUploadDirectoryError = '指定したアップロードディレクトリが利用できません';
+$strWebServerUploadDirectory = 'ウェブサーバ上のアップロードディレクトリ';
+$strWebServer = 'Web サーバ';
+$strWelcome = '%s へようこそ';
+$strWestEuropean = '西ヨーロッパ諸語';
+$strWiki = 'Wiki';
+$strWildcard = 'ワイルドカード';
+$strWindowNotFound = 'ターゲットとなるブラウザウィンドウを更新できませんでした。親ウィンドウを閉じたか、ブラウザのセキュリティ設定でクロスウィンドウの更新をブロックしているものと思われます';
+$strWithChecked = 'チェックしたものを:';
+$strWriteRequests = '書き込みリクエスト数';
+$strWrongUser = 'ユーザ名ないしパスワードが間違っています。<br />アクセスは拒否されました';
+
+$strXkana = '全角カナへ変換する';
+$strXML = 'XML';
+
+$strYes = 'はい';
+
+$strZeroRemovesTheLimit = '注意: オプションを 0 (ゼロ)に設定すると制限を解除します';
+$strZip = '"zip 形式"';
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/korean-utf-8.inc.php b/lang/korean-utf-8.inc.php
new file mode 100644
index 0000000000..af60ac50b9
--- /dev/null
+++ b/lang/korean-utf-8.inc.php
@@ -0,0 +1,1468 @@
+<?php
+/* $Id$ */
+
+/* Translated by WooSuhan <kjh@unews.NOSPAM.co.kr> */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('일', '월', '화', '수', '목', '금', '토');
+$month = array('해오름달', '시샘달', '물오름달', '잎새달', '푸른달', '누리달', '견우직녀달', '타오름달', '열매달', '하늘연달', '미틈달', '매듭달');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+// $datefmt = '%y년 %B %d일 %p %I:%M ';
+$datefmt = '%y-%m-%d %H:%M ';
+$timespanfmt = '%s days, %s hours, %s minutes and %s seconds';
+
+$strAccessDenied = '접근이 거부되었습니다.';
+$strAction = '실행';
+$strAddDeleteColumn = '열(칼럼) 추가/삭제';
+$strAddDeleteRow = 'Criteria 행(레코드) 추가/삭제';
+$strAddNewField = '필드 추가하기';
+$strAddPrivilegesOnDb = '다음 데이터베이스에 권한 추가하기';
+$strAddPrivilegesOnTbl = '다음 테이블에 권한 추가하기';
+$strAddSearchConditions = '검색 조건 추가 ("where" 조건):';
+$strAddToIndex = '%s개 열(칼럼)에 인덱스 추가';
+$strAddUser = '새 사용자 추가';
+$strAddUserMessage = '새 사용자를 추가했습니다.';
+$strAfterInsertBack = '되돌아가기';
+$strAfterInsertNewInsert = '새 행(레코드) 삽입하기';
+$strAfter = '%s 다음에';
+$strAllTableSameWidth = '모든 테이블을 같은 너비로 출력할까요?';
+$strAlterOrderBy = '다음 순서대로 테이블 정렬(변경)';
+$strAnalyzeTable = '테이블 분석';
+$strAnd = '그리고';
+$strAnIndex = '%s 에 인덱스가 걸렸습니다';
+$strAnyHost = '아무데서나';
+$strAnyUser = '아무나';
+$strAPrimaryKey = ' %s에 기본 키가 추가되었습니다';
+$strAscending = '오름차순';
+$strAtBeginningOfTable = '테이블의 처음';
+$strAtEndOfTable = '테이블의 마지막';
+$strAttr = '보기';
+
+$strBack = '뒤로';
+$strBinary = '바이너리';
+$strBinaryDoNotEdit = ' 바이너리 - 편집 금지 ';
+$strBookmarkDeleted = '북마크를 제거했습니다.';
+$strBookmarkQuery = '북마크된 SQL 질의';
+$strBookmarkThis = '이 SQL 질의를 북마크함';
+$strBrowse = '보기';
+$strBzip = '"bz 압축"';
+
+$strCannotLogin = 'MySQL 서버에 로그인할 수 없습니다';
+$strCantLoad = ' %s 확장모듈을 불러올 수 없습니다.<br />PHP 환경설정을 검사하십시오.';
+$strCantRenameIdxToPrimary = '인덱스 이름을 기본 키로 바꿀 수 없습니다!';
+$strChange = '변경';
+$strChangeDisplay = '출력할 필드 선택';
+$strChangePassword = '암호 변경';
+$strCharsetOfFile = '파일 문자셋:';
+$strCheckAll = '모두 체크';
+$strCheckPrivs = '사용권한 보기';
+$strCheckPrivsLong = '데이터베이스 &quot;%s&quot; 에 대한 사용권한 검사.';
+$strCheckTable = '테이블 검사';
+$strChoosePage = '편집할 페이지를 선택하세요';
+$strColComFeat = '열(칼럼) 설명(코멘트) 출력하기';
+$strColumnNames = '열(칼럼) 이름';
+$strColumnPrivileges = '열(칼럼)에 관한 권한';
+$strComments = '설명(코멘트)';
+$strCompleteInserts = '완전한 INSERT문 작성';
+$strCompression = '압축';
+$strConfigFileError = 'phpMyAdmin이 환경설정 파일을 읽을 수 없습니다!<br />PHP에 에러가 있거나 실제로 그 파일이 없는 경우입니다.<br />아래 링크를 통해 환경설정 파일만 불러들여보십시오. 그리고 PHP 에러 메시지를 확인하십시오. 어딘가에 따옴표(quote)나 세미콜론(;)이 빠져있는 경우가 종종 있습니다.<br />만약 아무것도 보이지 않으면, 정상적인 것입니다.';
+$strConnections = '연결 수';
+$strCopyTable = '테이블 복사 (데이터베이스명<b>.</b>테이블명):';
+$strCopyTableOK = '%s 테이블이 %s 으로 복사되었습니다.';
+$strCreate = ' 만들기 ';
+$strCreateIndex = '%s 개 열(칼럼)에 인덱스 만들기 ';
+$strCreateIndexTopic = '새 인덱스 만들기';
+$strCreateNewDatabase = '새 데이터베이스 만들기';
+$strCreateNewTable = '데이터베이스 %s에 새로운 테이블을 만듭니다.';
+$strCreatePage = '새 페이지 만들기';
+
+$strData = '데이터';
+$strDatabase = '데이터베이스';
+$strDatabaseHasBeenDropped = '데이터베이스 %s 를 제거했습니다.';
+$strDatabases = '데이터베이스 ';
+$strDatabasesDropped = '%s 데이터베이스를 삭제했습니다.';
+$strDatabasesStats = '데이터베이스 사용량 통계';
+$strDatabasesStatsDisable = '통계 숨기기';
+$strDatabasesStatsEnable = '통계 보기';
+$strDatabasesStatsHeavyTraffic = '주의: 데이터베이스 통계 보기는 웹서버와 MySQL 서버 사이에 큰 부하를 줍니다.';
+$strDataDict = '데이터 사전 (전체 구조보기)';
+$strDataOnly = '데이터만';
+$strDbPrivileges = '데이터베이스에 관한 권한';
+$strDefault = '기본값';
+$strDefaultValueHelp = '기본값에는, 역슬래시나 따옴표 없이 단 하나의 값을 넣으십시오. (예: a)';
+$strDelete = '삭제';
+$strDeleteAndFlush = '사용자를 삭제하고 사용권한을 갱신함.';
+$strDeleteAndFlushDescr = '가장 확실한 방법이지만, 사용권한 테이블을 다시 읽어들이는데는 약간의 시간이 걸립니다.';
+$strDeleted = '선택한 줄(레코드)을 삭제 하였습니다.';
+$strDeleting = ' %s 을 삭제합니다';
+$strDescending = '내림차순(역순)';
+$strDisabled = '사용불가';
+$strDisplayOrder = '출력 순서:';
+$strDoAQuery = '다음으로 질의를 만들기 (와일드카드: "%")';
+$strDocu = '도움말';
+$strDoYouReally = '정말로 다음을 실행하시겠습니까? ';
+$strDrop = '삭제';
+$strDropUsersDb = '사용자명과 같은 이름의 데이터베이스를 삭제';
+$strDumpingData = '테이블의 덤프 데이터';
+$strDumpXRows = '%s개의 행(레코드)을 덤프 (%s번째 레코드부터).';
+$strDynamic = '동적(다이내믹)';
+
+$strEdit = '수정';
+$strEditPDFPages = 'PDF 페이지 편집';
+$strEditPrivileges = '권한 수정';
+$strEffective = '실제량';
+$strEmpty = '비우기';
+$strEmptyResultSet = '결과값이 없습니다. (빈 레코드 리턴.)';
+$strEnabled = '사용가능';
+$strEnd = '마지막';
+$strEnglishPrivileges = ' 주의: MySQL 권한 이름은 영어로 표기되어야 합니다. ';
+$strError = '오류';
+$strExplain = 'SQL 해석';
+$strExport = '내보내기';
+$strExtendedInserts = '확장된 inserts';
+$strExtra = '추가';
+
+$strFailedAttempts = '실패한 시도';
+$strField = '필드';
+$strFieldHasBeenDropped = '필드 %s 를 제거했습니다';
+$strFields = '필드';
+$strFieldsEnclosedBy = '필드 감싸기';
+$strFieldsEscapedBy = '필드 특수문자(escape) 처리';
+$strFieldsTerminatedBy = '필드 구분자 ';
+$strFileCouldNotBeRead = '파일을 읽을 수 없습니다';
+$strFileNameTemplate = '파일명 템플릿';
+$strFileNameTemplateRemember = '템플릿 기억';
+$strFlushTable = '테이블 닫기(캐시 삭제)';
+$strFunction = '함수';
+
+$strGenTime = '처리한 시간';
+$strGlobalPrivileges = '전체적 권한';
+$strGo = '실행';
+$strGzip = 'gz 압축';
+
+$strHasBeenAltered = '을(를) 변경하였습니다.';
+$strHaveToShow = '출력하려면 적어도 1개 이상의 열(칼럼)을 선택해야 합니다.';
+$strHome = '시작페이지';
+$strHomepageOfficial = 'phpMyAdmin 공식 홈';
+$strHost = '호스트';
+$strHostEmpty = '호스트명이 없습니다!';
+
+$strIgnore = 'Ignore';
+$strImportFiles = '파일 가져오기';
+$strIndex = '인덱스';
+$strIndexes = '인덱스';
+$strIndexHasBeenDropped = '인덱스 %s 를 제거했습니다';
+$strIndexName = '인덱스 이름:';
+$strIndexType = '인덱스 종류:';
+$strInsecureMySQL = '환경설정파일에 MySQL 관리자 암호가 없습니다. 이같은 기본설정상태로 MySQL 서버가 작동한다면 누구나 침입할 수 있으므로, 이 보안상 허점을 수정하시기 바랍니다.';
+$strInsert = '삽입';
+$strInsertAsNewRow = '새 열을 삽입합니다';
+$strInUse = '사용중';
+
+$strJumpToDB = '데이터베이스 &quot;%s&quot; 로 이동.';
+$strJustDelete = '권한 테이블에서 사용자를 삭제하기만 함.';
+$strJustDeleteDescr = '사용권한이 갱신되기까지는 &quot;삭제된&quot; 사용자들도 여전히 서버를 사용할 수 있습니다.';
+
+$strKeepPass = '암호를 변경하지 않음';
+$strKeyname = '키 이름';
+$strKill = 'Kill';
+
+$strLengthSet = '길이/값*';
+$strLimitNumRows = '페이지당 레코드 수';
+$strLinesTerminatedBy = '줄(열) 구분자';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'SQL 텍스트파일의 위치';
+$strLogin = '로그인';
+$strLoginInformation = '로그인 정보';
+$strLogout = '로그아웃';
+$strLogPassword = '암호:';
+$strLogUsername = '사용자명:';
+
+$strModifications = '수정된 내용이 저장되었습니다.';
+$strModify = '수정';
+$strModifyIndexTopic = '인덱스 수정';
+$strMoveTable = '테이블 이동 (데이터베이스명<b>.</b>테이블명):';
+$strMoveTableOK = '테이블 %s 을 %s 로 옮겼습니다.';
+$strMySQLCharset = 'MySQL 문자셋';
+$strMySQLSaid = 'MySQL 메시지: ';
+$strMySQLShowProcess = 'MySQL 프로세스 보기';
+
+$strName = '이름';
+$strNext = '다음';
+$strNo = ' 아니오 ';
+$strNoDatabases = '데이터베이스가 없습니다';
+$strNoDatabasesSelected = '데이터베이스를 선택하지 않았습니다.';
+$strNoDescription = '설명이 없습니다';
+$strNoDropDatabases = '"DROP DATABASE" 구문은 허락되지 않습니다.';
+$strNoExplain = '해석(EXPLAIN) 생략';
+$strNoFrames = 'phpMyAdmin 은 <b>프레임을 지원하는</b> 브라우저에서 잘 보입니다.';
+$strNoIndex = '인덱스가 설정되지 않았습니다!';
+$strNoModification = '변화 없음';
+$strNone = '없음';
+$strNoPassword = '암호 없음';
+$strNoPhp = 'PHP 코드 없이 보기';
+$strNoPrivileges = '권한 없음';
+$strNoRights = '어떻게 들어오셨어요? 지금 여기 있을 권한이 없습니다!';
+$strNoTablesFound = '데이터베이스에 테이블이 없습니다.';
+$strNotNumber = '은 숫자(번호)가 아닙니다!';
+$strNoUsersFound = '사용자가 없습니다.';
+$strNumTables = '테이블 수';
+
+$strOperations = '테이블 작업';
+$strOptimizeTable = '테이블 최적화';
+$strOr = '또는';
+$strOverhead = '부담';
+
+$strPageNumber = '페이지:';
+$strPassword = '암호';
+$strPasswordChanged = '%s 의 암호가 바뀌었습니다.';
+$strPasswordEmpty = '암호가 비었습니다!';
+$strPasswordNotSame = '암호가 동일하지 않습니다!';
+$strPdfDbSchema = '"%s" 데이터베이스의 스킴(윤곽) - 페이지 %s';
+$strPdfInvalidTblName = '"%s" 테이블이 존재하지 않습니다!';
+$strPdfNoTables = '테이블이 없습니다';
+$strPhp = 'PHP 코드 보기';
+$strPHPVersion = 'PHP 버전';
+$strPmaDocumentation = 'phpMyAdmin 설명서';
+$strPmaUriError = '환경설정 파일에서 <tt>$cfg[\'PmaAbsoluteUri\']</tt> 주소를 기입하십시오!';
+$strPos1 = '처음';
+$strPrevious = '이전';
+$strPrimary = '기본';
+$strPrimaryKeyHasBeenDropped = '기본 키를 제거했습니다';
+$strPrimaryKeyName = '기본 키의 이름은 반드시 PRIMARY여야 합니다!';
+$strPrimaryKeyWarning = '("PRIMARY"는 기본 키만의 <b>유일한</b> 이름입니다!)';
+$strPrint = '인쇄';
+$strPrintView = '인쇄용 보기';
+$strPrivDescAllPrivileges = 'GRANT 이외의 모든 권한을 포함함.';
+$strPrivDescAlter = '테이블 구조 변경 허용.';
+$strPrivDescCreateDb = 'DB 및 테이블 생성 허용.';
+$strPrivDescCreateTbl = '테이블 생성 허용.';
+$strPrivDescCreateTmpTable = '임시테이블 생성 허용.';
+$strPrivDescDelete = '데이터 삭제 허용.';
+$strPrivDescDropDb = 'DB 및 테이블 삭제 허용.';
+$strPrivDescDropTbl = '테이블 삭제 허용.';
+$strPrivDescExecute = '저장프로시저(SP) 사용을 허용; 이 MySQL 버전에는 효과가 없음.';
+$strPrivDescFile = '데이터를 파일에서 가져오기 및 파일로 내보내기 허용.';
+$strPrivDescGrant = '권한 테이블을 갱신하지 않고 사용자와 권한 추가하기 허용.';
+$strPrivDescIndex = '인덱스 생성 및 삭제 허용.';
+$strPrivDescInsert = '데이터 추가(insert) 및 변경(replace) 허용.';
+$strPrivDescLockTables = '현재 쓰레드에 대한 테이블 잠금(lock) 허용.';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivDescReferences = '이 버전의 MySQL에는 소용이 없습니다.';
+$strPrivDescReload = '캐시를 비우고 서버를 재시동하는 것을 허용.';
+$strPrivDescReplSlave = '복제서버(replication slaves)에 필요합니다.';
+$strPrivDescSelect = '데이터 읽기 허용.';
+$strPrivDescShowDb = '전체 데이터베이스 목록 접근을 허용';
+$strPrivDescShutdown = '서버 종료 허용.';
+$strPrivDescUpdate = '데이터 변경 허용.';
+$strPrivDescUsage = '권한 없음.';
+$strPrivileges = '사용권한';
+$strPrivilegesReloaded = '권한을 다시 로딩했습니다.';
+$strProcesses = '프로세스 목록';
+$strProcesslist = '프로세스 목록';
+$strPutColNames = '맨처음에 필드 이름을 출력';
+
+$strQBE = '질의 마법사';
+$strQBEDel = '삭제';
+$strQBEIns = '삽입';
+$strQueryFrame = '질의 창';
+$strQueryOnDb = '데이터베이스 <b>%s</b>에 SQL 질의:';
+$strQuerySQLHistory = 'SQL 내력(히스토리)';
+$strQueryStatistics = '<b>SQL 질의 통계</b>: 이 서버에 %s 번의 질의가 보내졌습니다.';
+$strQueryTime = '질의 실행시간 %01.4f 초';
+$strQueryType = '질의 종류';
+
+$strReceived = '받음';
+$strRecords = '레코드수';
+$strReferentialIntegrity = 'referential 무결성 검사:';
+$strRelationNotWorking = 'linked Tables에서 작동하는 부가기능이 사용되지 않습니다. 이유를 알려면 %s여기를 클릭%s하십시오.';
+$strReloadingThePrivileges = '사용권한을 갱신합니다(Reloading the privileges)';
+$strRemoveSelectedUsers = '선택한 사용자를 삭제';
+$strRenameTable = '테이블 이름 바꾸기';
+$strRenameTableOK = '테이블 %s을(를) %s(으)로 변경하였습니다.';
+$strRepairTable = '테이블 복구';
+$strReplaceTable = '파일로 테이블 대치하기';
+$strReset = '리세트';
+$strResourceLimits = '리소스 제한';
+$strReType = '재입력';
+$strRevoke = '제거';
+$strRevokeAndDelete = '모든 활성화된 권한을 박탈하고 사용자를 삭제함.';
+$strRevokeAndDeleteDescr = '사용권한이 다시 로딩되기까지는 이 사용자들은 여전히 USAGE 권한을 갖고 있습니다.';
+$strRevokeMessage = '%s의 권한을 제거했습니다.';
+$strRowLength = '행 길이';
+$strRows = '행(레코드)';
+$strRowsFrom = '행. 시작(행)위치';
+$strRowSize = ' Row size ';
+$strRowsModeFlippedHorizontal = '수평 (rotated headers)';
+$strRowsModeHorizontal = '수평(가로)';
+$strRowsModeOptions = ' %s 정렬 (%s 칸이 넘으면 헤더 반복)';
+$strRowsModeVertical = '수직(세로)';
+$strRowsStatistic = '행(레코드) 통계';
+$strRunning = '입니다. (%s)';
+$strRunQuery = '질의 실행';
+$strRunSQLQuery = '데이터베이스 %s에 SQL 질의를 실행';
+
+$strSave = '저장';
+$strSearch = '검색';
+$strSearchFormTitle = '데이터베이스 검색';
+$strSearchInTables = '찾을 테이블:';
+$strSearchNeedle = '찾을 단어, 값 (와일드카드: "%"):';
+$strSearchOption1 = '아무 단어나';
+$strSearchOption2 = '모든 단어';
+$strSearchOption3 = '정확한 문구';
+$strSearchOption4 = '정규표현식';
+$strSearchType = '찾는 방식:';
+$strSelectADb = '데이터베이스를 선택하세요';
+$strSelectAll = '모두 선택';
+$strSelectFields = '필드 선택 (하나 이상):';
+$strSelectNumRows = '질의(in query)';
+$strSend = '파일로 저장';
+$strSent = '보냄';
+$strServer = '서버';
+$strServerChoice = '서버 선택';
+$strServerStatus = '런타임 정보';
+$strServerStatusUptime = '이 MySQL 서버는 %s 동안 구동되었습니다. <br/>구동 시작날짜는 %s 입니다.';
+$strServerTabVariables = '환경설정값';
+$strServerTrafficNotes = '<b>서버 소통량</b>: 이 테이블은 MySQL서버가 구동된 이래의 네트웍 부하 상태를 보여줍니다.';
+$strServerVars = '서버의 환경설정';
+$strServerVersion = '서버 버전';
+$strSessionValue = '세션 값';
+$strSetEnumVal = '필드 종류가 "enum"이나 "set"일 경우, 다음과 같은 형식으로 값을 입력하십시오: \'a\',\'b\',\'c\'...<br />여기에 역슬래시(\)나 작은 따옴표(\')를 넣어야 한다면, 그 앞에 역슬래시를 사용하십시오. (예: \'\\\\xyz\' 또는 \'a\\\'b\').';
+$strShow = '보기';
+$strShowAll = '모두 보기';
+$strShowColor = '색깔 보기';
+$strShowGrid = 'grid 보기';
+$strShowingRecords = '행(레코드) 보기';
+$strShowPHPInfo = 'PHP 정보 보기';
+$strShowTables = '테이블 보기';
+$strShowThisQuery = ' 이 질의를 다시 보여줌 ';
+$strSingly = '(단독으로)';
+$strSize = '크기';
+$strSort = '정렬';
+$strSpaceUsage = '공간 사용량';
+$strSplitWordsWithSpace = '단어는 스페이스(" ")로 구분됩니다.';
+$strSQLParserUserError = 'SQL 질의문에 에러가 있습니다. MySQL 서버가 다음과 같은 에러를 출력했습니다. 이것이 문제를 진단하는데 도움이 될 것입니다.';
+$strSQLQuery = 'SQL 질의';
+$strSQLResult = 'SQL 결과';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = '잘못된 식별자(Identifer)';
+$strSQPBugUnclosedQuote = '따옴표(quote)가 닫히지 않았음';
+$strStatCheckTime = '검사';
+$strStatCreateTime = '생성';
+$strStatement = '명세';
+$strStatUpdateTime = '업데이트';
+$strStatus = '상태';
+$strStrucCSV = 'CSV 데이터';
+$strStrucData = '구조와 데이터 모두';
+$strStrucExcelCSV = 'MS엑셀 CSV 데이터';
+$strStrucOnly = '구조만';
+$strStructPropose = '제안하는 테이블 구조';
+$strStructure = '구조';
+$strSubmit = '확인';
+$strSuccess = 'SQL 질의가 바르게 실행되었습니다.';
+$strSum = '계';
+$strSwitchToTable = '복사한 테이블로 옮겨감';
+
+$strTable = '테이블 ';
+$strTableComments = '테이블 설명';
+$strTableEmpty = '테이블명이 없습니다!';
+$strTableHasBeenDropped = '테이블 %s 을 제거했습니다.';
+$strTableHasBeenEmptied = '테이블 %s 을 비웠습니다';
+$strTableHasBeenFlushed = '테이블 %s 을 닫았습니다(캐시 삭제)';
+$strTableMaintenance = '테이블 유지보수';
+$strTables = '테이블 %s 개';
+$strTableStructure = '테이블 구조';
+$strTblPrivileges = '테이블에 관한 권한';
+$strTextAreaLength = ' 필드의 길이 때문에,<br />이 필드를 편집할 수 없습니다 ';
+$strThreadSuccessfullyKilled = '쓰레드 %s 를 죽였습니다.';
+$strTime = '시간';
+$strTotal = '합계';
+$strTotalUC = '전체 사용량';
+$strTraffic = '소통량';
+$strType = '종류';
+
+$strUncheckAll = '모두 체크안함';
+$strUnique = '고유값';
+$strUnselectAll = '모두 선택안함';
+$strUpdatePrivMessage = '%s 의 권한을 업데이트했습니다.';
+$strUpdateProfileMessage = '프로파일을 업데이트했습니다.';
+$strUpdateQuery = '질의 업데이트';
+$strUsage = '사용법(량)';
+$strUseBackquotes = '테이블, 필드명에 백쿼터(`) 사용';
+$strUser = '사용자';
+$strUserAlreadyExists = '사용자 %s 가 이미 존재합니다!';
+$strUserEmpty = '사용자명이 없습니다!';
+$strUserName = '사용자명';
+$strUserNotFound = '선택한 사용자는 사용권한 테이블에 존재하지 않습니다.';
+$strUserOverview = '사용자 개요';
+$strUsersDeleted = '선택한 사용자들을 삭제했습니다.';
+$strUsersHavingAccessToDb = '&quot;%s&quot; 에 접근할 수 있는 사용자들';
+$strUseTables = '사용할 테이블';
+
+$strValidateSQL = 'SQL 검사';
+$strValidatorError = 'SQL 검사기가 초기화되지 않았습니다. %s문서%s에서 설명한 php 확장모듈을 설치했는지 확인해보십시오.';
+$strValue = '값';
+$strVar = '변수';
+$strViewDump = '테이블의 덤프(스키마) 데이터 보기';
+$strViewDumpDB = '데이터베이스의 덤프(스키마) 데이터 보기';
+
+$strWebServerUploadDirectory = '웹서버 업로드 디렉토리';
+$strWebServerUploadDirectoryError = '업로드 디렉토리에 접근할 수 없습니다';
+$strWelcome = '%s에 오셨습니다';
+$strWithChecked = '선택한 것을:';
+$strWrongUser = '사용자명/암호가 틀렸습니다. 접근이 거부되었습니다.';
+
+$strYes = ' 예 ';
+
+$strZeroRemovesTheLimit = '주의: 이 옵션을 0으로 하면 제한이 없어집니다.';
+$strZip = 'zip 압축';
+
+// To translate:
+$strAbortedClients = 'Aborted'; //to translate
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAddIntoComments = 'Add into comments';//to translate
+$strAdministration = 'Administration'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAll = 'All'; // To translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strAny = 'Any'; // To translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+$strArabic = 'Arabic'; //to translate
+$strArmenian = 'Armenian'; //to translate
+$strAutomaticLayout = 'Automatic layout'; //to translate
+
+$strBaltic = 'Baltic'; //to translate
+$strBeginCut = 'BEGIN CUT'; //to translate
+$strBeginRaw = 'BEGIN RAW'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkLabel = 'Label'; // To translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBookmarkView = 'View only'; // To translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBulgarian = 'Bulgarian'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCantLoadRecodeIconv = 'Can not load iconv or recode extension needed for charset conversion, configure php to allow using these extensions or disable charset conversion in phpMyAdmin.'; //to translate
+$strCantUseRecodeIconv = 'Can not use iconv nor libiconv nor recode_string function while extension reports to be loaded. Check your php configuration.'; //to translate
+$strCardinality = 'Cardinality'; // To translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCentralEuropean = 'Central European'; //to translate
+$strChangeCopyModeCopy = '... keep the old one.'; //to translate
+$strChangeCopyMode = 'Create a new user with the same privileges and ...'; //to translate
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; //to translate
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; //to translate
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; //to translate
+$strChangeCopyUser = 'Change Login Information / Copy User'; //to translate
+$strCharset = 'Charset'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCharsets = 'Charsets'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCollation = 'Collation'; //to translate
+$strCommand = 'Command'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConfigureTableCoord = 'Please configure the coordinates for table %s'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCookiesRequired = '쿠키 사용이 가능해야 합니다 past this point.'; // To translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCopyTableSameNames = 'Can\'t copy table to same one!'; //to translate
+$strCouldNotKill = 'phpMyAdmin was unable to kill thread %s. It probably has already been closed.'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreatePdfFeat = 'Creation of PDFs'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCriteria = 'Criteria'; // To translate
+$strCroatian = 'Croatian'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCyrillic = 'Cyrillic'; //to translate
+$strCzech = 'Czech'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDanish = 'Danish'; //to translate
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDatabaseExportOptions = 'Database export options';//to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBComment = 'Database comment: ';//to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDbSpecific = 'database-specific'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+$strDescription = 'Description'; //to translate
+$strDictionary = 'dictionary'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDisplayFeat = 'Display Features'; //to translate
+$strDisplayPDF = 'Display PDF schema'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+$strDumpSaved = 'Dump has been saved to file %s.'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEndCut = 'END CUT'; //to translate
+$strEndRaw = 'END RAW'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strEnglish = 'English'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strEstonian = 'Estonian'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFixed = 'fixed'; // To translate
+$strFlushPrivilegesNote = '주의: phpMyAdmin은 사용자의 사용권한을 MySQL의 사용권한 테이블에서 곧바로 읽어옵니다. The content of this tables may differ from the privileges the server uses if manual changes have made to it. In this case, you should %sreload the privileges%s before you continue.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFormat = 'Format'; // To translate
+$strFormEmpty = 'Missing value in the form !'; // To translate
+$strFreePages = 'Free pages'; //to translate
+$strFullText = 'Full Texts'; // To translate
+
+$strGenBy = 'Generated by'; //to translate
+$strGeneralRelationFeat = 'General 관계 features'; //to translate
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+$strGerman = 'German'; //to translate
+$strGlobal = 'global'; //to translate
+$strGlobalValue = 'Global value'; //to translate
+$strGrantOption = 'Grant'; //to translate
+$strGreek = 'Greek'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHebrew = 'Hebrew'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+$strHungarian = 'Hungarian'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strId = 'ID'; //to translate
+$strIdxFulltext = 'Fulltext'; // To translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInnodbStat = 'InnoDB 상태'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJapanese = 'Japanese'; //to translate
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+$strKorean = 'Korean'; //to translate
+
+$strLandscape = 'Landscape'; //to translate
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption';//to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexContinued = '(continued)';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLaTeX = 'LaTeX'; //to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLinkNotFound = 'Link not found'; //to translate
+$strLinksTo = 'Links to'; //to translate
+$strLithuanian = 'Lithuanian'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIME_available_mime = 'Available MIME-types';//to translate
+$strMIME_available_transform = 'Available transformations';//to translate
+$strMIME_description = 'Description';//to translate
+$strMIME_MIMEtype = 'MIME-type';//to translate
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.';//to translate
+$strMIME_transformation = 'Browser transformation';//to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';//to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';//to translate
+$strMIME_transformation_options = 'Transformation options';//to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';//to translate
+$strMoveTableSameNames = 'Can\'t move table to same one!'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoIndexPartsDefined = 'No index parts defined!'; // To translate
+$strNoOptions = 'This format has no options';//to translate
+$strNoPermission = 'The web server does not have permission to save the file %s.'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoSpace = 'Insufficient space to save the file %s.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNotOK = 'not OK'; //to translate
+$strNotSet = '<b>%s</b> 테이블이 없거나 or not set in %s'; //to translate
+$strNoValidateSQL = 'Skip Validate SQL'; //to translate
+$strNull = 'Null'; // To translate
+$strNumberOfFields = 'Number of fields'; //to translate
+$strNumSearchResultsInTable = '%s match(es) inside table <i>%s</i>';//to translate
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> match(es)';//to translate
+
+$strOK = 'OK'; //to translate
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+$strOverwriteExisting = 'Overwrite existing file(s)'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPaperSize = 'Paper size'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPartialText = 'Partial Texts'; // To translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPerHour = 'per hour'; //to translate
+$strPerMinute = 'per minute';//to translate
+$strPerSecond = 'per second';//to translate
+$strPersian = 'Persian'; //to translate
+$strPhoneBook = 'phone book'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPortrait = 'Portrait'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescSuper = '최대 연결수를 초과했을 경우에도 연결을 허용; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationalSchema = 'Relational schema'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strRelations = 'Relations'; //to translate
+$strRelationView = 'Relation view'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplaceNULLBy = 'Replace NULL by'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+$strRussian = 'Russian'; //to translate
+
+$strSaveOnServer = 'Save on server in %s directory'; //to translate
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page'; //to translate
+$strSearchResultsFor = 'Search results for "<i>%s</i>" %s:';//to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strSelectTables = 'Select Tables'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowDatadictAs = 'Data Dictionary Format'; //to translate
+$strShowFullQueries = 'Show Full Queries'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strShowTableDimension = 'Show dimension of tables'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:'; //to translate
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwedish = 'Swedish'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableOfContents = 'Table of contents'; //to translate
+$strTableOptions = 'Table options'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThisHost = 'This Host'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTraditionalChinese = 'Traditional Chinese'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)'; //to translate
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).';//to translate
+$strTransformation_image_png__inline = 'See image/jpeg: inline'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: 외부 프로그램을 실행하고 표준 입력으로 fielddata 를 공급합니다. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';//to translate
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.';//to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';//to translate
+$strTruncateQueries = 'Truncate Shown Queries'; //to translate
+$strTurkish = 'Turkish'; //to translate
+
+$strUkrainian = 'Ukrainian'; //to translate
+$strUnicode = 'Unicode'; //to translate
+$strUnknown = 'unknown'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseHostTable = 'Use Host Table'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseTextField = 'Use text field'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases';//to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWestEuropean = 'West European'; //to translate
+$strWildcard = 'wildcard'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strXML = 'XML';//to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/latvian-utf-8.inc.php b/lang/latvian-utf-8.inc.php
new file mode 100644
index 0000000000..1593f5289c
--- /dev/null
+++ b/lang/latvian-utf-8.inc.php
@@ -0,0 +1,1470 @@
+<?php
+/* $Id$ */
+
+/**
+ * Latvian language file by Sandis Jērics <sandisj at parks.lv>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ' ';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('baiti', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Sv', 'P', 'O', 'T', 'C', 'Pk', 'S');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jūn', 'Jūl', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d.%m.%Y %H:%M';
+
+$timespanfmt = '%s dienas, %s stundas, %s minūtes un %s sekundes';
+
+$strAbortedClients = 'Pārtraukts';
+$strAccessDeniedExplanation = 'phpMyAdmin mēģināja pieslēgties MySQL serverim, un serveris noraidīja pieslēgumu. Lūdzu pārbaudiet hostu, lietotājvārdu un paroli config.inc.php failā, un pārliecinieties, ka tie atbilst informācijai, ko Jums deva MySQL servera administrators.';
+$strAccessDenied = 'Pieeja aizliegta';
+$strAction = 'Darbība';
+$strAddAutoIncrement = 'Pievienot AUTO_INCREMENT vērtību';
+$strAddConstraints = 'Pievienot ierobežojumus';
+$strAddDeleteColumn = 'Pievienot/Dzēst laukus (kolonnas)';
+$strAddDeleteRow = 'Pievienot/Dzēst ierakstu';
+$strAddFields = 'Pievienot %s lauku(s)';
+$strAddHeaderComment = 'Ievietot virsrakstā komentāru (\\n atdala rindas)';
+$strAddIntoComments = 'Pievienot komentāros';
+$strAddNewField = 'Pievienot jaunu lauku';
+$strAddPrivilegesOnDb = 'Pievienot privilēģijas uz sekojošo datubāzi';
+$strAddPrivilegesOnTbl = 'Pievienot privilēģijas uz sekojošo tabulu';
+$strAddSearchConditions = 'Pievienot meklēšanas nosacījumus ("where" izteiksmes ķermenis):';
+$strAddToIndex = 'Pievienot indeksam &nbsp;%s&nbsp;kolonn(u/as)';
+$strAddUserMessage = 'Jūs pievienojāt jaunu lietotāju.';
+$strAddUser = 'Pievienot jaunu lietotāju';
+$strAdministration = 'Administrācija';
+$strAfterInsertBack = 'Atgriezties atpakaļ iepriekšējā lapā';
+$strAfterInsertNewInsert = 'Ievietot vēl vienu rindu';
+$strAfterInsertSame = 'Atgriezties šajā lapā';
+$strAfter = 'Pēc %s';
+$strAllTableSameWidth = 'rādīt visas tabulas vienadā platumā?';
+$strAll = 'Visi';
+$strAlterOrderBy = 'Mainīt datu kārtošanas laukus';
+$strAnalyzeTable = 'Analizēt tabulu';
+$strAnd = 'Un';
+$strAnIndex = 'Indekss tieka pievienots uz %s';
+$strAnyHost = 'Jebkurš hosts';
+$strAny = 'Jebkurš';
+$strAnyUser = 'Jebkurš lietotājs';
+$strApproximateCount = 'Var būt aptuvens skaits. Skatīt FAQ 3.11';
+$strAPrimaryKey = 'Primārā atslēga pievienota uz lauka %s';
+$strArabic = 'Arābu';
+$strArmenian = 'Armēņu';
+$strAscending = 'Augošā secībā';
+$strAtBeginningOfTable = 'Tabulas sākumā';
+$strAtEndOfTable = 'Tabulas beigās';
+$strAttr = 'Atribūti';
+$strAutomaticLayout = 'Automātiskais izvietojums';
+
+$strBack = 'Atpakaļ';
+$strBaltic = 'Baltijas';
+$strBeginCut = 'IZGRIEZT NO ŠĪS VIETAS';
+$strBeginRaw = 'RINDAS SĀKUMS';
+$strBinary = 'Binārais';
+$strBinaryDoNotEdit = 'Binārais - netiek labots';
+$strBinaryLog = 'Binārais log-fails';
+$strBinLogEventType = 'Notikuma tips';
+$strBinLogInfo = 'Informācija';
+$strBinLogName = 'Log-faila nosaukums';
+$strBinLogOriginalPosition = 'Oriģinālā pozīcija';
+$strBinLogPosition = 'Pozīcija';
+$strBinLogServerId = 'Servera ID';
+$strBookmarkAllUsers = 'Dot ikvienam lietotājam pieeju šai grāmatzīmei';
+$strBookmarkDeleted = 'Ieraksts tika dzēsts.';
+$strBookmarkLabel = 'Nosaukums';
+$strBookmarkQuery = 'Saglabātie SQL vaicājumi';
+$strBookmarkThis = 'Saglabāt šo SQL vaicājumu';
+$strBookmarkView = 'Tikai apskatīt';
+$strBrowse = 'Apskatīt';
+$strBrowseForeignValues = 'Pārlūkot ārējās vērtības';
+$strBulgarian = 'Bulgāru';
+$strBzip = 'Arhivēts ar bzip';
+
+$strCalendar = 'Kalendārs';
+$strCannotLogin = 'Nevar pieslēgties MySQL serverim';
+$strCantLoad = 'nevar ielādēt paplašinājumu %s,<br />lūdzu pārbaudiet PHP konfigurāciju';
+$strCantLoadRecodeIconv = 'Nevar ielādēt iconv vai recode paplašinājumu, kas ir nepieciešams rakstzīmju konvertācijai, lūdzu nokonfigurējiet php, lai varētu lietot šos paplašinājumus, vai arī atslēdziet rakstzīmju konvertāciju phpMyAdmin konfigurācijā.';
+$strCantRenameIdxToPrimary = 'Nevar pārsaukt indeksu par PRIMARY!';
+$strCantUseRecodeIconv = 'Nevar lietot iconv, libiconv vai recode_string funkciju, bet php saka, ka paplašinājums ir ielādēts. Pārbaudiet php konfigurāciju.';
+$strCardinality = 'Kardinalitāte';
+$strCaseInsensitive = 'reģistrnejūtīgs';
+$strCaseSensitive = 'reģistrjūtīgs';
+$strCentralEuropean = 'Centrāleiropas';
+$strChangeCopyModeCopy = '... paturēt veco lietotāju.';
+$strChangeCopyModeDeleteAndReload = ' ... dzēst veco lietotāju no lietotāju tabulas, un pēc tam pārlādēt privilēģijas.';
+$strChangeCopyMode = 'Izveidot jaunu lietotāju ar tādām pašām privilēģijām un ...';
+$strChangeCopyModeJustDelete = ' ... dzēst veco lietotāju no lietotāju tabulas.';
+$strChangeCopyModeRevoke = ' ... atņemt vecajam lietotājam visas aktīvās privilēģijas, un pēc tam dzēst viņu.';
+$strChangeCopyUser = 'Mainīt piekļuves informāciju / Klonēt lietotāju';
+$strChangeDisplay = 'Izvēlieties, kuru lauku rādīt';
+$strChange = 'Labot';
+$strChangePassword = 'Mainīt paroli';
+$strCharset = 'Kodējums';
+$strCharsetOfFile = 'Tabulas kodējums:';
+$strCharsetsAndCollations = 'Rakstzīmju kodējumi un izkārtojumi';
+$strCharsets = 'Rakstzīmju kodējumi';
+$strCheckAll = 'Iezīmēt visu';
+$strCheckOverhead = 'Iezīmēt tabulas ar pārtēriņu';
+$strCheckPrivsLong = 'Pārbaudīt privilēģijas uz datubāzi &quot;%s&quot;.';
+$strCheckPrivs = 'Pārbaudīt privilēģijas';
+$strCheckTable = 'Pārbaudīt tabulu';
+$strChoosePage = 'Izvēlieties lapu redigēšanai';
+$strColComFeat = 'Rādu kolonnu komentārus';
+$strCollation = 'Izkārtojumi';
+$strColumnNames = 'Kolonnu nosaukumi';
+$strColumnPrivileges = 'Kolonnu specifiskās privilēģijas';
+$strCommand = 'Komanda';
+$strComments = 'Komentāri';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 savietojams';
+$strCompleteInserts = 'Pilnas INSERT izteiksmes';
+$strCompression = 'Kompresija';
+$strConfigFileError = 'phpMyAdmin nevar nolasīt konfigurācijas failu!<br />Tas var notikt, ja PHP atrod tajā kļūdu, vai arī nevar atrast so failu.<br />Mēginiet izsaukt konfigurācijas failu tieši, klikškinot linku zemāk un lasiet PHP pazinojumu par kļūdām. Vairākumā gadījumu kaut kur pietrukst pēdiņa vai semikols.<br />Ja redzat tukšu lapu, viss ir kārtībā.';
+$strConfigureTableCoord = 'Lūdzu konfigurējiet koordinātes tabulai %s';
+$strConnectionError = 'Nevar pieslēgties: kļūda konfigurācijā.';
+$strConnections = 'Konekcijas';
+$strConstraintsForDumped = 'Ierobežojumi izmestām tabulām';
+$strConstraintsForTable = 'Ierobežojumi tabulai';
+$strCookiesRequired = '"Cookies" ir jābūt atļautiem aiz šī punkta.';
+$strCopyDatabaseOK = 'Datubāze %s tika pārkopēta uz %s';
+$strCopyTable = 'Kopēt tabulu uz (datubāze<b>.</b>tabula):';
+$strCopyTableOK = 'Tabula %s tika pārkopēta uz %s.';
+$strCopyTableSameNames = 'Nevar nokopēt tabulu uz viņu pašu!';
+$strCouldNotKill = 'phpMyAdmin nevarēja nogalināt procesu %s. Iespējams, ka tas jau agrāk tika izbeigts.';
+$strCreateIndex = 'Izveidot indeksu uz&nbsp;%s&nbsp;laukiem';
+$strCreateIndexTopic = 'Izveidot jaunu indeksu';
+$strCreate = 'Izveidot';
+$strCreateNewDatabase = 'Izveidot jaunu datubāzi';
+$strCreateNewTable = 'Izveidot jaunu tabulu datubāzē %s';
+$strCreatePage = 'Izveidot jaunu lapu';
+$strCreatePdfFeat = 'PDF failu izveide';
+$strCreationDates = 'Izveidošanas/Atjaunošanas/Piekļuves datumi';
+$strCriteria = 'Kritērijs';
+$strCroatian = 'Horvātu';
+$strCyrillic = 'Kirilisks';
+$strCzech = 'Čehu';
+$strCzechSlovak = 'Čehu-Slovāku';
+
+$strDanish = 'Dāņu';
+$strDatabase = 'Datubāze';
+$strDatabaseEmpty = 'Datubāzes nosaukums ir tukšs!';
+$strDatabaseExportOptions = 'Datubāzu eksporta opcijas';
+$strDatabaseHasBeenDropped = 'Datubāze %s tika izdzēsta.';
+$strDatabases = 'Datubāzes';
+$strDatabasesDropped = '%s datubāzes tika veiksmīgi dzēstas.';
+$strDatabasesStats = 'Datubāzu statistika';
+$strDatabasesStatsDisable = 'Izslēgt statistiku';
+$strDatabasesStatsEnable = 'Ieslēgt statistiku';
+$strDatabasesStatsHeavyTraffic = 'Piezīme: Datubāzes statistikas ieslēgšana šeit var izsaukt palielināto datu apmaiņu starp webserveri un MySQL serveri.';
+$strData = 'Dati';
+$strDataDict = 'Datu vārdnīca';
+$strDataOnly = 'Tikai dati';
+$strDBComment = 'Datubāzes komentārs: ';
+$strDBCopy = 'Kopēt datubāzi uz';
+$strDbPrivileges = 'Datubāžu specifiskās privilēģijas';
+$strDBRename = 'Pārsaukt datubāzi par';
+$strDbSpecific = 'datubāzei specifisks';
+$strDefault = 'Noklusēts';
+$strDefaultValueHelp = 'Noklusētajām vērtībām, lūdzu ievadiet tikai pašu vertību, bez izsargāšanās ar atpakaļējo slīpsvītru vai pēdiņām, lietojot šo formatu: a';
+$strDefragment = 'Defragmentēt tabulu';
+$strDelayedInserts = 'Lietot aizturētos INSERT';
+$strDeleteAndFlushDescr = 'Tas ir labākais veids, bet privilēģiju pārlādēšana var paņemt zināmu laiku.';
+$strDeleteAndFlush = 'Dzēst lietotājus, un pēc tam pārlādēt privilēģijas.';
+$strDeleted = 'Ieraksts tika dzēsts';
+$strDelete = 'Dzēst';
+$strDeleting = 'Dzēšam %s';
+$strDelOld = 'Tekošajā lapā ir atsauces uz tabulām, kas vairs neeksistē. Vai Jūs gribat dzēst šīs atsauces?';
+$strDescending = 'Dilstošā secībā';
+$strDescription = 'Apraksts';
+$strDictionary = 'vārdnīca';
+$strDisabled = 'Izslēgts';
+$strDisableForeignChecks = 'Nepārbaudīt ārējās atslēgas';
+$strDisplayFeat = 'Rādīt iespējas';
+$strDisplayOrder = 'Attēlošanas secība:';
+$strDisplayPDF = 'Rādīt PDF shēmu';
+$strDoAQuery = 'Izpildīt "vaicājumu pēc parauga" (aizstājējzīme: "%")';
+$strDocu = 'Dokumentācija';
+$strDoYouReally = 'Vai Jūs tiešām gribat ';
+$strDropDatabaseStrongWarning = 'Jūs taisaties LIKVIDĒT veselu datubāzi!';
+$strDrop = 'Likvidēt';
+$strDropUsersDb = 'Dzēst datubāzes, kurām ir tādi paši vārdi, kā lietotājiem.';
+$strDumpingData = 'Dati tabulai';
+$strDumpSaved = 'Damps tika saglabāts failā %s.';
+$strDumpXRows = 'Saglabāt %s rindas, sākot ar %s.';
+$strDynamic = 'dinamisks';
+
+$strEdit = 'Labot';
+$strEditPDFPages = 'Labot PDF lapas';
+$strEditPrivileges = 'Mainīt privilēģijas';
+$strEffective = 'Efektīvs';
+$strEmpty = 'Iztukšot';
+$strEmptyResultSet = 'MySQL atgrieza tukšo rezultātu (0 rindas).';
+$strEnabled = 'Ieslēgts';
+$strEncloseInTransaction = 'Iekļaut eksportu transakcijā';
+$strEnd = 'Beigas';
+$strEndCut = 'IZGRIEZT LĪDZ ŠAI VIETAI';
+$strEndRaw = 'RINDAS BEIGAS';
+$strEnglish = 'Angļu';
+$strEnglishPrivileges = ' Piezīme: MySQL privilēģiju apzīmējumi tiek rakstīti angļu valodā ';
+$strError = 'Kļūda';
+$strEscapeWildcards = 'Aizstājējzīmes _ un % jāaizsargā ar \ priekšā, lai izmantotu tās burtiski';
+$strEstonian = 'Igauņu';
+$strExcelEdition = 'Excel redakcija';
+$strExecuteBookmarked = 'Izpildīt iegrāmatoto vaicājumu';
+$strExplain = 'Izskaidrot SQL';
+$strExport = 'Eksports';
+$strExtendedInserts = 'Paplašinātas INSERT izteiksmes';
+$strExtra = 'Ekstras';
+
+$strFailedAttempts = 'Neveiksmīgi mēģinājumi';
+$strFieldHasBeenDropped = 'Lauks %s tika izdzēsts';
+$strField = 'Lauks';
+$strFieldsEnclosedBy = 'Lauki iekļauti iekš';
+$strFieldsEscapedBy = 'Glābjoša (escape) rakstzīme ir';
+$strFields = 'Lauki';
+$strFieldsTerminatedBy = 'Lauki atdalīti ar';
+$strFileAlreadyExists = 'Fails %s jau eksistē uz servera. Lūdzu nomainiet faila nosaukumu vai atzīmējiet failu pārrakstīšanas opciju.';
+$strFileCouldNotBeRead = 'Nevar nolasīt failu';
+$strFileNameTemplate = 'Faila nosaukuma šablons';
+$strFileNameTemplateRemember = 'atcerēties šablonu';
+$strFixed = 'fiksēts';
+$strFlushPrivilegesNote = 'Piezīme: phpMyAdmin saņem lietotāju privilēģijas pa taisno no MySQL privilēģiju tabilām. Šo tabulu saturs var atšķirties no privilēģijām, ko lieto serveris, ja tur tika veikti labojumi. Šajā gadījumā ir nepieciešams %spārlādēt privilēģijas%s pirms Jūs turpināt.';
+$strFlushTable = 'Atsvaidzināt tabulu ("FLUSH")';
+$strFormat = 'Formats';
+$strFormEmpty = 'Formā trūkst vērtību!';
+$strFullText = 'Pilni teksti';
+$strFunction = 'Funkcija';
+
+$strGenBy = 'Uzģenerēja';
+$strGeneralRelationFeat = 'Galvenās relāciju īpašības';
+$strGenTime = 'Izveidošanas laiks';
+$strGeorgian = 'Gruzīnu';
+$strGerman = 'Vācu';
+$strGlobal = 'globāls';
+$strGlobalPrivileges = 'Globālās privilēģijas';
+$strGlobalValue = 'Globālā vērtība';
+$strGo = 'Aiziet!';
+$strGrantOption = 'Piešķirt';
+$strGreek = 'Grieķu';
+$strGzip = 'Arhivēts ar gzip';
+
+$strHasBeenAltered = 'tika modificēta.';
+$strHaveToShow = 'Izvēlieties vismaz vienu kolonnu attēlošanai';
+$strHebrew = 'Ebreju';
+$strHomepageOfficial = 'Oficiālā phpMyAdmin mājaslapa';
+$strHome = 'Sākumlapa';
+$strHostEmpty = 'Hosts nav norādīts!';
+$strHost = 'Hosts';
+$strHungarian = 'Ungāru';
+
+$strIcelandic = 'Islandiešu';
+$strId = 'ID';
+$strIdxFulltext = 'Pilni teksti';
+$strIgnore = 'Ignorēt';
+$strIgnoreInserts = 'Lietot IGNORE INSERTS';
+$strImportFiles = 'Importēt failus';
+$strIndexes = 'Indeksi';
+$strIndexHasBeenDropped = 'Indekss %s tika izdzēsts';
+$strIndex = 'Indekss';
+$strIndexName = 'Indeksa nosaukums&nbsp;:';
+$strIndexType = 'Indeksa tips&nbsp;:';
+$strIndexWarningTable = 'Problēmas ar indeksiem tabulā `%s`';
+$strInnodbStat = 'InnoDB statuss';
+$strInsecureMySQL = 'Jūsu konfigurācijas fails satur iestādījumus (lietotājs "root" bez paroles), kas atbilst noklusētajam MySQL priviliģētajam lietotājam. Jūsu MySQL serveris strādā ar šo noklusēto variantu, ir atvērts uzbrukumiem, un Jums tiešām jāaiztaisa šis drošības caurums.';
+$strInsertAsNewRow = 'Ievietot kā jaunu rindu';
+$strInsert = 'Pievienot';
+$strInternalRelations = 'Iekšējās relācijas';
+$strInUse = 'lietošanā';
+
+$strJapanese = 'Japāņu';
+$strJumpToDB = 'pāriet pie datubāzes &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Dzēstie&quot; lietotāji saglabā spēju piekļūt serverim kā parasti, līdz privilēģijas tiek pārlādētas.';
+$strJustDelete = 'Dzēst lietotājus no privilēģiju tabulām.';
+
+$strKeepPass = 'Nemainīt paroli';
+$strKeyname = 'Atslēgas nosaukums';
+$strKill = 'Nogalināt';
+$strKorean = 'Korejiešu';
+
+$strLandscape = 'Ainava';
+$strLatexCaption = 'Tabulas virsraksts';
+$strLatexContent = 'Tabulas __TABLE__ saturs';
+$strLatexContinuedCaption = 'Tabulas virsraksta turpinājums';
+$strLatexContinued = '(turpinājums)';
+$strLatexIncludeCaption = 'Iekļaut tabulas virsrakstu';
+$strLatexLabel = 'Etiķetes atslēga';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Tabulas __TABLE__ struktūra';
+$strLatvian = 'Latviešu';
+$strLengthSet = 'Garums/Vērtības*';
+$strLimitNumRows = 'Rindu skaits vienā lapā';
+$strLinesTerminatedBy = 'Rindas atdalītas ar';
+$strLinkNotFound = 'Links nav atrasts';
+$strLinksTo = 'Linki uz';
+$strLithuanian = 'Lietuviešu';
+$strLocalhost = 'Lokāls';
+$strLocationTextfile = 'Teksta faila atrašanās vieta';
+$strLogin = 'Ieiet';
+$strLoginInformation = 'Piekļuves informācija';
+$strLogout = 'Iziet';
+$strLogPassword = 'Parole:';
+$strLogServer = 'Serveris';
+$strLogUsername = 'Lietotājvārds:';
+
+$strMaximumSize = 'Maksimālais izmērs: %s%s';
+$strMIME_available_mime = 'Pieejamie MIME tipi';
+$strMIME_available_transform = 'Pieejamās transformācijas';
+$strMIME_description = 'Apraksts';
+$strMIME_MIMEtype = 'MIME tips';
+$strMIME_nodescription = 'Šai transformācijai nav apraksta.<br />Jautājiet autoram, ko %s dara.';
+$strMIME_transformation_note = 'Lai iegūtu pieejamo transformāciju opcijas un to MIME tipu transformācijas, uzklikšķiniet uz %stransformāciju apraksti%s';
+$strMIME_transformation_options_note = 'Lūdzu ievadiet transformāciju opciju vērtības, lietojot šo formatu: \'a\', 100, b,\'c\'...<br />Ja Jums jālieto atpakaļējā slīpsvītra ("\") vai vienkāršā pēdiņa ("\'") starp šīm vērtībām, lieciet tās priekšā vēl vienu atpakaļējo slīpsvītru (piemēram \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformācijas opcijas';
+$strMIME_transformation = 'Pārlūkprogrammas transformācija';
+$strMIMETypesForTable = 'MIME TIPI TABULAI';
+$strMIME_without = 'MIME tipiem, kas parādīti slīprakstā, nav atsevišķas transformācijas funkcijas';
+$strModifications = 'Labojumi tika saglabāti';
+$strModifyIndexTopic = 'Labot indeksu';
+$strModify = 'Labot';
+$strMoveTableOK = 'Tabula %s tika pārvietota uz %s.';
+$strMoveTable = 'Pārvietot tabulu uz (datubāze<b>.</b>tabula):';
+$strMoveTableSameNames = 'Nevar pārvietot tabulu uz viņu pašu!';
+$strMultilingual = 'daudzvalodu';
+$strMySQLCharset = 'MySQL kodējums';
+$strMySQLConnectionCollation = 'MySQL konekcijas kārtošana';
+$strMySQLSaid = 'MySQL teica: ';
+$strMySQLShowProcess = 'Parādīt procesus';
+
+$strName = 'Nosaukums';
+$strNext = 'Nākamie';
+$strNoActivity = 'Nebija aktivitātes vairāk kā %s sekunžu laikā, lūdzu autorizējieties vēlreiz';
+$strNoDatabases = 'Nav datubāzu';
+$strNoDatabasesSelected = 'Datubāze nav izvēlēta.';
+$strNoDescription = 'Bez apraksta';
+$strNoDropDatabases = '"DROP DATABASE" komanda ir aizliegta.';
+$strNoExplain = 'Neizskaidrot SQL';
+$strNoFrames = 'phpMyAdmin ir vairāk draudzīgs <b>freimu atbalstošām</b> pārlūkprogrammām.';
+$strNoIndex = 'Nav definēti indeksi!';
+$strNoIndexPartsDefined = 'Nav definēto indeksa daļu!';
+$strNoModification = 'Netika labots';
+$strNo = 'Nē';
+$strNone = 'Nav';
+$strNoOptions = 'Šim formātam nav opciju';
+$strNoPassword = 'Nav paroles';
+$strNoPermission = 'Web serverim nav tiesību rakstīt failā %s.';
+$strNoPhp = 'Bez PHP koda';
+$strNoPrivileges = 'Nav privilēģiju';
+$strNoRights = 'Jums nav pietiekoši tiesību, lai atrastos šeit tagad!';
+$strNoRowsSelected = 'Rindas nav iezīmētas';
+$strNoSpace = 'Nepietiek vietas, lai saglabātu failu %s.';
+$strNoTablesFound = 'Tabulas nav atrastas šajā datubāzē.';
+$strNoThemeSupport = 'Nav tēmu atbalsta, lūdzu pārbaudiet jūsu konfigurāciju un/vai Jūsu tēmas direktorijā %s.';
+$strNotNumber = 'Tas nav numurs!';
+$strNotOK = 'nav OK';
+$strNotSet = 'Tabula <b>%s</b> nav atrasta vai nav atzīmeta iekš %s';
+$strNoUsersFound = 'Lietotāji netika atrasti.';
+$strNoValidateSQL = 'Nepārbaudīt SQL';
+$strNull = 'Nulle';
+$strNumSearchResultsInTable = '%s rezultāti tabulā <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Kopumā:</b> <i>%s</i> rezultāti';
+$strNumTables = 'Tabulas';
+
+$strOK = 'Labi';
+$strOperations = 'Darbības';
+$strOperator = 'Operators';
+$strOptimizeTable = 'Optimizēt tabulu';
+$strOr = 'Vai';
+$strOverhead = 'Pārtēriņš';
+$strOverwriteExisting = 'Pārrakstīt eksistējošos failus';
+
+$strPageNumber = 'Lapas numurs:';
+$strPaperSize = 'Papīra izmērs';
+$strPartialText = 'Daļēji teksti';
+$strPasswordChanged = 'Lietotāja %s parole tika veiksmīgi mainīta.';
+$strPasswordEmpty = 'Parole nav norādīta!';
+$strPasswordHashing = 'Paroles jaukšana';
+$strPasswordNotSame = 'Paroles nesakrīt!';
+$strPassword = 'Parole';
+$strPdfDbSchema = 'Datubāzes "%s" shēma, %s. lapa';
+$strPdfInvalidTblName = 'Tabula "%s" neeksistē!';
+$strPdfNoTables = 'Nav tabulu';
+$strPerHour = 'stundā';
+$strPerMinute = 'minūtē';
+$strPerSecond = 'sekundē';
+$strPersian = 'Persiešu';
+$strPhoneBook = 'telefonu grāmata';
+$strPhp = 'Izveidot PHP kodu';
+$strPHPVersion = 'PHP Versija';
+$strPmaDocumentation = 'phpMyAdmin dokumentācija';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> direktīvai ir JĀBŪT nodefinētai Jūsu konfigurācijas failā!';
+$strPolish = 'Poļu';
+$strPortrait = 'Portrets';
+$strPos1 = 'Sākums';
+$strPrevious = 'Iepriekšējie';
+$strPrimaryKeyHasBeenDropped = 'Primārā atslēga tika izdzēsta';
+$strPrimaryKeyName = 'Primārās atslēgas nosaukumam jābūt... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>jābūt</b> tikai un <b>vienīgi</b> primārās atslēgas indeksa nosaukumam!)';
+$strPrimary = 'Primārā';
+$strPrint = 'Drukāt';
+$strPrintViewFull = 'Drukas skats (ar pilniem tekstiem)';
+$strPrintView = 'Izdrukas versija';
+$strPrivDescAllPrivileges = 'Iekļauj visas privilēģijas, izņemot GRANT.';
+$strPrivDescAlter = 'Ļauj mainīt esošo tabulu struktūru.';
+$strPrivDescCreateDb = 'Ļauj veidot jaunas datubāzes un tabulas.';
+$strPrivDescCreateTbl = 'Ļauj veidot jaunas tabulas.';
+$strPrivDescCreateTmpTable = 'Ļauj veidot pagaidu tabulas.';
+$strPrivDescDelete = 'Ļauj dzēst datus.';
+$strPrivDescDropDb = 'Ļauj dzēst datubāzes un tabulas.';
+$strPrivDescDropTbl = 'Ļauj dzēst tabulas.';
+$strPrivDescExecute = 'Ļauj palaist saglabātās procedūras; vēl nestrādā šajā MySQL versijā.';
+$strPrivDescFile = 'Ļauj importēt/eksportēt datus no/uz failiem.';
+$strPrivDescGrant = 'Ļauj pievienot lietotājus un privilēģijas bez privilēģiju tabulu pārlādēšanas.';
+$strPrivDescIndex = 'Ļauj veidot un dzēst indeksus.';
+$strPrivDescInsert = 'Ļauj ievietot un mainīt datus.';
+$strPrivDescLockTables = 'Ļauj bloķēt tabulas tekošajai darbībai.';
+$strPrivDescMaxConnections = 'Ierobežo jauno konekciju skaitu, ko lietotājs var atvērt stundas laikā.';
+$strPrivDescMaxQuestions = 'Ierobežo vaicājumu skaitu, ko lietotājs var mosūtīt uz serveri stundas laikā.';
+$strPrivDescMaxUpdates = 'Ierobežo komandu skaitu, kas maina kas maina tabulas vai datubāzes, ko lietotājs var izpildīt stundas laikā.';
+$strPrivDescReferences = 'Nedarbojas šajā MySQL versijā.';
+$strPrivDescReload = 'Ļauj prlādēt servera iestādījumus un iztukšot servera kešu.';
+$strPrivDescReplClient = 'Dod lietotājam tiesības jautāt, kur ir replikācijas oriģināli / kopijas.';
+$strPrivDescReplSlave = 'Nepieciešams replikāciju kopijām.';
+$strPrivDescSelect = 'Ļauj lasīt datus.';
+$strPrivDescShowDb = 'Dod pieeju pilnam datubāzu sarakstam.';
+$strPrivDescShutdown = 'Ļauj apstādināt serveri.';
+$strPrivDescSuper = 'Ļauj pieslēgties pat tad, ja ir sasniegts maksimālais konekciju skaits; Nepieciešams vairumam administratīvo operāciju, kā globālo mainīgo maiņa vai citu lietotāju procesu nogalināšana.';
+$strPrivDescUpdate = 'Ļauj mainīt datus.';
+$strPrivDescUsage = 'Nav privilēģiju.';
+$strPrivileges = 'Privilēģijas';
+$strPrivilegesReloaded = 'Privilēģijas tika veiksmīgi pārlādētas.';
+$strProcesses = 'Procesi';
+$strProcesslist = 'Procesu saraksts';
+$strPutColNames = 'Likt kolonnu nosaukumus pirmajā rindā';
+
+$strQBEDel = 'Dzēst';
+$strQBEIns = 'Ielikt';
+$strQBE = 'Vaicājums pēc parauga';
+$strQueryFrame = 'Vaicājuma logs';
+$strQueryOnDb = 'SQL vaicājums uz datubāzes <b>%s</b>:';
+$strQuerySQLHistory = 'SQL vēsture';
+$strQueryStatistics = '<b>Pieprasījumu statistika</b>: %s pieprasījumi tika nosūtīti uz serveri kopš tā palaišanās brīža.';
+$strQueryTime = 'Vaicājums ilga %01.4f s';
+$strQueryType = 'Vaicājuma tips';
+$strQueryWindowLock = 'Nepārrakstīt šo vaicājumu ārpus šī loga';
+
+$strReceived = 'Saņemts';
+$strRecords = 'Ieraksti';
+$strReferentialIntegrity = 'Pārbaudīt referenciālo integritāti:';
+$strRefresh = 'Atjaunot';
+$strRelationalSchema = 'Relāciju shēma';
+$strRelationNotWorking = 'Papildiespējas darbam ar saistītām tabulām tika izslēgtas. Lai uzzinātu kāpēc, klikškiniet %sšeit%s.';
+$strRelationsForTable = 'RELĀCIJAS TABULAI';
+$strRelations = 'Relācijas';
+$strRelationView = 'Relāciju pārskats';
+$strReloadingThePrivileges = 'Pārlādējam privilēģijas';
+$strRemoveSelectedUsers = 'Dzēst izvēlētos lietotājus';
+$strRenameDatabaseOK = 'Datubāze %s tika pārsaukta par %s';
+$strRenameTableOK = 'Tabula %s tika pārsaukta par %s';
+$strRenameTable = 'Pārsaukt tabulu uz';
+$strRepairTable = 'Restaurēt tabulu';
+$strReplaceNULLBy = 'Aizvietot NULL ar';
+$strReplaceTable = 'Aizvietot tabulas datus ar datiem no faila';
+$strReset = 'Atcelt';
+$strResourceLimits = 'Resursu ierobežojumi';
+$strReType = 'Atkārtojiet';
+$strRevokeAndDelete = 'Atņemt visas aktīvās privilēģijas lietotājiem, un pēc tam dzēst tos.';
+$strRevokeAndDeleteDescr = 'Lietotāji saglabā iespeju lietot datubāzes, līdz privilēģijas tiek pārlādētas.';
+$strRevoke = 'Atsaukt';
+$strRevokeMessage = 'Jūs atņēmāt privilēgijas lietotājam %s';
+$strRomanian = 'Rumāņu';
+$strRowLength = 'Rindas garums';
+$strRowsFrom = 'rindas sākot no';
+$strRowSize = ' Rindas izmērs ';
+$strRowsModeFlippedHorizontal = 'horizontālā (pagriezti virsraksti)';
+$strRowsModeHorizontal = 'horizontālā';
+$strRowsModeOptions = '%s skatā un atkārtot virsrakstus ik pēc %s rindām';
+$strRowsModeVertical = 'vertikālā';
+$strRows = 'Rindas';
+$strRowsStatistic = 'Rindas statistika';
+$strRunning = 'atrodas uz %s';
+$strRunQuery = 'Izpildīt vaicājumu';
+$strRunSQLQuery = 'Izpildīt SQL vaicājumu(s) uz datubāzes %s';
+$strRussian = 'Krievu';
+
+$strSaveOnServer = 'Saglabāt uz servera direktorijā %s';
+$strSave = 'Saglabāt';
+$strScaleFactorSmall = 'Mērogošanas faktors ir pārāk mazs, lai shēma ietilptu vienā lapā';
+$strSearchFormTitle = 'Meklēt datubāzē';
+$strSearchInTables = 'Tabulā(s):';
+$strSearch = 'Meklēt';
+$strSearchNeedle = 'Vārdi vai vērtības meklēšanai (aizstājējzīme: "%"):';
+$strSearchOption1 = 'kaut viens no vārdiem';
+$strSearchOption2 = 'visi vārdi';
+$strSearchOption3 = 'precīza frāze';
+$strSearchOption4 = 'kā regulārā izteiksme';
+$strSearchResultsFor = 'Meklēšanas rezultāti "<i>%s</i>" %s:';
+$strSearchType = 'Atrast:';
+$strSecretRequired = 'Konfigurācijas fails tagad prasa slepeno paroli (blowfish_secret).';
+$strSelectADb = 'Lūdzu izvēlieties datubāzi';
+$strSelectAll = 'Iezīmēt visu';
+$strSelectBinaryLog = 'Izvēlieties bināro log-failu apskatei';
+$strSelectFields = 'Izvēlieties laukus (kaut vienu):';
+$strSelectNumRows = 'vaicājumā';
+$strSelectTables = 'Izvēlieties tabulas';
+$strSend = 'Saglabāt kā failu';
+$strSent = 'Nosūtīts';
+$strServerChoice = 'Servera izvēle';
+$strServerNotResponding = 'Serveris neatbild';
+$strServer = 'Serveris';
+$strServerStatus = 'Izpildes laika informācija';
+$strServerStatusUptime = 'Šis MySQL serveris strādā %s. Tas tika palaists %s.';
+$strServerTabVariables = 'Mainīgie';
+$strServerTrafficNotes = '<b>Servera trafiks</b>: Šīs tabulas parāda šī MySQL servera tīkla trafika statistiku kopš tā palaišanas.';
+$strServerVars = 'Servera mainīgie un konfigurācija';
+$strServerVersion = 'Servera versija';
+$strSessionValue = 'Sesijas vērtība';
+$strSetEnumVal = 'Ja lauka tips ir "enum" vai "set", lūdzu ievadiet vērtības atbilstoši šim formatam: \'a\',\'b\',\'c\'...<br />Ja Jums vajag ielikt atpakaļējo slīpsvītru (\) vai vienkāršo pēdiņu (\') kādā no šīm vērtībām, lieciet tās priekšā atpakaļējo slīpsvītru (piemēram, \'\\\\xyz\' vai \'a\\\'b\').';
+$strShowAll = 'Rādīt visu';
+$strShowColor = 'Rādīt krāsas';
+$strShowDatadictAs = 'Datu vārdnīcas formats';
+$strShowFullQueries = 'Rādīt pilnos vaicājumus';
+$strShowGrid = 'Rādīt režģi';
+$strShowingRecords = 'Parādu rindas';
+$strShowPHPInfo = 'Parādīt PHP informāciju';
+$strShow = 'Rādīt';
+$strShowTableDimension = 'Rādit tabulu izmērus';
+$strShowTables = 'Rādīt tabulas';
+$strShowThisQuery = ' Rādīt šo vaicājumu šeit atkal ';
+$strSimplifiedChinese = 'Vienkāršota ķīniešu';
+$strSingly = '(atsevišķi)';
+$strSize = 'Izmērs';
+$strSlovak = 'Slovāku';
+$strSlovenian = 'Slovēņu';
+$strSortByKey = 'Kārtot pēc atslēgas';
+$strSort = 'Kārtošana';
+$strSpaceUsage = 'Diska vietas lietošana';
+$strSpanish = 'Spāņu';
+$strSplitWordsWithSpace = 'Vārdi ir atdalīti ar tukšumu (" ").';
+$strSQLExportType = 'Eksporta veids';
+$strSQLParserBugMessage = 'Iespējams, ka Jūs esat atraduši kļūdu SQL interpretatorā. Lūdzu apskatiet Jūsu vaicājumu citīgāk, un pārbaudiet, ka pēdiņas ir pareizas un nav sajauktas. Cits kļūdas iemesls var būt tas, ka Jūs atsūtījāt failu ar bināro vērtību ārpus pēdiņās iekļautā teksta lauka. Jūs varat arī izmēģināt savu vaicājumu MySQL komandrindas interfeisā. MySQL servera kļūdas paziņojums zemāk, ja tāds ir, var arī palīdzēt Jums diagnosticēt problēmu. Ja problēma paliek, vai arī iekš phpMyAdmin kļūda ir, bet komandrindā nav, lūdzu samaziniet Jūsu SQL vaicājumu līdz vienkāršam vaicājumam kas izsauc problēmas, un atsūtiet mums ziņojumu par kļūdu, iekļaujot tajā datus no IZGRIEZT sekcijas zemāk:';
+$strSQLParserUserError = 'Izkatās, ka Jūsu SQL vaicajumā ir kļūda. MySQL servera kļūdas pazinojums zemāk, ja tāds ir, var arī palīdzet Jums diagnosticēt problēmu.';
+$strSQLQuery = 'SQL vaicājums';
+$strSQLResult = 'SQL rezultāts';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Nederīgs identifikators';
+$strSQPBugUnclosedQuote = 'Neaizvērtas pēdiņas';
+$strSQPBugUnknownPunctuation = 'Nezināmā punktuācijas zīme';
+$strStatCheckTime = 'Pēdējā pārbaude';
+$strStatCreateTime = 'Izveidošana';
+$strStatement = 'Parametrs';
+$strStatUpdateTime = 'Pēdējā atjaunošana';
+$strStatus = 'Statuss';
+$strStrucCSV = 'CSV dati';
+$strStrucData = 'Struktūra un dati';
+$strStrucExcelCSV = 'CSV dati MS Excel formātā';
+$strStrucNativeExcel = 'Dati MS Excel formatā';
+$strStrucOnly = 'Tikai struktūra';
+$strStructPropose = 'Ieteikt tabulas sruktūru';
+$strStructure = 'Struktūra';
+$strSubmit = 'Nosūtīt';
+$strSuccess = 'Jūsu SQL vaicājums tika veiksmīgi izpildīts';
+$strSum = 'Kopumā';
+$strSwedish = 'Zviedru';
+$strSwitchToDatabase = 'Pārslēgties uz nokopēto datubāzi';
+$strSwitchToTable = 'Pārslēgties uz nokopēto tabulu';
+
+$strTableComments = 'Komentārs tabulai';
+$strTableEmpty = 'Tabulas nosaukums nav norādīts!';
+$strTableHasBeenDropped = 'Tabula %s tika izdzēsta';
+$strTableHasBeenEmptied = 'Tabula %s tika iztukšota';
+$strTableHasBeenFlushed = 'Tabula %s tika atsvaidzināta';
+$strTableMaintenance = 'Tabulas apkalpošana';
+$strTableOfContents = 'Satura rādītājs';
+$strTableOptions = 'Tabulas opcijas';
+$strTables = '%s tabula(s)';
+$strTableStructure = 'Tabulas struktūra tabulai';
+$strTable = 'Tabula';
+$strTakeIt = 'izmantot šo stilu';
+$strTblPrivileges = 'Tabulu specifiskās privilēģijas';
+$strTextAreaLength = ' Sava garuma dēļ,<br /> šis lauks var būt nerediģējams ';
+$strThai = 'Taizemiešu';
+$strTheme = 'Tēma / Stils';
+$strThisHost = 'Šis hosts';
+$strThreadSuccessfullyKilled = 'Process %s tika veiksmīgi nogalināts.';
+$strTime = 'Laiks';
+$strToggleScratchboard = 'parādīt/noslēpt piezīmju tafeli';
+$strTotal = 'kopā';
+$strTotalUC = 'Kopā';
+$strTraditionalChinese = 'Tradicionāla ķīniešu';
+$strTraditionalSpanish = 'Tradicionālā spāņu';
+$strTraffic = 'Datu apmaiņa';
+$strTransformation_application_octetstream__download = 'Rādīt saiti uz lauka bināro datu lejuplādi. Pirmā opcija ir binārā faila nosaukums. Otrā opcija ir iespējamais lauka nosaukums tabulas rindā, kas satur faula nosaukumu. Ja izmantojat otro opciju, pirmo atstājiet tukšo.';
+$strTransformation_image_jpeg__inline = 'Parāda klikšķināmo sīktēlu; opcijas: platums, augstums pikseļos (saglabājot oriģinālās proporcijas)';
+$strTransformation_image_jpeg__link = 'Parāda linku uz šo attēlu (tieša blob lauka lajuplāde).';
+$strTransformation_image_png__inline = 'Skatīties image/jpeg: kā ierindotu attēlu';
+$strTransformation_text_plain__external = 'Tikai LINUX: Palaiž ārējo aplikāciju un padod lauka datus tās standartievadā. Atgriež aplikācijas standartizvadi. Noklusējums ir Tidy, kas izskaistina HTML kodu. Drošības apsvērumu dēļ, nepieciešams manuāli rediģēt failu libraries/transformations/text_plain__external.inc.php un ielikt rīkus, kurus Jūs atļaujat palaist. Pirmā opcija ir programmas numurs, ko Jūs vēlaties lietot, otrā opcija ir parametri šai programmai. Trešā opcija, ja ir vienāda ar 1, konvertē izvadi, izmantojot htmlspecialchars() (noklusējums ir 1). Ceturtais parametrs, ja vienāds ar 1, liek NOWRAP parametru satura šūnai, tā kā izvade tiks attēlota bez pārformatēšanas. (noklusējums ir 1)';
+$strTransformation_text_plain__formatted = 'Saglabā lauka oriģinālo formatējumu. Speciālo rakstzīmju pasargāšana netiek veikta.';
+$strTransformation_text_plain__imagelink = 'Parāda attēlu un linku, lauks satur faila nosauumu; pirmā opcija ir prefikss, piemēram, "http://domens.lv/", otrā opcija ir platums pikseļos, trešā ir augstums.';
+$strTransformation_text_plain__link = 'Parāda attēlu un linku, lauks satur faila nosauumu; pirmā opcija ir prefikss, piemēram, "http://domens.lv/", otrā opcija ir linka nosaukums.';
+$strTransformation_text_plain__substr = 'Parāda tikai virknes daļu. Pirmā opcija ir nobīde, kas nosaka, kur Jūsu teksts sākas (noklusējums 0). Otrā opcija ir atgriežamā teksta garums. Ja tukša, atgriež visu atlikušo tekstu. Trešā opcija nosaka rakstzīmes, kas tiks pievienotas apgrieztās virknes galā (noklusējums: ...) .';
+$strTruncateQueries = 'Ierobežot parādīto vaicājumu garumu';
+$strTurkish = 'Turku';
+$strType = 'Tips';
+
+$strUkrainian = 'Ukraiņu';
+$strUncheckAll = 'Neiezīmēt neko';
+$strUnicode = 'Unikods';
+$strUnique = 'Unikālais';
+$strUnknown = 'nazināma';
+$strUnselectAll = 'Neiezīmēt neko';
+$strUpdatePrivMessage = 'Jūs modificējāt privilēģijas objektam %s.';
+$strUpdateProfileMessage = 'Profils tika modificēts.';
+$strUpdateQuery = 'Atjaunot vaicājumu';
+$strUpdComTab = 'Lūdzu skatieties dokumentāciju par to, kā atjaunot \'Column_comments\' tabulu';
+$strUpgrade = 'Jums ir jāuzliek %s %s vai jaunāks.';
+$strUsage = 'Aizņem';
+$strUseBackquotes = 'Lietot apostrofa simbolu [`] tabulu un lauku nosaukumiem';
+$strUseHostTable = 'Lietot hostu tabulu';
+$strUserAlreadyExists = 'Lietotājs %s jau eksistē!';
+$strUserEmpty = 'Lietotāja vārds nav norādīts!';
+$strUser = 'Lietotājs';
+$strUserName = 'Lietotājvārds';
+$strUserNotFound = 'Izvēlētais lietotājs nav atrasts privilēģiju tabulā.';
+$strUserOverview = 'Lietotāju pārskats';
+$strUsersDeleted = 'Izvēlētie lietotāji tika veiksmīgi dzēsti.';
+$strUsersHavingAccessToDb = 'Lietotāji, kam ir pieja datubāzei &quot;%s&quot;';
+$strUseTabKey = 'Lietojiet TAB taustiņu, lai pārvietotos no vērtības līdz vērtībai, vai CTRL+bultiņas, lai pārvietotos jebkurā vietā';
+$strUseTables = 'Lietot tabulas';
+$strUseTextField = 'Lietot teksta lauku';
+$strUseThisValue = 'Lietot šo vērtību';
+
+$strValidateSQL = 'Pārbaudīt SQL';
+$strValidatorError = 'Nevar inicializēt SQL pārbaudītāju. Lūdzu pārbaudiet, vai esat uzinstalējuši nepieciešamos PHP paplašinājumus, kā aprakstīts %sdokumentācijā%s.';
+$strValue = 'Vērtība';
+$strVar = 'Mainīgais';
+$strViewDump = 'Apskatīt tabulas dampu (shēmu)';
+$strViewDumpDatabases = 'Apskatīt datubāzu dampu (shēmu)';
+$strViewDumpDB = 'Apskatīt datubāzes dampu (shēmu)';
+
+$strWebServerUploadDirectoryError = 'Direktoija, kuru norādijāt augšupielādei, nav pieejama';
+$strWebServerUploadDirectory = 'web servera augšupielādes direktorija';
+$strWelcome = 'Laipni lūgti %s';
+$strWestEuropean = 'Rietumeiropas';
+$strWildcard = 'aizstājējzīme';
+$strWindowNotFound = 'Neizdevās atjaunot galveno pārlūkprogramas logu. Varbūt esat viņu aizvēruši, vai arī Jūsu pārlūkprogramma bloķe starplogu saskarsmi Jūsu drošības iestādījumu dēļ.';
+$strWithChecked = 'Ar iezīmēto:';
+$strWrongUser = 'Kļūdains lietotājvārds/parole. Pieeja aizliegta.';
+
+$strXML = 'XML';
+
+$strYes = 'Jā';
+
+$strZeroRemovesTheLimit = 'Piezīme: Šo opciju uzstādīšana uz 0 (nulli) atceļ ierobežojumus.';
+$strZip = 'Arhivēts ar zip';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDataPages = 'Pages containing data'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/lithuanian-utf-8.inc.php b/lang/lithuanian-utf-8.inc.php
new file mode 100644
index 0000000000..5272f7a5bb
--- /dev/null
+++ b/lang/lithuanian-utf-8.inc.php
@@ -0,0 +1,1463 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ' ';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Sekmadienis', 'Pirmadienis', 'Antradienis', 'Trečiadienis', 'Ketvirtadienis', 'Penktadienis', 'Šeštadienis');
+$month = array('Sausio', 'Vasario', 'Kovo', 'Balandžio', 'Gegužio', 'Birželio', 'Liepos', 'Rugpjūčio', 'Rugsėjo', 'Spalio', 'Lapkričio', 'Gruodžio');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = ' %Y m. %B %d d. %H:%M';
+$timespanfmt = '%s d., %s val., %s min. ir %s s.';
+
+$strAbortedClients = 'Atmestos jungtys';
+$strAccessDeniedExplanation = 'phpMyAdmin nepavyko prisijungti prie MySQL darbinės stoties (jungtis atmesta). Patikrinkite config.inc.php byloje nurodytus duomenis (darbinės stoties adresą, prisijungimo vardą ir slaptažodį) ir įsitikinkite ar jie sutampa su duomenimis gautais iš darbinės stoties administratoriaus.';
+$strAccessDenied = 'Jungtis neįmanoma';
+$strAction = 'Valdymo veiksmai';
+$strAddAutoIncrement = 'Pridėti AUTO_INCREMENT reikšmę';
+$strAddConstraints = 'Pridėti apribojimą';
+$strAddDeleteColumn = 'Įterpti/Trinti stulpelius';
+$strAddDeleteRow = 'Įterpti/Trinti požymio eilutę(es)';
+$strAddFields = 'Pridėti %s lauką(-us)';
+$strAddHeaderComment = 'Įterpti savo komentarą į header sritį (eilučių skirtukas \\n )';
+$strAddIntoComments = 'Pridėti į komentarus';
+$strAddNewField = 'Įterpti naują laukelį(ius)';
+$strAddPrivilegesOnDb = 'Sukurti privilegijas šiai duombazei';
+$strAddPrivilegesOnTbl = 'Sukurti privilegijas šiai lentelei';
+$strAddSearchConditions = 'Įterpkite paieškos sąlygas į "where" sakinį:';
+$strAddToIndex = 'Įterpti indeksui papildomus &nbsp;%s&nbsp;stulpelį(ius)';
+$strAddUserMessage = 'Jūs sukūrėte naują vartotoją.';
+$strAddUser = 'Sukurti naują vartotoją';
+$strAdministration = 'Administracija';
+$strAfterInsertBack = 'Sugrįžti į buvusį puslapį';
+$strAfterInsertNewInsert = 'Įterpti sekančią naują eilutę';
+$strAfterInsertNext = 'Redaguoti sekantį įrašą';
+$strAfterInsertSame = 'Grįžti atgal į šį puslapį';
+$strAfter = 'Po %s';
+$strAllTableSameWidth = 'rodyti visas lenteles vienodo pločio?';
+$strAll = 'Viską';
+$strAlterOrderBy = 'Pakeisti lentelės rūšiavimą pagal:';
+$strAnalyzeTable = 'Analizuoti lentelę';
+$strAnd = 'IR';
+$strAnIndex = 'Indeksas sukurtas %s stulpeliui';
+$strAny = 'Bet kurį(ią)';
+$strAnyHost = 'Bet kurį prisijungimo adresą';
+$strAnyUser = 'Bet kurį vartotoją';
+$strApproximateCount = 'Gali būti apytikslis. Žiūrėkite DUK 3.11';
+$strAPrimaryKey = 'Stulpeliui %s sukurtas PIRMINIS raktas';
+$strArabic = 'Arabų';
+$strArmenian = 'Armėnų';
+$strAscending = 'Didėjimo tvarka';
+$strAtBeginningOfTable = 'Lentelės pradžioje';
+$strAtEndOfTable = 'Lentelės pabaigoje';
+$strAttr = 'Atributai';
+$strAutomaticLayout = 'Automatinis išdėstymas';
+
+$strBack = 'Atgal';
+$strBaltic = 'Baltų';
+$strBeginCut = 'KIRPIMO PRADŽIA';
+$strBeginRaw = 'RAW PRADŽIA';
+$strBinaryDoNotEdit = 'Dvejetainis - nekeisti';
+$strBinary = 'Dvejetainis';
+$strBinaryLog = 'Binarinis logas';
+$strBinLogEventType = 'Event\'o tipas';
+$strBinLogInfo = 'Informatcija';
+$strBinLogName = 'Logo pavadinimas';
+$strBinLogOriginalPosition = 'Pirminė padėtis';
+$strBinLogPosition = 'Padėtis';
+$strBinLogServerId = 'Serverio ID';
+$strBookmarkAllUsers = 'Leisti kitiems vartotojams naudotis šia žyme';
+$strBookmarkDeleted = 'Nuoroda ištrinta.';
+$strBookmarkLabel = 'Nuorodos Antraštė';
+$strBookmarkQuery = 'Sukurti nuoroda SQL-užklausai';
+$strBookmarkThis = 'Sukurti nuorodą';
+$strBookmarkView = 'Peržiūra';
+$strBrowseForeignValues = 'Naršyti išorines reikšmes';
+$strBrowse = 'Peržiūrėti';
+$strBufferPool = 'Buferio Pool\'as';
+$strBufferPoolUsage = 'Buferio Pool\'o naudojimas';
+$strBulgarian = 'Bulgarų';
+$strBzip = '"bzip"';
+
+$strCalendar = 'Kalendorius';
+$strCannotLogin = 'Neprisijungia prie MySQL darbinės stoties';
+$strCantLoad = 'negalima įkrauti %s plėtinio,<br />pasitikrinkite php parinktis';
+$strCantLoadRecodeIconv = 'Nepavyko užkrauti <em>iconv</em> arba <em>recode</em> plėtinių, reikalingų koduotės kovertavimui. Suteikite PHP teises naudotis šiais išplėtimais arba išjunkite phpMyAdmin koduotės konvertavimą. ';
+$strCantRenameIdxToPrimary = 'Indeksą pervadinti PIRMINIU nepavyko!';
+$strCantUseRecodeIconv = 'Kraunant plėtinių pranešimus, nepavyko pasinaudoti <em>iconv</em> arba <em>libiconv</em> arba <em>recode_string</em> funkcijomis. Pasitkrinkite PHP parinktis. ';
+$strCardinality = 'Elementų skaičius';
+$strCaseInsensitive = 'simbolių registras nesvarbus';
+$strCaseSensitive = 'simbolių registras svarbus';
+$strCentralEuropean = 'Centrinės Europos';
+$strChangeCopyModeCopy = '... palikti seną vartotoją.';
+$strChangeCopyModeDeleteAndReload = ' ... pašalinti seną vartotoją iš vartotojų lentelės ir poto perkrauti privilegijas';
+$strChangeCopyModeJustDelete = ' ... pašalinti seną vartotoją iš vartotojų lentelės.';
+$strChangeCopyModeRevoke = ' ... panaikinti visas privilegijas iš seno vartotojo ir poto jį pašalinti.';
+$strChangeCopyMode = 'Sukurti naują vartotoją su tom pačiom privilegijom ir ...';
+$strChangeCopyUser = 'Pakeisti prisijungimo informaciją / Kopijuoti vartotojo duomenis';
+$strChangeDisplay = 'Pasirinkite lauką, kurį norite peržiūrėti';
+$strChangePassword = 'Pakeisti slaptažodį';
+$strChange = 'Redaguoti';
+$strCharset = 'Koduotė';
+$strCharsetOfFile = 'Simbolių koduotė byloje:';
+$strCharsetsAndCollations = 'Simbolių rinkiniai ir Palyginimai';
+$strCharsets = 'Koduotės';
+$strCheckAll = 'Pažymėti viską';
+$strCheckOverhead = 'Patikrinti perkrautus';
+$strCheckPrivsLong = 'Patikrinti duombazės &quot;%s&quot; privilegijas.';
+$strCheckPrivs = 'Patikrinti privilegijas';
+$strCheckTable = 'Patikrinti lentelę';
+$strChoosePage = 'Pasirinkite puslapį redagavimui';
+$strColComFeat = 'Stulpelių komentarų išvedimas';
+$strCollation = 'Palyginimas';
+$strColumnNames = 'Stulpelių vardai';
+$strColumnPrivileges = 'Specifinės stulpelių privilegijos';
+$strCommand = 'Komanda';
+$strComments = 'Komentarai';
+$strCompatibleHashing = 'Suderinamas sy MySQL&nbsp;4.0';
+$strCompleteInserts = 'Visiškas įterpimas';
+$strCompression = 'Kompresija';
+$strConfigFileError = 'phpMyAdmin negalėjo perskaityti parinkčių bylos!<br />Tai galėjo nutikti jeigu <u>php</u> rado byloje vykdymo klaidą arba visai nerando bylos.<br />Prašome kreiptis į parinkčių bylą tiesiogiai (naudojantis nuoroda žemiau) ir perskaityti gautus <u>php</u> klaidų pranešimą(us). Daugeliu atveju vienoje/keletoje eilučių truksta kabučių ir/arba kabliataškio.<br />Jeigu išvedamas tuščias naršyklės langas - viskas tvarkoje (klaidų nepastebėta).';
+$strConfigureTableCoord = 'Nustatykite lentelės %s koordinates';
+$strConnectionError = 'Neįmanoma prisijungti: neteisingi duomenys.';
+$strConnections = 'Prisijungimai';
+$strConstraintsForDumped = 'Apribojimai eksportuotom lentelėm';
+$strConstraintsForTable = 'Apribojimai lentelei';
+$strCookiesRequired = 'Sausainėliai(Cookies) turi būti priimami.';
+$strCopyDatabaseOK = 'Duombazė %s buvo nukopijuota į %s';
+$strCopy = 'Kopijuoti';
+$strCopyTable = 'Kopijuoti lentelė į (duombazė<b>.</b>lentelė):';
+$strCopyTableOK = 'Letelė %s nukopijuota į %s.';
+$strCopyTableSameNames = 'Negalima kopijuoti lentelės į ją pačią!';
+$strCouldNotKill = 'phpMyAdmin negalėjo išjungti %s proceso. Gali būti jog jis jau užbaigė darbą.';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE prieš kopijuojant';
+$strCreateIndex = 'Sukurti indeksą &nbsp;%s&nbsp;stulpeliui(iams)';
+$strCreateIndexTopic = 'Sukurti naują indeksą';
+$strCreateNewDatabase = 'Sukurti naują duombazę';
+$strCreateNewTable = 'Sukurti naują lentelę duombazėje %s';
+$strCreatePage = 'Sukurti naują puslapį';
+$strCreatePdfFeat = 'PDF bylos generavimas';
+$strCreate = 'Sukurti';
+$strCreationDates = 'Sukūrimo/Atnaujinimo/Peržiūros datos';
+$strCriteria = 'Kriterijai';
+$strCroatian = 'Kroatų';
+$strCyrillic = 'Kirylica';
+$strCzech = 'Čekų';
+$strCzechSlovak = 'Čekų-Slovakų';
+
+$strDanish = 'Danų';
+$strDatabase = 'Duombazė';
+$strDatabaseEmpty = 'Nenurodytas duombazės vardas!';
+$strDatabaseExportOptions = 'Duombazės eksportavimo parinktys';
+$strDatabaseHasBeenDropped = 'Duombazė %s ištrinta.';
+$strDatabasesDropped = 'Sėkmingai pašalintos %s duombazės.';
+$strDatabases = 'duombazės';
+$strDatabasesStatsDisable = 'Leisti statistiką';
+$strDatabasesStats = 'Duombazių statistika';
+$strDatabasesStatsEnable = 'Neleisti statistikos';
+$strDatabasesStatsHeavyTraffic = 'Pastaba: jeigu duombazės statistika įjungta - apkrovimas tarp www ir MySQL darbinių stočių, gali padidėti aukščiau normos.';
+$strDataDict = 'Duomenų žodynas';
+$strData = 'Duomenys';
+$strDataOnly = 'Tik duomenys';
+$strDBComment = 'Duombazės komantaras: ';
+$strDBCopy = 'Kopijuoti duombazę į';
+$strDbPrivileges = 'Specifinės duombazių privilegijos';
+$strDBRename = 'Pervadinti duombazę į';
+$strDbSpecific = 'priklausantis nuo duombazės tipo';
+$strDefaultEngine = '%s yra default\'inis Saugojimo Variklis šiame MySQL serveryje.';
+$strDefault = 'Nutylint';
+$strDefaultValueHelp = 'Nenaudokite išskyrimo simbolių ar kabučiu, nurodydami reikšmę pagal nutylėjimą. Naudokitės šiuo formatu: a';
+$strDefragment = 'Defragmentuoti lentelę';
+$strDelayedInserts = 'Naudoti užlaikytus įterpimus';
+$strDeleteAndFlushDescr = 'Tai yra švariausias būdas, bet privilegijų perkrovimas gali šiek tiek užtrukti.';
+$strDeleteAndFlush = 'pašalinti vartotojus ir perkrauti privilegijas.';
+$strDeleted = 'Eilutė ištrinta';
+$strDelete = 'Trinti';
+$strDeleting = 'Šaliname: %s';
+$strDelOld = 'Šis puslapis turi nuorodų į lenteles, kurios jau neegzistuoja. Ar norite pašalinti šias nuorodas?';
+$strDescending = 'Mažėjimo tvarka';
+$strDescription = 'Paaiškinimas';
+$strDictionary = 'žodynas';
+$strDisabled = 'Išjungta';
+$strDisableForeignChecks = 'Atsisakyti išorinių raktų tikrinimo';
+$strDisplayFeat = 'Išvedimo sąvybės';
+$strDisplayOrder = 'Atvaizdavimo tvarka:';
+$strDisplayPDF = 'Rodyti PDF vaizdą';
+$strDoAQuery = 'Vykdyti "užklausą pagal pavyzdį" (pakaitos simbolis: "%")';
+$strDocu = '?';
+$strDoYouReally = 'Ar TIKRAI norite ';
+$strDropDatabaseStrongWarning = 'Jūs ruošiatės SUNAIKINTI visą duombazę!';
+$strDrop = 'Šalinti';
+$strDropUsersDb = 'Pašalinti duombazes, turinčias tokius pačius vardus kaip ir vartotojai.';
+$strDumpingData = 'Sukurta duomenų kopija lentelei';
+$strDumpSaved = 'Duombazės atvaizdis išsaugotas byloje %s.';
+$strDumpXRows = 'Išvesti %s eilučių pradedant nuo %s eilutės.';
+$strDynamic = 'dinaminis';
+
+$strEditPDFPages = 'Redaguoti PDF puslapius';
+$strEditPrivileges = 'Redaguoti privilegijas';
+$strEdit = 'Redaguoti';
+$strEffective = 'Efektyvus';
+$strEmpty = 'Išvalyti';
+$strEmptyResultSet = 'MySQL gražino tuščią rezultatų rinkinį (nėra eilučių).';
+$strEnabled = 'Įjungta';
+$strEndCut = 'KIRPIMO PABAIGA';
+$strEnd = 'Pabaiga';
+$strEndRaw = 'RAW PABAIGA';
+$strEngineAvailable = '%s nėra galimas šiame MySQL serveryje.';
+$strEngineDisabled = '%s šiame MySQL serveryje yra išjungtas.';
+$strEngines = 'Varikliai';
+$strEngineUnsupported = 'Šis MySQL serveris nepalaiko %s saugojimo variklio.';
+$strEnglish = 'Anglų';
+$strEnglishPrivileges = ' Pastaba: MySQL privilegijų pavadinimai pateikiami anglų kalba';
+$strError = 'Klaida';
+$strEscapeWildcards = 'Norint naudoti _ ir % simblius, juos reikėtų eskeipinti su \\';
+$strEstonian = 'Estų';
+$strExcelEdition = 'Excel variantas';
+$strExecuteBookmarked = 'Įvykdyti išsaugotą užklausą';
+$strExplain = 'Paaiškinti';
+$strExport = 'Eksportuoti';
+$strExtendedInserts = 'Išplėstinis įterpimas';
+$strExtra = 'Papildomai';
+
+$strFailedAttempts = 'Nepavykę bandymai';
+$strFieldHasBeenDropped = 'Laukas %s išmestas';
+$strField = 'Laukas';
+$strFieldsEnclosedBy = 'Laukų reikšmės apskliaustos simboliais';
+$strFieldsEscapedBy = 'Laukų reikšmės baigiasi simboliu';
+$strFields = 'Lauką';
+$strFieldsTerminatedBy = 'Laukų pabaigos žymė';
+$strFileAlreadyExists = 'Byla pavadinimu %s jau yra darbinėje stotyje, pakeiskite norimą pavadinimą arba pasirinkite nustatymą leidžiantį perrašyti esančias bylas.';
+$strFileCouldNotBeRead = 'Negalima perskaityti bylos';
+$strFileNameTemplate = 'Failo pavadinimo šablonas';
+$strFileNameTemplateRemember = 'atsiminti šabloną';
+$strFixed = 'fiksuotas';
+$strFlushPrivilegesNote = 'Pastaba: phpMyAdmin gauna vartotojų teises tiesiai iš MySQL privilegijų lentelės. Šiose lentelėse nurodytos teisės gali skirtis nuo parinkčių bylose nurodytų teisių. Todėl %sperkraukite teises%s, jeigu norite tęsti. ';
+$strFlushTable = 'Išvalyti lentelę ("FLUSH")';
+$strFormat = 'Formatas';
+$strFormEmpty = 'Trūksta reikšmės formoje !';
+$strFullText = 'Tekstus rodyti pilnai';
+$strFunction = 'Funkcija';
+
+$strGenBy = 'Generavo:';
+$strGeneralRelationFeat = 'Pagrindinės sąryšių sąvybės';
+$strGenerate = 'Generuoti';
+$strGeneratePassword = 'Generuoti Slaiptažodį';
+$strGenTime = 'Atlikimo laikas';
+$strGeorgian = 'Gruzinų';
+$strGerman = 'Vokiečių';
+$strGlobal = 'globalus';
+$strGlobalPrivileges = 'Globalios teisės';
+$strGlobalValue = 'Globali reikšmė';
+$strGo = 'Vykdyti';
+$strGrantOption = 'Suteikti';
+$strGreek = 'Graikų';
+$strGzip = '"gzipped"';
+
+$strHasBeenAltered = 'išplėsta.';
+$strHaveToShow = 'Pasirinkite bent vieną stulpelį išvedimui';
+$strHebrew = 'Žydų';
+$strHomepageOfficial = 'Oficialus phpMyAdmin tinklapis';
+$strHome = 'Pradinis';
+$strHost = 'Darbinė stotis';
+$strHostEmpty = 'Tuščias prisijungimo adresas!';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Vengrų';
+
+$strIcelandic = 'Islandų';
+$strId = 'ID';
+$strIdxFulltext = 'Fulltext';
+$strIgnore = 'Ignoruoti';
+$strIgnoreInserts = 'Ignoruoti INSERT užklausas.';
+$strImportFiles = 'Importuoti bylas';
+$strIndexes = 'Indeksai';
+$strIndexHasBeenDropped = 'Indeksas %s panaikintas';
+$strIndex = 'Indeksas';
+$strIndexName = 'Indekso vardas&nbsp;:';
+$strIndexType = 'Indekso tipas&nbsp;:';
+$strIndexWarningTable = 'Iškilo problemos su `%s` lentelės indeksais';
+$strInnoDBBufferPoolSize = 'Buferio pool\'o dydis';
+$strInnoDBDataFilePath = 'Duomenų failai';
+$strInnoDBDataHomeDirDesc = 'Bendra direktorijų kelio dalis visiems InnoDB duomenų failams.';
+$strInnodbStat = 'InnoDB būsena';
+$strInsecureMySQL = 'Jūsų parinkčių byloje yra nurodyti standartiniai nustatymai (pvz: root vartotojas be slaptažožio). Taip sutinkinta MySQL darbinė stotis yra nesaugi, bei gali būti atvira įsilaužimams, todėl rekomenduojame pakeisti šias parinktis.';
+$strInsertAsNewRow = 'Įterpti naują įrašą';
+$strInsert = 'Įterpti';
+$strInternalRelations = 'Vidiniai sąryšiai';
+$strInUse = 'šiuo metu naudojama';
+
+$strJapanese = 'Japonų';
+$strJumpToDB = 'Pereiti į &quot;%s&quot; duombazę.';
+$strJustDeleteDescr = 'Kol nėra perkrautos privilegijos, &quot;pašalinti&quot; vartotojai gali prisijungti prie MySQL darbinės stoties.';
+$strJustDelete = 'tik pašalinti vartotojus iš privilegijų lentelės.';
+
+$strKeepPass = 'Nekeisti slaptažodžio';
+$strKeyname = 'Raktinis žodis';
+$strKill = 'Stabdyti procesą';
+$strKorean = 'Korėjiečių';
+
+$strLandscape = 'Peizažinis';
+$strLatexCaption = 'Lentelės antraštė';
+$strLatexContent = 'Lentelės __TABLE__ turinys';
+$strLatexContinuedCaption = 'Lentelės antraštė (tęsinys)';
+$strLatexContinued = '(tęsinys)';
+$strLatexIncludeCaption = 'Įterpti lentelės antraštę';
+$strLatexLabel = 'Pavadinimo raktas';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Lentelės __TABLE__ struktūra';
+$strLatvian = 'Latvių';
+$strLengthSet = 'Ilgis/reikšmės*';
+$strLimitNumRows = 'Eilučių skaičius puslapyje';
+$strLinesTerminatedBy = 'Eilutės pabaigos žymė';
+$strLinkNotFound = 'Sąryšis nerastas';
+$strLinksTo = 'Sąryšis su';
+$strLithuanian = 'Lietuvių';
+$strLocalhost = 'Lokali darbinė stotis';
+$strLocationTextfile = 'Tekstiniai SQL užklausų failai';
+$strLoginInformation = 'Prisijungimo informacija';
+$strLogin = 'Įsiregistruoti';
+$strLogout = 'Išsiregistruoti';
+$strLogPassword = 'Slaptažodis:';
+$strLogServer = 'Darbinė stotis';
+$strLogUsername = 'Vartotojo vardas:';
+$strLongOperation = 'Operacija gali užtrukti. Tęsti?';
+
+$strMaximumSize = 'Didžiausias dydis: %s%s';
+$strMbExtensionMissing = 'Nebuvo rastas PHP išplėtimas mbstring ir panašu, kad Jūs naudojate multibyte simbolių kodaciją. Be mbstring plėtinio phpMyAdmin negali tesingai skaidyti stringų, todėl galite sulaukti netikėtų rezultatų.';
+$strMbOverloadWarning = 'Savo PHP konfigūracijoje Jūs įjungėte mbstring.func_overload. Šis nustatymas nėra suderinamas su phpMyAdmin ir gali pažeisti Jūsų duomenis!';
+$strMIME_available_mime = 'Galimi MIME-tipai';
+$strMIME_available_transform = 'Galimos transformacijos';
+$strMIME_description = 'Paaiškinimas';
+$strMIME_MIMEtype = 'MIME tipai';
+$strMIME_nodescription = 'Ši transformacija neturi paaiškinimo.<br />Klauskite autoriaus ką %s daro.';
+$strMIME_transformation = 'Naršyklės transformacija';
+$strMIME_transformation_note = 'Norėdami gauti pilną sąrašą galimų transformacijų ir jų MIME tipų transformacijų, spauskite %stransformacijos paaiškinimą%s';
+$strMIME_transformation_options_note = 'Prašome įvesti transformacijos nustatymų reikšmes naudodami tokį įvedimo formatą: \'a\', 100, b,\'c\'...<br />Jeigu tarp šių reikšmių prisireiks panaudoti viršutinį vertikalų pasvirą brūkšnį ("\") arba viengubą kabutę ("\'"), naudokite viršutinį vertikalų pasvirą brūkšnį prieš šiuos simbolius (pvz: \'\\\\xyz\' ar \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformacijos nustatymai';
+$strMIMETypesForTable = 'MIME tipai lentelei';
+$strMIME_without = 'MIME tipai atspausdinti pasvirusiu šriftu neturi atskirų transformacijos funkcijos.';
+$strModifications = 'Pakeitimai išsaugoti';
+$strModifyIndexTopic = 'Keisti indeksą';
+$strModify = 'Keisti';
+$strMoveTableOK = 'Lentelė %s perkelta į %s.';
+$strMoveTable = 'Perkelti lentelė į (duombazė<b>.</b>lentelė):';
+$strMoveTableSameNames = 'Negalima perkelti lentelės į ją pačią!';
+$strMultilingual = 'daugiakalbis';
+$strMyISAMMaxExtraSortFileSize = 'Maksimalus laikinų failų dydis kuriant indeksus';
+$strMyISAMMaxSortFileSizeDesc = 'Maksimalus MySQL\'ui leistinas laikinų failų dydis perkuriant MyISAM indeksus (vykdant REPAIR TABLE, ALTER TABLE arba LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maksimalus laikinų rūšiavimo failų dydis';
+$strMyISAMRecoverOptions = 'Automatinio atstatymo režimas';
+$strMyISAMRecoverOptionsDesc = 'Režimas, skirtas automatiniam nusprogusių MyISAM lentelių atstatymui, kuris nurodomas per --myisam-recover serverio startavimo parametrą.';
+$strMyISAMRepairThreadsDesc = 'Jei ši reikšmė yra didesnė už 1, vykdant Repair, rūšiavimo procesas MyISAM lentelių indeksus kuria lygegrečiai (kiekvieną indeksą savo gijoje).';
+$strMyISAMSortBufferSize = 'Rūšiavimo buferio dydis';
+$strMySQLCharset = 'MySQL koduotė';
+$strMySQLConnectionCollation = 'MySQL prisijungimo rūšiavimas';
+$strMySQLSaid = 'MySQL atsakymas: ';
+$strMySQLShowProcess = 'Rodyti procesus';
+
+$strName = 'Pavadinimas';
+$strNext = 'Sekantis';
+$strNoActivity = 'Daugiau nei %s sekundžių nebuvo atlikta jokių veiksmų. Prašau įsiloginti išnaujo.';
+$strNoDatabases = 'Nėra duombazių';
+$strNoDatabasesSelected = 'Nepažymėjote duombazės.';
+$strNoDescription = 'Aprašymo nėra';
+$strNoDetailsForEngine = 'Apie šio Saugojimo Variklio būseną nėra išsamios informacijos.';
+$strNoDropDatabases = '"DROP DATABASE" komandos įvykdyti negalima.';
+$strNoExplain = 'Praleisti SQL užklausos aiškinimą';
+$strNoFrames = 'phpMyAdmin draugiškesnis su <b>rėmelius</b> palaikančiomis naršyklėmis.';
+$strNoIndex = 'Neaprašyti indeksai!';
+$strNoIndexPartsDefined = 'Neaprašytos indekso dalys!';
+$strNoModification = 'Nėra pakeitimų';
+$strNo = 'Ne';
+$strNone = 'Nėra';
+$strNoOptions = 'Šis formatas neturi nustatymų';
+$strNoPassword = 'Nėra slaptažodžio';
+$strNoPermission = 'Nėra teisių išsaugoti bylai %s.';
+$strNoPhp = 'be PHP kodo';
+$strNoPrivileges = 'Nėra privilegijų';
+$strNoRights = 'Neturite pakankamai teisių';
+$strNoRowsSelected = 'Nepasirinkti įrašai';
+$strNoSpace = 'Nėra pakankamai vietos išsaugoti bylai %s.';
+$strNoTablesFound = 'Duombazėje nerasta lentelių.';
+$strNoThemeSupport = 'Temos nėra palaikomos, patikrinkite savo konfigūraciją ir/arba savo temų direktoriją %s.';
+$strNotNumber = 'Įveskite skaičių!';
+$strNotOK = 'Negerai';
+$strNotSet = 'Lentelė <b>%s</b> nerasta arba nenurodyta %s byloje';
+$strNoUsersFound = 'Nerasta vartotojo(ų).';
+$strNoValidateSQL = 'Praleisti SQL užklausos tikrinimą';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s atitikmuo(enys) lentelėje <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Viso:</b> <i>%s</i> atitikmuo(enys)';
+$strNumTables = 'Lentelės';
+
+$strOK = 'Gerai';
+$strOperations = 'Veiksmai';
+$strOptimizeTable = 'Optimizuoti';
+$strOr = 'Arba';
+$strOverhead = 'Perteklius';
+$strOverwriteExisting = 'Perrašyti esančias bylas';
+
+$strPageNumber = 'Puslapis:';
+$strPaperSize = 'Lapo dydis';
+$strPartialText = 'Tekstus rodyti dalinai';
+$strPasswordChanged = 'Vartotojo %s slaptažodis sėkmingai pakeistas.';
+$strPasswordEmpty = 'Tuščias slaptažodis!';
+$strPasswordHashing = 'Slaptažodžių Hešavimas';
+$strPasswordNotSame = 'Slaptažodžiai nesutampa!';
+$strPassword = 'Slaptažodis';
+$strPdfDbSchema = 'Duombazės "%s" schema - %s puslapis';
+$strPdfInvalidTblName = 'Lentelė "%s" neegzistuoja!';
+$strPdfNoTables = 'No tables';
+$strPerHour = 'per valandą';
+$strPerMinute = 'per minutę';
+$strPerSecond = 'per sekundę';
+$strPersian = 'Persų';
+$strPhoneBook = 'telefonų knyga';
+$strPhp = 'PHP kodas';
+$strPHPVersion = 'PHP versija';
+$strPmaDocumentation = 'phpMyAdmin\'o dokumentacija';
+$strPmaUriError = 'Reikia parinkčių byloje įrašyti <tt>$cfg[\'PmaAbsoluteUri\']</tt> reikšmę!';
+$strPolish = 'Lenkų';
+$strPortrait = 'Portretinis';
+$strPos1 = 'Pradžia';
+$strPrevious = 'Praėjęs';
+$strPrimaryKeyHasBeenDropped = 'Panaikintas pirminis raktas';
+$strPrimaryKeyName = 'Pirminio rakto pavadinimas turi būti "PRIMARY"!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>yra vienintelis</b> pirminio rakto tipas!)';
+$strPrimary = 'Pirminis';
+$strPrint = 'Spausdinti';
+$strPrintViewFull = 'Spausdinti vaizdą (su pilnai tekstais)';
+$strPrintView = 'Spausdinti struktūrą';
+$strPrivDescAllPrivileges = 'Įtraukti visas teises, išskyrus GRANT.';
+$strPrivDescAlter = 'Leisti keisti jau egzistuojančių lenetelių struktūrą.';
+$strPrivDescCreateDb = 'Leisti kurti naujas duombazes ir lenteles.';
+$strPrivDescCreateTbl = 'Leisti kurti naujas lenteles.';
+$strPrivDescCreateTmpTable = 'Leisti kurti laikinas lenteles.';
+$strPrivDescCreateUser = 'Leidžia kurti, šalinti ir pervadinti vartotojus.';
+$strPrivDescCreateView = 'Leidžia sukurti naujus view\'us.';
+$strPrivDescDelete = 'Leisti šalinti duomenis.';
+$strPrivDescDropDb = 'Leisti šalinti duombazes ir lenteles.';
+$strPrivDescDropTbl = 'Leisti šalinti lenteles.';
+$strPrivDescExecute = 'Leisti vykdyti išsaugotas procedūras; Negalioja šioje MySQL versijoje.';
+$strPrivDescFile = 'Leisti įterpti ir eksportuoti duomenis iš bylų.';
+$strPrivDescGrant = 'Leisti įterpti naujus vartotojus, bei prisikirti privilegijas, neperkraunant privilegijų lentelės.';
+$strPrivDescIndex = 'Leisti įterpti ir modifikuoti indeksus.';
+$strPrivDescInsert = 'Leisti įterpti ir modifikuoti duomenis.';
+$strPrivDescLockTables = 'Leisti užrakinti lenteles procesų metu.';
+$strPrivDescMaxConnections = 'Riboti prisijungimų kiekį per valandą.';
+$strPrivDescMaxQuestions = 'Riboti užklausų kiekį per valandą';
+$strPrivDescMaxUpdates = 'Riboti komandų (kurios vienaip ar kitaip modifikuoja lenteles ar duombazes) kiekį per valandą.';
+$strPrivDescReferences = ' Negalioja šioje MySQL versijoje.';
+$strPrivDescReload = 'Leisti perkrauti darbinę stotį, bei išvalyti laikinąją atmintį (cache).';
+$strPrivDescReplClient = 'Leisti vartotojo užklausas dėl atstatymo master / slave darbinių stočių.';
+$strPrivDescReplSlave = 'Reikalinga atstatyti slave darbinei stočiai';
+$strPrivDescSelect = 'Leisti skaityti duomenis.';
+$strPrivDescShowDb = 'Suteikti prieigą prie visų duombazių.';
+$strPrivDescShowView = 'Leidžia vykdyti SHOW CREATE VIEW užklausas.';
+$strPrivDescShutdown = 'Leisti išjungti serverį.';
+$strPrivDescSuper = 'Leisti prisijungti, kai viršytas prisijungimų kiekis; Reikalinga daugumai administratoriaus darbų, tokių kaip globalių reikšmių modifikavimui ar vartotojų atjungimui.';
+$strPrivDescUpdate = 'Leisti modifikuoti duomenis.';
+$strPrivDescUsage = 'Be teisių.';
+$strPrivileges = 'Privilegijos';
+$strPrivilegesReloaded = 'Teisės sėkmingai perkrautos.';
+$strProcesses = 'Procesai';
+$strProcesslist = 'Procesų sąrašas';
+$strPutColNames = 'Stulpelių pavadinimus įrašyti pirmoje eilutėje';
+
+$strQBEDel = 'Pakeičiant';
+$strQBEIns = 'Įterpiant';
+$strQBE = 'SQL&nbsp;užklausa';
+$strQueryFrame = 'Užklausų langas';
+$strQueryOnDb = 'SQL-užklausa duombazėje <b>%s</b>:';
+$strQuerySQLHistory = 'SQL užklausų istorija';
+$strQueryStatistics = '<b>Užklausų statistika</b>: nuo paleidimo dienos buvo išsiųsta %s užklausų į serverį.';
+$strQueryTime = 'Užklausa užtruko %01.4f sek.';
+$strQueryType = 'Užklausos tipas';
+$strQueryWindowLock = 'Nekeisti šios užklausos už aktyvaus lango ribų.';
+
+$strReadRequests = 'Read užklausos';
+$strReceived = 'Gauta';
+$strRecords = 'Viso įrašų:';
+$strReferentialIntegrity = 'Patikrinti sąryšių vientisumą:';
+$strRefresh = 'Atnaujinti';
+$strRelationalSchema = 'Ryšių schema';
+$strRelationNotWorking = 'Nėra PMA lentelių, kurios leidžia dirbti su jungtinėmis MySQL lentelėmis. %sPaaiškinimas%s.';
+$strRelationsForTable = 'RELATIONS FOR TABLE';
+$strRelations = 'Sąryšiai';
+$strRelationView = 'Peržiūrėti sąryšius';
+$strReloadingThePrivileges = 'Perkraunamos privilegijos';
+$strRemoveSelectedUsers = 'Pašalinti pažymėtus vartotojus';
+$strRenameDatabaseOK = 'Duombazė %s pervadinta į %s';
+$strRenameTableOK = 'Lentelė %s pervadinta į %s';
+$strRenameTable = 'Pervadinti lentelę į';
+$strRepairTable = 'Redaguoti';
+$strReplaceNULLBy = 'Pakeisti NULL į';
+$strReplaceTable = 'Pakeisti lentelės turinį failo duomenimis ';
+$strReset = 'Atstatyti į pradinę būseną';
+$strResourceLimits = 'Išteklių apribojimai';
+$strReType = 'Įveskite dar kartą';
+$strRevokeAndDeleteDescr = 'Kol nėra perkrautos privilegijos, vartotojai dar turės privilegiją USAGE.';
+$strRevokeAndDelete = 'Panaikinti visas aktyvias vartotojų privilegijas ir pašalinti vartotojus.';
+$strRevokeMessage = 'Jūs panaikinote privilegijas %s';
+$strRevoke = 'Panaikinti';
+$strRomanian = 'Rumunų';
+$strRowLength = 'Eilutės ilgis';
+$strRows = 'Eilutės';
+$strRowsFrom = 'eilučių pradedant nuo';
+$strRowSize = 'Eilutės dydis';
+$strRowsModeFlippedHorizontal = 'horizontalūs (pasukti pavadinimai)';
+$strRowsModeHorizontal = 'horizontaliai';
+$strRowsModeOptions = 'išdėstant %s pakartoti antraštes kas %s įrašų';
+$strRowsModeVertical = 'vertikaliai';
+$strRowsStatistic = 'Eilučių statistika';
+$strRunning = 'adresu %s';
+$strRunQuery = 'Vykdyti užklausą';
+$strRunSQLQuery = 'Vykdyti SQL sakinius duombazėje <strong>%s</strong>';
+$strRussian = 'Rusų';
+
+$strSave = 'Išsaugoti';
+$strSaveOnServer = 'Išsaugoti serveryje, kataloge pavadinimu %s';
+$strScaleFactorSmall = 'Dydžio matas yra per mažas norint sutalpinti vaizdą viename lape.';
+$strSearchFormTitle = 'Paieška duombazėje';
+$strSearchInTables = 'Lentelės(ių) viduje:';
+$strSearchNeedle = 'Paieškos žodis(iai) arba reikšmė(ės) (pakaitos simbolis: "%"):';
+$strSearchOption1 = 'bent vienas iš žodžių';
+$strSearchOption2 = 'visi žodžiai';
+$strSearchOption3 = 'ištisa frazė';
+$strSearchOption4 = 'kaip reguliarųjį išsireiškimą';
+$strSearch = 'Paieška';
+$strSearchResultsFor = 'Paieškos rezultatai frazei "<i>%s</i>" %s:';
+$strSearchType = 'Rasti:';
+$strSecretRequired = 'Nustatymų byloje nurodykite slaptą frazę (blowfish_secret).';
+$strSelectADb = 'Pasirinkite duombazę';
+$strSelectAll = 'Išrinkti visas(us)';
+$strSelectBinaryLog = 'Pasirinkite binarinį logą peržiūrai';
+$strSelectFields = 'Pasirinkti laukus (nors vieną)';
+$strSelectNumRows = 'užklausą vykdoma';
+$strSelectTables = 'Pasirinkite lenteles';
+$strSend = 'Išsaugoti į failą';
+$strSent = 'Siųsta';
+$strServerChoice = 'Pasirinkti serverį';
+$strServerNotResponding = 'Serveris neatsako';
+$strServer = 'Serveris';
+$strServerStatusUptime = 'MySQL serverio veikimo trukmė: %s. Serveris pradėjo veikti: %s.';
+$strServerStatus = 'Veikimo informacija';
+$strServerTabVariables = 'Kintamieji';
+$strServerTrafficNotes = '<b>Serverio apkrovimas</b>: šiose lentelėse saugoma statistinė informacija apie MySQL serverio apkrovimą nuo paleidimo dienos.';
+$strServerVars = 'Serverio kintamieji ir nustatymai';
+$strServerVersion = 'Serverio versija';
+$strSessionValue = 'Sesijos reikšmė';
+$strSetEnumVal = 'Jeigu laukelio tipas yra "enum" arba "set", tuomet duomenų reikšmes reikia įvesti naudojant šį formatą: \'a\',\'b\',\'c\'...<br />. Jeigu jums reikia įrašyti dešininį įžambųjį brūkšnį ("\") arba kabutes("\'"), tuomet prieš šios simbolius reikia papildomo dešininio įžambaus brūkšnio (pavyzdžiui: \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'Rodyti viską';
+$strShowColor = 'Rodyti spalvą';
+$strShowDatadictAs = 'Duomenų žodyno formatas';
+$strShowFullQueries = 'Rodyti pilnas užklausas';
+$strShowGrid = 'Rodyti tinklelį';
+$strShowingRecords = 'Rodomi įrašai';
+$strShowPHPInfo = 'Rodyti PHP informaciją';
+$strShow = 'Rodyti';
+$strShowTableDimension = 'Rodyti lentelių dydžius';
+$strShowTables = 'Rodyti lentelės';
+$strShowThisQuery = ' Rodyti šią užklausą vėl ';
+$strSimplifiedChinese = 'Supaprastinta Kiniečių';
+$strSingly = '(pavieniui)';
+$strSize = 'Dydis';
+$strSlovak = 'Slovakų';
+$strSlovenian = 'Slovėnų';
+$strSocketProblem = '(arba vietiniai MySQL serverio socketai yra blogai sukonfigūruoti)';
+$strSortByKey = 'Rūšiuoti pagal raktą';
+$strSort = 'Rūšiuoti';
+$strSpaceUsage = 'Vietos naudojimas';
+$strSpanish = 'Ispanų';
+$strSplitWordsWithSpace = 'Žodžiai atskirti tarpo simboliu (" ").';
+$strSQLExportType = 'Eksporto tipas';
+$strSQLParserBugMessage = 'Klaidą SQL interpretatoriuje. Prašome patikrinti ar SQL užklausoje teisingai naudojamos kabutės. Kita, galima klaida, jog Jūs bandote atsiųsti dvejetainius (binary) duomenis neapskliaustus kabutėmis. Taip pat Jūs galite pabandyti įvykdyti savo užklausą iš MySQL konsolės. MySQL serverio išvesta informacija apie klaidą (jeigu tokių bus) gali padėti Jums nustatyti klaidos priežastį. Jeigu užklausa sėkmingai įvykdoma konsolėje, o SQL interpretatorius vistiek išveda pranešimus apie klaidas, prašome supaprastinite savo SQL užklausą ir perduodamų duomenų kiekį užklausoje ir praneškite apie klaidą programos kūrėjams su žemiau pateikiama informacija:';
+$strSQLParserUserError = 'Klaida SQL užklausoje. Žemiau išvestas MySQL serverio pranešimas (jeigu toks yra), turėtų padėti Jums nustatyti klaidos priežastį';
+$strSQLQuery = 'SQL užklausa';
+$strSQLResult = 'SQL rezultatas';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Klaidingas vardas';
+$strSQPBugUnclosedQuote = 'Trūksta uždaromosios kabutės';
+$strSQPBugUnknownPunctuation = 'Klaidinga skyryba';
+$strStatCheckTime = 'Paskutinis patikrinimas';
+$strStatCreateTime = 'Sukurta';
+$strStatement = 'Parametrai';
+$strStatUpdateTime = 'Paskutinis atnaujinimas';
+$strStatus = 'Statusas';
+$strStorageEngine = 'Saugojimo Variklis';
+$strStorageEngines = 'Saugojimo Varikliai';
+$strStrucCSV = 'Duomenys CSV formatu';
+$strStrucData = 'Struktūra ir duomenys';
+$strStrucExcelCSV = 'Duomenys ekselio CSV formatu';
+$strStrucNativeExcel = 'MS Excel duomenys';
+$strStrucOnly = 'Tik struktūrą';
+$strStructPropose = 'Analizuoti lentelės struktūrą';
+$strStructure = 'Struktūra';
+$strSubmit = 'Siųsti';
+$strSuccess = 'Jūsų SQL užklausa sėkmingai įvykdyta';
+$strSum = 'Sumos';
+$strSwedish = 'Švedų';
+$strSwitchToDatabase = 'Pereiti į nukopijuotą duombazę';
+$strSwitchToTable = 'Pereiti į lentelės kopiją';
+
+$strTableComments = 'Lentelės komentarai';
+$strTableEmpty = 'Tuščias lentelės vardas!';
+$strTableHasBeenDropped = 'Lentelė %s panaikinta';
+$strTableHasBeenEmptied = 'Lentelės reikšmės %s ištuštintos';
+$strTableHasBeenFlushed = 'Lentelės buferis %s išvalytas';
+$strTable = 'Lentelė';
+$strTableMaintenance = 'Lentelės diagnostika';
+$strTableOfContents = 'Turinys';
+$strTableOptions = 'Lentelės parinktys';
+$strTables = '%s lentelė(s)';
+$strTableStructure = 'Sukurta duomenų struktūra lentelei';
+$strTakeIt = 'pasirinkti';
+$strTblPrivileges = 'Specifinės lentelių privilegijos';
+$strTextAreaLength = ' Tai yra jo ilgis,<br /> šis laukelis neredaguojamas ';
+$strThai = 'Tailando';
+$strTheme = 'Tema / Stilius';
+$strThisHost = 'Dabartinis serveris';
+$strThreadSuccessfullyKilled = '%s buvo sėkmingai išjungtas.';
+$strTime = 'Laikas';
+$strToggleScratchboard = 'įjungti scratchboard';
+$strTotal = ' iš viso ';
+$strTotalUC = 'Viso';
+$strTraditionalChinese = 'Tradicinė Kiniečių';
+$strTraditionalSpanish = 'Tradicinė ispanų';
+$strTraffic = 'Apkrovimas';
+$strTransformation_application_octetstream__download = 'Įšvesti nuorodą dvejetainių lauko duomenų atsisiuntimui. Pirmas parametras - dvejetainių lauko duomenų bylos pavadinimas. Antras parametras - galimas lentelės eilutės lauko turinčio bylą pavadinimas. Jeigu pateiksite antrą parametrą, ištrinkite pirmojo parametro reikšmę.';
+$strTransformation_image_jpeg__inline = 'Parodo aktyvų mažinį; nustatymai: plotis,aukštis pikseliais (išsaugo originalų santykį)';
+$strTransformation_image_jpeg__link = 'Išvedama nuoroda į šį paveikslėlį (tiesioginis blob atsisiuntimas ir pan.).';
+$strTransformation_image_png__inline = 'Žr. image/jpeg: vidų';
+$strTransformation_text_plain__external = 'LINUX VARTOTOJAMS: Paleidžiama išorinė aplikacija ir duomenys imami iš standartinio įvedimo. Išvedama iš aplikacijos gauta informacija. Nutylint: bus Tidy korektiškam HTML kodo išvedimui. Saugumo sumetimais Jūs turite paredaguoti libraries/transformations/text_plain__external.inc.php bylą ir įvesti tas aplikacijas, kurias naudosite. Pirmas parametras yra leidžiamų aplikacijų kiekis, kurias naudosite. Antras parametras yra specifiniai aplikacijų raktai. Jeigu trečias parametras lygus 1, tai išvedama informacija bus apdorota su htmlspecialchars() (nutylint: reikšmė lygi 1). Jeigu ketvirtas parametras lygus 1, tai išvedimo lentelės celė turės atributą NOWRAP, tam kad išvedama būtų atvaizduota be perkėlimų į kitas eilutes (nutylint: reikšmė lygi 1).';
+$strTransformation_text_plain__formatted = 'Išsaugo originalų lauko apipavidalinimą. Nevykdomas išvengimas.';
+$strTransformation_text_plain__imagelink = 'Gražinamas paveikslėlis ir nuoroda į įvedimo lauke įrašytą bylos pavadinimą; argumentai: prefiksas (pvz "http://domain.com/"), plotis (pikseliais), aukštis (pikseliais).';
+$strTransformation_text_plain__link = 'Gražinama nuoroda į įvedimo lauke įrašytą bylos pavadinimą; argumentai: prefiksas (pvz "http://domain.com/"), nuorodos pavadinimas.';
+$strTransformation_text_plain__substr = 'Rodoma tik dalis teksto. Pirmas parametras nurodo išvedamo teksto pradžią (nutylint: 0). Antrasis parametras nurodo išvedamo teksto kiekį. Jeigu antras parametras nenurodytas tai bus išvestas visas tekstas. Trečiasis parametras nurodo kurios raidės bus prijungtos prie išvedimo teksto (nutylint: ...).';
+$strTruncateQueries = 'Trumpinti rodomas užklausas';
+$strTurkish = 'Turkų';
+$strType = 'Tipas';
+
+$strUkrainian = 'Ukrainiečių';
+$strUncheckAll = 'Nepažymėti visus(as)';
+$strUnicode = 'Unicodas';
+$strUnique = 'Unikalus';
+$strUnknown = 'nežinoma';
+$strUnselectAll = 'Nepažymėti visus(as)';
+$strUpdatePrivMessage = 'Jūs pakeitėte privilegijas %s.';
+$strUpdateProfileMessage = 'Profilis papildytas.';
+$strUpdateQuery = 'Atnaujinti užklausą';
+$strUpdComTab = 'Informaciją, kaip atnaujinti Column_comments lentelę, galite rasti dokumentacijoje.';
+$strUpgrade = 'Rekomenduojame atnaujint %s iki %s ar vėlesnės versijos.';
+$strUsage = 'Išnaudota';
+$strUseBackquotes = 'Lentelių ir laukų vardams naudoti šias kabutes ` `';
+$strUseHostTable = 'Naudoti Host lentelę';
+$strUserAlreadyExists = 'Vartotojas %s jau yra!';
+$strUserEmpty = 'Tuščias vartotojo vardas!';
+$strUserName = 'Vartotojo vardas';
+$strUserNotFound = 'Privilegijų lentelėje pasirinktas vartotojas nerastas.';
+$strUserOverview = 'Vartotojų peržiūra';
+$strUsersDeleted = 'Pažymėti vartotojai sėkmingai pašalinti.';
+$strUsersHavingAccessToDb = 'Vartotojai turintys priėjimą prie &quot;%s&quot;';
+$strUser = 'Vartotojas';
+$strUseTabKey = 'Šokinėjimui tarp reikšmių naudokite TAB mygtuką arba naudokite CTRL+rodyklės';
+$strUseTables = 'Naudoti lenteles';
+$strUseTextField = 'Naudokite teksto įvedimo lauką';
+$strUseThisValue = 'Naudokite šią reikšmę';
+
+$strValidateSQL = 'Patikrinti SQL užklausą';
+$strValidatorError = 'Neveikia SQL interpretatorius. Prašome patikrinkite ar yra suinstaliuoti visi privalomi php moduliai, nurodyti %sdokumentacijoje%s.';
+$strValue = 'Reikšmė';
+$strVar = 'Kintamasis';
+$strVersionInformation = 'Versijos informacija';
+$strViewDumpDatabases = 'Peržiūrėti duombazių išrašą';
+$strViewDumpDB = 'Sukurti, peržiūrėti duombazės atvaizdį';
+$strViewDump = 'Peržiūrėti lentelės struktūros atvaizdį';
+$strViewHasBeenDropped = 'View\'as %s buvo panaikintas';
+$strView = 'View\'as';
+
+$strWebServerUploadDirectoryError = 'Nepasiekimas nurodytas www-serverio katalogas atsiuntimams.';
+$strWebServerUploadDirectory = 'web serverio katalogas atsiuntimams';
+$strWelcome = 'Jūs naudojate %s';
+$strWestEuropean = 'Vakarų Europos';
+$strWildcard = 'pakaitos simbolis';
+$strWindowNotFound = 'Tikslo langas neatnaujintas. Galbūt Jūs uždarėte pagrindinį langą arba Jūsų naršyklė blokuoja atnaujinimus tarp langų dėl nustatyto saugumo.';
+$strWithChecked = 'Pasirinktas lenteles:';
+$strWriteRequests = 'Write užklausos';
+$strWrongUser = 'Neteisingas vartotojo vardas arba slaptažodis. Priėjimas uždraustas.';
+
+$strXML = 'XML';
+
+$strYes = 'Taip';
+
+$strZeroRemovesTheLimit = 'Pastaba: nėra jokių apribojimų jeigu reikšmė nurodyta lygi 0 (nuliui).';
+$strZip = '"zip"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buferio Pool\'o veikla'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDataPages = 'Pages containing data'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strHandler = 'Handler'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/macedonian_cyrillic-utf-8.inc.php b/lang/macedonian_cyrillic-utf-8.inc.php
new file mode 100644
index 0000000000..3634bf72b3
--- /dev/null
+++ b/lang/macedonian_cyrillic-utf-8.inc.php
@@ -0,0 +1,1448 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by:
+ * Dimce Grozdanoski <dimce.grozdanoski@ridarec.com>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('бајти', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Нед', 'Пон', 'Вто', 'Сре', 'Чет', 'Пет', 'Саб');
+$month = array('јан', 'феб', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дек');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d. %B %Y. во %H:%M';
+$timespanfmt = '%s денови, %s часови, %s минути и %s секунди';
+
+$strAPrimaryKey = 'Примарниот клуч %s е додаден';
+$strAbortedClients = 'Прекинато';
+$strAccessDenied = 'Пристапот не е допуштен';
+$strAccessDeniedExplanation = 'phpMyAdmin се обиде да се поврзе на MySQL сервер, но серверот тоа не го допушти. Проверете го називот на host-от, корисничката сметка и лозинка во config.inc.php и уверите се дека одговараат на податоците кои сте ги добили од администраторот на MySQL серверот.';
+$strAction = 'Акција';
+$strAddAutoIncrement = 'Додади AUTO_INCREMENT вредност';
+$strAddConstraints = 'Додади ограничувања';
+$strAddDeleteColumn = 'Додади/избриши колона';
+$strAddDeleteRow = 'Додади/избриши поле за критериум';
+$strAddFields = 'Додади %s полиња';
+$strAddHeaderComment = 'Додади коментар во заглавие (користи \\n за нов ред)';
+$strAddIntoComments = 'Додади во коментарите';
+$strAddNewField = 'Додади ново поле';
+$strAddPrivilegesOnDb = 'Додади привилегии на следната база';
+$strAddPrivilegesOnTbl = 'Додади привилегии на следната табела';
+$strAddSearchConditions = 'Додади услови за пребарување (делот "WHERE" од упитот):';
+$strAddToIndex = 'Додади во клучот &nbsp;%s&nbsp;колона(и)';
+$strAddUser = 'Додади нов корисник';
+$strAddUserMessage = 'Додадовте нов корисник.';
+$strAdministration = 'Администрација';
+$strAfter = 'после полето %s';
+$strAfterInsertBack = 'Назад на претходната страница';
+$strAfterInsertNewInsert = 'Додади уште еден нов запис';
+$strAfterInsertNext = 'Ажурирање на следниот запис';
+$strAfterInsertSame = 'Врати се на оваа страница';
+$strAll = 'Се';
+$strAllTableSameWidth = 'Приказ на сите табели со иста ширина?';
+$strAlterOrderBy = 'Промени го редоследот во табелата';
+$strAnIndex = 'Клучот е додаден %s';
+$strAnalyzeTable = 'Анализа на табелата';
+$strAnd = 'и';
+$strAny = 'Било кој';
+$strAnyHost = 'Било кој host';
+$strAnyUser = 'Било кој корисник';
+$strApproximateCount = 'Бројот на записи може да биде приближен. За подетални информации види FAQ 3.11';
+$strArabic = 'Арапски';
+$strArmenian = 'Ерменски';
+$strAscending = 'Растечки редослед';
+$strAtBeginningOfTable = 'на почетокот од табелата';
+$strAtEndOfTable = 'на крајот од табелата';
+$strAttr = 'Атрибути';
+$strAutomaticLayout = 'Автоматски распоред';
+
+$strBack = 'Назад';
+$strBaltic = 'Балтички';
+$strBeginCut = 'ПОЧЕТОК ПРЕСЕК';
+$strBeginRaw = 'ПОЧЕТОК СУРОВО';
+$strBinLogEventType = 'Вид на настан';
+$strBinLogInfo = 'Информации';
+$strBinLogName = 'Назив на дневникот';
+$strBinLogOriginalPosition = 'Оргинална позиција';
+$strBinLogPosition = 'Позиција';
+$strBinLogServerId = 'ID на серверот';
+$strBinary = 'Бинарен';
+$strBinaryDoNotEdit = 'Бинарен - не менувај';
+$strBinaryLog = 'Бинарен дневник';
+$strBookmarkAllUsers = 'дади дозвола на секој корисник да пристапува на овој упит.';
+$strBookmarkDeleted = 'Маркерот е избришан.';
+$strBookmarkLabel = 'Назив';
+$strBookmarkQuery = 'Запамтен SQL упит';
+$strBookmarkThis = 'Запамти SQL упит';
+$strBookmarkView = 'Види само';
+$strBrowse = 'Преглед';
+$strBrowseForeignValues = 'Прегледни ги надворешните вредности';
+$strBufferPool = 'Бафер';
+$strBufferPoolActivity = 'Активност на баферот';
+$strBufferPoolUsage = 'Искористеност на баферот';
+$strBufferReadMisses = 'Промашувања при читање';
+$strBufferReadMissesInPercent = 'Промашувања при читање во %';
+$strBufferWriteWaits = 'Чекања на упис';
+$strBufferWriteWaitsInPercent = 'Чекања на упис во %';
+$strBulgarian = 'Бугарски';
+$strBusyPages = 'Зафатени страници';
+$strBzip = '"bzip"';
+
+$strCalendar = 'Календар';
+$strCannotLogin = 'Не можам да се пријавам на MySQL серверот';
+$strCantLoad = 'не можам да ја вчитам екстензијата %s,<br />молам проверите ја PHP конфигурацијата';
+$strCantLoadRecodeIconv = 'Не можам да ги вчитам iconv или recode екстензиите потребни за конверзија на кодните страници, подесете го PHP да дозволи користење на овие екстензии или оневозможете ја конверзијата на кодни страници во phpMyAdmin-у.';
+$strCantRenameIdxToPrimary = 'Не можам да го променам клучот во PRIMARY (примарен) !';
+$strCantUseRecodeIconv = 'Не можам да ги користам iconv или libiconv или recode_string функциите иако екстензијата пријавува дека е вчитана. Проверите ја вашата PHP конфигурација.';
+$strCardinality = 'Кардиналност';
+$strCaseInsensitive = 'Не разликува мали и големи букви';
+$strCaseSensitive = 'Разликува мали и големи букви';
+$strCentralEuropean = 'Централноевропски';
+$strChange = 'Промени';
+$strChangeCopyMode = 'Направи нов корисник со исти привилегии и ...';
+$strChangeCopyModeCopy = '... сочувај го стариот.';
+$strChangeCopyModeDeleteAndReload = ' ... избриши го стариот корисник од табелата на корисници а потоа повторно вчитај ги привилегиите.';
+$strChangeCopyModeJustDelete = ' ... избриши ги старите од табелата на корисници.';
+$strChangeCopyModeRevoke = ' ... прво одземи ги сите привилегии на корисниците а потоа избриши ги.';
+$strChangeCopyUser = 'Промени ги информациите за најавувањето / Копирај го корисникот';
+$strChangeDisplay = 'Избери полиња за прикажување';
+$strChangePassword = 'Промена на лозинка';
+$strCharset = 'Кодна страна';
+$strCharsetOfFile = 'Кодна страна на податотеката:';
+$strCharsets = 'Кодни страници';
+$strCharsetsAndCollations = 'Кодни страници и подредување';
+$strCheckAll = 'обележи ги сите';
+$strCheckOverhead = 'табели кои имаат пречекорувања';
+$strCheckPrivs = 'Провери привилегии';
+$strCheckPrivsLong = 'Провери привилегии за базата на податоци &quot;%s&quot;.';
+$strCheckTable = 'Проверка на табелата';
+$strChoosePage = 'Изберете страница која менувате';
+$strColComFeat = 'Прикажувам коментари на колоните';
+$strCollation = 'Подредување';
+$strColumnNames = 'Имиња на колони';
+$strColumnPrivileges = 'Привилегии врзани за колоните';
+$strCommand = 'Наредба';
+$strComments = 'Коментари';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 компатибилно';
+$strCompleteInserts = 'Комплетен INSERT (со имиња на полињата)';
+$strCompression = 'Компресија';
+$strConfigFileError = 'phpMyAdmin не можеше да ја прочита вашата конфигурациска податотека!<br />Ова може да се случи ако PHP најде грешка во процесирањето или не може да ја пронајде податотеката.<br />Повикајте ја конфигурациската податотека директно со користење на долнит линк и прочитајте ги поруките за грешка кои ги добивате. Во поголемиот број на случаи, најчесто недостасува наводник или точка запирка.<br />Ако добиете празна страница, се е во ред.';
+$strConfigureTableCoord = 'Подесете ги координатите за табелата %s';
+$strConnectionError = 'Не може да се поврзам: лоши подесувања.';
+$strConnections = 'Конекции';
+$strConstraintsForDumped = 'Ограничувања за извезените табели';
+$strConstraintsForTable = 'Ограничувања за табелите';
+$strCookiesRequired = 'вашиот веб прелистувач треба да допушти cookies';
+$strCopyDatabaseOK = 'Базата на податоци %s е ископирана во %s';
+$strCopyTable = 'Копирај ја табелата во (база<b>.</b>табела):';
+$strCopyTableOK = 'Табелата %s е копирана во %s.';
+$strCopyTableSameNames = 'Не можам да ја копирам табелата во самата себе!';
+$strCouldNotKill = 'phpMyAdmin не можеше да го прекине процесот %s. Веројатно веќе е затворен.';
+$strCreate = 'Креирај';
+$strCreateIndex = 'Направи клуч на&nbsp;%s&nbsp;колони';
+$strCreateIndexTopic = 'Креирај нов клуч';
+$strCreateNewDatabase = 'Креирај нова база на податоци';
+$strCreateNewTable = 'Креирај нова табела во базата на податоци %s';
+$strCreatePage = 'Направи нова страница';
+$strCreatePdfFeat = 'Креирање на PDF';
+$strCreationDates = 'Датуми на креирање/ажурирање/проверка';
+$strCriteria = 'Критериум';
+$strCroatian = 'Хрватски';
+$strCyrillic = 'Кириличен';
+$strCzech = 'Чешки';
+$strCzechSlovak = 'Чехословачки';
+
+$strDBComment = 'Коментар на базата на податоци:';
+$strDBCopy = 'Копирај ја базата на податоци во';
+$strDBRename = 'Преименувај ја базата на податоци во';
+$strDanish = 'Дански';
+$strData = 'Податоци';
+$strDataDict = 'Речник на податоци';
+$strDataOnly = 'Само податоци';
+$strDataPages = 'Страници со податоци';
+$strDatabase = 'База на податоци';
+$strDatabaseEmpty = 'Името на базата на податоци не е зададено!';
+$strDatabaseExportOptions = 'Опции за извоз на бази на податоци';
+$strDatabaseHasBeenDropped = 'Базата на податоци %s не е прифатена';
+$strDatabases = 'База на податоци';
+$strDatabasesDropped = '%s базата на податоци успешно е избришана.';
+$strDatabasesStats = 'Статистика на базата на податоци';
+$strDatabasesStatsDisable = 'Исклучи статистики';
+$strDatabasesStatsEnable = 'Вклучи статистики';
+$strDatabasesStatsHeavyTraffic = 'Напомена: вклучувањето на статистиките може да доведе до зголемување на сообраќајот помеѓу веб серверот и MySQL серверот.';
+$strDbPrivileges = 'Привилегии во врска со базата на податоци';
+$strDbSpecific = 'Специфично за базата на податоци';
+$strDefault = 'Default';
+$strDefaultEngine = '%s е основно складиште на овој MySQL сервер.';
+$strDefaultValueHelp = 'За default вредност, внесете само една вредност, без коси црти или наводници во следниов облик: а';
+$strDefragment = 'Дефрагментирај ја табелата';
+$strDelOld = 'Актуелната страница има референци кон табели кои не постојат. Сакате ли да ги избиршете тие референци?';
+$strDelayedInserts = 'Користи одложен внес';
+$strDelete = 'избриши';
+$strDeleteAndFlush = 'Избриши ги корисниците и повторно вчитај ги привилегиите.';
+$strDeleteAndFlushDescr = 'Ова е најчист начин, но повторното вчитување на привилегите може да потрае.';
+$strDeleted = 'Записот е избришан';
+$strDeleting = 'Бришам %s';
+$strDescending = 'Опаѓачки редослед';
+$strDescription = 'Опис';
+$strDictionary = 'речник';
+$strDirtyPages = 'Валкани страници';
+$strDisableForeignChecks = 'Исклучи проверка на надворешни клучеви';
+$strDisabled = 'Оневозможено';
+$strDisplayFeat = 'Прикажи својства';
+$strDisplayOrder = 'Редослед на приказ:';
+$strDisplayPDF = 'Прикажи PDF шема';
+$strDoAQuery = 'Направи "упит по пример" (џокер знак: "%")';
+$strDoYouReally = 'Дали навистина сакате да ';
+$strDocu = 'Документација';
+$strDrop = 'Бриши';
+$strDropDatabaseStrongWarning = 'Со ова ја БРИШЕТЕ комплетната база на податоци!';
+$strDropUsersDb = 'Избриши ги базите на податоци кои се именувани исто како и корисниците.';
+$strDumpSaved = 'Содржината на базата на податоци е сочувана во податотеката %s.';
+$strDumpXRows = 'Прикажи %s записи почнувајќи од запис %s.';
+$strDumpingData = 'Приказ на податоци од табелата';
+$strDynamic = 'динамички';
+
+$strEdit = 'Промени';
+$strEditPDFPages = 'Уредување на PDF страница';
+$strEditPrivileges = 'Промена на привилегии';
+$strEffective = 'Ефективни';
+$strEmpty = 'Испразни';
+$strEmptyResultSet = 'MySQL врати празен резултат (нула записи).';
+$strEnabled = 'Овозможено';
+$strEncloseInTransaction = 'Изврши извоз во трансакција';
+$strEnd = 'Крај';
+$strEndCut = 'КРАЈ ПРЕСЕК';
+$strEndRaw = 'КРАЈ СУРОВО';
+$strEngineAvailable = '%s е достапен на овој MySQL сервер.';
+$strEngineDisabled = '%s е оневозможен на овој MySQL сервер.';
+$strEngineUnsupported = 'Овој MySQL сервер не подржува %s вид на складиште.';
+$strEngines = 'Складишта';
+$strEnglish = 'Англиски';
+$strEnglishPrivileges = ' Напомена: MySQL имињата на привилегите мора да бидат со латинични букви ';
+$strError = 'Грешка';
+$strEscapeWildcards = 'Пред џокер знаците _ и % треба да стои знакот \ ако ги користите самостојно';
+$strEstonian = 'Естонски';
+$strExcelEdition = 'Excel издание';
+$strExecuteBookmarked = 'Изврши запамтен упит';
+$strExplain = 'Објасни SQL';
+$strExport = 'Извоз';
+$strExtendedInserts = 'Проширен INSERT';
+$strExtra = 'Дополнително';
+
+$strFailedAttempts = 'Неуспешни обиди';
+$strField = 'Поле';
+$strFieldHasBeenDropped = 'Полето %s е избиршано';
+$strFields = 'Полиња';
+$strFieldsEnclosedBy = 'Полињата се раздвоени со';
+$strFieldsEscapedBy = 'Escape карактер &nbsp; &nbsp; &nbsp;';
+$strFieldsTerminatedBy = 'Полињата се ограничени со';
+$strFileAlreadyExists = 'Податотека %s постои на серверот, променете го името на податотеката или изберете опција за пишување врз неа.';
+$strFileCouldNotBeRead = 'Податотеката не е можно да се прочита';
+$strFileNameTemplate = 'Шаблон на име на податотека';
+$strFileNameTemplateRemember = 'запамти го шаблонот';
+$strFixed = 'средено';
+$strFlushPrivilegesNote = 'Напомена: phpMyAdmin ги зема привилегиите на корисникот директно од MySQL табелата на привилегии. Содржината на оваа табела табела може да се разликува од привилегиите кои серверот ги користи ако се вршени мануелни измени. Во тој случај %sповторно вчитајте ги привилегиите%s пред да продолжите со работа.';
+$strFlushTable = 'Освежување на табелата ("FLUSH")';
+$strFormEmpty = 'Недостасува вредност во образецот!';
+$strFormat = 'Формат';
+$strFreePages = 'Слободни страници';
+$strFullText = 'Полн текст';
+$strFunction = 'Функција';
+
+$strGenBy = 'Генерирал';
+$strGenTime = 'Време на креирање';
+$strGeneralRelationFeat = 'Општи особини на релациите';
+$strGeorgian = 'Грузиски';
+$strGerman = 'Германски';
+$strGlobal = 'глобално';
+$strGlobalPrivileges = 'Глобални привилегии';
+$strGlobalValue = 'Глобална вредност';
+$strGo = 'OK';
+$strGrantOption = 'Овозможи';
+$strGreek = 'Грчки';
+$strGzip = '"gzip"';
+
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHasBeenAltered = 'е променет(а).';
+$strHaveToShow = 'Морате да изберете барем една колона за приказ';
+$strHebrew = 'Хебрејски';
+$strHome = 'Почетна страница';
+$strHomepageOfficial = 'официјален веб сајт на phpMyAdmin';
+$strHost = 'Host';
+$strHostEmpty = 'Името на host-от е празно!';
+$strHungarian = 'Унгарски';
+
+$strIcelandic = 'Исландски';
+$strId = 'ID';
+$strIdxFulltext = 'Текст клуч';
+$strIgnore = 'Игнорирај';
+$strIgnoreInserts = 'Игнорирај дупликати при внесување';
+$strImportFiles = 'Увоз на податотека';
+$strInUse = 'се користи';
+$strIndex = 'Клуч';
+$strIndexHasBeenDropped = 'Клучот %s е избиршан';
+$strIndexName = 'Име на клуч :';
+$strIndexType = 'Тип на клуч :';
+$strIndexWarningTable = 'Проблем при индексирање на табелата `%s`';
+$strIndexes = 'Клучеви';
+$strInnoDBAutoextendIncrement = 'Чекор на автоматско проширување';
+$strInnoDBAutoextendIncrementDesc = ' Големина на чекорот на проширување на големината на табелите кои автоматски се прошируваат кога ќе се наполнат.';
+$strInnoDBBufferPoolSize = 'Големина на баферот';
+$strInnoDBBufferPoolSizeDesc = 'Големина на меморискиот бафер кој го користи InnoDB за кеширање на податоци и за индексите на своите табели.';
+$strInnoDBDataFilePath = 'Податотеки со податоци';
+$strInnoDBDataHomeDir = 'Основен директориум на податоците';
+$strInnoDBDataHomeDirDesc = 'Заеднички дел на патеката до директроиумот за сите InnoDB датотеки со податоци.';
+$strInnoDBPages = 'страница';
+$strInnodbStat = 'InnoDB статус';
+$strInsecureMySQL = 'Вашата конфигурациска податотека содржи подесувања (root без лозинка) кои одговараат на стандардниот MySQL привилегиран налог. Вашиот MySQL сервер работи со овие подесувања, отворен е за упди, и навистина треба да го поправите овој сигурносен ризик.';
+$strInsert = 'Нов запис';
+$strInsertAsNewRow = 'Внеси како нов запис';
+$strInternalRelations = 'Внатрешни релации';
+
+$strJapanese = 'Јапонски';
+$strJumpToDB = 'Премин на базата &quot;%s&quot;.';
+$strJustDelete = 'Само избриши ги корисниците од табелата на привилегии.';
+$strJustDeleteDescr = '&quot;Избришаните&quot; корисници и понатаму ќе имаат пристап до серверот се додека привилегиите не се вчитаат повторно.';
+
+$strKeepPass = 'Немој да ја менуваш лозинката';
+$strKeyname = 'Име на клуч';
+$strKill = 'Прекини';
+$strKorean = 'Корејски';
+
+$strLaTeX = 'LaTeX';
+$strLandscape = 'Легнато';
+$strLatchedPages = 'Заглавени страници';
+$strLatexCaption = 'Коментар на табела';
+$strLatexContent = 'Содржина на табелата __TABLE__';
+$strLatexContinued = '(продолжува)';
+$strLatexContinuedCaption = 'Продолжен коментар на табелите';
+$strLatexIncludeCaption = 'Вклучи и коментар на табелата';
+$strLatexLabel = 'Ознака на клучот';
+$strLatexStructure = 'Структура на табелата __TABLE__';
+$strLatvian = 'Летонски';
+$strLengthSet = 'Должина/Вредност*';
+$strLimitNumRows = 'Број на записи на страница';
+$strLinesTerminatedBy = 'Линиите се завршуваат со';
+$strLinkNotFound = 'Врската не е пронајдена';
+$strLinksTo = 'Врски кон';
+$strLithuanian = 'Литвански';
+$strLocalhost = 'Локален';
+$strLocationTextfile = 'Локација на текстуалната податотека';
+$strLogPassword = 'Лозинка:';
+$strLogServer = 'Сервер';
+$strLogUsername = 'Корисничко име:';
+$strLogin = 'Најави се';
+$strLoginInformation = 'Податоци за најавувањето';
+$strLogout = 'Одјавување';
+$strLongOperation = 'Оваа операција може да потрае. Да ли да продолжиме?';
+
+$strMIMETypesForTable = 'MIME ТИПОВИ ЗА ТАБЕЛА';
+$strMIME_MIMEtype = 'MIME-типови';
+$strMIME_available_mime = 'Достапни MIME-типови';
+$strMIME_available_transform = 'Достапни трансформации';
+$strMIME_description = 'Опис';
+$strMIME_nodescription = 'Нема опис за оваа трансформација.<br />Ве молиме прашајте го авторот што ја направил %s.';
+$strMIME_transformation = 'Транформации на веб прелистувачот';
+$strMIME_transformation_note = 'За листа на достапни опции на транформациите и нивните MIME-тип трансформации, кликнете на %sопис на трансформацијата%s';
+$strMIME_transformation_options = 'Опции на трансформацијата';
+$strMIME_transformation_options_note = 'Ве молиме внесете вредности за опциите на трансформацијата во следниов формат: \'a\',\'b\',\'c\'...<br /> Ако треба да внесете обратна коса црта ("\\") или апостроф ("\'") во тие вредности, ставете обратна коса црта пред нив (пример \'\\\\xyz\' или \'a\\\'b\').';
+$strMIME_without = 'MIME-типовите прикажани во курзив немаат одвоене функции на трансформација.';
+$strMaximumSize = 'Максимална големина: %s%s';
+$strMbExtensionMissing = 'mbstring ПХП екстензијата не е пронајдена, а изгледа дека вие користите мултибајт каратер сет. Без mbstring екстензиите phpMyAdmin не може исправно да ги раздвојува стринговите и тоа може да доведе до неочекувани резултати.';
+$strMbOverloadWarning = 'Имате вклучена mbstring.func_overload опција во вашите PHP подесувања. Оваа опција не е компатибилна со phpMyAdmin и може да доведе до грешки во некои податоци!';
+$strModifications = 'Измените се сочувани';
+$strModify = 'Промени';
+$strModifyIndexTopic = 'Промени го клучот';
+$strMoveTable = 'Премести ја табелата во (база<b>.</b>табела):';
+$strMoveTableOK = 'Табелата %s е преместена во %s.';
+$strMoveTableSameNames = 'Не може да ја преместам табелата во самата себе!';
+$strMultilingual = 'мултијазичен';
+$strMyISAMDataPointerSize = 'Големина на покажувачите на податоци';
+$strMyISAMDataPointerSizeDesc = 'Default големина на покажувачите во бајти, се користи при CREATE TABLE за MyISAM табелите кога не е зададена опцијата MAX_ROWS';
+$strMyISAMMaxExtraSortFileSize = 'Максимална голема на привремени податотеки при креирање на индекси';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Ако привремената податотека која се користи за брзо креирање на MyISAM индекси биде поголема отколку при користење на кешот за овде зададената вредност, користи го методот на кеширања на клучевите';
+$strMyISAMMaxSortFileSize = 'Максимална големина на привремените податотеки за подредување';
+$strMyISAMMaxSortFileSizeDesc = 'Максимална големина на привремените податотеки кои MySQL смее да ги користи при повторно креирање на MyISAM индекси (во тек REPAIR TABLE, ALTER TABLE, или LOAD DATA INFILE операции).';
+$strMyISAMRecoverOptions = 'Режим на автоматско опоравување';
+$strMyISAMRecoverOptionsDesc = 'Режим на автоматско опоравување на оштетени MyISAM табели, подесен при стартовање на серверот со опцијата --myisam-recover.';
+$strMyISAMRepairThreads = 'Нишки на поправка';
+$strMyISAMRepairThreadsDesc = 'Ако вредноста е поголема од 1, индексите на MyISAM табелата паралелно се креираат (секој индекс во сопствена нишка) за време на процесот на поправка со подредување.';
+$strMyISAMSortBufferSize = 'Големина на меѓупросторот за подредување';
+$strMyISAMSortBufferSizeDesc = 'Меѓупросторот кој се алоцира при подредување на MyISAM индексите за време на операцијата REPAIR TABLE или при креирање на индекси со CREATE INDEX или ALTER TABLE.';
+$strMySQLCharset = 'MySQL множество на знаци';
+$strMySQLConnectionCollation = 'Колација за MySQL врска';
+$strMySQLSaid = 'MySQL порака: ';
+$strMySQLShowProcess = 'Прикажи листа на процеси';
+
+$strName = 'Име';
+$strNext = 'Следен';
+$strNo = 'Не';
+$strNoActivity = 'Немаше никаква активност %s или повеќе секунди, ве молиме најавете се повторно';
+$strNoDatabases = 'Базата на податоци не постои';
+$strNoDatabasesSelected = 'Не е избрана ни една база на податоци.';
+$strNoDescription = 'нема опис';
+$strNoDetailsForEngine = 'Нема детални информации за статусот на овој вид на складиште.';
+$strNoDropDatabases = '"DROP DATABASE" командата е оневозможена.';
+$strNoExplain = 'Прескокни ги објаснувањата на SQL-от';
+$strNoFrames = 'phpMyAdmin преферира веб прелистувачи кои подржуваат рамки.';
+$strNoIndex = 'Клучот не е дефиниран!';
+$strNoIndexPartsDefined = 'Делови од клучот не се дефинирани!';
+$strNoModification = 'Нема измени';
+$strNoOptions = 'Не постојат опции за овој формат';
+$strNoPassword = 'Нема лозинка';
+$strNoPermission = 'На веб серверот не му е допуштено да ја сочува податотеката %s.';
+$strNoPhp = 'без PHP код';
+$strNoPrivileges = 'Нема привилегии';
+$strNoRights = 'Немате право на пристап овде!';
+$strNoRowsSelected = 'Нема селектирани записи';
+$strNoSpace = 'Нема доволно простор за снимање на податотеката %s.';
+$strNoTablesFound = 'Табелите не се пронајдени во базата на податоци.';
+$strNoThemeSupport = 'Нема подршка за теми, ве молиме проверете ја конфигурацијата и/или темите во директориумот %s.';
+$strNoUsersFound = 'Корисникот не е пронајден.';
+$strNoValidateSQL = 'Прескокни ја проверката на SQL';
+$strNone = 'нема';
+$strNotNumber = 'Ова не е број!';
+$strNotOK = 'не е како што треба';
+$strNotSet = '<b>%s</b> табелата не е пронајдена или не е поставена во %s';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s погодоци во табелата <i>%s</i>';
+$strNumSearchResultsTotal = '<b>вкупно:</b> <i>%s</i> погодоци';
+$strNumTables = 'Табели';
+
+$strOK = 'ОК';
+$strOperations = 'Операции';
+$strOperator = 'Оператор';
+$strOptimizeTable = 'Оптимизација на табелата';
+$strOr = 'или';
+$strOverhead = 'Пречекорување';
+$strOverwriteExisting = 'Препиши ги постоечките податотеки';
+
+$strPHPVersion = 'PHP верзија';
+$strPageNumber = 'Број на страници:';
+$strPagesToBeFlushed = 'Страници кои треба да бидат ускладени';
+$strPaperSize = 'Димензија на хартијата';
+$strPartialText = 'Дел на текстот';
+$strPassword = 'Лозинка';
+$strPasswordChanged = 'Лозинката за %s успешно е променета.';
+$strPasswordEmpty = 'Лозинка е празна!';
+$strPasswordHashing = 'Хеширање на лозинката';
+$strPasswordNotSame = 'Лозинките не се идентични!';
+$strPdfDbSchema = 'Шема на базата "%s" - Страница %s';
+$strPdfInvalidTblName = 'Табелата "%s" не постои!';
+$strPdfNoTables = 'Нема табела';
+$strPerHour = 'на час';
+$strPerMinute = 'во минута';
+$strPerSecond = 'во секунда';
+$strPersian = 'Персиски';
+$strPhoneBook = 'телефонски именик';
+$strPhp = 'Направи PHP код';
+$strPmaDocumentation = 'phpMyAdmin документација';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> директивата МОРА да биде подесена во конфигурациската податотека!';
+$strPolish = 'Полски';
+$strPortrait = 'Вертикално';
+$strPos1 = 'Почеток';
+$strPrevious = 'Претходна';
+$strPrimary = 'Примарен';
+$strPrimaryKeyHasBeenDropped = 'Примарниот клуч е избришан';
+$strPrimaryKeyName = 'Името на примарниот клуч мора да биде... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>може</b> да биде име <b>само</b> на примарниот клуч!)';
+$strPrint = 'Печати';
+$strPrintView = 'Преглед за печатење';
+$strPrintViewFull = 'Преглед за печатење (целосен текст)';
+$strPrivDescAllPrivileges = 'Ги вклучува сите привилегии освен GRANT.';
+$strPrivDescAlter = 'Дозволува промена на структурата на постоечките табели.';
+$strPrivDescCreateDb = 'Дозволува креирање на нови бази на податоци и табели.';
+$strPrivDescCreateTbl = 'Дозволува креирање на нови табела.';
+$strPrivDescCreateTmpTable = 'Дозволува креирање на привремени табели...';
+$strPrivDescDelete = 'Дозволува бришење на податоци.';
+$strPrivDescDropDb = 'Дозволува бришење на бази на податоци и табели.';
+$strPrivDescDropTbl = 'Дозволува бришење на табели.';
+$strPrivDescExecute = 'Дозволува стартување на снимени процедури. Нема ефект во новата верзија на MySQL.';
+$strPrivDescFile = 'Дозволува увоз на податоци и нивен извоз во податотеки.';
+$strPrivDescGrant = 'Дозволува додавање на корисници и привилегии без повтроно вчитавање на табелата на привилегии.';
+$strPrivDescIndex = 'Дозволува креирање и бришење на клучева.';
+$strPrivDescInsert = 'Дозволува вметнување и замена на података.';
+$strPrivDescLockTables = 'Дозволува заклучување на табели на тековните процеси.';
+$strPrivDescMaxConnections = 'Го ограничува бројот на нови конекции кои корисникот може да ги отвори за еден час.';
+$strPrivDescMaxQuestions = 'Го ограничува бројот на упити кои корисникот може да ги постави на серверот за еден час.';
+$strPrivDescMaxUpdates = 'Го ограничува бројот на команди кои ги менуваат табелите или базите на податоци кои корисникот може да ги изврши за еден час.';
+$strPrivDescReferences = 'Нема ефект во оваа верзији на MySQL.';
+$strPrivDescReload = 'Дозволува повтоно вчитување на подесувањата на серверот и празнење на кешот на серверот.';
+$strPrivDescReplClient = 'Дава права на кориснику да праша каде се главните/помошни сервери.';
+$strPrivDescReplSlave = 'Потребно заради помошните сервери за репликација.';
+$strPrivDescSelect = 'Дозволува читање на податоци.';
+$strPrivDescShowDb = 'Дава пристап на комплетната листа на базите на податоци.';
+$strPrivDescShutdown = 'Дозволува гасење на серверот.';
+$strPrivDescSuper = ' Дозволува поврзување иако е постигнат макслималниот број на врски; Неопходно за повеќето административни опции како што е подесување на глобални променливи или прекин на процеси наостанатите корисници.';
+$strPrivDescUpdate = 'Дозволува измена на податоци.';
+$strPrivDescUsage = 'Нема привилегии.';
+$strPrivileges = 'Привилегии';
+$strPrivilegesReloaded = 'Привилегиите се успешно вчитани.';
+$strProcesslist = 'Листа на процеси';
+$strPutColNames = 'Стави ги имињата на полињата во првата редица';
+
+$strQBE = 'Упит по пример';
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQueryFrame = 'Прозорец за упити';
+$strQueryOnDb = 'SQL упит на базата на податоци <b>%s</b>:';
+$strQuerySQLHistory = 'SQL историја';
+$strQueryStatistics = '<b>Статистики на упити</b>: %s упити се поставени на серверот од времето на неговото стартување.';
+$strQueryTime = 'време на извршување на упитот %01.4f секунди';
+$strQueryType = 'Вид на упит';
+$strQueryWindowLock = 'Не го препишувај овој упит надвор од овој прозорец';
+
+$strReType = 'Повтори внес';
+$strReadRequests = 'Барања за читање';
+$strReceived = 'Примено';
+$strRecords = 'Записи';
+$strReferentialIntegrity = 'Провери го референцијалниот интегритет:';
+$strRefresh = 'Освежи';
+$strRelationNotWorking = 'Дополнителните можности за работа со поврзаните табели се исклучени. За да дознаете зошто, кликнете %sовде%s.';
+$strRelationView = 'Релационен поглед';
+$strRelationalSchema = 'Релациона шема';
+$strRelations = 'Релации';
+$strRelationsForTable = 'РЕЛАЦИИ НА ТАБЕЛИТЕ';
+$strReloadingThePrivileges = 'Повторно ги вчитувам привилегиите';
+$strRemoveSelectedUsers = 'Избриши ги селектираните корисници';
+$strRenameDatabaseOK = 'Базата на податоци %s е преименувана во %s';
+$strRenameTable = 'Промени го името на табелата во ';
+$strRenameTableOK = 'Табелата %s е преименувана во %s';
+$strRepairTable = 'Поправка на табелата';
+$strReplaceNULLBy = 'Замени NULL со';
+$strReplaceTable = 'Замени ги податоците во табелата со подаците од податотеката';
+$strReset = 'Поништи';
+$strResourceLimits = 'Ограничување на ресурси';
+$strRevoke = 'Забрани';
+$strRevokeAndDelete = 'Одземи ги сите привилегии на активните корисници а потоа избриши ги.';
+$strRevokeAndDeleteDescr = 'Корисниците и понатаму ќе имаат USAGE привилегии се додека не се вчитаат повторно привилегиите.';
+$strRevokeMessage = 'Ги забранивте привилегиите за %s';
+$strRomanian = 'Романски';
+$strRowLength = 'Должина на запис';
+$strRowSize = 'Големина на запис';
+$strRows = 'Записи';
+$strRowsFrom = ' записи почнувајќи од записот';
+$strRowsModeFlippedHorizontal = 'хоризонтален (ротирани заглавија)';
+$strRowsModeHorizontal = 'хоризонтален';
+$strRowsModeOptions = 'во %s мод и повторувај заглавие после %s записа';
+$strRowsModeVertical = 'вертикален';
+$strRowsStatistic = 'Статистики за записите';
+$strRunQuery = 'Изврши SQL';
+$strRunSQLQuery = 'Изврши SQL упит(и) на базата %s';
+$strRunning = 'на серверот %s';
+$strRussian = 'Руски';
+
+$strSQL = 'SQL';
+$strSQLExportType = 'Тип на извоз';
+$strSQLParserBugMessage = 'Постои можност дека сте отркиле грешка во SQL парсерот. Ве молиме внимателно проверете го вашиот упит, проверете дали наводниците се правилно поставени или дали можеби недостасуваат. Други можни причини се: бинарна податотека надвор од областа за обичен текст. Можете да го пробате упит командната линија на MySQL. Долната порака за грешка на MySQL серверот, може да ви помогне да го откриете проблемот. Ако и понатаму имате проблеми или ако парсерот не успеава иако од командата линија се е во ред, испратете го својот SQL упит со извештајот за грешка и делот од кодот во долната РЕЗ секција до нас за да можеме да провериме за што се работи.';
+$strSQLParserUserError = 'Изгледа дека има грешка во вашиот SQL упит. Еве ја пораката за грешката од MySQL серверот, која може да ви помогне во откривањето на проблемот';
+$strSQLQuery = 'SQL упит';
+$strSQLResult = 'SQL резултат';
+$strSQPBugInvalidIdentifer = 'Неисправен идентификатор';
+$strSQPBugUnclosedQuote = 'Наводникот не е затворен';
+$strSQPBugUnknownPunctuation = 'Непознат стринг за интерпункција';
+$strSave = 'Сочувај';
+$strSaveOnServer = 'Сочувај на серверот во директориумот %s';
+$strScaleFactorSmall = 'Факторот на намалување е премал и шемата не може да ја собере на една страница';
+$strSearch = 'Пребарување';
+$strSearchFormTitle = 'Пребарување низ базата на податоци';
+$strSearchInTables = 'во табела(и):';
+$strSearchNeedle = 'Зборови или вредности кои се бараат (џокер знак "%"):';
+$strSearchOption1 = 'барем еден од зборовите';
+$strSearchOption2 = 'сите зборови';
+$strSearchOption3 = 'точен израз';
+$strSearchOption4 = 'како регуларен израз';
+$strSearchResultsFor = 'Резултати од пребарувањето за "<i>%s</i>" %s:';
+$strSearchType = 'Барај:';
+$strSecretRequired = 'Конфигурациската податотека бара лозинка (blowfish_secret).';
+$strSelectADb = 'Изберете база на податоци';
+$strSelectAll = 'избери се';
+$strSelectBinaryLog = 'Изберете бинарен дневник за преглед';
+$strSelectFields = 'Избери полиња (најмалку едно)';
+$strSelectNumRows = 'во упитот';
+$strSelectTables = 'Избери табели';
+$strSend = 'Сочувај како податотека';
+$strSent = 'Пратено';
+$strServer = 'Сервер';
+$strServerChoice = 'Избор на сервер';
+$strServerNotResponding = 'Серверот не одговара';
+$strServerStatus = 'Информации за работата';
+$strServerStatusUptime = 'Овој MySQL сервер работи %s. Стартуван е на %s.';
+$strServerTabVariables = 'Променливи';
+$strServerTrafficNotes = '<b>Сообраќај на серверот</b>: Во табелите прикажан е мрежниот сообраќај на овој MySQL сервер од моментот на неговото стартување.';
+$strServerVars = 'Серверски променливи и подесувања';
+$strServerVersion = 'Верзија на серверот';
+$strSessionValue = 'Вредност на сесијата';
+$strSetEnumVal = 'Ако типот на полето е "enum" или "set", внесувајте вредност во формат: \'a\',\'b\',\'c\'...<br />Ако ви треба обратна коса црта ("\\") или апостроф ("\'") користите ги во escap форма (пример \'\\\\xyz\' или \'a\\\'b\').';
+$strShow = 'Прикажи';
+$strShowAll = 'прикажи ги сите';
+$strShowColor = 'Прикажи боја';
+$strShowDatadictAs = 'Формат на речникот на податоци';
+$strShowFullQueries = 'Прикажи комплетни упити';
+$strShowGrid = 'Прикажи мрежа';
+$strShowPHPInfo = 'Прикажи информации за PHP';
+$strShowTableDimension = 'Прикажи ги димензиите на табелите';
+$strShowTables = 'Прикажи табели';
+$strShowThisQuery = 'Прикажи го повторно овој упит';
+$strShowingRecords = 'Приказ на записи од ';
+$strSimplifiedChinese = 'Поедноставен кинески';
+$strSingly = '(по едно поле)';
+$strSize = 'Големина';
+$strSlovak = 'Словачки';
+$strSlovenian = 'Словенечки';
+$strSocketProblem = '(или приклучокот со локалниот MySQL сервер не е исправно подесен)';
+$strSort = 'Подредуваање';
+$strSortByKey = 'Подредување по клуч';
+$strSpaceUsage = 'Големина';
+$strSpanish = 'Шпански';
+$strSplitWordsWithSpace = 'Зборовите се одвојуваат со празно место (" ").';
+$strStatCheckTime = 'Последна проверка';
+$strStatCreateTime = 'Направено';
+$strStatUpdateTime = 'Последна измена';
+$strStatement = 'Име';
+$strStatus = 'Статус';
+$strStorageEngine = 'Вид на складиште';
+$strStorageEngines = 'Видови на складишта';
+$strStrucCSV = 'CSV формат';
+$strStrucData = 'Структура и податоци';
+$strStrucExcelCSV = 'CSV за MS Excel';
+$strStrucNativeExcel = 'Изворни MS Excel податоци';
+$strStrucOnly = 'Само структура';
+$strStructPropose = 'Предложи структура на табелата';
+$strStructure = 'Структура';
+$strSubmit = 'Испрати';
+$strSuccess = 'Вашиот SQL упит успешно е извршен';
+$strSum = 'Вкупно';
+$strSwedish = 'Шведски';
+$strSwitchToDatabase = 'Префрли се на копираната база на податоци';
+$strSwitchToTable = 'Премини на копираната табела';
+
+$strTable = 'Табела';
+$strTableComments = 'Коментар на табелата';
+$strTableEmpty = 'Името на табелата е празно!';
+$strTableHasBeenDropped = 'Табелата %s е избришана';
+$strTableHasBeenEmptied = 'Табелата %s е испразнета';
+$strTableHasBeenFlushed = 'Табелата %s е освежена';
+$strTableMaintenance = 'Можете да извршите:';
+$strTableOfContents = 'Содржина';
+$strTableOptions = 'Опции на табелата';
+$strTableStructure = 'Структура на табелата';
+$strTables = '%s табела';
+$strTakeIt = 'превземи';
+$strTblPrivileges = 'Привилегии поврзани со табелата';
+$strTextAreaLength = 'Поради големина на полето<br />можеби нема да може да ја менувате неговата содржина';
+$strThai = 'Тајски';
+$strTheme = 'Тема / стил';
+$strThisHost = 'Овој host';
+$strThreadSuccessfullyKilled = 'Процесот %s е успешно прекинат.';
+$strTime = 'Време';
+$strToggleScratchboard = 'Вклучи/исклучи работна табела';
+$strTotal = 'вкупно';
+$strTotalUC = 'Вкупно';
+$strTraditionalChinese = 'Традиционален кинески';
+$strTraditionalSpanish = 'Традиционален шпански';
+$strTraffic = 'Сообраќај';
+$strTransformation_application_octetstream__download = 'Прикажува врска за превземање на бинарни податоци за полето. Првата опција е име на бинарната податотека. Другата опција е можно име на пола од табелата кое го содржи името на податотеката. Ако ја зададете другата опција, првата мора да биде поставена на празен стринг';
+$strTransformation_image_jpeg__inline = 'Прикажува намалена слика на која е можно да се кликне; опции: ширина, висина во пиксели (зачуван е оргиналнит однос)';
+$strTransformation_image_jpeg__link = 'Прикажува врска кон оваа слика (пример директно превземање од BLOB).';
+$strTransformation_image_png__inline = 'Прикажи JPEG слики од страна';
+$strTransformation_text_plain__dateformat = 'Го зема TIME, TIMESTAMP или DATETIME полето и го форматира користејќи го локалниот формат за приказ на датум. Првата опција е офсет (во часови) кои се додаваат на временската ознака (default: 0). Другата опција е различен формат на датумот според параметрите који се достапни за PHP функцијата strftime().';
+$strTransformation_text_plain__external = 'САМО LINUX: Стартува надворешна апликација и ги пополнува податоците во полињата преку стандарден влез. Враќа стандарден излез на апликацијта. Се подразбира Tidy, за поубав приказ на HTML кодот. Поради сигурносни причини, мора мануелно да се измени податотеката libraries/transformations/text_plain__external.inc.php и да се додадат алатки кои по желба сакате да ги користите. Првата опција е бројот на програмот кој сакате да го користите, а другата опција се параметрите на програмот. Ако третиот параметар се подеси на 1, излезот ќе биде конвертиран користејќи ја функцијата htmlspecialchars() (default 1). Ако четвртиot параметар се постави на 1, NOWRAP ќе биде додадено на полето со содржина така да излезот ќе биде прикажан без измени. (default 1).';
+$strTransformation_text_plain__formatted = 'Го чува оригиналниот формат на полето. Escaping не се врши.';
+$strTransformation_text_plain__imagelink = 'Прикажува слика и линк, полето го содржи називот на податотеката; првата опција е префикс како "http://domain.com/", другата опција е ширина во пиксели, а третата е висина.';
+$strTransformation_text_plain__link = 'Прикажува линк, полето го содржи називот на податотеката; првата опција е префикс како "http://domain.com/", другата опција е наслов за линкот.';
+$strTransformation_text_plain__substr = 'Покажува дел од стрингот. Првата опција е број на знаци кои треба да се прескокнат од почетокот на стрингот (default 0). Другата опција е број на вратени знаци (default: до крај на стрингот). Третата опција е стринг кој се додава кага ќе дојде до отсекување (default: ...) .';
+$strTruncateQueries = 'Прикажи скратени упити';
+$strTurkish = 'Турски';
+$strType = 'Тип';
+
+$strUkrainian = 'Украински';
+$strUncheckAll = 'ниедно';
+$strUnicode = 'Уникод';
+$strUnique = 'Единствен';
+$strUnknown = 'непознат';
+$strUnselectAll = 'ништо';
+$strUpdComTab = 'Ве молиме погледнете во документацијата за тоа како се ажурира табелата Column_comments';
+$strUpdatePrivMessage = 'Ги ажуриравте привилегиите за %s.';
+$strUpdateProfileMessage = 'Профилот е променет';
+$strUpdateQuery = 'Ажурирај';
+$strUpgrade = 'Би требало да го надоградите вашиот %s сервер на верзија %s или понова.';
+$strUsage = 'Големина';
+$strUseBackquotes = 'Името на полето стави го во \'';
+$strUseHostTable = 'Користи ја табелата на host-от';
+$strUseTabKey = 'Користете го TAB тастерот за движење од поле во поле, или CTRL+стрелка за слободно движење';
+$strUseTables = 'Користи табели';
+$strUseTextField = 'Користи текст поле';
+$strUseThisValue = 'Користи ја оваа вредност';
+$strUser = 'Корисник';
+$strUserAlreadyExists = 'Корисник %s веќе постои!';
+$strUserEmpty = 'Не е внесен назив на корисник!';
+$strUserName = 'Назив на корисник';
+$strUserNotFound = 'Изабраниот корисник не е пронајден во табелата на привилегии.';
+$strUserOverview = 'Преглед на корисници';
+$strUsersDeleted = 'Изабраните корисници успешно се избришани.';
+$strUsersHavingAccessToDb = 'Корисници кои имаат пристап &quot;%s&quot;';
+
+$strValidateSQL = 'Провери SQL';
+$strValidatorError = 'SQL валидаторот не можеше да биде стартуван. Проверете да ли се инсталирани неопходните PHP екстензии опишане во %sдокументацијата%s.';
+$strValue = 'Вредност';
+$strVar = 'Променлива';
+$strVersionInformation = 'Информации за верзијата';
+$strView = 'Поглед';
+$strViewDump = 'Прикажи содржина (шема) на табелите';
+$strViewDumpDB = 'Прикажи содржина (шема) на базата';
+$strViewDumpDatabases = 'Прикажи содржина (шема) на базите';
+$strViewHasBeenDropped = 'Прегледот %s е избришан';
+
+$strWebServerUploadDirectory = 'директориум за праќање на веб серверот ';
+$strWebServerUploadDirectoryError = 'Директориумот кој го избравте за праќање не е достапен';
+$strWelcome = '%s Добредојдовте';
+$strWestEuropean = 'Западноевропски';
+$strWildcard = 'џокер';
+$strWindowNotFound = 'Одредишни прозор претраживача није могао да буде ажуриран. Можда сте затворили матични прозор, или ваш претраживач онемогућава ажурирање међу прозорима због сигурносних подешавања';
+$strWithChecked = 'Обележаното:';
+$strWriteRequests = 'Барање за упис';
+$strWrongUser = 'Погрешно корисничко име/лозинка. Пристапот не е допуштен.';
+
+$strXML = 'XML';
+
+$strYes = 'Да';
+
+$strZeroRemovesTheLimit = 'Напомена: Поставувањето на овие опции на 0 (нула) ги отстранува ограничувањата.';
+$strZip = '"zip"';
+
+$strPrivDescCreateView = 'Дозволува креирање на нови погледи.';
+$strPrivDescCreateUser = 'Дозволува креирање, бришење и преименување на корсиничките имиња.';
+$strPrivDescCreateRoutine = 'Дозволува креирање на stored рутини.';
+$strPrivDescAlterRoutine = 'Дозволува промена и бришење на stored рутини.';
+$strRoutines = 'Рутини';
+$strPrivDescShowView = 'Дозволува извршување на SHOW CREATE VIEW упити.';
+$strPrivDescExecute5 = 'Дозволува извршување на stored рутини.';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE пред копирање';
+$strGeneratePassword = 'Генерирање на лозинка';
+$strGenerate = 'Генерирај';
+$strCopy = 'Копирај';
+
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strCSV = 'CSV'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strEvent = 'Event'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFiles = 'Files'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strHandler = 'Handler'; //to translate
+$strHelp = 'Help'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strHide = 'Hide'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strJoins = 'Joins'; //to translate
+$strKeyCache = 'Key cache'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strLanguage = 'Language'; //to translate
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOptions = 'Options'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strProcesses = 'Processes'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+$strQueryCache = 'Query cache'; //to translate
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReload = 'Reload'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strServers = 'Servers'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/malay-utf-8.inc.php b/lang/malay-utf-8.inc.php
new file mode 100644
index 0000000000..ff8a2c54ae
--- /dev/null
+++ b/lang/malay-utf-8.inc.php
@@ -0,0 +1,1485 @@
+<?php
+/* $Id$ */
+
+/*
+Projek Penterjemahan (l10n) phpmyadmin.net boleh diakses di laman http://shapik.johordt.com/l10n
+Projek ini diusahakan oleh saya - sicksand - Mohammad Shafiq Mohd Mustapa
+Ditujukan untuk sayang saya Nur Khairiyah.
+Antara yang menjayakan projek ini ialah (turutan bukan keutamaan)
+
+Asrul Munir Bin Azizan - ntahsapentah@hotmail.com
+Hasbullah - exs2me@hotmail.com
+sot - sid80@yahoo.com
+silla - roscla@yahoo.com
+bagaksasa - bagaksasa@hotmail.com
+Bustamam Harun - bustamam98@yahoo.com
+Hasbullah Bin Pit - sebol@ikhlas.com, Merlimau
+nina - nina@hotmail.com
+muslim - sayamuslim@hotmail.com
+ejoe - webmaster@ejoe.net
+huhu - huhu@huh.net
+redkod - r3dkod@yahoo.com
+*/
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+$timespanfmt = '%s hari, %s jam, %s minit dan %s saat';
+
+$day_of_week = array('Aha', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab');
+$month = array('Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogos', 'Sept', 'Okt', 'Nov', 'Dis');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y at %I:%M %p';
+
+$strAbortedClients = 'DiBatalkan';
+$strAccessDenied = 'Akses dinafikan';
+$strAction = 'Aksi';
+$strAddDeleteColumn = 'Tambah/Padam Kolum Medan';
+$strAddDeleteRow = 'Tambah/Padam Baris Kriteria';
+$strAddNewField = 'Tambah medan baru';
+$strAddSearchConditions = 'Tambah kriteria carian (badan bagi klausa "where"):';
+$strAddToIndex = 'Tambah ke indeks &nbsp;%s&nbsp;kolum';
+$strAddUserMessage = 'Anda telah menambah pengguna baru.';
+$strAddUser = 'Tambah Pengguna Baru';
+$strAfterInsertBack = 'Kembali ke muka sebelumnya';
+$strAfterInsertNewInsert = 'Tambah baris yang baru';
+$strAfter = 'Selepas %s';
+$strAll = 'Semua';
+$strAllTableSameWidth = 'paparkan semua Jadual dengan kelebaran yang sama?';
+$strAlterOrderBy = 'Alter table order by';
+$strAnalyzeTable = 'Analyze table';
+$strAnd = 'Dan';
+$strAnIndex = 'Indeks telah ditambah pada %s';
+$strAnyHost = 'Sebarang hos';
+$strAny = 'Sebarang';
+$strAnyUser = 'Sebarang pengguna';
+$strAPrimaryKey = 'Kekunci utama telah ditambah pada %s';
+$strAscending = 'Menaik';
+$strAtBeginningOfTable = 'Pada Awalan Jadual';
+$strAtEndOfTable = 'Pada Akhir Jadual';
+$strAttr = 'Atribut';
+
+$strBack = 'Undur';
+$strBeginCut = 'MULA SALIN';
+$strBeginRaw = 'MULA MENTAH';
+$strBinary = 'Binari';
+$strBinaryDoNotEdit = 'Binari - jgn diubah';
+$strBookmarkDeleted = 'TandaBuku telah dipadam.';
+$strBookmarkLabel = 'Label';
+$strBookmarkQuery = 'Tandabuku kueri-SQL';
+$strBookmarkThis = 'andabuku kueri-SQL ini';
+$strBookmarkView = 'Paparan sahaja';
+$strBrowse = 'Lungsur';
+$strBzip = 'bzipped';
+
+$strCannotLogin = 'Tidak boleh log-masuk ke server MySQL';
+$strCantLoadRecodeIconv = 'Tidak dapat memuat iconv atau kodsemula sambungan yang diperlukan untuk menukar set aksara, konfigur php utk membolehkan penggunaan sambungan ini atau abaikan pengubahan set aksara di phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Tidak boleh menukar indekx ke PRIMARY!';
+$strCantUseRecodeIconv = 'Tidak boleh menggunakan fungsi iconv mahupun libiconv mahupun recode_string apabila sambungan lapuran dimuat. Periksa konfigurasi php anda.';
+$strCardinality = 'Kardinaliti';
+$strChangeDisplay = 'Pilih Medan untuk dipapar';
+$strChangePassword = 'Ubah Katalaluan';
+$strChange = 'Ubah';
+$strCharsetOfFile = 'Fail bagi set Aksara:';
+$strCheckAll = 'Tanda Semua';
+$strCheckTable = 'Periksa Jadual';
+$strChoosePage = 'Sila Pilih Laman untuk diubah';
+$strColComFeat = 'Memaparkan Komen Kolum';
+$strColumnNames = 'Nama Kolum';
+$strCommand = 'Arahan';
+$strComments = 'Komen';
+$strCompleteInserts = 'Kemasukkan Selesai';
+$strCompression = 'Mampatan';
+$strConfigFileError = 'phpMyAdmin tidak dapat membaca fail konfigurasi!<br \\>Ini mungkin terjadi apabila ada kesalahan dalam php ataupun php tidak jumpa fail tersebut.<br />Sila panggil fail konfigurasi menggunakan pautan dibawah dan baca kesalahan php yang diterima. Dalam kebanyakan kes quote atau semicolon tertinggal.<br />Jika kamu terima laman kosong, semuanya berjalan lancar.';
+$strConfigureTableCoord = 'Sila konfigurasikan kordinat bagi jadual %s';
+$strConnections = 'Hubungan';
+$strCookiesRequired = 'Cecikut mestilah dihidupkan ketika ini.';
+$strCopyTableOK = 'Jadual %s telah disalin ke %s.';
+$strCopyTable = 'Salin jadual ke (pangkalandata<b>.</b>jadual):';
+$strCouldNotKill = 'phpMyAdmin tidak dapat mematikan bebenang %s. Ianya mungkin telah ditutup.';
+$strCreate = 'Cipta';
+$strCreateIndex = 'Cipta indeks pada &nbsp;%s&nbsp;';
+$strCreateIndexTopic = 'Cipta indeks baru';
+$strCreateNewDatabase = 'Cipta pangkalan data baru';
+$strCreateNewTable = 'Cipta jadual baru pada pangkalan data %s';
+$strCreatePage = 'Cipta Halaman baru';
+$strCreatePdfFeat = 'Ciptaan bagi PDF';
+$strCriteria = 'Kriteria';
+
+$strDatabaseHasBeenDropped = 'angkalan data %s telah digugurkan.';
+$strDatabase = 'Pangkalan Data';
+$strDatabases = 'pangkalan data';
+$strDatabasesStats = 'Statistik pangkalan data';
+$strData = 'Data';
+$strDataDict = 'Kamus Data';
+$strDataOnly = 'Data sahaja';
+$strDefault = 'Asal';
+$strDeleted = 'Baris telah dipadam';
+$strDelete = 'Padam';
+$strDescending = 'Menurun';
+$strDisabled = 'Tidak Membenarkan';
+$strDisplayFeat = 'Paparkan Ciri-ciri';
+$strDisplayOrder = 'Turutan paparan:';
+$strDisplayPDF = 'Papar Skema PDF';
+$strDoAQuery = 'Lakukan "kueri melalui contoh" (wilidcard: "%")';
+$strDocu = 'Dokumentasi';
+$strDoYouReally = 'Adakah anda ingin ';
+$strDrop = 'Gugur';
+$strDumpingData = 'Melonggok data bagi jadual';
+$strDumpXRows = 'Longgok %s baris bermula pada rekod # %s.';
+$strDynamic = 'dinamik';
+
+$strEditPDFPages = 'Ubah Halaman PDF';
+$strEditPrivileges = 'Ubah Privilej';
+$strEdit = 'Ubah';
+$strEffective = 'Berkesan';
+$strEmpty = 'Kosong';
+$strEmptyResultSet = 'MySQL memulangkan set hasil kosong (i.e. sifar baris)';
+$strEnabled = 'Membenarkan';
+$strEndCut = 'TAMAT SALIN';
+$strEndRaw = 'TAMAT MENTAH';
+$strEnd = 'Tamat';
+$strEnglishPrivileges = ' Nota: Nama privilej MySQL adalah dinyatakan dalam B.Inggeris ';
+$strError = 'Ralat';
+$strExplain = 'Terangkan Kod SQL';
+$strExport = 'Eksport';
+$strExtendedInserts = 'Penyelitan Lanjutan';
+$strExtra = 'Ekstra';
+
+$strFailedAttempts = 'Percubaan Gagal';
+$strFieldHasBeenDropped = 'Medan %s telah digugurkan';
+$strField = 'Medan';
+$strFieldsEnclosedBy = 'Medan disertai oleh';
+$strFieldsEscapedBy = 'Medan dilarikan oleh';
+$strFields = 'Medan';
+$strFieldsTerminatedBy = 'Medan dihapuskan oleh';
+$strFixed = 'tetap';
+$strFlushTable = 'Buang jadual ("FLUSH")';
+$strFormat = 'Format';
+$strFormEmpty = 'Kehilangan nilai pada borang! !';
+$strFullText = 'Teks Penuh';
+$strFunction = 'Fungsi';
+
+$strGenBy = 'Dijana oleh';
+$strGeneralRelationFeat = 'Ciri-ciri hubungan am';
+$strGenTime = 'Masa dijana';
+$strGlobalValue = 'Nilai Global';
+$strGo = 'Pergi';
+$strGzip = '"digzip"';
+
+$strHasBeenAltered = 'telah diubahsuai.';
+$strHaveToShow = 'Anda mesti pilih sekurang-kurangnya satu Kolum untuk dipapar';
+$strHomepageOfficial = 'Laman Rasmi phpMyAdmin';
+$strHome = 'Rumah';
+$strHostEmpty = 'Nama hos adalah kosong!';
+$strHost = 'Hos';
+
+$strId = 'ID';
+$strIdxFulltext = 'Tekspenuh';
+$strIgnore = 'Abai';
+$strIndexes = 'Indeks';
+$strIndexHasBeenDropped = 'Indeks %s telah digugurkan';
+$strIndex = 'Indeks';
+$strIndexName = 'Nama indeks&nbsp;:';
+$strIndexType = 'Jenis indeks&nbsp;:';
+$strInsecureMySQL = 'Fail Konfigurasi anda mengandungi pelengkapan (root tidak berkata laluan) yang bersesuaian dengan privilej akaun MySQL. Pelayan MySQL anda dilaksanakan dengan pelengkapan asas, ianya terdedah kepada pencerobohan, dan anda hendaklah membetulkan lubang keselamatan ini.';
+$strInsertAsNewRow = 'Selitkan baris baru';
+$strInsert = 'Selit';
+$strInUse = 'sedang digunakan';
+
+$strKeepPass = 'Jangan tukar katalaluan';
+$strKeyname = 'Nama Kekunci';
+$strKill = 'Bunuh';
+
+$strLandscape = 'Menegak';
+$strLaTeX = 'LaTeX';
+$strLengthSet = 'Panjang/Nilai*';
+$strLimitNumRows = 'Bilangan baris per halaman';
+$strLinesTerminatedBy = 'Baris ditamatkan oleh';
+$strLinkNotFound = 'Pautan tidak dijumpai';
+$strLinksTo = 'Pautan ke';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Lokasi bagi fail teks';
+$strLogin = 'Logmasuk';
+$strLogout = 'Log keluar';
+$strLogPassword = 'Katalaluan:';
+$strLogUsername = 'Namapengguna:';
+
+$strModifications = 'Pengubahsuaian telah disimpan';
+$strModifyIndexTopic = 'Ubahsuai indeks';
+$strModify = 'Ubahsuai';
+$strMoveTableOK = 'Jadual %s telah dipindahkan ke %s.';
+$strMoveTable = 'Pindahkan jadual ke (pangkalandata<b>.</b>jadual):';
+$strMySQLCharset = 'Set Aksara MySQL';
+$strMySQLSaid = 'MySQL berkata: ';
+$strMySQLShowProcess = 'Papar proses';
+
+$strName = 'Nama';
+$strNext = 'Berikut';
+$strNoDatabases = 'Tiada pangkalan data';
+$strNoDescription = 'tiada keterangan';
+$strNoDropDatabases = 'keterangan "DROP DATABASE" di tidak aktifkan .';
+$strNoExplain = 'Skip Explain SQL';
+$strNoFrames = 'phpMyAdmin lebih mesra dengan pelayar web <b>menyokong-kerangka</b> seperti mozilla.';
+$strNoIndexPartsDefined = 'Tiada bahagian indeks ditakrifkan!';
+$strNoIndex = 'Tiada indeks ditafrifkan!';
+$strNoModification = 'Tiada perubahan';
+$strNone = 'Tiada';
+$strNoPassword = 'Tiada Katalaluan';
+$strNoPhp = 'Tanpa Kod PHP';
+$strNoPrivileges = 'Tiada Privilej';
+$strNoRights = 'Anda tidak mempunyai hak mencukupi untuk berada disini sekarang!';
+$strNoTablesFound = 'Tiada jadual dijumpai pada pangkalan data.';
+$strNo = 'Tidak';
+$strNotNumber = 'Ini adalah bukan nombor!!';
+$strNotOK = 'tidak OK';
+$strNotSet = 'Jadual <b>%s</b> tidak dijumpai atau ditetapkan pada %s';
+$strNoUsersFound = 'Tiada pengguna dijumpai.';
+$strNoValidateSQL = 'Melangkau Pengesahan SQL';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s padanan di dalam jadual <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Jumlah</b>: <i>%s</i> padanan';
+$strNumTables = 'Jadual-jadual';
+
+$strOK = 'OK';
+$strOperations = 'Operasi';
+$strOptimizeTable = 'Optimakan jadual';
+$strOr = 'Atau';
+$strOverhead = 'Melebihi';
+
+$strPageNumber = 'Muka Surat:';
+$strPartialText = 'Sebahagian Teks';
+$strPasswordEmpty = 'Katalaluan adalah kosong!';
+$strPassword = 'Katalaluan';
+$strPasswordNotSame = 'Katalaluan tidak sama!';
+$strPdfDbSchema = 'Skema bagi pangkalan data "%s" database - Laman %s';
+$strPdfInvalidTblName = 'Jadual "%s" tidak wujud!';
+$strPdfNoTables = 'Tiada Jadual';
+$strPerHour = 'per jam';
+$strPhp = 'Cipta Kod PHP';
+$strPHPVersion = 'Versi PHP';
+$strPmaDocumentation = 'Dokumentasi phpMyAdmin';
+$strPmaUriError = '<tt>$cfg[PmaAbsoluteUri]</tt> MESTI disetkan di dalam fail konfigurasi.';
+$strPortrait = 'Melintang';
+$strPos1 = 'Mula';
+$strPrevious = 'Terdahulu';
+$strPrimaryKeyHasBeenDropped = 'Kekunci utama telah digugurkan';
+$strPrimaryKeyName = 'Nama kekunci utama mestilah... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>mesti</b> nama dan <b>semesti</b> dari kekunci utama!)';
+$strPrimary = 'Utama';
+$strPrint = 'Cetak';
+$strPrintView = 'Paparan Cetak';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivileges = 'Privilej';
+$strProcesses = 'Proses-proses';
+$strProcesslist = 'Senarai Proses';
+$strPutColNames = 'Letakkan medan di baris pertama';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Kueri';
+$strQueryOnDb = 'SQL- kueri pada pangkalan data <b>%s</b>:';
+$strQueryStatistics = '<b>Kueri Statistik</b>: Sejak ia dijalankan, %s kueri telah dihantar kepada pelayan.';
+$strQueryType = 'Jenis Kueri';
+
+$strReceived = 'DiTerima';
+$strRecords = 'Rekod';
+$strReferentialIntegrity = 'Semak integriti rujukan:';
+$strRelationalSchema = 'Skema Hubungan';
+$strRelationNotWorking = 'Ciri-ciri tambahan ini adalah untuk bekerja dengan pautan jadual yang telah tidak diaktifkan. Untuk mengetahuinya klik %shere%s.';
+$strRelationView = 'Paparan Hubungan';
+$strRenameTableOK = 'Jadual %s telah ditukarnama ke %s';
+$strRenameTable = 'Tukarnama jadual ke';
+$strRepairTable = 'Baiki jadual';
+$strReplaceTable = 'Ganti data jadual dengan fail';
+$strReset = 'Ulangtetap';
+$strReType = 'Ulang-taip';
+$strRevokeMessage = 'Anda telah menarikbalik privilej Keistimewaan untuk %s';
+$strRevoke = 'TarikBalik';
+$strRowLength = 'Panjang baris';
+$strRows = 'Baris';
+$strRowsFrom = 'baris bermula dari rekod #';
+$strRowSize = ' Saiz baris ';
+$strRowsModeHorizontal = 'mengufuk';
+$strRowsModeOptions = 'pada mod %s dan ulang pengepala selepas %s sel';
+$strRowsModeVertical = 'menegak';
+$strRowsStatistic = 'Statistik Baris';
+$strRunning = 'dilaksana pada %s';
+$strRunQuery = 'Hantar Kueri';
+$strRunSQLQuery = 'Laksana kueri SQL pada pangkalan data %s';
+
+$strSave = 'Simpan';
+$strScaleFactorSmall = 'Faktor skala adalah terlalu kecil supaya muat dengan skema dalam satu halaman';
+$strSearch = 'Cari';
+$strSearchFormTitle = 'Cari di pangkalan data';
+$strSearchInTables = 'Di dalam jadual:';
+$strSearchNeedle = 'Perkataan atau nilai untuk dicari (wildcard: "%"):';
+$strSearchOption1 = 'sekurang-kurangnya satu perkataan';
+$strSearchOption2 = 'semua perkataan';
+$strSearchOption3 = 'Frasa tepat';
+$strSearchOption4 = 'sebagai penyataan regular (regexp)';
+$strSearchResultsFor = 'Hasil carian bagi "<i>%s</i>" %s:';
+$strSearchType = 'Cari:';
+$strSelectADb = 'Sila pilih pangkalan data';
+$strSelectAll = 'Sila pilih pangkalan data';
+$strSelectFields = 'Pilih medan (sekurang-kurangnya satu):';
+$strSelectNumRows = 'pada kueri';
+$strSelectTables = 'Pilih Jadual';
+$strSend = 'Simpan sebagai fail';
+$strSent = 'Hantar';
+$strServerChoice = 'Pilihan Pelayan';
+$strServer = 'Pelayan';
+$strServerStatus = 'Informasi MasaJana';
+$strServerStatusUptime = 'Pelayan MySQL ini telah berjalan selama %s. Ia dihidupkan pada %s.';
+$strServerTabVariables = 'Pemboleh-pembolehubah';
+$strServerTrafficNotes = '<b>Kesibukan Pelayan</b>: Jadual menunjukkan statistik kesibukan rangkaian pada pelayan MySQL server semenjak ia dihidupkan.';
+$strServerVars = 'Pembolehubah dan Penetapan Pelayan';
+$strServerVersion = 'Versi Pelayan';
+$strSessionValue = 'Nilai Sessi';
+$strSetEnumVal = 'Jika jenis medan ialah "enum" atau "set", sila masukkan nilai menggunakan format: \'a\',\'b\',\'c\'...<br />Jika Anda ingin menggunakan backslash ("\") atau single quote ("\'") didalam nilai tersebut, backslashes kan ia (cth \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'Papar semua';
+$strShowColor = 'Papar warna';
+$strShowDatadictAs = 'Format Kamus Data';
+$strShowGrid = 'Papar grid';
+$strShowingRecords = 'Papar baris';
+$strShow = 'Papar';
+$strShowPHPInfo = 'Papar maklumat PHP';
+$strShowTableDimension = 'Papar dimensi jadual';
+$strShowTables = 'Papar jadual';
+$strShowThisQuery = ' Papar kueri ini di sini lagi ';
+$strSingly = '(persatu)';
+$strSize = 'Saiz';
+$strSort = 'Isih';
+$strSpaceUsage = 'Penggunaan ruang';
+$strSplitWordsWithSpace = 'Perkataan dipisahkan oleh aksara ruang (" ").';
+$strSQLParserBugMessage = 'Ada kemungkinan anda akan berjumpa dengan pepijat di penghuraian SQL. Sila semak kueri anda dengan teliti, dan periksa tanda quote adalah betul dan tidak tersalah letak. Antara kegagalan lain mungkin disebabkan fail yang dimuatnaik bersama binari oleh anda berada diluar kawasan quote. Anda juga boleh mencuba kueri MySQL anda di antaramuka aturan baris (cli). Dibawah adalah kesalah Pelayan MySql , jika ada, ianya membantu anda menganalisis masalah. Jika masih terdapat pemasalahan atau masalah penghuraian dimana antaramuka aturan baris berjaya, sila kurangkan kemasukan kueri SQL kepada satu kueri yang bermasalah, dan lapurkan pepijat desertai oleh seruas data dan SALIN keratan rentas dibawah:';
+$strSQLParserUserError = 'Ada kemungkin kueri SQL anda salah. Dibawah adalah kesalah Pelayan MySql , jika ada, ianya membantu anda menganalisis masalah';
+$strSQLQuery = 'kueri-SQL';
+$strSQLResult = 'Hasil SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Pengenalan TidakSah';
+$strSQPBugUnclosedQuote = 'Tanda quote tidak disertakan';
+$strSQPBugUnknownPunctuation = 'TandaBaca tidak dikenali';
+$strStatement = 'Penyataan';
+$strStatus = 'Status';
+$strStrucCSV = 'data CSV';
+$strStrucData = 'Struktur dan data';
+$strStrucExcelCSV = 'CSV untuk sata MS Excel';
+$strStrucOnly = 'Struktur sahaja';
+$strStructPropose = 'Cadangkan struktur jadual';
+$strStructure = 'Struktur';
+$strSubmit = 'Hantar';
+$strSuccess = 'Kueri-SQL anda telah dilaksanakan dengan jaya';
+$strSum = 'Jumlah';
+
+$strTableComments = 'Komen jadual';
+$strTableEmpty = 'Nama jadual adalah kosong';
+$strTableHasBeenDropped = 'Jadual %s telah digugurkan';
+$strTableHasBeenEmptied = 'Jadual %s telah dikosongkan';
+$strTableHasBeenFlushed = 'Jadual %s telah dibuangkan';
+$strTable = 'Jadual';
+$strTableMaintenance = 'Penyenggaraan Jadual';
+$strTableOfContents = 'Kandungan';
+$strTables = '%s jadual';
+$strTableStructure = 'Struktur jadual bagi jadual';
+$strTextAreaLength = ' Kerana kepanjangannya, <br />medan ini tidak boleh diedit ';
+$strThreadSuccessfullyKilled = 'Bebenang %s telah berjaya dimatikan.';
+$strTime = 'Masa';
+$strTotal = 'jumlah';
+$strTotalUC = 'Jumlah';
+$strTraffic = 'Kesibukan';
+$strType = 'Jenis';
+
+$strUncheckAll = 'Nyahtanda Semua';
+$strUnique = 'Unik';
+$strUnselectAll = 'Nyahpilih Semua';
+$strUpdatePrivMessage = 'Anda telah mengemaskini privilej bagi %s.';
+$strUpdateProfileMessage = 'Profil telah dikemaskini.';
+$strUpdateQuery = 'Kemaskini Kueri';
+$strUsage = 'Penggunaan';
+$strUseBackquotes = 'Sertakan nama jadual dan medan dengan backquotes';
+$strUserEmpty = 'Kata Pengenalan kosong!';
+$strUserName = 'Kata Pengenalan';
+$strUser = 'Pengguna';
+$strUseTables = 'Guna Jadual';
+
+$strValidateSQL = 'Mengesahkan SQL';
+$strValidatorError = 'Pengesahan SQL tidak dapat disahkan. Sila semak sama ada anda telah memasang sambungan php seperti yang tercatit di %sdocumentation%s.';
+$strValue = 'Nilai';
+$strVar = 'Pembolehubah';
+$strViewDumpDB = 'Lihat longgokan (skema) pangkalan data';
+$strViewDump = 'Lihat longgokan (skema) pangkalan data';
+
+$strWebServerUploadDirectory = 'direktori muatnaik pelayan-web';
+$strWebServerUploadDirectoryError = 'Direktori muatnaik yang telah ditetapkan tidak dapat dicapai';
+$strWelcome = 'Selamat Datang ke %s';
+$strWithChecked = 'Dengan pilihan:';
+$strWrongUser = 'Salah kata pengenalan/kata laluan. Akses dilarang.';
+
+$strYes = 'Ya';
+
+$strZip = '"zipped"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAddIntoComments = 'Add into comments';//to translate
+$strAddPrivilegesOnDb = 'Add privileges on the following database'; //to translate
+$strAddPrivilegesOnTbl = 'Add privileges on the following table'; //to translate
+$strAdministration = 'Administration'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+$strArabic = 'Arabic'; //to translate
+$strArmenian = 'Armenian'; //to translate
+$strAutomaticLayout = 'Automatic layout'; //to translate
+
+$strBaltic = 'Baltic'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBulgarian = 'Bulgarian'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCantLoad = 'cannot load %s extension,<br />please check PHP Configuration'; //to translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCentralEuropean = 'Central European'; //to translate
+$strChangeCopyModeCopy = '... keep the old one.'; //to translate
+$strChangeCopyMode = 'Create a new user with the same privileges and ...'; //to translate
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; //to translate
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; //to translate
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; //to translate
+$strChangeCopyUser = 'Change Login Information / Copy User'; //to translate
+$strCharset = 'Charset'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCharsets = 'Charsets'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCheckPrivs = 'Check Privileges'; //to translate
+$strCheckPrivsLong = 'Check privileges for database &quot;%s&quot;.'; //to translate
+$strCollation = 'Collation'; //to translate
+$strColumnPrivileges = 'Column-specific privileges'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCopyTableSameNames = 'Can\'t copy table to same one!'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCroatian = 'Croatian'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCyrillic = 'Cyrillic'; //to translate
+$strCzech = 'Czech'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDanish = 'Danish'; //to translate
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDatabaseExportOptions = 'Database export options';//to translate
+$strDatabasesDropped = '%s databases have been dropped successfully.'; //to translate
+$strDatabasesStatsDisable = 'Disable Statistics'; //to translate
+$strDatabasesStatsEnable = 'Enable Statistics'; //to translate
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the Database statistics here might cause heavy traffic between the webserver and the MySQL one.'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBComment = 'Database comment: ';//to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDbPrivileges = 'Database-specific privileges'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDbSpecific = 'database-specific'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteAndFlush = 'Delete the users and reload the privileges afterwards.'; //to translate
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDeleting = 'Deleting %s'; //to translate
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+$strDescription = 'Description'; //to translate
+$strDictionary = 'dictionary'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+$strDropUsersDb = 'Drop the databases that have the same names as the users.'; //to translate
+$strDumpSaved = 'Dump has been saved to file %s.'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strEnglish = 'English'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strEstonian = 'Estonian'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.'; //to translate
+$strFileCouldNotBeRead = 'File could not be read'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileNameTemplate = 'File name template';//to translate
+$strFileNameTemplateRemember = 'remember template';//to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of this tables may differ from the privileges the server uses if manual changes have made to it. In this case, you should %sreload the privileges%s before you continue.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+$strGerman = 'German'; //to translate
+$strGlobal = 'global'; //to translate
+$strGlobalPrivileges = 'Global privileges'; //to translate
+$strGrantOption = 'Grant'; //to translate
+$strGreek = 'Greek'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHebrew = 'Hebrew'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+$strHungarian = 'Hungarian'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFiles = 'Import files'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInnodbStat = 'InnoDB Status'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJapanese = 'Japanese'; //to translate
+$strJoins = 'Joins'; //to translate
+$strJumpToDB = 'Jump to database &quot;%s&quot;.'; //to translate
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.'; //to translate
+$strJustDelete = 'Just delete the users from the privilege tables.'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+$strKorean = 'Korean'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption';//to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexContinued = '(continued)';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLithuanian = 'Lithuanian'; //to translate
+$strLoginInformation = 'Login Information'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIME_available_mime = 'Available MIME-types';//to translate
+$strMIME_available_transform = 'Available transformations';//to translate
+$strMIME_description = 'Description';//to translate
+$strMIME_MIMEtype = 'MIME-type';//to translate
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.';//to translate
+$strMIME_transformation = 'Browser transformation';//to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';//to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';//to translate
+$strMIME_transformation_options = 'Transformation options';//to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';//to translate
+$strMoveTableSameNames = 'Can\'t move table to same one!'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDatabasesSelected = 'No databases selected.'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoOptions = 'This format has no options';//to translate
+$strNoPermission = 'The web server does not have permission to save the file %s.'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoSpace = 'Insufficient space to save the file %s.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+$strOverwriteExisting = 'Overwrite existing file(s)'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPaperSize = 'Paper size'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordChanged = 'The Password for %s was changed successfully.'; // to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPerMinute = 'per minute';//to translate
+$strPerSecond = 'per second';//to translate
+$strPersian = 'Persian'; //to translate
+$strPhoneBook = 'phone book'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.'; //to translate
+$strPrivDescAlter = 'Allows altering the structure of existing tables.'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateDb = 'Allows creating new databases and tables.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateTbl = 'Allows creating new tables.'; //to translate
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescDelete = 'Allows deleting data.'; //to translate
+$strPrivDescDropDb = 'Allows dropping databases and tables.'; //to translate
+$strPrivDescDropTbl = 'Allows dropping tables.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescExecute = 'Allows running stored procedures; Has no effect in this MySQL version.'; //to translate
+$strPrivDescFile = 'Allows importing data from and exporting data into files.'; //to translate
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.'; //to translate
+$strPrivDescIndex = 'Allows creating and dropping indexes.'; //to translate
+$strPrivDescInsert = 'Allows inserting and replacing data.'; //to translate
+$strPrivDescLockTables = 'Allows locking tables for the current thread.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReferences = 'Has no effect in this MySQL version.'; //to translate
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.'; //to translate
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescSelect = 'Allows reading data.'; //to translate
+$strPrivDescShowDb = 'Gives access to the complete list of databases.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescShutdown = 'Allows shutting down the server.'; //to translate
+$strPrivDescSuper = 'Allows connectiong, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strPrivDescUpdate = 'Allows changing data.'; //to translate
+$strPrivDescUsage = 'No privileges.'; //to translate
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryFrame = 'Query window';//to translate
+$strQuerySQLHistory = 'SQL-history';//to translate
+$strQueryTime = 'Query took %01.4f sec';//to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strRelations = 'Relations'; //to translate
+$strReloadingThePrivileges = 'Reloading the privileges'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRemoveSelectedUsers = 'Remove selected users'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplaceNULLBy = 'Replace NULL by'; //to translate
+$strReplication = 'Replication'; //to translate
+$strResourceLimits = 'Resource limits'; //to translate
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.'; //to translate
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)';//to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+$strRussian = 'Russian'; //to translate
+
+$strSaveOnServer = 'Save on server in %s directory'; //to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowFullQueries = 'Show Full Queries'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strStatCheckTime = 'Last check';//to translate
+$strStatCreateTime = 'Creation';//to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStatUpdateTime = 'Last update';//to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwedish = 'Swedish'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+$strSwitchToTable = 'Switch to copied table'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableOptions = 'Table options'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTblPrivileges = 'Table-specific privileges'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThisHost = 'This Host'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTraditionalChinese = 'Traditional Chinese'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)'; //to translate
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).';//to translate
+$strTransformation_image_png__inline = 'See image/jpeg: inline'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';//to translate
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.';//to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';//to translate
+$strTruncateQueries = 'Truncate Shown Queries'; //to translate
+$strTurkish = 'Turkish'; //to translate
+
+$strUkrainian = 'Ukrainian'; //to translate
+$strUnicode = 'Unicode'; //to translate
+$strUnknown = 'unknown'; //to translate
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseHostTable = 'Use Host Table'; //to translate
+$strUserAlreadyExists = 'The user %s already exists!'; //to translate
+$strUserNotFound = 'The selected user was not found in the privilege table.'; //to translate
+$strUserOverview = 'User overview'; //to translate
+$strUsersDeleted = 'The selected users have been deleted successfully.'; //to translate
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseTextField = 'Use text field'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases';//to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWestEuropean = 'West European'; //to translate
+$strWildcard = 'wildcard'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strXML = 'XML';//to translate
+
+$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/mongolian-utf-8.inc.php b/lang/mongolian-utf-8.inc.php
new file mode 100644
index 0000000000..f8fdc11055
--- /dev/null
+++ b/lang/mongolian-utf-8.inc.php
@@ -0,0 +1,1468 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by Bayarsaikhan Enkhtaivan
+*/
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+//$byteUnits = array('Байт', 'кБ', 'МБ', 'ГБ');
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя');
+$month = array('1-р', '2-р', '3-р', '4-р', '5-р', '6-р', '7-р', '8-р', '9-р', '10р', '11р', '12р');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%Y оны %B сарын %d., %H:%M';
+$timespanfmt = '%s өдөр, %s цаг, %s минут, %s секунд';
+
+$strAbortedClients = 'Таслагдсан';
+$strAccessDeniedExplanation = 'phpMyAdmin нь MySQL сервэр лүү холбогдох гэсэн ч, сервэр хүлээн авсангүй. config.inc.php дэх сервэр, хэрэглэгчийн нэр болон нууц үгээ шалга.';
+$strAccessDenied = 'Хандах эрхгүй';
+$strAction = 'Үйлдэл';
+$strAddAutoIncrement = 'AUTO_INCREMENT утга нэмэх';
+$strAddConstraints = 'Тогтмол нэмэх';
+$strAddDeleteColumn = 'Багана нэмэх/устгах';
+$strAddDeleteRow = 'Мөр Нэмэх/устгах';
+$strAddFields = '%s талбар(ууд) нэмэх';
+$strAddHeaderComment = 'header-т тусгай тайлбар нэмэх (\\n –мөр шилжүүлнэ)';
+$strAddIntoComments = 'Тайлбар нэмэх';
+$strAddNewField = 'Шинэ талбар нэмэх';
+$strAddPrivilegesOnDb = 'Дараах өгөгдлийн санд онцгой эрх нэмэх';
+$strAddPrivilegesOnTbl = 'Дараах хүснэгтэд онцгой эрх нэмэх';
+$strAddSearchConditions = 'Хайлтын нөхцөл нэмэх("where" хэсгийн бие):';
+$strAddToIndex = 'Индекст нэмэх&nbsp;%s&nbsp;багана(ууд)';
+$strAddUserMessage = 'Шинэ хэрэглэгч нэмэгдлээ.';
+$strAddUser = 'Шинэ хэрэглэгч нэмэх';
+$strAdministration = 'Зохион байгуулалт';
+$strAfterInsertBack = 'Буцах';
+$strAfterInsertNewInsert = 'Өөр шинэ мөр оруулах';
+$strAfterInsertNext = 'Дараагийн мөрийг засах';
+$strAfterInsertSame = 'Энэ хуудас руу буцах';
+$strAfter = '%s-ы дараа';
+$strAllTableSameWidth = 'бүх хүснэгтийг ижил өргөнөөр харуулах уу?';
+$strAll = 'Бүх';
+$strAlterOrderBy = 'Хүснэгтийг эрэмбэлэлтээр өөрчлөх';
+$strAnalyzeTable = 'Хүснэгтийг задлах';
+$strAndThen = 'ба тэгээд';
+$strAnd = 'БА';
+$strAnIndex = '%s-д индекс нэмэгдсэн байна';
+$strAnyHost = 'Дурын хост';
+$strAnyUser = 'Дурын хэрэглэгч';
+$strAny = 'Дурын';
+$strApproximateCount = 'May be approximate. See FAQ 3.11';
+$strAPrimaryKey = '%s-д үндсэн түлхүүр нэмэгдлээ';
+$strArabic = 'Араб';
+$strArmenian = 'Армян';
+$strAscending = 'Өсөхөөр';
+$strAtBeginningOfTable = 'Хүснэгтийн эхэнд';
+$strAtEndOfTable = 'Хүснэгтийн төгсгөлд';
+$strAttr = 'Атрибутууд';
+$strAutomaticLayout = 'Автомат байрлал';
+
+$strBack = 'Өмнөх';
+$strBaltic = 'Балти';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinaryDoNotEdit = ' Хоёртын өгөгдөл - засагдахгүй ';
+$strBinaryLog = 'Хоёртын log';
+$strBinary = ' Хоёртын ';
+$strBinLogEventType = 'Хэрэг явдлын төрөл';
+$strBinLogInfo = 'Мэдээлэл';
+$strBinLogName = 'Log нэр';
+$strBinLogOriginalPosition = 'Жинхэнэ байрлал';
+$strBinLogPosition = 'Байрлал';
+$strBinLogServerId = 'Server ID';
+$strBookmarkAllUsers = 'Энэ тэмдэглэгээг бүх хэрэглэгчид хандахыг зөвшөөрөх';
+$strBookmarkDeleted = 'Тэмдэглэгээ устгагдсан.';
+$strBookmarkLabel = 'Хаяг';
+$strBookmarkQuery = 'Тэмдэглэгдсэн SQL-асуулт';
+$strBookmarkThis = 'Энэ SQL-асуулт-ыг тэмдэглэх';
+$strBookmarkView = 'Зөвхөн харах';
+$strBrowseForeignValues = 'Browse foreign values';
+$strBrowse = 'Хөтлөх';
+$strBufferPoolActivity = 'Буффер Pool Идэвхжил';
+$strBufferPoolUsage = 'Буффер Pool Хэрэглээ';
+$strBufferPool = 'Буффер Pool';
+$strBufferReadMissesInPercent = 'Уншилт алдсан нь %';
+$strBufferReadMisses = 'Уншилт алдагдсан';
+$strBufferWriteWaitsInPercent = 'Бичихээр хүлээгдэх нь %';
+$strBufferWriteWaits = 'Бичихээр хүлээх';
+$strBulgarian = 'Болгар';
+$strBusyPages = 'Завгүй хуудсууд';
+$strBzip = 'bzip-ээр шахагдсан';
+
+$strCalendar = 'Цагалбар';
+$strCannotLogin = 'MySQL руу нэвтэрч чадсангүй';
+$strCantLoadRecodeIconv = 'Тэмдэгт хөрвүүлэлтийн iconv, recode өргөтгөлийг дуудаж чадсангүй. Php тохиргоо дахь эдгээр өргөтгөлийг нээ эсвэл phpMyAdmin-ы тэмдэгт хөрвүүлэлтийг хаа.';
+$strCantLoad = '%s өргөтгөлийг дуудаж чадсангүй,<br />PHP-ийн тохиргоог үз';
+$strCantRenameIdxToPrimary = 'Индексийг PRIMARY болгож чадсангүй!';
+$strCantUseRecodeIconv = 'iconv, libiconv, recode_string өргөтгөлүүдийн алийг ч хэрэглэж чадсангүй (extension reports-д дуудагдах). Php тохиргоогоо шалга.';
+$strCardinality = 'Ерөнхий';
+$strCaseInsensitive = 'Том жижиг хамаагүй';
+$strCaseSensitive = 'Том жижиг хамаатай ';
+$strCentralEuropean = 'Төв-Европ';
+$strChangeCopyModeCopy = '... хуучныг үлдээх.';
+$strChangeCopyModeDeleteAndReload = ' ... хэрэглэгчийн хүснэгтүүдээс нэгийг устгаад дараа нь онцгой эрхийг дахин дууд.';
+$strChangeCopyModeJustDelete = ' ... хэрэглэгчийн хүснэгтүүдээс устгах.';
+$strChangeCopyModeRevoke = ' ... хуучнаас бүх онцгой эрхийг хүчингүй болгоод дараа нь устга.';
+$strChangeCopyMode = 'Адил онцгой эрхтэй хэрэглэгч үүсгэх ба ...';
+$strChangeCopyUser = 'Нэвтрэх мэдээллийг солих/ Хэрэглэгч хуулах';
+$strChangeDisplay = 'Харуулах талбарыг соль';
+$strChangePassword = 'Нууц үг солих';
+$strChange = 'Солих';
+$strCharsetOfFile = 'Файлын кодлол:';
+$strCharsetsAndCollations = 'Кодлол ба жишилт';
+$strCharsets = 'Кодлолууд';
+$strCharset = 'Кодлол';
+$strCheckAll = 'Бүгдийг чагтлах';
+$strCheckOverhead = 'Дээдхийг шалгах';
+$strCheckPrivsLong = '&quot;%s&quot; өгөгдлийн сангийн онцгой эрх шалгах.';
+$strCheckPrivs = 'Онцгой эрх шалгах';
+$strCheckTable = 'Хүснэгт шалгах';
+$strChoosePage = 'Засах Хуудсаа сонго';
+$strColComFeat = 'Баганын тайлбарыг харуулж байна';
+$strCollation = 'Жишилт';
+$strColumnNames = 'Баганын нэрс';
+$strColumnPrivileges = 'Онцгой эрх, баганын эрх';
+$strCommand = 'Команд';
+$strComments = 'Тайлбар';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible';
+$strCompleteInserts = 'Оруулалтыг дуусгах';
+$strCompression = 'Шахалт';
+$strConfigFileError = 'phpMyAdmin нь таны тохиргооны файлыг уншиж чадахгүй нь!<br />Задлан ялгалын алдаа эсвэл уг файл олдохгүй байна.<br />Тохиргооны (config.inc.php) файл дуудах холбоосыг зөв оруулж php-ийн танд ирсэн алдааны мэдээллийг унш. Энэ нь ихэвчлэн цэгтэй таслалын (;) алдаа байдаг. Хэрэв хоосон хуудас ирвэл – энэ нь зүгээр байна';
+$strConfigureTableCoord = '%s хүснэгтийн координатыг тохируулна уу';
+$strConnectionError = 'Холбогдсонгүй: тохируулга буруу.';
+$strConnections = 'Холболт';
+$strConstraintsForDumped = 'Асгарсан хүснэгтийг хүчлэх';
+$strConstraintsForTable = 'Constraints for table';
+$strCookiesRequired = 'Энэ газарт Cookies нээлттэй байх ёстой.';
+$strCopyDatabaseOK = 'ӨС %s нь %s руу хуулагдлаа';
+$strCopyTableOK = '%s хүснэгт %s руу хуулагдлаа.';
+$strCopyTableSameNames = ' Адил нэртэй хүснэгт рүү хуулж чадсангүй!';
+$strCopyTable = 'Хүснэгт хуулах(өгөгдлийн сан<b>.</b>хүснэгт):';
+$strCopy = 'Хуулах';
+$strCouldNotKill = 'phpMyAdmin нь thread %s-ийг хааж чадсангүй. Энэ аль хэдийн хаагдсан байна.';
+$strCreateDatabaseBeforeCopying = 'хуулахын өмнө CREATE DATABASE';
+$strCreateIndex = '&nbsp;%s&nbsp;багануудад индекс үүсгэх';
+$strCreateIndexTopic = 'Шинэ индекс үүсгэх';
+$strCreateNewDatabase = 'Шинэ ӨС үүсгэх';
+$strCreateNewTable = '%s ӨС-д шинэ хүснэгт үүсгэх';
+$strCreatePage = 'Шинэ хуудас үүсгэх';
+$strCreatePdfFeat = 'PDF-схемийн үүсгэлт';
+$strCreate = 'Үүсгэх';
+$strCreationDates = 'Үүсгэлт/Шинэчлэлт/Огноо шалгах';
+$strCriteria = 'Хэмжүүр';
+$strCroatian = 'Хорват';
+$strCyrillic = 'Кирилл';
+$strCzechSlovak = 'Чехословак';
+$strCzech = 'Чех';
+
+$strDanish = 'Дани';
+$strDatabaseEmpty = 'Өгөгдлийн сангийн нэр хоосон!';
+$strDatabaseExportOptions = 'ӨС гаргах сонголтууд';
+$strDatabaseHasBeenDropped = '%s өгөгдлийн сан устгагдсан.';
+$strDatabasesDropped = '%s ӨС амжилттай устгагдлаа.';
+$strDatabasesStatsDisable = 'Хаалттай статистик';
+$strDatabasesStatsEnable = 'Нээлттэй статистик';
+$strDatabasesStatsHeavyTraffic = 'Тэмдэглэл: Вэб сервэр, MySQL-ийн хоорондох өгөгдөл дамжуулах статистик.';
+$strDatabasesStats = 'Өгөгдлийн сангийн статистик';
+$strDatabases = 'Өгөгдлийн сангууд';
+$strDatabase = 'ӨС';
+$strDataDict = 'Өгөгдлийн толь';
+$strDataOnly = 'Зөвхөн өгөгдөл';
+$strDataPages = 'Хуудсуудын агуулсан өгөгдөл';
+$strData = 'Өгөгдөл';
+$strDBComment = 'ӨС-ийн тайлбар: ';
+$strDBCopy = 'Өгөгдлийн сан хуулах нь';
+$strDbPrivileges = ' Онцгой эрх, өгөгдлийн сангийн эрх';
+$strDBRename = 'Өгөгдлийн санг д.нэрлэх нь';
+$strDbSpecific = 'Өгөгдлийн сангийн эрх';
+$strDefaultEngine = '%s нь уг MySQL сервэрийн анхдагч агуулах хөдөлгүүр байна.';
+$strDefaultValueHelp = 'Анхдагч утгаар энэ тогтнолыг ашиглан ташуу зураас, хашилтгүй ганц утга оруулна уу: a';
+$strDefault = 'Анхдагч';
+$strDefragment = 'Хүснэгт янзлах';
+$strDelayedInserts = 'Давталттай оруулалт хэрэглэх';
+$strDeleteAndFlushDescr = 'Энэ бол цэвэрхэн зам, гэхдээ онцгой эрхийг дахиж дуудна.';
+$strDeleteAndFlush = 'Хэрэглэгчдийг устгаад дараа нь онцгой эрхийг дахин дууд.';
+$strDeleted = 'Мөр устгагдсан';
+$strDelete = 'Устгах';
+$strDeleting = '%s-г устгаж байна';
+$strDelOld = 'Хүснэгтийн лавлахтай хуудас нь удаан оршихгүй, Та эдгээр лавлахуудыг устгах уу?';
+$strDescending = 'Буурахаар';
+$strDescription = 'Тайлбар';
+$strDictionary = 'толь';
+$strDirtyPages = 'Бохир хуудсууд';
+$strDisabled = 'Хаагдсан';
+$strDisableForeignChecks = 'Гадаад түлхүүр шалгалтыг хаах';
+$strDisplayFeat = 'Онцлог харуулах';
+$strDisplayOrder = 'Харуулах эрэмбэ:';
+$strDisplayPDF = 'PDF-схем харуулах';
+$strDoAQuery = '"жишээ асуулт" хийх (тэмдэгт: "%")';
+$strDocu = 'Баримт';
+$strDoYouReally = 'Та үнэхээр ';
+$strDropDatabaseStrongWarning = 'Дүүрэн өгөгдлийн сан УСТГАХ тухай?';
+$strDropUsersDb = 'Хэрэглэгчтэй адил нэртэй өгөгдлийн санг устгах.';
+$strDrop = 'Устгах';
+$strDumpingData = 'Хүснэгтийн өгөгдлийг устгах';
+$strDumpSaved = 'Асгалт %s файлд хадгалагдсан.';
+$strDumpXRows = '%s мөрүүдийг, %s-аас эхлэн устгах.';
+$strDynamic = 'динамик';
+
+$strEditPDFPages = 'PDF-хуудаснуудыг засах';
+$strEditPrivileges = 'Онцгой эрхүүдийг засах';
+$strEdit = 'Засах';
+$strEffective = 'Эффекттэй';
+$strEmptyResultSet = 'MySQL хоосон үр дүн буцаалаа (тэг мөрүүд г.м.).';
+$strEmpty = 'Хоосон';
+$strEnabled = 'Нээлттэй';
+$strEncloseInTransaction = 'Хэлэлцээр дэх гаргалтыг хаах';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'Төгс';
+$strEngineAvailable = '%s нь уг MySQL сервэрт идэвхтэй байна.';
+$strEngineDisabled = '%s нь уг MySQL сервэр дээр хаалттай байна.';
+$strEngines = 'Хөдөлгүүрүүд';
+$strEngineUnsupported = 'Энэ MySQL сервэр нь %s агуулах хөдөлгүүрийг дэмжихгүй.';
+$strEnglishPrivileges = ' Тэмдэглэл: MySQL онцгой эрхийн нэр нь англиар илэрхийлэгдсэн ';
+$strEnglish = 'Англи';
+$strError = 'Алдаа';
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally';
+$strEstonian = 'Эстони';
+$strExcelEdition = 'Excel-засвар';
+$strExecuteBookmarked = 'Тэмдэглэгдсэн асуулт ажиллуулах';
+$strExplain = 'SQL тайлбар';
+$strExport = 'Гаргах';
+$strExtendedInserts = 'Өргөтгөсөн оруулалт';
+$strExtra = 'Нэмэлт';
+
+$strFailedAttempts = 'Бүтэлгүйтсэн оролдлого';
+$strFieldHasBeenDropped = 'Талбар %s устгагдсан';
+$strFieldsEnclosedBy = 'Талбарыг хаасан';
+$strFieldsEscapedBy = 'Талбарыг нээсэн';
+$strFieldsTerminatedBy = 'Талбарыг төгсгөсөн';
+$strFields = 'Талбарууд';
+$strField = 'Талбар';
+$strFileAlreadyExists = 'Файл %s нь сервэр дээр байна, нэрээ соль эсвэл давхарлах сонголтыг шалга.';
+$strFileCouldNotBeRead = 'Файл уншигдахгүй байна';
+$strFileNameTemplateRemember = 'загварыг санах';
+$strFileNameTemplate = 'Файлын нэрийн загвар';
+$strFixed = 'Засагдсан';
+$strFlushPrivilegesNote = 'Тэмдэглэл: phpMyAdmin нь MySQL-ийн онцгой эрхийн хүснэгтээс хэрэглэгчдийн онцгой эрхийг авна. Хэрэв тэд гараар өөрчлөгдсөн бол эдгээр хүснэгтийн агуулга нь сервэрт хэрэглэгдэж буйгаас өөр байна. Энэ тохиолдолд %sдахин дуудаж үргэлжлүүлнэ үү.';
+$strFlushTable = 'Flush the table ("FLUSH")';
+$strFormat = 'Тогтнол';
+$strFormEmpty = 'Форм дахь утгыг орхисон!';
+$strFreePages = 'Чөлөөт хуудсууд';
+$strFullText = 'Бүтэн бичвэр';
+$strFunction = 'Функц';
+
+$strGenBy = 'Үүсгэгч';
+$strGeneralRelationFeat = 'Ерөнхий хамаатай онцлог';
+$strGeneratePassword = 'Нууц үг бий болгох';
+$strGenerate = 'Бий болгох';
+$strGenTime = 'Үүссэн цаг';
+$strGeorgian = 'Гүрж';
+$strGerman = 'Немец';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Глобал онцгой эрх';
+$strGlobalValue = 'Глобал утга';
+$strGo = 'Яв';
+$strGrantOption = 'Хандив';
+$strGreek = 'Грек';
+$strGzip = 'gzip-ээр шахах';
+
+$strHasBeenAltered = 'өөрчлөгдсөн байна.';
+$strHaveToShow = 'Харуулахын тулд ядаж нэг багана сонго';
+$strHebrew = 'Иврей';
+$strHomepageOfficial = 'phpMyAdmin-ын албан ёсны вэб сайт';
+$strHome = 'Гэр';
+$strHostEmpty = 'Хостын нэр хоосон!';
+$strHost = 'Хост';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Унгар';
+
+$strIcelandic = 'Исланд';
+$strId = 'ID';
+$strIdxFulltext = 'Бүтэнбичвэр';
+$strIgnoreInserts = 'Оруулалтыг үл тоох';
+$strIgnore = 'Үл тоох';
+$strImportFiles = 'Файл оруулах';
+$strIndexes = 'Индексүүд';
+$strIndexHasBeenDropped = 'Индекс %s нь устгагдсан';
+$strIndexName = 'Индексийн нэр&nbsp;:';
+$strIndexType = 'Индексийн төрөл&nbsp;:';
+$strIndexWarningTable = 'Хүснэгт `%s`-ийн индекс асуудалтай';
+$strIndex = 'Индекс';
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.';
+$strInnoDBAutoextendIncrement = 'Авто нэмэгдэлт';
+$strInnoDBBufferPoolSizeDesc = 'Энэ хүснэгтийн кэш өгөгдөл, индекст хэрэглэх InnoDB санах ойн буфферийн хэмжээ.';
+$strInnoDBBufferPoolSize = 'Буффер pool хэмжээ';
+$strInnoDBDataFilePath = 'Өгөгдлийн файлууд';
+$strInnoDBDataHomeDirDesc = 'Бүх InnoDB өгөгдлийн файлын хавтсын замын үндсэн хэсэг.';
+$strInnoDBDataHomeDir = 'Өгөгдлийн үндсэн хавтас';
+$strInnoDBPages = 'хуудсууд';
+$strInnodbStat = 'InnoDB байдал';
+$strInsecureMySQL = 'Таны тохиргооны файл нь MySQL-ын анхдагч онцгой эрхийг (нэвтрэгч root нь нууц үггүй) агуулжээ. Таны MySQL сервэр энэ анхдагчаар ажиллаж байгаа нь хэн ч урилгагүй орох боломжийг өгнө. Та хамгаалалтын асуудлаа засах хэрэгтэй';
+$strInsertAsNewRow = 'Шинэ мөр оруулаад';
+$strInsert = 'Оруулах';
+$strInternalRelations = 'Дотоод хамаарал';
+$strInUse = 'хэрэглэгдэж байна';
+$strInvalidColumnCount = 'Баганы тоо тэгээс их байна.';
+$strInvalidFieldAddCount = 'Та багадаа нэг талбар нэм.';
+$strInvalidFieldCount = 'Хүснэгт нь багадаа нэг талбартай байх хэрэгтэй.';
+$strInvalidRowNumber = '%d нь мөрийн буруу дугаар байна.';
+
+$strJapanese = 'Япон';
+$strJumpToDB = '&quot;%s&quot; өгөгдлийн сан руу үсрэх.';
+$strJustDeleteDescr = '&quot;Устгагдсан&quot; хэрэглэгчид үргэлжлүүлэн сервэр лүү хандахын тулд онцгой эрхийг дахин дуудах хүртэл хүлээнэ.';
+$strJustDelete = 'Онцгой эрхийн хүснэгтээс хэрэглэгчид устгах.';
+
+$strKeepPass = 'Нууц үгийг солихгүй';
+$strKeyname = 'Түлхүүрийн нэр';
+$strKill = 'Алах';
+$strKorean = 'Солонгос';
+
+$strLandscape = 'Ландшафт';
+$strLatchedPages = 'Latched хуудсууд';
+$strLatexCaption = 'Хүснэгтийн гарчиг';
+$strLatexContent = '__TABLE__ хүснэгтийн агуулга';
+$strLatexContinuedCaption = 'Үргэлжилсэн хүснэгтийн гарчиг';
+$strLatexContinued = '(үргэлжилнэ)';
+$strLatexIncludeCaption = 'Хүснэгтийн гарчиг холбогдсон';
+$strLatexLabel = 'Label key';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = '__TABLE__ хүснэгтийн бүтэц';
+$strLatvian = 'Латви';
+$strLengthSet = 'Урт/Утгууд*';
+$strLimitNumRows = 'Хуудас дахь мөрийн тоо';
+$strLinesTerminatedBy = 'Шугамыг төгсгөгч';
+$strLinkNotFound = 'Холбоос олдсонгүй';
+$strLinksTo = 'Холбоос';
+$strLithuanian = 'Латви';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Бичвэрфайлын байрлал';
+$strLoginInformation = 'Нэвтрэх мэдээлэл';
+$strLogin = 'Нэвтрэх';
+$strLogout = 'Гарах';
+$strLogPassword = 'Нууц үг:';
+$strLogServer = 'Сервэр';
+$strLogUsername = 'Нэвтрэгч:';
+$strLongOperation = 'Энэ үйлдэл удах янзтай. Юутай ч үргэлжлүүлэх үү?';
+
+$strMaximumSize = 'ХИ хэмжээ: %s%s';
+$strMbExtensionMissing = 'mbstring PHP extension олдсонгүй ба та multibyte charset ашиглаж байна. mbstring extension үгүйгээр phpMyAdmin нь тэмдэгт мөрийг зөв хувааж чадахгүй буюу буруу үр дүн гарч магадгүй.';
+$strMbOverloadWarning = 'Таны PHP тохируулгад mbstring.func_overload нээлттэй байна. Энэ сонголт phpMyAdmin -д бүрэн боломжгүй бөгөөд зарим өгөгдөл алдагдаж болзошгүй!';
+$strMIME_available_mime = 'Идэвхтэй MIME-төрлүүд';
+$strMIME_available_transform = 'Идэвхтэй өөрчлөлт';
+$strMIME_description = 'Тайлбар';
+$strMIME_MIMEtype = 'MIME-төрөл';
+$strMIME_nodescription = 'Энэ өөрчлөлтөд Тайлбаргүй нь идэвхтэй.<br />%s-ын зохиогчийг асууна уу.';
+$strMIME_transformation_note = 'Боломжтой өөрчлөлийн сонголтуудын жагсаалт ба тэдгээр MIME-төрлийн өөрчлөлүүдийн тулд, %sөөрчлөлийн тайлбар%s -д дарах';
+$strMIME_transformation_options_note = 'Өөрчлөлийн сонголтыг оруулах утгын тогтнол нь: \'a\', 100, b,\'c\'...<br />Хэрэв та буруу ташуу зургаас эсвэл дан хашилт тавихыг хүсвэл буруу ташуу зураасыг өмнө нь тавина уу. (Ж: \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Өөрчлөлийн сонголтууд';
+$strMIME_transformation = 'Хөтчийн өөрчлөл';
+$strMIMETypesForTable = 'Хүснэгтийн MIME-төрлүүд';
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';
+$strModifications = 'Өөрчлөлт хадгалагдав';
+$strModifyIndexTopic = 'Өөрчлөх индекс';
+$strModify = 'Өөрчлөх';
+$strMoveTableOK = 'Хүснэгт %s нь %s руу зөөгдөв.';
+$strMoveTableSameNames = 'Адил нэр байсан тул хүснэгтийг зөөсөнгүй!';
+$strMoveTable = 'Хүснэгтийг зөөх (өгөгдлийн сан<b>.</b>хүснэгт):';
+$strMultilingual = 'олонхэлийн';
+$strMyISAMDataPointerSizeDesc = 'Анхдагч заагчийн хэмжээ байтаар илэрхийлэгдэх ба, CREATE TABLE -ээр MyISAM хүснэгтийг MAX_ROWS сонголт тодорхойлогдоогүй үед хэрэглэгдэнэ.';
+$strMyISAMDataPointerSize = 'Өгөгдөл заагчийн хэмжээ';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Хэрэв завсрын файл MyISAM индекс үүсгэлтэд хэрэглэгдсэн бол үүнээс их энд тодорхойлогдсон хэмжээгээр key cache хэрэглэх хэрэгтэй, key cache аргыг илүүд үзвэл.';
+$strMyISAMMaxExtraSortFileSize = 'Индекс үүсгэлт дэх завсрын файлын ХИ хэмжээ';
+$strMyISAMMaxSortFileSizeDesc = 'Завсрын MySQL файлын ХИ хэмжээ нь MyISAM индексийг да-үүсгэхэд (REPAIR TABLE, ALTER TABLE, болон LOAD DATA INFILE -ын үед) хэрэглэгдэнэ.';
+$strMyISAMMaxSortFileSize = 'Завсрын эрэмбэлэх файлын ХИ хэмжээ';
+$strMyISAMRecoverOptionsDesc = 'Горим нь эвдэрсэн MyISAM хүснэгтийг автоматаар засна, серверийн эхлэлийн --myisam-recover сонголтоор.';
+$strMyISAMRecoverOptions = 'Авто сэргээх горим';
+$strMyISAMRepairThreadsDesc = 'Хэрэв энэ утга нь 1 -ээс их байвал, эрэмбэлэх процессоор Засах үед MyISAM хүснэгтийн индексүүд нь зэрэгцээгээр (индекс бүрт өөрийн процесс) үүсгэгдсэн.';
+$strMyISAMRepairThreads = 'Thread засах';
+$strMyISAMSortBufferSizeDesc = 'REPAIR TABLE -ийн үед MyISAM индексийг эрэмбэлэх эсвэл CREATE INDEX болон ALTER TABLE -ээр индекс үүсгэх үед буффер хуваарилагдсан.';
+$strMyISAMSortBufferSize = 'Буфферийн хэмжээг эрэмбэлэх';
+$strMySQLCharset = 'MySQL-кодлол';
+$strMySQLConnectionCollation = 'MySQL холболтын кодлол';
+$strMySQLSaid = 'MySQL хэлэх нь: ';
+$strMySQLShowProcess = 'Процесууд харах';
+
+$strName = 'Нэр';
+$strNext = 'Цааш';
+$strNoActivity = '%s секунд ба түүнээс их идэвхгүй байжээ, дахин нэвтэрнэ үү';
+$strNoDatabasesSelected = 'ӨС сонгогдоогүй.';
+$strNoDatabases = 'ӨС байхгүй';
+$strNoDescription = 'тайлбаргүй';
+$strNoDetailsForEngine = 'Энд уг агуулах хөдөлгүүрийн дэлгэрэнгүй төлвийн мэдээлэл алга.';
+$strNoDropDatabases = '"ӨС устгах" нь хаалттай.';
+$strNoExplain = 'SQL тайлбарлахыг орхих';
+$strNoFrames = 'phpMyAdmin нь ямар ч хөтөч дээр <b>фрейм</b> гаргах чадвартай.';
+$strNoIndexPartsDefined = 'Тодорхойлогдсон индексийн хэсэггүй!';
+$strNoIndex = 'Индекс тодорхойлогдоогүй!';
+$strNoModification = 'Солигдохгүй';
+$strNone = 'Үгүй';
+$strNoOptions = 'Энэ тогтнол сонголтгүй';
+$strNoPassword = 'Нууц үггүй';
+$strNoPermission = 'Вэб-сервэр файл %s-г хадгалахад зөвшөөрөлгүй байна.';
+$strNoPhp = 'PHP-кодгүй';
+$strNoPrivileges = 'Онцгой эрхгүй';
+$strNoRights = 'Танд хангалттай эрх байхгүй!';
+$strNoRowsSelected = 'Сонгогдсон мөргүй';
+$strNoSpace = 'Файл %s-г хадгалах зай хүрэлцэхгүй байна.';
+$strNoTablesFound = 'ӨС-д хүснэгт олдсонгүй.';
+$strNoThemeSupport = 'Арьс боломжгүй, өөрийн тохиргоогоо шалга ба/эсвэл %s-т арьс байгаа эсэхийг хар.';
+$strNotNumber = 'Энэ тоо биш!';
+$strNotOK = 'Бэлэн биш';
+$strNotSet = '<b>%s</b> хүснэгт олдсонгүй эсвэл %s-д сонгогдоогүй';
+$strNoUsersFound = 'Хэрэглэгч олдсонгүй.';
+$strNoValidateSQL = 'SQL шалгалтыг алгасах';
+$strNo = 'Үгүй';
+$strNull = 'Хоосон';
+$strNumSearchResultsInTable = '%s олдоц(ууд) хүснэгт <i>%s</i>-д';
+$strNumSearchResultsTotal = '<b>Нийт:</b> <i>%s</i> олдоц(ууд)';
+$strNumTables = 'Хүснэгт';
+
+$strOK = 'Бэлэн';
+$strOperations = 'Үйлдлүүд';
+$strOperator = 'Оператор';
+$strOptimizeTable = 'Хүснэгтийг зүгшрүүлэх';
+$strOr = 'Эсвэл';
+$strOverhead = 'Толгой дээр';
+$strOverwriteExisting = 'Файл(ууд)-г дарж бичих';
+
+$strPageNumber = 'Хуудасны дугаар:';
+$strPagesToBeFlushed = 'Хуудсууд зайлагдсан';
+$strPaperSize = 'Цаасны хэмжээ';
+$strPartialText = 'Бичвэрийн зарим хэсэг';
+$strPasswordChanged = '%s-ы нууц үг солигдлоо.';
+$strPasswordEmpty = 'Нууц үг хоосон байна!';
+$strPasswordHashing = 'Нууц үг хувиргах';
+$strPasswordNotSame = 'Нууц їгнїїд ялгаатай байна!';
+$strPassword = 'Нууц үг';
+$strPdfDbSchema = '"%s" өгөгдлийн сангийн схем - Хуудас %s';
+$strPdfInvalidTblName = 'Хүснэгт "%s" байхгүй байна!';
+$strPdfNoTables = 'Хүснэгт алга';
+$strPerHour = 'цагт';
+$strPerMinute = 'минутад';
+$strPerSecond = 'секундэд';
+$strPersian = 'Перс';
+$strPhoneBook = 'Утасны лавлах';
+$strPhp = 'PHP-код үүсгэх';
+$strPHPVersion = 'PHP хувилбар';
+$strPmaDocumentation = 'phpMyAdmin баримтжилт';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> -ыг тохиргооны файлд тохируулах хэрэгтэй!';
+$strPolish = 'Польш';
+$strPortrait = 'Дүрслэл';
+$strPos1 = 'Эхлэл';
+$strPrevious = 'Өмнөх';
+$strPrimaryKeyHasBeenDropped = 'Үндсэн түлхүүр устгагдлаа';
+$strPrimaryKeyName = 'Үндсэн түлхүүрийн нэр нь PRIMARY байх ёстой!';
+$strPrimaryKeyWarning = '("PRIMARY" нь үндсэн түлхүүрийн нэр ба <b>зөвхөн</b> байх <b>хэрэгтэй</b>!)';
+$strPrimary = 'Үндсэн';
+$strPrintViewFull = 'Хэвлэхээр харах (бүх бичвэртэй нь)';
+$strPrintView = 'Хэвлэхээр харах';
+$strPrint = 'Хэвлэх';
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.';
+$strPrivDescAlterRoutine = 'Хадгалагдсан заншил устгах, өөрчлөхийг зөвшөөрөх.';
+$strPrivDescAlter = 'Байгаа хүснэгтийн бүтцийг өөрчлөхийг зөвшөөрөх.';
+$strPrivDescCreateDb = 'Шинэ өгөгдлийн сан, хүснэгт үүсгэхийг зөвшөөрөх.';
+$strPrivDescCreateRoutine = 'Хадгалагдсан заншил үүсгэхийг зөвшөөрөх.';
+$strPrivDescCreateTbl = 'Шинэ хүснэгт үүсгэхийг зөвшөөрөх.';
+$strPrivDescCreateTmpTable = 'Завсрын хүснэгт үүсгэхийг зөвшөөрөх.';
+$strPrivDescCreateUser = 'Хэрэглэгчийн эрхийг үүсгэх, устгах, да.нэрлэхийг зөвшөөрөх.';
+$strPrivDescCreateView = 'Шинэ харц үүсгэхийг зөвшөөрөх.';
+$strPrivDescDelete = 'Өгөгдөл устгахыг зөвшөөрөх.';
+$strPrivDescDropDb = 'ӨС, хүснэгт устгахыг зөвшөөрөх ';
+$strPrivDescDropTbl = 'Хүснэгт устгахыг зөвшөөрөх.';
+$strPrivDescExecute5 = 'Хадгалагдсан заншлыг ажиллуулахыг зөвшөөрөх.';
+$strPrivDescExecute = 'Агуулагдсан (stored) процедурыг ажиллуулахыг зөвшөөрөх; MySQL-ын энэ хувилбарт үйлчлэлгүй.';
+$strPrivDescFile = 'Өгөгдөл оруулах, файл руу гаргахыг зөвшөөрөх.';
+$strPrivDescGrant = 'Хэрэглэгч болон онцгой эрхийг онцгой эрхийн хүснэгтийг дуудалгүй нэмэхийг зөвшөөрөх.';
+$strPrivDescIndex = 'Индекс үүсгэх, устгахыг зөвшөөрөх.';
+$strPrivDescInsert = 'Өгөгдөл нэмэх, солихыг зөвшөөрөх.';
+$strPrivDescLockTables = 'Тухайн процесст хүснэгт түгжихийг зөвшөөрөх.';
+$strPrivDescMaxConnections = 'Цаг тутамд шинээр холбогдох хэрэглэгчийн тоог хязгаарлах.';
+$strPrivDescMaxQuestions = 'Цаг тутамд хэрэглэгчийн асуулт (query) илгээхийг хязгаарлах.';
+$strPrivDescMaxUpdates = 'Цаг тутамд хэрэглэгчийн хүснэгт эсвэл өгөгдлийн сан солих командыг хязгаарлах.';
+$strPrivDescReferences = 'MySQL-ын энэ хувилбарт үйлчлэлгүй.';
+$strPrivDescReload = 'Сервэрийн тохиргоог дахин дуудахыг зөвшөөрөх.';
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.';
+$strPrivDescReplSlave = 'Needed for the replication slaves.';
+$strPrivDescSelect = 'Өгөгдөл уншихыг зөвшөөрөх.';
+$strPrivDescShowDb = 'Өгөгдлийн сангийн бүрэн жагсаалт руу хандахыг өгөх.';
+$strPrivDescShowView = 'SHOW CREATE VIEW асуултыг хийхийг зөвшөөрөх.';
+$strPrivDescShutdown = 'Сервэрийг унтраахыг зөвшөөрөх.';
+$strPrivDescSuper = 'Хэрэв ХИ холболтын тоо гүйцсэн ч холбогдохыг зөвшөөрөх. Бусад хэрэглэгчийн процессыг үгүй хийх эсвэл глобал утгыг өөрчлөх шаардлагатай болно.';
+$strPrivDescUpdate = 'Өгөгдөл солихыг зөвшөөрөх.';
+$strPrivDescUsage = 'Онцгой эрхгүй.';
+$strPrivilegesReloaded = 'Онцгой эрхүүд дахин дуудагдлаа.';
+$strPrivileges = 'Онцгой эрхүүд';
+$strProcesses = 'Процессууд';
+$strProcesslist = 'Процессын жагсаалт';
+$strPutColNames = 'Эхний мөрт талбаруудын нэрийг тавих';
+
+$strQBEDel = 'Устгах';
+$strQBEIns = 'Оруулах';
+$strQBE = 'Асуулт (Query)';
+$strQueryFrame = 'Асуултын цонх';
+$strQueryOnDb = 'ӨС <b>%s</b> дахь SQL-асуулт:';
+$strQuerySQLHistory = 'SQL түүх';
+$strQueryStatistics = '<b>Асуултын статистик</b>: Эхэлснээс хойш, %s асуулт сервэр рүү илгээгдсэн.';
+$strQueryTime = 'Асуулт нь %01.4f сек авлаа';
+$strQueryType = 'Асуултын төрөл';
+$strQueryWindowLock = 'Цонхны гаднаас энэ асуултыг давхарлахгүй байх';
+
+$strReadRequests = 'Унших гуйлт';
+$strReceived = 'Ирсэн';
+$strRecords = 'Бичлэгүүд';
+$strReferentialIntegrity = 'Үнэн зөв өгөгдлийг шалгах:';
+$strRefresh = 'Да.дуудах';
+$strRelationalSchema = 'Хамааралтай схем';
+$strRelationNotWorking = 'Холбогдсон хүснэгтүүдтэй ажиллах нэмэлт онцлогууд идэвхгүй болжээ. %sЭнд%s дарж шалгах.';
+$strRelationsForTable = 'Хүснэгтийн хамаарал';
+$strRelations = 'Хамаарал';
+$strRelationView = 'Хамаарал харах';
+$strReloadingThePrivileges = 'Онцгой эрхийг дахин дуудаж байна';
+$strRemoveSelectedUsers = 'Сонгогдсон хэрэглэгчдийг хасах';
+$strRenameDatabaseOK = 'ӨС %s-н нэр нь %s-ээр солигджээ';
+$strRenameTableOK = 'Хүснэгт %s-ын нэр %s болж өөрчлөгдлөө';
+$strRenameTable = 'Хүснэгтийг да.нэрлэх';
+$strRepairTable = 'Хүснэгт засах';
+$strReplaceNULLBy = 'NULL-ыг орлуулах нь';
+$strReplaceTable = 'Хүснэгтийн өгөгдлийг орлуулах файл';
+$strReset = 'Да.эхлэх';
+$strResourceLimits = 'Нөөцийн хязгаар';
+$strReType = 'Дахин бич';
+$strRevokeAndDeleteDescr = 'Онцгой эрхийг да.дуудтал хэрэглэгчид онцгой эрх USAGE -тэй байх болно.';
+$strRevokeAndDelete = 'Устгахын төгсгөлд нь хэрэглэгчдээс идэвхтэй бүх онцгой эрхийг хүчингүй болгох.';
+$strRevokeMessage = 'Онцгой эрх %s -ыг хүчингүй болголоо';
+$strRevoke = 'Хүчингүй';
+$strRomanian = 'Румын';
+$strRowLength = 'Мөрийн урт';
+$strRowsFrom = 'мөрийн эхлэх буй дугаар';
+$strRowSize = ' Мөрийн хэмжээ ';
+$strRowsModeFlippedHorizontal = 'хөндлөн (эргүүлэгдсэн толгойнууд)';
+$strRowsModeHorizontal = 'хөндлөн';
+$strRowsModeOptions = 'Төлөв %s-д ба %s нїдний дараа толгойнуудыг давтах';
+$strRowsModeVertical = 'босоо';
+$strRowsStatistic = 'Мөрийн статистик';
+$strRows = 'Мөрүүд';
+$strRunning = '%s дээр';
+$strRunQuery = 'Асуултыг илгээх';
+$strRunSQLQuery = 'Өгөгдлийн сан %s дээрх SQL асуултыг ажиллуулах';
+$strRussian = 'Орос';
+
+$strSaveOnServer = 'Сервэр дээрх хадгалах хавтас %s';
+$strSave = 'Хадгалах';
+$strScaleFactorSmall = 'Хэт жижиг схемийг нэг хуудсанд дүүргэх';
+$strSearchFormTitle = 'Өгөгдлийн санд хайх';
+$strSearchInTables = 'Хүснэгт(үүд) дотор:';
+$strSearchNeedle = 'Үг(үүд) ба утга(ууд) -ыг хайх (түлхүүр "%"):';
+$strSearchOption1 = 'Үгүүдийн ядаж нэгээр';
+$strSearchOption2 = 'бүх үг';
+$strSearchOption3 = 'яг цав өгүүлбэр';
+$strSearchOption4 = 'as regular expression';
+$strSearchResultsFor = 'Хайлтын үр дүн "<i>%s</i>" %s:';
+$strSearchType = 'Хайх:';
+$strSearch = 'Хайх';
+$strSecretRequired = 'Тохиргооны файл одоо нууцлал шаардаж байна (blowfish_secret).';
+$strSelectADb = 'Өгөгдлийн сан сонго';
+$strSelectAll = 'Бүгдийг сонгох';
+$strSelectBinaryLog = 'Харах хоёртын log сонго';
+$strSelectFields = 'Талбар сонгох (ядаж нэгийг):';
+$strSelectNumRows = 'асуултад';
+$strSelectTables = 'Хүснэгтүүд сонго';
+$strSend = 'Илгээх';
+$strSent = 'Илгээгдэв';
+$strServerChoice = 'Сервэр сонго';
+$strServerNotResponding = 'Сервэрээс хариу алга';
+$strServerStatusUptime = 'Энэ MySQL сервэр %s-д ажиллаж байна. Эхэлсэн нь %s.';
+$strServerStatus = 'Ажиллах үеийн мэдээлэл';
+$strServerTabVariables = 'Утгууд';
+$strServerTrafficNotes = '<b>Гуйвуулга</b>: Эдгээр хүснэгтүүд нь MySQL сервэр эхэлсэн үеэс сүлжээний гуйвуулгыг харуулна.';
+$strServerVars = 'Сервэрийн утгууд болон тохиргоонууд';
+$strServerVersion = 'Сервэрийн хувилбар';
+$strServer = 'Сервэр';
+$strSessionValue = 'Сессон утга';
+$strSetEnumVal = 'Хэрэв талбарын төрөл нь "enum" ба "set", бол оруулах өгөгдлийн тогтнол нь: \'a\',\'b\',\'c\'...<br />Хэрэв буруу ташуу зураас ("\"") эсвэл дан хашилт ("\'") тавих шаардлагатай бол буруу ташуу зураасыг давхар хэрэглэ. (Ж: \'\\\\xyz\' эсвэл \'a\\\'b\').';
+$strShowAll = 'Бүгдийг харах';
+$strShowColor = 'Өнгө харах';
+$strShowDatadictAs = 'Өгөгдлийн толийн тогтнол';
+$strShowFullQueries = 'Бүтэн асуулт харуулах';
+$strShowGrid = 'Тор харуулах';
+$strShowingRecords = 'Мөрүүдийг харуулж байна ';
+$strShowPHPInfo = 'PHP -ийн мэдээлэл харах';
+$strShowTableDimension = 'Хүснэгтийн харьцаа харуулах';
+$strShowTables = 'Хүснэгтүүдийг харуулах';
+$strShowThisQuery = ' Уг асуултыг энд дахин харуулах ';
+$strShow = 'Харах';
+$strSimplifiedChinese = 'Энгийн хятад';
+$strSingly = '(дан)';
+$strSize = 'Хэмжээ';
+$strSlovak = 'Словак';
+$strSlovenian = 'Словени';
+$strSocketProblem = '(эсвэл дотоод MySQL сервэрийн socket нь зөв тохируулагдаагүй)';
+$strSortByKey = 'Түлхүүрээр эрэмбэлэх';
+$strSort = 'Эрэмбэлэх';
+$strSpaceUsage = 'Ашиглалтын зай';
+$strSpanish = 'Испани';
+$strSplitWordsWithSpace = 'Їгнїїд хоосон зайгаар (" ") хуваагдана.';
+$strSQLExportType = 'Гаргах төрөл';
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:';
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem';
+$strSQLQuery = 'SQL-асуулт';
+$strSQLResult = 'SQL-үр дүн';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Буруу тодорхойлогч';
+$strSQPBugUnclosedQuote = 'Хаагдаагүй хашилт';
+$strSQPBugUnknownPunctuation = 'Тэмдэгт мөрийн үл мэдэх цэг тэмдэглэл';
+$strStatCheckTime = 'Сүүлийн шалгалт';
+$strStatCreateTime = 'Үүсгэлт';
+$strStatement = 'Баримтжуулал';
+$strStatUpdateTime = 'Сүүлийн шинэчлэл';
+$strStatus = 'Статус';
+$strStorageEngines = 'Агуулах хөдөлгүүрүүд';
+$strStorageEngine = 'Агуулах хөдөлгүүр';
+$strStrucCSV = 'CSV өгөгдөл';
+$strStrucData = 'Бүтэц ба өгөгдөл';
+$strStrucExcelCSV = 'CSV өгөгдлийг MS Excel-ээр';
+$strStrucNativeExcel = 'Өгөгдөл MS Excel-ээс';
+$strStrucOnly = 'Зөвхөн бүтэц';
+$strStructPropose = 'Хүснэгтийн бүтцийг таниулах';
+$strStructure = 'Бүтэц';
+$strSubmit = 'Илгээ';
+$strSuccess = 'Таны SQL-асуулт амжилттай ажиллав';
+$strSum = 'Нийт';
+$strSwedish = 'Швед';
+$strSwitchToDatabase = 'Хуулагдсан ӨС руу шилжих';
+$strSwitchToTable = 'Хуулагдсан хүснэгт рүү шилжих';
+
+$strTableComments = 'Хүснэгтийн тайлбар';
+$strTableEmpty = 'Хүснэгтийн нэр хоосон байна!';
+$strTableHasBeenDropped = 'Хүснэгт %s нь устгагдлаа';
+$strTableHasBeenEmptied = 'Хүснэгт %s нь хоослогдлоо';
+$strTableHasBeenFlushed = 'Хүснэгт %s нь flushed боллоо';
+$strTableMaintenance = 'Хүснэгтийн ашиглалт';
+$strTableOfContents = 'Агуулгын хүснэгт';
+$strTableOptions = 'Хүснэгтийн сонголтууд';
+$strTables = '%s хүснэгт(үүд)';
+$strTableStructure = 'Хүснэгтийн бүтэц';
+$strTable = 'Хүснэгт ';
+$strTakeIt = 'авах';
+$strTblPrivileges = ' Хүснэгтийн тусгай онцгой эрхүүд';
+$strTextAreaLength = ' Яагаад гэвэл урт нь их,<br /> энэ талбар засагдахгүй ';
+$strThai = 'Таи';
+$strTheme = 'Арьс / Загвар';
+$strThisHost = 'Энэ хост';
+$strThreadSuccessfullyKilled = 'Thread %s нь устгагдав.';
+$strTime = 'Цаг';
+$strToggleScratchboard = 'toggle scratchboard';
+$strTotalUC = 'Нийт';
+$strTotal = 'Нийт';
+$strTraditionalChinese = 'Уламжлалт хятд';
+$strTraditionalSpanish = 'Уламжлалт Испани';
+$strTraffic = 'Гуйвуулга';
+$strTransformation_application_octetstream__download = 'Талбарын өгөгдлийг хоёртын горимоор татах холбоос харуулж байна. Эхний сонголт: Хоёртын файлын нэр. Хоёр дахь сонголт: Талбарын нэр. Хэрэв хоёр дахь сонголтод утга өгвөл эхний сонголтыг хоосон орхих хэрэгтэй';
+$strTransformation_application_octetstream__hex = 'Өгөгдлийн дүрслэлийг арван зургаатаар харуулах. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Дарагдхуйц эрхийхумс-ыг харуулж байна. сонголт: өргөн,өндөр цэгээр (эх хэмжээ нь хадгалагдана)';
+$strTransformation_image_jpeg__link = 'Уг зургийн холбоосыг харуулж байна (direct blob download, i.e.).';
+$strTransformation_image_png__inline = 'See image/jpeg: inline';
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';
+$strTransformation_text_plain__formatted = 'Талбарын жинхэнэ тогтнолыг хамгаалах. Өөр дуусна.';
+$strTransformation_text_plain__imagelink = 'Зураг болон холбоосыг харуулж байна, талбар нь файлнэр агуулна; эхний сонголт - энэ нь өмнө нь тавигдах "http://domain.com/", хоёр дахь сонголт - өргөн цэгээр, гурав дахь - өндөр.';
+$strTransformation_text_plain__link = 'Холбоос харуулж байна, талбар нь файлнэр агуулна; эхний сонголт - энэ нь өмнө нь тавигдах "http://domain.com/", хоёр дахь - холбоосын гарчгийг авна.';
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...).';
+$strTruncateQueries = 'Truncate Shown Queries';
+$strTurkish = 'Турк';
+$strType = 'Төрөл';
+
+$strUkrainian = 'Украин';
+$strUncheckAll = 'Бүх чагтыг болих';
+$strUnicode = 'Юникод';
+$strUnique = 'Үл давтагдах';
+$strUnknown = 'үлмэдэх';
+$strUnselectAll = 'Бүх сонгосныг болих';
+$strUpdatePrivMessage = 'Онцгой эрх шинэчлэгдлээ';
+$strUpdateProfileMessage = 'Профиль шинэчлэгдлээ.';
+$strUpdateQuery = 'Update асуулт';
+$strUpdComTab = 'Column_comments Хүснэгтийн хэрхэн шинэчлэх талаар баримтжууллаас харна уу';
+$strUpgrade = 'Та хувилбар %s -г %s -ээр сайжруулах хэрэгтэй эсвэл дараа.';
+$strUsage = 'Ашиглалт';
+$strUseBackquotes = 'Хүснэгт ба талбарын нэрийг буруу хашилтаар хаах';
+$strUseHostTable = 'Хост хүснэгт хэрэглэх';
+$strUserAlreadyExists = 'Хэрэглэгч %s оршин байна!';
+$strUserEmpty = 'Хэрэглэгчийн нэр хоосон!';
+$strUserName = 'Хэрэглэгчийн нэр';
+$strUserNotFound = 'Сонгогдсон хэрэглэгч онцгой эрхийн хүснэгтэд алга байна.';
+$strUserOverview = 'User overview';
+$strUsersDeleted = 'Сонгогдсон хэрэглэгч устгагдлаа.';
+$strUsersHavingAccessToDb = 'Хэрэглэгчдийн хандсан нь &quot;%s&quot;';
+$strUser = 'Хэрэглэгч';
+$strUseTabKey = 'TAB товчийг хэрэглэн утгаас утгын хооронд шилжинэ, эсвэл CTRL+сумууд-аар зөөгдөнө';
+$strUseTables = 'Хүснэгт хэрэглэх';
+$strUseTextField = 'Бичвэр талбар хэрэглэх';
+$strUseThisValue = 'Уг утгыг хэрэглэх';
+
+$strValidateSQL = 'SQL-ийг батлах';
+$strValidatorError = 'SQL баталгаажуулагч эхлэгдсэнгүй. Хэрэв PHP өргөтгөл суугдсан бол шалгана уу, %sбаримтжуулалд%s тодорхойлогдсон.';
+$strValue = 'Утга';
+$strVar = 'Хувьсагч';
+$strVersionInformation = 'Хувилбарын мэдээлэл';
+$strViewDumpDatabases = 'ӨС-ийн схем харах';
+$strViewDumpDB = 'ӨС-ийн схем харах';
+$strViewDump = 'Хүснэгтийн схем харах';
+$strViewHasBeenDropped = 'Харц %s нь устгагдсан';
+$strView = 'Харц';
+
+$strWebServerUploadDirectoryError = 'Таны сонгосон хавтас "upload" хийгдэхгүй байна';
+$strWebServerUploadDirectory = 'web-сервэр түлхэх хавтас';
+$strWelcome = '%s-д тавтай морилно уу';
+$strWestEuropean = 'Баруун-Европ';
+$strWildcard = 'загвар';
+$strWindowNotFound = 'Зорилтот хөтчийн цонх шинэчлэгдсэнгүй. Магадгүй та эх цонхыг хаасан эсвэл таны хөтөч хамгаалалтын тохиргооны улмаас шинэчлэлтийг хориглогдсон';
+$strWithChecked = 'Сонгогдсонтой:';
+$strWriteRequests = 'Бичих гуйлт';
+$strWrongUser = 'Нэвтрэгч/нууц үг буруу. Хандах боломжгүй';
+
+$strXML = 'XML';
+
+$strYes = 'Тийм';
+
+$strZeroRemovesTheLimit = 'Тэмдэглэл: Тохируулгын сонголтыг 0 (тэг) болговол хязгаарыг хасна.';
+$strZip = 'zip-ээр шахах';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+
+$strHandler = 'Handler'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+
+$strPartialImport = 'Partial import'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/norwegian-utf-8.inc.php b/lang/norwegian-utf-8.inc.php
new file mode 100644
index 0000000000..bdb3529cdf
--- /dev/null
+++ b/lang/norwegian-utf-8.inc.php
@@ -0,0 +1,1445 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by Sven-Erik Andersen <sven DOT erik DOT andersen AT gmail DOT com>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$day_of_week = array('Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d. %B, %Y klokka %H:%M %p';
+$timespanfmt = '%s dager, %s timer, %s minutter og %s sekunder';
+
+$strAbortedClients = 'Avbrutt';
+$strAccessDenied = 'Ingen tilgang';
+$strAccessDeniedCreateConfig = 'En mulig årsak for dette er at du ikke opprettet konfigurasjonsfila. Du bør kanskje bruke %1$ssetup script%2$s for å opprette en.';
+$strAccessDeniedExplanation = 'phpMyAdmin forsøkte å koble til MySQL-serveren, og serveren avviste tilkoblingen. Du må kontrollere vert (host), brukernavn (username) og passord (password) i config.inc.php og sjekke at de tilsvarer den informasjonen du fikk fra MySQL-server administratoren.';
+$strAction = 'Handling';
+$strActions = 'Handlinger';
+$strAddAutoIncrement = 'Legg til AUTO_INCREMENT verdi';
+$strAddClause = 'Legg til %s';
+$strAddConstraints = 'Legg til begrensninger';
+$strAddDeleteColumn = 'Legg til/Slett kolonne';
+$strAddDeleteRow = 'Legg til/Slett kriterierad';
+$strAddFields = 'Legg til %s felt(er)';
+$strAddHeaderComment = 'Legg til egen kommentar i hodet (\\n lager linjeskift)';
+$strAddIntoComments = 'Legg til i kommentarer';
+$strAddNewField = 'Legg til felt';
+$strAddPrivilegesOnDb = 'Legg til privilegier til følgende database';
+$strAddPrivilegesOnTbl = 'Legg til privilegier til følgende tabell';
+$strAddSearchConditions = 'Legg til søkekriterier (innhold i "where"-setningen):';
+$strAddToIndex = 'Legg til indeks&nbsp;%s&nbsp;kolonne(r)';
+$strAddUser = 'Legg til en ny bruker';
+$strAddUserMessage = 'Du har lagt til en ny bruker.';
+$strAdministration = 'Administrasjon';
+$strAfter = 'Etter %s';
+$strAfterInsertBack = 'Returner';
+$strAfterInsertNewInsert = 'Sett inn en ny post';
+$strAfterInsertNext = 'Rediger neste rad';
+$strAfterInsertSame = 'Tilbake til denne siden';
+$strAll = 'Alle';
+$strAllowInterrupt = 'Tillat avbrudd av importering i tilfelle skriptet oppdager at det er rett før det når tidsavbrudd. Dette kan være en god måte å importere store filer på, men det kan knekke transaksjoner.';
+$strAllTableSameWidth = 'vis alle tabeller med samme bredde?';
+$strAlterOrderBy = 'Endre tabellrekkefølge ved';
+$strAnalyze = 'Analyser';
+$strAnalyzeTable = 'Analyser tabell';
+$strAnd = 'og';
+$strAndThen = 'og så';
+$strAngularLinks = 'Vinklede linker';
+$strAnIndex = 'En indeks har blitt lagt til %s';
+$strAny = 'Alle';
+$strAnyHost = 'Alle verter';
+$strAnyUser = 'Alle brukere';
+$strApproximateCount = 'Kan være unøyaktig. Se FAQ 3.11';
+$strAPrimaryKey = 'En primærnøkkel har blitt lagt til %s';
+$strArabic = 'arabisk';
+$strArmenian = 'armensk';
+$strAscending = 'Stigende';
+$strAsDefined = 'Som definert:';
+$strAtBeginningOfTable = 'Ved begynnelsen av tabellen';
+$strAtEndOfTable = 'Ved slutten av tabellen';
+$strAttr = 'Attributter';
+$strAutomaticLayout = 'Automatisk disposisjon';
+
+$strBack = 'Tilbake';
+$strBaltic = 'baltisk';
+$strBeginCut = 'START KUTT';
+$strBeginRaw = 'START UFORMATERT';
+$strBinary = ' Binær ';
+$strBinaryDoNotEdit = ' Binær - må ikke redigeres ';
+$strBinaryLog = 'Binærlogg';
+$strBinLogEventType = 'Hendelsestype';
+$strBinLogInfo = 'Informasjon';
+$strBinLogName = 'Loggnavn';
+$strBinLogOriginalPosition = 'Original posisjon';
+$strBinLogPosition = 'Posisjon';
+$strBinLogServerId = 'Tjener ID';
+$strBookmarkAllUsers = 'La alle brukere ha adgang til dette bokmerket';
+$strBookmarkCreated = 'Bokmerke %s opprettet';
+$strBookmarkDeleted = 'Bokmerket har blitt slettet.';
+$strBookmarkLabel = 'Navn';
+$strBookmarkQuery = 'Lagret SQL-spørring';
+$strBookmarkReplace = 'Erstatt eksisterende bokmerke med samme navn';
+$strBookmarkThis = 'Lagre denne SQL-spørringen';
+$strBookmarkView = 'Bare se';
+$strBrowse = 'Se på';
+$strBrowseDistinctValues = 'Se gjennom distinkte verdier';
+$strBrowseForeignValues = 'Se de eksterne verdiene';
+$strBufferPool = 'Mellomlager';
+$strBufferPoolActivity = 'Mellomlageraktivitet';
+$strBufferPoolUsage = 'Mellomlagerbruk';
+$strBufferReadMisses = 'Lesebommer';
+$strBufferReadMissesInPercent = 'Lesebommer i %';
+$strBufferWriteWaits = 'Skriveforsinkelser';
+$strBufferWriteWaitsInPercent = 'Skriveforsinkelser i %';
+$strBulgarian = 'bulgarsk';
+$strBusyPages = 'Opptatte sider';
+$strBzip = 'Komprimert (bz2)';
+
+$strCalendar = 'Kalender';
+$strCancel = 'Avbryt';
+$strCanNotLoadExportPlugins = 'Kunne ikke laste eksporttillegg, kontroller din innstallasjon!';
+$strCanNotLoadImportPlugins = 'Kan ikke starte importeringsprogramtilleggene, kontroller din installasjon!';
+$strCannotLogin = 'Kan ikke logge inn til MySQL tjeneren';
+$strCantLoad = 'Kan ikke starte %s tillegget,<br />vennligst kontroller PHP-konfigurasjonen';
+$strCantLoadRecodeIconv = 'Kan ikke laste iconv- eller recode-modulen som trengs for tegnsett konvertering, konfigurer php slik at disse kan lastes eller slå av tegnsettkonvertering i phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Kan ikke endre indeks til PRIMARY!';
+$strCantUseRecodeIconv = 'Kan ikke bruke hverken iconv, libiconv eller recode_string funksjonene selv om modulene sier de er lastet. Sjekk din php-konfigurasjon.';
+$strCardinality = 'Kardinalitet';
+$strCaseInsensitive = 'uavhengig av bokstavstørrelse';
+$strCaseSensitive = 'avhengig av bokstavstørrelse';
+$strCentralEuropean = 'sentraleuropeisk';
+$strChange = 'Endre';
+$strChangeCopyMode = 'Opprett ny bruker med de samme privilegier og ...';
+$strChangeCopyModeCopy = '... behold den gamle.';
+$strChangeCopyModeDeleteAndReload = ' ... slett den gamle fra brukertabellene og deretter oppfrisk privilegiene.';
+$strChangeCopyModeJustDelete = ' ... slett den gamle fra brukertabellene.';
+$strChangeCopyModeRevoke = ' ... tilbakekall alle aktive privilegier fra den gamle og slett den etterpå.';
+$strChangeCopyUser = 'Endre innloggingsinformasjon / kopiere bruker';
+$strChangeDisplay = 'Velg felt for visning';
+$strChangePassword = 'Endre passord';
+$strCharset = 'Tegnsett';
+$strCharsetOfFile = 'Filens tegnsett:';
+$strCharsets = 'Tegnsett';
+$strCharsetsAndCollations = 'Tegnsett og sammenligninger';
+$strCheck = 'Kontroller';
+$strCheckAll = 'Merk alle';
+$strCheckOverhead = 'Kontroller overheng';
+$strCheckPrivs = 'Kontroller privilegier';
+$strCheckPrivsLong = 'Kontroller privilegier for databasen &quot;%s&quot;.';
+$strCheckTable = 'Kontroller tabell';
+$strChoosePage = 'Vennligst velg en side for redigering';
+$strColComFeat = 'Vis kolonnekommentarer';
+$strCollation = 'Sammenligning';
+$strColumnNames = 'Kolonnenavn';
+$strColumnPrivileges = 'Kolonne-spesifikke privilegier';
+$strCommand = 'Kommando';
+$strComment = 'Kommentar';
+$strComments = 'Kommentarer';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 kompatibel';
+$strCompleteInserts = 'Komplette innlegg';
+$strCompression = 'Kompresjon';
+$strCompressionWillBeDetected = 'Komprimering av importerte filer vil bli automatisk oppdaget fra: %s';
+$strConfigDefaultFileError = 'Kunne ikke laste standard konfigurasjonsfil fra: "%1$s"';
+$strConfigFileError = 'phpMyAdmin kunne ikke lese din konfigurasjonsfil!<br />Dette kan skje hvis PHP finner en syntaksfeil eller ikke kan finne filen.<br />Vennligst kall opp konfigurasjonsfilen direkte via linken under og les PHP feilmeldingen(e) som du vil få. I de fleste tilfeller så mangler det et anførselstegn eller et semikolon et sted.<br />Hvis du får en blank side så er alt ok.';
+$strConfigureTableCoord = 'Vennligst konfigurer koordinatene for tabell %s';
+$strConnectionError = 'Kan ikke koble til: ugyldige innstillinger.';
+$strConnections = 'tilkoblinger';
+$strConstraintsForDumped = 'Begrensninger for dumpede tabeller';
+$strConstraintsForTable = 'Begrensninger for tabell';
+$strControluserFailed = 'Tilkoblingen for kontrollbrukeren som definert i din konfigurasjon feilet.';
+$strCookiesRequired = 'Cookies må være slått på forbi dette punkt.';
+$strCopy = 'Kopier';
+$strCopyDatabaseOK = 'Databasen %s har blitt kopiert til %s';
+$strCopyTable = 'Kopier tabell til (database<b>.</b>tabell):';
+$strCopyTableOK = 'Tabellen %s er kopiert til %s.';
+$strCopyTableSameNames = 'Kan ikke kopiere tabellen til samme navn!';
+$strCouldNotKill = 'phpMyAdmin kunne ikke avslutte tråd %s. Den er sansynligvis alt avsluttet.';
+$strCreate = 'Opprett';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE før kopiering';
+$strCreateIndex = 'Lag en indeks på&nbsp;%s&nbsp;kolonner';
+$strCreateIndexTopic = 'Lag en ny indeks';
+$strCreateNewDatabase = 'Opprett ny database';
+$strCreateNewTable = 'Opprett ny tabell i database %s';
+$strCreatePage = 'Lag en ny side';
+$strCreatePdfFeat = 'Lag PDF-dokumenter';
+$strCreateRelation = 'Opprett relasjon';
+$strCreateTable = 'Opprett tabell';
+$strCreateUserDatabase = 'Brukerdatabase';
+$strCreateUserDatabaseName = 'Opprett database med samme navn og gi alle rettigheter';
+$strCreateUserDatabaseNone = 'Ingen';
+$strCreateUserDatabaseWildcard = 'Gi alle rettigheter på jokertegnavn (username\_%)';
+$strCreationDates = 'Opprettelse/Oppdaterings/Kontrolldato';
+$strCriteria = 'Kriterier';
+$strCroatian = 'kroatisk';
+$strCSV = 'CSV';
+$strCustomColor = 'Egendefinert farge';
+$strCyrillic = 'kyrillisk';
+$strCzech = 'tjekkisk';
+$strCzechSlovak = 'Tjekkoslovakisk';
+
+$strDanish = 'dansk';
+$strData = 'Data';
+$strDatabase = 'Database';
+$strDatabaseEmpty = 'Databasen er uten navn!';
+$strDatabaseExportOptions = 'Databaseeksportinnstillinger';
+$strDatabaseHasBeenCreated = 'Databasen %1$s har blitt opprettet.';
+$strDatabaseHasBeenDropped = 'Databasen %s har blitt slettet';
+$strDatabases = 'databaser';
+$strDatabasesDropped = '%s databasene har blitt slettet.';
+$strDatabasesStats = 'Statistikk for databaser';
+$strDatabasesStatsDisable = 'Slå av statistikk';
+$strDatabasesStatsEnable = 'Slå på statistikk';
+$strDatabasesStatsHeavyTraffic = 'OBS: Når du slår på databasestatistikk så kan det medføre stor traffik mellom webtjeneren og MySQL-tjeneren.';
+$strDataDict = 'Dataordbok';
+$strDataOnly = 'Bare data';
+$strDataPages = 'Sider som inneholder data';
+$strDBComment = 'Database kommentar: ';
+$strDBCopy = 'Kopier databasen til';
+$strDbIsEmpty = 'Databasen ser ut til å være tom!';
+$strDbPrivileges = 'Databasespesifikke privilegier';
+$strDBRename = 'Endre databasens navn til';
+$strDbSpecific = 'databasespesifikk';
+$strDefault = 'Standard';
+$strDefaultEngine = '%s er standard lagringsmotor for denne MySQL tjeneren.';
+$strDefaultValueHelp = 'Sett inn en enkelt verdi for standard verdier uten skråstrek, anførselstegn eller annen &quot;escaping&quot; med dette formatet: a';
+$strDefragment = 'Defragmenter tabell';
+$strDelayedInserts = 'Bruk forsinkede innsettinger';
+$strDelete = 'Slett';
+$strDeleteAndFlush = 'Slett brukeren og oppfrisk privilegiene etterpå.';
+$strDeleteAndFlushDescr = 'Dette er den beste måten, men oppfrisking av privilegiene kan ta litt tid.';
+$strDeleted = 'Raden er slettet';
+$strDeleteNoUsersSelected = 'Ingen brukere merket for sletting!';
+$strDeleteRelation = 'Slett relasjon';
+$strDeleting = 'Sletter %s';
+$strDelimiter = 'Skilletegn';
+$strDelOld = 'Den nåværende siden har referanser til tabeller som ikke lenger eksisterer. Vil du slette disse referansene?';
+$strDescending = 'Synkende';
+$strDescription = 'Beskrivelse';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'Visningsfeltet er markert i rosa. For å slå på/av et felt som visningsfelt, klikk på "Velg felt for visning" ikonet, klikk så på det aktuelle feltnavnet.';
+$strDetails = 'Detaljer...';
+$strDictionary = 'ordbok';
+$strDirectLinks = 'Direkte linker';
+$strDirtyPages = 'Endrede sider';
+$strDisabled = 'Avslått';
+$strDisableForeignChecks = 'Slå av kontroll av fremmednøkler';
+$strDisplayFeat = 'Vis egenskaper';
+$strDisplayOrder = 'Visningsrekkefølge:';
+$strDisplayPDF = 'Vis PDF-skjema';
+$strDoAQuery = 'Utfør en "spørring ved eksempel" (jokertegn: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentasjon';
+$strDoYouReally = 'Vil du virkelig ';
+$strDrop = 'Slett';
+$strDropDatabaseStrongWarning = 'Du er i ferd med å SLETTE en komplett database!';
+$strDropUsersDb = 'Slett databasene som har det samme navnet som brukerne.';
+$strDumpingData = 'Dataark for tabell';
+$strDumpSaved = 'Dump har blitt lagret til fila %s.';
+$strDumpXRows = 'Dumpe %s rader fra rad %s.';
+$strDynamic = 'dynamisk';
+
+$strEdit = 'Endre';
+$strEditPDFPages = 'Rediger PDF-sider';
+$strEditPrivileges = 'Rediger privilegier';
+$strEffective = 'Effektiv';
+$strEmpty = 'Tøm';
+$strEmptyResultSet = 'MySQL returnerte ett tomt resultat (m.a.o. ingen rader).';
+$strEnabled = 'Påslått';
+$strEncloseInTransaction = 'Inneslutt eksport i en transaksjon';
+$strEnd = 'Slutt';
+$strEndCut = 'STOPP KUTT';
+$strEndRaw = 'STOPP UFORMATERT';
+$strEngineAvailable = '%s er tilgjengelig på denne MySQL theneren.';
+$strEngineDisabled = '%s har blitt dekativert for denne MySQL tjeneren.';
+$strEngines = 'Motorer';
+$strEngineUnsupported = 'Denne MySQL tjeneren har ikke støtte for %s lagringsmotoren.';
+$strEnglish = 'engelsk';
+$strEnglishPrivileges = 'OBS: MySQL privilegiumnavn er på engelsk';
+$strError = 'Feil';
+$strErrorInZipFile = 'Feil i ZIP arkivet:';
+$strErrorRelationAdded = 'Feil: Relasjon ikke opprettet.';
+$strErrorRelationExists = 'Feil: relasjoner eksisterer allerede.';
+$strErrorRenamingTable = 'Feil oppstond med endring av tabellnavn fra %1$s til %2$s';
+$strErrorSaveTable = 'Feil oppstod under lagring av Designerkoordinater.';
+$strEscapeWildcards = 'Jokertegnene _ og % må beskyttes med en \ for å bruke dem direkte';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'estisk';
+$strEvent = 'Hendelse';
+$strEvents = 'Hendelser';
+$strExcelEdition = 'Excel-versjon';
+$strExecuteBookmarked = 'Utfør lagret spørring';
+$strExplain = 'Forklar SQL';
+$strExport = 'Eksporter';
+$strExportImportToScale = 'Eksporter/Importer til skala';
+$strExportMustBeFile = 'Valgte eksporteringstype krever lagring til ei fil!';
+$strExtendedInserts = 'Utvidete innlegg';
+$strExtra = 'Ekstra';
+
+$strFailedAttempts = 'Feilede forsøk';
+$strField = 'Felt';
+$strFieldHasBeenDropped = 'Feltet %s har blitt slettet';
+$strFieldInsertFromFileTempDirNotExists = 'Feil oppstod under forsøk på flytting av den opplastede fila, se FAQ 1.11';
+$strFields = 'Felter';
+$strFieldsEnclosedBy = 'Felter omsluttet av';
+$strFieldsEscapedBy = 'Felter beskyttet med';
+$strFieldsTerminatedBy = 'Felter avsluttet med';
+$strFileAlreadyExists = 'Fila %s eksisterer alt på serveren, endre navnet eller merk av for overskriving av fil.';
+$strFileCouldNotBeRead = 'Fila kunne ikke leses';
+$strFileNameTemplate = 'Filnavnsmal';
+$strFileNameTemplateDescription = 'Denne verdien blir tolket slik som %1$sstrftime%2$s, så du kan bruke tidformateringsstrenger. I tillegg vil følgende transformasjoner skje: %3$s. All annen tekst beholdes som den er.';
+$strFileNameTemplateDescriptionDatabase = 'databasenavn';
+$strFileNameTemplateDescriptionServer = 'tjenernavn';
+$strFileNameTemplateDescriptionTable = 'tabellnavn';
+$strFileNameTemplateRemember = 'husk malen';
+$strFiles = 'Filer';
+$strFileToImport = 'Fil for importering';
+$strFixed = 'statisk';
+$strFlushPrivilegesNote = 'Merk: phpMyAdmin får brukerprivilegiene direkte fra MySQL privilegietabeller. Innholdet i disse tabellene kan være forskjellig fra de privilegiene tjeneren bruker hvis det er utført manuelle endringer på den. I så fall bør du %soppfriske privilegiene%s før du fortsetter.';
+$strFlushQueryCache = 'Flush query cache';
+$strFlushTable = 'Oppfrisk tabellen ("FLUSH")';
+$strFlushTables = 'Flush (close) all tables';
+$strFontSize = 'Fontstørrelse';
+$strForeignKeyError = 'Feil oppstod under forsøk på opprettelse av fremmednøkkel på %1$s (kontroller datatyper)';
+$strForeignKeyRelationAdded = 'FOREIGN KEY relasjon lagt til';
+$strFormat = 'Format';
+$strFormEmpty = 'Manglende verdi i skjemaet!';
+$strFreePages = 'Ledige sider';
+$strFullText = 'Hele strenger';
+$strFunction = 'Funksjon';
+$strFunctions = 'Funsjoner';
+
+$strGenBy = 'Generert av';
+$strGeneralRelationFeat = 'Generelle relasjonsegenskaper';
+$strGenerate = 'Generer';
+$strGeneratePassword = 'Generer passord';
+$strGenTime = 'Generert den';
+$strGeorgian = 'Georgisk';
+$strGerman = 'tysk';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Globale privilegier';
+$strGlobalValue = 'Global verdi';
+$strGo = 'Utfør';
+$strGrantOption = 'Rettighet';
+$strGreek = 'gresk';
+$strGzip = 'Komprimert (gz)';
+
+$strHandler = 'Handler';
+$strHasBeenAltered = 'er endret.';
+$strHaveToShow = 'Du må velge minst en kolonne for visning';
+$strHebrew = 'hebraisk';
+$strHelp = 'Hjelp';
+$strHexForBLOB = 'Bruk heksadesimal for BLOB';
+$strHide = 'Skjul';
+$strHideShowAll = 'Skjul/Vis alle';
+$strHideShowNoRelation = 'Skjul/Vis tabeller uten relasjoner';
+$strHome = 'Hjem';
+$strHomepageOfficial = 'Offisiell phpMyAdmin-hjemmeside';
+$strHost = 'Vert';
+$strHostEmpty = 'Vertsnavnet er tomt!';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'ungarsk';
+
+$strIcelandic = 'Islandsk';
+$strId = 'ID';
+$strIdxFulltext = 'Fulltekst';
+$strIEUnsupported = 'Internet Explorer støtter ikke denne funksjonen.';
+$strIgnore = 'Ignorer';
+$strIgnoreDuplicates = 'Ignorer dupliserte rader';
+$strIgnoreInserts = 'Bruk ignore inserts';
+$strImport = 'Importer';
+$strImportExportCoords = 'Importer/Eksporter koordinater for PDF skjema';
+$strImportFiles = 'Importer filer';
+$strImportFormat = 'Formatet til importert fil';
+$strImportSuccessfullyFinished = 'Importen er fullført, %d spørringer utført.';
+$strIndex = 'Indeks';
+$strIndexes = 'Indekser';
+$strIndexesSeemEqual = 'Indeksene %1$s og %2$s ser ut til å være like og en av dem burde kunne fjernes.';
+$strIndexHasBeenDropped = 'Indeksen %s har blitt slettet';
+$strIndexName = 'Indeksnavn&nbsp;:';
+$strIndexType = 'Indekstype&nbsp;:';
+$strIndexWarningTable = 'Problemer med indeksene i tabellen `%s`';
+$strInnoDBAutoextendIncrement = 'Autoforstørrende økning';
+$strInnoDBAutoextendIncrementDesc = 'Økningen som brukes for å forstørre et autoforstørrende tabellager når den blir full.';
+$strInnoDBBufferPoolSize = 'Mellomlagerstørrelse';
+$strInnoDBBufferPoolSizeDesc = 'størrelsen på datalageret InnoDB bruker for å mellomlagre data og indekser for sine tabeller.';
+$strInnoDBDataFilePath = 'Datafiler';
+$strInnoDBDataHomeDir = 'Datalagringsmappe';
+$strInnoDBDataHomeDirDesc = 'Felles del av filsti for alle InnoDB datafiler.';
+$strInnoDBPages = 'sider';
+$strInnodbStat = 'InnoDB status';
+$strInsecureMySQL = 'Din konfigurasjonsfil inneholder innstillinger (root uten passord) som korrensponderer med MySQLs standard priviligerte brukerkonto. Din MySQL-tjener kjører med denne standardinnstillingen, er åpen for misbruk, og du burde fikse dette sikkerhetshullet snarest.';
+$strInsert = 'Sett inn';
+$strInsertAsNewRow = 'Sett inn som ny rad';
+$strInsertedRowId = 'Insatt rad id: %1$d';
+$strInterface = 'Grensesnitt';
+$strInternalAndForeign = 'En intern relasjon er ikke nødvendig når en tilsvarende FOREIGN KEY relasjon eksisterer.';
+$strInternalRelationAdded = 'Intern relasjon lagt til';
+$strInternalRelations = 'Interne relasjoner';
+$strInUse = 'i bruk';
+$strInvalidAuthMethod = 'Ugyldig autentiseringsmetode satt opp i konfigureringen:';
+$strInvalidColumn = 'Ugyldig kollonne (%s) angitt!';
+$strInvalidColumnCount = 'Antall kolonner må være større enn null.';
+$strInvalidCSVFieldCount = 'Ugyldig antall felt i CSV importen i linje %d.';
+$strInvalidCSVFormat = 'Ugyldig format i CSV importen i linje %d.';
+$strInvalidCSVParameter = 'Ugyldig parameter for CSV import: %s';
+$strInvalidDatabase = 'Ugylding database';
+$strInvalidFieldAddCount = 'Du må sette inn minst ett felt.';
+$strInvalidFieldCount = 'Tabellen må ha minst ett felt.';
+$strInvalidLDIImport = 'Dette tillegget støtter ikke komprimerte importeringer!';
+$strInvalidRowNumber = '%d er ikke et gyldig radnummer.';
+$strInvalidServerHostname = 'Ugyldig tjenernavn for tjener %1$s. Kontroller din konfigurasjon.';
+$strInvalidServerIndex = 'Ugyldig tjenerindeks: "%s"';
+$strInvalidTableName = 'Ugylding tabellnavn';
+
+$strJapanese = 'japansk';
+$strJoins = 'Sammenføyninger';
+$strJumpToDB = 'Hopp til databasen &quot;%s&quot;.';
+$strJustDelete = 'Bare slett brukerne fra privilegium tabellene.';
+$strJustDeleteDescr = 'Den &quot;slettede&quot; brukeren vil fortsatt kunne bruke tjeneren som normalt inntill privilegiene er oppfrisket.';
+
+$strKeepPass = 'Ikke endre passordet';
+$strKeyCache = 'Nøkkelmellomlager';
+$strKeyname = 'Nøkkel';
+$strKill = 'Avslutt';
+$strKnownExternalBug = 'Funksjonaliteten %s er påvirket av en kjent feil, se %s';
+$strKorean = 'koreansk';
+
+$strLandscape = 'Landskapsformat';
+$strLanguage = 'Språk';
+$strLanguageUnknown = 'Ukjent språk: %1$s.';
+$strLatchedPages = 'Tilknyttede sider';
+$strLaTeX = 'LaTeX';
+$strLatexCaption = 'Tabelloverskrift';
+$strLatexContent = 'Innhold i tabell __TABLE__';
+$strLatexContinued = '(fortsettet)';
+$strLatexContinuedCaption = 'Fortsettet tabelloverskrift';
+$strLatexIncludeCaption = 'Inkluder tabelloverskrift';
+$strLatexLabel = 'Merkelappnøkkel';
+$strLatexStructure = 'Struktur i tabell __TABLE__';
+$strLatvian = 'Latvisk';
+$strLDI = 'CSV med LOAD DATA';
+$strLDILocal = 'Bruk LOCAL nøkkelord';
+$strLengthSet = 'Lengde/Sett*';
+$strLimitNumRows = 'Antall poster per side';
+$strLinesTerminatedBy = 'Linker avsluttet med';
+$strLinkNotFound = 'Link ikke funnet';
+$strLinksTo = 'Linker til';
+$strLithuanian = 'lithauisk';
+$strLocalhost = 'Lokal';
+$strLocationTextfile = 'Plassering av filen';
+$strLogin = 'Logg inn';
+$strLoginInformation = 'Innlogingsinformasjon';
+$strLogout = 'Logg ut';
+$strLogPassword = 'Passord:';
+$strLogServer = 'Tjener';
+$strLogUsername = 'Brukernavn:';
+$strLongOperation = 'Denne operasjonen kan ta lang tid. Ønsker du å fortsette?';
+
+$strMaxConnects = 'maks. samtidige tilkoblinger';
+$strMaximalQueryLength = 'Maksimum lengde av opprettet spørring';
+$strMaximumSize = 'Maksimum størrelse: %s%s';
+$strMbExtensionMissing = 'PHP tillegget mbstring ble ikke funnet og det ser ut til at du bruker et flerbyte tegnsett. Uten mbstring-tillegget så kan ikke phpMyAdmin splitte strenger korrekt og dette kan medføre uønskede resultater.';
+$strMbOverloadWarning = 'Du har slått på mbstring.func_overload i din PHP konfigurasjon. Denne opsjonen er ikke kompatibel med phpMyAdmin og kan medføre skader på data!';
+$strMIME_available_mime = 'Tilgjengelige MIME-typer';
+$strMIME_available_transform = 'Tilgjengelige transformationer';
+$strMIME_description = 'Beskrivelse';
+$strMIME_MIMEtype = 'MIME-type';
+$strMIME_nodescription = 'Ingen beskrivelse er tilgjengelig for denne transformasjonen.<br />Spør forfatteren hva %s gjør.';
+$strMIME_transformation = 'Nettvisertransformasjon';
+$strMIME_transformation_note = 'For en liste over tilgjengelige transformasjonsvalg, klikk på %stransformasjonsbeskrivelser%s';
+$strMIME_transformation_options = 'Transformasjonsvalg';
+$strMIME_transformation_options_note = 'Skriv inn verdiene for transformasjon med dette formatet: \'a\', 100, b,\'c\'...<br />Hvis du trenger å bruke en skråstrek ("\") eller en enkel apostrof ("\'") blant disse verdiene så sett en skråstrek foran (eks. \'\\\\xyz\' eller \'a\\\'b\').';
+$strMIME_without = 'MIME-typer skrevet i kursiv har ikke en separat transformasjonsfunksjon';
+$strMIMETypesForTable = 'MIME TYPER FOR TABELLEN';
+$strModifications = 'Endringene er lagret';
+$strModify = 'Endre';
+$strModifyIndexTopic = 'Endre en indeks';
+$strMoveMenu = 'Flytt meny';
+$strMoveTable = 'Flytt tabell til (database<b>.</b>tabell):';
+$strMoveTableOK = 'Tabellen %s har blitt flyttet til %s.';
+$strMoveTableSameNames = 'Kan ikke flytte tabellen til samme navn!';
+$strMultilingual = 'flerspråkelig';
+$strMyISAMDataPointerSize = 'Datapekerstørrelse';
+$strMyISAMDataPointerSizeDesc = 'Standard pekerstørrelse i bytes, som brukes av CREATE TABLE for MyISAM tabeller når ingen MAX_ROWS innstillinger er spesifisert.';
+$strMyISAMMaxExtraSortFileSize = 'Maksimum størrelse for midlertidige filer under indeksopprettelse';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Hvis den midlertidige fila brukt for hurtig MyISAM indeksopprettelse ville bli større enn å bruke nøkkelmellomlager med størrelsen spesifisert her, så bruk nøkkellagermetoden.';
+$strMyISAMMaxSortFileSize = 'Maksimum størrelse for midlertidige sorteringsfiler';
+$strMyISAMMaxSortFileSizeDesc = 'Maksimum størrelse for den midlertidige fila MySQL har lov til å bruke når den gjennoppretter en MyISAM indeks (med spørringene REPAIR TABLE, ALTER TABLE, eller LOAD DATA INFILE).';
+$strMyISAMRecoverOptions = 'Automatisk gjennopprettignsmodus';
+$strMyISAMRecoverOptionsDesc = 'Modusen for automatisk gjennoppretting av MyISAM tabeller som har kræsjet, konfigurert via --myisam-recover tjeneroppstartsinnstillingen.';
+$strMyISAMRepairThreads = 'Reparer tråder';
+$strMyISAMRepairThreadsDesc = 'Hvis denne verdien er større enn 1 så blir MyISAM tabellindekser opprettet parallelt (hver indeks i sin egen tråd) under REPAIR av sorteringsprosessen.';
+$strMyISAMSortBufferSize = 'Sorteringsbufferstørrelse';
+$strMyISAMSortBufferSizeDesc = 'Bufferet som brukes ved sortering av MyISAM indekser under en REPAIR TABLE eller når indekser blir opprettet med CREATE INDEX eller ALTER TABLE.';
+$strMySQLCharset = 'MySQL-tegnsett';
+$strMysqlClientVersion = 'MySQL klientversjon';
+$strMySQLConnectionCollation = 'Kollasjon av MySQL-oppkobling';
+$strMysqlLibDiffersServerVersion = 'Din PHP MySQL bibliotekfilversjon %s er forskjellig fra din MySQL tjenerversjon %s. Dette kan forårsake uforutsett oppførsel.';
+$strMySQLSaid = 'MySQL sa: ';
+$strMySQLShowProcess = 'Vis prosesser';
+
+$strName = 'Navn';
+$strNext = 'Neste';
+$strNo = 'Nei';
+$strNoActivity = 'Ingen aktivitet på %s sekunder eller mer, du må logge inn på nytt';
+$strNoDatabases = 'Ingen databaser';
+$strNoDatabasesSelected = 'Ingen databaser er valgt.';
+$strNoDataReceived = 'Ingen data ble mottatt for importering. Enten ble ingen filnavn gitt, eller filstørrelsen oversteg maksimum størrelse tillatt i din PHP konfigurasjon. Se FAQ 1.16';
+$strNoDescription = 'ingen beskrivelse';
+$strNoDetailsForEngine = 'Det er ikke noen detaljert statusinformasjon for denne lagringsmotoren.';
+$strNoDropDatabases = '"DROP DATABASE"-uttrykk er avslått.';
+$strNoExplain = 'Ikke forklar SQL';
+$strNoFilesFoundInZip = 'Ingen filer funnet inne i ZIP arkivet!';
+$strNoFrames = 'phpMyAdmin er mer brukervennlig med en <b>rammekapabel</b> nettleser.';
+$strNoIndex = 'Ingen indeks definert!';
+$strNoIndexPartsDefined = 'Ingen indeksdeler definert!';
+$strNoModification = 'Ingen endring';
+$strNone = 'Ingen';
+$strNoOptions = 'Dette formatet har ingen valg';
+$strNoPassword = 'Intet passord';
+$strNoPermission = 'Webserveren har ikke tillatelse til å lagre fila %s.';
+$strNoPhp = 'uten PHP kode';
+$strNoPrivileges = 'Ingen privilegier';
+$strNoRights = 'Du har ikke nok rettigheter til å være her nå!';
+$strNoRowsSelected = 'Ingen rader valgt';
+$strNoSpace = 'Ikke nok plass til å lagre fila %s.';
+$strNoTablesFound = 'Ingen tabeller i databasen.';
+$strNoThemeSupport = 'Ikke støtte for maler, kontroller konfigureringen og/eller dine maler i katalogen %s.';
+$strNotNumber = 'Dette er ikke ett tall!';
+$strNotOK = 'ikke OK';
+$strNotSet = '<b>%s</b> tabellen ble ikke funnet eller ikke konfigurert i %s';
+$strNoUsersFound = 'Ingen bruker(e) funnet.';
+$strNoValidateSQL = 'Ikke teste SQL';
+$strNull = 'Null';
+$strNumberOfFields = 'Antall felter';
+$strNumberOfTables = 'Antall tabeller';
+$strNumSearchResultsInTable = '%s treff i tabell <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Totalt:</b> <i>%s</i> treff';
+$strNumTables = 'Tabeller';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Open Document regneark';
+$strOpenDocumentText = 'Open Document tekst';
+$strOpenNewWindow = 'Åpne nytt phpMyAdmin vindu';
+$strOperations = 'Operasjoner';
+$strOperator = 'Operator';
+$strOptimize = 'Optimaliser';
+$strOptimizeTable = 'Optimiser tabell';
+$strOptions = 'Innstillinger';
+$strOr = 'Eller';
+$strOverhead = 'Overheng';
+$strOverwriteExisting = 'Overskriv eksisterende fil(-er)';
+
+$strPacked = 'Pakket';
+$strPageNumber = 'Sidenummer:';
+$strPagesToBeFlushed = 'Sider som skal tømmes';
+$strPaperSize = 'Papirstørrelse';
+$strPartialImport = 'Delvis importering';
+$strPartialText = 'Delvis tekst';
+$strPartition = 'Partisjon %s';
+$strPartitionDefinition = 'Partisjonsdefinisjon';
+$strPartitioned = 'partisjonert';
+$strPartitionMaintenance = 'Partisjonsvedlikehold';
+$strPassword = 'Passord';
+$strPasswordChanged = 'Passordet til %s er endret.';
+$strPasswordEmpty = 'Passordet er blankt!';
+$strPasswordHashing = 'Passordnøkling';
+$strPasswordNotSame = 'Passordene er ikke like!';
+$strPBXTCheckpointFrequency = 'Kontrollpunktfrekvens';
+$strPBXTCheckpointFrequencyDesc = 'Mengden data skrevet til transaksjonsloggen før en punktsjekk blir utført. Standard verdi er 24MB.';
+$strPBXTDataFileGrowSize = 'Datafil vekststørrelse';
+$strPBXTDataFileGrowSizeDesc = 'Vekststørrelsen til "handle data" filene (.xtd).';
+$strPBXTDataLogThreshold = 'Dataloggterskel';
+$strPBXTDataLogThresholdDesc = 'Maksimum størrelse på en dataloggfil. Standard verdi er 64MB. PBXT can opprette maksimum 32000 datalogger, som er brukt av alle tabeller. Så verdien av denne variabelen kan økes for å øke den totale mengden data som kan lagres i databasen.';
+$strPBXTGarbageThreshold = 'Søppelterskel';
+$strPBXTGarbageThresholdDesc = 'Prosentandelen søppel på en dataloggfil før den komprimeres. Dette er en verdi mellom 1 og 99. Standard er 50.';
+$strPBXTIndexCacheSize = 'Indeksmellomlagerstørrelse';
+$strPBXTIndexCacheSizeDesc = 'Dette er mengden minne tilordnet indeksmellomlageret. Standard verdi er 32MB. Minnet tilordnet her brukes kun for mellomlagring av indekssider.';
+$strPBXTLogBufferSize = 'Loggbufferstørrelse';
+$strPBXTLogBufferSizeDesc = 'Størrelsen på mellomlageret som brukes ved skriving av en datalogg. Standard verdi er 256MB. Databasemotoren tillordner ett buffer per tråd, men bare hvis tråden er påkrevd å skrive en datalogg.';
+$strPBXTLogCacheSize = 'Loggmellomlagerstørrelse';
+$strPBXTLogCacheSizeDesc = 'Mengden minne tilordnet transaksjonsloggmellomlageret brukt til å mellomlagre transakjsonsloggdata. Standard verdi er 16MB.';
+$strPBXTLogFileCount = 'Antall loggfiler';
+$strPBXTLogFileCountDesc = 'Dette er det antall transaksjonsloggfiler (pbxt/system/xlog*.xt) som systemet will opprettholde. Hvis antall logger overstiger denne verdien vil gamle logger bli slettet, ellers så vil de bli gitt nytt navn og gitt det neste høyeste nummeret.';
+$strPBXTLogFileThreshold = 'Loggfilterskel';
+$strPBXTLogFileThresholdDesc = 'Størrelsen til en transaksjonslogg før rollover, og en ny logg blir opprettet. Standard verdi er 16MB.';
+$strPBXTRecordCacheSize = 'Radmellomlagerstørrelse';
+$strPBXTRecordCacheSizeDesc = 'Mengden minne tilordnet radmellomlageret brukt til å mellomlagre tabelldata. Standard verdi er 32MB. Dette minnet blir brukt til å mellomlagre endringer til "handle data" (.xtd) og radpeker (.xtr) filer.';
+$strPBXTRowFileGrowSize = 'Radfil vekststørrelse';
+$strPBXTRowFileGrowSizeDesc = 'Vekststørrelsen til radpekerfilene (.xtr).';
+$strPBXTTransactionBufferSize = 'Transaksjonsbufferstørrelse';
+$strPBXTTransactionBufferSizeDesc = 'Størrelsen til det globale transaksjonsloggmellomlageret (databasemotoren tilordner 2 mellomlager med denne størrelsen). Standard verdi er 1MB.';
+$strPDF = 'PDF';
+$strPdfDbSchema = 'Skjema for "%s"-databasen - Side %s';
+$strPdfInvalidTblName = 'Tabellen "%s" eksisterer ikke!';
+$strPdfNoTables = 'Ingen tabeller';
+$strPDFReportExplanation = '(Oppretter en rapport som inneholder dataene fra en enkel tabell)';
+$strPDFReportTitle = 'Rapporttittel';
+$strPerHour = 'per time';
+$strPerMinute = 'per minutt';
+$strPerSecond = 'per sekund';
+$strPersian = 'Persisk';
+$strPhoneBook = 'telefonkatalog';
+$strPhp = 'Lag PHP kode';
+$strPHPExtension = 'PHP tillegg';
+$strPHPVersion = 'PHP-Versjon';
+$strPleaseSelectPrimaryOrUniqueKey = 'Velg primærnøkkelen eller en unik nøkkel';
+$strPmaDocumentation = 'phpMyAdmin-Dokumentasjon';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> variabelen MÅ være innstilt i din konfigurasjonsfil!';
+$strPolish = 'Polsk';
+$strPortrait = 'Portrettformat';
+$strPos1 = 'Start';
+$strPrevious = 'Forrige';
+$strPrimary = 'Primær';
+$strPrimaryKeyHasBeenDropped = 'Primærnøkkelen har blitt slettet';
+$strPrimaryKeyName = 'Navnet til primærnøkkelen må være... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>må</b> være navnet til og <b>bare til</b> en primærnøkkel!)';
+$strPrint = 'Skriv ut';
+$strPrintView = 'Utskriftsvennlig forhåndsvisning';
+$strPrintViewFull = 'Forhåndsvisning (med all tekst)';
+$strPrivDescAllPrivileges = 'Inkluder alle privilegier unntatt GRANT.';
+$strPrivDescAlter = 'Tillater endring av struktur på eksisterende tabeller.';
+$strPrivDescAlterRoutine = 'Tillater endring og sletting av lagrede rutiner.';
+$strPrivDescCreateDb = 'Tillater oppretting av nye databaser og tabeller.';
+$strPrivDescCreateRoutine = 'Tillater oppreting av lagrede rutiner.';
+$strPrivDescCreateTbl = 'Tillater oppretting av nye tabeller.';
+$strPrivDescCreateTmpTable = 'Tillater oppretting av midlertidige tabeller.';
+$strPrivDescCreateUser = 'Tillater oppretting, sletting og navneendring av brukerkontoer.';
+$strPrivDescCreateView = 'Tillater oppretting av nye visninger.';
+$strPrivDescDelete = 'Tillater sletting av data.';
+$strPrivDescDropDb = 'Tillater sletting av databaser og tabeller.';
+$strPrivDescDropTbl = 'Tillater sletting av tabeller.';
+$strPrivDescEvent = 'Tillater å sette opp hendelser for hendelseskalenderen';
+$strPrivDescExecute = 'Tillater kjøring av lagrede prosedyrer; har ingen effekt på denne versjonen av MySQL.';
+$strPrivDescExecute5 = 'Tillater utføring av lagrede rutiner.';
+$strPrivDescFile = 'Tillater import og eksport av data til og fra filer.';
+$strPrivDescGrant = 'Tillater å legge til brukere og privilegier uten å oppfriske privilegietabellene.';
+$strPrivDescIndex = 'Tillater oppretting og sletting av indekser.';
+$strPrivDescInsert = 'Tillater å legge til og erstatte data.';
+$strPrivDescLockTables = 'Tillater låsing av tabeller for den kjørende tråden.';
+$strPrivDescMaxConnections = 'Begrenser antall nye tilkoblinger brukeren kan åpne per time.';
+$strPrivDescMaxQuestions = 'Begrenser antall spørringer brukeren kan sende til tjeneren per time.';
+$strPrivDescMaxUpdates = 'Begrenser antall kommandoer som kan endre tabeller eller databaser brukeren kan utføre per time.';
+$strPrivDescMaxUserConnections = 'Begrens antall samtidige tilkoblinger brukeren kan ha.';
+$strPrivDescProcess = 'Tillater visning av prosessene til alle brukere';
+$strPrivDescReferences = 'har ingen effekt i denne versjonen av MySQL.';
+$strPrivDescReload = 'Tillater oppfrisking av tjenerinnstillinger og oppfrisking av mellomlager.';
+$strPrivDescReplClient = 'Gir tillatelse til brukeren til å spørre hvor replikasjonsslaver eller -tjenere er.';
+$strPrivDescReplSlave = 'Trenges av replikasjonsslavene.';
+$strPrivDescSelect = 'Tillater lesing av data.';
+$strPrivDescShowDb = 'Gir adgang til komplett liste over databaser.';
+$strPrivDescShowView = 'Tillater utføring av SHOW CREATE VIEW spørringer.';
+$strPrivDescShutdown = 'Tillater avslutting av tjener.';
+$strPrivDescSuper = 'Tillater tilkobling, selv om maksimum tilkoblinger er nådd. Behøves for de fleste administrative operasjoner som å sette globale variabler eller avslutting av andre brukeres tråder.';
+$strPrivDescTrigger = 'Tillater opprettelse og sletting av triggere';
+$strPrivDescUpdate = 'Tillater endring av data.';
+$strPrivDescUsage = 'Ingen privilegier.';
+$strPrivileges = 'Privilegier';
+$strPrivilegesReloaded = 'Oppfriskingen av privilegiene lyktes.';
+$strProcedures = 'Prosedyrer';
+$strProcesses = 'Prosesser';
+$strProcesslist = 'Prosess liste';
+$strProfiling = 'Profilering';
+$strProtocolVersion = 'Protokollversjon';
+$strPutColNames = 'Sett inn feltnavn i første rad';
+
+$strQBE = 'Spørring ved eksempel (Query by Example)';
+$strQBEDel = 'Slett';
+$strQBEIns = 'Sett inn';
+$strQueryCache = 'Spørringsmellomlager';
+$strQueryFrame = 'Spørringsvindu';
+$strQueryOnDb = 'SQL-spørring i database <b>%s</b>:';
+$strQueryResultsOperations = 'Spørringsresultatshandlinger';
+$strQuerySQLHistory = 'SQL-historie';
+$strQueryStatistics = '<b>Spørrings statistikk</b>: Siden oppstart, har %s spørringer blitt sendt til tjeneren.';
+$strQueryTime = 'Spørring tok %01.4f sek';
+$strQueryType = 'Spørringstype';
+$strQueryWindowLock = 'Ikke overskriv denne spørringen fra andre vinduer';
+
+$strReadRequests = 'Leseforespørsler';
+$strRebuild = 'Gjenoppbygg';
+$strReceived = 'Mottatt';
+$strRecommended = 'anbefalt';
+$strRecords = 'Rader';
+$strReferentialIntegrity = 'Sjekk referanseintegritet:';
+$strRefresh = 'Oppdater';
+$strRelationalDisplayField = 'Relasjonsvisningsfelt';
+$strRelationalKey = 'Relasjonsnøkkel';
+$strRelationalSchema = 'Relasjonsskjema';
+$strRelationDeleted = 'Relasjon slettet';
+$strRelationNotWorking = 'Tilleggsfunksjonene for å kunne jobbe med koblede tabeller er deaktivert. For å finne ut hvorfor, klikk %sher%s.';
+$strRelations = 'Relasjoner';
+$strRelationsForTable = 'RELASJONER FOR TABELLEN';
+$strRelationView = 'Relasjonsvisning';
+$strReload = 'Oppdater';
+$strReloadingThePrivileges = 'Oppfrisker privilegiene';
+$strReloadPrivileges = 'Oppfrisk privilegier';
+$strRemovePartitioning = 'Fjern partisjonering';
+$strRemoveSelectedUsers = 'Fjern valgte brukere';
+$strRenameDatabaseOK = 'Databasen %s har endret navn til %s';
+$strRenameTable = 'Endre tabellens navn';
+$strRenameTableOK = 'Tabellen %s har fått nytt navn %s';
+$strRepair = 'Reparer';
+$strRepairTable = 'Reparer tabell';
+$strReplaceNULLBy = 'Erstatt NULL med';
+$strReplaceTable = 'Erstatt tabell med filen';
+$strReplication = 'Replikering';
+$strReset = 'Tøm skjema';
+$strResourceLimits = 'Ressursbegrensninger';
+$strRestartInsertion = 'Restarte innsettinga med %s rader';
+$strReType = 'Gjenta';
+$strRevoke = 'Tilbakekall';
+$strRevokeAndDelete = 'Tilbakekall alle aktive privilegier fra brukerne og slett dem etterpå.';
+$strRevokeAndDeleteDescr = 'Inntill privilegiene er oppfrisket vil brukerne fortsatt ha USAGE privilegiet.';
+$strRevokeMessage = 'Du har fjernet privilegiene til %s';
+$strRomanian = 'Rumensk';
+$strRoutineReturnType = 'Returtype';
+$strRoutines = 'Rutiner';
+$strRowLength = 'Radlengde';
+$strRows = 'Rader';
+$strRowsAffected = '%1$d rad(er) berørt.';
+$strRowsDeleted = '%1$d rad(er) slettet.';
+$strRowsFrom = 'rader fra';
+$strRowsInserted = '%1$d rad(er) innsatt.';
+$strRowSize = ' Radstørrelse ';
+$strRowsModeFlippedHorizontal = 'horisontal (roterte overskrifter)';
+$strRowsModeHorizontal = 'vannrett';
+$strRowsModeOptions = 'i %s modus og gjenta headers etter %s celler';
+$strRowsModeVertical = 'loddrett';
+$strRowsStatistic = 'Radstatistikk';
+$strRunning = 'som kjører på %s';
+$strRunQuery = 'Kjør spørring';
+$strRunSQLQuery = 'Kjør SQL spørring/spørringer mot databasen %s';
+$strRunSQLQueryOnServer = 'Kjør SQL spørring/spørringer på tjener %s';
+$strRussian = 'russisk';
+
+$strSave = 'Lagre';
+$strSaveOnServer = 'Lagre på server i %s katalogen';
+$strSavePosition = 'Lagre posisjon';
+$strScaleFactorSmall = 'Skaleringsfaktoren er for liten til å romme alt på en side';
+$strSearch = 'Søk';
+$strSearchFormTitle = 'Søk i database';
+$strSearchInField = 'I felt:';
+$strSearchInTables = 'I tabell(ene):';
+$strSearchNeedle = 'Ord eller verdi(er) å søke etter (jokertegn: "%"):';
+$strSearchOption1 = 'minst ett av ordene';
+$strSearchOption2 = 'alle ordene';
+$strSearchOption3 = 'med den nøyaktige setningen';
+$strSearchOption4 = 'som "regular expression"';
+$strSearchResultsFor = 'Søkeresultat for "<i>%s</i>" %s:';
+$strSearchType = 'Finn:';
+$strSecretRequired = 'Konfigurasjonsfila trenger nå et hemmelig passordfrase (blowfish_secret).';
+$strSelectADb = 'Vennligst velg en database';
+$strSelectAll = 'Velg alle';
+$strSelectBinaryLog = 'Velg binærlogg for visning';
+$strSelectFields = 'Velg felt (minst ett):';
+$strSelectForeignKey = 'Velg fremmednøkkel';
+$strSelectNumRows = 'i spørring';
+$strSelectReferencedKey = 'Velg referert nøkkel';
+$strSelectTables = 'Velg tabeller';
+$strSend = 'Last ned som fil';
+$strSent = 'Sendt';
+$strServer = 'Tjener';
+$strServerChoice = 'Tjenervalg';
+$strServerNotResponding = 'Tjeneren svarer ikke';
+$strServers = 'Tjenere';
+$strServerStatus = 'Kjøringsinformasjon';
+$strServerStatusDelayedInserts = 'Forsinkede innsettinger';
+$strServerStatusUptime = 'Denne MySQL tjeneren har kjørt i %s. Den startet opp den %s.';
+$strServerTabVariables = 'Variabler';
+$strServerTrafficNotes = '<b>Tjenertraffikk</b>: Disse tabellene viser statistikk over nettverkstrafikken for denne MySQL-tjeneren siden dens oppstart.';
+$strServerVars = 'Tjenervariabler og -innstillinger';
+$strServerVersion = 'Tjenerversjon';
+$strSessionStartupErrorGeneral = 'Kan ikke starte sessjonen uten feil, kontroller feilmeldinger i din PHP og/eller webtjenerloggfil og konfigurer din PHP innstallasjon korrekt.';
+$strSessionValue = 'Økts verdi';
+$strSetEnumVal = 'Hvis felttypen er "enum" eller "set", skriv inn verdien med dette formatet: \'a\',\'b\',\'c\'...<br />Hvis du skulle trenge å ha en skråstrek ("\") eller en enkel apostrof ("\'") blant disse verdiene, skriv en skråstrek foran (eks. \'\\\\xyz\' eller \'a\\\'b\').';
+$strShow = 'Vis';
+$strShowAll = 'Vis alle';
+$strShowColor = 'Vis farger';
+$strShowDatadictAs = 'Data Ordbok Format';
+$strShowFullQueries = 'Vis hele spørringen';
+$strShowGrid = 'Vis rutenett';
+$strShowHideLeftMenu = 'Skjul/Vis venstre meny';
+$strShowingBookmark = 'Vis bokmerke';
+$strShowingPhp = 'Viser som PHP kode';
+$strShowingRecords = 'Viser rader ';
+$strShowingSQL = 'Viser SQL spørring';
+$strShowOpenTables = 'Vis åpne tabeller';
+$strShowPHPInfo = 'Vis PHP-informasjon';
+$strShowSlaveHosts = 'Vis slaveverter';
+$strShowSlaveStatus = 'Vis slavestatus';
+$strShowStatusBinlog_cache_disk_useDescr = 'Antall transaksjoner som brukte den midlertidige binærloggmellomlageret men som overskred verdien av binlog_size og brukte en midlertidig fil for å lagre spørringer fra transaksjonen.';
+$strShowStatusBinlog_cache_useDescr = 'Antall transaksjoner som brukte den midlertidige binærloggmellomlageret.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Antall midlertidige tabeller lagret på harddisken automatisk opprettet av tjeneren mens den utførte spørringer. Hvis Created_tmp_disk_tables er stor bør du vurdere å øke tmp_table_size verdien slik at midlertidige tabeller blir lagret i minnet og ikke på harddisken.';
+$strShowStatusCreated_tmp_filesDescr = 'Antall midlertidige filer mysqld har opprettet.';
+$strShowStatusCreated_tmp_tablesDescr = 'Antall midlertidige tabeller i minnet automatisk opprettet av tjeneren under utføriing av spørringer.';
+$strShowStatusDelayed_errorsDescr = 'Antall rader skrevet med INSERT DELAYED hvor en eller annen form for feil oppstod (mest sannsynlig duplisert nøkkel).';
+$strShowStatusDelayed_insert_threadsDescr = 'Antall INSERT DELAYED håndterertråder i bruk. Hver eneste tabell hvor det blir brukt INSERT DELAYE får sin egen tråd.';
+$strShowStatusDelayed_writesDescr = 'Antall INSERT DELAYED rader skrevet.';
+$strShowStatusFlush_commandsDescr = 'Antall utførte FLUSH uttrykk.';
+$strShowStatusHandler_commitDescr = 'Antall interne COMMIT uttrykk.';
+$strShowStatusHandler_deleteDescr = 'Antall ganger en rad ble slettet fra en tabell.';
+$strShowStatusHandler_discoverDescr = 'MySQL tjeneren kan spørre NDB Cluster lagringsmotoren om den kjenner til en tabell med et gitt navn. Dette blir kalt oppdaging (discovery). Handler_discover indikerer antall ganger tabeller har blitt oppdaget.';
+$strShowStatusHandler_read_firstDescr = 'Antall ganger det første innlegget ble lest fra en index. Hvis dette tallet er høyt tyder det på at tjeneren utfører en god del fullindekssøk; for eksempel, SELECT col1 FROM foo, da forutsatt at col1 er indeksert.';
+$strShowStatusHandler_read_keyDescr = 'Antall forespørsler for å lese en rad basert på en nøkkel. Hvis dette tallet er høyt gir dette en god indikasjon på at dine spørringer og tabeller er riktig indeksert.';
+$strShowStatusHandler_read_nextDescr = 'Antall forespørsler for å lese en rad basert på en fast posisjon. Denne er høy hvis du utører mange spørringer som behøver sortering av resultatet. Du har sansynligvis mange spørringer som krever at MySQL leser hele tabeller eller du har joins som ikke bruker nøkler korrekt.';
+$strShowStatusHandler_read_prevDescr = 'Antall forespørsler for å lese den forrige raden i nøkkelrekkefølge. Denne lesemetoden er hovedsakelig brukt for å optimalisere ORDER BY ... DESC.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Antall forespørsler for å lese neste rad i datafila. Dette tallet er høyt hvis du utfører mange tabellskanninger. Vanligvis betyr dette at dine tabeller ikke er rett indeksert eller at dine spørringer ikke er skrevet for å utnytte de indeksene du har.';
+$strShowStatusHandler_read_rndDescr = 'Antall forespørsler for å lese en rad basert på en fast posisjon. Denne er høy om du utfører mange spørringer som behøver sorteringer av resultatet. Du har mest sansynlig mange spørringer som krever at MySQL leser hele tabeller eller du har joins som som ikke bruker nøkler korrekt.';
+$strShowStatusHandler_rollbackDescr = 'Antall interne ROLLBACK kommandoer.';
+$strShowStatusHandler_updateDescr = 'Antall forespørsler for å oppdatere en rad i en tabell.';
+$strShowStatusHandler_writeDescr = 'Antall forespørsler for å sette inn en rad i en tabell.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Antall sider som inneholder data (endret eller uendret).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Antall sider for tiden endret.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Antall midlertidige mellomlagersider som det har vært oppfriskningsforespørsler på.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Antall tomme sider.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Antallet låste sider i InnoDBs mellomlager. Dette er sider som er under lesing eller skriving eller ikke kan tømmes eller fjernes av en annen grunn.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Antall sider som er opptatt fordi de har blitt allokert for administrative oppgaver slik som radlåsing eller adaptiv nøkkelindeksering. Denne verdien kan også regnes ut som Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total størrelse på midlertidig mellomlager i sider.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Antall "tilfeldige" "read-aheads" InnoDB startet. Dette skjer når en spørring skanner en stor andel av en tabell men i en tilfeldig rekkefølge.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Antall sekvensielle "read-aheads" InnoDB startet. Denne skjer når InnoDB utfører en sekvensiell full tabellskanning.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Antall logiske leseforespørsler InnoDB har utført.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Antall logiske lesninger som InnoDN ikke kunne tilfredsstille fra mellomlageret og måtte utføre en enkelsidelesnining.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalt vil skrivinger til InnoDBs mellomlager skje i bakgrunnen. Men, hvis det er behov for å lese eller opprette en side og ingen rene/tomme sider er tilgjengelig så er det nødvendig å vente på at sider blir tømt først. Denne telleren viser antall slike ventinger. Hvis mellomlagerstørrelsen er godt innstilt så vil denne verdien være liten.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Antall skrivinger til InnoDBs midlertidig mellomlager.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Antall fsync() operasjoner så langt.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Antall ventende fsync() operasjoner.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Antall ventende lesinger.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Antall ventende skrivinger.';
+$strShowStatusInnodb_data_readDescr = 'Mengden data lest så langt, i bytes.';
+$strShowStatusInnodb_data_readsDescr = 'Antall utførte lesninger.';
+$strShowStatusInnodb_data_writesDescr = 'Antall utførte skrivinger.';
+$strShowStatusInnodb_data_writtenDescr = 'Mengden data skrevet så langt, i bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Antallet dobbeltskrivinger som har blitt utført og antall sider som har blitt skrevet på grunn av dette.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Antallet dobbeltskrivinger som har blitt utført og antall sider som har blitt skrevet på grunn av dette.';
+$strShowStatusInnodb_log_waitsDescr = 'Antall ganger ventinger vi hadde fordi loggmellomlageret var for lite og vi måtte vente for at det skulle bli tømt før vi kunne fortsette.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Antall loggskrivingsforespørsler.';
+$strShowStatusInnodb_log_writesDescr = 'Antall fysiske skrivinger til loggfila.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Antall fsync-skrivinger utført på loggfila.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Antall ventende loggfil-fsyncs.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Ventende loggfilskrivinger.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Antall bytes skrevet til loggfila.';
+$strShowStatusInnodb_page_sizeDescr = 'Den innkompilerte InnoDB sidestørrelsen (standard 16KB). Mange verdier måles i sider; sidestørrelsen gjør at det er lett å konvertere dem til bytes.';
+$strShowStatusInnodb_pages_createdDescr = 'Antall sider opprettet.';
+$strShowStatusInnodb_pages_readDescr = 'Antall sidelesninger.';
+$strShowStatusInnodb_pages_writtenDescr = 'Antall sideskrivinger.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Antall ventende radlåsinger.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Gjennomsnittlig tid for å oppnå radlåsing, i millisekunder.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maksimum tid brukt for å oppnå en radlåsing, i millisekunder.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Total tid brukt for å få radlåsinger, i millisekunder.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Antall ganger en radlås måtte ventes på.';
+$strShowStatusInnodb_rows_deletedDescr = 'Antall rader slettet fra InnoDB tabeller.';
+$strShowStatusInnodb_rows_insertedDescr = 'Antall rader satt inn i InnoDB tabeller.';
+$strShowStatusInnodb_rows_readDescr = 'Antall rader lest fra InnoDB tabeller.';
+$strShowStatusInnodb_rows_updatedDescr = 'Antall rader oppdatert i InnoDB tabeller.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Antall nøkkelblokker i nøkkelmellomlageret som har blitt endret men som ikke ennå har blitt skrevet til harddisken. Dette var tidligere kjent som Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Antall ubrukte blokker i nøkkelmellomlageret. Du kan bruke denne verdien til å bestemme hvor mye av nøkkelmellomlageret som er i bruk.';
+$strShowStatusKey_blocks_usedDescr = 'Antall brukte blokker i nøkkelmellomlageret. Denne verdien er et høyvannsmål som viser maksimum antall blokker som har vært brukt på en gang.';
+$strShowStatusKey_read_requestsDescr = 'Antall forespørsler for å lese en nøkkelblokk fra mellomlageret.';
+$strShowStatusKey_readsDescr = 'Antall fysiske lesninger av en nøkkelblokk fra harddisk. Hvis Key_reads er stor er nok din key_buffer_size verdi for liten. Mellomlagertreffraten kan kalkuleres med Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Antall forespørsler for å skrive en nøkkelblokk til mellomlageret.';
+$strShowStatusKey_writesDescr = 'Antall fysiske skrivinger av en nøkkelblokk til disk.';
+$strShowStatusLast_query_costDescr = 'Den totale kostnad ved siste kompilerte spørring slik den ble utregnet av spørringsoptimisereren. Nyttig for å kunne sammenligne kostnader ved forskjellige spørringsplaner for den samme spørringen. Standardverdien på 0 betyr at ingen spørring har blitt kompilert ennå.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Antall rader som venter på å bli skrevet i INSERT DELAYED køer.';
+$strShowStatusOpen_filesDescr = 'Antall åpne filer.';
+$strShowStatusOpen_streamsDescr = 'Antall åpne dataflyter (hovedsaklig brukt til logging).';
+$strShowStatusOpen_tablesDescr = 'Antall åpne tabeller.';
+$strShowStatusOpened_tablesDescr = 'Antall tabeller som har blitt åpnet. Hvis denne er stor er nok din tabellmellomlagerverdi for liten.';
+$strShowStatusQcache_free_blocksDescr = 'Antall ledige minneblokker i spørringsmellomlager.';
+$strShowStatusQcache_free_memoryDescr = 'Mengden ledig minne i spørringsmellomlager.';
+$strShowStatusQcache_hitsDescr = 'Antall mellomlagertreff.';
+$strShowStatusQcache_insertsDescr = 'Antall spørringer lagt til i mellomlageret.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Antall spørringer som har blitt fjernet fra mellomlageret for å frigjøre minne for nye spørringer. Denne informasjonen kan hjelpe deg å fininnstille størrelsen på spørringsmellomlageret. Spørringsmellomlageret bruker en minst og sist brukt (least recently used (LRU)) strategi for å finne hvilke spørringer som skal fjernes fra mellomlageret.';
+$strShowStatusQcache_not_cachedDescr = 'Antallet ikkelagrede spørringer (kan ikke lagres, eller ikke lagret p.g.a. query_cache_type innstillingen).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Antall spørringer registrert i mellomlageret.';
+$strShowStatusQcache_total_blocksDescr = 'Totale antall blokker i spørringsmellomlageret.';
+$strShowStatusReset = 'Tilbakestill';
+$strShowStatusRpl_statusDescr = 'Failsafe replikasjonsstatus (ikke implementert ennå).';
+$strShowStatusSelect_full_joinDescr = 'Antall joins som ikke bruker indekser. Hvis denne verdien ikke er 0 bør du nøye sjekke indeksene til dine tabeller.';
+$strShowStatusSelect_full_range_joinDescr = 'Antall joins som trenger en rekkefølgesøk i en referansetabell.';
+$strShowStatusSelect_range_checkDescr = 'Antall joins uten nøkler som kontrollerer for nøkkelbruk etter hver rad (Hvis denne ikke er 0 bør du nøye kontrollere dine tabellindekser.)';
+$strShowStatusSelect_rangeDescr = 'Antall joins som brukte rekkefølger på den første tabellen. (Det er normalt ikke kritisk selv om denne verdien er stor.)';
+$strShowStatusSelect_scanDescr = 'Antall joins som utførte en full skann av den første tabellen.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Antall midlertidige tabeller for tiden åpnet av slave SQL tråden.';
+$strShowStatusSlave_retried_transactionsDescr = 'Det totale antall ganger (siden oppstart) replikasjonsslave-SQL-tråden har gjentatt transaksjoner.';
+$strShowStatusSlave_runningDescr = 'Denne er ON hvis denne tjeneren er en slave som er koblet til en master.';
+$strShowStatusSlow_launch_threadsDescr = 'Antall tråder som har brukt mer enn slow_launch_time sekunder under opprettelse.';
+$strShowStatusSlow_queriesDescr = 'Antall spørringer som har brukt mer enn long_query_time sekunder.';
+$strShowStatusSort_merge_passesDescr = 'Antall sammenslåingspasseringer sorteringsalgoritmen har måttet utføre. Hvis denne verdien er stor bør du vurdere å øke verdien av sort_buffer_size systemvariabelen.';
+$strShowStatusSort_rangeDescr = 'Antall sorteringer som ble utført med rekkefølger.';
+$strShowStatusSort_rowsDescr = 'Antall sorterte rader.';
+$strShowStatusSort_scanDescr = 'Antall sorteringer som har vært utført ved hjelp av skanning av tabellen.';
+$strShowStatusTable_locks_immediateDescr = 'Antall ganger en tabellåsing ble utført umiddelbart.';
+$strShowStatusTable_locks_waitedDescr = 'Antall ganger en tabellås ikke har kunnet blitt opprettet umiddelbart og en venting ble nødvendig. Hvis denne er høy og du har ytelsesproblemer bør du først optimalisere dine spørringer, og deretter enten splitte din tabell eller tabeller eller bruke replikasjon.';
+$strShowStatusThreads_cachedDescr = 'Antall tråder i trådmellomlageret. Mellomlagertreffraten kan regnes ut som Threads_created/Connections. Hvis denne verdien er rød bør du øke din thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Antall åpne tilkoblinger.';
+$strShowStatusThreads_createdDescr = 'Antall tråder opprettet for å handtere tilkoblinger. Hvis Threads_created er stor bør du vurdere å øke thread_cache_size størrelsen. (Normalt vil dette ikke gi noen merkbar forbedring hvis du har en god trådimplementering.)';
+$strShowStatusThreads_runningDescr = 'Antall tråder som ikke sover.';
+$strShowTableDimension = 'Vis tabelldimensjoner';
+$strShowTables = 'Vis tabeller';
+$strShowThisQuery = ' Vis denne spørring her igjen ';
+$strSimplifiedChinese = 'forenklet kinesisk';
+$strSingly = '(enkeltvis)';
+$strSize = 'Størrelse';
+$strSkipQueries = 'Antall poster(spørringer) å hoppe over fra start';
+$strSlovak = 'Slovakisk';
+$strSlovenian = 'Slovensk';
+$strSmallBigAll = 'Liten/Stor alle';
+$strSnapToGrid = 'Lås til ruter';
+$strSocketProblem = '(eller den lokale MySQL tjenerens sokkel er ikke korrekt konfigurert)';
+$strSort = 'Sorter';
+$strSortByKey = 'Sorter etter nøkkel';
+$strSorting = 'Sortering';
+$strSpaceUsage = 'Plassbruk';
+$strSpanish = 'Spansk';
+$strSplitWordsWithSpace = 'Ord er separert med et mellomrom (" ").';
+$strSQL = 'SQL';
+$strSQLCompatibility = 'SQL kompatibilitetsmodus';
+$strSQLExportType = 'Eksporttype';
+$strSQLParserBugMessage = 'Det er en mulighet for at du har funnet en feil i SQL-parseren. Vennligst kontroller din spørring nøye og kontroller at anførselstegn er korrekte og matsjer hverandre. En annen mulig feilårsak kan være at du overfører en fil med binærkode som ikke ligger innenfor anførselstegn. Du kan også teste din spørring i MYSQLs kommandolinjegrensesnitt. Feilmeldingen fra MySQL-tjeneren nedenfor, hvis det var en, kan også hjelpe deg med å analysere problemet. Hvis du fortsatt har problemer eller parseren feiler hvor kommandolinjegrensesnittet lyktes, vennligst reduser din SQL-spørring til den spørringen som forårsaker problemet og send en feilrapport med datastykket i CUT-seksjonen nedenfor:';
+$strSQLParserUserError = 'Det ser ut til å være en feil i din SQL-spørring. En eventuell feilmelding fra MySQL-tjeneren er skrevet ut nedenfor, kan kanskje hjelpe deg med å finne feilen.';
+$strSQLQuery = 'SQL-spørring';
+$strSQLResult = 'SQL-resultat';
+$strSQPBugInvalidIdentifer = 'Ugyldig identifikator';
+$strSQPBugUnclosedQuote = 'Anførselstegnet er ikke lukket';
+$strSQPBugUnknownPunctuation = 'Ukjent tegnsettingsstreng';
+$strStandInStructureForView = 'Erstatningsstruktur for visning';
+$strStatCheckTime = 'Sist kontrollert';
+$strStatCreateTime = 'Opprettet';
+$strStatement = 'Oversikt';
+$strStatisticsOverrun = 'På en travel tjener så kan byte-tellerene overflyte, så denne statistikken som rapportert av MySQL tjeneren kan være unøyaktig.';
+$strStatUpdateTime = 'Sist oppdatert';
+$strStatus = 'Status';
+$strStorageEngine = 'Lagringsmotor';
+$strStorageEngines = 'Lagringsmotorer';
+$strStrucCSV = 'CSV-data';
+$strStrucData = 'Struktur og data';
+$strStrucExcelCSV = 'CSV for MS Excel data';
+$strStrucNativeExcel = 'Originale MS Excel data';
+$strStrucOnly = 'Kun struktur';
+$strStructPropose = 'Foreslå tabellstruktur';
+$strStructure = 'Struktur';
+$strStructureForView = 'Visningsstruktur';
+$strSubmit = 'Send';
+$strSuccess = 'Kommandoen/spørringen er utført';
+$strSuhosin = 'Tjeneren kjører med Suhosin. Sjekk %sdokumentasjonen%s for potensielle problemer.';
+$strSum = 'Sum';
+$strSwedish = 'svensk';
+$strSwekeyAuthenticating = 'Autentiserer...';
+$strSwekeyAuthFailed = 'Maskinvaregodkjenning mislyktes';
+$strSwekeyNoKey = 'Ingen gyldig autentiseringsnøkkel plugget';
+$strSwekeyNoKeyId = 'Fila %s inneholder ingen nøkkel id';
+$strSwitchToDatabase = 'Bytt til kopiert database';
+$strSwitchToTable = 'Bytt til kopiert tabell';
+
+$strTable = 'Tabell';
+$strTableAlreadyExists = 'Tabel %s eksisterer allerede!';
+$strTableAlteredSuccessfully = 'Tabellen %1$s har blitt endrett';
+$strTableComments = 'Tabellkommentarer';
+$strTableEmpty = 'Tabellnavnet er tomt!';
+$strTableHasBeenCreated = 'Tabellen %1$s har blitt opprettet.';
+$strTableHasBeenDropped = 'Tabellen %s har blitt slettet';
+$strTableHasBeenEmptied = 'Tabellen %s har blitt tømt';
+$strTableHasBeenFlushed = 'Tabelen %s har blitt oppfrisket';
+$strTableIsEmpty = 'Tabellen ser ut til å være tom!';
+$strTableMaintenance = 'Tabellvedlikehold';
+$strTableName = 'Tabellnavn';
+$strTableOfContents = 'Innholdsfortegnelse';
+$strTableOptions = 'Tabellinnstillinger';
+$strTables = '%s tabell(er)';
+$strTableStructure = 'Tabellstruktur for tabell';
+$strTakeIt = 'velg';
+$strTblPrivileges = 'Tabell-spesifikke privilegier';
+$strTempData = 'Midlertidige data';
+$strTextAreaLength = ' På grunn av sin lengde,<br /> så vil muligens dette feltet ikke være redigerbart ';
+$strTexyText = 'Texy! tekst';
+$strThai = 'thai';
+$strTheme = 'Tema / Stil';
+$strThemeDefaultNotFound = 'Standard stil %s ble ikke funnet!';
+$strThemeNoPreviewAvailable = 'Ingen forhandsvisning tilgjengelig.';
+$strThemeNotFound = 'Stilen %s ble ikke funnet!';
+$strThemeNoValidImgPath = 'Ingen gyldig bildesti for stilen %s ble funnet!';
+$strThemePathNotFound = 'Stilsti ble ikke funnet for stilen %s!';
+$strThisHost = 'Denne vert';
+$strThreads = 'Tråder';
+$strThreadSuccessfullyKilled = 'Tråd %s ble avsluttet med suksess.';
+$strTime = 'Tid';
+$strTimeoutInfo = 'Forrige import ble tidsavbrutt, vil fortsette fra posisjon %d etter gjenninnsending.';
+$strTimeoutNothingParsed = 'Men under den siste kjøringen så ble ingen data lest, dette betyr vanligvis at phpMyAdmin ikke vil være istand til å fullføre importeringen uten at du øker php tidsgrensen.';
+$strTimeoutPassed = 'Skripttidsabrudd passert, hvis du ønsker å fortsette importen kan du gjennopplaste fila og importeringen vil fortsette.';
+$strToFromPage = 'til/fra side';
+$strToggleScratchboard = 'slå av/på kladdevindu';
+$strToggleSmallBig = 'Veksle mellom liten/stor';
+$strToSelectRelation = 'For å velge relasjon, klikk :';
+$strTotal = 'totalt';
+$strTotalUC = 'Totalt';
+$strTraditionalChinese = 'Tradisjonell kinesisk';
+$strTraditionalSpanish = 'Tradisjonell spansk';
+$strTraffic = 'Trafikk';
+$strTransactionCoordinator = 'Transaksjonskoordinator';
+$strTransformation_application_octetstream__download = 'Vis en link for å kunne laste ned de binære dataene til et felt. Den første opsjonen er filnavnet til den binære fila. Den andre opsjonen er et potensielt feltnavn i en tabell som inneholder filnavnet. Hvis du velger den andre opsjonen så må den første være satt til en tom strengverdi';
+$strTransformation_application_octetstream__hex ='Vis dataene i heksadesimal. Den valgfrie første parameteren tilkjennegir hvor ofte mellomrom vil bli lagt til (standard hvert andre tegn).';
+$strTransformation_image_jpeg__inline = 'Viser et klikkbart tommelfingerbilde; valg: bredde, høyde i piksler (bevarer originale forhold)';
+$strTransformation_image_jpeg__link = 'Viser en link til dette bildet (m.a.o. direkte blob-nedlasting).';
+$strTransformation_image_png__inline = 'Se image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Vi en TIME, TIMESTAMP, DATETIME eller et numerisk Unix tidsmerke som en formatert dato. Den første innstillingen er differansen (i timer) som vil bli lagt til tidsmerket (Standard: 0). Bruk den andre innstillingen til å spesifiser en alternativ datoformatstreng. Den tredje innstillingen avgjør om du ønsker visning som en lokal dato eller som UTC (bruk "local" eller "utc" strenger). Avhengig av dette, vil datoformatstrengen ha forskjellig verdi - for "local" se dokumentasjonen for PHPs strftime() funksjon og for "utc" se gmdate() funksjonen.';
+$strTransformation_text_plain__external = 'BARE LINUX: Starter et eksternt program og gir den feltdataene via standard input. Returnerer standart output fra programmet. Standard er Tidy, for å skrive ut pen HTML kode. Av sikkerhetsgrunner så må du redigere fila libraries/transformations/text_plain__external.inc.php og skrive inn de verktøyene du tillater å kjøres. Den første verdien er antall programmer du ønsker å bruke og den andre verdien er parameterene for programmet. Den tredje verdien, hvis den er satt til 1 vil konvertere utskriften med htmlspecialchars() (Standard er 1). En fjerde verdi vil, viss satt til 1 sette en NOWRAP i innholdscellen slik at hele resultatet blir vist uten reformatering (Standard er 1)';
+$strTransformation_text_plain__formatted = 'Bevarer original formatering av feltet. Ingen \'escaping\' blir utført.';
+$strTransformation_text_plain__imagelink = 'Viser et bilde og en link, feltet inneholder filnavnet; første verdi er et prefiks slik som "http://domain.com/", andre verdien er bredden i piksler, tredje er høyden.';
+$strTransformation_text_plain__link = 'Viser en link, feltet inneholder filnavnet, ; første verdi er et prefiks slik som "http://domain.com/", andre verdien er en tittel for linken.';
+$strTransformation_text_plain__sql = 'Formaterer tekst som en SQL spørring med syntaksutheving.';
+$strTransformation_text_plain__substr = 'Viser bare en delstreng. Første verdien er antall tegn fra starten hvor din tekst begynner (Standard: 0). Andre verdien er hvor mange tegn som skal returneres. Hvis den er tom så returneres resten av teksten. Den tredje verdien definerer hvilke tegn som vil bli lagt til resultatet når en delstreng blir returnert (Standard: ...).';
+$strTriggers = 'Triggere';
+$strTruncateQueries = 'Forkort vist spørring';
+$strTurkish = 'tyrkisk';
+$strType = 'Type';
+
+$strUkrainian = 'ukrainsk';
+$strUncheckAll = 'Fjern merking';
+$strUnicode = 'Unicode';
+$strUnique = 'Unik';
+$strUnknown = 'ukjent';
+$strUnselectAll = 'Fjern alle valgte';
+$strUnsupportedCompressionDetected = 'Du forsøkte å laste en komprimert fil som det ikke er støtte for (%s). Enten så er ikke støtte implementert eller den er slått av i din konfigurasjon.';
+$strUpdatePrivMessage = 'Du har oppdatert privilegiene til %s.';
+$strUpdateProfileMessage = 'Profilen har blitt oppdatert.';
+$strUpdateQuery = 'Oppdater spørring';
+$strUpdComTab = 'Les i dokumentasjonen hvordan du oppdaterer din Column_comments tabell';
+$strUpgrade = 'Du burde oppgradere til %s %s eller nyere.';
+$strUploadErrorCantWrite = 'Klarte ikke å skrive fila til harddisken.';
+$strUploadErrorExtension = 'Filopplasting stoppet av utvidelse.';
+$strUploadErrorFormSize = 'Opplastingsfila er større enn MAX_FILE_SIZE direktivet som ble spesifisert i HTML-skjemaet.';
+$strUploadErrorIniSize = 'Opplastingsfila er større enn upload_max_filesize direktivet definert i php.ini.';
+$strUploadErrorNoTempDir = 'Mangler en midlertidig mappe.';
+$strUploadErrorPartial = 'Opplastingsfila ble bare delvis opplastet.';
+$strUploadErrorUnknown = 'Ukjent feil oppstod under filopplastingen.';
+$strUploadLimit = 'Du forsøkte sansynligvis å laste opp en for stor fil. Sjekk %sdokumentasjonen%s for måter å omgå denne begrensningen.';
+$strUploadsNotAllowed = 'Filopplastinger er ikke tillatt på denne tjeneren.';
+$strUsage = 'Bruk';
+$strUseBackquotes = 'Bruk venstre anførselstegn med tabell og feltnavn';
+$strUseHostTable = 'Vis vert tabell';
+$strUser = 'Bruker';
+$strUserAlreadyExists = 'Brukeren %s finnes fra før!';
+$strUserEmpty = 'Brukernavnet er tomt!';
+$strUserName = 'Brukernavn';
+$strUserNotFound = 'Den valgte brukeren ble ikke funnet i privilegietabellen.';
+$strUserOverview = 'Brukeroversikt';
+$strUsersDeleted = 'De valgte brukerne har blitt slettet.';
+$strUsersHavingAccessToDb = 'Brukere som har adgang til &quot;%s&quot;';
+$strUseTabKey = 'Bruk TAB tasten for å flytte fra verdi til verdi, eller CTRL+piltastene for å bevege deg hvor som helst';
+$strUseTables = 'Bruk tabeller';
+$strUseTextField = 'Bruk tekstfelt';
+$strUseThisValue = 'Bruk denne verdien';
+
+$strValidateSQL = 'Test SQL';
+$strValidatorError = 'SQL-kontrolleren kunne ikke startes. Vennligst sjekk at du har installert de nødvendige php-tilleggene som beskrevet i %sdokumentasjonen%s.';
+$strValue = 'Verdi';
+$strVar = 'Variabler';
+$strVersionInformation = 'Versionsinformasjon';
+$strView = 'Vis';
+$strViewDump = 'Vis dump (skjema) av tabell';
+$strViewDumpDatabases = 'Vis dumpet skjema av databaser';
+$strViewDumpDB = 'Vis dump (skjema) av database';
+$strViewHasAtLeast = 'Denne visningen har minst dette antall rader. Sjekk %sdocumentation%s.';
+$strViewHasBeenDropped = 'Visningen %s har blitt slettet';
+$strViewName = 'VIEW navn';
+
+$strWebServer = 'Webserver';
+$strWebServerUploadDirectory = 'webtjener opplastingskatalog';
+$strWebServerUploadDirectoryError = 'Katalogen du anga for opplasting kan ikke nåes';
+$strWelcome = 'Velkommen til %s';
+$strWestEuropean = 'vesteuropeisk';
+$strWiki = 'Wiki';
+$strWildcard = 'jokertegn';
+$strWindowNotFound = 'Målvinduet kunne ikke oppdateres. Muligens du har lukket modervinduet eller din nettleser blokkerer vindu-til-vindu oppdateringer av sikkerhetsårsaker.';
+$strWithChecked = 'Med avkrysset:';
+$strWriteRequests = 'Skriveforespørsler';
+$strWrongUser = 'Ugyldig brukernavn/passord. Ingen tilgang.';
+
+$strXML = 'XML';
+
+$strYes = 'Ja';
+
+$strZeroRemovesTheLimit = 'Merk: Ved å sette disse til 0 (null) fjernes begrensningen.';
+$strZip = 'Komprimert (zip)';
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/persian-utf-8.inc.php b/lang/persian-utf-8.inc.php
new file mode 100644
index 0000000000..8ad12a3ac6
--- /dev/null
+++ b/lang/persian-utf-8.inc.php
@@ -0,0 +1,1499 @@
+<?php
+
+/* $Id$ */
+/*
+Persian(Farsi) translation by : Bornis Group
+www.BornisGroup.com
+info@BornisGroup.com
+//
+update by : Artin H.
+*/
+$charset = 'utf-8';
+$text_dir = 'rtl'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('بايت', 'كيلوبايت', 'مگا بايت', 'گيگا بايت', 'ترابايت', 'پتا بايت', 'اگزا بايت');
+
+$day_of_week = array('يكشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنج‌شنبه', 'جمعه', 'شنبه');
+$month = array('ژانويه', 'فوريه', 'مارس', 'آوريل', 'مي', 'ژوئن', 'جولاي', 'آگوست', 'سپتامبر', 'اكتبر', 'نوامبر', 'دسامبر');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y ساعت %I:%M %p';
+$timespanfmt = '%s days, %s hours, %s minutes and %s seconds';
+
+$strAccessDenied = 'دسترسي مجاز نيست';
+$strAction = 'عمل';
+$strAddDeleteColumn = 'اضافه يا حذف ستونها';
+$strAddDeleteRow = 'اضافه/حذف معيارها';
+$strAddNewField = 'افزودن ستون جديد';
+$strAddSearchConditions = 'افزودن شرايط جستجو (بدنه شرط "where"):';
+$strAddUser = 'افزودن يك كاربر جديد';
+$strAddUserMessage = 'شما يك كاربر جديد اضافه كرديد.';
+$strAfterInsertBack = 'برو به صفحه قبل';
+$strAfterInsertNewInsert = 'درج يك سطر جديد ديگر';
+$strAfter = 'بعد از %s';
+$strAll = 'همه';
+$strAllTableSameWidth = 'نمايش همه جدولها با عرض يكسان؟';
+$strAlterOrderBy = 'تغيير جدول مرتب شده با';
+$strAnalyzeTable = 'تحليل جدول';
+$strAnd = 'و';
+$strAnIndex = 'يك فهرست در %s اضافه گرديد.';
+$strAny = 'همه';
+$strAnyHost = 'همه ميزبانها';
+$strAnyUser = 'همه كاربران';
+$strAPrimaryKey = 'يك كليد اصلي در %s اضافه شد';
+$strAscending = 'صعودي';
+$strAtBeginningOfTable = 'در ابتداي جدول';
+$strAtEndOfTable = 'در انتهاي جدول';
+$strAttr = 'ويژگيها';
+
+$strBack = 'بازگشت';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'دودويي';
+$strBrowse = 'مشاهده';
+$strBzip = '"bzipped"';
+
+$strCantLoadRecodeIconv = 'بارگذاري iconv يا recode extension كه براي تبديل مجموعه كاراكترها لازم است ، مقدور نمي‌باشد، php را براي اجازه استفاده از آنها تنظيم كرده و يا تبديل مجموعه كاراكترها (charset conversion) را در phpMyAdmin غيرفعال نماييد.';
+$strCantRenameIdxToPrimary = 'بازناميدن فهرست به PRIMARY مقدور نمي‌باشد!';
+$strChange = 'تغيير';
+$strChangeDisplay = 'ستون را براي نمايش انتخاب نماييد';
+$strChangePassword = 'تغيير اسم رمز';
+$strCharsetOfFile = 'مجموعه كاراكترهاي پرونده:';
+$strCheckAll = 'انتخاب همه';
+$strCheckTable = 'بررسي جدول';
+$strChoosePage = 'لطفا يك صفحه را براي ويرايش انتخاب نماييد';
+$strColComFeat = 'نمايش توضيحات ستون';
+$strColumnNames = 'نام ستونها';
+$strComments = 'توضيحات';
+$strCompleteInserts = 'تمام وروديها';
+$strCompression = 'فشرده‌سازي';
+$strConfigFileError = 'phpMyAdmin قادر به خواندن پرونده تنظيمات نمي‌باشد!<br />اين ممكن است به خاطر وجود يك مشكل دستوري و يا پيدانشدن پرونده توسط php باشد.<br />لطفا پرونده تنظميات را مستقيما توسط پيوند زير صدا زده و پيغام(هاي) خطاي php كه دريافت مي‌كنيد را بخوانيد. در اكثر موارد يك علامت نقل قول (" \' ") يا ويرگول‌نقطه (" ; ") در جايي وجود ندارد.<br />اگر يك صفحه خالي دريافت كرديد ، همه چيز درست است.';
+$strConfigureTableCoord = 'لطفا مختصات جدول %s را تنظيم كنيد';
+$strCopyTable = 'كپي كردن جدول به (پايگاه داده<b>.</b>جدول):';
+$strCopyTableOK = 'جدول %s به %s كپي شد.';
+$strCreate = 'ساختن';
+$strCreateIndex = 'ساخت يك فهرست در&nbsp;%s&nbsp;ستون';
+$strCreateIndexTopic = 'ساخت فهرست جديد';
+$strCreateNewDatabase = 'ساخت پايگاه داده جديد';
+$strCreateNewTable = 'ساخت جدول جديد در پايگاه داده %s';
+$strCreatePage = 'ساخت يك صفحه جديد';
+$strCreatePdfFeat = 'ساخت PDFs';
+$strCriteria = 'معيارها';
+
+$strData = 'داده';
+$strDatabase = 'پايگاه داده';
+$strDatabaseHasBeenDropped = 'پايگاه داده %s حذف گرديد.';
+$strDatabases = 'پايگاههاي داده';
+$strDatabasesStats = 'آمار پايگاههاي داده';
+$strDataDict = 'فرهنگ داده‌ها';
+$strDataOnly = 'فقط داده‌ها';
+$strDefault = 'پيش‌فرض';
+$strDelete = 'حذف';
+$strDeleted = 'سطر حذف گرديد .';
+$strDescending = 'نزولي';
+$strDisabled = 'غيرفعال';
+$strDisplayFeat = 'نمايش خصوصيات';
+$strDisplayOrder = 'ترتيب نمايش:';
+$strDisplayPDF = 'نمايش الگوي PDF';
+$strDoAQuery = 'انجام يك "پرس و جو با نمونه" (wildcard: "%")';
+$strDocu = 'مستندات';
+$strDoYouReally = 'آيا مطمئن هستيد ';
+$strDrop = 'حذف';
+$strDumpingData = 'حذف داده‌هاي جدول';
+$strDumpXRows = 'حذف %s سطر(ها) ابتدا از سطر شماره %s.';
+$strDynamic = 'پويا';
+
+$strEdit = 'ويرايش';
+$strEditPDFPages = 'ويرايش صفحات PDF';
+$strEditPrivileges = 'ويرايش امتيازات';
+$strEffective = 'موثر';
+$strEmpty = 'خالي كردن';
+$strEmptyResultSet = 'MySQL يك نتيجه خالي داد. (مثلا 0 سطر).';
+$strEnabled = 'فعال';
+$strEnd = 'انتها';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnglishPrivileges = ' نكته : نام امتيازات MySQL به زبان انگليسي بيان مي‌شود .';
+$strError = 'خطا';
+$strExplain = 'شرح دادن SQL';
+$strExport = 'صدور';
+$strExtendedInserts = 'وروديهاي تمديدشده';
+$strExtra = 'اضافي';
+
+$strField = 'ستون';
+$strFieldHasBeenDropped = 'ستون %s حذف گرديد';
+$strFields = 'ستونها';
+$strFieldsEnclosedBy = 'ستونهاي درميان‌گرفته با';
+$strFieldsEscapedBy = 'ستونهاي جداشده با';
+$strFieldsTerminatedBy = 'ستونهاي منتهي به';
+$strFixed = 'fixed';
+$strFlushTable = 'Flush the table ("FLUSH")';
+$strFormat = 'قالب';
+$strFormEmpty = 'مقداري در فرم وارد نشده !';
+$strFullText = 'كاملا متن';
+$strFunction = 'تابع';
+
+$strGenBy = 'توليد‌شده توسط';
+$strGenTime = 'زمان توليد';
+$strGo = 'تاييد';
+$strGzip = '"gzipped"';
+
+$strHasBeenAltered = 'تغيير داده‌شد.';
+$strHaveToShow = 'شما حذاقل بايد يك ستون را براي نمايش انتخاب نماييد';
+$strHome = 'خانه';
+$strHomepageOfficial = 'صفحه خانه رسمي phpMyAdmin';
+$strHost = 'ميزبان';
+$strHostEmpty = 'نام ميزبان خالي است!';
+
+$strIdxFulltext = 'كاملا متن';
+$strIgnore = 'Ignore';
+$strIndex = 'فهرست';
+$strIndexes = 'فهرست‌ها';
+$strIndexHasBeenDropped = 'فهرست %s حذف گرديد';
+$strIndexName = 'اسم فهرست&nbsp;:';
+$strIndexType = 'نوع فهرست&nbsp;:';
+$strInsecureMySQL = 'پرونده پيكربندي شما حاوي تنظيماتي است (كاربر root بدون اسم رمز) كه مرتبط با حساب پيش‌فرض MySQL مي‌باشد. اجراي MySQL با اين پيش‌فرض باعث ورود غيرمجاز مي‌شود ، و شما بايد اين حفره امنيتي را ذرست كنيد.';
+$strInsert = 'درج';
+$strInsertAsNewRow = 'درج به عنوان يك سطر جديد';
+$strInUse = 'in use';
+
+$strKeepPass = 'عدم تغيير اسم رمز';
+$strKeyname = 'Keyname';
+$strKill = 'Kill';
+
+$strLengthSet = 'طول/مقادير*';
+$strLimitNumRows = 'تعداد سطرها در هر صفحه';
+$strLinesTerminatedBy = 'خطوط منتهي به';
+$strLinkNotFound = 'پيوند پيدا نشد';
+$strLinksTo = 'پيوند به';
+$strLocationTextfile = 'محل پرونده متني';
+$strLogin = 'ورود';
+$strLogout = 'خروج';
+$strLogPassword = 'اسم رمز:';
+$strLogUsername = 'نام كاربر:';
+
+$strModifications = 'اصلاحات ذخيره گرديد';
+$strModify = 'اصلاح';
+$strModifyIndexTopic = 'اصلاح يك فهرست';
+$strMoveTable = 'انتقال جدول به (پايگاه داده<b>.</b>جدول):';
+$strMoveTableOK = 'جدول %s به %s انتقال داده‌شد.';
+$strMySQLCharset = 'مجموع كاراكترهاي MySQL';
+$strMySQLSaid = 'پيغام MySQL :';
+$strMySQLShowProcess = 'نمايش فرايندها';
+
+$strName = 'اسم';
+$strNext = 'بعد';
+$strNo = 'خير';
+$strNoDatabases = 'No databases';
+$strNoDescription = 'no Description';
+$strNoDropDatabases = 'دستور "DROP DATABASE" غيرفعال مي‌باشد.';
+$strNoIndex = 'هيچ فهرستي تعريف‌نشده‌است!';
+$strNone = 'خير';
+$strNoPassword = 'بدون اسم رمز';
+$strNoPhp = 'بدون كد PHP';
+$strNoTablesFound = 'در اين پايگاه داده هيچ جدولي وجود ندارد .';
+$strNotNumber = 'اين يك عدد نيست!';
+$strNotOK = 'not OK';
+$strNotSet = 'جدول <b>%s</b> وجود ندارد و يا در %s تنظيم نشده‌است';
+$strNoUsersFound = 'هيچ كاربري وچود ندارد.';
+$strNull = 'خالي';
+$strNumTables = 'جدولها';
+
+$strOK = 'تاييد';
+$strOperations = 'عمليات';
+$strOptimizeTable = 'بهينه‌سازي جدول';
+$strOr = 'يا';
+
+$strPageNumber = 'شماره صفحه:';
+$strPassword = 'اسم رمز';
+$strPasswordEmpty = 'اسم رمز خالي است!';
+$strPasswordNotSame = 'اسم رمزها مانند هم نمي‌باشد!';
+$strPdfInvalidTblName = 'جدول "%s" وجود ندارد!';
+$strPdfNoTables = 'No tables';
+$strPersian = 'فارسي';
+$strPhp = 'ساخت كد PHP';
+$strPHPVersion = 'نسخه PHP';
+$strPmaDocumentation = 'مستندات phpMyAdmin';
+$strPos1 = 'شروع';
+$strPrevious = 'قبل';
+$strPrimary = 'اصلي';
+$strPrimaryKeyHasBeenDropped = 'كليد اصلي حذف گرديد';
+$strPrimaryKeyName = 'نام كليد اصلي بايد PRIMARY باشد !';
+$strPrimaryKeyWarning = '(<b>فقط و فقط بايد</b> "PRIMARY" نام يك كليد اصلي باشد!)';
+$strPrint = 'چاپ';
+$strPrintView = 'نماي چاپ';
+$strPrivileges = 'امتيازات';
+$strPutColNames = 'قراردادن نام ستونها در اولين سطر';
+
+$strQBE = 'پرس و جو';
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQueryOnDb = 'پرس و جوي SQL از پايگاه داده <b>%s</b>:';
+
+$strRecords = 'سطرها';
+$strRelationNotWorking ='امكانات اضافي براي كاركردن با جدولهاي پيوندي غيرفعال شده‌است . براي پيداكردن دليل آن %sاينجا%s را بزنيد .';
+$strRenameTable = 'بازناميدن جدول به';
+$strRenameTableOK = 'جدول %s به %s تغيير نام داده‌شد';
+$strRepairTable = 'مرمت جدول';
+$strReplaceTable = 'جايگزيني داده‌هاي جدول با پرونده';
+$strReset = 'Reset';
+$strReType = 'تكرار';
+$strRevoke = 'ابطال';
+$strRevokeMessage = 'شما امتيازات %s را ابطال كرديد';
+$strRowLength = 'طول سطر';
+$strRows = 'سطرها';
+$strRowsFrom = 'سطر(ها) ابتدا از سطر شماره ';
+$strRowSize = ' اندازه سطر ';
+$strRowsModeHorizontal = 'افقي';
+$strRowsModeVertical = 'عمودي';
+$strRowsStatistic = 'آمار سطرها';
+$strRunning = 'در ميزبان %s';
+$strRunQuery = 'Submit Query';
+$strRunSQLQuery = 'اجراي پرس و جو(ها)ي SQL در پايگاه‌داده %s';
+
+$strSave = 'ذخيره';
+$strSearch = 'جستجو';
+$strSearchFormTitle = 'جستجو در پايگاه‌داده';
+$strSearchInTables = 'در جدول(هاي) :';
+$strSearchNeedle = 'كلمه(ها) يا مقدار(ها) براي جستجو (wildcard: "%"):';
+$strSearchOption1 = 'حداقل يكي از كلمات';
+$strSearchOption2 = 'تمامي كلمات';
+$strSearchOption3 = 'عبارت كامل';
+$strSearchOption4 = 'بعنوان مبين منظم(as regular expression)';
+$strSearchResultsFor = 'نتيجه جستجوي "<i>%s</i>" %s:';
+$strSearchType = 'نوع جستجو :';
+$strSelectADb = 'لطفا يك پايگاه داده را انتخاب نماييد.';
+$strSelectAll = 'انتخاب همه';
+$strSelectFields = 'ستونها را انتخاب نماييد (حداقل يكي)';
+$strSelectNumRows = 'in query';
+$strSelectTables = 'Select Tables';
+$strSend = 'ذخيره به صورت پرونده';
+$strServer = 'سرور';
+$strServerVersion = 'نسخه سرور';
+$strSetEnumVal = 'اگر نوع ستون "enum" يا "set" مي‌باشد ، لطفا براي ورود مقادير از اين قالب استفاده نماييد : \'a\',\'b\',\'c\'...<br /> اگر احتياج داشتيد كه از علامت مميز برعكس(بك‌اسلش) (" \ ") يا نقل‌قول تكي (" \' ") در آن مقادير استفاده نماييد ، قبل از آنها علامت (" \ ") را بگذاريد<br /> (براي مثال\'\\\\xyz\' يا \'a\\\'b\')';
+$strShow = 'نمايش';
+$strShowAll = 'نمايش همه';
+$strShowColor = 'نمايش رنگ';
+$strShowGrid = 'Show grid';
+$strShowingRecords = 'Showing rows';
+$strShowPHPInfo = 'نمايش اطلاعات PHP';
+$strShowTableDimension = 'نمايش ابعاد جدولها';
+$strShowTables = 'نمايش جدولها';
+$strShowThisQuery = ' نمايش دوباره اين پرس و جو در اينجا ';
+$strSingly = '(تنها)';
+$strSize = 'اندازه';
+$strSort = 'ترتيب';
+$strSpaceUsage = 'فضاي استفاده‌شده';
+$strSplitWordsWithSpace = 'كلمات با علامت فاصله (" ") جدا مي‌شوند.';
+$strSQLQuery = 'پرس و جوي SQL';
+$strSQLResult = 'نتيجه SQL';
+$strSQL = 'SQL';
+$strStatement = 'شرج';
+$strStrucCSV = 'داده‌هاي CSV';
+$strStrucData = 'ساختار و داده‌ها';
+$strStrucExcelCSV = 'CSV براي داده‌هاي MS Excel';
+$strStrucOnly = 'فقط ساختار';
+$strStructPropose = 'پيشنهاد ساختار جدول';
+$strStructure = 'ساختار';
+$strSubmit = 'ارسال';
+$strSuccess = 'پرس و جوي SQL شما با موفقيت اجرا گرديد';
+$strSum = 'مجموع';
+
+$strTable = 'جدول';
+$strTableComments = 'توضيحات جدول';
+$strTableEmpty = 'نام جدول وارد نشده‌است !';
+$strTableHasBeenDropped = 'جدول %s حذف گرديد';
+$strTableHasBeenEmptied = 'جدول %s خالي شد';
+$strTableMaintenance = 'نگهداشت جدول';
+$strTables = '%s جدول(ها)';
+$strTotal = 'جمع كل';
+$strTotalUC = 'جمع كل';
+$strType = 'نوع';
+
+$strUncheckAll = 'عدم انتخاب همه';
+$strUnique = 'يكتا';
+$strUnselectAll = 'عدم انتخاب همه';
+$strUpdatePrivMessage = 'امتيازات %s به هنگام گرديد.';
+$strUpdateProfileMessage = 'تنظيمات به هنگام گرديد.';
+$strUpdateQuery = 'به‌هنگام سازي پرس و جو';
+$strUsage = 'استفاده';
+$strUseBackquotes = 'قراردادن نام جدولها و ستونها بين علامت نقل‌قول (" \' ")';
+$strUser = 'كاربر';
+$strUserEmpty = 'نام كاربر خالي است!';
+$strUserName = 'نام كاربر';
+$strUseTables = 'بكارگيري جدولها';
+
+$strValidateSQL = 'معتبرسازي SQL';
+$strValue = 'مقدار';
+$strViewDump = 'نمايش الگوي جدول';
+$strViewDumpDB = 'نمايش الگوي پايگاه داده';
+
+$strWebServerUploadDirectoryError = 'پوشه‌اي را كه براي انتقال فايل انتخاب كرده‌ايد قابل دسترسي نيست.';
+$strWelcome = 'به %s خوش‌آمديد';
+$strWithChecked = 'موارد انتخاب‌شده :';
+$strWrongUser = 'نام كاربر/اسم رمز اشتباه است. دسترسي مجاز نيست.';
+
+$strYes = 'بلي';
+
+$strZip = '"zipped"';
+$strArmenian = 'ارمنی';
+$strArabic = 'عربی';
+$strAndThen = 'و سپس';
+$strBinLogInfo = 'اطلاعات';
+$strBulgarian = 'بلغاری';
+$strAfterInsertSame = 'برگرد به این صفحه';
+$strCalendar = 'تقویم';
+$strCommand = 'دستور';
+$strCopy = 'نسخه برداری';
+$strDanish = 'دانمارکی';
+$strEnglish = 'انگلیسی';
+$strGreek = 'یونانی';
+$strGeorgian = 'گرجی';
+$strGerman = 'آلمانی';
+$strXML = 'XML';
+$strAfterInsertNext = 'ویرایش کردن ردیف بعدی';
+$strAdministration = 'مدیریت';
+$strSpanish = 'اسپانیایی';
+$strDeleting = 'در حال پاک کردن %s';
+$strDictionary = 'لغت نامه';
+$strJapanese = 'ژاپنی';
+$strKorean = 'کره‌ای';
+$strDescription = 'توضیحات';
+$strEngines = 'موتور';
+$strId = 'شناسه';
+$strLanguageUnknown = 'زبانِ ناشناس : %1$s.';
+$strTurkish = 'ترکی';
+$strUkrainian = 'اوکراینی';
+$strUnknown = 'ناشناس';
+$strVar = 'متغییر';
+$strView = 'نمایش';
+$strWestEuropean = 'اروپای غربی';
+$strAddClause = 'افزودن %s';
+$strLocalhost = 'محلی';
+$strLoginInformation = 'اطلاعات ورود';
+$strPerHour = 'در ساعت';
+$strPerMinute = 'در دقیقه';
+$strPerSecond = 'در ثانیه';
+$strPolish = 'لهستانی';
+
+
+
+
+// To translate:
+$strAbortedClients = 'Aborted'; //to translate
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAddIntoComments = 'Add into comments'; //to translate
+$strAddPrivilegesOnDb = 'Add privileges on the following database'; //to translate
+$strAddPrivilegesOnTbl = 'Add privileges on the following table'; //to translate
+$strAddToIndex = 'Add to index &nbsp;%s&nbsp;column(s)'; //to translate
+
+
+
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+$strAutomaticLayout = 'Automatic layout'; //to translate
+$strBaltic = 'Baltic'; //to translate
+$strBinaryDoNotEdit = 'Binary - do not edit'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkDeleted = 'The bookmark has been deleted.'; //to translate
+$strBookmarkLabel = 'Label'; //to translate
+$strBookmarkQuery = 'Bookmarked SQL-query'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBookmarkThis = 'Bookmark this SQL-query'; //to translate
+$strBookmarkView = 'View only'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+
+$strBusyPages = 'Busy pages'; //to translate
+
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCannotLogin = 'Cannot login to MySQL server'; //to translate
+$strCantLoad = 'cannot load %s extension,<br />please check PHP Configuration'; //to translate
+$strCantUseRecodeIconv = 'Can not use iconv nor libiconv nor recode_string function while extension reports to be loaded. Check your php configuration.'; //to translate
+$strCardinality = 'Cardinality'; //to translate
+$strCaseInsensitive = 'case-insensitive'; //to translate
+$strCaseSensitive = 'case-sensitive'; //to translate
+$strCentralEuropean = 'Central European'; //to translate
+$strChangeCopyModeCopy = '... keep the old one.'; //to translate
+$strChangeCopyMode = 'Create a new user with the same privileges and ...'; //to translate
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.'; //to translate
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.'; //to translate
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.'; //to translate
+$strChangeCopyUser = 'Change Login Information / Copy User'; //to translate
+$strCharset = 'Charset'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCharsets = 'Charsets'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCheckPrivs = 'Check Privileges'; //to translate
+$strCheckPrivsLong = 'Check privileges for database &quot;%s&quot;.'; //to translate
+$strCollation = 'Collation'; //to translate
+$strColumnPrivileges = 'Column-specific privileges'; //to translate
+
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConnections = 'Connections'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCookiesRequired = 'Cookies must be enabled past this point.'; //to translate
+
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCopyTableSameNames = 'Can\'t copy table to same one!'; //to translate
+$strCouldNotKill = 'phpMyAdmin was unable to kill thread %s. It probably has already been closed.'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCroatian = 'Croatian'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCyrillic = 'Cyrillic'; //to translate
+$strCzech = 'Czech'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDatabaseExportOptions = 'Database export options'; //to translate
+$strDatabasesDropped = '%s databases have been dropped successfully.'; //to translate
+$strDatabasesStatsDisable = 'Disable Statistics'; //to translate
+$strDatabasesStatsEnable = 'Enable Statistics'; //to translate
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the Database statistics here might cause heavy traffic between the webserver and the MySQL one.'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBComment = 'Database comment: '; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDbPrivileges = 'Database-specific privileges'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDbSpecific = 'database-specific'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteAndFlush = 'Delete the users and reload the privileges afterwards.'; //to translate
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+$strDropUsersDb = 'Drop the databases that have the same names as the users.'; //to translate
+$strDumpSaved = 'Dump has been saved to file %s.'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strEstonian = 'Estonian'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+
+$strFailedAttempts = 'Failed attempts'; //to translate
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.'; //to translate
+$strFileCouldNotBeRead = 'File could not be read'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileNameTemplate = 'File name template'; //to translate
+$strFileNameTemplateRemember = 'remember template'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of these tables may differ from the privileges the server uses if manual changes have made to it. In this case, you should %sreload the privileges%s before you continue.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGeneralRelationFeat = 'General relation features'; //to translate
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGlobal = 'global'; //to translate
+$strGlobalPrivileges = 'Global privileges'; //to translate
+$strGlobalValue = 'Global value'; //to translate
+$strGrantOption = 'Grant'; //to translate
+
+
+$strHandler = 'Handler'; //to translate
+$strHebrew = 'Hebrew'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+$strHungarian = 'Hungarian'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFiles = 'Import files'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInnodbStat = 'InnoDB Status'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+
+$strJoins = 'Joins'; //to translate
+$strJumpToDB = 'Jump to database &quot;%s&quot;.'; //to translate
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.'; //to translate
+$strJustDelete = 'Just delete the users from the privilege tables.'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+
+$strLandscape = 'Landscape'; //to translate
+
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption'; //to translate
+$strLatexContent = 'Content of table __TABLE__'; //to translate
+$strLatexContinuedCaption = 'Continued table caption'; //to translate
+$strLatexContinued = '(continued)'; //to translate
+$strLatexIncludeCaption = 'Include table caption'; //to translate
+$strLatexLabel = 'Label key'; //to translate
+$strLaTeX = 'LaTeX'; //to translate
+$strLatexStructure = 'Structure of table __TABLE__'; //to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLithuanian = 'Lithuanian'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIME_available_mime = 'Available MIME-types'; //to translate
+$strMIME_available_transform = 'Available transformations'; //to translate
+$strMIME_description = 'Description'; //to translate
+$strMIME_MIMEtype = 'MIME-type'; //to translate
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.'; //to translate
+$strMIME_transformation = 'Browser transformation'; //to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s'; //to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').'; //to translate
+$strMIME_transformation_options = 'Transformation options'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function'; //to translate
+$strMoveTableSameNames = 'Can\'t move table to same one!'; //to translate
+$strMultilingual = 'multilingual'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDatabasesSelected = 'No databases selected.'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoExplain = 'Skip Explain SQL'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoFrames = 'phpMyAdmin is more friendly with a <b>frames-capable</b> browser.'; //to translate
+$strNoIndexPartsDefined = 'No index parts defined!'; //to translate
+$strNoModification = 'No change'; //to translate
+$strNoOptions = 'This format has no options'; //to translate
+$strNoPermission = 'The web server does not have permission to save the file %s.'; //to translate
+$strNoPrivileges = 'No Privileges'; //to translate
+$strNoRights = 'You don\'t have enough rights to be here right now!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoSpace = 'Insufficient space to save the file %s.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNoValidateSQL = 'Skip Validate SQL'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+$strNumSearchResultsInTable = '%s match(es) inside table <i>%s</i>'; //to translate
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> match(es)'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+$strOverhead = 'Overhead'; //to translate
+$strOverwriteExisting = 'Overwrite existing file(s)'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPaperSize = 'Paper size'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPartialText = 'Partial Texts'; //to translate
+$strPasswordChanged = 'The Password for %s was changed successfully.'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPdfDbSchema = 'Schema of the "%s" database - Page %s'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPhoneBook = 'phone book'; //to translate
+$strPmaUriError = 'The <tt>$cfg[\'PmaAbsoluteUri\']</tt> directive MUST be set in your configuration file!'; //to translate
+
+$strPortrait = 'Portrait'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.'; //to translate
+$strPrivDescAlter = 'Allows altering the structure of existing tables.'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateDb = 'Allows creating new databases and tables.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateTbl = 'Allows creating new tables.'; //to translate
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescDelete = 'Allows deleting data.'; //to translate
+$strPrivDescDropDb = 'Allows dropping databases and tables.'; //to translate
+$strPrivDescDropTbl = 'Allows dropping tables.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescExecute = 'Allows running stored procedures; Has no effect in this MySQL version.'; //to translate
+$strPrivDescFile = 'Allows importing data from and exporting data into files.'; //to translate
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.'; //to translate
+$strPrivDescIndex = 'Allows creating and dropping indexes.'; //to translate
+$strPrivDescInsert = 'Allows inserting and replacing data.'; //to translate
+$strPrivDescLockTables = 'Allows locking tables for the current thread.'; //to translate
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.'; //to translate
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.'; //to translate
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReferences = 'Has no effect in this MySQL version.'; //to translate
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.'; //to translate
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescSelect = 'Allows reading data.'; //to translate
+$strPrivDescShowDb = 'Gives access to the complete list of databases.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescShutdown = 'Allows shutting down the server.'; //to translate
+$strPrivDescSuper = 'Allows connecting, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strPrivDescUpdate = 'Allows changing data.'; //to translate
+$strPrivDescUsage = 'No privileges.'; //to translate
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.'; //to translate
+$strProcesses = 'Processes'; //to translate
+$strProcesslist = 'Process list'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryFrame = 'Query window'; //to translate
+$strQuerySQLHistory = 'SQL-history'; //to translate
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.'; //to translate
+$strQueryTime = 'Query took %01.4f sec'; //to translate
+$strQueryType = 'Query type'; //to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strReceived = 'Received'; //to translate
+$strReferentialIntegrity = 'Check referential integrity:'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationalSchema = 'Relational schema'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strRelations = 'Relations'; //to translate
+$strRelationView = 'Relation view'; //to translate
+$strReloadingThePrivileges = 'Reloading the privileges'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRemoveSelectedUsers = 'Remove selected users'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplaceNULLBy = 'Replace NULL by'; //to translate
+$strReplication = 'Replication'; //to translate
+$strResourceLimits = 'Resource limits'; //to translate
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.'; //to translate
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)'; //to translate
+$strRowsModeOptions = 'in %s mode and repeat headers after %s cells'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+$strRussian = 'Russian'; //to translate
+
+$strSaveOnServer = 'Save on server in %s directory'; //to translate
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page'; //to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strSent = 'Sent'; //to translate
+$strServerChoice = 'Server Choice'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strServerStatus = 'Runtime Information'; //to translate
+$strServerStatusUptime = 'This MySQL server has been running for %s. It started up on %s.'; //to translate
+$strServerTabVariables = 'Variables'; //to translate
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.'; //to translate
+$strServerVars = 'Server variables and settings'; //to translate
+$strSessionValue = 'Session value'; //to translate
+$strShowDatadictAs = 'Data Dictionary Format'; //to translate
+$strShowFullQueries = 'Show Full Queries'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSimplifiedChinese = 'Simplified Chinese'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:'; //to translate
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem'; //to translate
+$strSQPBugInvalidIdentifer = 'Invalid Identifer'; //to translate
+$strSQPBugUnclosedQuote = 'Unclosed quote'; //to translate
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String'; //to translate
+$strStatCheckTime = 'Last check'; //to translate
+$strStatCreateTime = 'Creation'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStatUpdateTime = 'Last update'; //to translate
+$strStatus = 'Status'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwedish = 'Swedish'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+$strSwitchToTable = 'Switch to copied table'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTableHasBeenFlushed = 'Table %s has been flushed'; //to translate
+$strTableOfContents = 'Table of contents'; //to translate
+$strTableOptions = 'Table options'; //to translate
+$strTableStructure = 'Table structure for table'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTblPrivileges = 'Table-specific privileges'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strTextAreaLength = ' Because of its length,<br /> this field might not be editable '; //to translate
+$strThai = 'Thai'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThisHost = 'This Host'; //to translate
+$strThreads = 'Threads'; //to translate
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTime = 'Time'; //to translate
+$strToggleScratchboard = 'Toggle scratchboard'; //to translate
+$strTraditionalChinese = 'Traditional Chinese'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTraffic = 'Traffic'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)'; //to translate
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).'; //to translate
+$strTransformation_image_png__inline = 'See image/jpeg: inline'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)'; //to translate
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.'; //to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .'; //to translate
+$strTruncateQueries = 'Truncate Shown Queries'; //to translate
+
+
+$strUnicode = 'Unicode'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpdComTab = 'Please see Documentation on how to update your Column_comments Table'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseHostTable = 'Use Host Table'; //to translate
+$strUserAlreadyExists = 'The user %s already exists!'; //to translate
+$strUserNotFound = 'The selected user was not found in the privilege table.'; //to translate
+$strUserOverview = 'User overview'; //to translate
+$strUsersDeleted = 'The selected users have been deleted successfully.'; //to translate
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseTextField = 'Use text field'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary php extensions as described in the %sdocumentation%s.'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+
+
+$strWebServerUploadDirectory = 'web-server upload directory'; //to translate
+
+$strWildcard = 'wildcard'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+
+$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/polish-utf-8.inc.php b/lang/polish-utf-8.inc.php
new file mode 100644
index 0000000000..7750ce5079
--- /dev/null
+++ b/lang/polish-utf-8.inc.php
@@ -0,0 +1,1441 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ' ';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('bajtów', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Nie', 'Pon', 'Wto', 'Śro', 'Czw', 'Pią', 'Sob');
+$month = array('Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y, %H:%M';
+$timespanfmt = '%s dni, %s godzin, %s minut i %s sekund';
+
+$strAbortedClients = 'Przerwane';
+$strAccessDenied = 'Brak dostępu';
+$strAccessDeniedCreateConfig = 'Prawdopodobnie powodem jest brak utworzonego pliku konfiguracyjnego. Do jego stworzenia można użyć %1$sskryptu instalacyjnego%2$s.';
+$strAccessDeniedExplanation = 'phpMyAdmin próbował połączyć się z serwerem MySQL, a serwer odrzucił połączenie. Powinieneś sprawdzić nazwę hosta, nazwę użytkownika i hasło w pliku config.inc.php i upewnić się, że odpowiadają one informacjom danym przez administratora serwera MySQL.';
+$strAction = 'Działanie';
+$strAddAutoIncrement = 'Dodaj wartości AUTO_INCREMENT';
+$strAddClause = 'Dodaj %s';
+$strAddConstraints = 'Dodaj ograniczenia';
+$strAddDeleteColumn = 'Dodaj/usuń pola';
+$strAddDeleteRow = 'Dodaj/usuń wiersz kryteriów';
+$strAddFields = 'Dodaj %s pól';
+$strAddHeaderComment = 'Dodaj do nagłówka własny komentarz (\\n oddziela linie)';
+$strAddIntoComments = 'Dodaj w komentarzach:';
+$strAddNewField = 'Dodaj nowego pole';
+$strAddPrivilegesOnDb = 'Dodaj uprawnienia dla następującej bazy danych';
+$strAddPrivilegesOnTbl = 'Dodaj uprawnienia dla następującej tabeli';
+$strAddSearchConditions = 'Dodaj warunki przeszukiwania (warunek dla "where"):';
+$strAddToIndex = 'Dodaj &nbsp;%s&nbsp;kolumn do indeksu ';
+$strAddUser = 'Dodaj nowego użytkownika';
+$strAddUserMessage = 'Nowy użytkownik został dodany.';
+$strAdministration = 'Administracja';
+$strAfterInsertBack = 'Wróć';
+$strAfterInsertNewInsert = 'Dodaj nowy rekord';
+$strAfterInsertNext = 'Edytuj następny rekord';
+$strAfterInsertSame = 'Powrót do tej strony';
+$strAfter = 'Po %s';
+$strAllowInterrupt = 'Zezwól na przerwanie importu w przypadku, gdy skrypt wykryje zbliżający się koniec limitu czasu. Może to być dobry sposób importu dużych plików, jednakże może on popsuć transakcje.';
+$strAllTableSameWidth = 'wyświetlić wszystkie tabele z taką samą szerokością?';
+$strAll = 'Wszystko';
+$strAlterOrderBy = 'Sortowanie tabeli wg';
+$strAnalyzeTable = 'Analizuj tabelę';
+$strAnd = 'oraz';
+$strAndThen = 'a następnie';
+$strAnIndex = 'Do %s dodany został indeks';
+$strAny = 'Dowolny';
+$strAnyHost = 'Dowolny host';
+$strAnyUser = 'Dowolny użytkownik';
+$strApproximateCount = 'Być może w przybliżeniu. Zobacz FAQ 3.11';
+$strAPrimaryKey = 'Do %s dodany został klucz podstawowy';
+$strArabic = 'Arabski';
+$strArmenian = 'Ormiański';
+$strAscending = 'Rosnąco';
+$strAtBeginningOfTable = 'Na początku tabeli';
+$strAtEndOfTable = 'Na końcu tabeli';
+$strAttr = 'Atrybuty';
+$strAutomaticLayout = 'Układ automatyczny';
+
+$strBack = 'Powrót';
+$strBaltic = 'Bałtycki';
+$strBeginCut = 'TNIJ STĄD';
+$strBeginRaw = 'SUROWE DANE STĄD';
+$strBinary = ' Binarne ';
+$strBinaryDoNotEdit = ' Binarne - nie do edycji ';
+$strBinaryLog = 'Dziennik binarny';
+$strBinLogEventType = 'Typ zdarzenia';
+$strBinLogInfo = 'Informacje';
+$strBinLogName = 'Nazwa dziennika';
+$strBinLogOriginalPosition = 'Oryginalna pozycja';
+$strBinLogPosition = 'Pozycja';
+$strBinLogServerId = 'ID serwera';
+$strBookmarkAllUsers = 'Pozwól na dostęp wszystkim użytkownikom';
+$strBookmarkCreated = 'Zapytanie %s zostało zapamiętane';
+$strBookmarkDeleted = 'Zapamiętane zapytanie SQL zostało usunięte.';
+$strBookmarkLabel = 'Nazwa';
+$strBookmarkQuery = 'Zapamiętane zapytanie SQL';
+$strBookmarkReplace = 'Zamień istniejące zapamiętane zapytanie o tej samej nazwie';
+$strBookmarkThis = 'Pamiętaj zapytanie SQL';
+$strBookmarkView = 'Tylko pokaż';
+$strBrowseDistinctValues = 'Przeglądaj różne wartości';
+$strBrowseForeignValues = 'Przeglądaj zewnętrzne wartości';
+$strBrowse = 'Przeglądaj';
+$strBufferPoolActivity = 'Aktywność rezerw buforowych';
+$strBufferPool = 'Rezerwy buforowe';
+$strBufferPoolUsage = 'Użycie rezerw buforowych';
+$strBufferReadMisses = 'Chybienia odczytu';
+$strBufferReadMissesInPercent = 'Chybienia odczytu w %';
+$strBufferWriteWaitsInPercent = 'Oczekiwania zapisu w %';
+$strBufferWriteWaits = 'Oczekiwania na zapis';
+$strBulgarian = 'Bułgarski';
+$strBusyPages = 'Strony używane';
+$strBzip = '".bz2"';
+
+$strCalendar = 'Kalendarz';
+$strCanNotLoadExportPlugins = 'Nie udało się załadować modułów eksportu, proszę sprawdzić instalację!';
+$strCanNotLoadImportPlugins = 'Nie udało się załadować modułów importu, proszę sprawdzić instalację!';
+$strCannotLogin = 'Nie udało się zalogować na serwer MySQL';
+$strCantLoad = 'nie udało się załadować modułu %s,<br />proszę sprawdzić konfigurację PHP';
+$strCantLoadRecodeIconv = 'Nie udało się załadować rozszerzeń iconv lub recode, które są niezbędne do konwersji kodowania znaków, skonfiguruj PHP tak, by mógł używać tych rozszerzeń albo zablokuj konwersję kodowania znaków w phpMyAdminie.';
+$strCantRenameIdxToPrimary = 'Nie można zmienić nazwy indeksu na PRIMARY!';
+$strCantUseRecodeIconv = 'Nie udało się użyć ani funkcji iconv, ani libiconv, mimo że rozszerzenia zgłaszają się jako załadowane. Proszę sprawdzić swoją konfigurację PHP.';
+$strCardinality = 'Moc';
+$strCaseInsensitive = 'bez rozróżniania wielkości liter';
+$strCaseSensitive = 'z rozróżnianiem wielkości liter';
+$strCentralEuropean = 'Środkowoeuropejski';
+$strChangeCopyModeCopy = '... pozostaw starego.';
+$strChangeCopyModeDeleteAndReload = ' ... usuń starego z tabel użytkowników, a następnie przeładuj uprawnienia.';
+$strChangeCopyModeJustDelete = ' ... usuń starego z tabel użytkowników.';
+$strChangeCopyModeRevoke = ' ... odbierz wszystkie aktywne uprawnienia staremu, a następnie go usuń.';
+$strChangeCopyMode = 'Utwórz nowego użytkownika z takimi samymi uprawnieniami i ...';
+$strChangeCopyUser = 'Zmień dane użytkownika / Skopiuj użytkownika';
+$strChangeDisplay = 'Wybierz wyświetlane pole';
+$strChangePassword = 'Zmień hasło';
+$strChange = 'Zmień';
+$strCharsetOfFile = 'Zestaw znaków dla pliku:';
+$strCharsetsAndCollations = 'Zestawy znaków i metody porównywania napisów';
+$strCharsets = 'Zestawy znaków';
+$strCharset = 'Zestaw znaków';
+$strCheckAll = 'Zaznacz wszystkie';
+$strCheckOverhead = 'Zaznacz nieoptymalne';
+$strCheckPrivsLong = 'Sprawdź uprawnienia bazy danych &quot;%s&quot;.';
+$strCheckPrivs = 'Sprawdź uprawnienia';
+$strCheckTable = 'Sprawdź tabelę';
+$strChoosePage = 'Proszę wybrać stronę do edycji';
+$strColComFeat = 'Wyświetl komentarze dla kolumn';
+$strCollation = 'Metoda porównywania napisów';
+$strColumnNames = 'Nazwy kolumn';
+$strColumnPrivileges = 'Uprawnienia specyficzne dla kolumn';
+$strCommand = 'Polecenie';
+$strComments = 'Komentarze';
+$strCompatibleHashing = 'Kompatybilny z MySQL-em&nbsp;4.0';
+$strCompleteInserts = 'Pełne dodania';
+$strCompression = 'Typ kompresji';
+$strCompressionWillBeDetected = 'Rodzaj kompresji importowanych plików zostanie automatycznie rozpoznany jako jeden z: %s';
+$strConfigDefaultFileError = 'Nie udało się załadować domyślnej konfiguracji z pliku: "%1$s"';
+$strConfigFileError = 'phpMyAdmin nie zdołał odczytać Twojego pliku konfiguracji!<br />Może się to zdarzyć, jeśli PHP znajdzie w nim błąd składniowy lub nie może znaleźć tego pliku.<br />Proszę wywołać bezpośrednio plik konfiguracyjny używając poniższego linku i odczytać otrzymane komunikat(y) o błędach. W większości przypadków brakuje gdzieś cudzysłowu lub średnika.<br />Jeżeli otrzymasz pustą stronę, wszystko jest w porządku.';
+$strConfigureTableCoord = 'Proszę skonfigurować współrzędnie dla tabeli %s';
+$strConnectionError = 'Nie udało się nawiązać połączenia: błędne ustawienia.';
+$strConnections = 'Połączenia';
+$strConstraintsForDumped = 'Ograniczenia dla zrzutów tabel';
+$strConstraintsForTable = 'Ograniczenia dla tabeli';
+$strCookiesRequired = 'Odtąd musi być włączona obsługa ciasteczek [<i>cookies</i>].';
+$strCopyDatabaseOK = 'Baza danych %s została skopiowana do %s';
+$strCopy = 'Kopiuj';
+$strCopyTableOK = 'Tabela %s została skopiowana do %s.';
+$strCopyTableSameNames = 'Nie można skopiować tabeli do niej samej!';
+$strCopyTable = 'Skopiuj tabelę do (bazadanych<b>.</b>tabela):';
+$strCouldNotKill = 'phpMyAdminowi nie udało się unicestwić wątku %s. Prawdopodobnie został on już zamknięty.';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE przed skopiowaniem';
+$strCreateIndexTopic = 'Utwórz nowy indeksu';
+$strCreateIndex = 'Utwórz indeks dla %s kolumn';
+$strCreateNewDatabase = 'Utwórz nową bazę danych';
+$strCreateNewTable = 'Utwórz nową tabelę w bazie danych %s';
+$strCreatePage = 'Utwórz nową stronę';
+$strCreatePdfFeat = 'Tworzenie PDF-ów';
+$strCreateUserDatabase = 'Baza danych dla użytkownika';
+$strCreateUserDatabaseName = 'Utwórz bazę danych z taką samą nazwą i przyznaj wszystkie uprawnienia';
+$strCreateUserDatabaseNone = 'Brak';
+$strCreateUserDatabaseWildcard = 'Przyznaj wszystkie uprawienia do baz danych o nazwach pasujących do maski (nazwaużytkownika_%)';
+$strCreate = 'Utwórz';
+$strCreationDates = 'Daty utworzenia/aktualizacji/sprawdzenia';
+$strCriteria = 'Kryteria';
+$strCroatian = 'Chorwacki';
+$strCSV = 'CSV';
+$strCyrillic = 'Cyrylica';
+$strCzech = 'Czeski';
+$strCzechSlovak = 'Czesko-słowacki';
+
+$strDanish = 'Duński';
+$strDatabase = 'Baza danych';
+$strDatabaseEmpty = 'Nazwa bazy danych jest pusta!';
+$strDatabaseExportOptions = 'Opcje eksportu bazy danych';
+$strDatabaseHasBeenDropped = 'Baza danych %s została usunięta.';
+$strDatabases = 'Bazy danych';
+$strDatabasesDropped = '%s baz danych zostało pomyślnie usuniętych.';
+$strDatabasesStatsDisable = 'Wyłącz statystyki';
+$strDatabasesStatsEnable = 'Włącz statystyki';
+$strDatabasesStatsHeavyTraffic = 'Uwaga: Włączenie statystyk baz danych może spowodować duży ruch pomiędzy serwerem WWW a serwerem MySQL.';
+$strDatabasesStats = 'Statystyki baz danych';
+$strData = 'Dane';
+$strDataDict = 'Słownik danych';
+$strDataOnly = 'Tylko dane';
+$strDataPages = 'Strony zawierające dane';
+$strDBComment = 'Komentarz bazy danych: ';
+$strDBCopy = 'Kopiuj bazę danych do';
+$strDbPrivileges = 'Uprawnienia specyficzne dla baz danych';
+$strDBRename = 'Zmień nazwę bazy danych na';
+$strDbSpecific = 'specyficzne dla bazy danych';
+$strDefault = 'Domyślnie';
+$strDefaultEngine = '%s to domyślny mechanizm składowania tego serwera MySQL.';
+$strDefaultValueHelp = 'Dla wartości domyślnych, proszę wprowadzić po prostu pojedynczą wartość, bez cytowania odwrotnym ukośnikiem czy ujmowania w cudzysłowy, używając takiego formatu: a';
+$strDefragment = 'Defragmentuj tabelę';
+$strDelayedInserts = 'Użyj opóźnionych dodań';
+$strDeleteAndFlushDescr = 'Jest to najzgrabniejszy sposób, ale przeładowanie uprawnień może potrwać jakiś czas.';
+$strDeleteAndFlush = 'Usuń użytkowników, a następnie przeładuj uprawnienia.';
+$strDeleted = 'Rekord został skasowany';
+$strDeleteNoUsersSelected = 'Żaden użytkownik ze został zaznaczony do skasowania!';
+$strDelete = 'Usuń';
+$strDeleting = 'Usuwanie %s';
+$strDelimiter = 'Separator';
+$strDelOld = 'Aktualna strona ma powiązania z tabelą, która już nie istnieje. Czy chcesz usunąć te powiązania?';
+$strDescending = 'Malejąco';
+$strDescription = 'Opis';
+$strDictionary = 'słownik';
+$strDirtyPages = 'Strony brudne';
+$strDisabled = 'wyłączone';
+$strDisableForeignChecks = 'Wyłącz sprawdzanie kluczy zewnętrznych';
+$strDisplayFeat = 'Funkcje wyświetlania';
+$strDisplayOrder = 'Kolejność wyświetlania:';
+$strDisplayPDF = 'Wyświetl schemat PDF';
+$strDoAQuery = 'Wykonaj "zapytanie przez przykład" (znak globalny: "%")';
+$strDocu = 'Dokumentacja';
+$strDoYouReally = 'Czy na pewno wykonać ';
+$strDropDatabaseStrongWarning = 'Masz zamiar ZNISZCZYĆ całą bazę danych!';
+$strDropUsersDb = 'Usuń bazy danych o takich samych nazwach jak użytkownicy.';
+$strDrop = 'Usuń';
+$strDumpingData = 'Zrzut danych tabeli';
+$strDumpSaved = 'Zrzut został zapisany do pliku %s.';
+$strDumpXRows = 'Zrzuć %s rekordów zaczynając od rekordu %s.';
+$strDynamic = 'zmienny';
+
+$strEdit = 'Edytuj';
+$strEditPDFPages = 'Edytuj strony PDF';
+$strEditPrivileges = 'Edytuj uprawnienia';
+$strEffective = 'Efektywne';
+$strEmptyResultSet = 'MySQL zwrócił pusty wynik (zero rekordów).';
+$strEmpty = 'Wyczyść';
+$strEnabled = 'włączone';
+$strEncloseInTransaction = 'Obejmij eksport transakcją';
+$strEndCut = 'TNIJ DOTĄD';
+$strEnd = 'Koniec';
+$strEndRaw = 'SUROWE DANE DOTĄD';
+$strEngineAvailable = '%s jest dostępny na tym serwerze MySQL.';
+$strEngineDisabled = 'Mechanizm %s został wyłączony w tym serwerze MySQL.';
+$strEngines = 'Mechanizmy';
+$strEngineUnsupported = 'Ten serwer MySQL nie obsługuje mechanizmu składowania %s.';
+$strEnglish = 'Angielski';
+$strEnglishPrivileges = ' Uwaga: Uprawnienia MySQL są oznaczone w języku angielskim ';
+$strError = 'Błąd';
+$strErrorInZipFile = 'Błąd w archiwum ZIP:';
+$strErrorRenamingTable = 'Błąd podczas zmiany nazwy tabeli z %1$s na %2$s';
+$strEscapeWildcards = 'Aby użyć symboli wieloznacznych _ i % w znaczeniu dosłownym, należy je poprzedzić znakiem \ ';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estoński';
+$strExcelEdition = 'Wydanie Excela';
+$strExecuteBookmarked = 'Wykonaj zapamiętanego zapytania';
+$strExplain = 'Wyjaśnij SQL';
+$strExport = 'Eksport';
+$strExportMustBeFile = 'Wybrany typ eksportu musi być zapisany do pliku';
+$strExtendedInserts = 'Rozszerzone dodania';
+$strExtra = 'Dodatkowo';
+
+$strFailedAttempts = 'Nieudane próby';
+$strFieldHasBeenDropped = 'Pole %s zostało usunięte';
+$strField = 'Pole';
+$strFieldsEnclosedBy = 'Pola zawarte w';
+$strFieldsEscapedBy = 'Pola poprzedzone przez';
+$strFields = 'Pola';
+$strFieldsTerminatedBy = 'Pola oddzielane przez';
+$strFileAlreadyExists = 'Plik %s już istnieje na serwerze, zmień nazwę pliku lub zaznacz opcję nadpisywania plików.';
+$strFileCouldNotBeRead = 'Nie można odczytać pliku';
+$strFileNameTemplateDescriptionDatabase = 'nazwa bazy danych';
+$strFileNameTemplateDescription = 'Interpretacja tej wartości należy do funkcji %1$sstrftime%2$s i można użyć jej napisów formatujących. Dodatkowo zostaną zastosowane następujące przekształcenia: %3$s. Pozostały tekst będzie niezmieniony.';
+$strFileNameTemplateDescriptionServer = 'nazwa serwera';
+$strFileNameTemplateDescriptionTable = 'nazwa tabeli';
+$strFileNameTemplateRemember = 'pamiętaj szablon';
+$strFileNameTemplate = 'Szablon nazwy';
+$strFileToImport = 'Plik do importu';
+$strFixed = 'stały';
+$strFlushPrivilegesNote = 'Uwaga: phpMyAdmin pobiera uprawnienia użytkowników wprost z tabeli uprawnień MySQL-a. Zawartość tej tabeli, jeśli zostały w niej dokonane ręczne zmiany, może się różnić od uprawnień jakich faktycznie używa serwer. W takim przypadku powinieneś przed dalszą pracą %sprzeładować uprawnienia%s.';
+$strFlushQueryCache = 'Opróżnij bufor podręczny zapytań';
+$strFlushTable = 'Przeładuj tabelę ("FLUSH")';
+$strFlushTables = 'Przeładuj (zamknij) wszystkie tabele';
+$strFontSize = 'Rozmiar pisma';
+$strFormat = 'Format';
+$strFormEmpty = 'Brakująca wartość w formularzu!';
+$strFreePages = 'Strony puste';
+$strFullText = 'Pełny tekst';
+$strFunction = 'Funkcja';
+$strFunctions = 'Funkcje';
+
+$strGenBy = 'Wygenerowany przez';
+$strGeneralRelationFeat = 'Ogólne funkcje relacyjne';
+$strGenerate = 'Generuj';
+$strGeneratePassword = 'Generuj hasło';
+$strGenTime = 'Czas wygenerowania';
+$strGeorgian = 'Gruziński';
+$strGerman = 'Niemiecki';
+$strGlobal = 'globalnie';
+$strGlobalPrivileges = 'Globalne uprawnienia';
+$strGlobalValue = 'Wartość globalna';
+$strGo = 'Wykonaj';
+$strGrantOption = 'Nadawanie';
+$strGreek = 'Grecki';
+$strGzip = '".gz"';
+
+$strHandler = 'Obsługa';
+$strHasBeenAltered = 'zostało zamienione.';
+$strHaveToShow = 'Należy wybrać przynajmniej jedną kolumnę do wyświetlenia';
+$strHebrew = 'Hebrajski';
+$strHomepageOfficial = 'Oficjalna strona phpMyAdmina';
+$strHome = 'Wejście';
+$strHostEmpty = 'Brak nazwy hosta!';
+$strHost = 'Host';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Węgierski';
+
+$strIcelandic = 'Islandzki';
+$strId = 'ID';
+$strIdxFulltext = 'Pełny tekst';
+$strIgnoreDuplicates = 'Ignoruj zdublowane rekordy';
+$strIgnore = 'Ignoruj';
+$strIgnoreInserts = 'Użyj ignorowanych dodań';
+$strImportFiles = 'Import plików';
+$strImportFormat = 'Format importowanych plików';
+$strImport = 'Import';
+$strImportSuccessfullyFinished = 'Import zakończony sukcesem, wykonano %d zapytań.';
+$strIndexes = 'Indeksy';
+$strIndexHasBeenDropped = 'Klucz %s został usunięty';
+$strIndex = 'Indeks';
+$strIndexName = 'Nazwa indeksu :';
+$strIndexType = 'Rodzaj indeksu :';
+$strIndexWarningTable = 'Problemy z indeksami tabeli `%s`';
+$strInnoDBAutoextendIncrementDesc = 'Rozmiar o jaki automatycznie powiększy się tabela, kiedy zostanie zapełniona.';
+$strInnoDBAutoextendIncrement = 'Przyrost autoextend';
+$strInnoDBBufferPoolSizeDesc = 'Ilość pamięci, której InnoDB używa do buforowania danych i indeksów swoich tabel.';
+$strInnoDBBufferPoolSize = 'Rozmiar rezerw buforowych';
+$strInnoDBDataFilePath = 'Pliki danych';
+$strInnoDBDataHomeDirDesc = 'Wspólna część ścieżki do wszystkich plików danych InnoDB.';
+$strInnoDBDataHomeDir = 'Katalog domowy danych';
+$strInnoDBPages = 'stron';
+$strInnodbStat = 'Status InnoDB';
+$strInsecureMySQL = 'Twój plik konfiguracyjny zawiera ustawienia (konto roota bez hasła), które odpowiadają domyślnemu uprzywilejowanemu kontu MySQL. Twój serwer MySQL działa z takim ustawieniem, jest otwarty dla włamywaczy. Ta luka w bezpieczeństwie naprawdę powinna zostać naprawiona.';
+$strInsertAsNewRow = 'Dodaj jako nowy rekord';
+$strInsert = 'Dodaj';
+$strInternalRelations = 'Wewnętrzne relacje';
+$strInUse = 'w użyciu';
+$strInvalidAuthMethod = 'W konfiguracji ustawiono błędną metodę uwierzytelniania:';
+$strInvalidColumnCount = 'Liczba kolumn musi być większa niż zero.';
+$strInvalidColumn = 'Podano błędną kolumnę (%s)!';
+$strInvalidCSVFieldCount = 'Niewłaściwa liczba pól w linii %d danych wejściowych CSV.';
+$strInvalidCSVFormat = 'Niewłaściwy format w linii %d danych wejściowych CSV.';
+$strInvalidCSVParameter = 'Niewłaściwy parametr importu CSV: %s';
+$strInvalidDatabase = 'Niewłaściwa baza danych';
+$strInvalidFieldAddCount = 'Należy dodać przynajmniej jedno pole.';
+$strInvalidFieldCount = 'Tabela musi mieć przynajmniej jedno pole.';
+$strInvalidLDIImport = 'Ten moduł nie obsługuje skompresowanych importów!';
+$strInvalidRowNumber = '%d nie jest prawidłowym numerem rekordu.';
+$strInvalidServerHostname = 'Niewłaściwa nazwa hosta serwera %1$s. Proszę przyjrzeć się konfiguracji.';
+$strInvalidServerIndex = 'Niewłaściwy numer serwera: "%s"';
+$strInvalidTableName = 'Niewłaściwa nazwa tabeli';
+
+$strJapanese = 'Japoński';
+$strJoins = 'Złączenia';
+$strJumpToDB = 'Skok do bazy danych &quot;%s&quot;.';
+$strJustDeleteDescr = 'Nim uprawnienia zostaną przeładowane, &quot;usunięci&quot; użytkownicy nadal będą mieli dotychczasowy dostęp do serwera.';
+$strJustDelete = 'Po prostu usuń użytkowników z tabeli uprawnień.';
+
+$strKeepPass = 'Nie zmieniaj hasła';
+$strKeyCache = 'Bufor podręczny indeksów';
+$strKeyname = 'Nazwa klucza';
+$strKill = 'Unicestwij';
+$strKorean = 'Koreański';
+
+$strLandscape = 'Orientacja pozioma';
+$strLanguage = 'Język';
+$strLanguageUnknown = 'Nieznany język: %1$s.';
+$strLatchedPages = 'Stron zatrzaśniętych';
+$strLatexCaption = 'Nagłówek tabeli';
+$strLatexContent = 'Zawartość tabeli __TABLE__';
+$strLatexContinuedCaption = 'Kontynuacja nagłówka tabeli';
+$strLatexContinued = '(kontynuacja)';
+$strLatexIncludeCaption = 'Załącz nagłówek tabeli';
+$strLatexLabel = 'Etykieta klucza';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktura tabeli __TABLE__';
+$strLatvian = 'Łotewski';
+$strLDI = 'CSV przy użyciu LOAD DATA';
+$strLDILocal = 'Użyj słowa kluczowego LOCAL';
+$strLengthSet = 'Długość/Wartości*';
+$strLimitNumRows = 'rekordów na stronie';
+$strLinesTerminatedBy = 'Linie zakończone przez';
+$strLinkNotFound = 'Łącze nie znalezione';
+$strLinksTo = 'Łącze';
+$strLithuanian = 'Litewski';
+$strLocalhost = 'Host lokalny';
+$strLocationTextfile = 'Lokalizacja pliku tekstowego';
+$strLoginInformation = 'Dane użytkownika';
+$strLogin = 'Login';
+$strLogout = 'Wyjście';
+$strLogPassword = 'Hasło:';
+$strLogServer = 'Serwer';
+$strLogUsername = 'Użytkownik:';
+$strLongOperation = 'Ta operacja może trwać długo. Czy mimo to kontynuować?';
+
+$strMaxConnects = 'Maks. jednoczesnych połączeń';
+$strMaximalQueryLength = 'Maksymalna długość utworzonego zapytania';
+$strMaximumSize = 'Maksymalny rozmiar: %s%s';
+$strMbExtensionMissing = 'Rozszerzenie PHP o nazwie mbstring nie zostało znalezione, a wygląda na to, że używasz wielobajtowego zestawu znaków. Bez rozszerzenia mbstring phpMyAdmin nie ma możliwości poprawnego rozbijania napisów, co może skutkować niespodziewanymi rezultatami.';
+$strMbOverloadWarning = 'Opcja mbstring.func_overload jest włączona w pliku konfiguracyjnym PHP. Jest ona niezgodna z phpMyAdminem i może powodować utratę niektórych danych!';
+$strMIME_available_mime = 'Dostępne typy MIME';
+$strMIME_available_transform = 'Dostępne transformacje';
+$strMIME_description = 'Opis';
+$strMIME_MIMEtype = 'Typ MIME';
+$strMIME_nodescription = 'Transformacja ta nie ma opisu.<br />Proszę zapytać autora, co robi %s.';
+$strMIME_transformation_note = 'Aby uzyskać listę dostępnych opcji transformacji i ich typów MIME, kliknij %sopisy transformacji%s';
+$strMIME_transformation_options_note = 'Proszę wprowadzić wartości dla transformacji w następującym formacie: \'a\', 100, b,\'c\'...<br />Jeżeli potrzeba wprowadzić odwrotny ukośnik ("\") lub apostrof ("\'"), należy je poprzedzić odwrotnym ukośnikiem (np.: \'\\\\xyz\' lub \'a\\\'b\').';
+$strMIME_transformation_options = 'Opcje transformacji';
+$strMIME_transformation = 'Sposób prezentacji danych';
+$strMIMETypesForTable = 'TYPY MIME TABELI';
+$strMIME_without = 'Typy MIME pisane czcionką pochyloną nie mają oddzielnej funkcji transformacji';
+$strModifications = 'Modyfikacje zostały zapamiętane';
+$strModifyIndexTopic = 'Modyfikacja indeksu';
+$strModify = 'Modyfikacja';
+$strMoveTableOK = 'Tabela %s została przeniesiona do %s.';
+$strMoveTable = 'Przenieś tabelę do (bazadanych<b>.</b>tabela):';
+$strMoveTableSameNames = 'Nie można przenieść tabeli do niej samej!';
+$strMultilingual = 'wiele języków';
+$strMyISAMDataPointerSizeDesc = 'Domyślny rozmiar wskaźnika w bajtach, który jest używany przez CREATE TABLE dla tabel MyISAM, gdy nie określono opcji MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Rozmiar wskaźnika danych';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Jeżeli plik tymczasowy użyty przy szybkim tworzeniu indeksu MyISAM byłby większy o wartość tu określoną, niż w wypadku zastosowania metody pamięci podręcznej kluczy, preferuj tę drugą metodę.';
+$strMyISAMMaxExtraSortFileSize = 'Maksymalny rozmiar pliku tymczasowego dla tworzenia indeksu';
+$strMyISAMMaxSortFileSizeDesc = 'Maksymalny rozmiar pliku tymczasowego, którego może zostać użyty przy ponownym tworzeniu indeksu MyISAM (podczas operacji REPAIR TABLE, ALTER TABLE lub LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maksymalny rozmiar pliku tymczasowego dla sortowania';
+$strMyISAMRecoverOptionsDesc = 'Tryb w którym po awarii tabele MyISAM są automatycznie naprawiane; włączany przez opcję startową serwera --myisam-recover.';
+$strMyISAMRecoverOptions = 'Tryb automatycznej naprawy';
+$strMyISAMRepairThreadsDesc = 'Wartość większa niż 1 oznacza, że indeksy tabel MyISAM są tworzone współbieżnie (każdy indeks ma swój wątek) podczas naprawy przez proces sortujący.';
+$strMyISAMRepairThreads = 'Liczba wątków naprawiających';
+$strMyISAMSortBufferSizeDesc = 'Bufor, który jest alokowany w czasie sortowania indeksów MyISAM podczas operacji REPAIR TABLE albo gdy indeksy są tworzone przez polecenia CREATE INDEX lub ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Rozmiar bufora dla sortowania';
+$strMySQLCharset = 'System kodowania znaków dla MySQL';
+$strMysqlClientVersion = 'Wersja klienta MySQL';
+$strMySQLConnectionCollation = 'System porównań dla połączenia MySQL';
+$strMySQLSaid = 'MySQL zwrócił komunikat: ';
+$strMySQLShowProcess = 'Pokaż procesy';
+
+$strName = 'Nazwa';
+$strNext = 'Następne';
+$strNoActivity = 'Brak aktywności przez co najmniej %s sekund, proszę zalogować się jeszcze raz';
+$strNoDatabases = 'Brak baz danych';
+$strNoDatabasesSelected = 'Żadna baza danych nie został wybrana.';
+$strNoDataReceived = 'Nie otrzymano żadnych danych do importu. Albo nie została wysłana nazwa pliku, albo plik był zbyt duży (maksymalny dopuszczalny rozmiar pliku określa się w konfiguracji PHP). Zobacz FAQ 1.16.';
+$strNoDescription = 'brak opisu';
+$strNoDetailsForEngine = 'Brak szczegółowych informacji o tym mechanizmie składowania';
+$strNoDropDatabases = 'Polecenie "DROP DATABASE" jest zablokowane.';
+$strNoExplain = 'Pomiń wyjaśnienie SQL';
+$strNoFilesFoundInZip = 'Archiwum ZIP jest puste!';
+$strNoFrames = 'phpMyAdmin jest bardziej przyjazny w przeglądarkach <b>obsługujących ramki</b>';
+$strNoIndex = 'Brak zdefiniowanego indeksu!';
+$strNoIndexPartsDefined = 'Brak zdefiniowanych części indeksu!';
+$strNoModification = 'Bez zmian';
+$strNone = 'Brak';
+$strNo = 'Nie';
+$strNoOptions = 'Ten format nie ma żadnych opcji';
+$strNoPassword = 'Brak hasła';
+$strNoPermission = 'Serwer WWW nie ma praw do zapisu pliku %s.';
+$strNoPhp = 'bez kodu PHP';
+$strNoPrivileges = 'Brak uprawnień';
+$strNoRights = 'Brak wystarczających uprawnień!';
+$strNoRowsSelected = 'Żaden rekord nie został zaznaczony';
+$strNoSpace = 'Brak miejsca na zapis pliku %s.';
+$strNoTablesFound = 'Nie znaleziono tabeli w bazie danych.';
+$strNoThemeSupport = 'Brak obsługi motywów graficznych, proszę sprawdzić konfigurację i/lub motywy graficzne w katalogu %s.';
+$strNotNumber = 'To nie jest liczba!';
+$strNotOK = 'błąd';
+$strNotSet = 'Tabela <b>%s</b> nie została znaleziona lub nie jest ustawiona w %s';
+$strNoUsersFound = 'Nie znaleziono użytkownika(ów).';
+$strNoValidateSQL = 'Pomiń sprawdzanie poprawności SQL';
+$strNull = 'Null';
+$strNumberOfFields = 'Liczba pól';
+$strNumSearchResultsInTable = '%s trafień wewnątrz tabeli <i>%s</i>';
+$strNumSearchResultsTotal = '<b>W sumie:</b> <i>%s</i> trafień';
+$strNumTables = 'Tabele';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'arkusz kalkulacyjny w formacie Open Document';
+$strOpenDocumentText = 'Tekst w formacie Open Document';
+$strOpenNewWindow = 'Otwórz nowe okno phpMyAdmina';
+$strOperations = 'Operacje';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optymalizuj tabelę';
+$strOr = 'lub';
+$strOverhead = 'Nadmiar';
+$strOverwriteExisting = 'Nadpisuj istniejące pliki';
+
+$strPageNumber = 'Numer strony:';
+$strPagesToBeFlushed = 'Strony do wymiecenia';
+$strPaperSize = 'Rozmiar papieru';
+$strPartialImport = 'Import częściowy';
+$strPartialText = 'Skrócony tekst';
+$strPasswordChanged = 'Hasło dla %s zostało pomyślnie zmienione.';
+$strPasswordEmpty = 'Puste hasło!';
+$strPassword = 'Hasło';
+$strPasswordHashing = 'Sposób kodowania haseł';
+$strPasswordNotSame = 'Hasła nie są identyczne!';
+$strPdfDbSchema = 'Schemat bazy danych "%s" - strona %s';
+$strPdfInvalidTblName = 'Tabela "%s" nie istnieje!';
+$strPdfNoTables = 'Brak tabel';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Generuje raport zawierający danej pojedynczej tabeli.)';
+$strPDFReportTitle = 'Tytuł raportu';
+$strPerHour = 'na godzinę';
+$strPerMinute = 'na minutę';
+$strPerSecond = 'na sekundę';
+$strPersian = 'Perski';
+$strPhoneBook = 'książka telefoniczna';
+$strPhp = 'Utwórz kod PHP';
+$strPHPVersion = 'Wersja PHP';
+$strPmaDocumentation = 'Dokumentacja phpMyAdmina';
+$strPmaUriError = 'Dyrektywa <tt>$cfg[\'PmaAbsoluteUri\']</tt> musi być ustawiona w pliku konfiguracyjnym!';
+$strPolish = 'Polski';
+$strPortrait = 'Orientacja pionowa';
+$strPos1 = 'Początek';
+$strPrevious = 'Poprzednie';
+$strPrimaryKeyHasBeenDropped = 'Klucz podstawowy został usunięty';
+$strPrimaryKeyName = 'Nazwą podstawowego klucza musi być... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>musi</b> być nazwą <b>jedynie</b> klucza podstawowego!)';
+$strPrimary = 'Podstawowy';
+$strPrint = 'Drukuj';
+$strPrintViewFull = 'Widok do druku (z pełnymi tekstami)';
+$strPrintView = 'Widok do druku';
+$strPrivDescAllPrivileges = 'Wszystkie uprawnienia, oprócz GRANT.';
+$strPrivDescAlter = 'Pozwól zmieniać strukturę istniejących tabel.';
+$strPrivDescAlterRoutine = 'Pozwól modyfikować i usuwać procedury składowane.';
+$strPrivDescCreateDb = 'Pozwól tworzyć nowe bazy danych i tabele.';
+$strPrivDescCreateRoutine = 'Pozwól tworzyć procedury składowane.';
+$strPrivDescCreateTbl = 'Pozwól tworzyć nowe tabele.';
+$strPrivDescCreateTmpTable = 'Pozwala tworzyć tabele tymczasowe.';
+$strPrivDescCreateUser = 'Pozwól tworzyć, usuwać i zmieniać nazwy kont użytkowników.';
+$strPrivDescCreateView = 'Pozwól tworzyć perspektywy.';
+$strPrivDescDelete = 'Pozwól usuwać dane.';
+$strPrivDescDropDb = 'Pozwól usuwać bazy danych i tabele.';
+$strPrivDescDropTbl = 'Pozwól usuwać tabele.';
+$strPrivDescExecute5 = 'Pozwól wykonywać procedury składowane.';
+$strPrivDescExecute = 'Pozwól uruchamiać zapamiętane procedury; Nie ma żadnych skutków w tej wersji MySQL.';
+$strPrivDescFile = 'Pozwól importować i eksportować dane z/do plików.';
+$strPrivDescGrant = 'Pozwól dodawać użytkowników i nadawać uprawnienia bez przeładowywania tabeli uprawnień.';
+$strPrivDescIndex = 'Pozwól tworzyć i usuwać indeksy.';
+$strPrivDescInsert = 'Pozwól dodawać i zamieniać dane.';
+$strPrivDescLockTables = 'Pozwól blokować tabele dla aktualnego wątku.';
+$strPrivDescMaxConnections = 'Ogranicz liczbę nowych połączeń, które może otworzyć użytkownik w ciągu godziny.';
+$strPrivDescMaxQuestions = 'Ogranicz liczbę zapytań, które może wysłać użytkownik w ciągu godziny.';
+$strPrivDescMaxUpdates = 'Ogranicz liczbę poleceń zmieniających jakąkolwiek tabelę lub bazę danych, które może wykonać użytkownik w ciągu godziny.';
+$strPrivDescMaxUserConnections = 'Ogranicz liczbę jednoczesnych połączeń, które może użytkownik.';
+$strPrivDescReferences = 'Nie ma żadnych skutków w tej wersji MySQL.';
+$strPrivDescReload = 'Pozwól przeładowywać ustawienia serwera i opróżniać pamięć podręczną serwera.';
+$strPrivDescReplClient = 'Nadaj użytkownikowi prawo, by zapytać gdzie są serwery podrzędne / nadrzędne.';
+$strPrivDescReplSlave = 'Potrzebne dla replikacji serwera podrzędnego.';
+$strPrivDescSelect = 'Pozwól czytać dane.';
+$strPrivDescShowDb = 'Daj dostęp do pełnej listy baz danych.';
+$strPrivDescShowView = 'Pozwól wykonywać zapytania SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Pozwól zamknąć serwer.';
+$strPrivDescSuper = 'Pozwól na połączenie, nawet jeśli osiągnięta została maksymalna ilość połączeń; Wymagane dla większość operacji administracyjnych, takich jak ustawianie zmiennych globalnych czy unicestwianie wątków innych użytkowników.';
+$strPrivDescUpdate = 'Pozwól zmieniać dane.';
+$strPrivDescUsage = 'Brak uprawnień.';
+$strPrivilegesReloaded = 'Uprawnienia zostały pomyślnie przeładowane.';
+$strPrivileges = 'Uprawnienia';
+$strProcedures = 'Procedury';
+$strProcesses = 'Procesy';
+$strProcesslist = 'Lista procesów';
+$strProtocolVersion = 'Wersja protokołu';
+$strPutColNames = 'Umieść nazwy pól w pierwszym rekordzie';
+
+$strQBEDel = 'Usuń';
+$strQBEIns = 'Dodaj';
+$strQBE = 'Zapytanie przez przykład';
+$strQueryCache = 'Pamięć podręczna zapytań';
+$strQueryFrame = 'Okienko zapytania';
+$strQueryOnDb = 'Zapytanie SQL dla bazy danych <b>%s</b>:';
+$strQueryResultsOperations = 'Operacja na wynikach zapytania';
+$strQuerySQLHistory = 'Historia SQL';
+$strQueryStatistics = '<b>Statystyki zapytań</b>: Od rozpoczęcia jego pracy, do serwera zostało wysłanych %s zapytań.';
+$strQueryTime = 'Wykonanie zapytania trwało %01.4f sekund(y)';
+$strQueryType = 'Rodzaj zapytania';
+$strQueryWindowLock = 'Nie nadpisuj tego zapytania spoza okna';
+
+$strReadRequests = 'Żądań odczytu';
+$strReceived = 'Otrzymane';
+$strRecords = 'Rekordy';
+$strReferentialIntegrity = 'Sprawdź spójność powiązań:';
+$strRefresh = 'Odśwież';
+$strRelationalSchema = 'Schemat relacyjny';
+$strRelationNotWorking = 'Dodatkowe możliwości pracy z połączonymi tabelami zostały wyłączone. Aby dowiedzieć się, dlaczego - kliknij %stutaj%s.';
+$strRelationsForTable = 'RELACJE TABELI';
+$strRelations = 'Relacje';
+$strRelationView = 'Widok relacyjny';
+$strReloadingThePrivileges = 'Przeładuj uprawnienia';
+$strReloadPrivileges = 'Przeładuj uprawnienia';
+$strRemoveSelectedUsers = 'Usuń zaznaczonych użytkowników';
+$strRenameDatabaseOK = 'Baza danych %s ma nazwę zmienioną na %s';
+$strRenameTableOK = 'Tabela %s ma nazwę zmienioną na %s';
+$strRenameTable = 'Zmień nazwę tabeli na';
+$strRepairTable = 'Napraw tabelę';
+$strReplaceNULLBy = 'Zamiana NULL na';
+$strReplaceTable = 'Zamiana danych tabeli z plikiem';
+$strReplication = 'Replikacja';
+$strReset = 'Reset';
+$strResourceLimits = 'Ograniczenia zasobów';
+$strReType = 'Ponownie';
+$strRevokeAndDelete = 'Cofnij wszystkie aktywne uprawnienia użytkownikom, a następnie usuń ich.';
+$strRevokeAndDeleteDescr = 'Nim uprawnienia zostaną przeładowane, użytkownicy nadal będą mieli uprawnienie USAGE.';
+$strRevoke = 'Cofnij';
+$strRevokeMessage = 'Uprawnienia dla %s zostały cofnięte';
+$strRomanian = 'Rumuński';
+$strRowLength = 'Długość rekordu';
+$strRowsFrom = 'rekordów począwszy od';
+$strRowSize = ' Rozmiar rekordu ';
+$strRowsModeFlippedHorizontal = 'poziomo (obrócone nagłówki)';
+$strRowsModeHorizontal = 'poziomo';
+$strRowsModeOptions = 'w trybie %s powtórz nagłówki po %s komórkach';
+$strRowsModeVertical = 'pionowo';
+$strRows = 'Rekordów';
+$strRowsStatistic = 'Statystyka rekordów';
+$strRunning = 'uruchomiony na %s';
+$strRunQuery = 'Wykonaj zapytania';
+$strRunSQLQueryOnServer = 'Uruchom zapytanie/zapytania SQL na serwerze %s';
+$strRunSQLQuery = 'Wykonanie zapytania/zapytań SQL do bazy danych %s';
+$strRussian = 'Rosyjski';
+
+$strSaveOnServer = 'Zapisz na serwerze w katalogu %s';
+$strSave = 'Zachowaj';
+$strScaleFactorSmall = 'Współczynnik skali jest za mały, by schemat zmieścił się na jednej stronie';
+$strSearchFormTitle = 'Szukaj w bazie danych';
+$strSearchInTables = 'Wewnątrz tabel(i):';
+$strSearchNeedle = 'Szukane słowa lub wartości (symbol wieloznaczny: "%"):';
+$strSearchOption1 = 'przynajmniej jedno ze słów';
+$strSearchOption2 = 'wszystkie słowa';
+$strSearchOption3 = 'cała fraza';
+$strSearchOption4 = 'wyrażenie regularne';
+$strSearchResultsFor = 'Szukaj w rezultatach dla "<i>%s</i>" %s:';
+$strSearch = 'Szukaj';
+$strSearchType = 'Znajdź:';
+$strSecretRequired = 'Plik konfiguracyjny wymaga teraz tajnej frazy kodującej (blowfish_secret).';
+$strSelectADb = 'Proszę wybrać bazę danych';
+$strSelectAll = 'Zaznacz wszystkie';
+$strSelectBinaryLog = 'Wybierz dziennik binarny do podglądu';
+$strSelectFields = 'Wybór pól (co najmniej jedno):';
+$strSelectNumRows = 'w zapytaniu';
+$strSelectTables = 'Wybierz tabele';
+$strSend = 'Zapisz jako plik';
+$strSent = 'Wysłane';
+$strServerChoice = 'Wybór serwera';
+$strServerNotResponding = 'Serwer nie odpowiada';
+$strServer = 'Serwer';
+$strServers = 'Serwery';
+$strServerStatusDelayedInserts = 'Opóźnione dodania';
+$strServerStatus = 'Informacje o działaniu serwera';
+$strServerStatusUptime = 'Serwer MySQL działa przez %s. Początek pracy: %s.';
+$strServerTabVariables = 'Zmienne';
+$strServerTrafficNotes = '<b>Ruch na serwerze</b>: Poniższe tabele pokazują statystyki ruchu na tym serwerze MySQL od rozpoczęcia jego pracy.';
+$strServerVars = 'Zmienne i ustawienia serwera';
+$strServerVersion = 'Wersja serwera';
+$strSessionValue = 'Wartość sesji';
+$strSetEnumVal = 'Jeżeli pole jest typu "ENUM" lub "SET", wartości wprowadza się w formacie: \'a\',\'b\',\'c\'...<br />Jeżeli potrzeba wprowadzić odwrotny ukośnik ("\") lub apostrof ("\'"), należy je poprzedzić odwrotnym ukośnikiem (np.: \'\\\\xyz\' lub \'a\\\'b\').';
+$strShowAll = 'Pokaż wszystko';
+$strShowColor = 'Pokaż kolor';
+$strShowDatadictAs = 'Format słownika danych';
+$strShowFullQueries = 'Pokaż pełne zapytania';
+$strShowGrid = 'Pokaż siatkę';
+$strShowingBookmark = 'Pokaz zapamiętanego zapytania';
+$strShowingRecords = 'Pokaż rekordy ';
+$strShowOpenTables = 'Pokaż otwarte tabele';
+$strShowPHPInfo = 'Informacje o PHP';
+$strShow = 'Pokaż';
+$strShowSlaveHosts = 'Pokaż podrzędne hosty';
+$strShowSlaveStatus = 'Status serwera podrzędnego';
+$strShowStatusBinlog_cache_disk_useDescr = 'Liczba transakcji, które używały pamięci podręcznej tymczasowego dziennika binarnego, ale który przekroczyły wartość binlog_cache_size i do zapisania instrukcji transakcji został użyty plik tymczasowy.';
+$strShowStatusBinlog_cache_useDescr = 'Liczba transakcji, które używały pamięci podręcznej tymczasowego dziennika binarnego.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Liczba tabel tymczasowych na dysku utworzonych automatycznie przez serwer podczas wykonywanie instrukcji. Przy dużej wartości Created_tmp_disk_tables, zwiększenie wartości tmp_table_size spowoduje tworzenie tymczasowych tabel w pamięci, a nie na dysku.';
+$strShowStatusCreated_tmp_filesDescr = 'Ile plików tymczasowych utworzył mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'Liczba tabel tymczasowych w pamięci, utworzonych automatycznie przez serwer podczas wykonywania instrukcji.';
+$strShowStatusDelayed_errorsDescr = 'Liczba rekordów zapisanych przy pomocy INSERT DELAYED, dla których wystąpił jakiś błąd (prawdopodobnie zdublowany klucz).';
+$strShowStatusDelayed_insert_threadsDescr = 'Liczba użytych wątków obsługujących INSERT DELAYED. Każda osobna tabela, na której wykonuje się INSERT DELAYED dostaje własny wątek.';
+$strShowStatusDelayed_writesDescr = 'Liczba rekordów zapisanych poprzez INSERT DELAYED.';
+$strShowStatusFlush_commandsDescr = 'Liczba wykonanych instrukcji FLUSH.';
+$strShowStatusHandler_commitDescr = 'Liczba wewnętrznych intrukcji COMMIT.';
+$strShowStatusHandler_deleteDescr = 'Ile razy rekord został usunięty z tabeli.';
+$strShowStatusHandler_discoverDescr = 'Serwer MySQL może zapytać mechanizm składowania Cluster NDB, czy ma informacje o tabeli o zadanej nazwie. Nazywamy to odkryciem (<i>discovery</i>). Handler_discover wskazuje, ile razy tabela została odkryta.';
+$strShowStatusHandler_read_firstDescr = 'Ile razy z indeksu została odczytana pierwsza pozycja. Duża wartość sugeruje, że serwer wykonuje pełnych przeszukań indeksów; na przykład SELECT col1 FROM foo, przy założeniu, że col1 jest zindeksowane.';
+$strShowStatusHandler_read_keyDescr = 'Liczba żądań odczytu rekordu na podstawie indeksu. Duża wartość to dobra oznaka tego, że zapytania i tabele są właściwie zindeksowane.';
+$strShowStatusHandler_read_nextDescr = 'Liczba żądań odczytu następnego rekordu w porządku indeksowym. Ta wartość jest zwiększana przy odpytywaniu o zindeksowaną kolumnę na ograniczonym przedziale lub przy przeszukiwaniu indeksu.';
+$strShowStatusHandler_read_prevDescr = 'Liczba żądań odczytu poprzedniego rekordu w porządku indeksowym. Metoda używana głównie do optymalizacji ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Liczba żądań odczytu następnego rekordu na podstawie stałego położenia. Wartość jest duża przy wykonywaniu dużej ilości zapytań wymagających sortowania rezultatu. Prawdopodobnie wykonano wiele zapytań wymagających przeszukania całej tabeli lub złączeń, które nie używają poprawnie indeksów.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Liczba żądań odczytu następnego rekord w pliku z danymi. Wartość jest duża przy wykonywania wielu przeszukiwań tabeli. Ogólnie sugeruje to, że tabele nie są poprawnie zindeksowane lub że zapytania nie są napisane w sposób pozwalający skorzystać z istniejących indeksów.';
+$strShowStatusHandler_rollbackDescr = 'Liczba wewnętrznych instrukcji ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'Liczba żądań zmiany rekordu w tabeli.';
+$strShowStatusHandler_writeDescr = 'Liczba żądań dodania rekordu do tabeli.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Liczba stron zawierających dane (brudnych lub czystych).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Liczba aktualnie brudnych stron.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Liczba stron w puli bufora, których wymiecienia zażądano.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Liczba wolnych stron.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Liczba stron zatrzaśniętych w puli bufora InnoDB. Są to strony aktualnie odczytywane lub zapisywane lub takie, które nie mogą zostać wymiecione lub usunięte z jakiegoś innego powodu.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Liczba strony stron zajętych z powodu ich alokacji dla celów administracyjnych takich jak blokady rekordu lub adaptacyjny indeks haszujący. Wartość ta może też zostać policzona jako Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Łączny rozmiar puli bufora, w stronach.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Liczba "losowych" odczytów z wyprzedzeniem zainicjowanych przez InnoDB. Występuje gdy zapytane przeszukiwałoby duże fragmenty tabeli, ale w dowolnej kolejności.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Liczba sekwencyjnych odczytów z wyprzedzeniem zainicjowanych przez InnoDB. Występuje gdy InnoDB wykonuje sekwencyjne pełne przeszukiwanie tabeli.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Liczba żądań logicznych odczytów które wykonał InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Liczba logicznych odczytów, których InnoDB nie mógł zaspokoić pulą bufora i musiał wykonać odczyt pojedynczej strony.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Zwykle zapis do puli bufora InnoDB obywa się w tle. Jednakże, jeśli niezbędny jest odczyt lub utworzenie strony a brak jest czystych stron, konieczne jest najpierw oczekiwanie na wymiecienie stron. Ten licznik wskazuje liczbę wystąpień takich oczekiwań. Jeżeli rozmiar puli bufora był ustawiony właściwie, wartość ta powinna być mała.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Liczba wykonanych zapisów do puli bufora InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Liczba dotąd wykonanych operacji fsync().';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Aktualna liczba operacji fsync() w toku.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Aktualna liczba odczytów w toku.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Aktualna liczba zapisów w toku.';
+$strShowStatusInnodb_data_readDescr = 'Ilość dotąd odczytanych danych, w bajtach.';
+$strShowStatusInnodb_data_readsDescr = 'Łączna liczba odczytów danych.';
+$strShowStatusInnodb_data_writesDescr = 'Łączna liczba zapisów danych.';
+$strShowStatusInnodb_data_writtenDescr = 'Ilość dotąd zapisanych danych, w bajtach.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Liczba przeprowadzonych zapisów typu <i>doublewrite</i>.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Liczba stron zapisanych przy zapisie typu <i>doublewrite</i>.';
+$strShowStatusInnodb_log_waitsDescr = 'Ile razy czekano, bo bufor dziennika był zbyt mały i przed wznowieniem pracy oczekiwano na jego opróżnienie.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Liczba żądań zapisów do dziennika.';
+$strShowStatusInnodb_log_writesDescr = 'Liczba fizycznych zapisów do pliku dziennika.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Liczba synchronicznych zapisów do pliku dziennika.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Liczba wywołań fsync dla pliku dziennika w toku.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Liczba zapisów do pliku dziennika w toku.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Liczba bajtów zapisanych do pliku dziennika.';
+$strShowStatusInnodb_pages_createdDescr = 'Liczba utworzonych stron.';
+$strShowStatusInnodb_page_sizeDescr = 'Wkompilowana wielkość strony InnoDB (domyślnie 16KB). Wiele wartości jest mierzonych w stronach; znajomość wielkości strony pozwala na ich łatwą konwersję na bajty.';
+$strShowStatusInnodb_pages_readDescr = 'Liczba odczytanych stron.';
+$strShowStatusInnodb_pages_writtenDescr = 'Liczba zapisanych stron.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Liczba blokad rekordów na które aktualnie się czeka.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Średni czas uzyskania blokady rekordu, w milisekundach.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Całkowity czas zużyty na uzyskiwanie blokad rekordów, w milisekundach.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maksymalny czas uzyskania blokady rekordu, w milisekundach.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Ile razy czekano na blokadę rekordu.';
+$strShowStatusInnodb_rows_deletedDescr = 'Liczba rekordów usuniętych z tabel InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'Liczba rekordów dodanych do tabel InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'Liczba rekordów odczytanych z tabel InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'Liczba rekordów zmienionych w tabelach InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Liczba bloków w buforze podręcznym indeksów, które zostały zmodyfikowane ale jeszcze nie wymiecione na dysk. Wcześniej zmienna miała nazwę Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Liczba nieużywanych bloków w buforze podręcznym indeksów. Można użyć tej wartości do określenia jaka część bufora indeksów jest w użyciu.';
+$strShowStatusKey_blocks_usedDescr = 'Liczba użytych bloków w buforze podręcznym indeksów. Ta wartość to próg, który wskazuje maksymalną liczbę kiedykolwiek jednocześnie użytych bloków.';
+$strShowStatusKey_read_requestsDescr = 'Liczba żądań odczytu bloku z bufora podręcznego indeksów.';
+$strShowStatusKey_readsDescr = 'Liczba fizycznych odczytów bloków indeksów z dysku. Duża wartość key_reads oznacza, że prawdopodobnie wartość key_buffer_size jest zbyt mała. Współczynnik chybień bufora podręcznego można policzyć ze wzoru Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Liczba żądań zapisów bloków indeksów to bufora podręcznego.';
+$strShowStatusKey_writesDescr = 'Liczba fizycznych zapisów bloków indeksów na dysk.';
+$strShowStatusLast_query_costDescr = 'Całkowity koszta ostatnio skompilowanego zapytania, wyliczony przez optymalizator zapytań. Przydatny do porównań kosztów różnych planów wykonania tego samego zapytania. Domyślna wartość 0 oznacza, że jeszcze żadne zapytanie nie zostało skompilowane.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Liczba rekordów oczekujących na zapisanie w kolejkach INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Liczba kiedykolwiek otwartych tabel. Jeśli ta wartość jest duża, prawdopodobnie wielkość pamięci podręcznej tabel jest zbyt mała.';
+$strShowStatusOpen_filesDescr = 'Liczba otwartych plików.';
+$strShowStatusOpen_streamsDescr = 'Liczba otwartych strumieni (używanych głownie do rejestracji w dzienniku).';
+$strShowStatusOpen_tablesDescr = 'Liczba otwartych tabel.';
+$strShowStatusQcache_free_blocksDescr = 'Liczba wolnych bloków pamięci w podręcznym buforze zapytań.';
+$strShowStatusQcache_free_memoryDescr = 'Ilość dostępnej pamięci w podręcznym buforze zapytań.';
+$strShowStatusQcache_hitsDescr = 'Liczba trafień pamięci podręcznej.';
+$strShowStatusQcache_insertsDescr = 'Liczba zapytań dodanych do pamięci podręcznej.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Liczba zapytań, które zostały usunięte z pamięci podręcznej, by zwolnic pamięć do buforowania nowych zapytań. Ta informacje może pomóc dostroić wielkość bufora podręcznego. Do decydowania o tym, które zapytania usunąć z bufora podręcznego używana jest strategia "najpierw najdłużej nieużywany" (<i>least recently used</i> - LRU).';
+$strShowStatusQcache_not_cachedDescr = 'Liczba niezbuforowanych zapytań (nie dających się zbuforować lub niezbuforowanych z powodu ustawienia query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Liczba zapytań zarejestrowanych w buforze podręcznym.';
+$strShowStatusQcache_total_blocksDescr = 'Całkowita liczba bloków w buforze podręcznym zapytań.';
+$strShowStatusReset = 'Zresetuj';
+$strShowStatusRpl_statusDescr = 'Stan replikacji zabezpieczającej (jeszcze nie zaimplementowane).';
+$strShowStatusSelect_full_joinDescr = 'Liczba złączeń nie używających indeksów. Wartość różna od 0 sugeruje staranne przyjrzenie się indeksom tabel.';
+$strShowStatusSelect_full_range_joinDescr = 'Liczba złączeń w których użyto wyszukiwania zakresowego na pierwszej złączanej tabeli.';
+$strShowStatusSelect_range_checkDescr = 'Liczba złączeń bez użycia indeksów gdy możliwość ich użycia była sprawdzana dla każdego rekordu. (Wartość różna od 0 sugeruje staranne przyjrzenie się indeksom tabel.)';
+$strShowStatusSelect_rangeDescr = 'Liczba złączeń w których użyto zakresów w stosunku do pierwszej tabeli. (Nawet duża wartość nie ma kluczowego znaczenia.)';
+$strShowStatusSelect_scanDescr = 'Liczba złączeń, które przeszukały w pełni pierwszą tabelę.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Liczba tymczasowych tabel aktualnie otwartych przez podrzędny wątek SQL.';
+$strShowStatusSlave_retried_transactionsDescr = 'Ile raz łącznie (od startu) podrzędny wątek SQL replikacji ponawiał transakcje.';
+$strShowStatusSlave_runningDescr = 'ON oznacza, że ten serwer jest podrzędny i jest podłączony go serwera głównego.';
+$strShowStatusSlow_launch_threadsDescr = 'Liczba wątków, których utworzenie trwało dłużej niż slow_launch_time sekund.';
+$strShowStatusSlow_queriesDescr = 'Liczba zapytań, których wykonanie zajęło więcej niż long_query_time sekund.';
+$strShowStatusSort_merge_passesDescr = 'Liczba przebiegów scalania, które musiał wykonać algorytm sortujący. Przy dużej wartości, warto wziąć pod uwagę zwiększenie wartości zmiennej systemowej sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Liczba sortować wykonanych przy użyciu zakresów.';
+$strShowStatusSort_rowsDescr = 'Liczba posortowanych rekordów.';
+$strShowStatusSort_scanDescr = 'Liczba sortowań wykonanych poprzez przeszukiwanie tabeli.';
+$strShowStatusTable_locks_immediateDescr = 'Ile razy blokada tabeli została uzyskana natychmiastowo.';
+$strShowStatusTable_locks_waitedDescr = 'Ile razy blokada tabeli nie mogła zostać uzyskana natychmiastowo i niezbędne było oczekiwanie. Przy wysoka wartość oraz problemach z wydajnością powinno się najpierw zoptymalizować zapytania, a następnie podzielić tabelę (tabele) lub użyć replikacji.';
+$strShowStatusThreads_cachedDescr = 'Liczba wątków w buforze podręcznym wątków. Współczynnik trafienia w bufor może być wyliczony ze wzoru Threads_created/Connections. Kolor czerwony oznacza, że powinno się zwiększyć thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Liczba aktualnie otwartych połączeń.';
+$strShowStatusThreads_createdDescr = 'Liczba wątków utworzonych by obsłużyć połączenia. Jeżeli wartość Threads_created jest duża, można chcieć zwiększyć wartość thread_cache_size. (W przypadku dobrej implementacja wątków zwykle nie daje to zauważalnego polepszenia wydajności.)';
+$strShowStatusThreads_runningDescr = 'Liczba nieuśpionych wątków.';
+$strShowTableDimension = 'Pokaż wymiary tabel';
+$strShowTables = 'Pokaż tabele';
+$strShowThisQuery = ' Wywołaj ponownie zapytanie ';
+$strSimplifiedChinese = 'Chiński uproszczony';
+$strSingly = '(pojedynczo)';
+$strSize = 'Rozmiar';
+$strSkipQueries = 'Liczba rekordów (zapytań), które należy z początku pominąć';
+$strSlovak = 'Słowacki';
+$strSlovenian = 'Słoweński';
+$strSocketProblem = '(lub gniazdo lokalnego serwera MySQL nie jest skonfigurowane poprawnie)';
+$strSortByKey = 'Sortuj wg klucza';
+$strSorting = 'Sortowanie';
+$strSort = 'Sortuj';
+$strSpaceUsage = 'Wykorzystanie przestrzeni';
+$strSpanish = 'Hiszpański';
+$strSplitWordsWithSpace = 'Słowa są rozdzielane znakiem spacji (" ").';
+$strSQLCompatibility = 'Tryb zgodności SQL';
+$strSQLExportType = 'Rodzaj eksportu';
+$strSQLParserBugMessage = 'Istnieje szansa, że właśnie znaleziono błąd w analizatorze składni SQL. Proszę zbadać bliżej swoje zapytanie i sprawdzić, czy cudzysłowy są poprawne i dobrze sparowane. Inną możliwą przyczyną niepowodzenia może być wysyłanie pliku ze znakami binarnymi poza obszarem tekstu ujętego w cudzysłowy. Można również sprawdzić zapytanie SQL poprzez linię poleceń MySQL-a. W znalezieniu przyczyny problemu może pomóc także - jeśli się pojawi - poniższy opis błędu serwera MySQL. Jeśli nadal występują z problemy lub analizator składni zgłasza usterkę a linia poleceń - nie, ogranicz sekwencję zapytań SQL do pojedynczego, które powoduje problemy i zgłoś błąd, dołączając fragment danych zawarty w poniższej sekcji TNIJ:';
+$strSQLParserUserError = 'Wygląda na to, że w twoim zapytaniu SQL jest błąd. W znalezieniu przyczyny problemu może pomóc także - jeśli się pojawi - poniższy opis błędu serwera MySQL.';
+$strSQLQuery = 'zapytanie SQL';
+$strSQLResult = 'Rezultat SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Nieprawidłowy identyfikator';
+$strSQPBugUnclosedQuote = 'Niezamknięty cudzysłów';
+$strSQPBugUnknownPunctuation = 'Nieznany znak przestankowy';
+$strStatCheckTime = 'Ostatnie sprawdzenie';
+$strStatCreateTime = 'Utworzenie';
+$strStatement = 'Cecha';
+$strStatisticsOverrun = 'Na aktywnym serwerze liczniki bajtów mogą się przekręcić, więc statystyki jakich dostarcza serwer MySQL nie są wiarygodne.';
+$strStatUpdateTime = 'Ostatnia aktualizacja';
+$strStatus = 'Status';
+$strStorageEngine = 'Mechanizm składowania';
+$strStorageEngines = 'Mechanizmy składowania';
+$strStrucCSV = 'Dane CSV';
+$strStrucData = 'Struktura i dane';
+$strStrucExcelCSV = 'CSV dla MS Excel';
+$strStrucNativeExcel = 'Dane w formacie macierzystym MS Excela';
+$strStrucOnly = 'Tylko struktura';
+$strStructPropose = 'Analiza zawartości';
+$strStructure = 'Struktura';
+$strSubmit = 'Wyślij';
+$strSuccess = 'Zapytanie SQL zostało wykonane pomyślnie';
+$strSum = 'Suma';
+$strSwedish = 'Szwedzki';
+$strSwitchToDatabase = 'Przełącz do skopiowanej bazy danych';
+$strSwitchToTable = 'Przełącz na skopiowaną tabelę';
+
+$strTableAlreadyExists = 'Tabela %s już istnieje!';
+$strTableComments = 'Komentarze tabeli';
+$strTableEmpty = 'Brak nazwy tabeli!';
+$strTableHasBeenDropped = 'Tabela %s została usunięta';
+$strTableHasBeenEmptied = 'Tabela %s została opróżniona';
+$strTableHasBeenFlushed = 'Tabela %s została przeładowana';
+$strTableMaintenance = 'Zarządzanie tabelą';
+$strTableOfContents = 'Spis treści';
+$strTableOptions = 'Opcje tabeli';
+$strTables = '%s tabel(a)';
+$strTableStructure = 'Struktura tabeli dla ';
+$strTable = 'Tabela';
+$strTakeIt = 'użyj';
+$strTblPrivileges = 'Uprawnienia specyficzne dla tabel';
+$strTempData = 'Dane tymczasowe';
+$strTextAreaLength = ' To pole może nie dać się edytować<br /> z powodu swojej długości ';
+$strThai = 'Tajski';
+$strThemeDefaultNotFound = 'Nie znaleziono domyślnego motywu graficznego %s!';
+$strTheme = 'Motyw graficzny / styl';
+$strThemeNoPreviewAvailable = 'Podgląd niedostępny.';
+$strThemeNotFound = 'Nie znaleziono motywu graficznego %s!';
+$strThemeNoValidImgPath = 'Nie znaleziono prawidłowej ścieżki do obrazka dla motywu graficznego %s!';
+$strThemePathNotFound = 'Nie znaleziono ścieżki do motywu %s!';
+$strThisHost = 'Ten host';
+$strThreadSuccessfullyKilled = 'Wątek %s został pomyślnie unicestwiony.';
+$strThreads = 'Wątki';
+$strTime = 'Czas';
+$strTimeoutInfo = 'Poprzedni import przekroczył limit czasu, ponowne przedłożenie tego pliku spowoduje kontynuacje od miejsca %d.';
+$strTimeoutNothingParsed = 'Jednakże, podczas ostatniego uruchomienia nie zostały przetworzone żadne dane, co zwykle oznacza, że phpMyAdmin nie będzie w stanie ukończyć tego importu bez zwiększenia limitów czasowych PHP.';
+$strTimeoutPassed = 'Limit czasu wykonania skryptu minął; aby ukończyć import, proszę przedłożyć ten sam plik a import zostanie wznowiony.';
+$strToggleScratchboard = 'włącz / wyłącz scratchboard';
+$strTotalUC = 'Sumarycznie';
+$strTotal = 'wszystkich';
+$strTraditionalChinese = 'Chiński tradycyjny';
+$strTraditionalSpanish = 'Tradycyjny hiszpański';
+$strTraffic = 'Ruch';
+$strTransactionCoordinator = 'Koordynator transakcji';
+$strTransformation_application_octetstream__download = 'Wyświetla link do ściągnięcia binarnych danych z tego pola. Pierwsza opcja to nazwa pliku binarnego. Drugą opcją jest możliwa nazwa pola zawierającego nazwę pliku. Jeżeli dana jest druga opcja, pierwsza musi być pustym napisem';
+$strTransformation_application_octetstream__hex = 'Wyświetla szesnastkową reprezentację danych. Opcjonalny pierwszy parametr określa jak często dodawane będą spacje (domyślnie: co 2 półbajty).';
+$strTransformation_image_jpeg__inline = 'Wyświetla klikalną miniaturkę; opcje: szerokość,wysokość w pikselach (oryginalne proporcje zostaną zachowane)';
+$strTransformation_image_jpeg__link = 'Wyświetla link do tego obrazu (bezpośrednie ściągnięcie bloba).';
+$strTransformation_image_png__inline = 'Zobacz image/jpeg: inline';
+$strTransformation_text_plain__external = 'TYLKO LINUX: Uruchamia zewnętrzną aplikację i przekazuje dane pól na standardowe wejście. Zwraca standardowe wyjście tej aplikacji. Domyślnie jest to Tidy, którzy porządkuje kod HTML. Ze względu na bezpieczeństwo, należy ręcznie zmodyfikować plik libraries/transformations/text_plain__external.inc.php i dodać narzędzie, na którego uruchamianie pozwalasz. Pierwszą opcją jest liczba programów, których chcesz użyć, a drugą są parametry programu. Jeżeli trzeci parametr jest ustawiony na 1, zostanie dokonana konwersja wyjścia poprzez użycie htmlspecialchars() (Domyślną wartością jest 1). Jeżeli czwarty parametr został ustawiony na 1, zawartość komórki nie będzie zawijana, tak że całe wyjście zostanie pokazane bez zmian formatu (domyślną wartością jest 1)';
+$strTransformation_text_plain__formatted = 'Zachowuje oryginalne formatowanie pola. Neutralizowanie znaków niespecjalnych nie jest dokonywane.';
+$strTransformation_text_plain__imagelink = 'Wyświetla obrazek i link, pole zawiera nazwę pliku; pierwszą opcję jest prefiks, taki jak "http://domena.com/", drugą opcją jest szerokość w pikselach, trzecią opcją jest wysokość.';
+$strTransformation_text_plain__link = 'Wyświetla link, pole zawiera nazwę pliku; pierwsza opcja to prefiks, taki jak "http://domena.com/", druga opcja to tytuł linku.';
+$strTransformation_text_plain__sql = 'Formatuj tekst traktując jako zapytanie SQL z podświetlaniem składni.';
+$strTransformation_text_plain__substr = 'Pokazuje jedynie część napisu. Pierwsza opcja to offset, od którego ma zacząć się wyświetlanie tekstu (domyślnie 0). Druga opcja to ilość zwracanego tekstu. Jeżeli jest pusta, zwracany jest cały pozostały tekst. Trzecia opcja określa jakie znaki zostaną dodane do wyjścia, jeżeli zwracany jest część napisu (domyślnie: ...) .';
+$strTruncateQueries = 'Ucinaj wyświetlane zapytania';
+$strTurkish = 'Turecki';
+$strType = 'Typ';
+
+$strUkrainian = 'Ukraiński';
+$strUncheckAll = 'Odznacz wszystkie';
+$strUnicode = 'Unikod';
+$strUnique = 'Jednoznaczny';
+$strUnknown = 'nieznany';
+$strUnselectAll = 'Odznacz wszystkie';
+$strUnsupportedCompressionDetected = 'Próbowano wczytać plik z nieobsługiwanym typem kompresji (%s). Albo jego obsługa nie została zaimplementowana albo została konfiguracyjnie wyłączona.';
+$strUpdatePrivMessage = 'Uaktualniłeś uprawnienia dla %s.';
+$strUpdateProfileMessage = 'Profil został uaktualniony.';
+$strUpdateQuery = 'Zmień zapytanie';
+$strUpdComTab = 'Informacje o tym, jak zaktualizować tabelę Column_comments znajdują się w dokumentacji';
+$strUpgrade = 'Poleca się aktualizację do %s w wersji %s lub późniejszej.';
+$strUploadLimit = 'Prawdopodobnie próbowano wrzucić duży plik. Aby poznać sposoby obejścia tego limitu, proszę zapoznać się z %sdokumenacją%s.';
+$strUploadsNotAllowed = 'Serwer nie pozwala na upload plików.';
+$strUsage = 'Wykorzystanie';
+$strUseBackquotes = 'Użyj cudzysłowów z nazwami tabel i pól';
+$strUseHostTable = 'Użyj tabeli hostów';
+$strUserAlreadyExists = 'Użytkownik %s już istnieje!';
+$strUserEmpty = 'Brak nazwy użytkownika!';
+$strUserName = 'Nazwa użytkownika';
+$strUserNotFound = 'Wybrany użytkownik nie został znaleziony w tabeli uprawnień.';
+$strUserOverview = 'Opis użytkownika';
+$strUsersDeleted = 'Wybrani użytkownicy zostali pomyślnie usunięci.';
+$strUsersHavingAccessToDb = 'Użytkownicy mający dostęp do &quot;%s&quot;';
+$strUser = 'Użytkownik';
+$strUseTabKey = 'Klawisz TAB przemieszcza pomiędzy wartościami, CTRL+strzałka przenosi w dowolne miejsce';
+$strUseTables = 'Użyj tabel';
+$strUseTextField = 'Użyj pola tekstowego';
+$strUseThisValue = 'Użyj tej wartości';
+
+$strValidateSQL = 'Sprawdź poprawność SQL';
+$strValidatorError = 'Analizator składni SQL nie mógł zostać zainicjowany. Sprawdź, czy zainstalowane są niezbędne rozszerzenia PHP, tak jak zostało to opisane w %sdokumentacji%s.';
+$strValue = 'Wartość';
+$strVar = 'Zmienna';
+$strVersionInformation = 'Informacja o wersji';
+$strViewDumpDatabases = 'Zrzut baz danych';
+$strViewDumpDB = 'Zrzut bazy danych';
+$strViewDump = 'Zrzut tabeli';
+$strViewHasBeenDropped = 'Perspektywa %s została usunięta';
+$strView = 'Perspektywa';
+
+$strWebServerUploadDirectoryError = 'Katalog ustalony dla uploadu jest nieosiągalny';
+$strWebServerUploadDirectory = 'katalog serwera WWW dla uploadu';
+$strWelcome = 'Witamy w %s';
+$strWestEuropean = 'Zachodnioeuropejski';
+$strWildcard = 'znak wieloznaczny';
+$strWindowNotFound = 'Docelowe okno przeglądarki nie mogło być zaktualizowane. Być może okno-rodzic zostało zamknięte lub przeglądarka, uwzględniając ustawienia bezpieczeństwa, blokuje aktualizacje pomiędzy oknami';
+$strWithChecked = 'Zaznaczone:';
+$strWriteRequests = 'Żądań zapisu';
+$strWrongUser = 'Błędne pola użytkownik/hasło. Brak dostępu.';
+
+$strXML = 'XML';
+
+$strYes = 'Tak';
+
+$strZeroRemovesTheLimit = 'Uwaga: Ustawienie tych opcji na 0 (zero) usuwa ograniczenie.';
+$strZip = '".zip"';
+
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/portuguese-utf-8.inc.php b/lang/portuguese-utf-8.inc.php
new file mode 100644
index 0000000000..1ee442a22f
--- /dev/null
+++ b/lang/portuguese-utf-8.inc.php
@@ -0,0 +1,1474 @@
+<?php
+/* $Id$ */
+
+/**
+ * Portuguese language file by
+ * Lopo Pizarro <lopopizarro@users.sourceforge.net>
+ * António Raposo <cfmsoft@users.sourceforge.net>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$mysql_4_1_doc_lang = 'pt';
+
+$day_of_week = array('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab');
+$month = array('Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d-%B-%Y às %H:%M';
+
+$timespanfmt = '%s dias, %s horas, %s minutos e %s segundos';
+
+$strAbortedClients = 'Abortado';
+$strAccessDenied = 'Acesso Negado';
+$strAccessDeniedExplanation = 'O phpMyAdmin tentou ligar-se ao servidor MySQL, e o servidor rejeitou a ligação. Verifique o anfitrião, nome de utilizador e palavra-passe no config.inc.php e assegure-se que correspondem à informação fornecida pelo administrador do MySQL.';
+$strAction = 'Acções';
+$strAddAutoIncrement = 'Adicionar valor AUTO_INCREMENT';
+$strAddConstraints = 'Adicionar limitadores';
+$strAddDeleteColumn = 'Adicionar/Remover Campos';
+$strAddDeleteRow = 'Adicionar/Remover Critérios';
+$strAddIntoComments = 'Adicionar aos comentários';
+$strAddNewField = 'Adiciona novo campo';
+$strAddPrivilegesOnDb = 'Adicionar privilégios na base de dados seguinte';
+$strAddPrivilegesOnTbl = 'Todos privilégios na tabela seguinte';
+$strAddSearchConditions = 'Condição de Pesquisa (Complemento da cláusula "where"):';
+$strAddToIndex = 'Adicionar ao índice &nbsp;%s&nbsp;coluna(s)';
+$strAddUser = 'Acrescenta um utilizador';
+$strAddUserMessage = 'Acrescentou um novo utilizador.';
+$strAdministration = 'Administração';
+$strAfter = 'Depois %s';
+$strAfterInsertBack = 'Voltar atrás';
+$strAfterInsertNewInsert = 'Inserir novo registo';
+$strAllTableSameWidth = 'mostrar todas as tabelas com a mesma altura?';
+$strAll = 'Todas';
+$strAlterOrderBy = 'Alterar a ordem da tabela por';
+$strAnalyzeTable = 'Analizar tabela';
+$strAnd = 'E';
+$strAnIndex = 'Um índice foi adicionado a %s';
+$strAnyHost = 'Qualquer máquina';
+$strAny = 'Todos';
+$strAnyUser = 'Qualquer utilizador';
+$strAPrimaryKey = 'Uma chave primária foi adicionada a %s';
+$strArabic = 'Árabe';
+$strArmenian = 'Arménio';
+$strAscending = 'Ascendente';
+$strAtBeginningOfTable = 'No Início da Tabela';
+$strAtEndOfTable = 'No Fim da Tabela';
+$strAttr = 'Atributos';
+$strAutomaticLayout = 'Layout automático';
+
+$strBack = 'Voltar';
+$strBaltic = 'Báltico';
+$strBinary = ' Binário ';
+$strBinaryDoNotEdit = ' Binário - não editar ';
+$strBookmarkAllUsers = 'Deixar todos os utilizadores acederem a este marcador';
+$strBookmarkDeleted = 'Marcador apagado com sucesso.';
+$strBookmarkLabel = 'Etiqueta';
+$strBookmarkQuery = 'Comandos SQL marcados';
+$strBookmarkThis = 'Marcar este comando SQL';
+$strBookmarkView = 'Ver apenas';
+$strBrowse = 'Visualiza';
+$strBulgarian = 'Búlgaro';
+$strBzip = '"Compressão bzip"';
+
+$strCannotLogin = 'Não é possível fazer login no servidor MySQL';
+$strCantLoad = 'não é possível carregar a extensão %s ;<br />verifique a configuração do PHP por favor';
+$strCantLoadRecodeIconv = 'Não é possível carregar <i>iconv</i> ou recodificar a extensão necessária para a conversão do Mapa de Caracteres, configure o php de modo a permitir utilizar estas extensões ou desligue a conversão do mapa de caracteres no phpmyadmin.';
+$strCantRenameIdxToPrimary = 'Impossível renomear índice para PRIMARY!';
+$strCantUseRecodeIconv = 'Não é possível usar <i>iconv</i> nem <i>libiconv</i> nem a função <i>recode_string</i> enquanto a extensão reportar que está ligada. Confira a configuração do seu php.';
+$strCardinality = 'Quantidade';
+$strCaseInsensitive = 'Sensível a maiúsculas/minúculas';
+$strCaseSensitive = 'Não-sensível a a maiúsculas/minúculas';
+$strCentralEuropean = 'Europeu Central';
+$strChangeCopyModeCopy = '... manter o antigo.';
+$strChangeCopyMode = 'Criar um novo utilizador com os mesmo privilégios e ...';
+$strChangeCopyModeDeleteAndReload = ' ... apagar o antigo das tabelas do utilizador e depois recarregue os privilégios.';
+$strChangeCopyModeJustDelete = ' ... apagar o antigo das tabelas do utilizador.';
+$strChangeCopyModeRevoke = ' ... revogar todos os privilégios activos do antigo e a seguir apagá-lo.';
+$strChangeCopyUser = 'Mudar a informação de login / Copiar Utilizador';
+$strChangeDisplay = 'Escolha campo para mostrar';
+$strChange = 'Muda';
+$strChangePassword = 'Alterar a palavra-passe';
+$strCharset = 'Mapa de Caractere';
+$strCharsetOfFile = 'Configurar o Mapa de Caracteres do ficheiro:';
+$strCharsets = 'Mapas de Caracteres';
+$strCheckAll = 'Todos';
+$strCheckPrivsLong = 'Verificar Privilégios para a Base de Dados &quot;%s&quot;.';
+$strCheckPrivs = 'Verificar Privilégios';
+$strCheckTable = 'Verificar tabela';
+$strChoosePage = 'Escolha uma Página para editar';
+$strColComFeat = 'Mostrando comentários das Colunas';
+$strColumnNames = 'Nome dos Campos';
+$strColumnPrivileges = 'Privilégios específicos da Coluna';
+$strCommand = 'Comando';
+$strComments = 'Comentários';
+$strCompleteInserts = 'Instrucções de inserção completas';
+$strCompression = 'Compressão';
+$strConfigFileError = 'O phpMyAdmin não foi capaz de ler o ficheiro de configuração!<br />Isto pode acontecer se o php encontrar um erro no <i>parsing</i> ou se não conseguir encontrar o ficheiro.<br />Chame o ficheiro de configuração directamente usando o <i>link</i> a baixo e leia a(s) mensagem(ns) de erro do php. Na maior parte dos casos, trata-se de uma falta de aspas ou de um ponto e vírgula algures.<br />Se receber uma página em branco, está tudo correcto.';
+$strConfigureTableCoord = 'Configure as cordenadas para a tabela %s';
+$strConnections = 'Ligações';
+$strConstraintsForTable = 'Limitadores para a tabela';
+$strCookiesRequired = 'O mecanismo de "Cookies" tem de estar ligado a partir deste ponto.';
+$strCopyTable = 'Copia tabela para (base-de-dados<b>.</b>tabela):';
+$strCopyTableOK = 'Tabela %s copiada para %s.';
+$strCopyTableSameNames = 'Não é possivel copiar a tabela para o mesmo!';
+$strCreate = 'Criar';
+$strCreateIndex = 'Criar um índice com&nbsp;%s&nbsp;coluna(s)';
+$strCreateIndexTopic = 'Criar um novo índice';
+$strCreateNewDatabase = 'Criar nova base de dados';
+$strCreateNewTable = 'Criar nova tabela na base de dados %s';
+$strCreatePage = 'Criar uma Página nova';
+$strCreatePdfFeat = 'Criação de PDFs';
+$strCreationDates = 'Datas de Criação/Actualização/verificação';
+$strCriteria = 'Critérios';
+$strCroatian = 'Croata';
+$strCzech = 'Checo';
+$strCzechSlovak = 'Checo-Eslovaco';
+
+$strDanish = 'Dinamarquês';
+$strDatabase = 'Base de Dados';
+$strDatabaseExportOptions = 'Opções de exportação da Base de Dados';
+$strDatabaseHasBeenDropped = 'A base de dados %s foi eliminada.';
+$strDatabases = 'Base de Dados';
+$strDatabasesDropped = 'As Bases de Dados %s foram apagadas com sucesso.';
+$strDatabasesStatsDisable = 'Desactivar Estatísticas';
+$strDatabasesStatsEnable = 'Activar Estatísticas';
+$strDatabasesStats = 'Estatísticas das bases de dados';
+$strDatabasesStatsHeavyTraffic = 'Nota: Activar as estatísticas aqui pode causar um grande volume de tráfego entre o servidor web e o de MySQL.';
+$strData = 'Dados';
+$strDataDict = 'Dicionario de dados';
+$strDataOnly = 'Apenas dados';
+$strDBComment = 'Comentário da Base de Dados: ';
+$strDbPrivileges = 'Privilégios específicos da Base de Dados';
+$strDbSpecific = 'Especifico da Base de Dados';
+$strDefault = 'Defeito';
+$strDeleteAndFlush = 'Apagar os utilizadores e recarreguar os privilégios a seguir.';
+$strDeleteAndFlushDescr = 'Este é o processo mais limpo, mas recarregar os privilégios poderá demorar um pouco.';
+$strDelete = 'Apagar';
+$strDeleted = 'Registo eliminado';
+$strDeleting = 'A apagar %s';
+$strDescending = 'Descendente';
+$strDescription = 'Descrição';
+$strDictionary = 'dicionário';
+$strDisabled = 'Desactidado';
+$strDisplayFeat = 'Mostrar Características';
+$strDisplayOrder = 'Ordem de visualização:';
+$strDisplayPDF = 'Mostrar o esquema de PDF';
+$strDoAQuery = 'Faça uma "pesquisa por formulário" (caractere universal: "%")';
+$strDocu = 'Documentação';
+$strDoYouReally = 'Confirma : ';
+$strDrop = 'Elimina';
+$strDropUsersDb = 'Apagar as Bases de Dados que tenham os mesmos nomes que os utilizadores.';
+$strDumpingData = 'Extraindo dados da tabela';
+$strDumpSaved = 'O Dump foi gravado para o ficheiro %s.';
+$strDumpXRows = 'Exporta %s registos começando em %s.';
+$strDynamic = 'dinâmico';
+
+$strEdit = 'Edita';
+$strEditPDFPages = 'Editar páginas PDF';
+$strEditPrivileges = 'Alterar Privilegios';
+$strEffective = 'Em uso';
+$strEmpty = 'Limpa';
+$strEmptyResultSet = 'MySQL não retornou nenhum registo.';
+$strEnabled = 'Activado';
+$strEnd = 'Fim';
+$strEnglish = 'Inglês';
+$strEnglishPrivileges = ' Nota: os nomes dos privilégios do MySQL são em Inglês ';
+$strError = 'Erro';
+$strEstonian = 'Estoniano';
+$strExcelEdition = 'Edição Excel';
+$strExecuteBookmarked = 'Executar um query marcado(do marcador)';
+$strExplain = 'Explicar SQL';
+$strExport = 'Exportar';
+$strExtendedInserts = 'Instrucções de inserção múltiplas';
+$strExtra = 'Extra'; // written the same in portuguese
+
+$strFailedAttempts = 'Tentativas falhadas';
+$strField = 'Campo';
+$strFieldHasBeenDropped = 'O campo %s foi eliminado';
+$strFieldsEnclosedBy = 'Campos delimitados por';
+$strFieldsEscapedBy = 'Campos precedidos por';
+$strFields = 'Qtd Campos';
+$strFieldsTerminatedBy = 'Campos terminados por';
+$strFileAlreadyExists = 'O ficheiro %s já existe no servidor, mude o nome do ficheiro ou verifique a opção de substituição (re-escrita).';
+$strFileCouldNotBeRead = 'Não foi possível ler o ficheiro';
+$strFileNameTemplate = 'Nome do ficheiro modelo';
+$strFileNameTemplateRemember = 'Lembrar-se do modelo';
+$strFixed = 'fixo';
+$strFlushPrivilegesNote = 'Nota: O phpMyAdmin recebe os privilégios dos utilizadores directamente da tabela de privilégios do MySQL. O conteúdo destas tabelas pode diferir dos privilégios que o servidor usa se alterações manuais nele forem feitas. Neste caso, deve %sreload the privileges%s antes de continuar.';
+$strFlushTable = 'Fecha a tabela ("FLUSH")';
+$strFormat = 'Formato';
+$strFormEmpty = 'Nº de dados insuficiente!\nPreencha todas as opções!';
+$strFullText = 'Texto inteiro';
+$strFunction = 'Funções';
+
+$strGenBy = 'Gerado por';
+$strGeneralRelationFeat = 'Características gerais de Relação';
+$strGenTime = 'Data de Criação';
+$strGeorgian = 'Georgiano';
+$strGerman = 'Alemão';
+$strGlobal = 'global'; //(same in portuguese)
+$strGlobalPrivileges = 'Privilégios Globais';
+$strGlobalValue = 'Valor Global';
+$strGo = 'Executa';
+$strGrantOption = 'Conceder/Grant';
+$strGreek = 'Grego';
+$strGzip = '"Compressão gzip"';
+
+$strHasBeenAltered = 'foi alterado(a).';
+$strHaveToShow = 'Tem que escolher pelo menos uma coluna para mostrar';
+$strHebrew = 'Hebráico';
+$strHome = 'Início';
+$strHomepageOfficial = 'Página Oficial do phpMyAdmin';
+$strHostEmpty = 'O nome da máquina está vazio!';
+$strHost = 'Máquina';
+$strHungarian = 'Húngaro';
+
+$strId = 'ID'; //(same in portuguese)
+$strIdxFulltext = 'Texto Completo';
+$strIgnore = 'Ignora';
+$strImportFiles = 'Importar';
+$strIndexes = 'Índices';
+$strIndexHasBeenDropped = 'O Índice %s foi eliminado';
+$strIndexName = 'Nome do Índice&nbsp;:';
+$strIndex = 'Índice';
+$strIndexType = 'Tipo de Índice&nbsp;:';
+$strInnodbStat = 'Estado da InnoDB';
+$strInsecureMySQL = 'O seu ficheiro de configuração contem configurações (root sem palavra-passe) que correspondem à conta privilegiada por defeito do MySQL. O servidor MySQL está a correr com este valor por defeito, assim aberto a intrusões, deveria corrigir este buraco de segurança.';
+$strInsertAsNewRow = 'Insere como novo registo';
+$strInsert = 'Insere';
+$strInternalRelations = 'Relações internas';
+$strInUse = 'em uso';
+
+$strJapanese = 'Japonês';
+$strJumpToDB = 'Saltar para a Base de Dados &quot;%s&quot;.';
+$strJustDelete = 'Apagar apenas os utilizadores da tabela de privilégios.';
+$strJustDeleteDescr = 'Os utilizadores &quot;deleted&quot; continuarão a conseguir aceder ao servidor até que os privilégios sejam recarregados.';
+
+$strKeepPass = 'Mantendo a palavra-passe ';
+$strKeyname = 'Nome do Índice';
+$strKill = 'Termina';
+$strKorean = 'Coreano';
+
+$strLandscape = 'Paisagem/ao baixo';
+$strLatexCaption = 'Legenda da tabela';
+$strLatexContent = 'Conteúdo da tabela __TABLE__';
+$strLatexContinuedCaption = 'Continuação da legenda da tabela';
+$strLatexContinued = '(continuação)';
+$strLatexIncludeCaption = 'Incluir a legenda da tabela';
+$strLaTeX = 'LaTeX'; //(same in portuguese)
+$strLatexStructure = 'estructura da tabela __TABLE__';
+$strLengthSet = 'Tamanho/Valores*';
+$strLimitNumRows = 'Número de registos por página';
+$strLinesTerminatedBy = 'Linhas terminadas por';
+$strLinkNotFound = 'Link não encontrado';
+$strLinksTo = 'Links para';
+$strLithuanian = 'Lituano';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Localização do arquivo de texto';
+$strLogin = 'Entrada';
+$strLoginInformation = 'Informação de Login ';
+$strLogout = 'Sair';
+$strLogPassword = 'Palavra-passe&nbsp;:';
+$strLogServer = 'Servidor';
+$strLogUsername = 'Utilizador&nbsp;:';
+
+$strMaximumSize = 'Tamanho máximo: %s%s';
+$strMIME_available_mime = 'MIME-types disponíveis';
+$strMIME_available_transform = 'Transformações disponíveis';
+$strMIME_description = 'Descrição';
+$strMIME_MIMEtype = 'MIME-type'; //(same in portuguese)
+$strMIME_nodescription = 'Não há descrição disponível para esta transformação.<br />Pergunte ao autor, o que %s faz.';
+$strMIME_transformation_note = 'Para uma lista de opções de transformação disponíveis e suas transformações MIME-type , clique em %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Introduza os valores para as opções de transformação a usando este formato: \'a\', 100, b,\'c\'...<br />Se por acaso precisar de inserir um backslash ("\") ou uma pelica ("\'") no meio desses valores, faça-o backslashes (por exemplo \'\\\\xyz\' ou \'a\\\'b\').';
+$strMIME_transformation_options = 'Opções de tranformação';
+$strMIME_transformation = 'Transformação do navegador';
+$strMIME_without = 'MIME-types impressos em itálico não tem uma função de transformação separada';
+$strModifications = 'Modificações foram guardadas';
+$strModifyIndexTopic = 'Modificar um índice';
+$strModify = 'Modifica';
+$strMoveTable = 'Move tabela para (base de dados<b>.</b>tabela):';
+$strMoveTableOK = 'A tabela %s foi movida para %s.';
+$strMoveTableSameNames = 'Não é posivel mover a tabela para o mesmo!';
+$strMultilingual = 'multilingua';
+$strMySQLCharset = 'Mapa de Caracteres do mySQL';
+$strMySQLSaid = 'Mensagens do MySQL : ';
+$strMySQLShowProcess = 'Mostra os Processos';
+
+$strName = 'Nome';
+$strNext = 'Próximo';
+$strNoDatabasesSelected = 'Nenhuma base de dados selecionada.';
+$strNoDatabases = 'Sem bases de dados';
+$strNoDescription = 'sem Descrição';
+$strNoDropDatabases = 'Os comandos "DROP DATABASE" estão inibidos.';
+$strNoExplain = 'Saltar Explicar SQL';
+$strNoFrames = 'O phpMyAdmin torna-se mais agradável se usado num browser que suporte <b>frames</b>.';
+$strNoIndex = 'Nenhum indíce definido!';
+$strNoIndexPartsDefined = 'Nenhuma parte do índice definida!';
+$strNoModification = 'Sem alterações';
+$strNone = 'Nenhum';
+$strNo = 'Não';
+$strNoOptions = 'Este formato não tem opções';
+$strNoPassword = 'Sem palavra-passe';
+$strNoPermission = 'O servidor web não tem permissões para gravar o ficheiro %s.';
+$strNoPhp = 'sem código PHP';
+$strNoPrivileges = 'Sem Privilégios';
+$strNoRights = 'Não tem permissões suficientes para aceder aqui, neste momento!';
+$strNoSpace = 'Não existe espaço suficiente para gravar o ficheiro %s.';
+$strNoTablesFound = 'Nenhuma tabela encontrada na base de dados';
+$strNotNumber = 'Isto não é um número!';
+$strNotOK = 'não está OK';
+$strNotSet = 'A Tabela <b>%s</b> não foi encontrada ou não foi definida em %s';
+$strNoUsersFound = 'Nenhum utilizador encontrado.';
+$strNoValidateSQL = 'Saltar a validação SQL';
+$strNull = 'Nulo';
+$strNumSearchResultsInTable = '%s resultado(s) na tabela <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> resultado(s)';
+$strNumTables = 'Tabelas';
+
+$strOK = 'OK'; //Same in portuguese
+$strOperations = 'Operações';
+$strOptimizeTable = 'Optimizar tabela';
+$strOr = 'Ou';
+$strOverhead = 'Suspenso';
+$strOverwriteExisting = 'Substituir o(s) ficheiro(s) existente(s)';
+
+$strPageNumber = 'Página número:';
+$strPaperSize = 'Tamanho do papel';
+$strPartialText = 'Texto parcial';
+$strPasswordChanged = 'A palavra-passe para %s foi alterada com sucesso.';
+$strPasswordEmpty = 'Indique a palavras-passe!';
+$strPasswordNotSame = 'As palavras-passe são diferentes!\nLembre-se de confirmar a palavra-passe!';
+$strPassword = 'Palavra-passe';
+$strPdfDbSchema = 'Esquema da base de dados "%s" - Página %s';
+$strPdfInvalidTblName = 'A tabela "%s" não existe!';
+$strPdfNoTables = 'Sem tablelas';
+$strPerHour = 'por hora';
+$strPerMinute = 'por minuto';
+$strPerSecond = 'por segundo';
+$strPhoneBook = 'lista telefónica';
+$strPhp = 'Criar código PHP';
+$strPHPVersion = 'versão do PHP';
+$strPmaDocumentation = 'Documentação do phpMyAdmin';
+$strPmaUriError = 'A directiva <tt>$cfg[\'PmaAbsoluteUri\']</tt> TEM que ser definida no ficheiro de configuração!';
+$strPortrait = 'Retrato/Ao alto';
+$strPos1 = 'Inicio';
+$strPrevious = 'Anterior';
+$strPrimaryKeyHasBeenDropped = 'A chave primária foi eliminada';
+$strPrimaryKeyName = 'O nome da chave primária tem de ser... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>tem</b> de ser o nome de e <b>apenas de</b> uma chave primária!)';
+$strPrimary = 'Primária';
+$strPrint = 'Imprimir';
+$strPrintViewFull = 'Vista de impressão (com texto inteiro)';
+$strPrintView = 'Vista de impressão';
+$strPrivDescAllPrivileges = 'inclui todos os privilégios excepto Conceção - GRANT.';
+$strPrivDescAlter = 'Permite alterar a estrutura de tabelas existentes.';
+$strPrivDescCreateDb = 'Permite criar novas Bases de Dados e tabelas.';
+$strPrivDescCreateTbl = 'Permite criar novas tabelas.';
+$strPrivDescCreateTmpTable = 'Permite criar tabelas temporárias.';
+$strPrivDescDelete = 'Permite apagar dados.';
+$strPrivDescDropDb = 'Permite apagar Bases de Dados e tabelas.';
+$strPrivDescDropTbl = 'Permite apagar Bases de Dados.';
+$strPrivDescExecute = 'Permite executar procedimentos armazenados; Não tem efeito nesta versão do MySQL.';
+$strPrivDescFile = 'Permite importar dados de... e exportar dados para ficheiros.';
+$strPrivDescGrant = 'Permite adicionar utilizadores e privilégios sem recarregar a tabela de privilégios.';
+$strPrivDescIndex = 'Permite criar e apagar indexes.';
+$strPrivDescInsert = 'Permite inserir e substituir dados.';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivDescReferences = 'Não tem efeito nesta versão do MySQL.';
+$strPrivDescSelect = 'Permite ler dados.';
+$strPrivDescShowDb = 'Dá acesso à lista de bases de dados completa.';
+$strPrivDescShutdown = 'Permite desligar o servidor.';
+$strPrivDescUpdate = 'Permite alterar dados.';
+$strPrivDescUsage = 'Sem privilégios.';
+$strPrivileges = 'Privilégios';
+$strPrivilegesReloaded = 'O privilégios foram recarregados com sucesso.';
+$strProcesses = 'Processos';
+$strProcesslist = 'Lista de Processos';
+$strPutColNames = 'Coloca os nomes dos compos na primeira linha';
+
+$strQBEDel = 'Elim.';
+$strQBEIns = 'Ins.';
+$strQBE = 'Pesquisa por formulário';
+$strQueryFrame = 'Janela de Query';
+$strQueryOnDb = 'Comando SQL na base de dados <b>%s</b>:';
+$strQuerySQLHistory = 'Histórico SQL';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+$strQueryTime = 'O Query demorou %01.4f sec';
+$strQueryType = 'Tipo de Query';
+$strQueryWindowLock = 'Não alterar esta pesquisa de fora da janela';
+
+$strReceived = 'Recebido';
+$strRecords = 'Registos';
+$strReferentialIntegrity = 'Verificar Integridade referencial:';
+$strRelationalSchema = 'Esquema relacional';
+$strRelationNotWorking = 'As Características adicionais para trabalhar com ligações entre Tabelas foram desactivadas. Para saber porquê carregue %saqui%s.';
+$strRelations = 'Relações';
+$strRelationView = 'Vista de Relação';
+$strReloadingThePrivileges = 'A recarregar privilégios';
+$strRemoveSelectedUsers = 'Remover utilizadores seleccionados';
+$strRenameTableOK = 'Tabela %s renomeada para %s';
+$strRenameTable = 'Renomeia a tabela para ';
+$strRepairTable = 'Reparar tabela';
+$strReplaceNULLBy = 'Substituir NULL por';
+$strReplaceTable = 'Substituir os dados da tabela pelos do arquivo';
+$strReset = 'Limpa';
+$strResourceLimits = 'Limites do recurso';
+$strReType = 'Confirma';
+$strRevokeAndDeleteDescr = 'O utilizadores manterão o privilégio de USAGE até que os privilégios sejam recarregados.';
+$strRevokeAndDelete = 'Revogar todos os privilégios dos utilizadores e apagá-los a seguir.';
+$strRevoke = 'Anula';
+$strRevokeMessage = 'Anulou os privilégios para %s';
+$strRowLength = 'Comprim. dos reg.';
+$strRowsFrom = 'registos começando em';
+$strRowSize = ' Tamanho dos reg.';
+$strRowsModeFlippedHorizontal = 'horizontal (cabeçalhos rodados)';
+$strRowsModeHorizontal = 'horizontal'; // same in portuguese!
+$strRowsModeOptions = 'em modo %s com cabeçalhos repetidos a cada %s células';
+$strRowsModeVertical = 'vertical'; // same in portuguese!
+$strRows = 'Registos';
+$strRowsStatistic = 'Estatísticas dos registos';
+$strRunning = 'a correr em %s';
+$strRunQuery = 'Executa Comando SQL';
+$strRunSQLQuery = 'Executa comando(s) SQL na base de dados %s';
+$strRussian = 'Russo';
+
+$strSave = 'Guarda';
+$strSaveOnServer = 'Gravar no servidor na directoria %s';
+$strScaleFactorSmall = 'O factor escala é muito pequeno para encaixar o esquema numa página';
+$strSearchFormTitle = 'Pesquisar na Base de Dados';
+$strSearchInTables = 'Dentro de Tabela(s):';
+$strSearchNeedle = 'Palavra(s) ou valor(es) para pesquisar para (wildcard: "%"):';
+$strSearchOption1 = 'pelo menos uma das palavras';
+$strSearchOption2 = 'todas as palavras';
+$strSearchOption3 = 'a frase exacta';
+$strSearchOption4 = 'as regular expression';
+$strSearch = 'Pesquisar';
+$strSearchResultsFor = 'Procurar resultados para "<i>%s</i>" %s:';
+$strSearchType = 'Procurar:';
+$strSecretRequired = 'O ficheiro de configuração precisa agora de uma frase-passe secreta (blowfish_secret).';
+$strSelectADb = 'Por favor seleccione uma base de dados';
+$strSelectAll = 'Selecciona Todas';
+$strSelectFields = 'Seleccione os campos (no mínimo 1)';
+$strSelectNumRows = 'na pesquisa';
+$strSelectTables = 'Seleccionar Tabelas';
+$strSend = 'envia';
+$strSent = 'Enviado';
+$strServerChoice = 'Escolha do Servidor';
+$strServer = 'Servidor';
+$strServerStatus = 'Informação de Runtime';
+$strServerStatusUptime = 'Este servidor de mySQL estar a correr há %s. Foi iniciado em/a %s.';
+$strServerTabVariables = 'Variáveis';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strServerVars = 'Variáveis do servidor e configurações';
+$strServerVersion = 'Versão do servidor';
+$strSessionValue = 'Valor de sessão';
+$strSetEnumVal = 'Se o tipo de campo é "enum" ou "set", por favor introduza os valores no seguinte formato: \'a\',\'b\',\'c\'...<br />Se precisar de colocar uma barra invertida ("\") ou um apóstrofe ("\'") entre esses valores, coloque uma barra invertida antes (por exemplo \'\\\\xyz\' ou \'a\\\'b\').';
+$strShowAll = 'Mostrar tudo';
+$strShowColor = 'Mostrar côr';
+$strShowDatadictAs = 'Formato dos dados do dicionário';
+$strShowFullQueries = 'Mostrar queries completos';
+$strShowGrid = 'Mostrar grelha';
+$strShowingRecords = 'Mostrando registos ';
+$strShow = 'Mostra';
+$strShowPHPInfo = 'Mostra informação do PHP';
+$strShowTableDimension = 'Mostrar dimensão das tabelas';
+$strShowTables = 'Mostra tabelas';
+$strShowThisQuery = ' Mostrar de novo aqui este comando ';
+$strSimplifiedChinese = 'Chinês Simplificado';
+$strSingly = '(A refazer após inserir/eliminar)';
+$strSize = 'Tamanho';
+$strSortByKey = 'Ordenar por chave';
+$strSort = 'Ordenação';
+$strSpaceUsage = 'Espaço ocupado';
+$strSplitWordsWithSpace = 'As palavras são separadas pelo caracter espaço (" ").';
+$strSQLExportType = 'Tipo de Exportação';
+$strSQLParserBugMessage = 'Talvez tenha encontrado um bug no analizador (parser) do SQL. Analise o seu query aprofundadamente, e verifique se as aspas estão correctas e não estão desencontradas. Outra possibilidade de falha é o facto de estar a fazer o upload de um ficheiro com outside binário, de de uma área de texto citada. Pode também experimentar a sua query na interface da linha de comandos do MySQL. A saída de erro do MySQL abaixo, isto se existir alguma, também o poderá ajudar a diagnosticar o problema. Se continuar a ter problemas ou se o analisador (parser) falhar onde a interface da linha de comandos tiver sucesso, reduza por favor a entrada do query SQL até aquele que causa o problema, e envie o relatório de bug com os dados do chunk na secção CUT abaixo:';
+$strSQLParserUserError = 'Parece haver um erro no seu query SQL. A saída do servidor MySQL abaixo, isto se existir alguma, também o poderá ajudar a diagnosticar o problema.';
+$strSQLQuery = 'Comando SQL';
+$strSQLResult = 'Resultado SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identificador inválido';
+$strSQPBugUnclosedQuote = 'Aspa não fechada';
+$strSQPBugUnknownPunctuation = 'Pontuação desconhecida';
+$strStatCheckTime = 'Verificação';
+$strStatCreateTime = 'Criação';
+$strStatement = 'Itens';
+$strStatUpdateTime = 'Actualização';
+$strStatus = 'Estado';
+$strStrucCSV = 'Dados CSV';
+$strStrucData = 'Estrutura e dados';
+$strStrucExcelCSV = 'dados CSV para MS Excel';
+$strStrucOnly = 'Somente estrutura';
+$strStructPropose = 'Propor uma estrutura de tabela';
+$strStructure = 'Estrutura';
+$strSubmit = 'Submete';
+$strSuccess = 'O seu comando SQL foi executado com sucesso';
+$strSum = 'Soma';
+$strSwedish = 'Sueco';
+$strSwitchToTable = 'Mudar para a tabela copiada';
+
+$strTableComments = 'Comentários da tabela';
+$strTableEmpty = 'O nome da tabela está vazio!';
+$strTableHasBeenDropped = 'A tabela %s foi eliminada';
+$strTableHasBeenEmptied = 'A tabela %s foi limpa';
+$strTableHasBeenFlushed = 'A tabela %s foi fechada';
+$strTableMaintenance = 'Manutenção da tabela';
+$strTableOfContents = 'Índice';
+$strTableOptions = 'Opções da tabela';
+$strTables = '%s tabela(s)';
+$strTableStructure = 'Estrutura da tabela';
+$strTable = 'Tabela';
+$strTblPrivileges = 'Privilégios específicos da tabela';
+$strTextAreaLength = ' Devido ao seu tamanho,<br /> este campo pode não ser editável ';
+$strThai = 'Tailandês';
+$strThisHost = 'Este Anfitrião';
+$strTime = 'Tempo';
+$strTotal = 'total';
+$strTotalUC = 'Total'; // (same in portuguese)
+$strTraditionalChinese = 'Chinês Tradicional';
+$strTraffic = 'Tráfego';
+$strTransformation_image_jpeg__inline = 'Mostra uma miniatura clicável; opções: largura,altura em pixeis (mantém a proporção original)';
+$strTransformation_image_jpeg__link = 'Mostra uma ligação para esta imagem (blob download directo , i.e.).';
+$strTransformation_image_png__inline = 'Ver imagem/jpeg: inline';
+$strTransformation_text_plain__formatted = 'Preserva a formatação original do campo. Sem Escaping.';
+$strTruncateQueries = 'Truncar os Queries mostrados';
+$strTurkish = 'Turco';
+$strType = 'Tipo';
+
+$strUkrainian = 'Ucraniano';
+$strUncheckAll = 'Nenhum';
+$strUnicode = 'Unicode';
+$strUnique = 'Único';
+$strUnknown = 'desconhecido';
+$strUnselectAll = 'Limpa Todas as Selecções';
+$strUpdatePrivMessage = 'Actualizou os privilégios de %s.';
+$strUpdateProfileMessage = 'O prefil foi actualizado.';
+$strUpdateQuery = 'Actualiza Comando SQL';
+$strUpdComTab = 'Consulte a Documentação sobre como actualizar a Tabela Column_comments Table';
+$strUpgrade = 'deve actualizar para %s %s ou mais recente.';
+$strUsage = 'Utilização';
+$strUseBackquotes = 'Usar apóstrofes com os nomes das tabelas e campos';
+$strUseHostTable = 'Usar a tabela do anfitrião';
+$strUserAlreadyExists = 'O utilizador %s já existe!';
+$strUserEmpty = 'O nome do utilizador está vazio!';
+$strUserName = 'Nome do Utilizador';
+$strUserNotFound = 'O utilizador selecionado não se encontra na tabela de privilégios.';
+$strUsersDeleted = 'Os utilizadores selecionado foram apagados com sucesso.';
+$strUsersHavingAccessToDb = 'Utilizadores que tem acesso a &quot;%s&quot;';
+$strUser = 'Utilizador';
+$strUseTables = 'Usar Tabelas';
+$strUseTextField = 'Usar campo de texto';
+$strUseThisValue = 'Usar este valor';
+
+$strValidateSQL = 'Validar SQL';
+$strValue = 'Valor';
+$strVar = 'Variável';
+$strViewDumpDB = 'Ver o esquema da base de dados';
+$strViewDump = 'Ver o esquema da tabela';
+
+$strWebServerUploadDirectory = 'Directoria no servidor web para fazer upload';
+$strWebServerUploadDirectoryError = 'Não é possivel alcançar a directoria que configurou para fazer upload';
+$strWelcome = 'Bemvindo ao %s';
+$strWestEuropean = 'Europeu de Oeste';
+$strWithChecked = 'Com os seleccionados:';
+$strWrongUser = 'Utilizador ou Palavra-passe errada. Acesso Negado.';
+
+$strXML = 'XML';// (Same in portuguese)
+
+$strYes = 'Sim';
+
+$strZeroRemovesTheLimit = 'Nota: Configurar estas opções para 0 (zero) remove o limite.';
+$strZip = '"Compressão zip"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBeginCut = 'BEGIN CUT'; //to translate
+$strBeginRaw = 'BEGIN RAW'; //to translate
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCharsetsAndCollations = 'Character Sets and Collations'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCollation = 'Collation'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCouldNotKill = 'phpMyAdmin was unable to kill thread %s. It probably has already been closed.'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCyrillic = 'Cyrillic'; //to translate
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEndCut = 'END CUT'; //to translate
+$strEndRaw = 'END RAW'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexLabel = 'Label key';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescLockTables = 'Allows locking tables for the current thread.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.'; //to translate
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescSuper = 'Permite connectiong, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';//to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';//to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUserOverview = 'User overview'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary php extensions as described in the %sdocumentation%s.'; //to translate
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases';//to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWildcard = 'wildcard'; //to translate
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/remove_message.sh b/lang/remove_message.sh
new file mode 100755
index 0000000000..7dab14a90d
--- /dev/null
+++ b/lang/remove_message.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+# $Id$
+#
+# Shell script that removes a message from all message files (Lem9)
+# it checks for the message, followed by a space
+#
+# Example: remove_message.sh 'strMessageToRemove'
+#
+
+if [ $# -ne 1 ] ; then
+ echo "usage: remove_message.sh 'strMessageToRemove'"
+ exit 1
+fi
+
+for file in *.inc.php
+do
+ echo "lines before:" `wc -l $file`
+ grep -v "$1 " ${file} > ${file}.new
+ rm $file
+ mv ${file}.new $file
+ echo " lines after:" `wc -l $file`
+done
+echo " "
diff --git a/lang/romanian-utf-8.inc.php b/lang/romanian-utf-8.inc.php
new file mode 100644
index 0000000000..e4c075c3dd
--- /dev/null
+++ b/lang/romanian-utf-8.inc.php
@@ -0,0 +1,1449 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$allow_recoding = TRUE;
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+// MySQL manual language definition, this is optional, en will be used
+// if not defined
+$mysql_4_1_doc_lang = 'en';
+$mysql_5_0_doc_lang = 'en';
+$mysql_5_1_doc_lang = 'en';
+
+$day_of_week = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y la %H:%M';
+$timespanfmt = '%s zile, %s ore, %s minute și %s secunde';
+
+$strAbortedClients = 'Întrerupt';
+$strAccessDenied = 'Acces interzis';
+$strAccessDeniedCreateConfig = 'Motivul probabil pentru aceasta este că nu ați creat un fișier de configurare. Puteți folosi %1$s vrăjitorul de setări %2$s pentru a crea un astfel de fișier.';
+$strAccessDeniedExplanation = 'phpMyAdmin a încercat să se conecteze la serverul MySQL, dar acesta a respins conexiunea. Ar trebui verificat dacă datele din config.inc.php sînt corecte.';
+$strAction = 'Acțiune';
+$strActions = 'Acțiuni';
+$strAddAutoIncrement = 'Adaugă valoare pentru AUTO_INCREMENT';
+$strAddClause = 'Adăugare %s';
+$strAddConstraints = 'Adaugă constrîngere';
+$strAddDeleteColumn = 'Adaugă/șterge coloane';
+$strAddDeleteRow = 'Adaugă/șterge criteriu';
+$strAddFields = 'Adaugă %s cîmp(uri)';
+$strAddHeaderComment = 'Adăugare comentariu la antet (\\n înseamnă delimitare de rînd)';
+$strAddIntoComments = 'Adăugare la comentarii';
+$strAddNewField = 'Adaugă cîmp nou';
+$strAddPrivilegesOnDb = 'Adaugă drepturi la baza de date următoare';
+$strAddPrivilegesOnTbl = 'Adaugă drepturi la următorul tabel';
+$strAddSearchConditions = 'Adaugă condiție de căutare (parte a comenzii "where"):';
+$strAddToIndex = 'Adaugă la coloana(ele) index &nbsp;%s&nbsp;';
+$strAddUser = 'Adaugă un utilizator nou';
+$strAddUserMessage = 'Ați adăugat un nou utilizator.';
+$strAdministration = 'Administrare';
+$strAfter = 'După %s';
+$strAfterInsertBack = 'Revenire';
+$strAfterInsertNewInsert = 'Adaugă o nouă înregistrare';
+$strAfterInsertNext = 'Editează rîndul următor';
+$strAfterInsertSame = 'Înapoi la această pagină';
+$strAll = 'Toate';
+$strAllowInterrupt = 'Permite întreruperea importului în cazul în care scriptul detectează că se apropie de limita de timp. Aceasta poate fi o metodă bună de a importa fișiere mari, deși poate strica tranzacții.';
+$strAllTableSameWidth = 'Arată toate tabelele cu aceeaăi mărime?';
+$strAlterOrderBy = 'Alterare „ordonare tabel după”';
+$strAnalyze = 'Analizează';
+$strAnalyzeTable = 'Analizare tabel';
+$strAnd = 'Și';
+$strAndThen = 'și apoi';
+$strAngularLinks = 'Legături unghiulare';
+$strAnIndex = 'A fost adăugat un index la %s';
+$strAny = 'Oricare';
+$strAnyHost = 'Oricare gazdă';
+$strAnyUser = 'Oricare utilizator';
+$strApproximateCount = 'Poate fi aproximativ. Vezi FAQ 3.11';
+$strAPrimaryKey = 'A fost adăugată o cheie primară la %s';
+$strArabic = 'Arab';
+$strArmenian = 'Armean';
+$strAscending = 'Crescătoare';
+$strAsDefined = 'Conform definiției:';
+$strAtBeginningOfTable = 'La începutul tabelului';
+$strAtEndOfTable = 'La sfîrșitul tabelului';
+$strAttr = 'Proprietăți';
+$strAutomaticLayout = 'Așezare automată';
+
+$strBack = 'Înapoi';
+$strBaltic = 'Baltic';
+$strBeginCut = 'DE TĂIAT - ÎNCEPUT';
+$strBeginRaw = 'ÎNCEPUT RAW';
+$strBinary = 'Binar';
+$strBinaryDoNotEdit = 'Binar - a nu se edita';
+$strBinaryLog = 'Jurnal binar';
+$strBinLogEventType = 'Tip eveniment';
+$strBinLogInfo = 'Informație';
+$strBinLogName = 'Denumire jurnal';
+$strBinLogOriginalPosition = 'Pozitie originală';
+$strBinLogPosition = 'Poziție';
+$strBinLogServerId = 'ID server';
+$strBookmarkAllUsers = 'Permite tuturor utilizatorilor să acceseze acest semn de carte';
+$strBookmarkCreated = 'Semnul de carte %s a fost creat';
+$strBookmarkDeleted = 'Eticheta a fost ștearsă.';
+$strBookmarkLabel = 'Etichetă';
+$strBookmarkQuery = 'Comandă SQL salvată';
+$strBookmarkReplace = 'Înlocuiește semnul de carte cu același nume';
+$strBookmarkThis = 'Pune semn de carte la această comandă SQL';
+$strBookmarkView = 'Numai vizualizare';
+$strBrowse = 'Navigare';
+$strBrowseDistinctValues = 'Răsfoiește valori distincte';
+$strBrowseForeignValues = 'Caută printre valori necunoscute';
+$strBufferPoolActivity = 'Buffer Pool Activity';
+$strBufferPool = 'Buffer Pool';
+$strBufferPoolUsage = 'Buffer Pool Usage';
+$strBufferReadMissesInPercent = 'Read misses in %';
+$strBufferReadMisses = 'Read misses';
+$strBufferWriteWaitsInPercent = 'Scrierea așteaptă în %';
+$strBufferWriteWaits = 'Scrierea așteaptă';
+$strBulgarian = 'Bulgar';
+$strBusyPages = 'Pagini ocupate';
+$strBzip = 'cu „bzip2”';
+
+$strCalendar = 'Calendar';
+$strCancel = 'Renunță';
+$strCanNotLoadExportPlugins = 'Nu au putut fi încărcate modulele de export adiționale, vă rog verificați instalarea!';
+$strCanNotLoadImportPlugins = 'Nu au putut fi încărcate modulele adiționale de import, vă rog verificați instalarea!';
+$strCannotLogin = 'Nu pot face conexiunea catre serverul MySQL';
+$strCantLoad = 'nu se poate încărca extensia %s,<br />vă rugăm să verificați configurația PHP.';
+$strCantLoadRecodeIconv = 'Nu pot încărca extensia iconv sau recode necesară pentru conversia de caractere, configurați PHP pentru a permite folosirea acestor extensii sau dezactivați conversia de caractere din phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Nu puteți redenumi index-ul la un nume PRIMARY!';
+$strCantUseRecodeIconv = 'Nu pot folosi funcțiile iconv nici libiconv nici recode_string în timp ce extensia este încărcată. Verificați configurația PHP.';
+$strCardinality = 'Cardinalitate';
+$strCaseInsensitive = 'insensibil la registru';
+$strCaseSensitive = 'sensibil la registru';
+$strCentralEuropean = 'European de est';
+$strChange = 'Schimbare';
+$strChangeCopyModeCopy = '... menține cel vechi.';
+$strChangeCopyMode = 'Creează un utilizator nou cu aceleași privilegii și...';
+$strChangeCopyModeDeleteAndReload = ' ... șterge cel vechi din tabelul de utilizatori și reîncarcă privilegiile.';
+$strChangeCopyModeJustDelete = ' ... șterge cel vechi din tabelul de utilizatori.';
+$strChangeCopyModeRevoke = ' ...revocă toate privilegiile active de la utilizatorul vechi și șterge-l după aceea.';
+$strChangeCopyUser = 'Schimbă informațiile de autentificare/Copiază utilizator';
+$strChangeDisplay = 'Selectează un cîmp';
+$strChangePassword = 'Schimbare parolă';
+$strCharset = 'Set de caractere';
+$strCharsetOfFile = 'Setul de caractere al fișierului:';
+$strCharsetsAndCollations = 'Set de caractere și gestiunea acestora';
+$strCharsets = 'Seturi de caractere';
+$strCheckAll = 'Marchează toate';
+$strCheck = 'Verifică';
+$strCheckOverhead = 'Verificare depășit';
+$strCheckPrivs = 'Verifică privilegiile';
+$strCheckPrivsLong = 'Verifică privilegiile pentru baza de date &quot;%s&quot;.';
+$strCheckTable = 'Verificare tabel';
+$strChoosePage = 'Selectează o pagină pentru a fi editată';
+$strColComFeat = 'Arată comentariile coloanei';
+$strCollation = 'Gestionare';
+$strColumnNames = 'Numele coloanelor';
+$strColumnPrivileges = 'Drepturi specifice coloanei';
+$strCommand = 'Comanda';
+$strComment = 'Comentariu';
+$strComments = 'Comentarii';
+$strCompatibleHashing = 'Compatibil MySQL&nbsp;4.0';
+$strCompleteInserts = 'Rezolvă inserarea';
+$strCompression = 'Compresie';
+$strCompressionWillBeDetected = 'Compresia fișierului importat va fi detectată automat din: %s';
+$strConfigDefaultFileError = 'Nu s-a putut încărca configurația implicită din: „%1$s”';
+$strConfigFileError = 'phpMyAdmin nu poate citi corect fisierul de configuratie! <br />Acesta se poate intampla in cazul in care PHP nu poate gasi fisierul sau nu o poate parsa corect. <br />Vezi configuratia fisierului apasand pe linkul de mai jos și citeste cu atentie erorile aparute ... In cele mai multe cazuri lipsesc apostroful sau ghilimele.<br />Daca primesti o pagina goala, totul pare sa fie bine.';
+$strConfigureTableCoord = 'Configureaza coordonatelepentru tabelul %s';
+$strConnectionError = 'Conexiune esuata: setari invalide.';
+$strConnections = 'Conexiuni';
+$strConstraintsForDumped = 'Restrictii pentru tabele sterse';
+$strConstraintsForTable = 'Restrictii pentru tabele';
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.';
+$strCookiesRequired = 'Trebuie sa aveti activat "cookies".';
+$strCopy = 'Copere';
+$strCopyDatabaseOK = 'Baza de date %s a fost copiata la %s';
+$strCopyTable = 'Copiază tabelul la (bază_de_date<b>.</b>tabel):';
+$strCopyTableOK = 'Tabelul %s a fost copiat la %s.';
+$strCopyTableSameNames = 'Nu se poate copia tabelul pe cel existent pentru ca este acelasi';
+$strCouldNotKill = 'phpMyAdmin n-a reusit sa opreasca firul de executie %s. Probabil a fost deja oprit.';
+$strCreate = 'Creează';
+$strCreateDatabaseBeforeCopying = 'CREEAZĂ BAZA DE DATE înainte de copiere';
+$strCreateIndex = 'Creează un index pe&nbsp;%s&nbsp;coloană';
+$strCreateIndexTopic = 'Creează un nou index';
+$strCreateNewDatabase = 'Creează bază de date nouă';
+$strCreateNewTable = 'Creează tabel nou în baza de date %s';
+$strCreatePage = 'Creează o nouă pagină';
+$strCreatePdfFeat = 'Creare PDF';
+$strCreateRelation = 'Creare relație';
+$strCreateTable = 'Creare tabel';
+$strCreateUserDatabase = 'Bază de date pentru utilizatorul';
+$strCreateUserDatabaseName = 'Creează o bază de date cu același nume și acordă toate privilegiile';
+$strCreateUserDatabaseNone = 'Nici una';
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)';
+$strCreationDates = 'Creare/reînnoire/verificare date';
+$strCriteria = 'Criteriu';
+$strCroatian = 'Croat';
+$strCSV = 'CSV';
+$strCyrillic = 'Chirilic';
+$strCzech = 'Ceh';
+$strCzechSlovak = 'Cehoslovac';
+
+$strDanish = 'Danez';
+$strDatabase = 'Baza de date';
+$strDatabaseEmpty = 'Cîmpul de denumire al bazei de date este gol!';
+$strDatabaseExportOptions = 'Opțiuni de exportare a bazei de date';
+$strDatabaseHasBeenCreated = 'Baza de date %1$s a fost creată.';
+$strDatabaseHasBeenDropped = 'Baza de date %s a fost aruncată.';
+$strDatabases = 'Baze de date';
+$strDatabasesDropped = '%s baza(ele) de data(e) au fost aruncate.';
+$strDatabasesStats = 'Statisticile bazelor de date';
+$strDatabasesStatsDisable = 'Dezactivează statisticile';
+$strDatabasesStatsEnable = 'Activează statisticile';
+$strDatabasesStatsHeavyTraffic = 'Notă: Activarea statisticilor pentru baza de date poate cauza creșterea traficului între MySQL și serverul Web.';
+$strData = 'Date';
+$strDataDict = 'Dicționar de date';
+$strDataOnly = 'Numai date';
+$strDataPages = 'Pagini ce conțin date';
+$strDBComment = 'Comentarii referitoare la baza de date: ';
+$strDBCopy = 'Copiază baza de date';
+$strDbIsEmpty = 'Baza de date pare a fi goală!';
+$strDbPrivileges = 'Drepturi specifice bazei de date';
+$strDBRename = 'Redenumire bază de date în';
+$strDbSpecific = 'specific bazei de date';
+$strDefault = 'Setare de bază';
+$strDefaultEngine = '%s este motorul de stocare stabilit implicit pe acest server MySQL.';
+$strDefaultValueHelp = 'Pentru valorile implicite, vă rugăm să introduceți o singură valoare, fără backslash, escape sau ghilimele, folosind formatul: a';
+$strDefragment = 'Defragmentare tabel';
+$strDelayedInserts = 'Folosește inserări întîrziate';
+$strDeleteAndFlush = 'Șterge utilizatorii și reîncarcă drepturile pe urmă.';
+$strDeleteAndFlushDescr = 'Este cea mai simplă metodă, dar reîncărcarea drepturilor s-ar putea să dureze.';
+$strDelete = 'Șterge';
+$strDeleted = 'Linia a fost ștearsă';
+$strDeleteNoUsersSelected = 'Nici un utilizator ales pentru ștergere!';
+$strDeleteRelation = 'Șterge relația';
+$strDeleting = 'Șterge %s';
+$strDelimiter = 'Delimitator';
+$strDelOld = 'Pagina curentă se leagă de tabele care nu mai există. Doriți ștergerea acestor legături?';
+$strDescending = 'Descrescător';
+$strDescription = 'Descriere';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.';
+$strDetails = 'Detalii...';
+$strDictionary = 'dicționar';
+$strDirectLinks = 'Legături directe';
+$strDirtyPages = 'Pagini murdare';
+$strDisabled = 'Dezactivat';
+$strDisableForeignChecks = 'Dezactivare verificări de cheie străine';
+$strDisplayFeat = 'Arată facilitățile';
+$strDisplayOrder = 'Ordine de afișare:';
+$strDisplayPDF = 'Arată schema PDF';
+$strDoAQuery = 'Execută o interogare prin exemplu (metacaracter: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentație';
+$strDoYouReally = 'Sigur doriți să ';
+$strDropDatabaseStrongWarning = 'Sînteți pe cale să DISTRUGEȚI o întreagă bază de date!';
+$strDrop = 'Aruncă';
+$strDropUsersDb = 'Aruncă baza de date care are același nume ca utilizatorul.';
+$strDumpingData = 'Salvarea datelor din tabel';
+$strDumpSaved = 'Copia a fost salvată în fișierul %s.';
+$strDumpXRows = 'Aruncă %s rînduri, începînd de la rîndul %s.';
+$strDynamic = 'dinamic';
+
+$strEdit = 'Editare';
+$strEditPDFPages = 'Editează paginile PDF';
+$strEditPrivileges = 'Editează drepturile de acces';
+$strEffective = 'Efectiv';
+$strEmpty = 'Golește';
+$strEmptyResultSet = 'MySQL a dat un set de rezultate gol (zero linii).';
+$strEnabled = 'Activat';
+$strEncloseInTransaction = 'Cuprinde exportarea într-o tranzacție';
+$strEndCut = 'DE TĂIAT - SFÎRȘIT';
+$strEnd = 'Sfîrșit';
+$strEndRaw = 'SFÎRȘIT BRUT';
+$strEngineAvailable = '%s este disponibil pentru acest server MySQL.';
+$strEngineDisabled = '%s a fost dezactivat pentru acest server MySQL.';
+$strEngines = 'Motoare';
+$strEngineUnsupported = 'Acest server MySQL nu susține motorul de stocare %s.';
+$strEnglish = 'Englez';
+$strEnglishPrivileges = ' Important: numele drepturilor de acces MySQL apar în engleză';
+$strError = 'Eroare';
+$strErrorInZipFile = 'Eroare în arhiva ZIP:';
+$strErrorRelationAdded = 'Eroare: Relația nu a fost adăugată.';
+$strErrorRelationExists = 'Eroare: relația deja există.';
+$strErrorRenamingTable = 'Eroare la redenumirea tabelului %1$s în %2$s';
+$strErrorSaveTable = 'Eroare la salvarea coordonatelor pentru Designer.';
+$strEscapeWildcards = 'Metacaracterele _ și % trebuiesc însoțite de \ pentru a le aplica';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estoniană';
+$strEvent = 'Eveniment';
+$strEvents = 'Evenimente';
+$strExcelEdition = 'Ediția Excel';
+$strExecuteBookmarked = 'Executare comandă marcată';
+$strExplain = 'Explică SQL';
+$strExport = 'Exportă';
+$strExportImportToScale = 'Exportă/Importă la scală';
+$strExportMustBeFile = 'Tipul selectat pentru export trebuie salvat într-un fișier!';
+$strExtendedInserts = 'Inserări extinse';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Încercări nereușite';
+$strField = 'Cîmp';
+$strFieldHasBeenDropped = 'Cîmpul %s a fost aruncat';
+$strFieldInsertFromFileTempDirNotExists = 'Eroare la mutarea fișierului încărcat, vezi FAQ 1.11';
+$strFieldsEnclosedBy = 'Cîmpuri încadrate de';
+$strFieldsEscapedBy = 'Cîmpuri realizate de';
+$strFields = 'Cîmpuri';
+$strFieldsTerminatedBy = 'Cîmpuri terminate de';
+$strFileAlreadyExists = 'Fișierul %s există deja pe server. Schimbați denumirea fișierului sau bifați opțiunea de suprascriere.';
+$strFileCouldNotBeRead = 'Fișierul nu poate fi citit';
+$strFileNameTemplateDescriptionDatabase = 'nume bază de date';
+$strFileNameTemplateDescriptionServer = 'nume server';
+$strFileNameTemplateDescriptionTable = 'nume tabel';
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.';
+$strFileNameTemplate = 'Șablon nume fișier';
+$strFileNameTemplateRemember = 'ține minte șablonul';
+$strFiles = 'Fișiere';
+$strFileToImport = 'Fișier de importat';
+$strFixed = 'fixat';
+$strFlushPrivilegesNote = 'Notă: phpMyAdmin folosește privilegiile utilizatorilor direct din tabelul de privilegii din MySQL. Conținutul acestui tabel poate diferi de cel original. În acest caz, reîncărcați de aici înainte de a continua %sreîncărcarea drepturilor%s.';
+$strFlushQueryCache = 'Reinițializare cache interogare';
+$strFlushTable = 'Curățarea tabelului ("FLUSH")';
+$strFlushTables = 'Flush (close) all tables';
+$strFontSize = 'Dimensiune font';
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)';
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added';
+$strFormat = 'Format';
+$strFormEmpty = 'Valoarea lipsește în formular !';
+$strFreePages = 'Pagini libere';
+$strFullText = 'Texte întregi';
+$strFunction = 'Funcție';
+$strFunctions = 'Funcții';
+
+$strGenBy = 'Generat de';
+$strGeneralRelationFeat = 'Facilități generale';
+$strGenerate = 'Generează';
+$strGeneratePassword = 'Generează parolă';
+$strGenTime = 'Timp de generare';
+$strGeorgian = 'Georgiană';
+$strGerman = 'Germană';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Privilegii globale';
+$strGlobalValue = 'Valoare globală';
+$strGo = 'Execută';
+$strGrantOption = 'Permite';
+$strGreek = 'Grec';
+$strGzip = 'cu „gzip”';
+
+$strHandler = 'Gestionar';
+$strHasBeenAltered = 'a fost alterat.';
+$strHaveToShow = 'Trebuie să alegeți cel puțin o coloană pentru a putea afișa';
+$strHebrew = 'Ebraică';
+$strHelp = 'Ajutor';
+$strHexForBLOB = 'Folosește hexazecimale pentru BLOB';
+$strHide = 'Ascunde';
+$strHideShowAll = 'Arată/ascunde toate';
+$strHideShowNoRelation = 'Arată/ascunde tabele fără realție';
+$strHome = 'Pagina de pornire';
+$strHomepageOfficial = 'Pagina oficială phpMyAdmin';
+$strHostEmpty = 'Numele gazdei este gol!';
+$strHost = 'Gazda';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Maghiar';
+
+$strIcelandic = 'Islandez';
+$strId = 'ID';
+$strIdxFulltext = 'Tot textul';
+$strIEUnsupported = 'Internet Explorer nu suportă această funcție.';
+$strIgnoreDuplicates = 'Ignoră rînduri duplicate';
+$strIgnore = 'Ignoră';
+$strIgnoreInserts = 'Utilizați ignorare inserări';
+$strImportExportCoords = 'Import/Export coordinates for PDF schema';
+$strImportFiles = 'Import fișiere';
+$strImportFormat = 'Formatul fișierului importat';
+$strImport = 'Importă';
+$strImportSuccessfullyFinished = 'Importul s-a terminat cu succes, %d interogări executate.';
+$strIndexes = 'Indexuri';
+$strIndexesSeemEqual = 'Indecșii %1$s și %2$s par a fi egali și unul din ei poate fi șters.';
+$strIndexHasBeenDropped = 'Indexul %s a fost aruncat';
+$strIndex = 'Index';
+$strIndexName = 'Nume index&nbsp;:';
+$strIndexType = 'Tip index&nbsp;:';
+$strIndexWarningTable = 'Probleme cu indexul tabelului `%s`';
+$strInnoDBAutoextendIncrement = 'Auto-extinde incrementarea';
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.';
+$strInnoDBBufferPoolSize = 'Buffer pool size';
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.';
+$strInnoDBDataFilePath = 'Fișiere cu date';
+$strInnoDBDataHomeDir = 'Directorul de bază pentru date';
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.';
+$strInnoDBPages = 'pagini';
+$strInnodbStat = 'Stare InnoDB';
+$strInsecureMySQL = 'Configurarea conține setările de bază (utilizator root fără parolă). Serverul MySQL poate fi astfel vulnerabil. Reparați neapărat această greșeală.';
+$strInsertAsNewRow = 'Inserează ca o nouă linie';
+$strInsertedRowId = 'ID rînd inserat:';
+$strInsert = 'Inserare';
+$strInterface = 'Interfață';
+$strInternalAndForeign = 'Nu este necesară o relație internă atunci cînd există o cheie externă corespondentă.';
+$strInternalRelationAdded = 'Relație internă adăugată';
+$strInternalRelations = 'Relații interne';
+$strInUse = 'în folosință';
+$strInvalidAuthMethod = 'Metodă de autentificare nevalidă stabilită în configurație:';
+$strInvalidColumnCount = 'Numărul coloanelor trebuie să fie mai mare de zero.';
+$strInvalidColumn = 'Coloană nevalidă (%s) specificată!';
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.';
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.';
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s';
+$strInvalidDatabase = 'Bază de date nevalidă';
+$strInvalidFieldAddCount = 'Trebuie să adăugați cel puțin un cîmp.';
+$strInvalidFieldCount = 'Tabelul trebuie să conțină cel puțin un cîmp.';
+$strInvalidLDIImport = 'Modulul opțional nu suportă importuri comprimate!';
+$strInvalidRowNumber = '%d nu este un număr valid de rînduri.';
+$strInvalidServerHostname = 'Gazdă nevalidă pentru serverul %1$s. Vă rugăm să revizuiți configurația dumneavoastră.';
+$strInvalidServerIndex = 'Index de server nevalid: „%s”';
+$strInvalidTableName = 'Denumire de tabel nevalidă';
+
+$strJapanese = 'Japonez';
+$strJoins = 'Joncțiuni';
+$strJumpToDB = 'Sari la baza de date &quot;%s&quot;.';
+$strJustDeleteDescr = 'Utilizatorii &quot;stersi&quot; vor avea acces la server la fel ca pînă acum, pînă cînd drepturile sînt reîncărcate.';
+$strJustDelete = 'Șterge utilizatorii din tabelele de drepturi.';
+
+$strKeepPass = 'Nu schimbați parola';
+$strKeyCache = 'Key cache';
+$strKeyname = 'Nume cheie';
+$strKill = 'Oprește';
+$strKnownExternalBug = 'Funcționalitatea %s este afectată de o eroare cunoscută, vedeți %s';
+$strKorean = 'Coreean';
+
+$strLandscape = 'Portret';
+$strLanguage = 'Limbă';
+$strLanguageUnknown = 'Limbă necunoscută: %1$s.';
+$strLatchedPages = 'Latched pages';
+$strLatexCaption = 'Captură tabel';
+$strLatexContent = 'Conținutul tabelului __TABLE__';
+$strLatexContinuedCaption = 'Continuare captură tabel';
+$strLatexContinued = '(continuare)';
+$strLatexIncludeCaption = 'Include captură tabel';
+$strLatexLabel = 'Tasta label';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Structura tabelului __TABLE__';
+$strLatvian = 'Leton';
+$strLDI = 'CSV folosind LOAD DATA';
+$strLDILocal = 'Folosește cuvîntul-cheie LOCAL';
+$strLengthSet = 'Lungime/Setare';
+$strLimitNumRows = 'Numărul de înregistrări pe pagină';
+$strLinesTerminatedBy = 'Linii terminate de';
+$strLinkNotFound = 'Legatură nevalidă';
+$strLinksTo = 'Trimitere la';
+$strLithuanian = 'Lituanian';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Locația fișierului textual';
+$strLoginInformation = 'Informații de autentificare';
+$strLogin = 'Autentificare';
+$strLogout = 'Deconectare';
+$strLogPassword = 'Parolă:';
+$strLogServer = 'Server';
+$strLogUsername = 'Nume utilizator:';
+$strLongOperation = 'Această operație poate dura. Doriți totuși să fie executată?';
+
+$strMaxConnects = 'conexiuni concurente (maxim)';
+$strMaximalQueryLength = 'Lungimea maximă a interogării create';
+$strMaximumSize = 'Mărime maximă: %s%s';
+$strMbExtensionMissing = 'Nu s-a găsit extensia PHP mbstring și se pare ca folosiți un set de charactere multi-octet. Fără extensia mbstring, phpMyAdmin nu poate diviza șirurile corect și aceasta poate duce la rezultate neașteptate.';
+$strMbOverloadWarning = 'Ați activat mbstring.func_overload în configurația PHP. Această opțiune nu este compatibilă cu phpMyAdmin și poate duce la pierderea unor date!';
+$strMIME_available_mime = 'Tipuri MIME disponibile';
+$strMIME_available_transform = 'Informații disponibile';
+$strMIME_description = 'Descriere';
+$strMIME_MIMEtype = 'Tip MIME';
+$strMIME_nodescription = 'Nu este disponibilă nici o descriere pentru această transformare.<br />Întrebați autorul de funcțiile îndeplinite de %s.';
+$strMIME_transformation = 'Transformare navigator';
+$strMIME_transformation_note = 'Pentru lista opțiunilor de transformare disponibile și transformările MIME-type, apăsați pe %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Introduceți valorile pentru opțiunile de transformare utilizînd acest format: \'a\', 100, b,\'c\'...<br />Dacă trebuie să folosiți backslash ("\") sau apostrof ("\'") in aceste valori, introduceți backslash-uri (ex. \'\\\\xyz\' sau \'a\\\'b\').';
+$strMIME_transformation_options = 'Opțiuni de transformare';
+$strMIMETypesForTable = 'TIPURI MIME PENTRU TABEL';
+$strMIME_without = 'Tipurile MIME enumerate cursiv nu au o funcție de transformare separată';
+$strModifications = 'Modificările au fost salvate';
+$strModifyIndexTopic = 'Modifică un index';
+$strModify = 'Modificare';
+$strMoveMenu = 'Mutare meniu';
+$strMoveTable = 'Mută tabelul la (bază_de_date<b>.</b>tabel):';
+$strMoveTableOK = 'Tabelul %s a fost mutat la %s.';
+$strMoveTableSameNames = 'Nu se poate copia tabelul peste cel existent pentru că este același!';
+$strMultilingual = 'Poliglot';
+$strMyISAMDataPointerSize = 'Mărime pointer date';
+$strMyISAMDataPointerSizeDesc = 'Mărimea pointerului implicit (în octeți), care este folosit de CREATE TABLE pentru tabelele MyISAM atunci cînd nu este specificată nici o opțiune MAX_ROWS.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Dacă fișierul temporar utilizat pentru crearea rapidă a indexului MyISAM ar fi mai mare decît dacă s-ar utiliza cache-ul de chei. Se preferă utilizarea metodei „cache chei”.';
+$strMyISAMMaxExtraSortFileSize = 'Mărimea maximă pentru fișierele temporare la crearea indexului';
+$strMyISAMMaxSortFileSizeDesc = 'Mărimea maximă pentru fișierul temporar, permisă în MySQL în timpul recreării unui index MyISAM (în timpul operațiunilor REPAIR TABLE, ALTER TABLE, sau LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Mărimea maximă pentru fișierele de sortare temporare';
+$strMyISAMRecoverOptions = 'Regim de recuperare automată';
+$strMyISAMRecoverOptionsDesc = 'Regimul de recuperare automată a tabelelor MyISAM deteriorate, stabilit prin opțiunea startup --myisam-recover server.';
+$strMyISAMRepairThreadsDesc = 'Dacă această valoare este mai mare decît 1, indexurile de tabel MyISAM sînt create în paralel (fiecare index în firul de execuție propriu) în tipul operațiunii de reparare prin procesul de sortare.';
+$strMyISAMRepairThreads = 'Repară firele de execuție';
+$strMyISAMSortBufferSizeDesc = 'Tamponul alocat la sortarea indexurilor MyISAM în timpul unei operațiuni REPAIR TABLE sau la crearea indexurilor cu CREATE INDEX sau ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Sortare Mărime tampon';
+$strMySQLCharset = 'Setul de caractere MySQL';
+$strMysqlClientVersion = 'Versiunea clientului MySQL';
+$strMySQLConnectionCollation = 'MySQL connection collation';
+$strMysqlLibDiffersServerVersion = 'Versiunea librăriei PHP MySQL %s pe care o dețineți diferă față de versiunea %s a serverului dumneavoastră MySQL. Această diferență poate cauza comportamente imprevizibile.';
+$strMySQLSaid = 'MySQL zice: ';
+$strMySQLShowProcess = 'Afișează procesele';
+
+$strName = 'Nume';
+$strNext = 'Următorul';
+$strNoActivity = 'Nu ați avut activitate de mai mult de %s secunde, vă rugăm să vă autentificați din nou';
+$strNoDatabases = 'Nu sînt baze de date';
+$strNoDatabasesSelected = 'Nu este selectată nici o bază de date.';
+$strNoDataReceived = 'Nicio informație nu a fost recepționată pentru import. Ori niciun fișier nu a fost trimit, ori mărimea fișierului a depășit mărimea maximă permisă de configurația PHP-ului dumneavoastră. Vedeți FAQ 1.16.';
+$strNoDescription = 'Nu există descriere';
+$strNoDetailsForEngine = 'Nu există informații detaliate de stare disponibile pentru motorul de stocare.';
+$strNoDropDatabases = 'Comenzile "DROP DATABASE" sînt dezactivate.';
+$strNoExplain = 'Sari peste explicarea SQL';
+$strNoFilesFoundInZip = 'Niciun fișier nu a fost găsit în arhiva ZIP!';
+$strNoFrames = 'phpMyAdmin are o interfață mai prietenoasă cu un navigator ce lucreaza cu <b>cadre</b>.';
+$strNoIndex = 'Index nu este definit!';
+$strNoIndexPartsDefined = 'Nu sînt definite părți din index!';
+$strNoModification = 'Nici o schimbare';
+$strNone = 'Nici unul(a)';
+$strNo = 'Nu';
+$strNoOptions = 'Acest format nu are opțiuni';
+$strNoPassword = 'Nu există parolă';
+$strNoPermission = 'Serverul web nu poate salva fișierul %s.';
+$strNoPhp = 'fără cod PHP';
+$strNoPrivileges = 'Nu există drepturi de acces';
+$strNoRights = 'Nu dețineți drepturi de acces pentru a vă afla aici!';
+$strNoRowsSelected = 'Nu e nici un rînd selectat';
+$strNoSpace = 'Spațiu insuficient pentru salvarea fișierului %s.';
+$strNoTablesFound = 'Nu s-a găsit nici un tabel în baza de date.';
+$strNoThemeSupport = 'Nu există suport pentru tematici, vă rugăm să verificați configurația și/sau designurile în directorul %s.';
+$strNotNumber = 'Acesta nu este un număr!';
+$strNotOK = 'Nu este bine';
+$strNotSet = '<b>%s</b> tabelul nu a fost găsit sau nu este stabilit în %s';
+$strNoUsersFound = 'Nu s-a găsit nici un utilizator.';
+$strNoValidateSQL = 'Sari peste validarea SQL';
+$strNull = 'Nul';
+$strNumberOfFields = 'Număr de cîmpuri';
+$strNumberOfTables = 'Număr de tabele';
+$strNumSearchResultsInTable = '%s rezultat(e) în interiorul tabelului <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> rezultat(e)';
+$strNumTables = 'Tabele';
+
+$strOK = 'E bine';
+$strOpenDocumentSpreadsheet = 'Foaie de calcul Open Document';
+$strOpenDocumentText = 'Text Open Document';
+$strOpenNewWindow = 'Deschide fereastră phpMyAdmin nouă';
+$strOperations = 'Operații';
+$strOperator = 'Operand';
+$strOptimize = 'Optimizează';
+$strOptimizeTable = 'Optimizare tabel';
+$strOptions = 'Opțiuni';
+$strOr = 'Sau';
+$strOverhead = 'Asupra';
+$strOverwriteExisting = 'Suprascrie fișier(e) existent(e)';
+
+$strPacked = 'Împachetat';
+$strPageNumber = 'Numărul paginii:';
+$strPagesToBeFlushed = 'Pagini de golit';
+$strPaperSize = 'Mărime hîrtie';
+$strPartialImport = 'Importare parțială';
+$strPartialText = 'Texte parțiale';
+$strPartitionDefinition = 'Definiție PARTIȚIE';
+$strPartitioned = 'partiționat';
+$strPartitionMaintenance = 'Întreținerea partiției';
+$strPartition = 'Partiția %s';
+$strPasswordChanged = 'Parola pentru %s a fost schimbată cu succes.';
+$strPasswordEmpty = 'Parola este goală!';
+$strPasswordHashing = 'Password Hashing';
+$strPasswordNotSame = 'Parolele nu corespund!';
+$strPassword = 'Parola';
+$strPBXTCheckpointFrequency = 'Checkpoint frequency';
+$strPBXTCheckpointFrequencyDesc = 'Mărimea datelor scrise în jurnalul tranzacțiilor înaintea efectuării unei verificări. Mărimea implicită este 24MO.';
+$strPBXTDataFileGrowSize = 'Data file grow size';
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.';
+$strPBXTDataLogThreshold = 'Data log threshold';
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.';
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.';
+$strPBXTGarbageThreshold = 'Prag gunoi';
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.';
+$strPBXTIndexCacheSize = 'Dimensiune cache index';
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.';
+$strPBXTLogBufferSize = 'Dimensiune tampon jurnal';
+$strPBXTLogCacheSizeDesc = 'Cantitatea de memorie alocată pentru cache-ul jurnalului tranzacției, utilizat pentru a depozita datele jurnalului. Implicit este 16MO.';
+$strPBXTLogCacheSize = 'Dimensiune cache jurnal';
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.';
+$strPBXTLogFileCount = 'Număr de fișiere-jurnal';
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.';
+$strPBXTLogFileThreshold = 'Prag fișiere-jurnal';
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.';
+$strPBXTRecordCacheSize = 'Dimensiune cache înregistrare';
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.';
+$strPBXTRowFileGrowSize = 'Row file grow size';
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.';
+$strPBXTTransactionBufferSize = 'Dimensiune tampon tranzacție';
+$strPdfDbSchema = 'Schema bazei de date "%s" - Pagina %s';
+$strPdfInvalidTblName = 'Tabelul „%s” nu există!';
+$strPdfNoTables = 'Nu există tabele';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Generează un raport conținînd datele unui singur tabel)';
+$strPDFReportTitle = 'Titlu raport';
+$strPerHour = 'pe oră';
+$strPerMinute = 'pe minut';
+$strPerSecond = 'pe secundă';
+$strPersian = 'Persană';
+$strPhoneBook = 'carte de telefoane';
+$strPhp = 'Creează cod PHP';
+$strPHPVersion = 'Versiune PHP';
+$strPleaseSelectPrimaryOrUniqueKey = 'Vă rugăm să alegeți cheia primară sau o cheie unică';
+$strPmaDocumentation = 'Documentație phpMyAdmin';
+$strPmaUriError = 'Directiva <tt>$cfg[\'PmaAbsoluteUri\']</tt> TREBUIE să fie stabilită în fișierul de configurare!';
+$strPolish = 'Polononez';
+$strPortrait = 'Portret';
+$strPos1 = 'Începe';
+$strPrevious = 'Anterior';
+$strPrimaryKeyHasBeenDropped = 'Cheia primară a fost aruncată';
+$strPrimaryKeyName = 'Numele cheii primare trebuie să fie... PRIMARY!';
+$strPrimaryKeyWarning = '(Numele „PRIMARY” <b>trebuie</b> să fie <b>numai</b> la cheia primară!)';
+$strPrimary = 'Primar';
+$strPrint = 'Listare';
+$strPrintViewFull = 'Vizualizare listare (împreună cu text)';
+$strPrintView = 'Viziualizare imprimare';
+$strPrivDescAllPrivileges = 'Include toate privilegiile, excluzand GRANT.';
+$strPrivDescAlter = 'Permite alterarea structurii la tabelele deja existente.';
+$strPrivDescAlterRoutine = 'Permite alterarea și aruncarea rutinelor stocate.';
+$strPrivDescCreateDb = 'Permite crearea de noi baze de date și tabele.';
+$strPrivDescCreateRoutine = 'Permite crearea rutinelor stocate.';
+$strPrivDescCreateTbl = 'Permite crearea de noi tabele.';
+$strPrivDescCreateTmpTable = 'Permite crearea de tabele temporare.';
+$strPrivDescCreateUser = 'Permite crearea, aruncarea și redenumirea conturilor de utilizator.';
+$strPrivDescCreateView = 'Permite crearea noilor viziuni.';
+$strPrivDescDelete = 'Permite stergere de date.';
+$strPrivDescDropDb = 'Permite stergerea unei baze de date sau a unor tabele.';
+$strPrivDescDropTbl = 'Permite aruncarea a unei baze de date.';
+$strPrivDescEvent = 'Permite configurarea evenimentelor pentru planificatorul de evenimente';
+$strPrivDescExecute5 = 'Permite executarea rutinelor stocate.';
+$strPrivDescExecute = 'Permite rularea procedurilor stocate; Nu are efect in aceasta versiune MySQL.';
+$strPrivDescFile = 'Permite importarea datelor in fisiere și exportarea acestora din fisiere.';
+$strPrivDescGrant = 'Permite adaugarea utilizatorilor și drepturilor fara reincarcarea tabelelor de drepturi.';
+$strPrivDescIndex = 'Permite crearea și stergerea indexurilor.';
+$strPrivDescInsert = 'Permite inserarea și înlocuirea datelor.';
+$strPrivDescLockTables = 'Permite blocarea tabelelor din firul curent de execuție.';
+$strPrivDescMaxConnections = 'Limitează numărul de noi conexiuni care pot fi deschise de utilizator într-o oră.';
+$strPrivDescMaxQuestions = 'Limiteaza numarul de comenzi care pot fi trimise de utilizator către server într-o oră.';
+$strPrivDescMaxUpdates = 'Limitează numărul de comenzi pentru schimbarea vreunui tabel sau vreunei baze de date executabile de utilizator într-o oră.';
+$strPrivDescMaxUserConnections = 'Limitează numărul conexiunilor simultane pe care le poate avea utilizatorul.';
+$strPrivDescProcess = 'Permite vizualizarea proceselor tuturor utilizatorilor';
+$strPrivDescReferences = 'Nu are efect în această versiune MySQL.';
+$strPrivDescReload = 'Permite reîncărcarea setărilor de server și golirea memoriei cache a serverului.';
+$strPrivDescReplClient = 'Permite utilizatorului de a interoga locația slave/master.';
+$strPrivDescReplSlave = 'Necesară pentru „slave replication”.';
+$strPrivDescSelect = 'Permite citirea datelor.';
+$strPrivDescShowDb = 'Permite accesul la lista completă a bazelor de date.';
+$strPrivDescShowView = 'Permite executarea interogărilor SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Permite oprirea serverului.';
+$strPrivDescSuper = 'Permite conexiuni, chiar dacă s-a atins numărul maxim de conexiuni; Necesară pentru majoritatea operațiunilor administrative, cum ar fi setarea variabilelor globale sau oprirea firelor de execuție a altor utilizatori.';
+$strPrivDescTrigger = 'Permite crearea și eliminarea declanșatorilor';
+$strPrivDescUpdate = 'Permite schimbarea datelor.';
+$strPrivDescUsage = 'Fără drepturi.';
+$strPrivileges = 'Drepturi de acces';
+$strPrivilegesReloaded = 'Drepturile au fost reîncarcate cu succes.';
+$strProcedures = 'Proceduri';
+$strProcesses = 'Procese';
+$strProcesslist = 'Listă procese';
+$strProfiling = 'Creare profil';
+$strProtocolVersion = 'Versiune protocol';
+$strPutColNames = 'Pune numele cîmpului în primul rînd';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Interogare prin exemplu';
+$strQueryCache = 'Cache interogări';
+$strQueryFrame = 'Fereastra de comandă';
+$strQueryOnDb = 'Comandă SQL pe baza de date <b>%s</b>:';
+$strQueryResultsOperations = 'Operațiuni asupra rezultatelor interogării';
+$strQuerySQLHistory = 'Istoric SQL';
+$strQueryStatistics = '<b>Statistică interogări</b>: De la început, s-au trimis %s interogări la server.';
+$strQueryTime = 'comanda a durat %01.4f sec';
+$strQueryType = 'Tip interogare';
+$strQueryWindowLock = 'A nu se suprascrie peste această interogare din cealaltă fereastră';
+
+$strReadRequests = 'Cereri de citire';
+$strRebuild = 'Reconstruiește';
+$strReceived = 'Recepționat';
+$strRecommended = 'recomandat';
+$strRecords = 'Înregistrări';
+$strReferentialIntegrity = 'Verificarea integrității referinței:';
+$strRefresh = 'Reîncarcă';
+$strRelationalDisplayField = 'Relational display field';
+$strRelationalKey = 'Cheie relațională';
+$strRelationalSchema = 'Schema relațională';
+$strRelationDeleted = 'Relație ștearsă';
+$strRelationNotWorking = 'Opțiunile adiționale pentru folosirea tabelelor intercalate au fost dezactivate. Pentru a afla de ce ... %shere%s.';
+$strRelationsForTable = 'RELAȚII PENTRU TABEL';
+$strRelations = 'Legături';
+$strRelationView = 'Vizualizare relațională';
+$strReloadingThePrivileges = 'Reîncărcarea drepturilor';
+$strReloadPrivileges = 'Reîncărcare privilegii';
+$strReload = 'Reîncarcă';
+$strRemovePartitioning = 'Elimină partiționarea';
+$strRemoveSelectedUsers = 'Eliminarea utilizatorilor selectați';
+$strRenameDatabaseOK = 'Baza de date %s a fost redenumită în %s';
+$strRenameTableOK = 'Tabelului %s i s-a dat un numele de %s';
+$strRenameTable = 'Redenumire tabel la';
+$strRepair = 'Repară';
+$strRepairTable = 'Reparare tabel';
+$strReplaceNULLBy = 'Înlocuire NULL cu';
+$strReplaceTable = 'Înlocuiește datele tabelului cu fișier';
+$strReplication = 'Replicare';
+$strReset = 'Resetare';
+$strResourceLimits = 'Limitare de resurse';
+$strRestartInsertion = 'Repornește inserția cu %s rînduri';
+$strReType = 'Re-tastează';
+$strRevokeAndDeleteDescr = 'Utilizatorii vor avea în continuare drepturi de UTILIZARE pînă la reîncărcarea drepturilor.';
+$strRevokeAndDelete = 'Revocarea tuturor drepturilor active ale utilizatorilor și stergerea acestora.';
+$strRevokeMessage = 'Drepturile tale au fost revocate pentru %s';
+$strRevoke = 'Revocare';
+$strRomanian = 'Român';
+$strRoutineReturnType = 'Tipul întors';
+$strRoutines = 'Rutine';
+$strRowLength = 'Lungime linie';
+$strRowsAffected = '%1$d rînd(uri) afectat(e).';
+$strRowsDeleted = '%1$s rînd(uri) șters(e).';
+$strRowsFrom = 'linii începînd cu';
+$strRowsInserted = '%1$d rînd(uri) inserat(e).';
+$strRowSize = ' Mărime linie ';
+$strRowsModeFlippedHorizontal = 'orizontal (colontitlu rotativ)';
+$strRowsModeHorizontal = 'orizontal';
+$strRowsModeOptions = 'în mod %s și repetare colontitlu după %s celule';
+$strRowsModeVertical = 'vertical';
+$strRows = 'Linie';
+$strRowsStatistic = 'Statisticile rîndului';
+$strRunning = 'rulînd pe %s';
+$strRunQuery = 'Trimite comanda';
+$strRunSQLQueryOnServer = 'Execută interogare/interogări SQL pe serverul %s';
+$strRunSQLQuery = 'Execută interogare SQL asupra bazei de date %s';
+$strRussian = 'Rus';
+
+$strSaveOnServer = 'Salveaza pe server în directorul %s';
+$strSavePosition = 'Salvează poziție';
+$strSave = 'Salveaza';
+$strScaleFactorSmall = 'Factorul de scalare este prea mica pentru a inchepe in pagina';
+$strSearchFormTitle = 'Caută în baza de date';
+$strSearchInField = 'În cîmpul:';
+$strSearchInTables = 'În interiorul tabelei(lor):';
+$strSearchNeedle = 'Cuvînt/valoare de căutat (metacaracter: "%"):';
+$strSearchOption1 = 'cel puțin unul dintre cuvinte';
+$strSearchOption2 = 'toate cuvintele';
+$strSearchOption3 = 'fraza exactă';
+$strSearchOption4 = 'ca o expresie';
+$strSearchResultsFor = 'Caută rezultate pentru "<i>%s</i>" %s:';
+$strSearch = 'Caută';
+$strSearchType = 'Găsește:';
+$strSecretRequired = 'Fișierul de configurare necesită o expresie de protecție secretă (blowfish_secret).';
+$strSelectADb = 'Selectați baza de date';
+$strSelectAll = 'Selectează tot';
+$strSelectBinaryLog = 'Selectați jurnalul binar pentru vizualizare';
+$strSelectFields = 'Selectează cîmpurile (cel puțin unul):';
+$strSelectForeignKey = 'Alegeți cheia străină';
+$strSelectNumRows = 'în interogarea';
+$strSelectReferencedKey = 'Alegere cheie referențiată';
+$strSelectTables = 'Selectează tabele';
+$strSend = 'Trimite';
+$strSent = 'Trimis';
+$strServerChoice = 'Alegerea serverului';
+$strServerNotResponding = 'Serverul nu răspunde';
+$strServer = 'Server';
+$strServers = 'Servere';
+$strServerStatusDelayedInserts = 'Inserări întîrziate';
+$strServerStatus = 'Informații rulare';
+$strServerStatusUptime = 'Acest server MySQL rulează de %s. S-a lansat la %s.';
+$strServerTabVariables = 'Variabile';
+$strServerTrafficNotes = '<b>Trafic server</b>: Aceste tabele arată statistica de trafic în retea a acestui server MySQL de la lansare.';
+$strServerVars = 'Variabile și configurări de server';
+$strServerVersion = 'Versiune server';
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.';
+$strSessionValue = 'Valoare sesiune';
+$strSetEnumVal = 'Dacă cîmpul este „enum” sau „set”, vă rugăm să adăugați valori folosind formatul: \'a\',\'b\',\'c\'...<br />Daca aveti nevoie sa puneti bara intoarsa (backslash) ("\") sau semnul ("\'") la aceste valori, folosiți exemplul ( \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'Arată toate';
+$strShowColor = 'Arată culoarea';
+$strShowDatadictAs = 'Data Dictionary Format';
+$strShowFullQueries = 'Afișare comandă întreagă';
+$strShowGrid = 'Arată grila';
+$strShowHideLeftMenu = 'Arată/ascunde meniul stîng';
+$strShowingBookmark = 'Afișînd semn de carte';
+$strShowingPhp = 'Afișare ca și cod PHP';
+$strShowingRecords = 'Afișează înregistrări';
+$strShowingSQL = 'Afișare interogare SQL';
+$strShowOpenTables = 'Afișează tabele deschise';
+$strShowPHPInfo = 'Arată informația PHP';
+$strShow = 'Afișează';
+$strShowSlaveHosts = 'Afișează gazde sclavi';
+$strShowSlaveStatus = 'Afișează stare sclav';
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.';
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.';
+$strShowStatusCreated_tmp_filesDescr = 'Cîte fișiere temporare a creat mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.';
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).';
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.';
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.';
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.';
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.';
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.';
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.';
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.';
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.';
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.';
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.';
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.';
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.';
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.';
+$strShowStatusHandler_writeDescr = 'Numărul de cereri de a insera un rînd într-un tabel.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Numărul de pagini conținînd date (curate sau murdare).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Numărul de pagini actualmente murdare.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Numărul de pagini libere.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.';
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.';
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.';
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.';
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.';
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.';
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.';
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.';
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.';
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.';
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.';
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.';
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.';
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.';
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.';
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.';
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.';
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.';
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.';
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.';
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.';
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.';
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.';
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.';
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.';
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.';
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.';
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.';
+$strShowStatusOpen_filesDescr = 'The number of files that are open.';
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).';
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.';
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.';
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.';
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.';
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.';
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).';
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.';
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.';
+$strShowStatusReset = 'Reinițializare';
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).';
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.';
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.';
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)';
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)';
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.';
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.';
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.';
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.';
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.';
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.';
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.';
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.';
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.';
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.';
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.';
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.';
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.';
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)';
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.';
+$strShowTableDimension = 'Arată dimensiunile tabelei';
+$strShowTables = 'Arată tabelele';
+$strShowThisQuery = ' Afișează această comandă din nou aici ';
+$strSimplifiedChinese = 'Chineză simplificată';
+$strSingly = '(singly)';
+$strSize = 'Mărime';
+$strSkipQueries = 'Number of records(queries) to skip from start';
+$strSlovak = 'Slovacă';
+$strSlovenian = 'Slovenă';
+$strSmallBigAll = 'Small/Big All';
+$strSnapToGrid = 'Aliniere la grilă0';
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)';
+$strSortByKey = 'Sortare după cheie';
+$strSorting = 'Sortare';
+$strSort = 'Sortare';
+$strSpaceUsage = 'Utilizare spațiu';
+$strSpanish = 'Spaniolă';
+$strSplitWordsWithSpace = 'Cuvinte despărțite de un spațiu (" ").';
+$strSQLCompatibility = 'SQL compatibility mode';
+$strSQLExportType = 'Modul de export';
+$strSQLParserBugMessage = 'Exista o posibilitate de a fi gasit un BUG in parserul SQL. Verifica atent inca o data comanda și verifica daca semnele specifice sunt corecte. O alta posibilitate ar putea fi punerea unui fisier binar in afara zonei de text. Poti incerca aceasta comanda și printr-o linie de comanda MySQL. Eroarea MySQL de mai jos, daca e vreuna, poate sa te ajute la diagnosticarea problemei. Daca in continuare ai probleme cu executarea comenzii, redu o parte din comanda la aceea parte care cauzeaza problema și raporteaza acesta ca un BUG in sectiunea DE TAIAT';
+$strSQLParserUserError = 'Pare sa fie o eroare in comanda SQL. Eroarea MySQL de mai jos, daca e vreuna, poate sa te ajute la diagnosticarea problemei';
+$strSQLQuery = 'Comanda SQL';
+$strSQLResult = 'Rezultat SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Identificator nevalid';
+$strSQPBugUnclosedQuote = 'Citare neînchisă';
+$strSQPBugUnknownPunctuation = 'Înșiruire de punctuație necunoscută';
+$strStandInStructureForView = 'Stand-in structure for view';
+$strStatCheckTime = 'Ultima verficare';
+$strStatCreateTime = 'Creare';
+$strStatement = 'Comenzi';
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.';
+$strStatUpdateTime = 'Ultima actualizare';
+$strStatus = 'Stare';
+$strStorageEngines = 'Motoare de stocare';
+$strStorageEngine = 'Motor de stocare';
+$strStrucCSV = 'Date CSV';
+$strStrucData = 'Structura și date';
+$strStrucExcelCSV = 'Date CSV pentru MS Excel';
+$strStrucNativeExcel = 'Date native MS Excel';
+$strStrucOnly = 'Numai structura';
+$strStructPropose = 'Propune structura de tabele';
+$strStructureForView = 'Structură pentru vizualizare';
+$strStructure = 'Structură';
+$strSubmit = 'Trimite';
+$strSuccess = 'Comanda dumneavoastră SQL a fost executată cu succes';
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.';
+$strSum = 'Sumă';
+$strSwedish = 'Suedez';
+$strSwekeyAuthenticating = 'Authenticating...';
+$strSwekeyAuthFailed = 'Hardware authentication failed';
+$strSwekeyNoKeyId = 'File %s does not contain any key id';
+$strSwekeyNoKey = 'No valid authentication key plugged';
+$strSwitchToDatabase = 'Schimbă la tabela copiată';
+$strSwitchToTable = 'Schimbă la tabela copiată';
+
+$strTableAlreadyExists = 'Tabelul %s există deja!';
+$strTableAlteredSuccessfully = 'Tabelul %1$s a fost alterat cu succes';
+$strTableComments = 'Comentarii tabel';
+$strTableEmpty = 'Numele de tabel este gol!';
+$strTableHasBeenCreated = 'Tabelul %1$s a fost creat.';
+$strTableHasBeenDropped = 'Tabelul %s a fost aruncat';
+$strTableHasBeenEmptied = 'Tabelul %s a fost golit';
+$strTableHasBeenFlushed = 'Tabelul %s a fost curățat';
+$strTableIsEmpty = 'Tabelul pare a fi gol!';
+$strTableMaintenance = 'Administrare tabel';
+$strTableName = 'Denumire tabel';
+$strTableOfContents = 'Sumar';
+$strTableOptions = 'Opțiuni tabel';
+$strTables = '%s tabele';
+$strTableStructure = 'Structura de tabel pentru tabelul';
+$strTable = 'Tabel';
+$strTakeIt = 'alege';
+$strTblPrivileges = 'Drepturi specifice de tabele';
+$strTempData = 'Date temporare';
+$strTextAreaLength = 'Datorită lungimii sale, <br /> acest cîmp s-ar putea să nu fie editabil';
+$strTexyText = 'Texy! text';
+$strThai = 'Tailandez';
+$strThemeDefaultNotFound = 'Tema implicită %s nu a fost găsită!';
+$strThemeNoPreviewAvailable = 'Nici o previzualizare disponibilă.';
+$strThemeNotFound = 'Tema %s nu a fost găsită!';
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!';
+$strThemePathNotFound = 'Calea temei nu a fost găsită pentru tema %s!';
+$strTheme = 'Șablon/stil';
+$strThisHost = 'Această gazdă';
+$strThreads = 'Fire';
+$strThreadSuccessfullyKilled = 'Firul de execuție %s a fost oprit cu succes.';
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.';
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.';
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.';
+$strTime = 'Timp';
+$strToFromPage = 'în/din pagină';
+$strToggleScratchboard = 'dezactivare scratchboard';
+$strToggleSmallBig = 'Comutare mare/mică';
+$strToSelectRelation = 'Pentru a alege relația, faceți clic:';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'Chineza Traditionala';
+$strTraditionalSpanish = 'Spaniola traditionala';
+$strTraffic = 'Trafic';
+$strTransactionCoordinator = 'Coordonator tranzacție';
+$strTransformation_application_octetstream__download = 'Afișează un link pentru descarcarea datelor binare a unui camp. Prima optiune este denumirea fisierului binar. A doua optiune este o denumire posibila pentru un rand de tabel care contine denumirea de fisier. Daca setati și o a doua optiune, trebuie sa aveti prima optiune setata ca și empty string';
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).';
+$strTransformation_image_jpeg__inline = 'Afișează o imagine mica clicabila ; optiuni: latime, inaltime in pixeli (metine dimensiunile originale)';
+$strTransformation_image_jpeg__link = 'Afișează un link la imagine (direct blob download, i.e.).';
+$strTransformation_image_png__inline = 'Vezi imagine/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.';
+$strTransformation_text_plain__external = 'NUMAI LINUX: Lanseaza o aplicatie externa și trimite datele prin input standard. Returneaza standard output a aplicatiei. Default este Tidy, pentru listarea codului HTML. Din motive de securitate, va trebui sa editati manual fisierul libraries/transformations/text_plain__external.inc.php și să inserați uneltele permise să ruleze. Prima opțiune este apoi numărul de programe care vor fi utilizate și a doua opțiune sînt parametri pentru program. Al treilea parametru, dacă este stabilit la 1 va transforma ieșirea folosind htmlspecialchars() (implicit este 1). Un al patrulea parametru, dacă este stabilit la 1, va aplica NOWRAP la conținut, astfel încît întregul output va fi afișat fără reformatare (implicit 1)';
+$strTransformation_text_plain__formatted = 'Menține formatarea originală a cîmpului.';
+$strTransformation_text_plain__imagelink = 'Afișează o imagine și un link, campul contine denumirea fisierului; prima optiune este un prefix cum ar fi "http://domain.com/", a doua optiune este latimea in pixeli, iar a treia este inaltimea.';
+$strTransformation_text_plain__link = 'Afișează un link, campul contine denumirea fisierului, prima optiune este un prefix cum ar fi "http://domain.com/", a doua optiune este un titlu pentru link.';
+$strTransformation_text_plain__sql = 'Formatează textul ca interogare SQL cu evidențierea sintaxei.';
+$strTransformation_text_plain__substr = 'Afișează doar o parte a firului de executie. Prima optiune este un offset pentru definirea punctului de început a outputului de text (Default 0). A doua optiune este un offset de text returnat. Daca este gol, returneaza textul ramas. A treia optiune defineste caracterele care vor fi atasate la output la returnarea unui substring (Default: ...) .';
+$strTriggers = 'Declanșatori';
+$strTruncateQueries = 'Truncare comenzi afișate';
+$strTurkish = 'Turc';
+$strType = 'Tip';
+
+$strUkrainian = 'Ucrainean';
+$strUncheckAll = 'Deselectează toate';
+$strUnicode = 'Unicod';
+$strUnique = 'Unic';
+$strUnknown = 'necunoscut';
+$strUnselectAll = 'Deselectează tot';
+$strUnsupportedCompressionDetected = 'Ați încercat să încărcați un fișier cu compresie nesuportată (%s). Fie suportul pentru aceasta nu este implementat, fie este dezactivat de configurația dumneavoastră.';
+$strUpdatePrivMessage = 'Ați actualizat privilegiile pentru %s.';
+$strUpdateProfileMessage = 'Profilul a fost actualizat.';
+$strUpdateQuery = 'Reînnoire comandă';
+$strUpdComTab = 'Parcurgeti documentatia pentru modul de updatare a Column_comments Table';
+$strUpgrade = 'Ar trebui sa reactualizati serverul %s %s la o versiune mai noua.';
+$strUploadErrorCantWrite = 'Eșec la scrierea fișierului pe disc.';
+$strUploadErrorExtension = 'Încărcarea fișierului a fost împiedicată de extensie.';
+$strUploadErrorFormSize = 'Fișierul încărcat depășește directiva MAX_FILE_SIZE specificată în formularul HTML.';
+$strUploadErrorIniSize = 'Fișierul încărcat depășește condiția upload_max_filesize din php.ini.';
+$strUploadErrorNoTempDir = 'Lipsește un dosar temporar.';
+$strUploadErrorPartial = 'Fișierul a fost încărcat numai parțial.';
+$strUploadErrorUnknown = 'Eroare necunoscută la încărcarea fișierului.';
+$strUploadLimit = 'Probabil ați încercat să încărcați un fișier prea mare. Faceți referire la %sdocumentație%s pentru căi de ocolire a acestei limite.';
+$strUploadsNotAllowed = 'Încărcările de fișiere nu sînt permise pe acest server.';
+$strUsage = 'Utilizare';
+$strUseBackquotes = 'Utilizati apostroful pentru numele tabelelor și a campurilor';
+$strUseHostTable = 'Utilizare tabel gazde';
+$strUserAlreadyExists = 'Utilizatorul %s există deja!';
+$strUserEmpty = 'Numele de utilizator este gol!';
+$strUserName = 'Nume utilizator';
+$strUserNotFound = 'Utilizatorul selectat nu a fost găsit în tabelul de drepturi.';
+$strUserOverview = 'Descriere utilizator';
+$strUsersDeleted = 'Utilizatorii selectați au fost eliminați.';
+$strUsersHavingAccessToDb = 'Utilizatorul are acces la &quot;%s&quot;';
+$strUser = 'Utilizator';
+$strUseTabKey = 'Folosiți tasta TAB pentru a trece de la o valoare la alta sau CTRL+săgeți pentru a merge în oricare direcție';
+$strUseTables = 'Utilizare tabele';
+$strUseTextField = 'Utilizare cîmp text';
+$strUseThisValue = 'Folosește această valoare';
+
+$strValidateSQL = 'Validează SQL';
+$strValidatorError = 'Validatorul SQL nu poate fi inițializat. Verificați dacă e instalată extesnsia necesară PHP, așa cum e descris în %sdocumentation%s.';
+$strValue = 'Valoare';
+$strVar = 'Variabil';
+$strVersionInformation = 'Informații despre versiune';
+$strViewDumpDatabases = 'Vizualizarea schemei bazei de date';
+$strViewDumpDB = 'Vizualizarea schemei bazei de date';
+$strViewDump = 'Vizualizarea schemei tabelului';
+$strViewHasAtLeast = 'Această vedere are minim acest număr de rînduri. Vedeți %sdocumentation%s.';
+$strViewHasBeenDropped = 'Vizualizarea %s a fost eliminată';
+$strViewName = 'Denumire VIZIUNE';
+$strView = 'Vizualizare';
+
+$strWebServerUploadDirectoryError = 'Directorul stabilit pentru încărcare nu poate fi găsit';
+$strWebServerUploadDirectory = 'director de încărcare al serverului Web';
+$strWelcome = 'Bine ați venit la %s';
+$strWestEuropean = 'European de vest';
+$strWildcard = 'Metacaracter';
+$strWindowNotFound = 'Fereastra de navigare nu a putut fi reîncărcată. Poate aceasta nu a fost închisă, sau fereastra-părinte blochează ferestrele din cauza securității sistemului.';
+$strWithChecked = 'Cele bifate:';
+$strWriteRequests = 'Cereri de scriere';
+$strWrongUser = 'Nume de utilizator/parolă incorecte. Accesul interzis.';
+
+$strXML = 'XML';
+
+$strYes = 'Da';
+
+$strZeroRemovesTheLimit = 'Observație: Prin stabilirea acestor opțiuni la 0 (zero) se elimină restricția.';
+$strZip = '„arhivat”';
+
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+
+$strBLOBRepository = 'BLOB Repository';
+$strBLOBRepositoryDamaged = 'Damaged';
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?';
+$strBLOBRepositoryDisabled = 'Disabled';
+$strBLOBRepositoryDisable = 'Disable';
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!';
+$strBLOBRepositoryEnabled = 'Enabled';
+$strBLOBRepositoryEnable = 'Enable';
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference';
+$strBLOBRepositoryRepair = 'Repair';
+$strBLOBRepositoryStatus = 'Status';
+$strBLOBRepositoryUpload = 'Upload to BLOB repository';
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/russian-utf-8.inc.php b/lang/russian-utf-8.inc.php
new file mode 100644
index 0000000000..40879d20df
--- /dev/null
+++ b/lang/russian-utf-8.inc.php
@@ -0,0 +1,1458 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by Gosha Sakovich <gt2 at users.sourceforge.net>
+ * Artyom Rabzonov <tyomych at gmx.net>
+ * Nicolay Zakharov <info at melody.org.ru> 16-Dec-2002
+ * (nobody) 2004-09-18
+ */
+
+$charset = 'utf-8';
+$allow_recoding = TRUE;
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+// по ГОСТ 8.417-2002
+$byteUnits = array('Байт', 'КБ', 'МБ', 'ГБ', 'ТБ', 'ПБ', 'ЭБ');
+
+$day_of_week = array('Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб');
+$month = array('Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d %Y г., %H:%M';
+$timespanfmt = '%s дней, %s часов, %s минут и %s секунд';
+
+$strAbortedClients = 'Прерваны';
+$strAccessDeniedCreateConfig = 'Возможная причина - отсутствие файла конфигурации. Для его создания вы можете воспользоваться %1$sсценарием установки%2$s.';
+$strAccessDeniedExplanation = 'phpMyAdmin не смог установить соединение с сервером MySQL. Проверьте хост, имя пользователя и пароль установленные в конфигурационном файле config.inc.php и удостоверьтесь, что они соответствуют данным полученным от администратора сервера MySQL.';
+$strAccessDenied = 'В доступе отказано';
+$strActions = 'Действия';
+$strAction = 'Действие';
+$strAddAutoIncrement = 'Добавить AUTO_INCREMENT';
+$strAddClause = 'Добавить %s';
+$strAddConstraints = 'Добавить ограничения';
+$strAddDeleteColumn = 'Добавить/удалить столбец критерия';
+$strAddDeleteRow = 'Добавить/удалить ряд критерия';
+$strAddFields = 'Добавить %s поле(я)';
+$strAddHeaderComment = 'Добавить собственный комментарий в заголовок (перевод строки: \\n)';
+$strAddIntoComments = 'Добавить в комментарии';
+$strAddNewField = 'Добавить новое поле';
+$strAddPrivilegesOnDb = 'Добавить привилегии на следующую базу';
+$strAddPrivilegesOnTbl = ' Добавить привилегии на следующую таблицу';
+$strAddSearchConditions = 'Добавить условия поиска (тело для условия "WHERE"):';
+$strAddToIndex = 'Добавить к индексу&nbsp;%s&nbsp;столбец(ы)';
+$strAddUserMessage = 'Был добавлен новый пользователь.';
+$strAddUser = 'Добавить нового пользователя';
+$strAdministration = 'Администрирование';
+$strAfterInsertBack = 'Вернуться на предыдущую страницу';
+$strAfterInsertNewInsert = 'Добавить новую запись';
+$strAfterInsertNext = 'Редактировать следующую строку';
+$strAfterInsertSame = 'Вернуться к данной странице';
+$strAfter = 'После %s';
+$strAllowInterrupt = 'Разрешить скрипту разбивать процесс импорта при приближении временного лимита. Может быть использовано при импорте файлов большого размера.';
+$strAllTableSameWidth = 'Показать все таблицы одинаковой ширины';
+$strAll = 'Все';
+$strAlterOrderBy = 'Изменить сортировку таблицы';
+$strAnalyzeTable = 'Анализ таблицы';
+$strAnalyze = 'Анализ';
+$strAndThen = 'и затем';
+$strAnd = 'И';
+$strAngularLinks = 'Угловые линии связей';
+$strAnIndex = 'Был добавлен индекс для %s';
+$strAnyHost = 'Любой хост';
+$strAnyUser = 'Любой пользователь';
+$strAny = 'Любой';
+$strApproximateCount = 'Может быть приблизительно. См. FAQ 3.11';
+$strAPrimaryKey = 'Был добавлен первичный ключ к %s';
+$strArabic = 'Арабский';
+$strArmenian = 'Армянский';
+$strAscending = 'По возрастанию';
+$strAsDefined = 'Как определено:';
+$strAtBeginningOfTable = 'В начало таблицы';
+$strAtEndOfTable = 'В конец таблицы';
+$strAttr = 'Атрибуты';
+$strAutomaticLayout = 'Автоматическая раскладка';
+
+$strBack = 'Назад';
+$strBaltic = 'Балтийский';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinaryDoNotEdit = 'Двоичные данные - не редактируются';
+$strBinaryLog = 'Бинарный журнал';
+$strBinary = 'Двоичный';
+$strBinLogEventType = 'Тип события';
+$strBinLogInfo = 'Информация';
+$strBinLogName = 'Файл журнала';
+$strBinLogOriginalPosition = 'Исходная позиция';
+$strBinLogPosition = 'Позиция';
+$strBinLogServerId = 'ID сервера';
+$strBookmarkAllUsers = 'Доступна для всех пользователей';
+$strBookmarkCreated = 'Закладка &quot;%s&quot; создана';
+$strBookmarkDeleted = 'Закладка удалена.';
+$strBookmarkLabel = 'Метка';
+$strBookmarkQuery = 'Созданные закладки';
+$strBookmarkReplace = 'Заменить существующую с таким же именем';
+$strBookmarkThis = 'Создание закладки';
+$strBookmarkView = 'Просмотр';
+$strBrowseDistinctValues = 'Обзор уникальных значений';
+$strBrowseForeignValues = 'Обзор внешних значений';
+$strBrowse = 'Обзор';
+$strBufferPoolActivity = 'Активность';
+$strBufferPoolUsage = 'Использование';
+$strBufferPool = 'Буферный пул';
+$strBufferReadMissesInPercent = 'Пропуски при чтении, в %';
+$strBufferReadMisses = 'Пропуски при чтении';
+$strBufferWriteWaitsInPercent = 'Ожидание очистки, в %';
+$strBufferWriteWaits = 'Ожидание очистки';
+$strBulgarian = 'Болгарский';
+$strBusyPages = 'Занятых страниц';
+$strBzip = 'bzip';
+
+$strCalendar = 'Календарь';
+$strCancel = 'Отмена';
+$strCanNotLoadExportPlugins = 'Модули экспорта, отсутствуют! Проверьте содержимое каталога libraries/export установленной копии phpMyAdmin.';
+$strCanNotLoadImportPlugins = 'Модули импорта - отсутствуют! Проверьте содержимое каталога libraries/import установленной копии phpMyAdmin.';
+$strCannotLogin = 'Невозможно подключиться к серверу MySQL';
+$strCantLoadRecodeIconv = 'Не подключены расширения iconv или recode, необходимые для конвертации кодировок. Необходимо настроить PHP, включив данные расширения, или отключить возможность конвертации кодировок в настройках phpMyAdmin.';
+$strCantLoad = 'Невозможно загрузить расширение [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a]! Проверьте настройки PHP.';
+$strCantRenameIdxToPrimary = 'Невозможно переименовать индекс в PRIMARY!';
+$strCantUseRecodeIconv = 'Несмотря на то что необходимые расширения загружены, использование функций iconv, libiconv или recode_string - невозможно. Проверьте настройки PHP.';
+$strCardinality = 'Уникальных элементов';
+$strCaseInsensitive = 'регистронезависимый';
+$strCaseSensitive = 'регистрозависымый';
+$strCentralEuropean = 'Центрально-Европейский';
+$strChangeCopyModeCopy = 'и сохранить старого.';
+$strChangeCopyModeDeleteAndReload = ', удалить старого из таблиц пользователей и перезагрузить привилегии.';
+$strChangeCopyModeJustDelete = 'и удалить старого из таблиц пользователей.';
+$strChangeCopyModeRevoke = ', отменить все активные привилегии старого и затем удалить его.';
+$strChangeCopyMode = 'Создать нового пользователя с такими же привилегиями...';
+$strChangeCopyUser = 'Изменить/Копировать учетную запись';
+$strChangeDisplay = 'Выбор отображаемого столбца';
+$strChangePassword = 'Изменить пароль';
+$strChange = 'Изменить';
+$strCharsetOfFile = 'Кодировка файла:';
+$strCharsetsAndCollations = 'Кодировки и сравнения';
+$strCharsets = 'Кодировки';
+$strCharset = 'Кодировка';
+$strCheckAll = 'Отметить все';
+$strCheckOverhead = 'Отметить требующие оптимизации';
+$strCheckPrivsLong = 'Проверить привилегии для базы данных &quot;%s&quot;';
+$strCheckPrivs = 'Проверить привилегии';
+$strCheckTable = 'Проверить таблицу';
+$strCheck = 'Проверка';
+$strChoosePage = 'Выбор страницы для редактирования';
+$strColComFeat = 'Отображать комментарии столбцов';
+$strCollation = 'Сравнение';
+$strColumnNames = 'Названия столбцов';
+$strColumnPrivileges = 'Привилегии уровня столбца';
+$strCommand = 'Команда';
+$strComments = 'Комментарии';
+$strComment = 'Комментарий';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 совместимо';
+$strCompleteInserts = 'Полная вставка';
+$strCompressionWillBeDetected = 'Автоматическое определение типа сжатия, варианты: %s';
+$strCompression = 'Упаковать';
+$strConfigDefaultFileError = 'Невозможно загрузить изначальную конфигурацию из: &quot;%1$s&quot;';
+$strConfigFileError = 'phpMyAdmin не смог прочесть конфигурационный файл!<br />Это может случиться если PHP нашел в нем ошибку, или файл не найден.<br />Вызовите конфигурационный файл напрямую, используя ссылку данную ниже, и просмотрите сообщения об ошибках выдаваемые PHP. В большинстве случаев, возможна синтаксическая ошибка, например, где-то пропущена кавычка или точка с запятой.<br />Если отобразится пустая страница - все в порядке.';
+$strConfigureTableCoord = 'Измените координаты таблицы %s';
+$strConnectionError = 'Соединение невозможно! Неверные настройки.';
+$strConnections = 'Соединения';
+$strConstraintsForDumped = 'Ограничения внешнего ключа сохраненных таблиц';
+$strConstraintsForTable = 'Ограничения внешнего ключа таблицы';
+$strControluserFailed = 'Не удалось установить подключение для пользователя указанного в директиве controluser, с помощью параметров определенных в конфигурационном файле config.inc.php.';
+$strCookiesRequired = 'Для полноценной работы необходима поддержка cookies браузером.';
+$strCopyDatabaseOK = 'База данных %s была скопирована в %s';
+$strCopyTableOK = 'Таблица %s была скопирована в %s.';
+$strCopyTableSameNames = 'Невозможно скопировать таблицу саму в себя!';
+$strCopyTable = 'Скопировать таблицу в (база данных<b>.</b>таблица):';
+$strCopy = 'Использовать';
+$strCouldNotKill = 'phpMyAdmin не смог завершить работу потока с ID %s. Вероятно, он уже был закрыт.';
+$strCreateDatabaseBeforeCopying = 'Перед копированием создать базу данных (CREATE DATABASE)';
+$strCreateIndexTopic = 'Создать новый индекс';
+$strCreateIndex = 'Создать индекс для &nbsp;%s&nbsp; столбца/ов';
+$strCreateNewDatabase = 'Новая база данных';
+$strCreateNewTable = 'Создать новую таблицу в базе данных %s';
+$strCreatePage = 'Создать новую страницу';
+$strCreatePdfFeat = 'Создание PDF-схемы';
+$strCreateRelation = 'Создать связь';
+$strCreateTable = 'Создать таблицу';
+$strCreateUserDatabaseName = 'Создать базу данных с именем пользователя в названии и предоставить на нее полные привилегии';
+$strCreateUserDatabaseNone = 'Не создавать';
+$strCreateUserDatabaseWildcard = 'Предоставить полные привилегии на базы данных подпадающие под шаблон (имя пользователя\_%)';
+$strCreateUserDatabase = 'База данных для пользователя';
+$strCreate = 'Создать';
+$strCreationDates = 'Даты создания, обновления и проверки';
+$strCriteria = 'Критерий';
+$strCroatian = 'Хорватский';
+$strCSV = 'CSV';
+$strCustomColor = 'Выбрать цвет';
+$strCyrillic = 'Кириллический';
+$strCzechSlovak = 'Чехословацкий';
+$strCzech = 'Чешский';
+
+$strDanish = 'Датский';
+$strDatabaseEmpty = 'Не указано имя базы данных!';
+$strDatabaseExportOptions = 'Параметры экспорта базы данных';
+$strDatabaseHasBeenCreated = 'База данных %1$s была создана.';
+$strDatabaseHasBeenDropped = 'База данных %s была удалена.';
+$strDatabasesDropped = 'Удалено баз данных: %s';
+$strDatabasesStatsDisable = 'Отключить статистику';
+$strDatabasesStatsEnable = 'Включить статистику';
+$strDatabasesStatsHeavyTraffic = 'Примечание: Включение статистики баз данных может спровоцировать большой трафик между веб-сервером и сервером MySQL.';
+$strDatabasesStats = 'Статистика баз данных';
+$strDatabases = 'Базы данных';
+$strDatabase = 'База данных';
+$strDataDict = 'Словарь данных';
+$strDataOnly = 'Только данные';
+$strDataPages = 'Страниц с данными';
+$strData = 'Данные';
+$strDBComment = 'Комментарий к базе данных:';
+$strDBCopy = 'Скопировать базу данных в';
+$strDbIsEmpty = 'База данных - пуста!';
+$strDbPrivileges = 'Привилегии уровня базы данных';
+$strDBRename = 'Переименовать базу данных в';
+$strDbSpecific = 'Уровень базы данных';
+$strDefaultEngine = '%s - тип таблиц данного MySQL сервера устанавливаемый по умолчанию.';
+$strDefaultValueHelp = 'Для значений поля "По умолчанию" не используйте символы экранирования и кавычек.';
+$strDefault = 'По умолчанию';
+$strDefragment = 'Дефрагментировать таблицу';
+$strDelayedInserts = 'Использовать отложенные вставки (DELAYED)';
+$strDeleteAndFlushDescr = 'Это лучший способ, хотя перезагрузка привилегий может занять какое-то время.';
+$strDeleteAndFlush = 'Удалить всех пользователей и перезагрузить привилегии.';
+$strDeleted = 'Запись была удалена';
+$strDeleteNoUsersSelected = 'Не выбраны пользователи подлежащие удалению!';
+$strDeleteRelation = 'Удалить связь';
+$strDelete = 'Удалить';
+$strDeleting = 'Удаление %s';
+$strDelimiter = 'Разделитель';
+$strDelOld = 'На текущей странице присутствуют ссылки на таблицы, которые больше не существуют. Удалить эти ссылки?';
+$strDescending = 'По убыванию';
+$strDescription = 'Описание';
+$strDesignerHelpDisplayField = 'Для того чтобы сделать столбец отображаемым, нажмите кнопку "Выбор отображаемого столбца" и выберите необходимый столбец. Отображаемые столбцы подсвечиваются розовым цветом.';
+$strDesigner = 'Дизайнер';
+$strDetails = 'Детали...';
+$strDictionary = 'словарь';
+$strDirectLinks = 'Прямые линии связей';
+$strDirtyPages = 'Грязных страниц';
+$strDisabled = 'Недоступно';
+$strDisableForeignChecks = 'Отключить проверку внешних ключей';
+$strDisplayFeat = 'Показать возможности';
+$strDisplayOrder = 'Сортировка:';
+$strDisplayPDF = 'Показать PDF-схему';
+$strDoAQuery = 'Выполнить "запрос по образцу" (групповой символ: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Документация';
+$strDoYouReally = 'Вы действительно хотите выполнить запрос';
+$strDropDatabaseStrongWarning = 'База данных будет полностью удалена!';
+$strDropUsersDb = 'Удалить базы данных, имена которых совпадают с именами пользователей.';
+$strDrop = 'Удалить';
+$strDumpingData = 'Дамп данных таблицы';
+$strDumpSaved = 'Дамп был сохранен в файл %s.';
+$strDumpXRows = 'Дамп из %s строк, начиная с записи # %s.';
+$strDynamic = 'динамический';
+
+$strEditPDFPages = 'Редактирование PDF-страниц';
+$strEditPrivileges = 'Редактирование привилегий';
+$strEdit = 'Изменить';
+$strEffective = 'Эффективность';
+$strEmptyResultSet = 'MySQL вернула пустой результат (т.е. ноль строк).';
+$strEmpty = 'Очистить';
+$strEnabled = 'Доступно';
+$strEncloseInTransaction = 'Заключить экспорт в транзакцию';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'Конец';
+$strEngineAvailable = 'Данный MySQL-сервер поддерживает таблицы типа %s.';
+$strEngineDisabled = 'Тип таблиц %s был отключен на данном MySQL сервере.';
+$strEngines = 'Типы таблиц';
+$strEngineUnsupported = 'Данный сервер MySQL не поддерживает тип таблиц %s.';
+$strEnglishPrivileges = 'Примечание: типы привилегий MySQL отображаются по-английски.';
+$strEnglish = 'Английский';
+$strErrorInZipFile = 'Ошибка в ZIP-архиве:';
+$strErrorRelationAdded = 'Ошибка: Связь не добавлена.';
+$strErrorRelationExists = 'Ошибка: Связь уже существует.';
+$strErrorRenamingTable = 'Ошибка при переименовании таблицы %1$s в %2$s';
+$strErrorSaveTable = 'Ошибка сохранения координат.';
+$strError = 'Ошибка';
+$strEscapeWildcards = 'При использовании в имени базы данных символов нижнего подчеркивания (_) и процента (%), необходимо экранировать их символом обратной косой черты (\), в противном случае они будут интерпретированы как групповые символы';
+$strEsperanto = 'Эсперанто';
+$strEstonian = 'Эстонский';
+$strEvents = 'События';
+$strEvent = 'Событие';
+$strExcelEdition = 'Excel-версия';
+$strExecuteBookmarked = 'Выполнить отмеченный запрос';
+$strExplain = 'Анализ запроса';
+$strExportImportToScale = 'Масштаб';
+$strExportMustBeFile = 'Выбранный тип экспорта возможен только в файл!';
+$strExport = 'Экспорт';
+$strExtendedInserts = 'Расширенные вставки';
+$strExtra = 'Дополнительно';
+
+$strFailedAttempts = 'Неудачных попыток';
+$strFieldHasBeenDropped = 'Поле &quot;%s&quot; было удалено';
+$strFieldInsertFromFileTempDirNotExists = 'Ошибка при перемещении загруженного файла, см. FAQ 1.11';
+$strFieldsEnclosedBy = 'Значения полей обрамлены';
+$strFieldsEscapedBy = 'Символ экранирования';
+$strFieldsTerminatedBy = 'Разделитель полей';
+$strFields = 'Поля';
+$strField = 'Поле';
+$strFileAlreadyExists = 'Файл %s уже существует на сервере, измените имя или включите параметр перезаписи.';
+$strFileCouldNotBeRead = 'Ошибка при чтении файла';
+$strFileNameTemplateDescriptionDatabase = 'имя базы данных';
+$strFileNameTemplateDescriptionServer = 'имя сервера';
+$strFileNameTemplateDescriptionTable = 'имя таблицы';
+$strFileNameTemplateDescription = 'Значение обрабатывается функцией %1$sstrftime%2$s, благодаря чему возможна вставка текущей даты и времени. Дополнительно могут быть использованы следующие подстановки: %3$s. Остальной текст останется без изменений.';
+$strFileNameTemplateRemember = 'запомнить шаблон';
+$strFileNameTemplate = 'Шаблон имени файла';
+$strFiles = 'Файлов';
+$strFileToImport = 'Импортируемый файл';
+$strFixed = 'фиксированный';
+$strFlushPrivilegesNote = 'Примечание: phpMyAdmin получает информацию о пользовательских привилегиях непосредственно из таблиц привилегий MySQL. Содержимое этих таблиц может отличаться от привилегий, используемых сервером, если они были изменены вручную. В таком случае необходимо %sперезагрузить привилегии%s.';
+$strFlushQueryCache = 'Дефрагментировать кеш запросов';
+$strFlushTables = 'Закрыть все таблицы';
+$strFlushTable = 'Обновить кеш таблицы (&quot;FLUSH&quot;)';
+$strFontSize = 'Размер шрифта';
+$strForeignKeyError = 'Ошибка создания внешнего ключа на %1$s (проверьте типы данных)';
+$strForeignKeyRelationAdded = 'Добавлена связь на внешний ключ (FOREIGN KEY)';
+$strFormat = 'Формат';
+$strFormEmpty = 'Не заполнены необходимые поля формы!';
+$strFreePages = 'Чистых страниц';
+$strFullText = 'Развернутое отображение данных';
+$strFunctions = 'Функции';
+$strFunction = 'Функция';
+
+$strGenBy = 'Создан';
+$strGeneralRelationFeat = 'Основные возможности связей';
+$strGeneratePassword = 'Создать пароль';
+$strGenerate = 'Генерировать';
+$strGenTime = 'Время создания';
+$strGeorgian = 'Грузинский';
+$strGerman = 'Немецкий';
+$strGlobalPrivileges = 'Глобальные привилегии';
+$strGlobalValue = 'Глобальное значение';
+$strGlobal = 'Глобальный уровень';
+$strGo = 'OK';
+$strGrantOption = 'GRANT';
+$strGreek = 'Греческий';
+$strGzip = 'gzip';
+
+$strHandler = 'Обработчик';
+$strHasBeenAltered = 'была изменена.';
+$strHaveToShow = 'Для выполнения запроса, должен быть выбран отображаемый столбец/столбцы.';
+$strHebrew = 'Иврит';
+$strHelp = 'Помощь';
+$strHexForBLOB = 'Использовать шестнадцатеричное отображение для полей типа BLOB';
+$strHideShowAll = 'Скрыть/отобразить все таблицы';
+$strHideShowNoRelation = 'Скрыть/отобразить таблицы не имеющие связей';
+$strHide = 'Скрыть';
+$strHomepageOfficial = 'Официальная страница phpMyAdmin';
+$strHome = 'К началу';
+$strHostEmpty = 'Пустое имя хоста!';
+$strHost = 'Хост';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Венгерский';
+
+$strIcelandic = 'Исландский';
+$strId = 'ID';
+$strIdxFulltext = 'Полнотекстовый';
+$strIEUnsupported = 'Internet Explorer не поддерживает данную функцию.';
+$strIgnoreDuplicates = 'Игнорировать повторяющиеся строки';
+$strIgnoreInserts = 'Использовать игнорирующие вставки (IGNORE)';
+$strIgnore = 'Игнорировать';
+$strImportExportCoords = 'Импорт/экспорт координат таблиц в/из PDF-схемы';
+$strImportFiles = 'Импорт файлов';
+$strImportFormat = 'Формат импортируемого файла';
+$strImportSuccessfullyFinished = 'Импорт успешно завершен, запросов выполнено: %d.';
+$strImport = 'Импорт';
+$strIndexesSeemEqual = 'Индексы %1$s и %2$s равнозначны и один из них может быть удалён.';
+$strIndexes = 'Индексы';
+$strIndexHasBeenDropped = 'Индекс %s был удален';
+$strIndexName = 'Имя индекса&nbsp;:';
+$strIndexType = 'Тип индекса&nbsp;:';
+$strIndexWarningTable = 'Проблемы с индексами таблицы `%s`';
+$strIndex = 'Индекс';
+$strInnoDBAutoextendIncrementDesc = 'Размер (в мегабайтах) автоматического увеличения файла данных при переполнении табличной области';
+$strInnoDBAutoextendIncrement = 'Автоматическое увеличение';
+$strInnoDBBufferPoolSizeDesc = 'Размер буфера памяти, который InnoDB использует для кеширования данных и индексов своих таблиц';
+$strInnoDBBufferPoolSize = 'Размер буферного пула';
+$strInnoDBDataFilePath = 'Файлы данных';
+$strInnoDBDataHomeDirDesc = 'Общая часть пути к каталогу для всех файлов данных InnoDB';
+$strInnoDBDataHomeDir = 'Домашний каталог для данных';
+$strInnoDBPages = 'страниц';
+$strInnodbStat = 'Состояние InnoDB';
+$strInsecureMySQL = 'Конфигурационный файл phpMyAdmin содержит настройки MySQL по-умолчанию, согласно которым для привилегированного пользователя &quot;root&quot; не задан пароль. Такие настройки делают MySQL-сервер уязвимым для несанкционированного доступа, поэтому настоятельно рекомендуется установить пароль для пользователя &quot;root&quot;.';
+$strInsertAsNewRow = 'Вставить запись';
+$strInsertedRowId = 'Идентификатор вставленной строки: %1$d';
+$strInsert = 'Вставить';
+$strInterface = 'Отображение';
+$strInternalAndForeign = 'Внутренняя связь не обязательна, если существует соответствующая связь с помощью внешнего ключа (FOREIGN KEY).';
+$strInternalRelationAdded = 'Добавлена внутренняя связь';
+$strInternalRelations = 'Внутренние связи';
+$strInUse = 'используется';
+$strInvalidAuthMethod = 'В конфигурационном файле phpMyAdmin установлен неверный метод аутентификации:';
+$strInvalidColumnCount = 'Количество столбцов должно быть больше нуля.';
+$strInvalidColumn = 'Выбран неверный столбец (%s)!';
+$strInvalidCSVFieldCount = 'Неправильное количество полей во входных CSV-данных в строке %d.';
+$strInvalidCSVFormat = 'Неправильный формат входных CSV-данных в строке %d.';
+$strInvalidCSVParameter = 'Неправильный параметр импорта CSV: %s';
+$strInvalidDatabase = 'Некорректная база данных';
+$strInvalidFieldAddCount = 'Необходимо добавить хотя бы одно поле.';
+$strInvalidFieldCount = 'У таблицы должно быть, как минимум, одно поле.';
+$strInvalidLDIImport = 'Этот модуль не поддерживает импорт сжатых данных!';
+$strInvalidRowNumber = 'Число %d не является правильным номером строки.';
+$strInvalidServerHostname = 'Для сервера %1$s указано неверное имя хоста. Исправьте настройки заданные в конфигурационном файле phpMyAdmin.';
+$strInvalidServerIndex = 'Неправильный номер сервера: &quot;%s&quot;';
+$strInvalidTableName = 'Неправильное имя таблицы';
+
+$strJapanese = 'Японский';
+$strJoins = 'Объединения';
+$strJumpToDB = 'Перейти к базе данных &quot;%s&quot;';
+$strJustDeleteDescr = '&quot;Удаленные&quot; пользователи будут иметь доступ к серверу, пока таблицы привилегий не будут перезагружены.';
+$strJustDelete = 'Просто удалить пользователей из таблиц привилегий.';
+
+$strKeepPass = 'Не менять пароль';
+$strKeyCache = 'Кеш индекса';
+$strKeyname = 'Имя индекса';
+$strKill = 'Завершить';
+$strKnownExternalBug = 'Работа параметра &quot;%s&quot; подвержена ошибке, описание смотрите на %s';
+$strKorean = 'Корейский';
+
+$strLandscape = 'Альбомная';
+$strLanguageUnknown = 'Неизвестный язык: %1$s.';
+$strLanguage = 'Язык';
+$strLatchedPages = 'Блокированных страниц';
+$strLatexCaption = 'Заголовок таблицы';
+$strLatexContent = 'Содержимое таблицы __TABLE__';
+$strLatexContinuedCaption = 'Заголовок таблицы (продолжение)';
+$strLatexContinued = '(продолжение)';
+$strLatexIncludeCaption = 'Добавить заголовок таблицы';
+$strLatexLabel = 'Идентификатор метки';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Структура таблицы __TABLE__';
+$strLatvian = 'Латвийский';
+$strLDI = 'CSV, используя LOAD DATA';
+$strLDILocal = 'Использовать ключевое слово LOCAL';
+$strLengthSet = 'Длина/значения';
+$strLimitNumRows = 'Количество строк на странице';
+$strLinesTerminatedBy = 'Разделитель строк';
+$strLinkNotFound = 'Связь не найдена';
+$strLinksTo = 'Связи';
+$strLithuanian = 'Литовский';
+$strLocalhost = 'Локальный';
+$strLocationTextfile = 'Выбор файла';
+$strLoginInformation = 'Информация учетной записи';
+$strLogin = 'Авторизация';
+$strLogout = 'Выход';
+$strLogPassword = 'Пароль:';
+$strLogServer = 'Сервер';
+$strLogUsername = 'Пользователь:';
+$strLongOperation = 'Выполнение данной операции может занять длительное время. Продолжить?';
+
+$strMaxConnects = 'Максимально одновременных';
+$strMaximalQueryLength = 'Максимальная длина создаваемого запроса';
+$strMaximumSize = 'Максимальный размер: %s%s';
+$strMbExtensionMissing = 'При работе с многобайтными кодировками без установленного расширения PHP &quot;mbstring&quot;, phpMyAdmin не в состоянии производить корректное разбиение строк, что может привести к непредсказуемым результатам. Установите расширение PHP &quot;mbstring&quot;.';
+$strMbOverloadWarning = 'В конфигурации PHP включен, несовместимый с phpMyAdmin, параметр mbstring.func_overload. Для предотвращения возможной потери данных, данный параметр должен быть выключен!';
+$strMIME_available_mime = 'Доступные MIME-типы';
+$strMIME_available_transform = 'Доступные преобразования';
+$strMIME_description = 'Описание';
+$strMIME_MIMEtype = 'MIME-тип';
+$strMIME_nodescription = 'На данный момент описание отсутствует.<br />Работа используемой функции отображения преобразования %s, будет в скором времени описана.';
+$strMIME_transformation_note = 'Для просмотра доступных MIME-типов и параметров преобразований воспользуйтесь данной ссылкой - %sописание преобразований%s';
+$strMIME_transformation_options_note = 'Значения параметров преобразований должны иметь формат: \'a\', 100, \'b\', \'c\'...<br />Символы обратной косой черты (\\) и одинарной кавычки (\') необходимо экранировать (предварять) символом обратной косой черты, например: \'\\\\xyz\' или \'a\\\'b\'.';
+$strMIME_transformation_options = 'Параметры преобразований';
+$strMIME_transformation = 'Преобразование';
+$strMIMETypesForTable = 'MIME-ТИПЫ ТАБЛИЦЫ';
+$strMIME_without = 'MIME-типы, выделенные курсивом, не имеют отдельной функции трансформации';
+$strModifications = 'Изменения сохранены';
+$strModifyIndexTopic = 'Изменить индекс';
+$strModify = 'Изменить';
+$strMoveMenu = 'Переместить меню';
+$strMoveTableOK = 'Таблица %s была перемещена в %s.';
+$strMoveTableSameNames = 'Не возможно переместить таблицу саму в себя!';
+$strMoveTable = 'Переместить таблицы в (база данных<b>.</b>таблица):';
+$strMultilingual = 'многоязычный';
+$strMyISAMDataPointerSizeDesc = 'Изначальный размер указателя в файле данных, при создании таблиц (CREATE TABLE) типа MyISAM, с неустановленным параметром максимального числа строк (MAX_ROWS).';
+$strMyISAMDataPointerSize = 'Размер указателя в файле данных';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Если размер временного файла, используемого для быстрого создания индексов таблиц типа MyISAM, превышает на указанный здесь объем используемый кеш индекса, то предпочтение отдается менее быстрому, но более надежному методу кеширования индекса.';
+$strMyISAMMaxExtraSortFileSize = 'Максимальный размер временного файла при создании индекса';
+$strMyISAMMaxSortFileSizeDesc = 'Максимальный размер временного файла, который MySQL может использовать для восстановления индекса (при выполнении команд REPAIR TABLE, ALTER TABLE, или LOAD DATA INFILE). Для файлов, размер которых превышает указанное значение, индекс будет создаваться при помощи кеша индексов (такой алгоритм работает несколько медленнее, но более надежно).';
+$strMyISAMMaxSortFileSize = 'Максимальный размер временных индексных файлов';
+$strMyISAMRecoverOptionsDesc = 'Режим автоматического восстановления таблиц после сбоя. Устанавливается параметром --myisam-recover, при запуске сервера.';
+$strMyISAMRecoverOptions = 'Режим автоматического восстановления';
+$strMyISAMRepairThreadsDesc = 'Если значение больше единицы, индексы таблиц типа MyISAM созданы параллельно (каждый индекс в своем потоке) во время процесса восстановления с помощью сортировки (Repair by sorting).';
+$strMyISAMRepairThreads = 'Потоков восстановления';
+$strMyISAMSortBufferSizeDesc = 'Буфер, который выделяется для сортировки индексов при выполнении команды REPAIR TABLE или для создания индексов при помощи команд CREATE INDEX или ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Размер буфера сортировки';
+$strMySQLCharset = 'MySQL-кодировка';
+$strMysqlClientVersion = 'Версия MySQL-клиента';
+$strMySQLConnectionCollation = 'Сопоставление соединения с MySQL';
+$strMysqlLibDiffersServerVersion = 'Версия клиентской библиотеки MySQL (%s) отличается от версии установленного MySQL-сервера (%s). Это может привести к некорректной работе.';
+$strMySQLSaid = 'Ответ MySQL: ';
+$strMySQLShowProcess = 'Список процессов';
+
+$strName = 'Имя';
+$strNext = 'Следующий';
+$strNoActivity = 'Отсутствие активности более %s секунд, пожалуйста, авторизуйтесь заново';
+$strNoDatabasesSelected = 'Ни одна база данных не выбрана.';
+$strNoDatabases = 'Базы данных отсутствуют';
+$strNoDataReceived = 'Операция импорта невозможна. Причины: не выбран импортируемый файл; размер импортируемого файла превышает максимально допустимый, заданный в настройках PHP. См. FAQ 1.16';
+$strNoDescription = 'нет описания';
+$strNoDetailsForEngine = 'Дополнительная информация о состоянии данного типа таблиц - отсутствует.';
+$strNoDropDatabases = 'Команда "DROP DATABASE" (удалить базу данных) - отключена.';
+$strNoExplain = 'Убрать анализ';
+$strNoFilesFoundInZip = 'Файлов внутри ZIP-архива не найдено!';
+$strNoFrames = 'Для работы phpMyAdmin нужен браузер с поддержкой <b>фреймов</b>.';
+$strNoIndexPartsDefined = 'Части индекса не определены!';
+$strNoIndex = 'Индекс не определен!';
+$strNoModification = 'Нет изменений';
+$strNone = 'Нет';
+$strNoOptions = 'Для этого формата нет настраиваемых параметров';
+$strNoPassword = 'Без пароля';
+$strNoPermission = 'Не достаточно прав для сохранения файла %s на веб-сервере.';
+$strNoPhp = 'Убрать PHP-код';
+$strNoPrivileges = 'Нет привилегий';
+$strNoRights = 'Для доступа к данной странице у вас недостаточно прав!';
+$strNoRowsSelected = 'Для совершения действия необходимо выбрать одну или несколько строк';
+$strNoSpace = 'Для сохранения файла %s недостаточно дискового пространства.';
+$strNoTablesFound = 'Таблиц в базе данных не обнаружено.';
+$strNoThemeSupport = 'Поддержка тем не работает, проверьте конфигурацию и наличие тем в каталоге %s.';
+$strNotNumber = 'Введите число!';
+$strNotOK = 'Не готово';
+$strNotSet = 'Таблица <b>%s</b> не найдена или не установлена в %s';
+$strNoUsersFound = 'Пользователей не найдено.';
+$strNoValidateSQL = 'Убрать проверку синтаксиса SQL';
+$strNo = 'Нет';
+$strNull = 'Null';
+$strNumberOfFields = 'Количество полей';
+$strNumberOfTables = 'Количество таблиц';
+$strNumSearchResultsInTable = '%s вхождения(ий) в таблице <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Итого:</b> <i>%s</i> вхождения(ий)';
+$strNumTables = 'Таблицы';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'OpenDocument таблица';
+$strOpenDocumentText = 'OpenDocument текст';
+$strOpenNewWindow = 'Открыть phpMyAdmin в новом окне';
+$strOperations = 'Операции';
+$strOperator = 'Оператор';
+$strOptimizeTable = 'Оптимизировать таблицу';
+$strOptimize = 'Оптимизация';
+$strOptions = 'Параметры';
+$strOr = 'Или';
+$strOverhead = 'Фрагментировано';
+$strOverwriteExisting = 'Перезаписать существующий(е) файл(ы)';
+
+$strPacked = 'Упакован';
+$strPageNumber = 'Номер страницы:';
+$strPagesToBeFlushed = 'Страниц к очистке';
+$strPaperSize = 'Размер бумаги';
+$strPartialImport = 'Частичный импорт';
+$strPartialText = 'Сокращенное отображение данных';
+$strPartitionDefinition = 'Определение разделов (PARTITION)';
+$strPartitioned = 'разделён';
+$strPartitionMaintenance = 'Обслуживание разделов';
+$strPartition = 'Раздел %s';
+$strPasswordChanged = 'Пароль для %s был успешно изменен.';
+$strPasswordEmpty = 'Пароль не задан!';
+$strPasswordHashing = 'Хеширование пароля';
+$strPasswordNotSame = 'Некорректное подтверждение пароля!';
+$strPassword = 'Пароль';
+$strPBXTCheckpointFrequencyDesc = 'Объем записанных данных в журнал транзакций, до произведения проверки. Изначальное значение 24MB.';
+$strPBXTCheckpointFrequency = 'Частота проверки';
+$strPBXTDataFileGrowSizeDesc = 'Размер возрастания файлов хранения данных (.xtd).';
+$strPBXTDataFileGrowSize = 'Размер возрастания файла данных';
+$strPBXTDataLogThresholdDesc = 'Максимальный размер файла журнала данных. Изначальное значение 64MB. PBXT максимально может создать 32000 журналов данных, используемых всеми таблицами. Таким образом, значение данной переменной может быть увеличено для увеличения общего объема данных, которые могут храниться в базе данных.';
+$strPBXTDataLogThreshold = 'Порог журнала данных';
+$strPBXTGarbageThresholdDesc = 'Процентное соотношение захламления в файле журнала данных до его компоновки. Значение между 1 и 99. Изначальное значение 50.';
+$strPBXTGarbageThreshold = 'Порог захламления';
+$strPBXTIndexCacheSizeDesc = 'Объём памяти выделенной под кеш индексов. Изначальное значение 32MB. Выделенная здесь память используется только для кеширования индексных страниц.';
+$strPBXTIndexCacheSize = 'Размер кеша индекса';
+$strPBXTLogBufferSizeDesc = 'Размер буфера используемый для записи журнала данных. Изначально 256MB. Движок выделяет один буфер на поток, но только если поток требуется для записи данных журнала.';
+$strPBXTLogBufferSize = 'Размер буфера журнала';
+$strPBXTLogCacheSizeDesc = 'Объём памяти выделенной для кеширования данных журнала транзакций. Изначальное значение 16MB.';
+$strPBXTLogCacheSize = 'Размер кеша журнала';
+$strPBXTLogFileCountDesc = 'Количество файлов журналов транзакций (pbxt/system/xlog*.xt) сохраняемых системой. При превышении количества журналов данного значения, старые журналы будут удалены, иначе они будут переименованы и получат следующий порядковый номер.';
+$strPBXTLogFileCount = 'Количество файлов журнала';
+$strPBXTLogFileThresholdDesc = 'Размер журнала транзакций до отката, и создания нового журнала. Изначальное значение 16MB.';
+$strPBXTLogFileThreshold = 'Порог файла журнала';
+$strPBXTRecordCacheSizeDesc = 'Объём памяти выделенной для кеширования данных таблицы. Изначальное значение 32MB. Данная память используется для кеширования изменений в файлах хранения данных (.xtd) и указателей строк (.xtr).';
+$strPBXTRecordCacheSize = 'Размер кеша записи';
+$strPBXTRowFileGrowSizeDesc = 'Размер возрастания файлов указателей строк (.xtr).';
+$strPBXTRowFileGrowSize = 'Размер возрастания файла строк';
+$strPBXTTransactionBufferSizeDesc = 'Размер глобального буфера журнала транзакций (движок выделяет 2 буфера данного размера). Изначальное значение 1MB.';
+$strPBXTTransactionBufferSize = 'Размер буфера транзакций';
+$strPdfDbSchema = 'Структура базы данных "%s" - Страница %s';
+$strPdfInvalidTblName = 'Таблица "%s" не существует!';
+$strPdfNoTables = 'Нет таблиц';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Создание отчета содержащего данные одной таблицы)';
+$strPDFReportTitle = 'Заголовок отчета';
+$strPerHour = 'в час';
+$strPerMinute = 'в минуту';
+$strPerSecond = 'в секунду';
+$strPersian = 'Персидский';
+$strPhoneBook = 'телефонная книга';
+$strPHPExtension = 'PHP расширение';
+$strPhp = 'PHP-код';
+$strPHPVersion = 'Версия PHP';
+$strPleaseSelectPrimaryOrUniqueKey = 'Выберите поле являющееся первичным (PRIMARY), или уникальным (UNIQUE) индексом!';
+$strPmaDocumentation = 'Документация phpMyAdmin';
+$strPmaUriError = 'Директива <tt>$cfg[\'PmaAbsoluteUri\']</tt> ДОЛЖНА быть установлена в конфигурационном файле!';
+$strPolish = 'Польский';
+$strPortrait = 'Книжная';
+$strPos1 = 'Начало';
+$strPrevious = 'Назад';
+$strPrimaryKeyHasBeenDropped = 'Первичный ключ был удален';
+$strPrimaryKeyName = 'Имя первичного индекса должно быть PRIMARY!';
+$strPrimaryKeyWarning = '(Имя &quot;PRIMARY&quot; должен иметь <b>только</b> первичный индекс!)';
+$strPrimary = 'Первичный';
+$strPrintViewFull = 'Версия для печати (полностью)';
+$strPrintView = 'Версия для печати';
+$strPrint = 'Печать';
+$strPrivDescAllPrivileges = 'Содержит все привилегии, за исключением GRANT';
+$strPrivDescAlterRoutine = 'Разрешает изменение и удаление хранимых процедур';
+$strPrivDescAlter = 'Разрешает изменение структуры существующих таблиц';
+$strPrivDescCreateDb = 'Разрешает создание новых баз данных и таблиц';
+$strPrivDescCreateRoutine = 'Разрешает создание хранимых процедур';
+$strPrivDescCreateTbl = 'Разрешает создание новых таблиц';
+$strPrivDescCreateTmpTable = 'Разрешает создание временных таблиц';
+$strPrivDescCreateUser = 'Разрешает создание, удаление и переименование учетных записей пользователей';
+$strPrivDescCreateView = 'Разрешает создание новых представлений (CREATE VIEW)';
+$strPrivDescDelete = 'Разрешает удаление данных';
+$strPrivDescDropDb = 'Разрешает удаление баз данных и таблиц';
+$strPrivDescDropTbl = 'Разрешает удаление таблиц';
+$strPrivDescEvent = 'Разрешает настройку отложенных событий';
+$strPrivDescExecute5 = 'Разрешает выполнение хранимых процедур';
+$strPrivDescExecute = 'Разрешает выполнение хранимых процедур (не поддерживается данной версией MySQL)';
+$strPrivDescFile = 'Разрешает импорт и экспорт данных в файлы';
+$strPrivDescGrant = 'Разрешает добавление пользователей и привилегий без перезагрузки таблиц привилегий';
+$strPrivDescIndex = 'Разрешает создание и удаление индексов';
+$strPrivDescInsert = 'Разрешает вставку и замену данных';
+$strPrivDescLockTables = 'Разрешает блокировку таблиц для текущего потока';
+$strPrivDescMaxConnections = 'Максимальное количество новых подключений, которые пользователь может установить в течение часа';
+$strPrivDescMaxQuestions = 'Максимальное количество запросов, которые пользователь может отправить в течение часа';
+$strPrivDescMaxUpdates = 'Максимальное количество команд изменяющих какую-либо таблицу или базу данных, которые пользователь может выполнить в течение часа';
+$strPrivDescMaxUserConnections = 'Максимальное количество одновременных подключений одного пользователя';
+$strPrivDescProcess = 'Разрешает просмотр процессов всех пользователей';
+$strPrivDescReferences = 'Не доступно в данной версии MySQL!';
+$strPrivDescReload = 'Разрешает перезагрузку настроек сервера и очистку его кешей';
+$strPrivDescReplClient = 'Разрешает запрашивать местонахождение головного и подчиненных серверов';
+$strPrivDescReplSlave = 'Необходимо для подчиненных серверов при репликации';
+$strPrivDescSelect = 'Разрешает выборку данных';
+$strPrivDescShowDb = 'Разрешает доступ к полному списку баз данных';
+$strPrivDescShowView = 'Разрешает вывод запроса создающего представление (SHOW CREATE VIEW)';
+$strPrivDescShutdown = 'Разрешает остановку сервера';
+$strPrivDescSuper = 'Разрешает установку соединения, даже при достижении максимального количества соединений. (Требуется для большинства административных задач, таких как установка глобальных переменных или завершение процессов других пользователей)';
+$strPrivDescTrigger = 'Разрешает создание и удаление триггеров';
+$strPrivDescUpdate = 'Разрешает изменение данных';
+$strPrivDescUsage = 'Нет привилегий';
+$strPrivilegesReloaded = 'Привилегии были успешно перезагружены.';
+$strPrivileges = 'Привилегии';
+$strProcedures = 'Процедуры';
+$strProcesses = 'Процессы';
+$strProcesslist = 'Список процессов';
+$strProfiling = 'Профилирование';
+$strProtocolVersion = 'Версия протокола';
+$strPutColNames = 'Поместить названия полей в первой строке';
+
+$strQBEDel = 'Удалить';
+$strQBEIns = 'Вставить';
+$strQBE = 'Запрос&nbsp;по&nbsp;шаблону';
+$strQueryCache = 'Кеш запросов';
+$strQueryFrame = 'Окно запроса';
+$strQueryOnDb = 'SQL-запрос к базе данных <b>%s</b>:';
+$strQueryResultsOperations = 'Использование результатов запроса';
+$strQuerySQLHistory = 'История SQL-запросов';
+$strQueryStatistics = 'Статистика запросов: со времени запуска, на сервер было отослано запросов - %s.';
+$strQueryTime = 'запрос занял %01.4f сек.';
+$strQueryType = 'Тип запроса';
+$strQueryWindowLock = 'Заблокировать содержимое окна запросов';
+
+$strReadRequests = 'Запросы на чтение';
+$strRebuild = 'Перестройка';
+$strReceived = 'Принято';
+$strRecommended = 'рекомендуемый';
+$strRecords = 'Записи';
+$strReferentialIntegrity = 'Проверить целостность данных:';
+$strRefresh = 'Обновить';
+$strRelationalDisplayField = 'Значение связанного поля';
+$strRelationalKey = 'Ссылочный ключ';
+$strRelationalSchema = 'Cхема связей';
+$strRelationDeleted = 'Связь удалена';
+$strRelationNotWorking = 'Дополнительные возможности для работы со связанными таблицами недоступны. Для определения причины нажмите %sздесь%s.';
+$strRelationsForTable = 'Связи таблицы';
+$strRelations = 'Связи';
+$strRelationView = 'Связи';
+$strReloadingThePrivileges = 'Перезагрузка привилегий';
+$strReloadPrivileges = 'Перезагрузить привилегии';
+$strReload = 'Обновить';
+$strRemovePartitioning = 'Удалить разделение';
+$strRemoveSelectedUsers = 'Удалить выделенных пользователей';
+$strRenameDatabaseOK = 'База данных `%s` переименована в `%s`.';
+$strRenameTableOK = 'Таблица `%s` была переименована в `%s`.';
+$strRenameTable = 'Переименовать таблицу в';
+$strRepairTable = 'Восстановить таблицу';
+$strRepair = 'Исправление';
+$strReplaceNULLBy = 'Заменить NULL на';
+$strReplaceTable = 'Заместить данные таблицы данными из файла';
+$strReplication = 'Репликация';
+$strReset = 'Сбросить';
+$strResourceLimits = 'Ограничение на использование ресурсов';
+$strRestartInsertion = 'Количество вставляемых строк: %s';
+$strReType = 'Подтверждение';
+$strRevokeAndDeleteDescr = 'Вплоть до перезагрузки привилегий, пользователи все еще будут сохранять глобальные привилегии типа USAGE.';
+$strRevokeAndDelete = 'Отменить все активные привилегии пользователей и затем удалить их.';
+$strRevokeMessage = 'Отменены привилегии для %s.';
+$strRevoke = 'Отменить';
+$strRomanian = 'Румынский';
+$strRoutineReturnType = 'Возвращаемый тип';
+$strRoutines = 'Процедуры';
+$strRowLength = 'Длина строки';
+$strRowsAffected = 'Затронуто строк: %1$d.';
+$strRowsDeleted = 'Удалено строк: %1$d.';
+$strRowsFrom = 'строк начиная с';
+$strRowsInserted = 'Вставлено строк: %1$d.';
+$strRowSize = 'Размер строки';
+$strRowsModeFlippedHorizontal = 'горизонтальном (повернутые заголовки)';
+$strRowsModeHorizontal = 'горизонтальном';
+$strRowsModeOptions = 'в %s режиме, заголовки после каждых %s ячеек';
+$strRowsModeVertical = 'вертикальном';
+$strRowsStatistic = 'Статистика строк';
+$strRows = 'Строки';
+$strRunning = 'на %s';
+$strRunQuery = 'Выполнить запрос';
+$strRunSQLQueryOnServer = 'Выполнить SQL-запрос(ы) на сервере %s';
+$strRunSQLQuery = 'Выполнить SQL-запрос(ы) к базе данных %s';
+$strRussian = 'Русский';
+
+$strSaveOnServer = 'Сохранить на сервере в каталоге %s';
+$strSavePosition = 'Сохранить расположение таблиц';
+$strSave = 'Сохранить';
+$strScaleFactorSmall = 'Схема не помещается на одной странице. Необходимо уменьшить масштаб.';
+$strSearchFormTitle = 'Поиск в базе данных';
+$strSearchInField = 'Внутри поля:';
+$strSearchInTables = 'В таблице/таблицах:';
+$strSearchNeedle = 'Слово(а) или значение(я) для поиска (групповой символ: &quot;%&quot;):';
+$strSearchOption1 = 'любое из слов';
+$strSearchOption2 = 'все слова';
+$strSearchOption3 = 'точное соответствие';
+$strSearchOption4 = 'регулярное выражение';
+$strSearchResultsFor = 'Результаты поиска по &quot;<i>%s</i>&quot; %s:';
+$strSearchType = 'Искать:';
+$strSearch = 'Поиск';
+$strSecretRequired = 'При cookie-аутентификации, в конфигурационном файле необходимо задать парольную фразу установив значение директивы $cfg[\'blowfish_secret\'].';
+$strSelectADb = 'Выберите базу данных';
+$strSelectAll = 'Выделить все';
+$strSelectBinaryLog = 'Выберите бинарный журнал для просмотра';
+$strSelectFields = 'Выберите поля (не менее одного):';
+$strSelectForeignKey = 'Выберите внешний ключ';
+$strSelectNumRows = 'по запросу';
+$strSelectReferencedKey = 'Выберите ссылочный ключ';
+$strSelectTables = 'Выберите таблицы';
+$strSend = 'Сохранить как файл';
+$strSent = 'Отправлено';
+$strServerChoice = 'Выбор сервера';
+$strServerNotResponding = 'Сервер не отвечает';
+$strServerStatusDelayedInserts = 'Отложенные вставки';
+$strServerStatusUptime = 'MySQL сервер работает %s. Время запуска: %s.';
+$strServerStatus = 'Текущее состояние MySQL';
+$strServers = 'Сервера';
+$strServerTabVariables = 'Переменные';
+$strServerTrafficNotes = 'Трафик: статистика по сетевому трафику MySQL-сервера со времени его запуска.';
+$strServerVars = 'Серверные переменные и настройки';
+$strServerVersion = 'Версия сервера';
+$strServer = 'Сервер';
+$strSessionStartupErrorGeneral = 'Произошла ошибка в работе механизма сессии. Проверьте файлы журналов PHP и/или Веб-сервера на наличие ошибок, и произведите их корректное конфигурирование.';
+$strSessionValue = 'Значение сессии';
+$strSetEnumVal = 'При создании полей типа &quot;enum&quot; и &quot;set&quot;, данные значения должны иметь формат: \'a\',\'b\',\'c\'...<br />Символы обратной косой черты (\\) и одинарной кавычки (\') необходимо экранировать (предварять) символом обратной косой черты, например: \'\\\\xyz\' или \'a\\\'b\'.';
+$strShowAll = 'Показать все';
+$strShowColor = 'Отображать в цвете';
+$strShowDatadictAs = 'Ориентация страниц словаря данных';
+$strShowFullQueries = 'Развернутое отображение запросов';
+$strShowGrid = 'Отображать сетку';
+$strShowHideLeftMenu = 'Показать/скрыть левое меню';
+$strShowingBookmark = 'Отображение закладки';
+$strShowingPhp = 'Отображает как PHP-код';
+$strShowingRecords = 'Отображает строки';
+$strShowingSQL = 'Отображает SQL-запрос';
+$strShowOpenTables = 'Список открытых таблиц';
+$strShowPHPInfo = 'Показать информацию PHP';
+$strShowSlaveHosts = 'Информация о подчиненных серверах';
+$strShowSlaveStatus = 'Информация о состоянии сервера репликации';
+$strShowStatusBinlog_cache_disk_useDescr = 'Количество транзакций, использовавших кеш бинарного журнала и превысивших значение binlog_cache_size, вследствие чего содержащиеся в них SQL-выражения были сохранены во временном файле.';
+$strShowStatusBinlog_cache_useDescr = 'Количество транзакций, использовавших кеш бинарного журнала.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Количество временных таблиц, автоматически созданных сервером на диске, во время выполнения SQL-выражений. Если значение Created_tmp_disk_tables велико, следует увеличить значение переменной tmp_table_size, чтобы временные таблицы располагались в памяти, а не на жестком диске.';
+$strShowStatusCreated_tmp_filesDescr = 'Количество временных файлов, созданных MySQL-сервером (mysqld).';
+$strShowStatusCreated_tmp_tablesDescr = 'Количество временных таблиц в памяти, созданных сервером автоматически в процессе выполнения SQL-выражений.';
+$strShowStatusDelayed_errorsDescr = 'Количество ошибок, возникших в процессе обработки запросов INSERT DELAYED, например, из-за дублирования ключей.';
+$strShowStatusDelayed_insert_threadsDescr = 'Количество обрабатываемых запросов INSERT DELAYED.';
+$strShowStatusDelayed_writesDescr = 'Количество строк записанных в режиме отложенной вставки данных (INSERT DELAYED).';
+$strShowStatusFlush_commandsDescr = 'Количество выполненных команд FLUSH.';
+$strShowStatusHandler_commitDescr = 'Количество внутренних команд COMMIT.';
+$strShowStatusHandler_deleteDescr = 'Количество запросов на удаление строк из таблицы.';
+$strShowStatusHandler_discoverDescr = 'MySQL-сервер может запрашивать NDB Cluster о существовании таблиц с определенным именем. Этот процесс называется обнаружением. Handler_discover - число обнаружений таблиц.';
+$strShowStatusHandler_read_firstDescr = 'Количество запросов на чтение первой записи из индекса. При большом значении переменной, скорее всего, сервер многократно выполняет полное сканирование индекса. Например, SELECT col1 FROM foo, при условии, что col1 проиндексирован.';
+$strShowStatusHandler_read_keyDescr = 'Количество запросов на чтение строк, построенных на значении ключа. Большое значение переменной говорит о том, что запросы и таблицы проиндексированы надлежащим образом.';
+$strShowStatusHandler_read_nextDescr = 'Количество запросов на чтение следующей строки в порядке расположения индексов. Значение увеличивается при запросе индексного столбца с ограничением по размеру или при сканировании индекса.';
+$strShowStatusHandler_read_prevDescr = 'Количество запросов на чтение предыдущей строки при ниспадающей сортировке индекса. Обычно используется при оптимизации: ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Количество запросов, на чтение строки, основанных на ее позиции. Большое значение переменной может быть обусловлено частым выполнением запросов использующих сортировку результата, выполнением большого числа запросов требующих полного сканирования таблиц, наличием объединений не использующих индексы надлежащим образом.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Количество запросов на чтение следующей строки из файла данных. Данное значение будет высоким, при частом сканировании таблиц. Обычно это означает, что таблицы не проиндексированы надлежащим образом или запросы не используют преимущества индексов.';
+$strShowStatusHandler_rollbackDescr = 'Количество внутренних команд ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'Количество запросов на обновление строк в таблице.';
+$strShowStatusHandler_writeDescr = 'Количество запросов на вставку строк в таблицу.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Количество страниц содержащих данные (&quot;грязные&quot; или &quot;чистые&quot;).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Текущее количество &quot;грязных&quot; страниц.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Количество страниц буферного пула, над которыми был осуществлен процесс очистки (FLUSH).';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Количество свободных страниц.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Количество станиц заблокированных в буферном пуле InnoDB. Над этими страницами осуществляется процесс чтения или записи, либо они не могут быть очищены или удалены по какой-либо другой причине.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Количество страниц занятых вследствие выделения под административные процессы, такие как: блокировка строки или адаптивное хеширование индекса. Значение можно рассчитать по формуле: Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Общий размер буферного пула (в страницах).';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Количество &quot;случайных&quot; опережающих чтений, инициированных InnoDB. Это происходит, когда запрос сканирует большую часть таблицы в случайном порядке.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Количество последовательных опережающих чтений, инициированных InnoDB. Это происходит, когда InnoDB выполняет полное последовательное сканирование таблицы.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Количество последовательных запросов на чтение, выполненных InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Количество последовательных запросов на чтение, которые InnoDB не смог выполнить из буферного пула и использовал постраничное чтение.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Обычно, записи в буферный пул InnoDB выполняются в фоновом режиме. Однако, если необходимо чтение или создание страницы при отсутствии чистых таковых, сперва требуется ожидание их очистки. Данный счетчик показывает число таких ожиданий. Если размер буферного пула был установлен должным образом, значение будет небольшим.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Количество записей, выполненных в буферный пул InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Количество операций fsync(), выполненных на данный момент.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Текущее количество незавершенных операций fsync().';
+$strShowStatusInnodb_data_pending_readsDescr = 'Текущее количество незавершенных операций чтения.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Текущее количество незавершенных операций записи.';
+$strShowStatusInnodb_data_readDescr = 'Сумма данных (в байтах), прочитанных на данный момент.';
+$strShowStatusInnodb_data_readsDescr = 'Общее количество операций чтения данных.';
+$strShowStatusInnodb_data_writesDescr = 'Общее количество операций записи данных.';
+$strShowStatusInnodb_data_writtenDescr = 'Сумма данных (в байтах), записанных на данный момент.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Количество записей в буфер doublewrite, и количество созданных для этого страниц.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Количество записей в буфер doublewrite, и количество созданных для этого страниц.';
+$strShowStatusInnodb_log_waitsDescr = 'Количество ожиданий очистки журнального буфера, вследствие малого его размера.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Количество запросов на запись в журнал.';
+$strShowStatusInnodb_log_writesDescr = 'Количество физических записей в файл журнала.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Количество записей с помощью fsync(), сделанных в файл журнала.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Количество незавершенных попыток синхронизации с помощью операции fsync().';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Количество незавершенных запросов на запись в журнал.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Объем данных в байтах, записанных в файл журнала.';
+$strShowStatusInnodb_pages_createdDescr = 'Количество созданных страниц.';
+$strShowStatusInnodb_page_sizeDescr = 'Размер страницы, компилируемой в InnoDB (по умолчанию 16Кб). Многие значения приводятся в страницах, но зная объем страницы, можно перевести эти значения в байты.';
+$strShowStatusInnodb_pages_readDescr = 'Количество прочитанных страниц.';
+$strShowStatusInnodb_pages_writtenDescr = 'Количество записанных страниц.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Текущее количество ожиданий блокировок строк.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Среднее время ожидания блокировки строк (в миллисекундах).';
+$strShowStatusInnodb_row_lock_timeDescr = 'Общее время, ожидания блокировок строк (в миллисекундах).';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Максимальное время ожидания блокировки строк (в миллисекундах).';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Общее количество ожиданий блокировки строк.';
+$strShowStatusInnodb_rows_deletedDescr = 'Количество строк, удаленных из таблиц InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'Количество строк, добавленных в таблицы InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'Количество строк, прочитанных из таблиц InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'Количество строк, обновленных в таблицах InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Количество блоков в кеше индекса, которые были изменены, но еще не записаны на диск. Данный параметр также известен как Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Количество неиспользуемых блоков в кеше индекса. Данный параметр позволяет определить как полно используется кеш индекса.';
+$strShowStatusKey_blocks_usedDescr = 'Количество используемых блоков в кеше индекса. Данное значение - максимальное количество блоков, использованных одновременно.';
+$strShowStatusKey_read_requestsDescr = 'Количество запросов на чтение блока из кеша индексов.';
+$strShowStatusKey_readsDescr = 'Количество физических операций чтения блока индексов с диска. Если значение велико - скорее всего, задано слишком маленькое значение переменной key_buffer_size. Коэффициент неудачных обращений к кешу может быть рассчитан как: Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Количество запросов на запись блока в кеш индекса.';
+$strShowStatusKey_writesDescr = 'Количество физических операций записи блока индексов на диск.';
+$strShowStatusLast_query_costDescr = 'Общие затраты последнего компилированного запроса, рассчитанные оптимизатором запросов. Полезно при сравнении эффективности различных схем одного запроса. Изначальное нулевое значение, означает, что процесса компиляции запроса еще не было.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Количество строк, ожидающих вставки в запросах INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Общее количество открывавшихся таблиц. При большом значении переменной рекомендуется увеличить размер кеша таблиц (table_cache).';
+$strShowStatusOpen_filesDescr = 'Количество открытых файлов.';
+$strShowStatusOpen_streamsDescr = 'Количество открытых потоков (применяется к файлам журналов). Потоком называется файл, открытый с помощью функции fopen().';
+$strShowStatusOpen_tablesDescr = 'Количество открытых таблиц.';
+$strShowStatusQcache_free_blocksDescr = 'Количество свободных блоков памяти в кеше запросов.';
+$strShowStatusQcache_free_memoryDescr = 'Объем свободной памяти для кеша запросов.';
+$strShowStatusQcache_hitsDescr = 'Количество &quot;попаданий&quot; в кеш запросов, т.е. сколько запросов было удовлетворено запросами, находящимися в кеше.';
+$strShowStatusQcache_insertsDescr = 'Количество запросов, добавленных в кеш запросов.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Количество запросов, удаленных из кеша для освобождения памяти под кеширование новых запросов. Эта информация может помочь при настройке размера кеша запросов. Кеш запросов использует стратегию LRU (дольше всего не использующиеся страницы заменяются новыми) при принятии решения об удаления запроса из кеша.';
+$strShowStatusQcache_not_cachedDescr = 'Количество запросов, которые оказались некешируемыми или для которых кеширование было подавлено с помощью ключевого слова SQL_NO_CACHE.';
+$strShowStatusQcache_queries_in_cacheDescr = 'Количество запросов, зарегистрированных в кеше.';
+$strShowStatusQcache_total_blocksDescr = 'Суммарное количество блоков памяти, отведенных под кеш запросов.';
+$strShowStatusReset = 'Сбросить';
+$strShowStatusRpl_statusDescr = 'Состояние отказоустойчивой репликации (пока не реализовано).';
+$strShowStatusSelect_full_joinDescr = 'Количество запросов-объединений, выполненных без использования индексов. Если значение переменной не равно 0, рекомендуется проверить индексы таблиц.';
+$strShowStatusSelect_full_range_joinDescr = 'Количество запросов-объединений, выполненных с использованием поиска по диапазону в таблице, на которую делается ссылка.';
+$strShowStatusSelect_range_checkDescr = 'Количество запросов-объединений, выполненных с использованием поиска по диапазону для выборки строк из вторичной таблицы. Если значение переменной не равно 0, рекомендуется проверить индексы таблиц.';
+$strShowStatusSelect_rangeDescr = 'Количество запросов-объединений, выполненных с использованием поиска по диапазону в первой таблице. Обычно значение этой переменной не критично, даже если оно велико.';
+$strShowStatusSelect_scanDescr = 'Количество запросов-объединений, выполненных с использованием полного поиска по первой таблице.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Количество временных таблиц, открытых в настоящий момент подчиненным потоком.';
+$strShowStatusSlave_retried_transactionsDescr = 'Общее количество повторов транзакций подчиненным потоком репликации с момента запуска.';
+$strShowStatusSlave_runningDescr = 'Присваивается значение ON, если данный сервер функционирует как подчиненный, подключенный к главному.';
+$strShowStatusSlow_launch_threadsDescr = 'Количество потоков, на создание которых потребовалось более чем slow_launch_time секунд.';
+$strShowStatusSlow_queriesDescr = 'Количество запросов, выполнявшихся более long_query_time секунд.';
+$strShowStatusSort_merge_passesDescr = 'Количество проходов, сделанных алгоритмом сортировки. При большом значении следует увеличить значение переменной sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Количество операций сортировки, выполненных с использованием диапазона.';
+$strShowStatusSort_rowsDescr = 'Количество отсортированных строк.';
+$strShowStatusSort_scanDescr = 'Количество операций сортировки, выполненных с использованием полного сканирования таблицы.';
+$strShowStatusTable_locks_immediateDescr = 'Количество запросов на блокировку таблицы, которые были удовлетворены немедленно.';
+$strShowStatusTable_locks_waitedDescr = 'Количество запросов на блокировку таблицы, которые были удовлетворены только после определенного периода ожидания. Если значение велико и есть проблемы с производительностью, необходимо сначала оптимизировать свои запросы, а затем разбить свою таблицу (или таблицы) или использовать репликацию.';
+$strShowStatusThreads_cachedDescr = 'Количество потоков в потоковом кеше. Частоту успешных обращений к кешу можно вычислить по формуле Threads_created/Connections. Если это значение окрашено в красный цвет - вам следует увеличить thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Количество открытых текущих соединений.';
+$strShowStatusThreads_createdDescr = 'Полное количество потоков, созданных для поддержания соединений с клиентом. При большом значении переменной, можно увеличить значение переменной thread_cache_size (это не даст существенного выигрыша в производительности, при хорошей реализации потоков).';
+$strShowStatusThreads_runningDescr = 'Количество процессов, находящихся в активном состоянии.';
+$strShowTableDimension = 'Отображать размерность таблиц';
+$strShowTables = 'Отображение таблиц';
+$strShowThisQuery = 'Показать данный запрос снова';
+$strShow = 'Показать';
+$strSimplifiedChinese = 'Китайский упрощенный';
+$strSingly = '(столбец)';
+$strSize = 'Размер';
+$strSkipQueries = 'Количество запросов, пропущенных от начала';
+$strSlovak = 'Словацкий';
+$strSlovenian = 'Словенский';
+$strSmallBigAll = 'Свернуть/развернуть отображение всех таблиц';
+$strSnapToGrid = 'Привязать к сетке';
+$strSocketProblem = '(либо сокет локального MySQL-сервера некорректно настроен)';
+$strSortByKey = 'Сортировать по индексу';
+$strSorting = 'Сортировка';
+$strSort = 'Отсортировать';
+$strSpaceUsage = 'Используемое пространство';
+$strSpanish = 'Испанский';
+$strSplitWordsWithSpace = 'Слова разделяются пробелом (" ").';
+$strSQLCompatibility = 'Режим совместимости SQL';
+$strSQLExportType = 'Тип экспорта';
+$strSQLParserBugMessage = 'В работе SQL-парсера произошла ошибка. Убедитесь в корректности запроса, отсутствии в нем опечаток и незакрытых кавычек. Возможной причиной ошибки может быть загрузка файла, содержащего двоичные данные вне кавычек в тексте запроса. Попробуйте выполнить запрос через командную строку MySQL. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы. Если проблема не решается, хотя через интерфейс командной строки запрос отрабатывает корректно, выявите ту часть запроса, которая вызывает ошибку и отправьте разработчикам описание ошибки, снабдив его данными из секции CUT выведенной ниже:';
+$strSQLParserUserError = 'Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.';
+$strSQLQuery = 'SQL-запрос';
+$strSQLResult = 'Результат SQL-запроса';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Неправильный идентификатор';
+$strSQPBugUnclosedQuote = 'Незакрытая кавычка';
+$strSQPBugUnknownPunctuation = 'Неизвестная пунктуация';
+$strStandInStructureForView = 'Дублирующая структура для представления';
+$strStatCheckTime = 'Последняя проверка';
+$strStatCreateTime = 'Создание';
+$strStatement = 'Характеристика';
+$strStatisticsOverrun = 'На загруженном сервере, побайтовые счетчики могут переполняться, таким образом, статистика, передаваемая MySQL-сервером, может быть некорректной.';
+$strStatUpdateTime = 'Последнее обновление';
+$strStatus = 'Состояние';
+$strStorageEngines = 'Типы таблиц';
+$strStorageEngine = 'Тип таблиц';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Структура и данные';
+$strStrucExcelCSV = 'CSV для MS Excel';
+$strStrucNativeExcel = 'Формат MS Excel';
+$strStrucOnly = 'Только структура';
+$strStructPropose = 'Анализ структуры таблицы';
+$strStructureForView = 'Структура для представления';
+$strStructure = 'Структура';
+$strSubmit = 'Выполнить';
+$strSuccess = 'SQL-запрос был успешно выполнен';
+$strSuhosin = 'Сервер использует защитную систему Suhosin. Для решения возможных проблем обратитесь к %sдокументации%s.';
+$strSum = 'Всего';
+$strSwedish = 'Шведский';
+$strSwitchToDatabase = 'Переключиться на скопированную базу данных';
+$strSwitchToTable = 'Переключиться на скопированную таблицу';
+
+$strTableAlreadyExists = 'Таблица %s уже существует!';
+$strTableAlteredSuccessfully = 'Таблица %1$s была успешно изменена';
+$strTableComments = 'Комментарий к таблице';
+$strTableEmpty = 'Не задано имя таблицы!';
+$strTableHasBeenCreated = 'Таблица %1$s была создана.';
+$strTableHasBeenDropped = 'Таблица %s была удалена';
+$strTableHasBeenEmptied = 'Таблица %s была очищена';
+$strTableHasBeenFlushed = 'Обновлен кеш таблицы %s';
+$strTableIsEmpty = 'Таблица - пуста!';
+$strTableMaintenance = 'Обслуживание таблицы';
+$strTableName = 'Имя таблицы';
+$strTableOfContents = 'Содержание';
+$strTableOptions = 'Параметры таблицы';
+$strTableStructure = 'Структура таблицы';
+$strTables = 'Таблиц: %s';
+$strTable = 'Таблица ';
+$strTakeIt = 'Применить';
+$strTblPrivileges = ' Привилегии уровня таблицы';
+$strTempData = 'Временные данные';
+$strTextAreaLength = 'Из-за большого количества данных<br />изменение может быть затруднено';
+$strTexyText = 'Texy! текст';
+$strThai = 'Таи';
+$strThemeDefaultNotFound = 'Тема по-умолчанию %s не найдена!';
+$strThemeNoPreviewAvailable = 'Предпросмотр не доступен.';
+$strThemeNotFound = 'Тема %s не найдена!';
+$strThemeNoValidImgPath = 'Не найден правильный путь к изображениям для темы %s!';
+$strThemePathNotFound = 'Путь к файлам темы %s не найден!';
+$strTheme = 'Тема / Стиль';
+$strThisHost = 'Этот хост';
+$strThreadSuccessfullyKilled = 'Процесс %s был успешно завершен.';
+$strThreads = 'Потоки';
+$strTimeoutInfo = 'Процесс импорта был прерван из-за приближения временного лимита, после перезапуска импорт будет продолжен с позиции %d.';
+$strTimeoutNothingParsed = 'Несмотря на последний запуск, данные не были обработаны. Как правило это означает, что phpMyAdmin не сможет завершить процесс импорта до тех пор, пока не будет увеличено ограничение времени выполнения php-сценариев.';
+$strTimeoutPassed = 'Достигнут временной лимит. Если вы хотите завершить импорт, перезапустите его выбрав тот же файл, и процесс продолжится с того места на котором остановился.';
+$strTime = 'Время';
+$strToFromPage = 'Страница';
+$strToggleScratchboard = 'Отображение';
+$strToggleSmallBig = 'Обратное отображение';
+$strToSelectRelation = 'Для выбора связи нажмите на точке соединения, как показано на картинке:';
+$strTotalUC = 'Всего';
+$strTotal = 'всего';
+$strTraditionalChinese = 'Китайский традиционный';
+$strTraditionalSpanish = 'Испанский традиционный';
+$strTraffic = 'Трафик';
+$strTransactionCoordinator = 'Координатор транзакций';
+$strTransformation_application_octetstream__download = 'Отображает ссылку для загрузки бинарных данных поля. Возможно использование первого параметра для выбора имени файла, или использование второго параметра, как имени поля, которое содержит имя файла. В случае использования второго параметра, первый необходимо установить в виде пустой строки.';
+$strTransformation_application_octetstream__hex = 'Отображает данные в шестнадцатеричном представлении. Необязательный первый параметр может быть использован для указания на то, через какие промежутки будет добавляться пробел (по умолчанию после двух полубайтов).';
+$strTransformation_image_jpeg__inline = 'Отображает уменьшенную иконку изображения, на которую можно нажать для увеличения. Параметрами задается максимальная ширина и высота картинки в пикселях. Изначальное соотношение сторон, сохраняется.';
+$strTransformation_image_jpeg__link = 'Отображает ссылку для загрузки изображения';
+$strTransformation_image_png__inline = 'Отображает уменьшенную иконку изображения, на которую можно нажать для увеличения. Параметрами задается максимальная ширина и высота картинки в пикселях. Изначальное соотношение сторон, сохраняется.';
+$strTransformation_text_plain__dateformat = 'Отображает поля типа TIME, TIMESTAMP, DATETIME или время в формате Unix, в виде форматированного вывода. Первый параметр прибавляет смещение, в часах (по умолчанию: 0). Второй параметр задает иное форматирование строки даты/времени. Третий параметр определяет установку локального (строка "local") или всемирного (строка "utc") времени. В соответствии с установленным третьим параметром формат даты должен иметь различные значения - для "local" смотрите описание функции PHP strftime(), для "utc" - gmdate().';
+$strTransformation_text_plain__external = 'ТОЛЬКО LINUX: Запускает внешнее приложение и подает ему на ввод данные поля. Возвращает обычный вывод приложения. По умолчанию используется Tidy (форматирование HTML-кода). По соображениям безопасности, необходимо вручную отредактировать файл libraries/transformations/text_plain__external.inc.php вписав доступные программы. Первый параметр задает номер используемой программы, во втором параметре передаются параметры собственно программы. При установке третьего параметра в 1, данные вывода будут преобразованы функцией PHP htmlspecialchars() (по умолчанию: 1). Установка червертого параметра в 1, предотвратит переносы строки и выведет данные в одну строку (по умолчанию: 1).';
+$strTransformation_text_plain__formatted = 'Отображает содержимое поля как есть, без преобразования данных функцией PHP htmlspecialchars(). Таким образом поле может содержать рабочий HTML-код.';
+$strTransformation_text_plain__imagelink = 'Показывает изображение и ссылку; поле содержит имя файла. Первый параметр является URL-префиксом, например "http://domain.com/". Второй и третий параметр - ширина и высота изображения в пикселях.';
+$strTransformation_text_plain__link = 'Отображает ссылку; поле содержит имя файла. Первый параметр - URL-префикс, например "http://www.example.com/". Второй параметр - заголовок ссылки.';
+$strTransformation_text_plain__sql = 'Форматирует текст в виде SQL запроса с подсветкой синтаксиса';
+$strTransformation_text_plain__substr = 'Показывает только часть строки. Первый параметр - сдвиг, определяющий начало выводимого текста (по умолчанию: 0). Второй параметр - количество возвращаемых символов (по умолчанию: до конца строки). Третий параметр определяет строку добавляемую вначале и/или в конце существующего отрывка (по умолчанию: "...").';
+$strTriggers = 'Триггеры';
+$strTruncateQueries = 'Сокращенное отображение запросов';
+$strTurkish = 'Турецкий';
+$strType = 'Тип';
+
+$strUkrainian = 'Украинский';
+$strUncheckAll = 'Снять выделение';
+$strUnicode = 'Юникод';
+$strUnique = 'Уникальный';
+$strUnknown = 'неизвестно';
+$strUnselectAll = 'Снять выделение';
+$strUnsupportedCompressionDetected = 'Загружаемый файл сжат методом (%s), который не поддерживается, и поэтому не может быть импортирован. Поддержка данного метода еще не реализована, либо отключена при конфигурировании.';
+$strUpdatePrivMessage = 'Были изменены привилегии для %s.';
+$strUpdateProfileMessage = 'Профиль был обновлен.';
+$strUpdateQuery = 'Дополнить запрос';
+$strUpdComTab = 'Необходимо обновить таблицу column_comments. Детали смотрите в документации.';
+$strUpgrade = 'Необходимо обновить %s до версии %s или выше.';
+$strUploadErrorCantWrite = 'Ошибка при попытке записи файла на диск.';
+$strUploadErrorExtension = 'Загрузка файла остановлена из-за расширения.';
+$strUploadErrorFormSize = 'Размер загружаемого файла превышает значение директивы MAX_FILE_SIZE, определенной в HTML форме.';
+$strUploadErrorIniSize = 'Размер загружаемого файла превышает значение директивы upload_max_filesize установленное в конфигурационном файле PHP (php.ini).';
+$strUploadErrorNoTempDir = 'Не найден каталог для хранения временных файлов.';
+$strUploadErrorPartial = 'Загруженный файл был загружен только частично.';
+$strUploadErrorUnknown = 'При время загрузке файла произошла неизвестная ошибка.';
+$strUploadLimit = 'Вероятно, размер загружаемого файла слишком велик. Способы обхода данного ограничения описаны в %sдокументации%s.';
+$strUploadsNotAllowed = 'Загрузка файлов на сервер, невозможна.';
+$strUsage = 'Использование';
+$strUseBackquotes = 'Заключить названия таблиц и полей в косые кавычки';
+$strUseHostTable = 'Использовать таблицу хостов';
+$strUserAlreadyExists = 'Пользователь %s уже существует!';
+$strUserEmpty = 'Не задано имя пользователя!';
+$strUserName = 'Имя пользователя';
+$strUserNotFound = 'Выделенный пользователь не был найден в таблице привилегий.';
+$strUserOverview = 'Обзор учетных записей';
+$strUsersDeleted = 'Выбранные пользователи были успешно удалены.';
+$strUsersHavingAccessToDb = 'Пользователи с правами доступа к &quot;%s&quot;';
+$strUser = 'Пользователь';
+$strUseTabKey = 'Для перемещения между полями значения, используйте клавишу TAB, либо CTRL+клавиши со стрелками - для свободного перемещения';
+$strUseTables = 'Использовать таблицы';
+$strUseTextField = 'Использовать текстовое поле';
+$strUseThisValue = 'Использовать это значение';
+
+$strValidateSQL = 'Проверка синтаксиса SQL';
+$strValidatorError = 'Проверка синтаксиса SQL не осуществима. Проверьте, установлены ли необходимые модули расширений для PHP, описанные в %sдокументации%s.';
+$strValue = 'Значение';
+$strVar = 'Переменная';
+$strVersionInformation = 'Информация о версии';
+$strViewDumpDatabases = 'Отобразить дамп (схему) баз данных';
+$strViewDumpDB = 'Отобразить дамп (схему) базы данных';
+$strViewDump = 'Отобразить дамп (схему) таблицы';
+$strViewHasAtLeast = 'Данное представление имеет, по меньшей мере, указанное количество строк. Пожалуйста, обратитесь к %sдокументации%s.';
+$strViewHasBeenDropped = 'Представление %s было удалено';
+$strViewName = 'VIEW название';
+$strView = 'Представление';
+
+$strWebServerUploadDirectoryError = 'Установленный каталог загрузки не доступен';
+$strWebServerUploadDirectory = 'Из каталога загрузки';
+$strWebServer = 'Веб-сервер';
+$strWelcome = 'Добро пожаловать в %s';
+$strWestEuropean = 'Западно-Европейский';
+$strWiki = 'Вики';
+$strWildcard = 'Групповой символ';
+$strWindowNotFound = 'Целевое окно браузера не может быть обновлено. Возможно, вы закрыли родительское окно или ваш браузер блокирует межоконные обновления из-за настроек безопасности';
+$strWithChecked = 'С отмеченными:';
+$strWriteRequests = 'Запросы на запись';
+$strWrongUser = 'Данные для входа не верны. В доступе отказано.';
+
+$strXML = 'XML';
+
+$strYes = 'Да';
+
+$strZeroRemovesTheLimit = 'Замечание: Установка значения параметров в 0 (ноль), снимает ограничения.';
+$strZip = 'zip';
+
+// To translate:
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+
+$strDownloadFile = 'Download file'; //to translate
+
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+
+$strPlayAudio = 'Play audio'; //to translate
+
+$strShowKeys = 'Only show keys'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+
+$strViewImage = 'View image'; //to translate
+$strViewVideo = 'View video'; //to translate
+
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/serbian_cyrillic-utf-8.inc.php b/lang/serbian_cyrillic-utf-8.inc.php
new file mode 100644
index 0000000000..047f212da2
--- /dev/null
+++ b/lang/serbian_cyrillic-utf-8.inc.php
@@ -0,0 +1,1447 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by:
+ * Mihailo Stefanovic <mikis@users.sourceforge.net>, Branislav Jovanovic <fangorn@eunet.yu>
+ * Igor Mladenovic <mligor@zimco.com>, David Trajkovic <tdavid@ptt.yu>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('бајтова', 'КБ', 'МБ', 'ГБ', 'ТБ', 'ПБ', 'ЕБ');
+
+$day_of_week = array('Нед', 'Пон', 'Уто', 'Сре', 'Чет', 'Пет', 'Суб');
+$month = array('јан', 'феб', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d. %B %Y. у %H:%M';
+$timespanfmt = '%s дана, %s сати, %s минута и %s секунди';
+
+$strAbortedClients = 'Прекинуто';
+$strAccessDeniedCreateConfig = 'Вероватан разлог за ово је да нисте направили конфигурациону датотеку. Можете користити %1$sскрипт за инсталацију%2$s да бисте је направили.';
+$strAccessDeniedExplanation = 'phpMyAdmin је покушао да се повеже на MySQL сервер, али је сервер одбио повезивање. Проверите назив домаћина, корисничко име и лозинку у config.inc.php и уверите се да одговарају подацима које сте добили од администратора MySQL сервера.';
+$strAccessDenied = 'Приступ одбијен';
+$strAction = 'Акција';
+$strAddAutoIncrement = 'Додај AUTO_INCREMENT вредност';
+$strAddClause = 'Додај %s';
+$strAddConstraints = 'Додај ограничења';
+$strAddDeleteColumn = 'Додај/обриши колону';
+$strAddDeleteRow = 'Додај/обриши поље за критеријум';
+$strAddFields = 'Додај %s поља';
+$strAddHeaderComment = 'Додај коментар у заглавље (\\n раздваја линије)';
+$strAddIntoComments = 'Додај у коментаре';
+$strAddNewField = 'Додај ново поље';
+$strAddPrivilegesOnDb = 'Додај привилегије на следећој бази';
+$strAddPrivilegesOnTbl = 'Додај привилегије на следећој табели';
+$strAddSearchConditions = 'Додај услове претраживања (део "WHERE" упита):';
+$strAddToIndex = 'Додај у кључ &nbsp;%s&nbsp;колона(е)';
+$strAddUserMessage = 'Додали сте новог корисника.';
+$strAddUser = 'Додај новог корисника';
+$strAdministration = 'Администрација';
+$strAfterInsertBack = 'Назад на претходну страну';
+$strAfterInsertNewInsert = 'Додај још један нови ред';
+$strAfterInsertNext = 'Уреди следећи ред';
+$strAfterInsertSame = 'Врати се на ову страну';
+$strAfter = 'После %s';
+$strAll = 'Све';
+$strAllowInterrupt = 'Дозвољава прекид увоза у случају да скрипт открије да је близу временског ограничења. Ово може бити добар начин увоза великих датотека, али са друге стране може покварити трансакције.';
+$strAllTableSameWidth = 'Приказ свих табела исте ширине?';
+$strAlterOrderBy = 'Промени редослед у табели';
+$strAnalyzeTable = 'Анализирај табелу';
+$strAndThen = 'и онда';
+$strAnd = 'и';
+$strAngularLinks = 'Угласте везе';
+$strAnIndex = 'Кључ је управо додат %s';
+$strAnyHost = 'Било који домаћин';
+$strAnyUser = 'Било који корисник';
+$strAny = 'Било који';
+$strApproximateCount = 'Може бити приближно. Видите FAQ 3.11';
+$strAPrimaryKey = 'Примарни кључ је управо додат %s';
+$strArabic = 'Арапски';
+$strArmenian = 'Јерменски';
+$strAscending = 'Растући';
+$strAtBeginningOfTable = 'На почетку табеле';
+$strAtEndOfTable = 'На крају табеле';
+$strAttr = 'Атрибути';
+$strAutomaticLayout = 'Аутоматски распоред';
+
+$strBack = 'Назад';
+$strBaltic = 'Балтички';
+$strBeginCut = 'ПОЧЕТАК РЕЗ';
+$strBeginRaw = 'ПОЧЕТАК СИРОВО';
+$strBinaryDoNotEdit = 'Бинарни - не мењај';
+$strBinaryLog = 'Бинарни дневник';
+$strBinary = 'Бинарни';
+$strBinLogEventType = 'Врста догађаја';
+$strBinLogInfo = 'Информације';
+$strBinLogName = 'Назив дневника';
+$strBinLogOriginalPosition = 'Оригинална позиција';
+$strBinLogPosition = 'Позиција';
+$strBinLogServerId = 'ИД сервера';
+$strBookmarkAllUsers = 'Дозволи сваком кориснику да приступа овом упамћеном упиту';
+$strBookmarkCreated = 'Направљен маркер %s';
+$strBookmarkDeleted = 'Обележивач је управо обрисан.';
+$strBookmarkLabel = 'Назив';
+$strBookmarkQuery = 'Запамћен SQL-упит';
+$strBookmarkReplace = 'Замени постојеће запамћене упите истог имена';
+$strBookmarkThis = 'Запамти SQL-упит';
+$strBookmarkView = 'Види само';
+$strBrowseDistinctValues = 'Прегледај различите вредности';
+$strBrowseForeignValues = 'Прегледај стране вредности';
+$strBrowse = 'Преглед';
+$strBufferPoolActivity = 'Активност скупа прихватника';
+$strBufferPool = 'Скуп прихватника';
+$strBufferPoolUsage = 'Коришћење скупа прихватника';
+$strBufferReadMissesInPercent = 'Промашаји читања у %';
+$strBufferReadMisses = 'Промашаји при читању';
+$strBufferWriteWaitsInPercent = 'Чекања на упис у %';
+$strBufferWriteWaits = 'Чекања на упис';
+$strBulgarian = 'Бугарски';
+$strBusyPages = 'Заузете стране';
+$strBzip = '"бзип-овано"';
+
+$strCalendar = 'Календар';
+$strCancel = 'Откажи';
+$strCanNotLoadExportPlugins = 'Није могуће учитати додатке за извоз, молимо проверите своју инсталацију!';
+$strCanNotLoadImportPlugins = 'Не могу да учитам додатке за увоз, молим проверите своју инсталацију!';
+$strCannotLogin = 'Не могу да се пријавим на MySQL сервер';
+$strCantLoad = 'не могу да учитам екстензију %s,<br />молим проверите PHP конфигурацију';
+$strCantLoadRecodeIconv = 'Не могу да учитам iconv или recode екстензије потребне за конверзију скупова знакова, подесите PHP да дозволи коришћење ових екстензија или онемогућите конверзију скупова знакова у phpMyAdmin-у.';
+$strCantRenameIdxToPrimary = 'Не могу да променим кључ у PRIMARY (примарни) !';
+$strCantUseRecodeIconv = 'Не могу да користим iconv или libiconv или recode_string функције иако екстензија пријављује да је учитана. Проверите вашу PHP конфигурацију.';
+$strCardinality = 'Кардиналност';
+$strCaseInsensitive = 'Не разликује мала и велика слова';
+$strCaseSensitive = 'Разликује мала и велика слова';
+$strCentralEuropean = 'Централноевропски';
+$strChangeCopyModeCopy = '... сачувај старе.';
+$strChangeCopyModeDeleteAndReload = ' ... обриши старог из табеле корисника и затим поново учитај привилегије.';
+$strChangeCopyModeJustDelete = ' ... обриши старе из табела корисника.';
+$strChangeCopyMode = 'Направи новог корисника са истим привилегијама и ...';
+$strChangeCopyModeRevoke = ' ... обустави све привилегије старог корисника и затим га обриши.';
+$strChangeCopyUser = 'Промени информације о пријави / Копирај корисника';
+$strChangeDisplay = 'Изабери поља за приказ';
+$strChange = 'Промени';
+$strChangePassword = 'Промени лозинку';
+$strCharset = 'Карактер сет';
+$strCharsetOfFile = 'Карактер сет датотеке:';
+$strCharsetsAndCollations = 'Карактер сетови и сортирање';
+$strCharsets = 'Кодне стране';
+$strCheckAll = 'Означи све';
+$strCheckOverhead = 'Провери табеле које имају прекорачења';
+$strCheckPrivsLong = 'Провери привилегије за базу &quot;%s&quot;.';
+$strCheckPrivs = 'Провери привилегије';
+$strCheckTable = 'Провери табелу';
+$strChoosePage = 'Изаберите страну коју мењате';
+$strColComFeat = 'Приказујем коментаре колоне';
+$strCollation = 'Сортирање';
+$strColumnNames = 'Имена колона';
+$strColumnPrivileges = 'Привилегије везане за колоне';
+$strCommand = 'Наредба';
+$strComments = 'Коментари';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 компатибилно';
+$strCompleteInserts = 'Комплетан INSERT (са именима поља)';
+$strCompressionWillBeDetected = 'Врста компресије увезених датотека ће бити аутоматски одабрана: %s';
+$strCompression = 'Компресија';
+$strConfigDefaultFileError = 'Не могу да учитам подразумевану конфигурацију из: "%1$s"';
+$strConfigFileError = 'phpMyAdmin није могао да прочита вашу конфигурациону датотеку!<br />Ово се може десити ако PHP нађе грешку у процесирању или не може да пронађе датотеку.<br />Позовите конфигурациону датотеку директно користећи доњи линк и прочитајте поруке о грешци које добијате. У већини случајеве негде недостаје наводник или тачка-зарез.<br />Ако добијете празну страну, све је у реду.';
+$strConfigureTableCoord = 'Подесите координате за табелу %s';
+$strConnectionError = 'Не могу да се повежем: неисправна подешавања.';
+$strConnections = 'Конекције';
+$strConstraintsForDumped = 'Ограничења за извезене табеле';
+$strConstraintsForTable = 'Ограничења за табеле';
+$strControluserFailed = 'Конекција за controluser-а, онако како је дефинисана у вашој конфигурацији, није успела.';
+$strCookiesRequired = 'Колачићи (Cookies) морају у овом случају бити активни.';
+$strCopyDatabaseOK = 'База %s је прекопирана у %s';
+$strCopyTableOK = 'Табела %s је копирана у %s.';
+$strCopyTableSameNames = 'Не могу да копирам табелу у саму себе!';
+$strCopyTable = 'Копирај табелу у (база<b>.</b>табела):';
+$strCopy = 'Копирај';
+$strCouldNotKill = 'phpMyAdmin није могао да прекине процес %s. Вероватно је већ затворен.';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE пре копирања';
+$strCreateIndex = 'Направи кључ на&nbsp;%s&nbsp;колона';
+$strCreateIndexTopic = 'Направи нови кључ';
+$strCreate = 'Направи';
+$strCreateNewDatabase = 'Направи нову базу података';
+$strCreateNewTable = 'Направи нову табелу у бази %s';
+$strCreatePage = 'Направи нову страну';
+$strCreatePdfFeat = 'Прављење PDF-ova';
+$strCreateRelation = 'Направи релацију';
+$strCreateTable = 'Направи табелу';
+$strCreateUserDatabaseName = 'Направи базу са истим именом и додај све привилегије';
+$strCreateUserDatabaseNone = 'Нема';
+$strCreateUserDatabase = 'База за корисника';
+$strCreateUserDatabaseWildcard = 'Дај све привилегије на имену са џокерима (корисничко_име\_%)';
+$strCreationDates = 'Датуми креирања/ажурирања/провере';
+$strCriteria = 'Критеријум';
+$strCroatian = 'Хрватски';
+$strCSV = 'CSV';
+$strCyrillic = 'Ћирилични';
+$strCzech = 'Чешки';
+$strCzechSlovak = 'Чешко-словачки';
+
+$strDanish = 'Дански';
+$strDatabaseEmpty = 'Име базе није задато!';
+$strDatabaseExportOptions = 'Опције за извоз базе';
+$strDatabaseHasBeenDropped = 'База %s је одбачена.';
+$strDatabases = 'Базе';
+$strDatabasesDropped = '%s база је успешно одбачено.';
+$strDatabasesStatsDisable = 'Искључи статистике';
+$strDatabasesStatsEnable = 'Укључи статистике';
+$strDatabasesStatsHeavyTraffic = 'Напомена: укључивање статистика може проузроковати велики саобраћај између веб и MySQL сервера.';
+$strDatabasesStats = 'Статистика базе';
+$strDatabase = 'База података';
+$strDataDict = 'Речник података';
+$strDataOnly = 'Само подаци';
+$strDataPages = 'Стране са подацима';
+$strData = 'Подаци';
+$strDBComment = 'Коментар базе:';
+$strDBCopy = 'Копирај базу у';
+$strDbIsEmpty = 'База је изгледа празна!';
+$strDbPrivileges = 'Привилегије везане за базу';
+$strDBRename = 'Преименуј базу у';
+$strDbSpecific = 'Специфично за базу';
+$strDefaultEngine = '%s је подразумевани погон складиштења на овом MySQL серверу.';
+$strDefaultValueHelp = 'За подразумевану вредност, унесите само једну вредност, без косих црта или наводника у овом облику: а';
+$strDefault = 'Подразумевано';
+$strDefragment = 'Дефрагментирај табелу';
+$strDelayedInserts = 'Користи одложена уметања';
+$strDeleteAndFlushDescr = 'Ово је најчистији начин, али поновно учитавање привилегина може да потраје.';
+$strDeleteAndFlush = 'Обриши кориснике и поново учитај привилегије.';
+$strDeleted = 'Ред је обрисан';
+$strDeleteNoUsersSelected = 'Ниједан корисник није одабран за брисање!';
+$strDelete = 'Обриши';
+$strDeleteRelation = 'Обриши релацију';
+$strDeleting = 'Бришем %s';
+$strDelimiter = 'Граничник';
+$strDelOld = 'Тренутна страна има референце на табеле које више не постоје. Желите ли да обришете те референце?';
+$strDescending = 'Опадајући';
+$strDescription = 'Опис';
+$strDesignerHelpDisplayField = 'Поље за приказ је обојено у ружичасто. Да би поставили/уклонили поље као поље за приказ, кликните на икону „Изабери поље за приказ“, а потом на назив одговарајућег поља.';
+$strDesigner = 'Дизајнер';
+$strDictionary = 'речник';
+$strDirectLinks = 'Директне везе';
+$strDirtyPages = 'Прљаве стране';
+$strDisabled = 'Онемогућено';
+$strDisableForeignChecks = 'Искључи провере страних кључева';
+$strDisplayFeat = 'Прикажи особине';
+$strDisplayOrder = 'Редослед приказа:';
+$strDisplayPDF = 'Прикажи PDF схему';
+$strDoAQuery = 'Направи "упит по примеру" (џокер: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Документација';
+$strDoYouReally = 'Да ли стварно хоћете да ';
+$strDropDatabaseStrongWarning = 'Овим ћете УНИШТИТИ комплетну базу података!';
+$strDropUsersDb = 'Одбаци базе које се зову исто као корисници.';
+$strDrop = 'Одбаци';
+$strDumpingData = 'Приказ података табеле';
+$strDumpSaved = 'Садржај базе је сачуван у датотеку %s.';
+$strDumpXRows = 'Прикажи %s редова почевши од реда %s.';
+$strDynamic = 'динамички';
+
+$strEdit = 'Промени';
+$strEditPDFPages = 'Уређивање PDF страна';
+$strEditPrivileges = 'Промени привилегије';
+$strEffective = 'Ефективне';
+$strEmpty = 'Испразни';
+$strEmptyResultSet = 'MySQL је вратио празан резултат (нула редова).';
+$strEnabled = 'Омогућено';
+$strEncloseInTransaction = 'Обави извоз у трансакцији';
+$strEndCut = 'КРАЈ РЕЗ';
+$strEnd = 'Крај';
+$strEndRaw = 'КРАЈ СИРОВО';
+$strEngineAvailable = '%s је доступан на овом MySQL серверу.';
+$strEngineDisabled = '%s је онемогућен на овом MySQL серверу.';
+$strEngines = 'Складиштења';
+$strEngineUnsupported = 'Овај MySQL сервер не подржава %s погон складиштења.';
+$strEnglish = 'Енглески';
+$strEnglishPrivileges = ' Напомена: MySQL имена привилегија морају да буду на енглеском ';
+$strErrorInZipFile = 'Грешка у ZIP архиви:';
+$strError = 'Грешка';
+$strErrorRelationAdded = 'Грешка: релација није додата.';
+$strErrorRelationExists = 'Грешка: релација већ постоји.';
+$strErrorRenamingTable = 'Грешка при преименовању табеле %1$s у %2$s';
+$strErrorSaveTable = 'Грешка при снимању координата за Дизајнер.';
+$strEscapeWildcards = 'Пре џокера _ и % треба ставити знак \ ако их користите самостално';
+$strEsperanto = 'Есперанто';
+$strEstonian = 'Естонски';
+$strEvent = 'Догађаји';
+$strExcelEdition = 'Excel издање';
+$strExecuteBookmarked = 'Изврши упамћен упит';
+$strExplain = 'Објасни SQL';
+$strExport = 'Извоз';
+$strExportImportToScale = 'Извор/увоз у размери';
+$strExportMustBeFile = 'Одабрани тип извоза мора бити сачуван у датотеку!';
+$strExtendedInserts = 'Проширени INSERT';
+$strExtra = 'Додатно';
+
+$strFailedAttempts = 'Неуспелих покушаја';
+$strFieldHasBeenDropped = 'Поље %s је обрисано';
+$strFieldInsertFromFileTempDirNotExists = 'Грешка у премештању примљене датотеке, погледајте FAQ 1.11';
+$strFieldsEnclosedBy = 'Поља ограничена са';
+$strFieldsEscapedBy = 'Ескејп карактер &nbsp; &nbsp; &nbsp;';
+$strFieldsTerminatedBy = 'Поља раздвојена са';
+$strFields = 'Поља';
+$strField = 'Поље';
+$strFileAlreadyExists = 'Датотека %s већ постоји на серверу, промените име датотеке или укључите опцију преписивања.';
+$strFileCouldNotBeRead = 'Датотеку није могуће прочитати';
+$strFileNameTemplateDescription = 'Ова вредност се тумачи коришћењем %1$sstrftime%2$s, тако да можете да користите стрингове за форматирање времена. Такође ће се десити и следеће трансформације: %3$s. Преостали текст ће остати како јесте.';
+$strFileNameTemplateDescriptionDatabase = 'назив базе';
+$strFileNameTemplateDescriptionServer = 'назив сервера';
+$strFileNameTemplateDescriptionTable = 'назив табеле';
+$strFileNameTemplateRemember = 'запамти шаблон';
+$strFileNameTemplate = 'Шаблон имена датотеке';
+$strFiles = 'Датотеке';
+$strFileToImport = 'Датотека за увоз';
+$strFixed = 'сређено';
+$strFlushPrivilegesNote = 'Напомена: phpMyAdmin узима привилегије корисника директно из MySQL табела привилегија. Садржај ове табеле може се разликовати од привилегија које сервер користи ако су вршене ручне измене. У том случају %sпоново учитајте привилегије%s пре него што наставите.';
+$strFlushQueryCache = 'Очисти кеш упита';
+$strFlushTable = 'Освежи табелу ("FLUSH")';
+$strFlushTables = 'Очисти (затвори) све табеле';
+$strFontSize = 'Величина фонта';
+$strFormat = 'Формат';
+$strFormEmpty = 'Недостаје вредност у обрасцу!';
+$strFreePages = 'Слободне стране';
+$strFullText = 'Пун текст';
+$strFunction = 'Функција';
+$strFunctions = 'Функције';
+
+$strGenBy = 'Генерисао';
+$strGeneralRelationFeat = 'Опште особине релација';
+$strGenerate = 'Направи';
+$strGeneratePassword = 'Направи лозинку';
+$strGenTime = 'Време креирања';
+$strGeorgian = 'Грузијски';
+$strGerman = 'Немачки';
+$strGlobal = 'глобално';
+$strGlobalPrivileges = 'Глобалне привилегије';
+$strGlobalValue = 'Глобална вредност';
+$strGo = 'Крени';
+$strGrantOption = 'Омогући';
+$strGreek = 'Грчки';
+$strGzip = '"гзип-овано"';
+
+$strHandler = 'Руковалац';
+$strHasBeenAltered = 'је промењен(а).';
+$strHaveToShow = 'Морате изабрати бар једну колону за приказ';
+$strHebrew = 'Хебрејски';
+$strHelp = 'Помоћ';
+$strHexForBLOB = 'Користи хексадецимално за BLOB';
+$strHide = 'Сакриј';
+$strHideShowAll = 'Сакриј/прикажи све';
+$strHideShowNoRelation = 'Сакриј/прикажи табеле без релација';
+$strHomepageOfficial = 'phpMyAdmin веб сајт';
+$strHome = 'Почетна страна';
+$strHostEmpty = 'Име домаћина је празно!';
+$strHost = 'Домаћин';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Мађарски';
+
+$strIcelandic = 'Исландски';
+$strId = 'ID';
+$strIdxFulltext = 'Текст кључ';
+$strIEUnsupported = 'Internet Explorer не подржава ову функцију.';
+$strIgnore = 'Игнориши';
+$strIgnoreDuplicates = 'Игнориши дуплициране редове';
+$strIgnoreInserts = 'Игнориши дупликате при уметању';
+$strImport = 'Увоз';
+$strImportExportCoords = 'Извоз/увоз координата за PDF схему';
+$strImportFiles = 'Увоз датотека';
+$strImportFormat = 'Формат датотека за увоз';
+$strImportSuccessfullyFinished = 'Увоз је успешно завршен, извршено је %d упита.';
+$strIndexes = 'Кључеви';
+$strIndexHasBeenDropped = 'Кључ %s је обрисан';
+$strIndexName = 'Име кључа :';
+$strIndex = 'Кључ';
+$strIndexType = 'Тип кључа :';
+$strIndexWarningTable = 'Проблем при индексирању табеле `%s`';
+$strInnoDBAutoextendIncrementDesc = ' Величина корака проширења величине табела које се аутоматски проширују када се напуне.';
+$strInnoDBAutoextendIncrement = 'Корак аутоматског проширења';
+$strInnoDBBufferPoolSizeDesc = 'Величина меморијског прихватника које InnoDB користи за кеширање података и индекса својих табела.';
+$strInnoDBBufferPoolSize = 'Величина прихватника';
+$strInnoDBDataFilePath = 'Датотеке са подацима';
+$strInnoDBDataHomeDirDesc = 'Заједнички део путање директоријума за све InnoDB датотеке са подацима.';
+$strInnoDBDataHomeDir = 'Основни директоријум података';
+$strInnoDBPages = 'страна';
+$strInnodbStat = 'InnoDB статус';
+$strInsecureMySQL = 'Ваша конфигурациона датотека садржи подешавања (root без лозинке) која одговарају стандардном MySQL привилегованом налогу. Ваш MySQL сервер ради са овим подешавањима, отворен је за упаде, и заиста треба да исправите овај сигурносни ризик.';
+$strInsertAsNewRow = 'Унеси као нови ред';
+$strInsert = 'Нови запис';
+$strInternalRelationAdded = 'Додата интерна релација';
+$strInternalRelations = 'Унутрашње релације';
+$strInUse = 'се користи';
+$strInvalidAuthMethod = 'Неисправан метод аутентикације је задат у конфигурацији:';
+$strInvalidColumnCount = 'Број колона мора бити већи од нуле.';
+$strInvalidColumn = 'Задата је неисправна колона (%s)!';
+$strInvalidCSVFieldCount = 'Неисправан број поља у CSV улазу на линији %d.';
+$strInvalidCSVFormat = 'Неисправан формат CSV улаза на линији %d.';
+$strInvalidCSVParameter = 'Неисправни параметри за CSV увоз: %s';
+$strInvalidDatabase = 'Неисправна база података';
+$strInvalidFieldAddCount = 'Морате додати барем једно поље.';
+$strInvalidFieldCount = 'Табела мора имати барем једно поље.';
+$strInvalidLDIImport = 'Овај додатак не подржава компресоване увозе!';
+$strInvalidRowNumber = '%d није исправан број реда.';
+$strInvalidServerHostname = 'Неисправан назив сервера %1$s. Молимо проверите своју конфигурацију.';
+$strInvalidServerIndex = 'Неисправан индекс сервера: "%s"';
+$strInvalidTableName = 'Неисправан назив табеле';
+
+$strJapanese = 'Јапански';
+$strJoins = 'Спојеви';
+$strJumpToDB = 'Пређи на базу &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Обрисани&quot; корисници ће и даље имати приступ серверу док привилегије не буду поново учитане.';
+$strJustDelete = 'Само обриши кориснике из табеле привилегија.';
+
+$strKeepPass = 'Немој да мењаш лозинку';
+$strKeyCache = 'Кеш кључева';
+$strKeyname = 'Име кључа';
+$strKill = 'Обустави';
+$strKnownExternalBug = 'Ова функционалност %s је погођена познатом грешком, видите %s';
+$strKorean = 'Корејски';
+
+$strLandscape = 'Положено';
+$strLanguageUnknown = 'Непознат језик: %1$s.';
+$strLanguage = 'Језик';
+$strLatchedPages = 'Забрављене стране';
+$strLatexCaption = 'Коментар табеле';
+$strLatexContent = 'Садржај табеле __TABLE__';
+$strLatexContinuedCaption = 'Настављен коментар табеле';
+$strLatexContinued = '(настављено)';
+$strLatexIncludeCaption = 'Укључи коментар табеле';
+$strLatexLabel = 'Ознака кључа';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Структура табеле __TABLE__';
+$strLatvian = 'Летонски';
+$strLDI = 'CSV користећи LOAD DATA';
+$strLDILocal = 'Користи кључну реч LOCAL';
+$strLengthSet = 'Дужина/Вредност*';
+$strLimitNumRows = 'Број редова по страни';
+$strLinesTerminatedBy = 'Линије се завршавају са';
+$strLinkNotFound = 'Веза није пронађена';
+$strLinksTo = 'Везе ка';
+$strLithuanian = 'Литвански';
+$strLocalhost = 'Локални';
+$strLocationTextfile = 'Локација текстуалне датотеке';
+$strLoginInformation = 'Подаци о пријави';
+$strLogin = 'Пријављивање';
+$strLogout = 'Одјављивање';
+$strLogPassword = 'Лозинка:';
+$strLogServer = 'Сервер';
+$strLogUsername = 'Корисничко име:';
+$strLongOperation = 'Ова операција може да потраје. Да ли да наставимо?';
+
+$strMaxConnects = 'макс. истовремених веза';
+$strMaximalQueryLength = 'Максимална дужина направљеног упита';
+$strMaximumSize = 'Максимална величина: %s%s';
+$strMbExtensionMissing = 'PHP екстензија mbstring није пронађена, а чини се да ви користите вишебајтни скуп знакова. Без екстензије mbstring phpMyAdmin не може исправно да раздваја стрингове и то може довести до неочекиваних резултата.';
+$strMbOverloadWarning = 'У PHP подешавањима Вам је укључена mbstring.func_overload опција. Ова опција је некомпатибилна са phpMyAdmin и може довести до грешака у неким подацима!';
+$strMIME_available_mime = 'Доступни MIME-типови';
+$strMIME_available_transform = 'Доступне трансформације';
+$strMIME_description = 'Опис';
+$strMIME_MIMEtype = 'MIME-типови';
+$strMIME_nodescription = 'Нема описа за ову трансформацију.<br />Молимо питајте аутора шта %s ради.';
+$strMIME_transformation = 'Транформације читача';
+$strMIME_transformation_note = 'За листу доступних опција трансформације и њихове трансформације MIME-типова, кликните на %sописе трансформација%s';
+$strMIME_transformation_options_note = 'Молимо унесите вредности за опције трансформације користећи овај облик: \'a\', 100, b,\'c\'...<br />Ако треба да унесете обрнуту косу црту ("\\") или апостроф ("\'") у те вредности, ставите обрнуту косу црту испред њих (на пример \'\\\\xyz\' или \'a\\\'b\').';
+$strMIME_transformation_options = 'Опције трансформације';
+$strMIMETypesForTable = 'MIME ТИПОВИ ЗА ТАБЕЛУ';
+$strMIME_without = 'MIME-типови приказани у курзиву немају одвојене функције трансформације.';
+$strModifications = 'Измене су сачуване';
+$strModifyIndexTopic = 'Измени кључ';
+$strModify = 'Промени';
+$strMoveMenu = 'Премести мени';
+$strMoveTableOK = 'Табела %s је померена у %s.';
+$strMoveTableSameNames = 'Не могу да преместим табелу у саму себе!';
+$strMoveTable = 'Помери табелу у (база<b>.</b>табела):';
+$strMultilingual = 'вишејезички';
+$strMyISAMDataPointerSizeDesc = 'Подразумевана величина показивача у бајтовима, користи се при CREATE TABLE за MyISAM табеле када није задата опција MAX_ROWS';
+$strMyISAMDataPointerSize = 'Величина показивача података';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Ако би привремена датотека која се користи за брзо креирање MyISAM индекса била већа него при коришћењу кеша кључева за овде задату вредност, користи метод кеширања кључева';
+$strMyISAMMaxExtraSortFileSize = 'Максимална величина привремених датотека при креирању индекса';
+$strMyISAMMaxSortFileSizeDesc = 'Максимална величина привремених датотека које MySQL сме да користи при ре-креирању MyISAM индекса (у току REPAIR TABLE, ALTER TABLE, или LOAD DATA INFILE операција).';
+$strMyISAMMaxSortFileSize = 'Максимална величина привремених датотека за сортирање';
+$strMyISAMRecoverOptions = 'Режим аутоматског опоравка';
+$strMyISAMRecoverOptionsDesc = 'Режим аутоматског опоравка пукнутих MyISAM табела, подешен при стартовању сервера опцијом --myisam-recover.';
+$strMyISAMRepairThreadsDesc = 'Ако је вредност већа од 1, индекси MyISAM табела се паралелно креирају (сваки индекс у сопственој нити) за време процеса поправке сортирањем.';
+$strMyISAMRepairThreads = 'Нити поправке';
+$strMyISAMSortBufferSizeDesc = 'Прихватник који се алоцира при сортирању MyISAM индекса за време операције REPAIR TABLE или при креирању индекса са CREATE INDEX или ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Величина прихватника за сортирање';
+$strMySQLCharset = 'MySQL сет карактера';
+$strMysqlClientVersion = 'Верзија MySQL клијента';
+$strMySQLConnectionCollation = 'Сортирање за MySQL везу';
+$strMysqlLibDiffersServerVersion = 'Верзија ваше PHP MySQL библиотеке %s се разликује од верзије вашег MySQL сервера %s. Ово може довести до непредвидљивог понашања.';
+$strMySQLSaid = 'MySQL рече: ';
+$strMySQLShowProcess = 'Прикажи листу процеса';
+
+$strName = 'Име';
+$strNext = 'Следећи';
+$strNo = 'Не';
+$strNoActivity = 'Није било активности %s или више секунди, молимо пријавите се поново';
+$strNoDatabases = 'База не постоји';
+$strNoDatabasesSelected = 'Није изабрана ни једна база.';
+$strNoDataReceived = 'Нису примљени никави подаци за увоз. Или није био наведен назив датотеке, или величина датотеке превазилази максималну величину дозвољену у вашој конфигурацији PHP-а. Погледајте. See FAQ 1.16.';
+$strNoDescription = 'нема описа';
+$strNoDetailsForEngine = 'Нема детаљнијих информација о статусу за овај погон складиштења.';
+$strNoDropDatabases = '"DROP DATABASE" команда је онемогућена.';
+$strNoExplain = 'Прескочи објашњавање SQL-a';
+$strNoFilesFoundInZip = 'У ZIP архиви нема датотека!';
+$strNoFrames = 'phpMyAdmin преферира читаче који подржавају оквире.';
+$strNoIndex = 'Кључ није дефинисан!';
+$strNoIndexPartsDefined = 'Делови кључа нису дефинисани!';
+$strNoModification = 'Нема измена';
+$strNone = 'нема';
+$strNoOptions = 'Не постоје опције за овај формат';
+$strNoPassword = 'Нема лозинке';
+$strNoPermission = 'Веб серверу није дозвољено да сачува датотеку %s.';
+$strNoPhp = 'без PHP кода';
+$strNoPrivileges = 'Нема привилегија';
+$strNoRights = 'Није Вам дозвољено да будете овде!';
+$strNoRowsSelected = 'Нема одабраних редова';
+$strNoSpace = 'Недовољно простора за снимање датотеке %s.';
+$strNoTablesFound = 'Табеле нису пронађене у бази.';
+$strNoThemeSupport = 'Нема подршке за теме, молимо проверите конфигурацију и/или теме у директоријуму %s.';
+$strNotNumber = 'Ово није број!';
+$strNotOK = 'није у реду';
+$strNotSet = '<b>%s</b> табела није пронађена или није постављена у %s';
+$strNoUsersFound = 'Корисник није нађен.';
+$strNoValidateSQL = 'Прескочи проверу SQL-a';
+$strNull = 'Null';
+$strNumberOfFields = 'Број поља';
+$strNumberOfTables = 'Број табела';
+$strNumSearchResultsInTable = '%s погодака унутар табеле <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Укупно:</b> <i>%s</i> погодака';
+$strNumTables = 'Табеле';
+
+$strOK = 'У реду';
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Отвори нови phpMyAdmin прозор';
+$strOperations = 'Операције';
+$strOperator = 'Оператор';
+$strOptimizeTable = 'Оптимизуј табелу';
+$strOptions = 'Опције';
+$strOr = 'или';
+$strOverhead = 'Прекорачење';
+$strOverwriteExisting = 'Препиши постојеће датотеке';
+
+$strPageNumber = 'Број стране:';
+$strPagesToBeFlushed = 'Стране које треба да буду усклађене';
+$strPaperSize = 'Димензије папира';
+$strPartialImport = 'Делимични увоз';
+$strPartialText = 'Део текста';
+$strPasswordChanged = 'Лозинка за %s је успешно промењена.';
+$strPasswordEmpty = 'Лозинка је празна!';
+$strPasswordHashing = 'Хеширање лозинке';
+$strPasswordNotSame = 'Лозинке нису идентичне!';
+$strPassword = 'Лозинка';
+$strPdfDbSchema = 'Схема базе "%s" - Страна %s';
+$strPdfInvalidTblName = 'Табела "%s" не постоји!';
+$strPdfNoTables = 'Нема табела';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Прави извештај који садржи податке једне табеле)';
+$strPDFReportTitle = 'Наслов извештаја';
+$strPerHour = 'на сат';
+$strPerMinute = 'у минуту';
+$strPerSecond = 'у секунди';
+$strPersian = 'Персијски';
+$strPhoneBook = 'телефонски именик';
+$strPhp = 'Направи PHP код';
+$strPHPVersion = 'верзија PHP-a';
+$strPleaseSelectPrimaryOrUniqueKey = 'Молимо изаберите примарни или јединствени кључ';
+$strPmaDocumentation = 'phpMyAdmin документација';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> директива МОРА бити подешена у конфигурационој датотеци!';
+$strPolish = 'Пољски';
+$strPortrait = 'Усправно';
+$strPos1 = 'Почетак';
+$strPrevious = 'Претходна';
+$strPrimaryKeyHasBeenDropped = 'Примарни кључ је обрисан';
+$strPrimaryKeyName = 'Име примарног кључа мора да буде... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>мора</b> бити име <b>само</b> примарног кључа!)';
+$strPrimary = 'Примарни';
+$strPrint = 'Штампај';
+$strPrintViewFull = 'Поглед за штампу (са пуним текстом)';
+$strPrintView = 'За штампу';
+$strPrivDescAllPrivileges = 'Укључује све привилегије осим GRANT.';
+$strPrivDescAlterRoutine = 'Дозвољава измену и одбацивање сачуваних рутина.';
+$strPrivDescAlter = 'Дозвољава измену структура постојећих табела.';
+$strPrivDescCreateDb = 'Дозвољава креирање нових база и табела.';
+$strPrivDescCreateRoutine = 'Дозвољава прављење сачуваних рутина.';
+$strPrivDescCreateTbl = 'Дозвољава креирање нових табела.';
+$strPrivDescCreateTmpTable = 'Дозвољава креирање привремених табела..';
+$strPrivDescCreateUser = 'Дозвољава прављење, одбацивање и преименовање корисничких налога.';
+$strPrivDescCreateView = 'Дозволи креирање нових погледа.';
+$strPrivDescDelete = 'Дозвољава брисање података.';
+$strPrivDescDropDb = 'Дозвољава одбацивање база и табела.';
+$strPrivDescDropTbl = 'Дозвољава одбацивање табела.';
+$strPrivDescExecute5 = 'Дозвољава извршавање сачуваних рутина.';
+$strPrivDescExecute = 'Дозвољава покретање сачуваних процедура. Нема ефекта у овој верзији MySQL-a.';
+$strPrivDescFile = 'Дозвољава увоз података и њихов извоз у датотеке.';
+$strPrivDescGrant = 'Дозвољава додавање корисника и привилегија без поновног учитавања табела привилегија.';
+$strPrivDescIndex = 'Дозвољава креирање и брисање кључева.';
+$strPrivDescInsert = 'Дозвољава уметање и замену података.';
+$strPrivDescLockTables = 'Дозвољава закључавање табела текућим процесима.';
+$strPrivDescMaxConnections = 'Ограничава број нових конекција које корисник може та отвори на сат.';
+$strPrivDescMaxQuestions = 'Ограничава број упита које корисник може да упути серверу за сат.';
+$strPrivDescMaxUpdates = 'Ограничава број команди које мењају табеле или базе које корисник може да изврши на сат.';
+$strPrivDescMaxUserConnections = 'Ограничава број истовремених конекција које корисник може да има.';
+$strPrivDescReferences = 'Нема ефекта у овој верзији MySQL-a.';
+$strPrivDescReload = 'Дозвољава поновно учитавање подешавања сервера и пражњење кеша сервера.';
+$strPrivDescReplClient = 'Даје право кориснику да пита где су главни/помоћни сервери.';
+$strPrivDescReplSlave = 'Потребно због помоћних сервера за репликацију.';
+$strPrivDescSelect = 'Дозвољава читање података.';
+$strPrivDescShowDb = 'Даје приступ комплетној листи база.';
+$strPrivDescShowView = 'Дозвољава извршавање SHOW CREATE VIEW упита.';
+$strPrivDescShutdown = 'Дозвољава гашење сервера.';
+$strPrivDescSuper = ' Дозвољава повезивање иако је достигнут максималан број дозвољених веза; Неопходно за већину административних опција као што су подешавање глобалних променљивих или прекидање процеса осталих корисника.';
+$strPrivDescUpdate = 'Дозвољава измену података.';
+$strPrivDescUsage = 'Нема привилегија.';
+$strPrivileges = 'Привилегије';
+$strPrivilegesReloaded = 'Привилегије су успешно поново учитане.';
+$strProcedures = 'Процедуре';
+$strProcesses = 'Процеси';
+$strProcesslist = 'Листа процеса';
+$strProfiling = 'Профилисање';
+$strProtocolVersion = 'Верзија протокола';
+$strPutColNames = 'Стави имена поља у први ред';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Упит по примеру';
+$strQueryCache = 'Кеш упита';
+$strQueryFrame = 'Прозор за упите';
+$strQueryOnDb = 'SQL упит на бази <b>%s</b>:';
+$strQueryResultsOperations = 'Операције на резултатима упита';
+$strQuerySQLHistory = 'SQL историјат';
+$strQueryStatistics = '<b>Статистике упита</b>: %s упита је постављено серверу од његовог покретања.';
+$strQueryTime = 'Упит је трајао %01.4f секунди';
+$strQueryType = 'Врста упита';
+$strQueryWindowLock = 'Не преписуј овај упит изван прозора';
+
+$strReadRequests = 'Захтеви за читање';
+$strReceived = 'Примљено';
+$strRecommended = 'препоручено';
+$strRecords = 'Записи';
+$strReferentialIntegrity = 'Провери референцијални интегритет:';
+$strRefresh = 'Освежи';
+$strRelationalSchema = 'Релациона схема';
+$strRelationDeleted = 'Релација обрисана';
+$strRelationNotWorking = 'Додатне могућности за рад са повезаним табелама су искључене. Да бисте сазнали зашто, кликните %sовде%s.';
+$strRelations = 'Релације';
+$strRelationsForTable = 'РЕЛАЦИЈЕ ТАБЕЛЕ';
+$strRelationView = 'Релациони поглед';
+$strReloadingThePrivileges = 'Поново учитавам привилегије';
+$strReloadPrivileges = 'Поново учитај привилегије';
+$strReload = 'Поново учитај';
+$strRemoveSelectedUsers = 'Уклони изабране кориснике';
+$strRenameDatabaseOK = 'База %s је преименована у %s';
+$strRenameTable = 'Промени име табеле у ';
+$strRenameTableOK = 'Табели %s промењено име у %s';
+$strRepairTable = 'Поправи табелу';
+$strReplaceNULLBy = 'Замени NULL са';
+$strReplaceTable = 'Замени податке у табели са подацима из датотеке';
+$strReplication = 'Репликација';
+$strReset = 'Поништи';
+$strResourceLimits = 'Ограничења ресурса';
+$strRestartInsertion = 'Поново покрени уношење са %s редова';
+$strReType = 'Поновите унос';
+$strRevokeAndDeleteDescr = 'Корисници ће и даље имати USAGE привилегије док се привилегије поново не учитају.';
+$strRevokeAndDelete = 'Обустави све активне привилегије корисника и затим их обриши.';
+$strRevokeMessage = 'Забранили сте привилегије за %s';
+$strRevoke = 'Забрани';
+$strRomanian = 'Румунски';
+$strRoutineReturnType = 'Повратни тип';
+$strRoutines = 'Рутине';
+$strRowLength = 'Дужина реда';
+$strRows = 'Редова';
+$strRowsFrom = ' редова почев од реда';
+$strRowSize = 'Величина реда';
+$strRowsModeFlippedHorizontal = 'хоризонталном (ротирана заглавља)';
+$strRowsModeHorizontal = 'хоризонталном';
+$strRowsModeOptions = 'у %s моду и понови заглавље после сваког %s реда';
+$strRowsModeVertical = 'вертикалном';
+$strRowsStatistic = 'Статистике реда';
+$strRunning = 'на серверу %s';
+$strRunQuery = 'Изврши SQL упит';
+$strRunSQLQuery = 'Изврши SQL упит(е) на бази %s';
+$strRunSQLQueryOnServer = 'Изврши SQL упит(е) на серверу %s';
+$strRussian = 'Руски';
+
+$strSave = 'Сачувај';
+$strSaveOnServer = 'Сачувај на сервер у директоријум %s';
+$strSavePosition = 'Сачувај позицију';
+$strScaleFactorSmall = 'Фактор умањења је премали да би схема стала на једну страну';
+$strSearchFormTitle = 'Претраживање базе';
+$strSearchInTables = 'Унутар табела:';
+$strSearchNeedle = 'Речи или вредности које се траже (џокер: "%"):';
+$strSearch = 'Претраживање';
+$strSearchOption1 = 'бар једну од речи';
+$strSearchOption2 = 'све речи';
+$strSearchOption3 = 'тачан израз';
+$strSearchOption4 = 'као регуларни израз';
+$strSearchResultsFor = 'Резултати претраге за "<i>%s</i>" %s:';
+$strSearchType = 'Тражи:';
+$strSecretRequired = 'Конфигурациона датотека захтева тајну лозинку (blowfish_secret).';
+$strSelectADb = 'Изаберите базу';
+$strSelectAll = 'Изабери све';
+$strSelectBinaryLog = 'Изаберите бинарни дневник за преглед';
+$strSelectFields = 'Изабери поља (најмање једно)';
+$strSelectForeignKey = 'Изабери страни кључ';
+$strSelectNumRows = 'у упиту';
+$strSelectReferencedKey = 'Изаберите референцирани кључ';
+$strSelectTables = 'Изабери табеле';
+$strSend = 'Сачувај као датотеку';
+$strSent = 'Послато';
+$strServerChoice = 'Избор сервера';
+$strServer = 'Сервер';
+$strServerNotResponding = 'Сервер не одговара';
+$strServers = 'Сервери';
+$strServerStatusDelayedInserts = 'Одложена уметања';
+$strServerStatus = 'Информације о току рада';
+$strServerStatusUptime = 'Овај MySQL сервер ради већ %s. Покренут је %s.';
+$strServerTabVariables = 'Променљиве';
+$strServerTrafficNotes = '<b>Саобраћај сервера</b>: Табеле показују статистике мрежног саобраћаја на овом MySQL серверу од његовог покретања.';
+$strServerVars = 'Серверске променљиве и подешавања';
+$strServerVersion = 'Верзија сервера';
+$strSessionStartupErrorGeneral = 'Не могу да покренем сесију без грешака, молим проверите грешке у PHP и/или дневнику веб сервера и прописно подесите вашу PHP инсталацију.';
+$strSessionValue = 'Вредност сесије';
+$strSetEnumVal = 'Ако је поље "enum" или "set", унесите вредности у формату: \'a\',\'b\',\'c\'...<br />Ако вам треба обрнута коса црта ("\\") или апостроф ("\'") користите их у "избегнутом" (escaped) облику (на пример \'\\\\xyz\' или \'a\\\'b\').';
+$strShowAll = 'Прикажи све';
+$strShowColor = 'Прикажи боју';
+$strShowDatadictAs = 'Формат речника података';
+$strShowFullQueries = 'Прикажи комплетне упите';
+$strShowGrid = 'Прикажи мрежу';
+$strShowHideLeftMenu = 'Прикажи/сакриј мени с леве стране';
+$strShowingBookmark = 'Приказивање маркера';
+$strShowingPhp = 'Приказ као PHP код';
+$strShowingRecords = 'Приказ записа';
+$strShowingSQL = 'Приказ као SQL упит';
+$strShow = 'Прикажи';
+$strShowOpenTables = 'Прикажи отворене табеле';
+$strShowPHPInfo = 'Прикажи информације о PHP-у';
+$strShowSlaveHosts = 'Прикажи подређене сервер';
+$strShowSlaveStatus = 'Прикажи статус подређених сервера';
+$strShowStatusBinlog_cache_disk_useDescr = 'Број транксакција које су користиле кеш привременог бинарног дневника али су превазишле вредност у binlog_cache_size и користиле привремену датотеку да сместе изразе из трансакције.';
+$strShowStatusBinlog_cache_useDescr = 'Број трансакција које су користиле кеш привременог бинарног дневника.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Број привремених табела које је сервер аутоматски креирао на диску док је извршавао изразе. Ако је Created_tmp_disk_tables велико, можда треба да повећате вредност tmp_table_size како би учинили да привремене табеле буду базиране у меморији уместо на диску.';
+$strShowStatusCreated_tmp_filesDescr = 'Колико привремених датотека је mysqld направио.';
+$strShowStatusCreated_tmp_tablesDescr = 'Број привремених табела које је сервер аутоматски креирао у меморији док је извршавао изразе.';
+$strShowStatusDelayed_errorsDescr = 'Број редова уписаних са INSERT DELAYED за које је јављена нека грешка (вероватно дуплирани кључ).';
+$strShowStatusDelayed_insert_threadsDescr = 'Број INSERT DELAYED руковалачких нити у употреби. Свака посебна табела над којом се користи INSERT DELAYED добија своју нит.';
+$strShowStatusDelayed_writesDescr = 'Број уписаних INSERT DELAYED редова.';
+$strShowStatusFlush_commandsDescr = 'Број извршених FLUSH израза.';
+$strShowStatusHandler_commitDescr = 'Број интерних COMMIT израза.';
+$strShowStatusHandler_deleteDescr = 'Број брисања неког реда табеле.';
+$strShowStatusHandler_discoverDescr = 'MySQL сервер може да упита погон складиштења NDB Cluster да ли зна за табелу одређеног имена. То се назива откривањем (discovery). Handler_discover означава број пута када је откривена табела.';
+$strShowStatusHandler_read_firstDescr = 'Број пута када је прва ставка прочитана из индекса. Ако је ово високо, то може значити да сервер ради пуно пуних скенирања индекса; на пример SELECT кол1 FROM нешто, под претпоставком да је кол1 индексирано.';
+$strShowStatusHandler_read_keyDescr = 'Број захтева за читање реда заснованих на кључу. Ако је овај број висок, то је добар показатељ да су ваши упити и табеле прописно индексирани.';
+$strShowStatusHandler_read_nextDescr = 'Број захтева за читањем следећег реда у поретку кључева. Ово се повећава када радите упит по колони индекса са ограничењем опсега или ако радите скенирање индекса.';
+$strShowStatusHandler_read_prevDescr = 'Број захтева за читањем претходног реда у поретку кључева. Ова метода читања се углавном користи за оптимизацију ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Број захтева за читање реда заснованих на фиксној позицији. Ово је високо ако радите много упита који захтевају сортирање резултата. Вероватно имате много упита који захтевају да MySQL скенира целе табеле или имате спојеве који не користе кључеве прописно.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Број захтева за читањем следећег реда из датотеке података. Ово је високо ако радите пуно скенирања табела. Ово обично наговештава да ваше табеле нису прописно индексиране или да ваши упити нису написани да искористе већ постојеће индексе.';
+$strShowStatusHandler_rollbackDescr = 'Број интерних ROLLBACK израза.';
+$strShowStatusHandler_updateDescr = 'Број захтева за ажурирање реда у табели.';
+$strShowStatusHandler_writeDescr = 'Број захтева за уписивање реда у табелу.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Број страна које садрже податке (чистих или прљавих).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Број страна које су тренутно прљаве.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Број страна у остави бафера за које је тражено да буду очишћене.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Број слободних страна.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Број забрављених страна у InnoDB остави бафера. Са ових страна се тренутно чита или се у њих уписује или из неког другог разлога не могу бити очишћене нити уклоњене.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Број страна које су заузете зато што су одвојене за административне потребе, као што су закључавање редова или индекс прилагодљивог хеша. Ова вредност се такође може израчунати и на следећи начин Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Пуна величина оставе бафера, у странама.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Број „насумичних“ пред-читања која је InnoDB покренуо. Ово се дешава када упит треба да скенира велики део табеле али насумичним редоследом.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Број секвенцијалних пред-читања која је InnoDB покренуо. Ово се дешава када InnoDB ради секвенцијално скенирање целе табеле.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Број логичких захтева за читање које је InnoDB урадио.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Број логичких читања која InnoDB није могао да задовољи из оставе бафера те је морао да ради читање појединачне стране.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Нормално се уписи у InnoDB оставу бафера дешавају у позадини. Међутим, ако је неопходно прочитати или направити страну а нема доступних чистих страна, неопходно је сачекати да се стране претходно очисте. Овај бројач броји дешавања ових чекања. Ако је величина оставе бафера постављена како треба, ова вредност ви требало да је ниска.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Број уписа учињених у InnoDB оставу бафера.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Број fsync() операција до сада.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Тренутни број fsync() операција на чекању.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Тренутни број читања на чекању.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Тренутни број уписа на чекању.';
+$strShowStatusInnodb_data_readDescr = 'Количина података прочитаних до сада, у бајтовима.';
+$strShowStatusInnodb_data_readsDescr = 'Укупан број читања података.';
+$strShowStatusInnodb_data_writesDescr = 'Укупан број уписа података.';
+$strShowStatusInnodb_data_writtenDescr = 'Количина података уписаних до сада, у бајтовима';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Број извршених двоуписних (doublewrite) уписа и број страна које су уписане у ову сврху.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Број извршених двоуписних (doublewrite) уписа и број страна које су уписане у ову сврху.';
+$strShowStatusInnodb_log_waitsDescr = 'Број чекања која смо имали зато што је бафер дневника био премали те смо морали да сачекамо да буде очишћен пре наставка.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Број захтева за упис у дневник.';
+$strShowStatusInnodb_log_writesDescr = 'Број физичких уписа у датотеку дневника.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Број fsyncs уписа начињених у датотеку дневника.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Број fsync-ова за датотеку дневника на чекању.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Број уписа у датотеку дневника на чекању.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Број бајтова уписаних у датотеку дневника.';
+$strShowStatusInnodb_pages_createdDescr = 'Број направљених страна.';
+$strShowStatusInnodb_page_sizeDescr = 'Укомпајлирана величина стране за InnoDB (подразумевано 16КБ). Многе вредности се рачунају у странама; величина стране омогућава да се оне лако конвертују у бајтове.';
+$strShowStatusInnodb_pages_readDescr = 'Број прочитаних страна.';
+$strShowStatusInnodb_pages_writtenDescr = 'Број записаних страна.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Број брава за редове које се тренутно чекају.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Просечно време за добављање браве за ред, у милисекундама.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Укупно времена проведено у добављању брава за редове, у милисекундама.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Најдуже време за добављање браве за ред, у милисекундама.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Број пута када се морала чекати брава за ред.';
+$strShowStatusInnodb_rows_deletedDescr = 'Број редова обрисаних из InnoDB табела.';
+$strShowStatusInnodb_rows_insertedDescr = 'Број редова уметнутих у InnoDB табеле.';
+$strShowStatusInnodb_rows_readDescr = 'Број редова прочитаних из InnoDB табела.';
+$strShowStatusInnodb_rows_updatedDescr = 'Број редова ажурираних у InnoDB табелама.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Број блокова кључева у кешу кључева који су измењени али још нису послати на диск. Ово је раније било познато као Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Број неискоришћених блокова у кешу кључева. Ову вредност можете да користите да утврдите колики део кеша кључева је у употреби.';
+$strShowStatusKey_blocks_usedDescr = 'Број искоришћених блокова у кешу кључева. Ова вредност је ознака „високог водостаја“ која показује највећи икада број блокова који је био у употреби у исто време.';
+$strShowStatusKey_read_requestsDescr = 'Број захтева за читање блока кључева из кеша.';
+$strShowStatusKey_readsDescr = 'Број физичких читања блока кључева са диска. Ако је Key_reads велико, онда је ваша вредност за key_buffer_size вероватно премала. Степен промашаја кеша се може израчунати као Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Број захтева за уписивање блока кључева у кеш.';
+$strShowStatusKey_writesDescr = 'Број физичких уписа блока кључева на диск.';
+$strShowStatusLast_query_costDescr = 'Укупна цена последњег компајлираног упита како ју је израчунао оптимизатор упита. Корисно за упоређивање цене различитих планова упита за исти упит. Подразумевана вредност 0 значи да још није био компајлиран ниједан упит.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Број редова у INSERT DELAYED редовима чекања који чекају уписивање.';
+$strShowStatusOpened_tablesDescr = 'Број табела које су биле отваране. Ако је број велики, ваш кеш табела је вероватно премали.';
+$strShowStatusOpen_filesDescr = 'Број отворених датотека.';
+$strShowStatusOpen_streamsDescr = 'Број отворених токова (користи се првенствено за вођење дневника (logging)).';
+$strShowStatusOpen_tablesDescr = 'Број отворених табела.';
+$strShowStatusQcache_free_blocksDescr = 'Број слободних меморијских блокова у у кешу упита.';
+$strShowStatusQcache_free_memoryDescr = 'Количина слободне меморије за кеш упита.';
+$strShowStatusQcache_hitsDescr = 'Број погодака из кеша.';
+$strShowStatusQcache_insertsDescr = 'Број упита додатих у кеш.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Број упита који су уклоњени из кеша да би се ослободила меморија за кеширање нових упита. Овај податак вам може помоћи да подесите величину кеша за упите. Кеш за упите користи стратегију најдуже некоришћеног (en: least recently used , LRU) да би одлучио које упите да уклони из кеша.';
+$strShowStatusQcache_not_cachedDescr = 'Број некешираних упита (који се не могу кеширати или нису кеширани због подешавања query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Број упита регистрованих у кешу.';
+$strShowStatusQcache_total_blocksDescr = 'Укупан број блокова у кешу за упите.';
+$strShowStatusReset = 'Ресет';
+$strShowStatusRpl_statusDescr = 'Статус репликације отпорне на грешке (није још имплементирано).';
+$strShowStatusSelect_full_joinDescr = 'Број спојева који не користе индексте. Ако ова вредност није 0, требало би пажљиво да проверите индексе ваших табела.';
+$strShowStatusSelect_full_range_joinDescr = 'Број спојева који су користили претрагу опсега на референтној табели.';
+$strShowStatusSelect_range_checkDescr = 'Број спојева без кључева који проверавају употребу кључа после сваког реда. (Ако ово није 0, требало би пажљиво да проверите индексе ваших табела.)';
+$strShowStatusSelect_rangeDescr = 'Број спојева који су користили опсеге на првој табели. (Обично није критично чак ни када је ово велико)';
+$strShowStatusSelect_scanDescr = 'Број спојева који су урадили пуно скенирање прве табеле.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Број привремених табела тренутно отворених од стране помоћне SQL нити.';
+$strShowStatusSlave_retried_transactionsDescr = 'Укупан број пута (од покретања) када је помоћна SQL нит за репликацију покушала трансакције.';
+$strShowStatusSlave_runningDescr = 'Ово је ON ако је овај сервер помоћни који је повезан на главни.';
+$strShowStatusSlow_launch_threadsDescr = 'Број нити за које је требало више од slow_launch_time секудни да би биле покренуте.';
+$strShowStatusSlow_queriesDescr = 'Број упита за које је требало више од long_query_time секудни.';
+$strShowStatusSort_merge_passesDescr = 'Број пролаза за спајање које је алгоритам за сортирање морао да одради. Ако је ова вредност велика, требало би да размислите о повећању вредности системске променљиве sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Број сортирања која су урађена са опсегом.';
+$strShowStatusSort_rowsDescr = 'Број сортираних редова.';
+$strShowStatusSort_scanDescr = 'Број сортирања до којих је дошло скенирањем табеле.';
+$strShowStatusTable_locks_immediateDescr = 'Број пута када је брава за табелу одмах добављена.';
+$strShowStatusTable_locks_waitedDescr = 'Број пута када брава за табелу није могла бити одмах добављена и било је потребно чекање. Ако је ово високо и имате проблема са перформансама, прво би требало да оптимизујете своје упите а потом да или поделите табелу или табеле или да користите репликацију.';
+$strShowStatusThreads_cachedDescr = 'Број нити у кешу за нити. Степен погодака кеша се може израчунати као Threads_created/Конекције. Ако је ова вредност црвена требало би да повећате ваш thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Број тренутно отворених веза.';
+$strShowStatusThreads_createdDescr = 'Број нити креираних за руковање конекцијама. Ако је Threads_created велико, можда би требало да повећате вредност thread_cache_size. (Ако имате добру имплементацију нити, ово обично не доноси приметна побољшања у перформансама.)';
+$strShowStatusThreads_runningDescr = 'Број нити које нису успаване.';
+$strShowTableDimension = 'Прикажи димензије табеле';
+$strShowTables = 'Прикажи табеле';
+$strShowThisQuery = 'Прикажи поново овај упит';
+$strSimplifiedChinese = 'Поједностављени кинески';
+$strSingly = '(по једном пољу)';
+$strSize = 'Величина';
+$strSkipQueries = 'Број записа (упита) које треба прескочити:';
+$strSlovak = 'Словачки';
+$strSlovenian = 'Словеначи';
+$strSmallBigAll = 'Све мало/велико';
+$strSnapToGrid = 'Држи се мреже';
+$strSocketProblem = '(или прикључак локалног MySQL сервера није исправно подешен)';
+$strSortByKey = 'Сортирај по кључу';
+$strSorting = 'Сортирање';
+$strSort = 'Сортирање';
+$strSpaceUsage = 'Заузеће';
+$strSpanish = 'Шпански';
+$strSplitWordsWithSpace = 'Речи се одвајају размаком (" ").';
+$strSQLCompatibility = 'Мод SQL компатибилности';
+$strSQLExportType = 'Тип извоза';
+$strSQLParserBugMessage = 'Постоји могућност да сте пронашли баг у SQL парсеру. Молимо испитајте свој упит пажљиво, и проверите да су наводници исправни и да не недостају. Остали могући разлози грешке могу бити да сте послали бинарну датотеку ван области за обичан текст. Можете пробати свој упит у MySQL сучељу командне линије. Доња порука о грешци MySQL сервера, ако је има, може вам помоћи у откривању проблема. Ако и даље имате проблеме или ако парсер не успева тамо где успева сучеље командне линије, сведите свој SQL упит на један једини упит који ствара проблеме и пошаљите нам извештај о грешци са делом кода у доњој РЕЗ секцији:';
+$strSQLParserUserError = 'Изгледа да постоји грешка у вашем SQL упиту. Овде је порука о грешки MySQL сервера, која вам може помоћи у откривању проблема';
+$strSQLQuery = 'SQL упит';
+$strSQLResult = 'SQL резултат';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Неисправан иГ¤ентификатор';
+$strSQPBugUnclosedQuote = 'Наводник није затворен';
+$strSQPBugUnknownPunctuation = 'Непознат стринг интерпункције';
+$strStandInStructureForView = 'Структура која замењује поглед';
+$strStatCheckTime = 'Последња провера';
+$strStatCreateTime = 'Направљено';
+$strStatement = 'Име';
+$strStatisticsOverrun = 'На запосленом серверу бројачи бајтова могу да се прелију (overrun), тако да те статистике, онако како их пријављује MySQL сервер, могу бити нетачне.';
+$strStatUpdateTime = 'Последња измена';
+$strStatus = 'Статус';
+$strStorageEngines = 'Погони складиштења';
+$strStorageEngine = 'Погон складиштења';
+$strStrucCSV = 'CSV формат';
+$strStrucData = 'Структура и подаци';
+$strStrucExcelCSV = 'CSV за MS Excel';
+$strStrucNativeExcel = 'Изворни MS Excel подаци';
+$strStrucOnly = 'Само структура';
+$strStructPropose = 'Предложи структуру табеле';
+$strStructureForView = 'Структура за поглед (view)';
+$strStructure = 'Структура';
+$strSubmit = 'Пошаљи';
+$strSuccess = 'Ваш SQL упит је успешно извршен';
+$strSum = 'Укупно';
+$strSwedish = 'Шведски';
+$strSwitchToDatabase = 'Пребаци се на копирану базу';
+$strSwitchToTable = 'Пређи на копирану табелу';
+
+$strTable = 'Табела';
+$strTableAlreadyExists = 'Табела %s већ постоји!';
+$strTableComments = 'Коментари табеле';
+$strTableEmpty = 'Има табеле је празно!';
+$strTableHasBeenDropped = 'Табела %s је одбачена';
+$strTableHasBeenEmptied = 'Табела %s је испражњена';
+$strTableHasBeenFlushed = 'Табела %s је освежена';
+$strTableIsEmpty = 'Табела је изгледа празна!';
+$strTableMaintenance = 'Радње на табели';
+$strTableName = 'Назив табеле';
+$strTableOfContents = 'Садржај';
+$strTableOptions = 'Опције табеле';
+$strTables = '%s табела';
+$strTableStructure = 'Структура табеле';
+$strTakeIt = 'преузми';
+$strTblPrivileges = 'Привилегије везане за табеле';
+$strTempData = 'Привремени подаци';
+$strTextAreaLength = 'Због њехове величине, поље<br />можда нећете моћи да измените';
+$strThai = 'Тајски';
+$strThemeDefaultNotFound = 'Није пронађена подразумевана тема %s!';
+$strThemeNoPreviewAvailable = 'Преглед не постоји.';
+$strThemeNotFound = 'Није пронађена тема %s!';
+$strThemeNoValidImgPath = 'Нема исправне путање до слика за тему %s!';
+$strTheme = 'Тема / стил';
+$strThemePathNotFound = 'Није пронађена путања до теме за тему %s!';
+$strThisHost = 'Овај сервер';
+$strThreadSuccessfullyKilled = 'Процес %s је успешно прекинут.';
+$strThreads = 'Нити';
+$strTime = 'Време';
+$strTimeoutInfo = 'Претходном увозу је истекло време, након поновног слања биће настављен од позиције %d.';
+$strTimeoutNothingParsed = 'Међутим, при последњем покретању подаци нису били обрађени, што обично значи да phpMyAdmin неће бити у могућности да заврши овај увоз осим ако не повећате временска ограничења у PHP-у';
+$strTimeoutPassed = 'Време извршења скрипта је истекло, ако желите да довршите увоз, молимо пошаљите исту датотеку и увоз ће се наставити.';
+$strToFromPage = 'од/до странице';
+$strToggleScratchboard = 'Укључи/искључи радну таблу';
+$strToggleSmallBig = 'Промени мало/велико';
+$strToSelectRelation = 'Да одаберете релацију, кликните :';
+$strTotal = 'укупно';
+$strTotalUC = 'Укупно';
+$strTraditionalChinese = 'Традиционални кинески';
+$strTraditionalSpanish = 'Традиционални шпански';
+$strTraffic = 'Саобраћај';
+$strTransactionCoordinator = 'Координатор трансакција';
+$strTransformation_application_octetstream__download = 'Приказује везу за преузимање бинарних података за поље. Прва опција је име бинарне датотеке. Друга опција је могуће име поља реда табеле који садржи име датотеке. Ако дате другу опцију, прва мора бити постављена на празан стринг';
+$strTransformation_application_octetstream__hex = 'Приказује хексадецимални приказ података. Опциони први параметар одређује колико често се додаје празно место (подразумевано свака 2 нибла).';
+$strTransformation_image_jpeg__inline = 'Приказује умањену слику на коју је могуће кликнути; опције: ширина, висина у пикселима (чува оригинални однос)';
+$strTransformation_image_jpeg__link = 'Приказује линк ка овој снимци (нпр. директно преузимање из BLOB-а).';
+$strTransformation_image_png__inline = 'Прикажи JPEG слике на страни';
+$strTransformation_text_plain__dateformat = 'Приказује TIME, TIMESTAMP, DATETIME или поље са нумеричком јуникс временском ознаком (timestamp) као форматирани датум. Прва опција је померај (у сатима) који се додаје временској ознаци (подразумевамо: 0). Другу опцију користитте да одредите другачији стринг за форматирање датума/времена. Трећа опција одређује да ли желите да видите локални или UTC датум (користите стрингове "local" или "utc" за то). У складу са тим, формат датума има различите вредности - за "local" погледајте PHP-ову документацију за функцију strftime() док је за "utc" то урађено коришћењем фукције gmdate().';
+$strTransformation_text_plain__external = 'САМО LINUX: Покреће екстерну апликацију и попуњава податке у пољима преко стандардног улаза. Враћа стандардни излаз апликације. Подразумевано је Tidy, за лепши приказ HTML кода. Због сигурносних разлога, морате ручно изменити датотеку libraries/transformations/text_plain__external.inc.php и додати алате које желите да користите. Прва опција је број програма које желите да користите, а друга су параметри програма. Ако се трећи параметар постави на 1 излаз ће бити конвертован користећи htmlspecialchars() (подразумевано је 1). Ако је четврти параметар постављен на 1, NOWRAP ће бити додато ћелији са садржајем тако да ће излаз бити приказан без измена. (подразумевано 1)';
+$strTransformation_text_plain__formatted = 'Чува оригинално форматирање поља. Escaping се не врши.';
+$strTransformation_text_plain__imagelink = 'Приказује слику и линк, поље садржи назив датотеке; прва опција је префикс као "http://domain.com/", друга опција је ширина у пикселима, трећа је висина.';
+$strTransformation_text_plain__link = 'Приказује линк, поље садржи назив датотеке; прва опција је префикс као "http://domain.com/", друга опција је наслов за линк.';
+$strTransformation_text_plain__sql = 'Форматира текст као SQL упит са обележавањем синтаксе.';
+$strTransformation_text_plain__substr = 'Показује део стринга. Прва опција је број знакова које треба прескочити од почетка стринга (подразумевано 0). Друга опција је број враћених знакова (подразумевано: до краја стринга). Трећа опција је стринг који се додаје када дође до одсецања (подразумевано: ...) .';
+$strTriggers = 'Окидачи';
+$strTruncateQueries = 'Прикажи скраћене упите';
+$strTurkish = 'Турски';
+$strType = 'Тип';
+
+$strUkrainian = 'Украјински';
+$strUncheckAll = 'ниједно';
+$strUnicode = 'Уникод';
+$strUnique = 'Јединствени';
+$strUnknown = 'непознат';
+$strUnselectAll = 'ништа';
+$strUnsupportedCompressionDetected = 'Покушали сте да увезете датотеку са компресијом која није подржана (%s). Или подршка за њу није имплементирана, или је искључена у вашој конфигурацији.';
+$strUpdatePrivMessage = 'Ажурирали сте привилегије за %s.';
+$strUpdateProfileMessage = 'Профил је промењен.';
+$strUpdateQuery = 'Ажурирај упит';
+$strUpdComTab = 'Молимо погледајте у документацији како се ажурира табела Column_comments';
+$strUpgrade = 'Требало би да унапредите ваш %s сервер на верзију %s или новију.';
+$strUploadErrorCantWrite = 'Неуспело уписивање датотеке на диск.';
+$strUploadErrorExtension = 'Пријем датотеке заустављен због екстензије.';
+$strUploadErrorFormSize = 'Послата датотека превазилази вредност директиве MAX_FILE_SIZE која је наведена у HTML форми.';
+$strUploadErrorIniSize = 'Послата датотека превазилази вредност директиве upload_max_filesize у php.ini.';
+$strUploadErrorNoTempDir = 'Недостаје привремени директоријум.';
+$strUploadErrorPartial = 'Послата датотека је само делимично примљена.';
+$strUploadErrorUnknown = 'Непозната грешка при слању датотеке.';
+$strUploadLimit = 'Вероватно сте покушали да увезете превелику датотеку. Молимо погледајте %sдокументацију%s за начине превазилажења овог ограничења.';
+$strUploadsNotAllowed = 'Слање датотека на овај сервер није дозвољено.';
+$strUsage = 'Заузеће';
+$strUseBackquotes = 'Користи \' за ограничавање имена поља';
+$strUseHostTable = 'Користи табелу домаћина';
+$strUserAlreadyExists = 'Корисник %s већ постоји!';
+$strUserEmpty = 'Име корисника није унето!';
+$strUserName = 'Име корисника';
+$strUserNotFound = 'Изабрани корисник није пронађен у табели привилегија.';
+$strUserOverview = 'Преглед корисника';
+$strUsersDeleted = 'Изабрани корисници су успешно обрисани.';
+$strUsersHavingAccessToDb = 'Корисници који имају приступ &quot;%s&quot;';
+$strUser = 'Корисник';
+$strUseTabKey = 'Користите TAB тастер за померање од поља до поља, или CTRL+стрелице за слободно померање';
+$strUseTables = 'Користи табеле';
+$strUseTextField = 'Користи текст поље';
+$strUseThisValue = 'Користи ову вредност';
+
+$strValidateSQL = 'Провери SQL';
+$strValidatorError = 'SQL валидатор није могао да буде покренут. Проверите да ли су инсталиране неопходне PHP екстензије описане у %sдокументацији%s.';
+$strValue = 'Вредност';
+$strVar = 'Променљива';
+$strVersionInformation = 'Информације о верзији';
+$strViewDumpDatabases = 'Прикажи садржај (схему) базе';
+$strViewDumpDB = 'Прикажи садржај (схему) базе';
+$strViewDump = 'Прикажи садржај (схему) табеле';
+$strViewHasBeenDropped = 'Поглед %s је одбачен';
+$strViewName = 'назив за VIEW';
+$strView = 'Поглед';
+
+$strWebServerUploadDirectoryError = 'Директоријум који сте изабрали за слање није доступан';
+$strWebServerUploadDirectory = 'директоријум за слање веб сервера ';
+$strWelcome = 'Добродошли на %s';
+$strWestEuropean = 'Западноевропски';
+$strWildcard = 'џокер';
+$strWindowNotFound = 'Одредишни прозор претраживача није могао да буде ажуриран. Можда сте затворили матични прозор, или ваш претраживач онемогућава ажурирање међу прозорима због сигурносних подешавања';
+$strWithChecked = 'Означено:';
+$strWriteRequests = 'Захтеви за упис';
+$strWrongUser = 'Погрешно корисничко име/лозинка. Приступ одбијен.';
+
+$strXML = 'XML';
+
+$strYes = 'Да';
+
+$strZeroRemovesTheLimit = 'Напомена: Постављање ових опција на 0 (нулу) уклања ограничења.';
+$strZip = '"зиповано"';
+
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/serbian_latin-utf-8.inc.php b/lang/serbian_latin-utf-8.inc.php
new file mode 100644
index 0000000000..e1002f17e0
--- /dev/null
+++ b/lang/serbian_latin-utf-8.inc.php
@@ -0,0 +1,1447 @@
+<?php
+/* $Id$ */
+
+/**
+ * Translated by:
+ * Mihailo Stefanovic <mikis@users.sourceforge.net>, Branislav Jovanovic <fangorn@eunet.yu>
+ * Igor Mladenovic <mligor@zimco.com>, David Trajkovic <tdavid@ptt.yu>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('bajtova', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub');
+$month = array('jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d. %B %Y. u %H:%M';
+$timespanfmt = '%s dana, %s sati, %s minuta i %s sekundi';
+
+$strAbortedClients = 'Prekinuto';
+$strAccessDeniedCreateConfig = 'Verovatan razlog za ovo je da niste napravili konfiguracionu datoteku. Možete koristiti %1$sskript za instalaciju%2$s da biste je napravili.';
+$strAccessDeniedExplanation = 'phpMyAdmin je pokušao da se poveže na MySQL server, ali je server odbio povezivanje. Proverite naziv domaćina, korisničko ime i lozinku u config.inc.php i uverite se da odgovaraju podacima koje ste dobili od administratora MySQL servera.';
+$strAccessDenied = 'Pristup odbijen';
+$strAction = 'Akcija';
+$strAddAutoIncrement = 'Dodaj AUTO_INCREMENT vrednost';
+$strAddClause = 'Dodaj %s';
+$strAddConstraints = 'Dodaj ograničenja';
+$strAddDeleteColumn = 'Dodaj/obriši kolonu';
+$strAddDeleteRow = 'Dodaj/obriši polje za kriterijum';
+$strAddFields = 'Dodaj %s polja';
+$strAddHeaderComment = 'Dodaj komentar u zaglavlje (\\n razdvaja linije)';
+$strAddIntoComments = 'Dodaj u komentare';
+$strAddNewField = 'Dodaj novo polje';
+$strAddPrivilegesOnDb = 'Dodaj privilegije na sledećoj bazi';
+$strAddPrivilegesOnTbl = 'Dodaj privilegije na sledećoj tabeli';
+$strAddSearchConditions = 'Dodaj uslove pretraživanja (deo "WHERE" upita):';
+$strAddToIndex = 'Dodaj u ključ &nbsp;%s&nbsp;kolona(e)';
+$strAddUser = 'Dodaj novog korisnika';
+$strAddUserMessage = 'Dodali ste novog korisnika.';
+$strAdministration = 'Administracija';
+$strAfterInsertBack = 'Nazad na prethodnu stranu';
+$strAfterInsertNewInsert = 'Dodaj još jedan novi red';
+$strAfterInsertNext = 'Uredi sledeći red';
+$strAfterInsertSame = 'Vrati se na ovu stranu';
+$strAfter = 'Posle %s';
+$strAllowInterrupt = 'Dozvoljava prekid uvoza u slučaju da skript otkrije da je blizu vremenskog ograničenja. Ovo može biti dobar način uvoza velikih datoteka, ali sa druge strane može pokvariti transakcije.';
+$strAll = 'Sve';
+$strAllTableSameWidth = 'Prikaz svih tabela iste širine?';
+$strAlterOrderBy = 'Promeni redosled u tabeli';
+$strAnalyzeTable = 'Analiziraj tabelu';
+$strAnd = 'i';
+$strAndThen = 'i onda';
+$strAngularLinks = 'Uglaste veze';
+$strAnIndex = 'Ključ je upravo dodat %s';
+$strAny = 'Bilo koji';
+$strAnyHost = 'Bilo koji domaćin';
+$strAnyUser = 'Bilo koji korisnik';
+$strApproximateCount = 'Može biti približno. Vidite FAQ 3.11';
+$strAPrimaryKey = 'Primarni ključ je upravo dodat %s';
+$strArabic = 'Arapski';
+$strArmenian = 'Jermenski';
+$strAscending = 'Rastući';
+$strAtBeginningOfTable = 'Na početku tabele';
+$strAtEndOfTable = 'Na kraju tabele';
+$strAttr = 'Atributi';
+$strAutomaticLayout = 'Automatski raspored';
+
+$strBack = 'Nazad';
+$strBaltic = 'Baltički';
+$strBeginCut = 'POČETAK REZ';
+$strBeginRaw = 'POČETAK SIROVO';
+$strBinary = 'Binarni';
+$strBinaryDoNotEdit = 'Binarni - ne menjaj';
+$strBinaryLog = 'Binarni dnevnik';
+$strBinLogEventType = 'Vrsta događaja';
+$strBinLogInfo = 'Informacije';
+$strBinLogName = 'Naziv dnevnika';
+$strBinLogOriginalPosition = 'Originalna pozicija';
+$strBinLogPosition = 'Pozicija';
+$strBinLogServerId = 'ID servera';
+$strBookmarkAllUsers = 'Dozvoli svakom korisniku da pristupa ovom upamćenom upitu';
+$strBookmarkCreated = 'Napravljen marker %s';
+$strBookmarkDeleted = 'Obeleživač je upravo obrisan.';
+$strBookmarkLabel = 'Naziv';
+$strBookmarkQuery = 'Zapamćen SQL-upit';
+$strBookmarkReplace = 'Zameni postojeće zapamćene upite istog imena';
+$strBookmarkThis = 'Zapamti SQL-upit';
+$strBookmarkView = 'Vidi samo';
+$strBrowseDistinctValues = 'Pregledaj različite vrednosti';
+$strBrowseForeignValues = 'Pregledaj strane vrednosti';
+$strBrowse = 'Pregled';
+$strBufferPoolActivity = 'Aktivnost skupa prihvatnika';
+$strBufferPool = 'Skup prihvatnika';
+$strBufferPoolUsage = 'Korišćenje skupa prihvatnika';
+$strBufferReadMissesInPercent = 'Promašaji čitanja u %';
+$strBufferReadMisses = 'Promašaji pri čitanju';
+$strBufferWriteWaits = 'Čekanja na upis';
+$strBufferWriteWaitsInPercent = 'Čekanja na upis u %';
+$strBulgarian = 'Bugarski';
+$strBusyPages = 'Zauzete strane';
+$strBzip = '"bzip-ovano"';
+
+$strCalendar = 'Kalendar';
+$strCancel = 'Otkaži';
+$strCanNotLoadExportPlugins = 'Nije moguće učitati dodatke za izvoz, molimo proverite svoju instalaciju!';
+$strCanNotLoadImportPlugins = 'Ne mogu da učitam dodatke za uvoz, molim proverite svoju instalaciju!';
+$strCannotLogin = 'Ne mogu da se prijavim na MySQL server';
+$strCantLoad = 'ne mogu da učitam ekstenziju %s,<br />molim proverite PHP konfiguraciju';
+$strCantLoadRecodeIconv = 'Ne mogu da učitam iconv ili recode ekstenzije potrebne za konverziju skupova znakova, podesite PHP da dozvoli korišćenje ovih ekstenzija ili onemogućite konverziju skupova znakova u phpMyAdmin-u.';
+$strCantRenameIdxToPrimary = 'Ne mogu da promenim ključ u PRIMARY (primarni) !';
+$strCantUseRecodeIconv = 'Ne mogu da koristim iconv ili libiconv ili recode_string funkcije iako ekstenzija prijavljuje da je učitana. Proverite vašu PHP konfiguraciju.';
+$strCardinality = 'Kardinalnost';
+$strCaseInsensitive = 'Ne razlikuje mala i velika slova';
+$strCaseSensitive = 'Razlikuje mala i velika slova';
+$strCentralEuropean = 'Centralnoevropski';
+$strChangeCopyModeCopy = '... sačuvaj stare.';
+$strChangeCopyModeDeleteAndReload = ' ... obriši starog iz tabele korisnika i zatim ponovo učitaj privilegije.';
+$strChangeCopyModeJustDelete = ' ... obriši stare iz tabela korisnika.';
+$strChangeCopyMode = 'Napravi novog korisnika sa istim privilegijama i ...';
+$strChangeCopyModeRevoke = ' ... obustavi sve privilegije starog korisnika i zatim ga obriši.';
+$strChangeCopyUser = 'Promeni informacije o prijavi / Kopiraj korisnika';
+$strChangeDisplay = 'Izaberi polja za prikaz';
+$strChangePassword = 'Promeni lozinku';
+$strChange = 'Promeni';
+$strCharset = 'Karakter set';
+$strCharsetOfFile = 'Karakter set datoteke:';
+$strCharsetsAndCollations = 'Karakter setovi i sortiranje';
+$strCharsets = 'Kodne strane';
+$strCheckAll = 'Označi sve';
+$strCheckOverhead = 'Proveri tabele koje imaju prekoračenja';
+$strCheckPrivsLong = 'Proveri privilegije za bazu &quot;%s&quot;.';
+$strCheckPrivs = 'Proveri privilegije';
+$strCheckTable = 'Proveri tabelu';
+$strChoosePage = 'Izaberite stranu koju menjate';
+$strColComFeat = 'Prikazujem komentare kolone';
+$strCollation = 'Sortiranje';
+$strColumnNames = 'Imena kolona';
+$strColumnPrivileges = 'Privilegije vezane za kolone';
+$strCommand = 'Naredba';
+$strComments = 'Komentari';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 kompatibilno';
+$strCompleteInserts = 'Kompletan INSERT (sa imenima polja)';
+$strCompression = 'Kompresija';
+$strCompressionWillBeDetected = 'Vrsta kompresije uvezenih datoteka će biti automatski odabrana: %s';
+$strConfigDefaultFileError = 'Ne mogu da učitam podrazumevanu konfiguraciju iz: "%1$s"';
+$strConfigFileError = 'phpMyAdmin nije mogao da pročita vašu konfiguracionu datoteku!<br />Ovo se može desiti ako PHP nađe grešku u procesiranju ili ne može da pronađe datoteku.<br />Pozovite konfiguracionu datoteku direktno koristeći donji link i pročitajte poruke o grešci koje dobijate. U većini slučajeve negde nedostaje navodnik ili tačka-zarez.<br />Ako dobijete praznu stranu, sve je u redu.';
+$strConfigureTableCoord = 'Podesite koordinate za tabelu %s';
+$strConnectionError = 'Ne mogu da se povežem: neispravna podešavanja.';
+$strConnections = 'Konekcije';
+$strConstraintsForDumped = 'Ograničenja za izvezene tabele';
+$strConstraintsForTable = 'Ograničenja za tabele';
+$strControluserFailed = 'Konekcija za controluser-a, onako kako je definisana u vašoj konfiguraciji, nije uspela.';
+$strCookiesRequired = 'Kolačići (Cookies) moraju u ovom slučaju biti aktivni.';
+$strCopyDatabaseOK = 'Baza %s je prekopirana u %s';
+$strCopy = 'Kopiraj';
+$strCopyTable = 'Kopiraj tabelu u (baza<b>.</b>tabela):';
+$strCopyTableOK = 'Tabela %s je kopirana u %s.';
+$strCopyTableSameNames = 'Ne mogu da kopiram tabelu u samu sebe!';
+$strCouldNotKill = 'phpMyAdmin nije mogao da prekine proces %s. Verovatno je već zatvoren.';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE pre kopiranja';
+$strCreateIndex = 'Napravi ključ na&nbsp;%s&nbsp;kolona';
+$strCreateIndexTopic = 'Napravi novi ključ';
+$strCreate = 'Napravi';
+$strCreateNewDatabase = 'Napravi novu bazu podataka';
+$strCreateNewTable = 'Napravi novu tabelu u bazi %s';
+$strCreatePage = 'Napravi novu stranu';
+$strCreatePdfFeat = 'Pravljenje PDF-ova';
+$strCreateRelation = 'Napravi relaciju';
+$strCreateTable = 'Napravi tabelu';
+$strCreateUserDatabase = 'Baza za korisnika';
+$strCreateUserDatabaseName = 'Napravi bazu sa istim imenom i dodaj sve privilegije';
+$strCreateUserDatabaseNone = 'Nema';
+$strCreateUserDatabaseWildcard = 'Daj sve privilegije na imenu sa džokerima (korisničko_ime\_%)';
+$strCreationDates = 'Datumi kreiranja/ažuriranja/provere';
+$strCriteria = 'Kriterijum';
+$strCroatian = 'Hrvatski';
+$strCSV = 'CSV';
+$strCyrillic = 'Ćirilični';
+$strCzech = 'Češki';
+$strCzechSlovak = 'Češko-slovački';
+
+$strDanish = 'Danski';
+$strDatabase = 'Baza podataka';
+$strDatabaseEmpty = 'Ime baze nije zadato!';
+$strDatabaseExportOptions = 'Opcije za izvoz baze';
+$strDatabaseHasBeenDropped = 'Baza %s je odbačena.';
+$strDatabases = 'Baze';
+$strDatabasesDropped = '%s baza je uspešno odbačeno.';
+$strDatabasesStatsDisable = 'Isključi statistike';
+$strDatabasesStatsEnable = 'Uključi statistike';
+$strDatabasesStatsHeavyTraffic = 'Napomena: uključivanje statistika može prouzrokovati veliki saobraćaj između veb i MySQL servera.';
+$strDatabasesStats = 'Statistika baze';
+$strDataDict = 'Rečnik podataka';
+$strDataOnly = 'Samo podaci';
+$strDataPages = 'Strane sa podacima';
+$strData = 'Podaci';
+$strDBComment = 'Komentar baze:';
+$strDBCopy = 'Kopiraj bazu u';
+$strDbIsEmpty = 'Baza je izgleda prazna!';
+$strDbPrivileges = 'Privilegije vezane za bazu';
+$strDBRename = 'Preimenuj bazu u';
+$strDbSpecific = 'Specifično za bazu';
+$strDefaultEngine = '%s je podrazumevani pogon skladištenja na ovom MySQL serveru.';
+$strDefault = 'Podrazumevano';
+$strDefaultValueHelp = 'Za podrazumevanu vrednost, unesite samo jednu vrednost, bez kosih crta ili navodnika u ovom obliku: a';
+$strDefragment = 'Defragmentiraj tabelu';
+$strDelayedInserts = 'Koristi odložena umetanja';
+$strDeleteAndFlushDescr = 'Ovo je najčistiji način, ali ponovno učitavanje privilegina može da potraje.';
+$strDeleteAndFlush = 'Obriši korisnike i ponovo učitaj privilegije.';
+$strDeleted = 'Red je obrisan';
+$strDeleteNoUsersSelected = 'Nijedan korisnik nije odabran za brisanje!';
+$strDelete = 'Obriši';
+$strDeleteRelation = 'Obriši relaciju';
+$strDeleting = 'Brišem %s';
+$strDelimiter = 'Graničnik';
+$strDelOld = 'Trenutna strana ima reference na tabele koje više ne postoje. Želite li da obrišete te reference?';
+$strDescending = 'Opadajući';
+$strDescription = 'Opis';
+$strDesigner = 'Dizajner';
+$strDesignerHelpDisplayField = 'Polje za prikaz je obojeno u ružičasto. Da bi postavili/uklonili polje kao polje za prikaz, kliknite na ikonu „Izaberi polje za prikaz“, a potom na naziv odgovarajućeg polja.';
+$strDictionary = 'rečnik';
+$strDirectLinks = 'Direktne veze';
+$strDirtyPages = 'Prljave strane';
+$strDisabled = 'Onemogućeno';
+$strDisableForeignChecks = 'Isključi provere stranih ključeva';
+$strDisplayFeat = 'Prikaži osobine';
+$strDisplayOrder = 'Redosled prikaza:';
+$strDisplayPDF = 'Prikaži PDF shemu';
+$strDoAQuery = 'Napravi "upit po primeru" (džoker: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentacija';
+$strDoYouReally = 'Da li stvarno hoćete da ';
+$strDropDatabaseStrongWarning = 'Ovim ćete UNIŠTITI kompletnu bazu podataka!';
+$strDrop = 'Odbaci';
+$strDropUsersDb = 'Odbaci baze koje se zovu isto kao korisnici.';
+$strDumpingData = 'Prikaz podataka tabele';
+$strDumpSaved = 'Sadržaj baze je sačuvan u datoteku %s.';
+$strDumpXRows = 'Prikaži %s redova počevši od reda %s.';
+$strDynamic = 'dinamički';
+
+$strEditPDFPages = 'Uređivanje PDF strana';
+$strEditPrivileges = 'Promeni privilegije';
+$strEdit = 'Promeni';
+$strEffective = 'Efektivne';
+$strEmpty = 'Isprazni';
+$strEmptyResultSet = 'MySQL je vratio prazan rezultat (nula redova).';
+$strEnabled = 'Omogućeno';
+$strEncloseInTransaction = 'Obavi izvoz u transakciji';
+$strEndCut = 'KRAJ REZ';
+$strEnd = 'Kraj';
+$strEndRaw = 'KRAJ SIROVO';
+$strEngineAvailable = '%s je dostupan na ovom MySQL serveru.';
+$strEngineDisabled = '%s je onemogućen na ovom MySQL serveru.';
+$strEngines = 'Skladištenja';
+$strEngineUnsupported = 'Ovaj MySQL server ne podržava %s pogon skladištenja.';
+$strEnglish = 'Engleski';
+$strEnglishPrivileges = ' Napomena: MySQL imena privilegija moraju da budu na engleskom ';
+$strError = 'Greška';
+$strErrorInZipFile = 'Greška u ZIP arhivi:';
+$strErrorRelationAdded = 'Greška: relacija nije dodata.';
+$strErrorRelationExists = 'Greška: relacija već postoji.';
+$strErrorRenamingTable = 'Greška pri preimenovanju tabele %1$s u %2$s';
+$strErrorSaveTable = 'Greška pri snimanju koordinata za Dizajner.';
+$strEscapeWildcards = 'Pre džokera _ i % treba staviti znak \ ako ih koristite samostalno';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonski';
+$strEvent = 'Događaji';
+$strExcelEdition = 'Excel izdanje';
+$strExecuteBookmarked = 'Izvrši upamćen upit';
+$strExplain = 'Objasni SQL';
+$strExportImportToScale = 'Izvor/uvoz u razmeri';
+$strExport = 'Izvoz';
+$strExportMustBeFile = 'Odabrani tip izvoza mora biti sačuvan u datoteku!';
+$strExtendedInserts = 'Prošireni INSERT';
+$strExtra = 'Dodatno';
+
+$strFailedAttempts = 'Neuspelih pokušaja';
+$strFieldHasBeenDropped = 'Polje %s je obrisano';
+$strFieldInsertFromFileTempDirNotExists = 'Greška u premeštanju primljene datoteke, pogledajte FAQ 1.11';
+$strField = 'Polje';
+$strFieldsEnclosedBy = 'Polja ograničena sa';
+$strFieldsEscapedBy = 'Escape karakter &nbsp; &nbsp; &nbsp;';
+$strFields = 'Polja';
+$strFieldsTerminatedBy = 'Polja razdvojena sa';
+$strFileAlreadyExists = 'Datoteka %s već postoji na serveru, promenite ime datoteke ili uključite opciju prepisivanja.';
+$strFileCouldNotBeRead = 'Datoteku nije moguće pročitati';
+$strFileNameTemplate = 'Šablon imena datoteke';
+$strFileNameTemplateDescriptionDatabase = 'naziv baze';
+$strFileNameTemplateDescription = 'Ova vrednost se tumači korišćenjem %1$sstrftime%2$s, tako da možete da koristite stringove za formatiranje vremena. Takođe će se desiti i sledeće transformacije: %3$s. Preostali tekst će ostati kako jeste.';
+$strFileNameTemplateDescriptionServer = 'naziv servera';
+$strFileNameTemplateDescriptionTable = 'naziv tabele';
+$strFileNameTemplateRemember = 'zapamti šablon';
+$strFiles = 'Datoteke';
+$strFileToImport = 'Datoteka za uvoz';
+$strFixed = 'sređeno';
+$strFlushPrivilegesNote = 'Napomena: phpMyAdmin uzima privilegije korisnika direktno iz MySQL tabela privilegija. Sadržaj ove tabele može se razlikovati od privilegija koje server koristi ako su vršene ručne izmene. U tom slučaju %sponovo učitajte privilegije%s pre nego što nastavite.';
+$strFlushQueryCache = 'Očisti keš upita';
+$strFlushTable = 'Osveži tabelu ("FLUSH")';
+$strFlushTables = 'Očisti (zatvori) sve tabele';
+$strFontSize = 'Veličina fonta';
+$strFormat = 'Format';
+$strFormEmpty = 'Nedostaje vrednost u obrascu!';
+$strFreePages = 'Slobodne strane';
+$strFullText = 'Pun tekst';
+$strFunction = 'Funkcija';
+$strFunctions = 'Funkcije';
+
+$strGenBy = 'Generisao';
+$strGeneralRelationFeat = 'Opšte osobine relacija';
+$strGenerate = 'Napravi';
+$strGeneratePassword = 'Napravi lozinku';
+$strGenTime = 'Vreme kreiranja';
+$strGeorgian = 'Gruzijski';
+$strGerman = 'Nemački';
+$strGlobal = 'globalno';
+$strGlobalPrivileges = 'Globalne privilegije';
+$strGlobalValue = 'Globalna vrednost';
+$strGo = 'Kreni';
+$strGrantOption = 'Omogući';
+$strGreek = 'Grčki';
+$strGzip = '"gzip-ovano"';
+
+$strHandler = 'Rukovalac';
+$strHasBeenAltered = 'je promenjen(a).';
+$strHaveToShow = 'Morate izabrati bar jednu kolonu za prikaz';
+$strHebrew = 'Hebrejski';
+$strHelp = 'Pomoć';
+$strHexForBLOB = 'Koristi heksadecimalno za BLOB';
+$strHide = 'Sakrij';
+$strHideShowAll = 'Sakrij/prikaži sve';
+$strHideShowNoRelation = 'Sakrij/prikaži tabele bez relacija';
+$strHomepageOfficial = 'phpMyAdmin veb sajt';
+$strHome = 'Početna strana';
+$strHost = 'Domaćin';
+$strHostEmpty = 'Ime domaćina je prazno!';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Mađarski';
+
+$strIcelandic = 'Islandski';
+$strId = 'ID';
+$strIdxFulltext = 'Tekst ključ';
+$strIEUnsupported = 'Internet Explorer ne podržava ovu funkciju.';
+$strIgnoreDuplicates = 'Ignoriši duplicirane redove';
+$strIgnore = 'Ignoriši';
+$strIgnoreInserts = 'Ignoriši duplikate pri umetanju';
+$strImportExportCoords = 'Izvoz/uvoz koordinata za PDF shemu';
+$strImportFiles = 'Uvoz datoteka';
+$strImportFormat = 'Format datoteka za uvoz';
+$strImportSuccessfullyFinished = 'Uvoz je uspešno završen, izvršeno je %d upita.';
+$strImport = 'Uvoz';
+$strIndexes = 'Ključevi';
+$strIndexHasBeenDropped = 'Ključ %s je obrisan';
+$strIndex = 'Ključ';
+$strIndexName = 'Ime ključa :';
+$strIndexType = 'Tip ključa :';
+$strIndexWarningTable = 'Problem pri indeksiranju tabele `%s`';
+$strInnoDBAutoextendIncrementDesc = ' Veličina koraka proširenja veličine tabela koje se automatski proširuju kada se napune.';
+$strInnoDBAutoextendIncrement = 'Korak automatskog proširenja';
+$strInnoDBBufferPoolSizeDesc = 'Veličina memorijskog prihvatnika koje InnoDB koristi za keširanje podataka i indeksa svojih tabela.';
+$strInnoDBBufferPoolSize = 'Veličina prihvatnika';
+$strInnoDBDataFilePath = 'Datoteke sa podacima';
+$strInnoDBDataHomeDirDesc = 'Zajednički deo putanje direktorijuma za sve InnoDB datoteke sa podacima.';
+$strInnoDBDataHomeDir = 'Osnovni direktorijum podataka';
+$strInnoDBPages = 'strana';
+$strInnodbStat = 'InnoDB status';
+$strInsecureMySQL = 'Vaša konfiguraciona datoteka sadrži podešavanja (root bez lozinke) koja odgovaraju standardnom MySQL privilegovanom nalogu. Vaš MySQL server radi sa ovim podešavanjima, otvoren je za upade, i zaista treba da ispravite ovaj sigurnosni rizik.';
+$strInsertAsNewRow = 'Unesi kao novi red';
+$strInsert = 'Novi zapis';
+$strInternalRelationAdded = 'Dodata interna relacija';
+$strInternalRelations = 'Unutrašnje relacije';
+$strInUse = 'se koristi';
+$strInvalidAuthMethod = 'Neispravan metod autentikacije je zadat u konfiguraciji:';
+$strInvalidColumnCount = 'Broj kolona mora biti veći od nule.';
+$strInvalidColumn = 'Zadata je neispravna kolona (%s)!';
+$strInvalidCSVFieldCount = 'Neispravan broj polja u CSV ulazu na liniji %d.';
+$strInvalidCSVFormat = 'Neispravan format CSV ulaza na liniji %d.';
+$strInvalidCSVParameter = 'Neispravni parametri za CSV uvoz: %s';
+$strInvalidDatabase = 'Neispravna baza podataka';
+$strInvalidFieldAddCount = 'Morate dodati barem jedno polje.';
+$strInvalidFieldCount = 'Tabela mora imati barem jedno polje.';
+$strInvalidLDIImport = 'Ovaj dodatak ne podržava kompresovane uvoze!';
+$strInvalidRowNumber = '%d nije ispravan broj reda.';
+$strInvalidServerHostname = 'Neispravan naziv servera %1$s. Molimo proverite svoju konfiguraciju.';
+$strInvalidServerIndex = 'Neispravan indeks servera: "%s"';
+$strInvalidTableName = 'Neispravan naziv tabele';
+
+$strJapanese = 'Japanski';
+$strJoins = 'Spojevi';
+$strJumpToDB = 'Pređi na bazu &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Obrisani&quot; korisnici će i dalje imati pristup serveru dok privilegije ne budu ponovo učitane.';
+$strJustDelete = 'Samo obriši korisnike iz tabele privilegija.';
+
+$strKeepPass = 'Nemoj da menjaš lozinku';
+$strKeyCache = 'Keš ključeva';
+$strKeyname = 'Ime ključa';
+$strKill = 'Obustavi';
+$strKnownExternalBug = 'Ova funkcionalnost %s je pogođena poznatom greškom, vidite %s';
+$strKorean = 'Korejski';
+
+$strLandscape = 'Položeno';
+$strLanguage = 'Jezik';
+$strLanguageUnknown = 'Nepoznat jezik: %1$s.';
+$strLatchedPages = 'Zabravljene strane';
+$strLatexCaption = 'Komentar tabele';
+$strLatexContent = 'Sadržaj tabele __TABLE__';
+$strLatexContinuedCaption = 'Nastavljen komentar tabele';
+$strLatexContinued = '(nastavljeno)';
+$strLatexIncludeCaption = 'Uključi komentar tabele';
+$strLatexLabel = 'Oznaka ključa';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktura tabele __TABLE__';
+$strLatvian = 'Letonski';
+$strLDI = 'CSV koristeći LOAD DATA';
+$strLDILocal = 'Koristi ključnu reč LOCAL';
+$strLengthSet = 'Dužina/Vrednost*';
+$strLimitNumRows = 'Broj redova po strani';
+$strLinesTerminatedBy = 'Linije se završavaju sa';
+$strLinkNotFound = 'Veza nije pronađena';
+$strLinksTo = 'Veze ka';
+$strLithuanian = 'Litvanski';
+$strLocalhost = 'Lokalni';
+$strLocationTextfile = 'Lokacija tekstualne datoteke';
+$strLoginInformation = 'Podaci o prijavi';
+$strLogin = 'Prijavljivanje';
+$strLogout = 'Odjavljivanje';
+$strLogPassword = 'Lozinka:';
+$strLogServer = 'Server';
+$strLogUsername = 'Korisničko ime:';
+$strLongOperation = 'Ova operacija može da potraje. Da li da nastavimo?';
+
+$strMaxConnects = 'maks. istovremenih veza';
+$strMaximalQueryLength = 'Maksimalna dužina napravljenog upita';
+$strMaximumSize = 'Maksimalna veličina: %s%s';
+$strMbExtensionMissing = 'PHP ekstenzija mbstring nije pronađena, a čini se da vi koristite višebajtni skup znakova. Bez ekstenzije mbstring phpMyAdmin ne može ispravno da razdvaja stringove i to može dovesti do neočekivanih rezultata.';
+$strMbOverloadWarning = 'U PHP podešavanjima Vam je uključena mbstring.func_overload opcija. Ova opcija je nekompatibilna sa phpMyAdmin i može dovesti do grešaka u nekim podacima!';
+$strMIME_available_mime = 'Dostupni MIME-tipovi';
+$strMIME_available_transform = 'Dostupne transformacije';
+$strMIME_description = 'Opis';
+$strMIME_MIMEtype = 'MIME-tipovi';
+$strMIME_nodescription = 'Nema opisa za ovu transformaciju.<br />Molimo pitajte autora šta %s radi.';
+$strMIME_transformation_note = 'Za listu dostupnih opcija transformacije i njihove transformacije MIME-tipova, kliknite na %sopise transformacija%s';
+$strMIME_transformation_options_note = 'Molimo unesite vrednosti za opcije transformacije koristeći ovaj oblik: \'a\', 100, b,\'c\'...<br />Ako treba da unesete obrnutu kosu crtu ("\\") ili apostrof ("\'") u te vrednosti, stavite obrnutu kosu crtu ispred njih (na primer \'\\\\xyz\' ili \'a\\\'b\').';
+$strMIME_transformation_options = 'Opcije transformacije';
+$strMIME_transformation = 'Tranformacije čitača';
+$strMIMETypesForTable = 'MIME TIPOVI ZA TABELU';
+$strMIME_without = 'MIME-tipovi prikazani u kurzivu nemaju odvojene funkcije transformacije.';
+$strModifications = 'Izmene su sačuvane';
+$strModifyIndexTopic = 'Izmeni ključ';
+$strModify = 'Promeni';
+$strMoveMenu = 'Premesti meni';
+$strMoveTableOK = 'Tabela %s je pomerena u %s.';
+$strMoveTable = 'Pomeri tabelu u (baza<b>.</b>tabela):';
+$strMoveTableSameNames = 'Ne mogu da premestim tabelu u samu sebe!';
+$strMultilingual = 'višejezički';
+$strMyISAMDataPointerSizeDesc = 'Podrazumevana veličina pokazivača u bajtovima, koristi se pri CREATE TABLE za MyISAM tabele kada nije zadata opcija MAX_ROWS';
+$strMyISAMDataPointerSize = 'Veličina pokazivača podataka';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Ako bi privremena datoteka koja se koristi za brzo kreiranje MyISAM indeksa bila veća nego pri korišćenju keša ključeva za ovde zadatu vrednost, koristi metod keširanja ključeva';
+$strMyISAMMaxExtraSortFileSize = 'Maksimalna veličina privremenih datoteka pri kreiranju indeksa';
+$strMyISAMMaxSortFileSizeDesc = 'Maksimalna veličina privremenih datoteka koje MySQL sme da koristi pri re-kreiranju MyISAM indeksa (u toku REPAIR TABLE, ALTER TABLE, ili LOAD DATA INFILE operacija).';
+$strMyISAMMaxSortFileSize = 'Maksimalna veličina privremenih datoteka za sortiranje';
+$strMyISAMRecoverOptionsDesc = 'Režim automatskog oporavka puknutih MyISAM tabela, podešen pri startovanju servera opcijom --myisam-recover.';
+$strMyISAMRecoverOptions = 'Režim automatskog oporavka';
+$strMyISAMRepairThreadsDesc = 'Ako je vrednost veća od 1, indeksi MyISAM tabela se paralelno kreiraju (svaki indeks u sopstvenoj niti) za vreme procesa popravke sortiranjem.';
+$strMyISAMRepairThreads = 'Niti popravke';
+$strMyISAMSortBufferSizeDesc = 'Prihvatnik koji se alocira pri sortiranju MyISAM indeksa za vreme operacije REPAIR TABLE ili pri kreiranju indeksa sa CREATE INDEX ili ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Veličina prihvatnika za sortiranje';
+$strMySQLCharset = 'MySQL set karaktera';
+$strMysqlClientVersion = 'Verzija MySQL klijenta';
+$strMySQLConnectionCollation = 'Sortiranje za MySQL vezu';
+$strMysqlLibDiffersServerVersion = 'Verzija vaše PHP MySQL biblioteke %s se razlikuje od verzije vašeg MySQL servera %s. Ovo može dovesti do nepredvidljivog ponašanja.';
+$strMySQLSaid = 'MySQL reče: ';
+$strMySQLShowProcess = 'Prikaži listu procesa';
+
+$strName = 'Ime';
+$strNext = 'Sledeći';
+$strNoActivity = 'Nije bilo aktivnosti %s ili više sekundi, molimo prijavite se ponovo';
+$strNoDatabases = 'Baza ne postoji';
+$strNoDatabasesSelected = 'Nije izabrana ni jedna baza.';
+$strNoDataReceived = 'Nisu primljeni nikavi podaci za uvoz. Ili nije bio naveden naziv datoteke, ili veličina datoteke prevazilazi maksimalnu veličinu dozvoljenu u vašoj konfiguraciji PHP-a. Pogledajte. See FAQ 1.16.';
+$strNoDescription = 'nema opisa';
+$strNoDetailsForEngine = 'Nema detaljnijih informacija o statusu za ovaj pogon skladištenja.';
+$strNoDropDatabases = '"DROP DATABASE" komanda je onemogućena.';
+$strNoExplain = 'Preskoči objašnjavanje SQL-a';
+$strNoFilesFoundInZip = 'U ZIP arhivi nema datoteka!';
+$strNoFrames = 'phpMyAdmin preferira čitače koji podržavaju okvire.';
+$strNoIndex = 'Ključ nije definisan!';
+$strNoIndexPartsDefined = 'Delovi ključa nisu definisani!';
+$strNoModification = 'Nema izmena';
+$strNo = 'Ne';
+$strNone = 'nema';
+$strNoOptions = 'Ne postoje opcije za ovaj format';
+$strNoPassword = 'Nema lozinke';
+$strNoPermission = 'Veb serveru nije dozvoljeno da sačuva datoteku %s.';
+$strNoPhp = 'bez PHP koda';
+$strNoPrivileges = 'Nema privilegija';
+$strNoRights = 'Nije Vam dozvoljeno da budete ovde!';
+$strNoRowsSelected = 'Nema odabranih redova';
+$strNoSpace = 'Nedovoljno prostora za snimanje datoteke %s.';
+$strNoTablesFound = 'Tabele nisu pronađene u bazi.';
+$strNoThemeSupport = 'Nema podrške za teme, molimo proverite konfiguraciju i/ili teme u direktorijumu %s.';
+$strNotNumber = 'Ovo nije broj!';
+$strNotOK = 'nije u redu';
+$strNotSet = '<b>%s</b> tabela nije pronađena ili nije postavljena u %s';
+$strNoUsersFound = 'Korisnik nije nađen.';
+$strNoValidateSQL = 'Preskoči proveru SQL-a';
+$strNull = 'Null';
+$strNumberOfFields = 'Broj polja';
+$strNumberOfTables = 'Broj tabela';
+$strNumSearchResultsInTable = '%s pogodaka unutar tabele <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Ukupno:</b> <i>%s</i> pogodaka';
+$strNumTables = 'Tabele';
+
+$strOK = 'U redu';
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Otvori novi phpMyAdmin prozor';
+$strOperations = 'Operacije';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optimizuj tabelu';
+$strOptions = 'Opcije';
+$strOr = 'ili';
+$strOverhead = 'Prekoračenje';
+$strOverwriteExisting = 'Prepiši postojeće datoteke';
+
+$strPageNumber = 'Broj strane:';
+$strPagesToBeFlushed = 'Strane koje treba da budu usklađene';
+$strPaperSize = 'Dimenzije papira';
+$strPartialImport = 'Delimični uvoz';
+$strPartialText = 'Deo teksta';
+$strPasswordChanged = 'Lozinka za %s je uspešno promenjena.';
+$strPasswordEmpty = 'Lozinka je prazna!';
+$strPasswordHashing = 'Heširanje lozinke';
+$strPassword = 'Lozinka';
+$strPasswordNotSame = 'Lozinke nisu identične!';
+$strPdfDbSchema = 'Shema baze "%s" - Strana %s';
+$strPdfInvalidTblName = 'Tabela "%s" ne postoji!';
+$strPdfNoTables = 'Nema tabela';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Pravi izveštaj koji sadrži podatke jedne tabele)';
+$strPDFReportTitle = 'Naslov izveštaja';
+$strPerHour = 'na sat';
+$strPerMinute = 'u minutu';
+$strPerSecond = 'u sekundi';
+$strPersian = 'Persijski';
+$strPhoneBook = 'telefonski imenik';
+$strPhp = 'Napravi PHP kod';
+$strPHPVersion = 'verzija PHP-a';
+$strPleaseSelectPrimaryOrUniqueKey = 'Molimo izaberite primarni ili jedinstveni ključ';
+$strPmaDocumentation = 'phpMyAdmin dokumentacija';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> direktiva MORA biti podešena u konfiguracionoj datoteci!';
+$strPolish = 'Poljski';
+$strPortrait = 'Uspravno';
+$strPos1 = 'Početak';
+$strPrevious = 'Prethodna';
+$strPrimaryKeyHasBeenDropped = 'Primarni ključ je obrisan';
+$strPrimaryKeyName = 'Ime primarnog ključa mora da bude... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>mora</b> biti ime <b>samo</b> primarnog ključa!)';
+$strPrimary = 'Primarni';
+$strPrint = 'Štampaj';
+$strPrintViewFull = 'Pogled za štampu (sa punim tekstom)';
+$strPrintView = 'Za štampu';
+$strPrivDescAllPrivileges = 'Uključuje sve privilegije osim GRANT.';
+$strPrivDescAlter = 'Dozvoljava izmenu struktura postojećih tabela.';
+$strPrivDescAlterRoutine = 'Dozvoljava izmenu i odbacivanje sačuvanih rutina.';
+$strPrivDescCreateDb = 'Dozvoljava kreiranje novih baza i tabela.';
+$strPrivDescCreateRoutine = 'Dozvoljava pravljenje sačuvanih rutina.';
+$strPrivDescCreateTbl = 'Dozvoljava kreiranje novih tabela.';
+$strPrivDescCreateTmpTable = 'Dozvoljava kreiranje privremenih tabela..';
+$strPrivDescCreateUser = 'Dozvoljava pravljenje, odbacivanje i preimenovanje korisničkih naloga.';
+$strPrivDescCreateView = 'Dozvoli kreiranje novih pogleda.';
+$strPrivDescDelete = 'Dozvoljava brisanje podataka.';
+$strPrivDescDropDb = 'Dozvoljava odbacivanje baza i tabela.';
+$strPrivDescDropTbl = 'Dozvoljava odbacivanje tabela.';
+$strPrivDescExecute5 = 'Dozvoljava izvršavanje sačuvanih rutina.';
+$strPrivDescExecute = 'Dozvoljava pokretanje sačuvanih procedura. Nema efekta u ovoj verziji MySQL-a.';
+$strPrivDescFile = 'Dozvoljava uvoz podataka i njihov izvoz u datoteke.';
+$strPrivDescGrant = 'Dozvoljava dodavanje korisnika i privilegija bez ponovnog učitavanja tabela privilegija.';
+$strPrivDescIndex = 'Dozvoljava kreiranje i brisanje ključeva.';
+$strPrivDescInsert = 'Dozvoljava umetanje i zamenu podataka.';
+$strPrivDescLockTables = 'Dozvoljava zaključavanje tabela tekućim procesima.';
+$strPrivDescMaxConnections = 'Ograničava broj novih konekcija koje korisnik može ta otvori na sat.';
+$strPrivDescMaxQuestions = 'Ograničava broj upita koje korisnik može da uputi serveru za sat.';
+$strPrivDescMaxUpdates = 'Ograničava broj komandi koje menjaju tabele ili baze koje korisnik može da izvrši na sat.';
+$strPrivDescMaxUserConnections = 'Ograničava broj istovremenih konekcija koje korisnik može da ima.';
+$strPrivDescReferences = 'Nema efekta u ovoj verziji MySQL-a.';
+$strPrivDescReload = 'Dozvoljava ponovno učitavanje podešavanja servera i pražnjenje keša servera.';
+$strPrivDescReplClient = 'Daje pravo korisniku da pita gde su glavni/pomoćni serveri.';
+$strPrivDescReplSlave = 'Potrebno zbog pomoćnih servera za replikaciju.';
+$strPrivDescSelect = 'Dozvoljava čitanje podataka.';
+$strPrivDescShowDb = 'Daje pristup kompletnoj listi baza.';
+$strPrivDescShowView = 'Dozvoljava izvršavanje SHOW CREATE VIEW upita.';
+$strPrivDescShutdown = 'Dozvoljava gašenje servera.';
+$strPrivDescSuper = ' Dozvoljava povezivanje iako je dostignut maksimalan broj dozvoljenih veza; Neophodno za većinu administrativnih opcija kao što su podešavanje globalnih promenljivih ili prekidanje procesa ostalih korisnika.';
+$strPrivDescUpdate = 'Dozvoljava izmenu podataka.';
+$strPrivDescUsage = 'Nema privilegija.';
+$strPrivileges = 'Privilegije';
+$strPrivilegesReloaded = 'Privilegije su uspešno ponovo učitane.';
+$strProcedures = 'Procedure';
+$strProcesses = 'Procesi';
+$strProcesslist = 'Lista procesa';
+$strProfiling = 'Profilisanje';
+$strProtocolVersion = 'Verzija protokola';
+$strPutColNames = 'Stavi imena polja u prvi red';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Upit po primeru';
+$strQueryCache = 'Keš upita';
+$strQueryFrame = 'Prozor za upite';
+$strQueryOnDb = 'SQL upit na bazi <b>%s</b>:';
+$strQueryResultsOperations = 'Operacije na rezultatima upita';
+$strQuerySQLHistory = 'SQL istorijat';
+$strQueryStatistics = '<b>Statistike upita</b>: %s upita je postavljeno serveru od njegovog pokretanja.';
+$strQueryTime = 'Upit je trajao %01.4f sekundi';
+$strQueryType = 'Vrsta upita';
+$strQueryWindowLock = 'Ne prepisuj ovaj upit izvan prozora';
+
+$strReadRequests = 'Zahtevi za čitanje';
+$strReceived = 'Primljeno';
+$strRecommended = 'preporučeno';
+$strRecords = 'Zapisi';
+$strReferentialIntegrity = 'Proveri referencijalni integritet:';
+$strRefresh = 'Osveži';
+$strRelationalSchema = 'Relaciona shema';
+$strRelationDeleted = 'Relacija obrisana';
+$strRelationNotWorking = 'Dodatne mogućnosti za rad sa povezanim tabelama su isključene. Da biste saznali zašto, kliknite %sovde%s.';
+$strRelationsForTable = 'RELACIJE TABELE';
+$strRelations = 'Relacije';
+$strRelationView = 'Relacioni pogled';
+$strReloadingThePrivileges = 'Ponovo učitavam privilegije';
+$strReload = 'Ponovo učitaj';
+$strReloadPrivileges = 'Ponovo učitaj privilegije';
+$strRemoveSelectedUsers = 'Ukloni izabrane korisnike';
+$strRenameDatabaseOK = 'Baza %s je preimenovana u %s';
+$strRenameTableOK = 'Tabeli %s promenjeno ime u %s';
+$strRenameTable = 'Promeni ime tabele u ';
+$strRepairTable = 'Popravi tabelu';
+$strReplaceNULLBy = 'Zameni NULL sa';
+$strReplaceTable = 'Zameni podatke u tabeli sa podacima iz datoteke';
+$strReplication = 'Replikacija';
+$strReset = 'Poništi';
+$strResourceLimits = 'Ograničenja resursa';
+$strRestartInsertion = 'Ponovo pokreni unošenje sa %s redova';
+$strReType = 'Ponovite unos';
+$strRevokeAndDeleteDescr = 'Korisnici će i dalje imati USAGE privilegije dok se privilegije ponovo ne učitaju.';
+$strRevokeAndDelete = 'Obustavi sve aktivne privilegije korisnika i zatim ih obriši.';
+$strRevokeMessage = 'Zabranili ste privilegije za %s';
+$strRevoke = 'Zabrani';
+$strRomanian = 'Rumunski';
+$strRoutineReturnType = 'Povratni tip';
+$strRoutines = 'Rutine';
+$strRowLength = 'Dužina reda';
+$strRowsFrom = ' redova počev od reda';
+$strRowSize = 'Veličina reda';
+$strRowsModeFlippedHorizontal = 'horizontalnom (rotirana zaglavlja)';
+$strRowsModeHorizontal = 'horizontalnom';
+$strRowsModeOptions = 'u %s modu i ponovi zaglavlje posle svakog %s reda';
+$strRowsModeVertical = 'vertikalnom';
+$strRows = 'Redova';
+$strRowsStatistic = 'Statistike reda';
+$strRunning = 'na serveru %s';
+$strRunQuery = 'Izvrši SQL upit';
+$strRunSQLQuery = 'Izvrši SQL upit(e) na bazi %s';
+$strRunSQLQueryOnServer = 'Izvrši SQL upit(e) na serveru %s';
+$strRussian = 'Ruski';
+
+$strSaveOnServer = 'Sačuvaj na server u direktorijum %s';
+$strSavePosition = 'Sačuvaj poziciju';
+$strSave = 'Sačuvaj';
+$strScaleFactorSmall = 'Faktor umanjenja je premali da bi shema stala na jednu stranu';
+$strSearchFormTitle = 'Pretraživanje baze';
+$strSearchInTables = 'Unutar tabela:';
+$strSearchNeedle = 'Reči ili vrednosti koje se traže (džoker: "%"):';
+$strSearchOption1 = 'bar jednu od reči';
+$strSearchOption2 = 'sve reči';
+$strSearchOption3 = 'tačan izraz';
+$strSearchOption4 = 'kao regularni izraz';
+$strSearch = 'Pretraživanje';
+$strSearchResultsFor = 'Rezultati pretrage za "<i>%s</i>" %s:';
+$strSearchType = 'Traži:';
+$strSecretRequired = 'Konfiguraciona datoteka zahteva tajnu lozinku (blowfish_secret).';
+$strSelectADb = 'Izaberite bazu';
+$strSelectAll = 'Izaberi sve';
+$strSelectBinaryLog = 'Izaberite binarni dnevnik za pregled';
+$strSelectFields = 'Izaberi polja (najmanje jedno)';
+$strSelectForeignKey = 'Izaberi strani ključ';
+$strSelectNumRows = 'u upitu';
+$strSelectReferencedKey = 'Izaberite referencirani ključ';
+$strSelectTables = 'Izaberi tabele';
+$strSend = 'Sačuvaj kao datoteku';
+$strSent = 'Poslato';
+$strServerChoice = 'Izbor servera';
+$strServerNotResponding = 'Server ne odgovara';
+$strServer = 'Server';
+$strServers = 'Serveri';
+$strServerStatusDelayedInserts = 'Odložena umetanja';
+$strServerStatus = 'Informacije o toku rada';
+$strServerStatusUptime = 'Ovaj MySQL server radi već %s. Pokrenut je %s.';
+$strServerTabVariables = 'Promenljive';
+$strServerTrafficNotes = '<b>Saobraćaj servera</b>: Tabele pokazuju statistike mrežnog saobraćaja na ovom MySQL serveru od njegovog pokretanja.';
+$strServerVars = 'Serverske promenljive i podešavanja';
+$strServerVersion = 'Verzija servera';
+$strSessionStartupErrorGeneral = 'Ne mogu da pokrenem sesiju bez grešaka, molim proverite greške u PHP i/ili dnevniku veb servera i propisno podesite vašu PHP instalaciju.';
+$strSessionValue = 'Vrednost sesije';
+$strSetEnumVal = 'Ako je polje "enum" ili "set", unesite vrednosti u formatu: \'a\',\'b\',\'c\'...<br />Ako vam treba obrnuta kosa crta ("\\") ili apostrof ("\'") koristite ih u "izbegnutom" (escaped) obliku (na primer \'\\\\xyz\' ili \'a\\\'b\').';
+$strShowAll = 'Prikaži sve';
+$strShowColor = 'Prikaži boju';
+$strShowDatadictAs = 'Format rečnika podataka';
+$strShowFullQueries = 'Prikaži kompletne upite';
+$strShowGrid = 'Prikaži mrežu';
+$strShowHideLeftMenu = 'Prikaži/sakrij meni s leve strane';
+$strShowingBookmark = 'Prikazivanje markera';
+$strShowingPhp = 'Prikaz kao PHP kod';
+$strShowingRecords = 'Prikaz zapisa';
+$strShowingSQL = 'Prikaz kao SQL upit';
+$strShowOpenTables = 'Prikaži otvorene tabele';
+$strShowPHPInfo = 'Prikaži informacije o PHP-u';
+$strShow = 'Prikaži';
+$strShowSlaveHosts = 'Prikaži podređene server';
+$strShowSlaveStatus = 'Prikaži status podređenih servera';
+$strShowStatusBinlog_cache_disk_useDescr = 'Broj tranksakcija koje su koristile keš privremenog binarnog dnevnika ali su prevazišle vrednost u binlog_cache_size i koristile privremenu datoteku da smeste izraze iz transakcije.';
+$strShowStatusBinlog_cache_useDescr = 'Broj transakcija koje su koristile keš privremenog binarnog dnevnika.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Broj privremenih tabela koje je server automatski kreirao na disku dok je izvršavao izraze. Ako je Created_tmp_disk_tables veliko, možda treba da povećate vrednost tmp_table_size kako bi učinili da privremene tabele budu bazirane u memoriji umesto na disku.';
+$strShowStatusCreated_tmp_filesDescr = 'Koliko privremenih datoteka je mysqld napravio.';
+$strShowStatusCreated_tmp_tablesDescr = 'Broj privremenih tabela koje je server automatski kreirao u memoriji dok je izvršavao izraze.';
+$strShowStatusDelayed_errorsDescr = 'Broj redova upisanih sa INSERT DELAYED za koje je javljena neka greška (verovatno duplirani ključ).';
+$strShowStatusDelayed_insert_threadsDescr = 'Broj INSERT DELAYED rukovalačkih niti u upotrebi. Svaka posebna tabela nad kojom se koristi INSERT DELAYED dobija svoju nit.';
+$strShowStatusDelayed_writesDescr = 'Broj upisanih INSERT DELAYED redova.';
+$strShowStatusFlush_commandsDescr = 'Broj izvršenih FLUSH izraza.';
+$strShowStatusHandler_commitDescr = 'Broj internih COMMIT izraza.';
+$strShowStatusHandler_deleteDescr = 'Broj brisanja nekog reda tabele.';
+$strShowStatusHandler_discoverDescr = 'MySQL server može da upita pogon skladištenja NDB Cluster da li zna za tabelu određenog imena. To se naziva otkrivanjem (discovery). Handler_discover označava broj puta kada je otkrivena tabela.';
+$strShowStatusHandler_read_firstDescr = 'Broj puta kada je prva stavka pročitana iz indeksa. Ako je ovo visoko, to može značiti da server radi puno punih skeniranja indeksa; na primer SELECT kol1 FROM nešto, pod pretpostavkom da je kol1 indeksirano.';
+$strShowStatusHandler_read_keyDescr = 'Broj zahteva za čitanje reda zasnovanih na ključu. Ako je ovaj broj visok, to je dobar pokazatelj da su vaši upiti i tabele propisno indeksirani.';
+$strShowStatusHandler_read_nextDescr = 'Broj zahteva za čitanjem sledećeg reda u poretku ključeva. Ovo se povećava kada radite upit po koloni indeksa sa ograničenjem opsega ili ako radite skeniranje indeksa.';
+$strShowStatusHandler_read_prevDescr = 'Broj zahteva za čitanjem prethodnog reda u poretku ključeva. Ova metoda čitanja se uglavnom koristi za optimizaciju ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Broj zahteva za čitanje reda zasnovanih na fiksnoj poziciji. Ovo je visoko ako radite mnogo upita koji zahtevaju sortiranje rezultata. Verovatno imate mnogo upita koji zahtevaju da MySQL skenira cele tabele ili imate spojeve koji ne koriste ključeve propisno.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Broj zahteva za čitanjem sledećeg reda iz datoteke podataka. Ovo je visoko ako radite puno skeniranja tabela. Ovo obično nagoveštava da vaše tabele nisu propisno indeksirane ili da vaši upiti nisu napisani da iskoriste već postojeće indekse.';
+$strShowStatusHandler_rollbackDescr = 'Broj internih ROLLBACK izraza.';
+$strShowStatusHandler_updateDescr = 'Broj zahteva za ažuriranje reda u tabeli.';
+$strShowStatusHandler_writeDescr = 'Broj zahteva za upisivanje reda u tabelu.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Broj strana koje sadrže podatke (čistih ili prljavih).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Broj strana koje su trenutno prljave.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Broj strana u ostavi bafera za koje je traženo da budu očišćene.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Broj slobodnih strana.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Broj zabravljenih strana u InnoDB ostavi bafera. Sa ovih strana se trenutno čita ili se u njih upisuje ili iz nekog drugog razloga ne mogu biti očišćene niti uklonjene.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Broj strana koje su zauzete zato što su odvojene za administrativne potrebe, kao što su zaključavanje redova ili indeks prilagodljivog heša. Ova vrednost se takođe može izračunati i na sledeći način Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Puna veličina ostave bafera, u stranama.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Broj „nasumičnih“ pred-čitanja koja je InnoDB pokrenuo. Ovo se dešava kada upit treba da skenira veliki deo tabele ali nasumičnim redosledom.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Broj sekvencijalnih pred-čitanja koja je InnoDB pokrenuo. Ovo se dešava kada InnoDB radi sekvencijalno skeniranje cele tabele.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Broj logičkih zahteva za čitanje koje je InnoDB uradio.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Broj logičkih čitanja koja InnoDB nije mogao da zadovolji iz ostave bafera te je morao da radi čitanje pojedinačne strane.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalno se upisi u InnoDB ostavu bafera dešavaju u pozadini. Međutim, ako je neophodno pročitati ili napraviti stranu a nema dostupnih čistih strana, neophodno je sačekati da se strane prethodno očiste. Ovaj brojač broji dešavanja ovih čekanja. Ako je veličina ostave bafera postavljena kako treba, ova vrednost vi trebalo da je niska.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Broj upisa učinjenih u InnoDB ostavu bafera.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Broj fsync() operacija do sada.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Trenutni broj fsync() operacija na čekanju.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Trenutni broj čitanja na čekanju.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Trenutni broj upisa na čekanju.';
+$strShowStatusInnodb_data_readDescr = 'Količina podataka pročitanih do sada, u bajtovima.';
+$strShowStatusInnodb_data_readsDescr = 'Ukupan broj čitanja podataka.';
+$strShowStatusInnodb_data_writesDescr = 'Ukupan broj upisa podataka.';
+$strShowStatusInnodb_data_writtenDescr = 'Količina podataka upisanih do sada, u bajtovima';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Broj izvršenih dvoupisnih (doublewrite) upisa i broj strana koje su upisane u ovu svrhu.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Broj izvršenih dvoupisnih (doublewrite) upisa i broj strana koje su upisane u ovu svrhu.';
+$strShowStatusInnodb_log_waitsDescr = 'Broj čekanja koja smo imali zato što je bafer dnevnika bio premali te smo morali da sačekamo da bude očišćen pre nastavka.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Broj zahteva za upis u dnevnik.';
+$strShowStatusInnodb_log_writesDescr = 'Broj fizičkih upisa u datoteku dnevnika.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Broj fsyncs upisa načinjenih u datoteku dnevnika.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Broj fsync-ova za datoteku dnevnika na čekanju.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Broj upisa u datoteku dnevnika na čekanju.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Broj bajtova upisanih u datoteku dnevnika.';
+$strShowStatusInnodb_pages_createdDescr = 'Broj napravljenih strana.';
+$strShowStatusInnodb_page_sizeDescr = 'Ukompajlirana veličina strane za InnoDB (podrazumevano 16KB). Mnoge vrednosti se računaju u stranama; veličina strane omogućava da se one lako konvertuju u bajtove.';
+$strShowStatusInnodb_pages_readDescr = 'Broj pročitanih strana.';
+$strShowStatusInnodb_pages_writtenDescr = 'Broj zapisanih strana.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Broj brava za redove koje se trenutno čekaju.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Prosečno vreme za dobavljanje brave za red, u milisekundama.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Ukupno vremena provedeno u dobavljanju brava za redove, u milisekundama.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Najduže vreme za dobavljanje brave za red, u milisekundama.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Broj puta kada se morala čekati brava za red.';
+$strShowStatusInnodb_rows_deletedDescr = 'Broj redova obrisanih iz InnoDB tabela.';
+$strShowStatusInnodb_rows_insertedDescr = 'Broj redova umetnutih u InnoDB tabele.';
+$strShowStatusInnodb_rows_readDescr = 'Broj redova pročitanih iz InnoDB tabela.';
+$strShowStatusInnodb_rows_updatedDescr = 'Broj redova ažuriranih u InnoDB tabelama.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Broj blokova ključeva u kešu ključeva koji su izmenjeni ali još nisu poslati na disk. Ovo je ranije bilo poznato kao Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Broj neiskorišćenih blokova u kešu ključeva. Ovu vrednost možete da koristite da utvrdite koliki deo keša ključeva je u upotrebi.';
+$strShowStatusKey_blocks_usedDescr = 'Broj iskorišćenih blokova u kešu ključeva. Ova vrednost je oznaka „visokog vodostaja“ koja pokazuje najveći ikada broj blokova koji je bio u upotrebi u isto vreme.';
+$strShowStatusKey_read_requestsDescr = 'Broj zahteva za čitanje bloka ključeva iz keša.';
+$strShowStatusKey_readsDescr = 'Broj fizičkih čitanja bloka ključeva sa diska. Ako je Key_reads veliko, onda je vaša vrednost za key_buffer_size verovatno premala. Stepen promašaja keša se može izračunati kao Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Broj zahteva za upisivanje bloka ključeva u keš.';
+$strShowStatusKey_writesDescr = 'Broj fizičkih upisa bloka ključeva na disk.';
+$strShowStatusLast_query_costDescr = 'Ukupna cena poslednjeg kompajliranog upita kako ju je izračunao optimizator upita. Korisno za upoređivanje cene različitih planova upita za isti upit. Podrazumevana vrednost 0 znači da još nije bio kompajliran nijedan upit.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Broj redova u INSERT DELAYED redovima čekanja koji čekaju upisivanje.';
+$strShowStatusOpened_tablesDescr = 'Broj tabela koje su bile otvarane. Ako je broj veliki, vaš keš tabela je verovatno premali.';
+$strShowStatusOpen_filesDescr = 'Broj otvorenih datoteka.';
+$strShowStatusOpen_streamsDescr = 'Broj otvorenih tokova (koristi se prvenstveno za vođenje dnevnika (logging)).';
+$strShowStatusOpen_tablesDescr = 'Broj otvorenih tabela.';
+$strShowStatusQcache_free_blocksDescr = 'Broj slobodnih memorijskih blokova u u kešu upita.';
+$strShowStatusQcache_free_memoryDescr = 'Količina slobodne memorije za keš upita.';
+$strShowStatusQcache_hitsDescr = 'Broj pogodaka iz keša.';
+$strShowStatusQcache_insertsDescr = 'Broj upita dodatih u keš.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Broj upita koji su uklonjeni iz keša da bi se oslobodila memorija za keširanje novih upita. Ovaj podatak vam može pomoći da podesite veličinu keša za upite. Keš za upite koristi strategiju najduže nekorišćenog (en: least recently used , LRU) da bi odlučio koje upite da ukloni iz keša.';
+$strShowStatusQcache_not_cachedDescr = 'Broj nekeširanih upita (koji se ne mogu keširati ili nisu keširani zbog podešavanja query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Broj upita registrovanih u kešu.';
+$strShowStatusQcache_total_blocksDescr = 'Ukupan broj blokova u kešu za upite.';
+$strShowStatusReset = 'Reset';
+$strShowStatusRpl_statusDescr = 'Status replikacije otporne na greške (nije još implementirano).';
+$strShowStatusSelect_full_joinDescr = 'Broj spojeva koji ne koriste indekste. Ako ova vrednost nije 0, trebalo bi pažljivo da proverite indekse vaših tabela.';
+$strShowStatusSelect_full_range_joinDescr = 'Broj spojeva koji su koristili pretragu opsega na referentnoj tabeli.';
+$strShowStatusSelect_range_checkDescr = 'Broj spojeva bez ključeva koji proveravaju upotrebu ključa posle svakog reda. (Ako ovo nije 0, trebalo bi pažljivo da proverite indekse vaših tabela.)';
+$strShowStatusSelect_rangeDescr = 'Broj spojeva koji su koristili opsege na prvoj tabeli. (Obično nije kritično čak ni kada je ovo veliko)';
+$strShowStatusSelect_scanDescr = 'Broj spojeva koji su uradili puno skeniranje prve tabele.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Broj privremenih tabela trenutno otvorenih od strane pomoćne SQL niti.';
+$strShowStatusSlave_retried_transactionsDescr = 'Ukupan broj puta (od pokretanja) kada je pomoćna SQL nit za replikaciju pokušala transakcije.';
+$strShowStatusSlave_runningDescr = 'Ovo je ON ako je ovaj server pomoćni koji je povezan na glavni.';
+$strShowStatusSlow_launch_threadsDescr = 'Broj niti za koje je trebalo više od slow_launch_time sekudni da bi bile pokrenute.';
+$strShowStatusSlow_queriesDescr = 'Broj upita za koje je trebalo više od long_query_time sekudni.';
+$strShowStatusSort_merge_passesDescr = 'Broj prolaza za spajanje koje je algoritam za sortiranje morao da odradi. Ako je ova vrednost velika, trebalo bi da razmislite o povećanju vrednosti sistemske promenljive sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Broj sortiranja koja su urađena sa opsegom.';
+$strShowStatusSort_rowsDescr = 'Broj sortiranih redova.';
+$strShowStatusSort_scanDescr = 'Broj sortiranja do kojih je došlo skeniranjem tabele.';
+$strShowStatusTable_locks_immediateDescr = 'Broj puta kada je brava za tabelu odmah dobavljena.';
+$strShowStatusTable_locks_waitedDescr = 'Broj puta kada brava za tabelu nije mogla biti odmah dobavljena i bilo je potrebno čekanje. Ako je ovo visoko i imate problema sa performansama, prvo bi trebalo da optimizujete svoje upite a potom da ili podelite tabelu ili tabele ili da koristite replikaciju.';
+$strShowStatusThreads_cachedDescr = 'Broj niti u kešu za niti. Stepen pogodaka keša se može izračunati kao Threads_created/Konekcije. Ako je ova vrednost crvena trebalo bi da povećate vaš thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Broj trenutno otvorenih veza.';
+$strShowStatusThreads_createdDescr = 'Broj niti kreiranih za rukovanje konekcijama. Ako je Threads_created veliko, možda bi trebalo da povećate vrednost thread_cache_size. (Ako imate dobru implementaciju niti, ovo obično ne donosi primetna poboljšanja u performansama.)';
+$strShowStatusThreads_runningDescr = 'Broj niti koje nisu uspavane.';
+$strShowTableDimension = 'Prikaži dimenzije tabele';
+$strShowTables = 'Prikaži tabele';
+$strShowThisQuery = 'Prikaži ponovo ovaj upit';
+$strSimplifiedChinese = 'Pojednostavljeni kineski';
+$strSingly = '(po jednom polju)';
+$strSize = 'Veličina';
+$strSkipQueries = 'Broj zapisa (upita) koje treba preskočiti:';
+$strSlovak = 'Slovački';
+$strSlovenian = 'Slovenači';
+$strSmallBigAll = 'Sve malo/veliko';
+$strSnapToGrid = 'Drži se mreže';
+$strSocketProblem = '(ili priključak lokalnog MySQL servera nije ispravno podešen)';
+$strSortByKey = 'Sortiraj po ključu';
+$strSorting = 'Sortiranje';
+$strSort = 'Sortiranje';
+$strSpaceUsage = 'Zauzeće';
+$strSpanish = 'Španski';
+$strSplitWordsWithSpace = 'Reči se odvajaju razmakom (" ").';
+$strSQLCompatibility = 'Mod SQL kompatibilnosti';
+$strSQLExportType = 'Tip izvoza';
+$strSQLParserBugMessage = 'Postoji mogućnost da ste pronašli bag u SQL parseru. Molimo ispitajte svoj upit pažljivo, i proverite da su navodnici ispravni i da ne nedostaju. Ostali mogući razlozi greške mogu biti da ste poslali binarnu datoteku van oblasti za običan tekst. Možete probati svoj upit u MySQL sučelju komandne linije. Donja poruka o grešci MySQL servera, ako je ima, može vam pomoći u otkrivanju problema. Ako i dalje imate probleme ili ako parser ne uspeva tamo gde uspeva sučelje komandne linije, svedite svoj SQL upit na jedan jedini upit koji stvara probleme i pošaljite nam izveštaj o grešci sa delom koda u donjoj REZ sekciji:';
+$strSQLParserUserError = 'Izgleda da postoji greška u vašem SQL upitu. Ovde je poruka o greški MySQL servera, koja vam može pomoći u otkrivanju problema';
+$strSQLQuery = 'SQL upit';
+$strSQLResult = 'SQL rezultat';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Neispravan iG¤entifikator';
+$strSQPBugUnclosedQuote = 'Navodnik nije zatvoren';
+$strSQPBugUnknownPunctuation = 'Nepoznat string interpunkcije';
+$strStandInStructureForView = 'Struktura koja zamenjuje pogled';
+$strStatCheckTime = 'Poslednja provera';
+$strStatCreateTime = 'Napravljeno';
+$strStatement = 'Ime';
+$strStatisticsOverrun = 'Na zaposlenom serveru brojači bajtova mogu da se preliju (overrun), tako da te statistike, onako kako ih prijavljuje MySQL server, mogu biti netačne.';
+$strStatUpdateTime = 'Poslednja izmena';
+$strStatus = 'Status';
+$strStorageEngine = 'Pogon skladištenja';
+$strStorageEngines = 'Pogoni skladištenja';
+$strStrucCSV = 'CSV format';
+$strStrucData = 'Struktura i podaci';
+$strStrucExcelCSV = 'CSV za MS Excel';
+$strStrucNativeExcel = 'Izvorni MS Excel podaci';
+$strStrucOnly = 'Samo struktura';
+$strStructPropose = 'Predloži strukturu tabele';
+$strStructureForView = 'Struktura za pogled (view)';
+$strStructure = 'Struktura';
+$strSubmit = 'Pošalji';
+$strSuccess = 'Vaš SQL upit je uspešno izvršen';
+$strSum = 'Ukupno';
+$strSwedish = 'Švedski';
+$strSwitchToDatabase = 'Prebaci se na kopiranu bazu';
+$strSwitchToTable = 'Pređi na kopiranu tabelu';
+
+$strTableAlreadyExists = 'Tabela %s već postoji!';
+$strTableComments = 'Komentari tabele';
+$strTableEmpty = 'Ima tabele je prazno!';
+$strTableHasBeenDropped = 'Tabela %s je odbačena';
+$strTableHasBeenEmptied = 'Tabela %s je ispražnjena';
+$strTableHasBeenFlushed = 'Tabela %s je osvežena';
+$strTableIsEmpty = 'Tabela je izgleda prazna!';
+$strTableMaintenance = 'Radnje na tabeli';
+$strTableName = 'Naziv tabele';
+$strTableOfContents = 'Sadržaj';
+$strTableOptions = 'Opcije tabele';
+$strTables = '%s tabela';
+$strTableStructure = 'Struktura tabele';
+$strTable = 'Tabela';
+$strTakeIt = 'preuzmi';
+$strTblPrivileges = 'Privilegije vezane za tabele';
+$strTempData = 'Privremeni podaci';
+$strTextAreaLength = 'Zbog njehove veličine, polje<br />možda nećete moći da izmenite';
+$strThai = 'Tajski';
+$strThemeDefaultNotFound = 'Nije pronađena podrazumevana tema %s!';
+$strThemeNoPreviewAvailable = 'Pregled ne postoji.';
+$strThemeNotFound = 'Nije pronađena tema %s!';
+$strThemeNoValidImgPath = 'Nema ispravne putanje do slika za temu %s!';
+$strThemePathNotFound = 'Nije pronađena putanja do teme za temu %s!';
+$strTheme = 'Tema / stil';
+$strThisHost = 'Ovaj server';
+$strThreads = 'Niti';
+$strThreadSuccessfullyKilled = 'Proces %s je uspešno prekinut.';
+$strTimeoutInfo = 'Prethodnom uvozu je isteklo vreme, nakon ponovnog slanja biće nastavljen od pozicije %d.';
+$strTimeoutNothingParsed = 'Međutim, pri poslednjem pokretanju podaci nisu bili obrađeni, što obično znači da phpMyAdmin neće biti u mogućnosti da završi ovaj uvoz osim ako ne povećate vremenska ograničenja u PHP-u';
+$strTimeoutPassed = 'Vreme izvršenja skripta je isteklo, ako želite da dovršite uvoz, molimo pošaljite istu datoteku i uvoz će se nastaviti.';
+$strTime = 'Vreme';
+$strToFromPage = 'od/do stranice';
+$strToggleScratchboard = 'Uključi/isključi radnu tablu';
+$strToggleSmallBig = 'Promeni malo/veliko';
+$strToSelectRelation = 'Da odaberete relaciju, kliknite :';
+$strTotalUC = 'Ukupno';
+$strTotal = 'ukupno';
+$strTraditionalChinese = 'Tradicionalni kineski';
+$strTraditionalSpanish = 'Tradicionalni španski';
+$strTraffic = 'Saobraćaj';
+$strTransactionCoordinator = 'Koordinator transakcija';
+$strTransformation_application_octetstream__download = 'Prikazuje vezu za preuzimanje binarnih podataka za polje. Prva opcija je ime binarne datoteke. Druga opcija je moguće ime polja reda tabele koji sadrži ime datoteke. Ako date drugu opciju, prva mora biti postavljena na prazan string';
+$strTransformation_application_octetstream__hex = 'Prikazuje heksadecimalni prikaz podataka. Opcioni prvi parametar određuje koliko često se dodaje prazno mesto (podrazumevano svaka 2 nibla).';
+$strTransformation_image_jpeg__inline = 'Prikazuje umanjenu sliku na koju je moguće kliknuti; opcije: širina, visina u pikselima (čuva originalni odnos)';
+$strTransformation_image_jpeg__link = 'Prikazuje link ka ovoj snimci (npr. direktno preuzimanje iz BLOB-a).';
+$strTransformation_image_png__inline = 'Prikaži JPEG slike na strani';
+$strTransformation_text_plain__dateformat = 'Prikazuje TIME, TIMESTAMP, DATETIME ili polje sa numeričkom juniks vremenskom oznakom (timestamp) kao formatirani datum. Prva opcija je pomeraj (u satima) koji se dodaje vremenskoj oznaci (podrazumevamo: 0). Drugu opciju koristitte da odredite drugačiji string za formatiranje datuma/vremena. Treća opcija određuje da li želite da vidite lokalni ili UTC datum (koristite stringove "local" ili "utc" za to). U skladu sa tim, format datuma ima različite vrednosti - za "local" pogledajte PHP-ovu dokumentaciju za funkciju strftime() dok je za "utc" to urađeno korišćenjem fukcije gmdate().';
+$strTransformation_text_plain__external = 'SAMO LINUX: Pokreće eksternu aplikaciju i popunjava podatke u poljima preko standardnog ulaza. Vraća standardni izlaz aplikacije. Podrazumevano je Tidy, za lepši prikaz HTML koda. Zbog sigurnosnih razloga, morate ručno izmeniti datoteku libraries/transformations/text_plain__external.inc.php i dodati alate koje želite da koristite. Prva opcija je broj programa koje želite da koristite, a druga su parametri programa. Ako se treći parametar postavi na 1 izlaz će biti konvertovan koristeći htmlspecialchars() (podrazumevano je 1). Ako je četvrti parametar postavljen na 1, NOWRAP će biti dodato ćeliji sa sadržajem tako da će izlaz biti prikazan bez izmena. (podrazumevano 1)';
+$strTransformation_text_plain__formatted = 'Čuva originalno formatiranje polja. Escaping se ne vrši.';
+$strTransformation_text_plain__imagelink = 'Prikazuje sliku i link, polje sadrži naziv datoteke; prva opcija je prefiks kao "http://domain.com/", druga opcija je širina u pikselima, treća je visina.';
+$strTransformation_text_plain__link = 'Prikazuje link, polje sadrži naziv datoteke; prva opcija je prefiks kao "http://domain.com/", druga opcija je naslov za link.';
+$strTransformation_text_plain__sql = 'Formatira tekst kao SQL upit sa obeležavanjem sintakse.';
+$strTransformation_text_plain__substr = 'Pokazuje deo stringa. Prva opcija je broj znakova koje treba preskočiti od početka stringa (podrazumevano 0). Druga opcija je broj vraćenih znakova (podrazumevano: do kraja stringa). Treća opcija je string koji se dodaje kada dođe do odsecanja (podrazumevano: ...) .';
+$strTriggers = 'Okidači';
+$strTruncateQueries = 'Prikaži skraćene upite';
+$strTurkish = 'Turski';
+$strType = 'Tip';
+
+$strUkrainian = 'Ukrajinski';
+$strUncheckAll = 'nijedno';
+$strUnicode = 'Unikod';
+$strUnique = 'Jedinstveni';
+$strUnknown = 'nepoznat';
+$strUnselectAll = 'ništa';
+$strUnsupportedCompressionDetected = 'Pokušali ste da uvezete datoteku sa kompresijom koja nije podržana (%s). Ili podrška za nju nije implementirana, ili je isključena u vašoj konfiguraciji.';
+$strUpdatePrivMessage = 'Ažurirali ste privilegije za %s.';
+$strUpdateProfileMessage = 'Profil je promenjen.';
+$strUpdateQuery = 'Ažuriraj upit';
+$strUpdComTab = 'Molimo pogledajte u dokumentaciji kako se ažurira tabela Column_comments';
+$strUpgrade = 'Trebalo bi da unapredite vaš %s server na verziju %s ili noviju.';
+$strUploadErrorCantWrite = 'Neuspelo upisivanje datoteke na disk.';
+$strUploadErrorExtension = 'Prijem datoteke zaustavljen zbog ekstenzije.';
+$strUploadErrorFormSize = 'Poslata datoteka prevazilazi vrednost direktive MAX_FILE_SIZE koja je navedena u HTML formi.';
+$strUploadErrorIniSize = 'Poslata datoteka prevazilazi vrednost direktive upload_max_filesize u php.ini.';
+$strUploadErrorNoTempDir = 'Nedostaje privremeni direktorijum.';
+$strUploadErrorPartial = 'Poslata datoteka je samo delimično primljena.';
+$strUploadErrorUnknown = 'Nepoznata greška pri slanju datoteke.';
+$strUploadLimit = 'Verovatno ste pokušali da uvezete preveliku datoteku. Molimo pogledajte %sdokumentaciju%s za načine prevazilaženja ovog ograničenja.';
+$strUploadsNotAllowed = 'Slanje datoteka na ovaj server nije dozvoljeno.';
+$strUsage = 'Zauzeće';
+$strUseBackquotes = 'Koristi \' za ograničavanje imena polja';
+$strUseHostTable = 'Koristi tabelu domaćina';
+$strUserAlreadyExists = 'Korisnik %s već postoji!';
+$strUserEmpty = 'Ime korisnika nije uneto!';
+$strUser = 'Korisnik';
+$strUserName = 'Ime korisnika';
+$strUserNotFound = 'Izabrani korisnik nije pronađen u tabeli privilegija.';
+$strUserOverview = 'Pregled korisnika';
+$strUsersDeleted = 'Izabrani korisnici su uspešno obrisani.';
+$strUsersHavingAccessToDb = 'Korisnici koji imaju pristup &quot;%s&quot;';
+$strUseTabKey = 'Koristite TAB taster za pomeranje od polja do polja, ili CTRL+strelice za slobodno pomeranje';
+$strUseTables = 'Koristi tabele';
+$strUseTextField = 'Koristi tekst polje';
+$strUseThisValue = 'Koristi ovu vrednost';
+
+$strValidateSQL = 'Proveri SQL';
+$strValidatorError = 'SQL validator nije mogao da bude pokrenut. Proverite da li su instalirane neophodne PHP ekstenzije opisane u %sdokumentaciji%s.';
+$strValue = 'Vrednost';
+$strVar = 'Promenljiva';
+$strVersionInformation = 'Informacije o verziji';
+$strViewDumpDatabases = 'Prikaži sadržaj (shemu) baze';
+$strViewDumpDB = 'Prikaži sadržaj (shemu) baze';
+$strViewDump = 'Prikaži sadržaj (shemu) tabele';
+$strViewHasBeenDropped = 'Pogled %s je odbačen';
+$strViewName = 'naziv za VIEW';
+$strView = 'Pogled';
+
+$strWebServerUploadDirectory = 'direktorijum za slanje veb servera ';
+$strWebServerUploadDirectoryError = 'Direktorijum koji ste izabrali za slanje nije dostupan';
+$strWelcome = 'Dobrodošli na %s';
+$strWestEuropean = 'Zapadnoevropski';
+$strWildcard = 'džoker';
+$strWindowNotFound = 'Odredišni prozor pretraživača nije mogao da bude ažuriran. Možda ste zatvorili matični prozor, ili vaš pretraživač onemogućava ažuriranje među prozorima zbog sigurnosnih podešavanja';
+$strWithChecked = 'Označeno:';
+$strWriteRequests = 'Zahtevi za upis';
+$strWrongUser = 'Pogrešno korisničko ime/lozinka. Pristup odbijen.';
+
+$strXML = 'XML';
+
+$strYes = 'Da';
+
+$strZeroRemovesTheLimit = 'Napomena: Postavljanje ovih opcija na 0 (nulu) uklanja ograničenja.';
+$strZip = '"zipovano"';
+
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/sinhala-utf-8.inc.php b/lang/sinhala-utf-8.inc.php
new file mode 100644
index 0000000000..660b57e731
--- /dev/null
+++ b/lang/sinhala-utf-8.inc.php
@@ -0,0 +1,1450 @@
+<?php
+/* $Id$ */
+//
+// by malindahs
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+// MySQL manual language definition, this is optional, en will be used
+// if not defined
+$mysql_4_1_doc_lang = 'en';
+$mysql_5_0_doc_lang = 'en';
+$mysql_5_1_doc_lang = 'en';
+
+$day_of_week = array('ඉරිදා', 'සදුදා', 'අගහරු‍වදා', 'බදාදා', 'බ්‍රහස්පතින්දා', 'සිකුරාදා:', 'සෙනසුරාදා');
+$month = array('ජනවාරි', 'පෙබරවාරි', 'මාර්තු', 'අ‍ප්‍රේල්', 'මැයි', 'ජූනි', 'ජූලි', 'අගෝස්තු', 'සැප්තැම්බර්', 'ඔක්තෝම්බර්', 'නොවැම්බර්', 'දෙසැම්බර්');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d, %Y at %I:%M %p';
+$timespanfmt = 'දින %s, පැය %s, මිනිත්තු %s සහ තප්පර %s';
+
+$strAbortedClients = 'අත්හැර දමන ලදි';
+$strAccessDenied = 'පිවිසුම වලක්වා ඇත';
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.';
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.';
+$strAction = 'ක්‍රියාව';
+$strAddAutoIncrement = 'AUTO_INCREMENT අගයක් එක් කරන්න';
+$strAddClause = '%s එක් කරන්න';
+$strAddConstraints = 'සීමා බාධවන් එක් කරන්න';
+$strAddDeleteColumn = 'ක්ෂේත්‍ර තීර එක් කරන්න/ඉවත් කරන්න';
+$strAddDeleteRow = 'නිර්ණායක පේළියක් එක් කරන්න/ඉවත් කරන්න';
+$strAddFields = '%s ක්ෂේත්‍ර(යක්) එක් කරන්න';
+$strAddHeaderComment = 'හෙඩිමට වෙනත් විස්තර එක් කරන්න (\\n පේළි වි‍භේදනය)';
+$strAddIntoComments = 'විස්තර තුලට එක් කරන්න';
+$strAddNewField = 'නව ක්ෂේත්‍රයක් එක් කරන්න';
+$strAddPrivilegesOnDb = 'පහත දත්තගබඩාවට වරප්‍රසාද එක් කරන්න';
+$strAddPrivilegesOnTbl = 'පහත වගුවට වරප්‍රසාද එක් කරන්න';
+$strAddSearchConditions = 'සෙවීම් කොන්දේසි එක් කරන්න ("where" වාක්‍යාංශය යටතේ):';
+$strAddToIndex = '&nbsp;%s&nbsp;තීර(ය) සූචියට එක් කරන්න';
+$strAddUser = 'නව භාවිතා කරන්නේක් එක් කරන්න';
+$strAddUserMessage = 'ඔබ නව භාවිතා කරන්නනෙක් එක් කරන ලදි.';
+$strAdministration = 'පරිපාලනය';
+$strAfter = '%s ට පසු';
+$strAfterInsertBack = 'පෙර පිටුවට ආපසු යන්න';
+$strAfterInsertNewInsert = 'නව පේළියක් එක් කරන්න';
+$strAfterInsertNext = 'මීලඟ පේළිය එක් කරන්න';
+$strAfterInsertSame = 'මෙම පිටුව වෙත ආපසු යන්න';
+$strAll = 'සියලු';
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.';
+$strAllTableSameWidth = 'එකම ප්‍රමාණයේ සියලු වගු පෙන්වන්න?';
+$strAlterOrderBy = 'අනුව වගු අනුපිළිවෙල වෙනස් කරන්න';
+$strAnalyzeTable = 'වගුව විශ්ලේෂණය කරන්න';
+$strAnd = 'සහ';
+$strAndThen = 'සහ එවිට';
+$strAnIndex = '%s සඳහා සූචියක් එක්කරන ලදි';
+$strAny = 'ඕනෑම';
+$strAnyHost = 'ඕනෑම දායකයෙක්';
+$strAnyUser = 'ඕනෑම භාවිතා කරන්නෙක්';
+$strApproximateCount = 'සමහර විට ආසන්න වශයෙන්. FAQ 3.11 බලන්න';
+$strAPrimaryKey = '%s ට මූලික යතුරක් එක් කරන ලදි';
+$strArabic = 'අරාබියානු';
+$strArmenian = 'ඇමෙරිකානු';
+$strAscending = 'ආරෝහන';
+$strAtBeginningOfTable = 'වගුව මුලදී';
+$strAtEndOfTable = 'වගුව අවසනදී';
+$strAttr = 'ගුණාංග';
+$strAutomaticLayout = 'ස්වයංක්‍රීය සැලැස්ම';
+
+$strBack = 'ආපසු';
+$strBaltic = 'බෝල්ටික';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'ද්වීමය';
+$strBinaryDoNotEdit = 'ද්වීමය - සංස්කරණය නොකරන්න';
+$strBinaryLog = 'ද්වීමය ලොගය';
+$strBinLogEventType = 'සිදුවීමේ වර්ගය';
+$strBinLogInfo = 'තොරතුරු';
+$strBinLogName = 'ලොග් නම';
+$strBinLogOriginalPosition = 'මුල් පිහිටුම';
+$strBinLogPosition = 'පිහිටුම';
+$strBinLogServerId = 'සර්වරයේ හැඳුනුම් අංකය';
+$strBookmarkAllUsers = 'සියලු භාවිතා කරන්නනට මෙම පොත් සලකුණට පිවිසීමට ඉඩ දෙන්න';
+$strBookmarkCreated = '%s පොත් සලකුණ සාදන ලදි';
+$strBookmarkDeleted = 'පොත් සලකුණ ඉවත් කරන ලදි.';
+$strBookmarkLabel = 'ලේබලය';
+$strBookmarkQuery = 'පොත් සලකුණු කරන ලද SQL විමසුම';
+$strBookmarkReplace = 'එකම නම ඇති පොත් සලකුණ ප්‍රතිස්ථාපනය කරන්න';
+$strBookmarkThis = 'මෙම SQL විමසුම පොත් සලකුණුගත කරන්න';
+$strBookmarkView = 'දර්ශනය කිරීම පමණි';
+$strBrowse = 'බ්‍රවුස් කරන්න';
+$strBrowseDistinctValues = 'එකිනෙකට වෙනස් අගයන් බ්‍රවුස් කරන්න';
+$strBrowseForeignValues = 'අන්‍ය අගයන් බ්‍රවුස් කරන්න';
+$strBufferPoolActivity = 'Buffer Pool Activity';
+$strBufferPool = 'Buffer Pool';
+$strBufferPoolUsage = 'Buffer Pool Usage';
+$strBufferReadMissesInPercent = 'Read misses in %';
+$strBufferReadMisses = 'Read misses';
+$strBufferWriteWaitsInPercent = 'Write waits in %';
+$strBufferWriteWaits = 'Write waits';
+$strBulgarian = 'බල්ගේරියානු';
+$strBusyPages = 'කාර්ය බහුල පිටු';
+$strBzip = '"bzipp ගතකරන ලදි"';
+
+$strCalendar = 'දින දර්ශනය';
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!';
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!';
+$strCannotLogin = 'MySQL සර්වරයට ලොග් විය නොහැක';
+$strCantLoad = 'Cannot load [a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] extension. Please check your PHP configuration.';
+$strCantLoadRecodeIconv = 'Couldn\'t load the iconv or recode extension needed for charset conversion. Either configure PHP to enable these extensions or disable charset conversion in phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Can\'t rename index to PRIMARY!';
+$strCantUseRecodeIconv = 'Couldn\'t use either the iconv, libiconv or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.';
+$strCardinality = 'Cardinality';
+$strCaseInsensitive = 'පුවරු සංවේදී නොවන';
+$strCaseSensitive = 'පුවරු සංවේදී';
+$strCentralEuropean = 'මධ්‍යම යුරෝපියානු';
+$strChange = 'වෙනස් කරන්න';
+$strChangeCopyModeCopy = '... පැරණි එක තබා ගන්න.';
+$strChangeCopyMode = 'සහ එකම වරප්‍රසාද සහිතව නව භාවිතා කරන්නෙක් එක් කරන්න...';
+$strChangeCopyModeDeleteAndReload = '.. භාවිතා කරන්නන්ගේ වගුවෙන් පැරණි එක ඉවත් කර වරප්‍රසාද නැවත අලුත් කරන්න.';
+$strChangeCopyModeJustDelete = ' ... භාවිතා කරන්නන්ගේ වගුවෙන් පැරණි එක ඉවත් කරන්න.';
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.';
+$strChangeCopyUser = 'ලොගින් තොරතුරු වෙනස් කරන්න / භාවිතා කරන්නා පිටපත් කරන්න';
+$strChangeDisplay = 'පෙන්වීම සඳහා ක්ෂේත්‍රයක් ‍තෝරාගන්න';
+$strChangePassword = 'මුරපදය වෙනස් කරන්න';
+$strCharset = 'අක්ෂර කට්ටලය';
+$strCharsetOfFile = 'ගොනුවේ අක්ෂර කට්ටලය:';
+$strCharsetsAndCollations = 'අක්ෂර කට්ටල සහ ‍Collations';
+$strCharsets = 'අක්ෂර කට්ටලය';
+$strCheckAll = 'සියල්ල කතිර කොටුගත කරන්න';
+$strCheckOverhead = 'Check tables having overhead';
+$strCheckPrivs = 'වරප්‍රසාද පරීක්ෂා කරන්න';
+$strCheckPrivsLong = '&quot;%s&quot; දත්තගබඩාව සඳහා වරප්‍රසාද පරීක්ෂා කරන්න.';
+$strCheckTable = 'වගුව පරීක්ෂා කරන්න';
+$strChoosePage = 'සංස්කරණය සඳහා පිටුවක් තෝරාගන්න';
+$strColComFeat = 'තීර විස්තර පෙන්වීම';
+$strCollation = 'Collation';
+$strColumnNames = 'තීර නම්';
+$strColumnPrivileges = 'Column-specific privileges';
+$strCommand = 'විධානය';
+$strComments = 'විස්තරය';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible';
+$strCompleteInserts = 'Complete inserts';
+$strCompression = 'Compression';
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s';
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"';
+$strConfigFileError = 'phpMyAdmin was unable to read your configuration file!<br />This might happen if PHP finds a parse error in it or PHP cannot find the file.<br />Please call the configuration file directly using the link below and read the PHP error message(s) that you receive. In most cases a quote or a semicolon is missing somewhere.<br />If you receive a blank page, everything is fine.';
+$strConfigureTableCoord = 'Please configure the coordinates for table %s';
+$strConnectionError = 'සම්බන්ධ විය නොහැක : වලංගු නොවන සැකසුමකි.';
+$strConnections = 'සම්බන්ධතා';
+$strConstraintsForDumped = 'නික්ෂේපනය කරන ලද වගු සඳහා සීමා බාධක';
+$strConstraintsForTable = 'වගුව සඳහා සීමා බාධක';
+$strCookiesRequired = 'මෙම ස්ථානය පසු කිරීම සඳහා කුකීස් - Cookies සක්‍රිය කල යුතුයි.';
+$strCopy = 'පිටපත් කරන්න';
+$strCopyDatabaseOK = '%s දත්තගබඩාව %s වෙතට පිටපත් කරන ලදි';
+$strCopyTable = 'වගුව (දත්තගබඩාව<b>.</b>වගුව) වෙතට පිටපත් කරන්න:';
+$strCopyTableOK = '%s වගුව %s වෙතට පිටපත් කරන ලදි.';
+$strCopyTableSameNames = 'එම වගුවටම පිටපත් කල නොහැක!';
+$strCouldNotKill = 'phpMyAdmin was unable to kill thread %s. It probably has already been closed.';
+$strCreate = 'සාදන්න';
+$strCreateDatabaseBeforeCopying = 'පිටපත් කිරීමට ප්‍රථම දත්තගබඩාවක් සාදන්න';
+$strCreateIndex = 'Create an index on&nbsp;%s&nbsp;columns';
+$strCreateIndexTopic = 'නව සූචියක් සාදන්න';
+$strCreateNewDatabase = 'නව දත්තගබඩාවක් සාදන්න';
+$strCreateNewTable = '%s දත්තගබඩාවේ නව වගුවක් සාදන්න';
+$strCreatePage = 'නව පිටුවක් සාදන්න';
+$strCreatePdfFeat = 'PDF සෑදීම';
+$strCreateUserDatabase = 'භාවිතා කරන්නා සඳහා දත්තගබඩාව';
+$strCreateUserDatabaseName = 'එකම නමින් දත්තගබඩාවක සාදා සියලු වරප්‍රසාද එයට දෙන්න';
+$strCreateUserDatabaseNone = 'කිසිවක් නැත';
+$strCreateUserDatabaseWildcard = 'අභිමත ආදේශක නාමයන් සඳහා සියලු වරප්‍රසාද දෙන්න (භාවිත නාමය_%)';
+$strCreationDates = 'සෑදීම/යාවත් කාලීන/පරීක්ෂා කිරීමේ දින';
+$strCriteria = 'නිර්ණායක';
+$strCroatian = 'ක්‍රොයේශියානු';
+$strCSV = 'CSV';
+$strCyrillic = 'සිරිලික්';
+$strCzech = 'චෙකොස්ලෝවැකියානු';
+$strCzechSlovak = 'චෙකොස්ලෝවැකියානු-ස්ලෝවැකියානු';
+
+$strDanish = 'ඩෙන්මාර්කියානු';
+$strDatabase = 'දත්තගබඩාව';
+$strDatabaseEmpty = 'දත්තගබඩා නම හිස්ව පවතී!';
+$strDatabaseExportOptions = 'දත්තගබඩා අපනයන විකල්ප';
+$strDatabaseHasBeenDropped = '%s දත්තගබඩාව හලන ලදි.';
+$strDatabases = 'දත්තගබඩා';
+$strDatabasesDropped = '%s දත්තගබඩාව සාර්ථකව හලන ලදි.';
+$strDatabasesStats = 'දත්තගබඩා සංඛ්‍යා ලේඛන';
+$strDatabasesStatsDisable = 'සංඛ්‍යා ලේඛන අක්‍රිය කරන්න';
+$strDatabasesStatsEnable = 'සංඛ්‍යා ලේඛන සක්‍රිය කරන්න';
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the database statistics here might cause heavy traffic between the web server and the MySQL server.';
+$strData = 'දත්ත';
+$strDataDict = 'දත්ත කෝෂය';
+$strDataOnly = 'දත්ත පමණයි';
+$strDataPages = 'දත්ත අඩංගු පිටු';
+$strDBComment = 'දත්තගබඩා විස්තර: ';
+$strDBCopy = 'වෙත දත්තගබඩාව පිටවත් කරන්න';
+$strDbPrivileges = 'දත්තගබඩා විශේෂිත වරප්‍රසාද';
+$strDBRename = 'බවට දත්තගබඩාවේ නම වෙනස් කරන්න';
+$strDbSpecific = 'දත්තගබඩා විශේෂිත';
+$strDefault = 'සාමාන්‍යයෙන් පවතින';
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.';
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a';
+$strDefragment = 'Defragment table';
+$strDelayedInserts = 'ප්‍රමාද කරන ලද ඇතුල් කිරීම භාවිතා කරන්න';
+$strDeleteAndFlush = 'භාවිතා කරන්නා ඉවත් කර ඉන්පසු වරප්‍රසාද නැවත අලුත් කරන්න.';
+$strDeleteAndFlushDescr = 'වඩාත්ම නිවැරදි ක්‍රමයයි. නමුත් වරප්‍රසාද නැවත අලුත් කිරීම සඳහා කාලයක් ගතවේ.';
+$strDelete = 'ඉවත් කරන්න';
+$strDeleted = 'පෙළ ඉවත් කරන ලදි';
+$strDeleteNoUsersSelected = 'ඉවත් කිරීම සඳහා භාවිතා කරන්නන් කිසිවෙක් තෝරාගෙන නොමැත!';
+$strDeleting = '%s ඉවත් කරමින් පවතී';
+$strDelimiter = 'පරිසීමකය';
+$strDelOld = 'The current page has references to tables that no longer exist. Would you like to delete those references?';
+$strDescending = 'අවරෝහන';
+$strDescription = 'විස්තරය';
+$strDictionary = 'කෝෂය';
+$strDirtyPages = 'අපවිත්‍ර පිටු';
+$strDisabled = 'අක්‍රිය කරන ලද';
+$strDisableForeignChecks = 'අන්‍ය යතුරු පරීක්ෂා අක්‍රිය කරන්න';
+$strDisplayFeat = 'දර්ශන ලක්ෂණ';
+$strDisplayOrder = 'දර්ශනය කිරීමේ අනුපිළිවෙල:';
+$strDisplayPDF = 'PDF නිරූපනය පෙන්වන්න';
+$strDoAQuery = 'Do a "query by example" (wildcard: "%")';
+$strDocu = 'ලියකියවිලි';
+$strDoYouReally = 'ඔබට ඇත්තෙන්ම අවශ්‍යද';
+$strDropDatabaseStrongWarning = 'ඔබ සූදානම් වන්නේ සම්පූර්ණ දත්තගබඩාවක් විනාශකර දැමීමටයි!';
+$strDrop = 'හලන්න';
+$strDropUsersDb = 'භාවිතා කරන්නන් හා සමාන නම් ඇති දත්තගබඩා හලන්න.';
+$strDumpingData = 'වගු සඳහා නික්ෂේප දත්ත';
+$strDumpSaved = '%s ගොනුවට නික්ෂේප දත්ත සේව් කරන ලදි.';
+$strDumpXRows = 'Dump %s row(s) starting at record # %s.';
+$strDynamic = 'ගතික';
+
+$strEdit = 'සංස්කරණය කරන්න';
+$strEditPDFPages = 'PDF පිටු සංස්කරණය කරන්න';
+$strEditPrivileges = 'වරප්‍රසාද සංස්කරණය කරන්න';
+$strEffective = 'Effective';
+$strEmpty = 'හිස්';
+$strEmptyResultSet = 'MySQL returned an empty result set (i.e. zero rows).';
+$strEnabled = 'සක්‍රිය කරන් ලද';
+$strEncloseInTransaction = 'Enclose export in a transaction';
+$strEndCut = 'END CUT';
+$strEnd = 'අවසානය‍';
+$strEndRaw = 'END RAW';
+$strEngineAvailable = '%s is available on this MySQL server.';
+$strEngineDisabled = '%s has been disabled for this MySQL server.';
+$strEngines = 'යන්ත්‍රයන්';
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.';
+$strEnglish = 'ඉංග්‍රීසි';
+$strEnglishPrivileges = ' Note: MySQL privilege names are expressed in English ';
+$strError = 'දෝෂය';
+$strErrorInZipFile = 'සිප් ආරක්ෂණයේ දෝෂයක් ඇත:';
+$strErrorRenamingTable = '%1$s සිට %2$s දක්වා වගුවේ නම් වෙනස් කිරීමේ දෝෂයක් ඇත';
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'එස්තෝනියානු';
+$strExcelEdition = 'එක්සෙල් සංස්කරණය';
+$strExecuteBookmarked = 'Execute bookmarked query';
+$strExplain = 'SQL ය පහදන්න ';
+$strExport = 'අපනයනය';
+$strExportMustBeFile = 'Selected export type has to be saved in file!';
+$strExtendedInserts = 'Extended inserts';
+$strExtra = 'අතිරේක';
+
+$strFailedAttempts = 'අසාර්ථක උත්සාහයන්';
+$strField = 'ක්ෂේත්‍රය';
+$strFieldHasBeenDropped = '%s ක්ෂේත්‍රය ඉවත් කරන ලදි';
+$strFieldsEnclosedBy = 'Fields enclosed by';
+$strFieldsEscapedBy = 'Fields escaped by';
+$strFields = 'ක්ෂේත්‍ර';
+$strFieldsTerminatedBy = 'Fields terminated by';
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.';
+$strFileCouldNotBeRead = 'ගොනුව කියවිය නොහැක';
+$strFileNameTemplateDescriptionDatabase = 'දත්තගබඩාවේ නම';
+$strFileNameTemplateDescriptionServer = 'සර්වරයේ නම';
+$strFileNameTemplateDescriptionTable = 'වගුවේ නම';
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.';
+$strFileNameTemplate = 'ෆයිල් නම් ටෙම්ප්ලේටය';
+$strFileNameTemplateRemember = 'ටෙම්ප්ලේටය මතක තබා ගන්න';
+$strFileToImport = 'ආනයනය සඳහා වූ ගොනුව';
+$strFixed = 'ස්ථිර';
+$strFlushPrivilegesNote = 'Note: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of these tables may differ from the privileges the server uses, if they have been changed manually. In this case, you should %sreload the privileges%s before you continue.';
+$strFlushQueryCache = 'Flush query cache';
+$strFlushTable = 'Flush the table ("FLUSH")';
+$strFlushTables = 'Flush (close) all tables';
+$strFontSize = 'ෆොන්ට් එකෙහි ප්‍රමාණය';
+$strFormat = 'ආකෘතිය';
+$strFormEmpty = 'පෝරම‍යේ අස්ථනගත වූ අගයන් ඇත!';
+$strFreePages = 'නිදහස් පිටු';
+$strFullText = 'සම්පූර්ණ පාඨ';
+$strFunction = 'ශ්‍රිතය';
+$strFunctions = 'ශ්‍රිත';
+
+$strGenBy = 'උත්පාදනය කරන ලද්දේ';
+$strGeneralRelationFeat = 'General relation features';
+$strGenerate = 'උත්පාදනය කරන්න';
+$strGeneratePassword = 'මුරපදය උත්පාදනය කරන්න';
+$strGenTime = 'උත්පාදන වේලාව';
+$strGeorgian = 'ජෝජියානු‍';
+$strGerman = 'ජර්මානු';
+$strGlobal = 'ගෝලීම';
+$strGlobalPrivileges = 'ගෝලීය වරප්‍රසාද';
+$strGlobalValue = 'ගෝලීය අගය';
+$strGo = 'යන්න';
+$strGrantOption = 'ප්‍රදානය කරන්න';
+$strGreek = 'ග්‍රීක්';
+$strGzip = '"gzipp ගත කරන ලදි"';
+
+$strHandler = 'Handler';
+$strHasBeenAltered = 'වෙනස් කරන ලදි.';
+$strHaveToShow = 'පෙන්වීම සඳහා අවම වශයෙන් එක් තීරයක්වත් තෝරාගත යුතුයි';
+$strHebrew = 'හීබෲ';
+$strHome = 'මුල් පිටුව';
+$strHomepageOfficial = 'නිල phpMyAdmin මුල් පිටුව';
+$strHostEmpty = 'දාරක නම හිස්ව පවතී!';
+$strHost = 'දායකයා';
+$strHTMLExcel = 'මෛ‍ක්‍රොසොෆ්ට් එක්සෙල් 2000';
+$strHTMLWord = 'මෛක්‍රොසොෆ්ට් වර්ඩ් 2000';
+$strHungarian = 'හංගේරියානු';
+
+$strIcelandic = 'අයිස්ලන්තියානු';
+$strId = 'හැඳුනුම් අංකය (ID)';
+$strIdxFulltext = 'සම්පූර්ණ පාඨය';
+$strIgnoreDuplicates = 'Ignore duplicate rows';
+$strIgnore = 'අත්හැර දමන්න';
+$strIgnoreInserts = 'Use ignore inserts';
+$strImportFiles = 'ගොනු ආනයනය';
+$strImportFormat = 'ආනයනය කරන ලද ගොනුවේ ආකෘතිය';
+$strImport = 'ආනයනය';
+$strImportSuccessfullyFinished = 'ආනයනය සාර්ථකව අවසන් කරන ලදි, විමසුම්%d ක්‍රියාත්මක කරන ලදි.';
+$strIndexes = 'සූචියන්';
+$strIndexHasBeenDropped = '%s සූචිය හලන ලදි';
+$strIndex = 'සූචිය';
+$strIndexName = 'සූචියේ නම:';
+$strIndexType = 'සූචි වර්ගය:';
+$strIndexWarningTable = 'Problems with indexes of table `%s`';
+$strInnoDBAutoextendIncrement = 'Autoextend increment';
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.';
+$strInnoDBBufferPoolSize = 'Buffer pool size';
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.';
+$strInnoDBDataFilePath = 'දත්ත ගොනු';
+$strInnoDBDataHomeDir = 'දත්ත මුල් පිටුව';
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.';
+$strInnoDBPages = 'පිටු';
+$strInnodbStat = 'InnoDB Status';
+$strInsecureMySQL = 'Your configuration file contains settings (root with no password) that correspond to the default MySQL privileged account. Your MySQL server is running with this default, is open to intrusion, and you really should fix this security hole.';
+$strInsertAsNewRow = 'Insert as new row';
+$strInsert = 'ඇතුල් කරන්න';
+$strInternalRelations = 'Internal relations';
+$strInUse = 'භාවිතා වෙමින් පවතී';
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:';
+$strInvalidColumnCount = 'Column count has to be larger than zero.';
+$strInvalidColumn = 'Invalid column (%s) specified!';
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.';
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.';
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s';
+$strInvalidDatabase = 'වලංගු නොවන දත්තගබඩාව';
+$strInvalidFieldAddCount = 'ඔබ අවම වශයෙන් එක් ක්ෂේත්‍රයක්වත් එක් කල යුතුයි.';
+$strInvalidFieldCount = 'වගුවේ අවම වශයෙන් එක් ක්ෂේත්‍රයක්වත් තිබිය යුතුයි.';
+$strInvalidLDIImport = 'This plugin does not support compressed imports!';
+$strInvalidRowNumber = '%d is not valid row number.';
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.';
+$strInvalidServerIndex = 'Invalid server index: "%s"';
+$strInvalidTableName = 'වලංගු නොවන වගු නම';
+
+$strJapanese = 'ජපන්';
+$strJoins = 'Joins';
+$strJumpToDB = '&quot;%s&quot; දත්තගබඩාව වෙත යන්න .';
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.';
+$strJustDelete = 'වරප්‍රසාද වගුවෙන් භාවිතා කරන්නන් ඉවත් කරන්න.';
+
+$strKeepPass = 'මුරපදය වෙනස් නොකරන්න';
+$strKeyCache = 'යතුරු කෑෂ් කිරීම';
+$strKeyname = 'යතුරු නම';
+$strKill = 'Kill';
+$strKorean = 'කොරියානු';
+
+$strLandscape = 'භූමි දර්ශනය';
+$strLanguage = 'භාෂාව';
+$strLanguageUnknown = '%1$s නොදන්නා භාෂාවකි.';
+$strLatchedPages = 'Latched pages';
+$strLatexCaption = 'වගු සිරස් තලය';
+$strLatexContent = 'Content of table __TABLE__';
+$strLatexContinuedCaption = 'Continued table caption';
+$strLatexContinued = '(ඉදිරියට)';
+$strLatexIncludeCaption = 'වගු ශිර්ෂ පාඨ ඇතුලත් කරන්න';
+$strLatexLabel = 'ලේබල යතුර';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Structure of table __TABLE__';
+$strLatvian = 'ලැට්වියානු';
+$strLDI = 'CSV using LOAD DATA';
+$strLDILocal = 'Use LOCAL keyword';
+$strLengthSet = 'දිග/අගයන්';
+$strLimitNumRows = 'පිටුවකට පේළි ගණන';
+$strLinesTerminatedBy = 'Lines terminated by';
+$strLinkNotFound = 'Link not found';
+$strLinksTo = 'Links to';
+$strLithuanian = 'ලිතුවේනියානු';
+$strLocalhost = 'ස්වදේශී';
+$strLocationTextfile = 'පාඨ ගොනුවෙහි පිහිටුම';
+$strLoginInformation = 'ලොගින තොරතුරු';
+$strLogin = 'ලොගින් වන්න';
+$strLogout = 'ලොග්අවුට් වන්න';
+$strLogPassword = 'මුරපදය:';
+$strLogServer = 'සර්වරය';
+$strLogUsername = 'භාවිත නාමය:';
+$strLongOperation = 'This operation could take a long time. Proceed anyway?';
+
+$strMaxConnects = 'max. concurrent connections';
+$strMaximalQueryLength = 'Maximal length of created query';
+$strMaximumSize = 'Max: %s%s';
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using a multibyte charset. Without the mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.';
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause some data to be corrupted!';
+$strMIME_available_mime = 'Available MIME types';
+$strMIME_available_transform = 'Available transformations';
+$strMIME_description = 'විස්තරය';
+$strMIME_MIMEtype = 'MIME වර්ගය';
+$strMIME_nodescription = 'No description is available for this transformation.<br />Please ask the author what %s does.';
+$strMIME_transformation = 'Browser transformation';
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME type transformations, click on %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\',\'b\',\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformation options';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE';
+$strMIME_without = 'MIME types printed in italics do not have a separate transformation function';
+$strModifications = 'වෙනස් කිරීම් සේව් කරන ලදි';
+$strModifyIndexTopic = 'සූචිය වෙනස් කරන්න';
+$strModify = 'වෙනස් කිරීම';
+$strMoveTable = 'වගුව (දත්තගබඩාව<b>.</b>වගුව) වෙතට ගෙන යන්න:';
+$strMoveTableOK = '%s වගුව %s වෙතට ගෙනයන ලදි.';
+$strMoveTableSameNames = 'Can\'t move table to same one!';
+$strMultilingual = 'multilingual';
+$strMyISAMDataPointerSize = 'Data pointer size';
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.';
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation';
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files';
+$strMyISAMRecoverOptions = 'Automatic recovery mode';
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.';
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the repair by sorting process.';
+$strMyISAMRepairThreads = 'Repair threads';
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Sort buffer size';
+$strMySQLCharset = 'MySQL අක්ෂර කට්ටලය';
+$strMysqlClientVersion = 'MySQL සේවාදායකයාගේ සංස්කරණය';
+$strMySQLConnectionCollation = 'MySQL සම්බන්ධතා collation';
+$strMySQLSaid = 'MySQL said: ';
+$strMySQLShowProcess = 'ක්‍රියාවලිය පෙන්වන්න';
+
+$strName = 'නම';
+$strNext = 'මීලඟ';
+$strNoActivity = 'No activity within %s seconds; please log in again';
+$strNoDatabases = 'දත්තගබඩා නොමැත';
+$strNoDatabasesSelected = 'දත්තගබඩාවක් තෝරාගෙන නොමැත.';
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.';
+$strNoDescription = 'no description';
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.';
+$strNoDropDatabases = '"DROP DATABASE" statements are disabled.';
+$strNoExplain = 'Skip Explain SQL';
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!';
+$strNoFrames = 'phpMyAdmin is more friendly with a <b>frames-capable</b> browser.';
+$strNoIndex = 'No index defined!';
+$strNoIndexPartsDefined = 'No index parts defined!';
+$strNoModification = 'වෙනස්කම් නැත';
+$strNone = 'කිසිවක් නැත';
+$strNo = 'නැත';
+$strNoOptions = 'මෙම ආකෘතියේ විකල්ප කිසිවක් නැත';
+$strNoPassword = 'මුරපදයක් නැත';
+$strNoPermission = 'The web server does not have permission to save the file %s.';
+$strNoPhp = 'PHP කේත නොමැතිව';
+$strNoPrivileges = 'වරප්‍රසාද නොමැත';
+$strNoRights = 'You don\'t have sufficient privileges to be here right now!';
+$strNoRowsSelected = 'පේළි කිසිවක් තෝරගෙන නැත';
+$strNoSpace = 'Insufficient space to save the file %s ගොනුව සේව් කිරීමට ප්‍රමාණවත් .';
+$strNoTablesFound = 'දත්තගබඩාවේ වගු කිසිවක් සොයා ගැනීමට නොමැත.';
+$strNoThemeSupport = 'No themes support; please check your configuration and/or your themes in directory %s.';
+$strNotNumber = 'මෙය අංකයක් නොවේ!';
+$strNotOK = 'OK නැත';
+$strNotSet = '<b>%s</b> table not found or not set in %s';
+$strNoUsersFound = 'No user(s) found.';
+$strNoValidateSQL = 'Skip Validate SQL';
+$strNull = 'Null';
+$strNumberOfFields = 'ක්ෂේත්‍ර ගණන';
+$strNumSearchResultsInTable = '%s match(es) inside table <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> match(es)';
+$strNumTables = 'වගු';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Open new phpMyAdmin window';
+$strOperations = 'මෙහෙයුම්';
+$strOperator = 'මෙහෙයවනය';
+$strOptimizeTable = 'ප්‍රශස්තගත වගුව';
+$strOr = 'හෝ';
+$strOverhead = 'පිරිවැය';
+$strOverwriteExisting = 'Overwrite existing file(s)';
+
+$strPageNumber = 'පිටු අංකය:';
+$strPagesToBeFlushed = 'Pages to be flushed';
+$strPaperSize = 'පිටුවේ ප්‍රමාණය';
+$strPartialImport = 'Partial import';
+$strPartialText = 'Partial Texts';
+$strPasswordChanged = 'The password for %s was changed successfully.';
+$strPasswordEmpty = 'The password is empty!';
+$strPasswordHashing = 'Password Hashing';
+$strPasswordNotSame = 'The passwords aren\'t the same!';
+$strPassword = 'මුරපදය';
+$strPdfDbSchema = 'Schema of the "%s" database - Page %s';
+$strPdfInvalidTblName = 'The "%s" table doesn\'t exist!';
+$strPdfNoTables = 'වගු නොමැත';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)';
+$strPDFReportTitle = 'වාර්තා මාතෘකාව';
+$strPerHour = 'පැයකට';
+$strPerMinute = 'මිනිත්තුවකට';
+$strPerSecond = 'තප්පරයකට';
+$strPersian = 'පර්සියානු';
+$strPhoneBook = 'දුරකථන පොත';
+$strPhp = 'PHP කේත සාදන්න';
+$strPHPVersion = 'PHP සංස්කරණය';
+$strPmaDocumentation = 'phpMyAdmin ලියකියවිලි';
+$strPmaUriError = 'The <tt>$cfg[\'PmaAbsoluteUri\']</tt> directive MUST be set in your configuration file!';
+$strPolish = 'පෝලන්ත';
+$strPortrait = 'Portrait';
+$strPos1 = 'Begin';
+$strPrevious = 'පෙර';
+$strPrimaryKeyHasBeenDropped = 'The primary key has been dropped';
+$strPrimaryKeyName = 'The name of the primary key must be "PRIMARY"!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!)';
+$strPrimary = 'මූලික';
+$strPrint = 'මුද්‍රණය කරන්න';
+$strPrintViewFull = 'Print view (with full texts)';
+$strPrintView = 'මුද්‍රණ දර්ශනය';
+$strPrivDescAllPrivileges = 'Includes all privileges except GRANT.';
+$strPrivDescAlter = 'Allows altering the structure of existing tables.';
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.';
+$strPrivDescCreateDb = 'Allows creating new databases and tables.';
+$strPrivDescCreateRoutine = 'Allows creating stored routines.';
+$strPrivDescCreateTbl = 'Allows creating new tables.';
+$strPrivDescCreateTmpTable = 'Allows creating temporary tables.';
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.';
+$strPrivDescCreateView = 'Allows creating new views.';
+$strPrivDescDelete = 'Allows deleting data.';
+$strPrivDescDropDb = 'Allows dropping databases and tables.';
+$strPrivDescDropTbl = 'Allows dropping tables.';
+$strPrivDescExecute5 = 'Allows executing stored routines.';
+$strPrivDescExecute = 'Allows running stored procedures; has no effect in this MySQL version.';
+$strPrivDescFile = 'Allows importing data from and exporting data into files.';
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tables.';
+$strPrivDescIndex = 'Allows creating and dropping indexes.';
+$strPrivDescInsert = 'Allows inserting and replacing data.';
+$strPrivDescLockTables = 'Allows locking tables for the current thread.';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.';
+$strPrivDescReferences = 'Has no effect in this MySQL version.';
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.';
+$strPrivDescReplClient = 'Allows the user to ask where the slaves / masters are.';
+$strPrivDescReplSlave = 'Needed for the replication slaves.';
+$strPrivDescSelect = 'Allows reading data.';
+$strPrivDescShowDb = 'Gives access to the complete list of databases.';
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.';
+$strPrivDescShutdown = 'Allows shutting down the server.';
+$strPrivDescSuper = 'Allows connecting, even if maximum number of connections is reached; required for most administrative operations like setting global variables or killing threads of other users.';
+$strPrivDescUpdate = 'Allows changing data.';
+$strPrivDescUsage = 'වරප්‍රසාද නොමැත.';
+$strPrivileges = 'වරප්‍රසාද';
+$strPrivilegesReloaded = 'The privileges were reloaded successfully.';
+$strProcedures = 'ක්‍රියාපටිපාටිය';
+$strProcesses = 'ක්‍රියාවලිය';
+$strProcesslist = 'ක්‍රියාවලි ලයිස්තුව';
+$strProtocolVersion = 'ප්‍රෝටකෝල සංස්කරණය';
+$strPutColNames = 'Put fields names in the first row';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'විමසුම';
+$strQueryCache = 'Query cache';
+$strQueryFrame = 'Query window';
+$strQueryOnDb = 'SQL query on database <b>%s</b>:';
+$strQueryResultsOperations = 'Query results operations';
+$strQuerySQLHistory = 'SQL ඉතිහාසය';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+$strQueryTime = 'Query took %01.4f sec';
+$strQueryType = 'විමසුම් වර්ගය';
+$strQueryWindowLock = 'Do not overwrite this query from outside the window';
+
+$strReadRequests = 'Read requests';
+$strReceived = 'ලබන ලද';
+$strRecords = 'වාර්තා';
+$strReferentialIntegrity = 'Check referential integrity:';
+$strRefresh = 'අලුත් කරන්න';
+$strRelationalSchema = 'Relational schema';
+$strRelationNotWorking = 'The additional features for working with linked tables have been deactivated. To find out why click %shere%s.';
+$strRelationsForTable = 'RELATIONS FOR TABLE';
+$strRelations = 'Relations';
+$strRelationView = 'Relation view';
+$strReloadingThePrivileges = 'Reloading the privileges';
+$strReloadPrivileges = 'වරප්‍රසාද ප්‍රතිප්‍රවේශනය කරන්න';
+$strRemoveSelectedUsers = 'තෝරාගත් භාවිතා කරන්නන් ඉවත් කරන්න';
+$strRenameDatabaseOK = '%s දත්තගබඩාව %s බවට නම වෙනස් කරන ලදි';
+$strRenameTableOK = '%s වගුව %s බවට නම වෙනස් කරන ලදි';
+$strRenameTable = 'වගුව බවට නම වෙනස් කරන්න';
+$strRepairTable = 'වගුව ප්‍රතිසංස්කරණය කරන්න';
+$strReplaceNULLBy = 'Replace NULL by';
+$strReplaceTable = 'Replace table data with file';
+$strReplication = 'Replication';
+$strReset = 'ප්‍රතිසකසන්න';
+$strResourceLimits = 'සම්පත් සීමා';
+$strReType = 'නැවත ටයිප් කරන්න';
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.';
+$strRevokeAndDelete = 'Revoke all active privileges from the users and delete them afterwards.';
+$strRevokeMessage = 'You have revoked the privileges for %s';
+$strRevoke = 'Revoke';
+$strRomanian = 'රුමේනියානු';
+$strRowLength = 'පේළියේ දිග';
+$strRowsFrom = 'row(s) starting from record #';
+$strRowSize = 'පේළියේ ප්‍රමාණය';
+$strRowsModeFlippedHorizontal = 'horizontal (rotated headers)';
+$strRowsModeHorizontal = 'horizontal';
+$strRowsModeOptions = 'in %s mode and repeat headers after %s cells';
+$strRowsModeVertical = 'vertical';
+$strRows = 'පේළි';
+$strRowsStatistic = 'පේළි සංඛ්‍ය ලේඛන';
+$strRunning = '%s මත ධාවනය වේ';
+$strRunQuery = 'විමසුම ඉදිරිපත් කරන්න';
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s';
+$strRunSQLQuery = 'Run SQL query/queries on database %s';
+$strRussian = 'රුසියානු';
+
+$strSaveOnServer = 'සර්වරයේ %s ඩිරෙක්ටරියේ සේව් කරන්න';
+$strSave = 'සේව් කරන්න';
+$strScaleFactorSmall = 'The scale factor is too small to fit the schema on one page';
+$strSearchFormTitle = 'දත්තගබඩාවේ සොයන්න';
+$strSearchInTables = 'වගු(ව) තුල:';
+$strSearchNeedle = 'Word(s) or value(s) to search for (wildcard: "%"):';
+$strSearchOption1 = 'අවම වශයෙන් එක් වචනයක්වත්';
+$strSearchOption2 = 'සියලු වචන';
+$strSearchOption3 = 'හරියටම වාක්‍යාංශය';
+$strSearchOption4 = 'as regular expression';
+$strSearchResultsFor = '"<i>%s</i>" %s සඳහා සෙවීම් ප්‍රතිළුල:';
+$strSearch = 'සෙවීම';
+$strSearchType = 'සොයන්න:';
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).';
+$strSelectADb = 'කරුණාකර දත්තගබඩාවක් තෝරන්න';
+$strSelectAll = 'සියල්ල තෝරන්න';
+$strSelectBinaryLog = 'පෙන්වීම සඳහා ද්වීමය ලොගය තෝරන්න';
+$strSelectFields = 'Select fields (at least one):';
+$strSelectNumRows = 'in query';
+$strSelectTables = 'වගු තෝරන්න';
+$strSend = 'ගොනුවක් ලෙස තෝරන්න';
+$strSent = 'යවන ලද';
+$strServerChoice = 'සර්වරයේ තේරීම';
+$strServerNotResponding = 'සර්වරය ප්‍රතිචාර නොදක්වයි';
+$strServer = 'සර්වරය';
+$strServers = 'සර්වරයන්';
+$strServerStatusDelayedInserts = 'Delayed inserts';
+$strServerStatus = 'ධාවන කාල තොරතුරු';
+$strServerStatusUptime = 'This MySQL server has been running for %s. It started up on %s.';
+$strServerTabVariables = 'විචල්‍යනයන්';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strServerVars = 'Server variables and settings';
+$strServerVersion = 'සර්වරයේ සංස්කරණය';
+$strSessionValue = 'සැසි අගය';
+$strSetEnumVal = 'If field type is "enum" or "set", please enter the values using this format: \'a\',\'b\',\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strShowAll = 'සියල්ල පෙන්වන්න';
+$strShowColor = 'වර්ණය පෙන්වන්න';
+$strShowDatadictAs = 'දත්ත‍ Format';
+$strShowFullQueries = 'සම්පූර්ණ විමසුම් පෙන්වන්න';
+$strShowGrid = 'කොටු සැලැස්ම පෙන්වන්න';
+$strShowingBookmark = 'පොත් සලකුණ පෙන්වන්න';
+$strShowingRecords = 'පේළි පෙන්වන්න';
+$strShowOpenTables = 'විවෘත වගු පෙන්වන්න';
+$strShowPHPInfo = 'PHP තොරතුරු පෙන්වන්න';
+$strShow = 'පෙන්වන්න';
+$strShowSlaveHosts = 'උපදායකයන් පෙන්වන්න';
+$strShowSlaveStatus = 'උපතත්වයන් පෙන්වන්න';
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.';
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.';
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.';
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.';
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).';
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.';
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.';
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.';
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.';
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.';
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.';
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.';
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.';
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.';
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.';
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.';
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.';
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.';
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'නිදහස් පිටු ගණන.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.';
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.';
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.';
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.';
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.';
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.';
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.';
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.';
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.';
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.';
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.';
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.';
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.';
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.';
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.';
+$strShowStatusInnodb_pages_readDescr = 'කියවන ලද පිටු ගණන.';
+$strShowStatusInnodb_pages_writtenDescr = 'ලියන ලද පිටු ගණන.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.';
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.';
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.';
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.';
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.';
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.';
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.';
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.';
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.';
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.';
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.';
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.';
+$strShowStatusOpen_filesDescr = 'The number of files that are open.';
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).';
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.';
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.';
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.';
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.';
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.';
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).';
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.';
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.';
+$strShowStatusReset = 'Reset';
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).';
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.';
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.';
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)';
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)';
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.';
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.';
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.';
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.';
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.';
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.';
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.';
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.';
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.';
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.';
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.';
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.';
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.';
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)';
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.';
+$strShowTableDimension = 'Show dimension of tables';
+$strShowTables = 'වගු පෙන්වන්න';
+$strShowThisQuery = 'මෙම විමසුම මෙහි නැවත පෙන්වන්න ';
+$strSimplifiedChinese = 'සරලකරන ලද චීන';
+$strSingly = '(singly)';
+$strSize = 'ප්‍රමාණය';
+$strSkipQueries = 'Number of records(queries) to skip from start';
+$strSlovak = 'ස්ලෝවැකි';
+$strSlovenian = 'ස්ලෝවේනියානු';
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)';
+$strSortByKey = 'යතුර අනුව තෝරන්න';
+$strSorting = 'තේරීම';
+$strSort = '‍තෝරනවා';
+$strSpaceUsage = 'අවකාශ භාවිතය';
+$strSpanish = 'ස්පාඤ්ඤ';
+$strSplitWordsWithSpace = 'Words are separated by a space character (" ").';
+$strSQLCompatibility = 'SQL compatibility mode';
+$strSQLExportType = 'අපනයන වර්ගය';
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:';
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem';
+$strSQLQuery = 'SQL විමසුම';
+$strSQLResult = 'SQL ප්‍රතිළුල';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'වලංගු නොවන හඳුන්වනය';
+$strSQPBugUnclosedQuote = 'නොවසන ලද උද්ධරනය';
+$strSQPBugUnknownPunctuation = 'නොදන්නා විරාම අකුරු වැල';
+$strStatCheckTime = 'අවසන් පරීක්ෂාව';
+$strStatCreateTime = 'සෑදීම';
+$strStatement = 'ප්‍රකාශය';
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.';
+$strStatUpdateTime = 'අවසන් යාවත් කාලීන කිරීම';
+$strStatus = 'තත්වය';
+$strStorageEngines = 'ගබඩා යන්ත්‍ර';
+$strStorageEngine = 'ගබඩා යන්ත්‍ර‍';
+$strStrucCSV = 'CSV';
+$strStrucData = 'සැකිල්ල සහ දත්ත';
+$strStrucExcelCSV = 'MS එක්සෙල් සඳහා CSV ';
+$strStrucNativeExcel = 'Native MS Excel format';
+$strStrucOnly = 'Structure only';
+$strStructPropose = 'Propose table structure';
+$strStructure = 'සැකිල්ල';
+$strSubmit = 'ඉදිරිපත් කරන්න';
+$strSuccess = 'ඔබගේ SQL විමසුම සාර්ථකව ක්‍රියාවට නංවන ලදි';
+$strSum = 'එකතුව';
+$strSwedish = 'ස්වීඩීනියානු';
+$strSwitchToDatabase = 'Switch to copied database';
+$strSwitchToTable = 'Switch to copied table';
+
+$strTableAlreadyExists = ' %s වගුව දැනටමත් පවතී!';
+$strTableComments = 'වගු විස්තර';
+$strTableEmpty = 'වගුවෙහි නම හිස්ව ඇත!';
+$strTableHasBeenDropped = '%s වගුව හලන ලදි';
+$strTableHasBeenEmptied = '%s වගුව හිස් කරන ලදි';
+$strTableHasBeenFlushed = 'Table %s has been flushed';
+$strTableMaintenance = 'වගු නඩත්තුව';
+$strTableOfContents = 'පටුන';
+$strTableOptions = 'වගු විකල්ප';
+$strTables = '%s table(s)';
+$strTableStructure = 'වගුවක් සඳහා වගු සැකිල්ල';
+$strTable = 'වගුව';
+$strTakeIt = 'take it';
+$strTblPrivileges = 'Table-specific privileges';
+$strTempData = 'තාවකාලික දත්ත';
+$strTextAreaLength = ' Because of its length,<br /> this field might not be editable ';
+$strThai = 'තායි';
+$strThemeDefaultNotFound = '‍%s සාමාන්‍යයෙන් පවතින තේමාව සොයාගැනීමට නොමැත!';
+$strThemeNoPreviewAvailable = 'No preview available.';
+$strThemeNotFound = 'Theme %s not found!';
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!';
+$strThemePathNotFound = 'Theme path not found for theme %s!';
+$strTheme = 'තේමාව / ශෛලිය';
+$strThisHost = 'this host';
+$strThreads = 'ත්‍රෙඩයන්';
+$strThreadSuccessfullyKilled = 'Thread %s was successfully killed.';
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.';
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.';
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.';
+$strTime = 'වේලාව';
+$strToggleScratchboard = 'Toggle scratchboard';
+$strTotal = 'මුළු එකතුව';
+$strTotalUC = 'මුළු එකතුව';
+$strTraditionalChinese = 'සාම්ප්‍රධායික චීන';
+$strTraditionalSpanish = 'සාම්ප්‍රධායික ස්පාඤ්ඤ';
+$strTraffic = 'තදබදය';
+$strTransactionCoordinator = 'Transaction coordinator';
+$strTransformation_application_octetstream__download = 'Displays a link to download the binary data of the field. You can use the first option to specify the filename, or use the second option as the name of a field which contains the filename. If you use the second option, you need to set the first option to the empty string.';
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).';
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail. The options are the maximum width and height in pixels. The original aspect ratio is preserved.';
+$strTransformation_image_jpeg__link = 'Displays a link to download this image.';
+$strTransformation_image_png__inline = 'See image/jpeg: inline';
+$strTransformation_text_plain__external = 'LINUX ONLY: Launches an external application and feeds it the field data via standard input. Returns the standard output of the application. The default is Tidy, to pretty-print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and list the tools you want to make available. The first option is then the number of the program you want to use and the second option is the parameters for the program. The third option, if set to 1, will convert the output using htmlspecialchars() (Default 1). The fourth option, if set to 1, will prevent wrapping and ensure that the output appears all on one line (Default 1).';
+$strTransformation_text_plain__formatted = 'Displays the contents of the field as-is, without running it through htmlspecialchars(). That is, the field is assumed to contain valid HTML.';
+$strTransformation_text_plain__imagelink = 'Displays an image and a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second and third options are the width and the height in pixels.';
+$strTransformation_text_plain__link = 'Displays a link; the field contains the filename. The first option is a URL prefix like "http://www.example.com/". The second option is a title for the link.';
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.';
+$strTransformation_text_plain__substr = 'Displays a part of a string. The first option is the number of characters to skip from the beginning of the string (Default 0). The second option is the number of characters to return (Default: until end of string). The third option is the string to append and/or prepend when truncation occurs (Default: "...").';
+$strTruncateQueries = 'Truncate Shown Queries';
+$strTurkish = 'තුර්කියානු';
+$strType = 'වර්ගය';
+
+$strUkrainian = 'යුක්රේනියානු';
+$strUncheckAll = 'කතිර කොටුගත කිරීම ඉවත් කරන්න';
+$strUnicode = 'යුනිකෝඩ්';
+$strUnique = 'අනන්‍ය';
+$strUnknown = 'නොදන්නා';
+$strUnselectAll = 'සියල්ලේ තෝරාගැනීම ඉවත් කරන්න‍';
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.';
+$strUpdatePrivMessage = 'You have updated the privileges for %s.';
+$strUpdateProfileMessage = 'The profile has been updated.';
+$strUpdateQuery = 'Update Query';
+$strUpdComTab = 'Please see the documentation on how to update your column_comments table';
+$strUpgrade = 'You should upgrade to %s %s or later.';
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.';
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.';
+$strUsage = 'භාවිතය';
+$strUseBackquotes = 'Enclose table and field names with backquotes';
+$strUseHostTable = 'දායක වගුව භාවිතා කරන්න';
+$strUserAlreadyExists = '%s භාවිතා කරන්නා දැනටමත් පවතී!';
+$strUserEmpty = 'භාවිත නාමය හිස්ව පවතී!';
+$strUserName = 'භාවිත නාමය';
+$strUserNotFound = 'The selected user was not found in the privilege table.';
+$strUserOverview = 'User overview';
+$strUsersDeleted = 'The selected users have been deleted successfully.';
+$strUsersHavingAccessToDb = 'Users having access to &quot;%s&quot;';
+$strUser = 'භාවිතා කරන්නා';
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere';
+$strUseTables = 'Use Tables';
+$strUseTextField = 'Use text field';
+$strUseThisValue = 'Use this value';
+
+$strValidateSQL = 'Validate SQL';
+$strValidatorError = 'The SQL validator could not be initialized. Please check if you have installed the necessary PHP extensions as described in the %sdocumentation%s.';
+$strValue = 'Value';
+$strVar = 'Variable';
+$strVersionInformation = 'Version information';
+$strViewDumpDatabases = 'View dump (schema) of databases';
+$strViewDumpDB = 'View dump (schema) of database';
+$strViewDump = 'View dump (schema) of table';
+$strViewHasBeenDropped = 'View %s has been dropped';
+$strView = 'දර්ශනය කරන්න';
+
+$strWebServerUploadDirectoryError = 'අප්ලෝඩ් කිරීම් සඳහා සැකසූ ඩිරෙක්ටරිය වෙත පිවිසිය නොහැක';
+$strWebServerUploadDirectory = 'අන්තර්ජාල සර්වරයේ අප්ලෝඩ් ඩිරෙක්ටරිය';
+$strWelcome = '%s වෙත ආයුබෝවන්';
+$strWestEuropean = 'බටහිර යුරෝපියානු';
+$strWildcard = 'wildcard';
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window, or your browser\'s security settings are configured to block cross-window updates.';
+$strWithChecked = 'තෝරාගත්:';
+$strWriteRequests = 'ලිවීම සඳහා වූ ඉල්ලීම්';
+$strWrongUser = 'වැරදි භාවිත නාමය/මුරපදය. පිවිසුම වලක්වා ඇත.';
+
+$strXML = 'XML';
+
+$strYes = 'ඔව්';
+
+$strZeroRemovesTheLimit = 'සටහන: මෙම විකල්පය 0 (බිංදුවට) පත් කිරීම මගින්සීමා ඉවත් වනු ලැ‍‍බේ.';
+$strZip = '"සිප්ගත කරන ලද"';
+
+
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/slovak-utf-8.inc.php b/lang/slovak-utf-8.inc.php
new file mode 100644
index 0000000000..1778055acd
--- /dev/null
+++ b/lang/slovak-utf-8.inc.php
@@ -0,0 +1,1448 @@
+<?php
+/* $Id$ */
+
+/* By: lubos klokner <erkac@vault-tec.sk> */
+/* and Ivan Kuriscak <shylauda69@yahoo.com>
+ and Tomas Tatransky <tomas.tatransky@centrum.sk> */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ' ';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bajtov', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Ne', 'Po', 'Út', 'St', 'Št', 'Pi', 'So');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'Máj', 'Jún', 'Júl', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d.%B, %Y - %H:%M';
+$timespanfmt = '%s dní, %s hodín, %s minút a %s sekúnd';
+
+$strAbortedClients = 'Prerušené';
+$strAccessDeniedCreateConfig = 'Pravdepodobná príčina je, že neexistuje konfiguračný súbor. Na jeho vytvorenie môžete použiť %1$skonfiguračný skript%2$s.';
+$strAccessDeniedExplanation = 'phpMyAdmin sa pokúsil pripojiť k MySQL serveru ale ten spojenie odmietol. Skontrolujte prosím meno serveru, používateľské meno a heslo v súbore config.inc.php a s tým, ktoré ste dostali o administrátora MySQL servera.';
+$strAccessDenied = 'Prístup zamietnutý';
+$strAction = 'Akcia';
+$strAddAutoIncrement = 'Pridať hodnotu AUTO_INCREMENT';
+$strAddClause = 'Pridať %s';
+$strAddConstraints = 'Pridať obmedzenia';
+$strAddDeleteColumn = 'Pridať/Odobrať polia stĺpcov';
+$strAddDeleteRow = 'Pridať/Odobrať kritéria riadku';
+$strAddFields = 'Pridať %s položiek';
+$strAddHeaderComment = 'Pridať vlastný komentár do hlavičky (\\n oddeľuje riadky)';
+$strAddIntoComments = 'Pridať do komentárov';
+$strAddNewField = 'Pridať nové pole';
+$strAddPrivilegesOnDb = 'Pridať oprávnenia pre nasledujúcu databázu';
+$strAddPrivilegesOnTbl = 'Pridať oprávnenia pre nasledujúcu tabuľku';
+$strAddSearchConditions = 'Pridať vyhľadávacie parametre (obsah dopytu po "where" príkaze):';
+$strAddToIndex = 'Pridať do indexu &nbsp;%s&nbsp;stĺpec';
+$strAddUserMessage = 'Používateľ bol pridaný.';
+$strAddUser = 'Pridať nového používateľa';
+$strAdministration = 'Administrácia';
+$strAfterInsertBack = 'Späť';
+$strAfterInsertNewInsert = 'Vložiť nový záznam';
+$strAfterInsertNext = 'Upraviť nasledujúci riadok';
+$strAfterInsertSame = 'Späť na túto stránku';
+$strAfter = 'Po %s';
+$strAllowInterrupt = 'Povoliť prerušenie importu v prípade, že sa blíži časový limit behu skriptu. Týmto spôsobom sa môžu importovať aj veľké súbory, ale môže to zároveň spôsobiť problémy s transakciami.';
+$strAllTableSameWidth = 'zobraziť všetky tabuľky s rovnakou šírkou?';
+$strAll = 'Všetko';
+$strAlterOrderBy = 'Zmeniť poradie tabuľky podľa';
+$strAnalyzeTable = 'Analyzovať tabuľku';
+$strAnd = 'a';
+$strAndThen = 'a potom';
+$strAnIndex = 'Bol pridaný index pre %s';
+$strAny = 'Akýkoľvek';
+$strAnyHost = 'Akýkoľvek hostiteľ';
+$strAnyUser = 'Akýkoľvek používateľ';
+$strApproximateCount = 'Môže byť nepresné. Pozri FAQ 3.11';
+$strAPrimaryKey = 'Bol pridaný primárny kľúč pre %s';
+$strArabic = 'Arabština';
+$strArmenian = 'Arménština';
+$strAscending = 'Vzostupne';
+$strAtBeginningOfTable = 'Na začiatku tabuľky';
+$strAtEndOfTable = 'Na konci tabuľky';
+$strAttr = 'Atribúty';
+$strAutomaticLayout = 'Automatické rozvrhnutie';
+
+$strBack = 'Späť';
+$strBaltic = 'Baltické';
+$strBeginCut = 'ZAČIATOK VÝSEKU';
+$strBeginRaw = 'ZAČIATOK TOKU';
+$strBinary = 'Binárny';
+$strBinaryDoNotEdit = 'Binárny - neupravujte ';
+$strBinaryLog = 'Binárny log';
+$strBinLogEventType = 'Typ udalosti';
+$strBinLogInfo = 'Informácia';
+$strBinLogName = 'Názov logu';
+$strBinLogOriginalPosition = 'Pôvodná pozícia';
+$strBinLogPosition = 'Pozícia';
+$strBinLogServerId = 'ID servra';
+$strBookmarkAllUsers = 'Dovoliť používať túto položku všetkým používateľom';
+$strBookmarkCreated = 'Príkaz %s bol zaradený medzi obľúbené';
+$strBookmarkDeleted = 'Záznam z obľúbených bol zmazaný.';
+$strBookmarkLabel = 'Názov';
+$strBookmarkQuery = 'Obľúbený SQL dopyt';
+$strBookmarkReplace = 'Prepísať existujúci príkaz s rovnakým menom';
+$strBookmarkThis = 'Pridať tento SQL dopyt do obľúbených';
+$strBookmarkView = 'Iba prezrieť';
+$strBrowseDistinctValues = 'Prechádzať iné hodnoty';
+$strBrowseForeignValues = 'Prejsť hodnoty cudzích kľúčov';
+$strBrowse = 'Prechádzať';
+$strBufferPoolActivity = 'Aktivita Vyrovnávacej Pamäte';
+$strBufferPoolUsage = 'Využitie Vyrovnávacej Pamäte';
+$strBufferPool = 'Vyrovnávacia Pamäť';
+$strBufferReadMissesInPercent = 'Výpadkov pri čítaní v %';
+$strBufferReadMisses = 'Výpadkov pri čítaní';
+$strBufferWriteWaits = 'Čakaní na zápis';
+$strBufferWriteWaitsInPercent = 'Čakaní na zápis v %';
+$strBulgarian = 'Bulharsky';
+$strBusyPages = 'Spracovávaných stránok';
+$strBzip = '"bzipped"';
+
+$strCalendar = 'Kalendár';
+$strCanNotLoadExportPlugins = 'Nepodarilo sa načítať exportné pluginy, skontrolujte prosím vašu inštaláciu!';
+$strCanNotLoadImportPlugins = 'Nebolo možné načítať importovacie pluginy, skontrolujte prosím vašu inštaláciu!';
+$strCannotLogin = 'Nedá sa prihlásiť k MySQL serveru';
+$strCantLoad = 'nedá sa nahrať rozšírenie %s,<br />prosím skontrolujte konfiguráciu PHP';
+$strCantLoadRecodeIconv = 'Nie je možné nahrať rozšírenie iconv alebo recode potrebné pre prevod znakových sad. Upravte nastavenie php tak aby umožňovalo použiť tieto rozšírenia alebo vypnite túto vlastnosť v konfigurácii phpMyAdmina.';
+$strCantRenameIdxToPrimary = 'Nie je možné premenovať index na PRIMARY!';
+$strCantUseRecodeIconv = 'Nie je možné použiť funkcie iconv, libiconv a recode_string aj napriek tomu, že rozšírenia sú nahrané. Skontrolujte prosím nastavenie PHP.';
+$strCardinality = 'Mohutnosť';
+$strCaseInsensitive = 'nerozlišovať veľké a malé písmená';
+$strCaseSensitive = 'rozlišovať veľké a malé písmená';
+$strCentralEuropean = 'Stredná Európa';
+$strChangeCopyModeCopy = '... zachovať pôvodného používateľa.';
+$strChangeCopyModeDeleteAndReload = ' ... zmazať pôvodného používateľa z tabuliek používateľov a potom znovunačítať oprávnenia.';
+$strChangeCopyModeJustDelete = ' ... zmazať pôvodného používateľa z tabuliek používateľov.';
+$strChangeCopyModeRevoke = ' ... odobrať všetky oprávnenia pôvodnému používateľovi a následne ho zmazať.';
+$strChangeCopyMode = 'Vytvoriť používateľa s rovnakými právami a...';
+$strChangeCopyUser = 'Zmeniť informácie o používateľovi / Kopírovať používateľa';
+$strChangeDisplay = 'Zvolte, ktoré pole zobraziť';
+$strChangePassword = 'Zmeniť heslo';
+$strChange = 'Zmeniť';
+$strCharsetOfFile = 'Znaková sada súboru:';
+$strCharsetsAndCollations = 'Znakové sady a Zotriedenia';
+$strCharsets = 'Znakové sady';
+$strCharset = 'Znaková sada';
+$strCheckAll = 'Označiť všetko';
+$strCheckOverhead = 'Zvoliť neoptimálne';
+$strCheckPrivsLong = 'Skontrolovať oprávnenia pre databázu &quot;%s&quot;.';
+$strCheckPrivs = 'Skontrolovať oprávnenia';
+$strCheckTable = 'Skontrolovať tabuľku';
+$strChoosePage = 'Prosím zvolte si Stránku, ktorú chcete upraviť';
+$strColComFeat = 'Zobrazovať komentáre stĺpcov';
+$strCollation = 'Zotriedenie';
+$strColumnNames = 'Názvy stĺpcov';
+$strColumnPrivileges = 'Oprávnenia pre jednotlivé stĺpce';
+$strCommand = 'Príkaz';
+$strComments = 'Komentáre';
+$strCompatibleHashing = 'Kompatibilné s&nbsp;MySQL&nbsp;4.0';
+$strCompleteInserts = 'Úplné vloženie';
+$strCompression = 'Kompresia';
+$strCompressionWillBeDetected = 'Kompresia importovaného súboru bude rozpoznaná automaticky. Podporované: %s';
+$strConfigDefaultFileError = 'Nepodarilo sa načítať prednastavenú konfiguráciu zo súboru: "%1$s"';
+$strConfigFileError = 'phpMyAdmin nebol schopný načítať konfiguračný súbor!<br />Tento problém sa zvyčajne vyskytne ak súbor obsahuje chybu alebo ho php nemohlo nájsť.<br />Zavolajte browserom tento súbor priamo použitím nasledujúceho odkazu na získanie chybových hlášok, ktoré sú ním spôsobené. Väčšinou sa jedná o chýbajúcu úvodzovku alebo bodkočiarku.<br />Ak dostanete iba prázdnu stránku, všetko je v poriadku.';
+$strConfigureTableCoord = 'Prosím skonfigurujte koordináty pre tabuľku %s';
+$strConnectionError = 'Nepodarilo sa pripojiť: chybné nastavenia.';
+$strConnections = 'Spojenia';
+$strConstraintsForDumped = 'Obmedzenie pre exportované tabuľky';
+$strConstraintsForTable = 'Obmedzenie pre tabuľku';
+$strCookiesRequired = 'Cookies musia byť povolené, pokiaľ chcete pokračovať.';
+$strCopyDatabaseOK = 'Databáza %s bola skopírovaná na %s';
+$strCopy = 'Kopírovať';
+$strCopyTableOK = 'Tabuľka %s bola skorírovaná do %s.';
+$strCopyTableSameNames = 'Nedá sa skopírovať tabuľka sama do seba!';
+$strCopyTable = 'Skopírovať tabuľku do (databáza<b>.</b>tabuľka):';
+$strCouldNotKill = 'Neporadilo za zabiť vlákno %s. Jeho beh bol pravdepodobne už ukončený.';
+$strCreateDatabaseBeforeCopying = 'Vytvoriť databázu (CREATE DATABASE) pred kopírovaním';
+$strCreateIndexTopic = 'Vytvoriť nový index';
+$strCreateIndex = 'Vytvoriť index na&nbsp;%s&nbsp;stĺpcoch';
+$strCreateNewDatabase = 'Vytvoriť novú databázu';
+$strCreateNewTable = 'Vytvoriť novú tabuľku v databáze %s';
+$strCreatePage = 'Vytvoriť novú Stránku';
+$strCreatePdfFeat = 'Vytváranie PDF';
+$strCreateUserDatabase = 'Databáza pre používateľa';
+$strCreateUserDatabaseName = 'Vytvoriť databázu s rovnakým menom a prideliť všetky oprávnenia';
+$strCreateUserDatabaseNone = 'Žiadna';
+$strCreateUserDatabaseWildcard = 'Prideliť všetky oprávnenia pomocou masky (používateľ_%)';
+$strCreate = 'Vytvoriť';
+$strCreationDates = 'Dátum vytvorenia, poslednej zmeny a kontroly';
+$strCriteria = 'Kritéria';
+$strCroatian = 'Chorvátsky';
+$strCSV = 'CSV';
+$strCyrillic = 'Cyrilika';
+$strCzech = 'Česky';
+$strCzechSlovak = 'Čeština/Slovenčina';
+
+$strDanish = 'Dánsky';
+$strDatabase = 'Databáza';
+$strDatabaseEmpty = 'Meno databázy je prázdne!';
+$strDatabaseExportOptions = 'Nastavenia exportu databáz';
+$strDatabaseHasBeenDropped = 'Databáza %s bola zmazaná.';
+$strDatabases = 'Databázy';
+$strDatabasesDropped = 'Úspešne zrušených databáz: %s.';
+$strDatabasesStatsDisable = 'Skryť štatistiky';
+$strDatabasesStatsEnable = 'Zobraziť štatistiky';
+$strDatabasesStatsHeavyTraffic = 'Poznámka: Aktivovanie štatistík databázy môže spôsobiť značné zvýšenie sieťovej prevádzky medzi databázou a web serverom.';
+$strDatabasesStats = 'Štatistiky databázy';
+$strData = 'Dáta';
+$strDataDict = 'Dátový slovník';
+$strDataOnly = 'Iba dáta';
+$strDataPages = 'Stránky obsahujúce dáta';
+$strDBComment = 'Komentár k databáze: ';
+$strDBCopy = 'Skopírovať databázu na';
+$strDbPrivileges = 'Oprávnenia pre jednotlivé databázy';
+$strDBRename = 'Premenovať databázu na';
+$strDbSpecific = 'závislé na databáze';
+$strDefaultEngine = 'Na tomto MySQL servri je prednastaveným úložným systémom %s.';
+$strDefault = 'Predvolené';
+$strDefaultValueHelp = 'Pre predvolené hodnoty, prosím zadajte iba jednu hodnotu bez úvodzoviek alebo uvádzacích znakov, napr.: a';
+$strDefragment = 'Defragmentovať tabuľku';
+$strDelayedInserts = 'Použiť oneskorené vloženia';
+$strDeleteAndFlushDescr = 'Toto je najčistejšie riešenie, ale znovunačítanie práv môže chvíľu trvať.';
+$strDeleteAndFlush = 'Odstrániť používateľov a znovunačítať práva.';
+$strDeleted = 'Riadok bol zmazaný';
+$strDeleteNoUsersSelected = 'Na odstránenie neboli vybraní žiadni používatelia!';
+$strDelete = 'Zmazať';
+$strDeleting = 'Odstraňuje sa %s';
+$strDelimiter = 'Oddeľovač';
+$strDelOld = 'Aktuálna stránka sa odkazuje na tabuľky, ktoré už neexistujú, želáte si odstrániť tieto odkazy?';
+$strDescending = 'Zostupne';
+$strDescription = 'Popis';
+$strDictionary = 'slovník';
+$strDirtyPages = 'Zmenených stránok';
+$strDisabled = 'Vypnuté';
+$strDisableForeignChecks = 'Vypnúť kontrolu cudzích kľúčov';
+$strDisplayFeat = 'Zobraziť vlastnosti';
+$strDisplayOrder = 'Zobraziť zoradené:';
+$strDisplayPDF = 'Zobraziť schému PDF';
+$strDoAQuery = 'Vykonať "dopyt podľa príkladu" (nahradzujúci znak: "%")';
+$strDocu = 'Dokumentácia';
+$strDoYouReally = 'Skutočne chcete vykonať príkaz ';
+$strDropDatabaseStrongWarning = 'Chystáte sa ZRUŠIŤ celú databázu!';
+$strDrop = 'Odstrániť';
+$strDropUsersDb = 'Odstrániť databázy s rovnakým menom ako majú používatelia.';
+$strDumpingData = 'Sťahujem dáta pre tabuľku';
+$strDumpSaved = 'Dump (schéma) bol uložený do súboru %s.';
+$strDumpXRows = 'Zobraziť %s riadkov od riadku %s.';
+$strDynamic = 'dynamický';
+
+$strEditPDFPages = 'Upraviť PDF Stránky';
+$strEditPrivileges = 'Upraviť oprávnenia';
+$strEdit = 'Upraviť';
+$strEffective = 'Efektívny';
+$strEmptyResultSet = 'MySQL vrátil prázdny výsledok (tj. nulový počet riadkov).';
+$strEmpty = 'Vyprázdniť';
+$strEnabled = 'Zapnuté';
+$strEncloseInTransaction = 'Uzatvoriť príkazy v transakcii';
+$strEndCut = 'KONIEC VÝSEKU';
+$strEnd = 'Koniec';
+$strEndRaw = 'KONIEC TOKU';
+$strEngineAvailable = 'Úložný systém %s je na tomto MySQL servri dostupný.';
+$strEngineDisabled = 'Úložný systém %s bol na tomto MySQL servri deaktivovaný.';
+$strEngines = 'Systémy';
+$strEngineUnsupported = 'Tento MySQL server nepodporuje úložný systém %s.';
+$strEnglish = 'Anglicky';
+$strEnglishPrivileges = ' Poznámka: názvy MySQL oprávnení sú uvádzané v angličtine. ';
+$strError = 'Chyba';
+$strErrorInZipFile = 'Chyba v ZIP archíve:';
+$strErrorRenamingTable = 'Chyba pri premenovaní tabuľky %1$s na %2$s';
+$strEscapeWildcards = 'Náhradzujúcim znakom _ a % by mal predchádzať znak \, pokiaľ ich nechcete použiť doslovne';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estónsky';
+$strExcelEdition = 'Verzia Excelu';
+$strExecuteBookmarked = 'Spustiť obľúbený dopyt';
+$strExplain = 'Vysvetliť SQL';
+$strExport = 'Exportovať';
+$strExportMustBeFile = 'Vybraný typ exportu musí byť uložený do súboru!';
+$strExtendedInserts = 'Rozšírené vkladanie';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Nepodarených pokusov';
+$strFieldHasBeenDropped = 'Pole %s bolo odstránené';
+$strField = 'Pole';
+$strFieldsEnclosedBy = 'Polia uzatvorené';
+$strFieldsEscapedBy = 'Polia uvedené pomocou';
+$strFields = 'Polia';
+$strFieldsTerminatedBy = 'Polia ukončené';
+$strFileAlreadyExists = 'Súbor %s už existuje na servery, zmente názov súboru alebo zvolte prepísanie súboru.';
+$strFileCouldNotBeRead = 'Súbor sa nedá prečítať';
+$strFileNameTemplateDescriptionDatabase = 'meno databázy';
+$strFileNameTemplateDescriptionServer = 'meno servera';
+$strFileNameTemplateDescriptionTable = 'meno tabuľky';
+$strFileNameTemplateDescription = 'Táto hodnota je interpretovaná pomocou %1$sstrftime%2$s, takže môžete použiť reťazec pre formátovanie dátumu a času. Naviac budú vykonané tieto nahradenia: %3$s. Ostatný text bude zachovaný.';
+$strFileNameTemplateRemember = 'zapamätať si vzor';
+$strFileNameTemplate = 'Vzor pre názov súboru';
+$strFileToImport = 'Súbor na importovanie';
+$strFixed = 'pevný';
+$strFlushPrivilegesNote = 'Poznámka: phpMyAdmin získava práva používateľov priamo z tabuliek MySQL. Obsah týchto tabuliek sa môže líšiť od práv, ktoré používa server, ak boli tieto tabuľky ručne upravené. V tomto prípade sa odporúča vykonať %sznovunačítanie práv%s predtým ako budete pokračovať.';
+$strFlushQueryCache = 'Vyprázdniť vyrovnávaciu pamäť príkazov';
+$strFlushTables = 'Vyprázdniť (uzavrieť) všetky tabuľky';
+$strFlushTable = 'Vyprázdniť tabuľku ("FLUSH")';
+$strFormat = 'Formát';
+$strFormEmpty = 'Chýbajúca položka vo formulári !';
+$strFreePages = 'Prázdnych stránok';
+$strFullText = 'Plné texty';
+$strFunction = 'Funkcia';
+$strFunctions = 'Funkcie';
+
+$strGenBy = 'Vygenerované';
+$strGeneralRelationFeat = 'Možnosti všeobecných vzťahov';
+$strGeneratePassword = 'Vytvoriť Heslo';
+$strGenerate = 'Vytvoriť';
+$strGenTime = 'Vygenerované:';
+$strGeorgian = 'Gruzínčina';
+$strGerman = 'Nemecky';
+$strGlobal = 'globálny';
+$strGlobalPrivileges = 'Globálne práva';
+$strGlobalValue = 'Globálna hodnota';
+$strGo = 'Vykonaj';
+$strGrantOption = 'Prideliť';
+$strGreek = 'Gréčtina';
+$strGzip = '"gzip-ované"';
+
+$strHandler = 'Manipulačná Rutina';
+$strHasBeenAltered = 'bola zmenená.';
+$strHaveToShow = 'Zvolte prosím aspoň jeden stĺpec, ktorý chcete zobraziť';
+$strHebrew = 'Hebrejsky';
+$strHome = 'Domov';
+$strHomepageOfficial = 'Oficiálne stránky phpMyAdmin';
+$strHostEmpty = 'Názov hostiteľa je prázdny!';
+$strHost = 'Hostiteľ';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Maďarsky';
+
+$strIcelandic = 'Islandčina';
+$strId = 'ID';
+$strIdxFulltext = 'Celý text';
+$strIgnoreDuplicates = 'Ignorovať opakujúce sa riadky';
+$strIgnore = 'Ignorovať';
+$strIgnoreInserts = 'Použiť IGNORE';
+$strImportFiles = 'Importovať súbory';
+$strImportFormat = 'Formát importovaného súboru';
+$strImport = 'Import';
+$strImportSuccessfullyFinished = 'Import bol úspešne ukončený, bolo vykonaných %d dopytov.';
+$strIndexes = 'Indexy';
+$strIndexHasBeenDropped = 'Index pre %s bol odstránený';
+$strIndex = 'Index';
+$strIndexName = 'Meno indexu&nbsp;:';
+$strIndexType = 'Typ indexu&nbsp;:';
+$strIndexWarningTable = 'Problémy s indexami v tabuľke `%s`';
+$strInnoDBAutoextendIncrementDesc = ' Veľkosť, o ktorú je zväčšený automaticky sa zväčšujúci priestor tabuľky pri zaplnení.';
+$strInnoDBAutoextendIncrement = 'Navýšenie pri automatickom zväčšovaní';
+$strInnoDBBufferPoolSizeDesc = 'Veľkosť pamäte, ktorú InnoDB používa pre cachovanie dát a indexov tabuliek.';
+$strInnoDBBufferPoolSize = 'Veľkosť vyrovnávacej pamäte';
+$strInnoDBDataFilePath = 'Súbory s dátami';
+$strInnoDBDataHomeDirDesc = 'Spoločná časť cesty k adresáru s InnoDB súbormi s dátami.';
+$strInnoDBDataHomeDir = 'Domovský adresár pre dáta';
+$strInnoDBPages = 'stránok';
+$strInnodbStat = 'Stav InnoDB';
+$strInsecureMySQL = 'Konfiguračný súbor obsahuje nastavenia (root bez hesla), ktoré zodpovedajú predvolenému privilegovanému MySQL účtu. Ak MySQL server beží s týmto nastavením, nie je zabezpečený proti napadnutiu, táto bezpečnostná chyba by mala byť urýchlene odstránená.';
+$strInsertAsNewRow = 'Vložiť ako nový riadok';
+$strInsert = 'Vložiť';
+$strInternalRelations = 'Interné vzťahy';
+$strInUse = 'práve sa používa';
+$strInvalidAuthMethod = 'V konfigurácii je nastavená nesprávna autentifikačná metóda:';
+$strInvalidColumn = 'Bol zadaný chybný stĺpec (%s)!';
+$strInvalidColumnCount = 'Počet stĺpcov musí byť väčší ako nula.';
+$strInvalidCSVFieldCount = 'Chybný počet položiek v CSV vstupe na riadku %d.';
+$strInvalidCSVFormat = 'Chybný formát v CSV vstupe na riadku %d.';
+$strInvalidCSVParameter = 'Chybný parameter pre CSV import: %s';
+$strInvalidDatabase = 'Chybná databáza';
+$strInvalidFieldAddCount = 'Musíte pridať aspoň jeden stĺpec.';
+$strInvalidFieldCount = 'Tabuľka musí obsahovať aspoň jeden stĺpec.';
+$strInvalidLDIImport = 'Tento plug-in nepodporuje import komprimovaných súborov!';
+$strInvalidRowNumber = '%d nie je platné číslo riadku.';
+$strInvalidServerHostname = 'Chybný názov hostu pre server %1$s. Prosím, skontrolujte konfiguráciu.';
+$strInvalidServerIndex = 'Chybný index serveru: "%s"';
+$strInvalidTableName = 'Chybné meno tabuľky';
+
+$strJapanese = 'Japončina';
+$strJoins = 'Zjednotenia';
+$strJumpToDB = 'Na databázu &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Odstránení&quot; používatelia budú mať k serveru ako predtým až do znovunačítania práv.';
+$strJustDelete = 'Iba odstrániť používateľlov z tabuliek práv.';
+
+$strKeepPass = 'Nezmeniť heslo';
+$strKeyCache = 'Vyrovnávacia pamäť kľúčov';
+$strKeyname = 'Kľúčový názov';
+$strKill = 'Zabiť';
+$strKorean = 'Kórejčina';
+
+$strLandscape = 'Na šírku';
+$strLanguageUnknown = 'Neznámy jazyk: %1$s.';
+$strLatchedPages = 'Uzavretých stránok';
+$strLatexCaption = 'Nadpis tabuľky';
+$strLatexContent = 'Obsah tabuľky __TABLE__';
+$strLatexContinuedCaption = 'Nadpis pokračovania tabuľky';
+$strLatexContinued = '(pokračovanie)';
+$strLatexIncludeCaption = 'Zahrnúť nadpis tabuľky';
+$strLatexLabel = 'Návestie';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Štruktúra tabuľky __TABLE__';
+$strLatvian = 'Lotyšstina';
+$strLDI = 'CSV pomocou LOAD DATA';
+$strLDILocal = 'Použiť kľúčové slovo LOCAL';
+$strLengthSet = 'Dĺžka/Nastaviť*';
+$strLimitNumRows = 'záznamov na stránku';
+$strLinesTerminatedBy = 'Riadky ukončené';
+$strLinkNotFound = 'Linka nebola nájdená';
+$strLinksTo = 'Linkovať na';
+$strLithuanian = 'Litovsky';
+$strLocalhost = 'Lokálny';
+$strLocationTextfile = 'Lokácia textového súboru';
+$strLoginInformation = 'Prihlásenie';
+$strLogin = 'Login';
+$strLogout = 'Odhlásiť sa';
+$strLogPassword = 'Heslo:';
+$strLogServer = 'Server';
+$strLogUsername = 'Používateľ:';
+$strLongOperation = 'Táto operácia môže trvať veľmi dlho. Chcete ju aj napriek tomu vykonať?';
+
+$strMaxConnects = 'max. súčasných pripojení';
+$strMaximalQueryLength = 'Maximálna veľkosť vytvoreného príkazu';
+$strMaximumSize = 'Maximálna veľkosť: %s%s';
+$strMbExtensionMissing = 'Mbstring rozšírenie pre PHP nebolo nájdené a zjavne používate viacbajtovú znakovú sadu. Bez tohto rozšírenia nie je phpMyAdmin schopný korektne rozdeľovať reťazce kódované v týchto znakových sadách a môže to viesť k nečakaným výsledkom.';
+$strMbOverloadWarning = 'V nastavení PHP je aktívna funkcia mbstring.func_overload, ktorá nie je kompatibilná s phpMyAdmin-om a môže spôsobiť stratu dát!';
+$strMIME_available_mime = 'Dostupné MIME typy';
+$strMIME_available_transform = 'Dostupné transformácie';
+$strMIME_description = 'Popis';
+$strMIME_MIMEtype = 'MIME typ';
+$strMIME_nodescription = 'Nie je dostupný žiadny popis pre túto transformáciu.<br />Kontaktujte autora, ktorý %s vytára.';
+$strMIME_transformation_note = 'Pre zoznam dostupných parametrov a ich MIME typov kliknite na %spopisy transformácií';
+$strMIME_transformation_options_note = 'Prosím zadajte hodnoty pre parametre transformácie v nasledujúcom tvare: \'a\', 100, b,\'c\'...<br />Ak potrebujete použiť spätné lomítko ("\") alebo jednoduché úvodzovky ("\'") medzi týmito hodnotami, vložte pred nich spätné lomítko (napr. \'\\\\xyz\' alebo \'a\\\'b\').';
+$strMIME_transformation_options = 'Parametre transformácie';
+$strMIME_transformation = 'Transformácia pri prehliadaní';
+$strMIMETypesForTable = 'MIME TYPY PRE TABUĽKU';
+$strMIME_without = 'MIME typy zobrazené kurzívou nemajú vlastnú transformačnú funkciu';
+$strModifications = 'Zmeny boli uložené';
+$strModifyIndexTopic = 'Modifikovať index';
+$strModify = 'Zmeniť';
+$strMoveTableOK = 'Tabuľka %s bola presunutá do %s.';
+$strMoveTable = 'Presunúť tabuľku do (databáza<b>.</b>tabuľka):';
+$strMoveTableSameNames = 'Nedá sa presunúť tabuľka sama do seba!';
+$strMultilingual = 'mnohojazyčný';
+$strMyISAMDataPointerSizeDesc = 'Prednastavená veľkosť smerníka na dáta v bajtoch, používaná pri vytváraní MyISAM tabuliek príkazom CREATE TABLE, v prípade keď nie je zadaná hodnota MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Veľkosť smerníka na dáta';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Ak je veľkosť dočasného súboru, použitého pre rýchlejšie vytváranie MyISAM indexov, väčšia ako pri použití cache, použije sa metóda cachovania indexu.';
+$strMyISAMMaxExtraSortFileSize = 'Maximálna veľkosť dočasných súborov pre vytvorenie indexu';
+$strMyISAMMaxSortFileSizeDesc = 'Maximálna veľkosť dočasného súboru, ktorý môže MySQL použiť pri obnove MyISAM indexu (počas vykonávania príkazov REPAIR TABLE, ALTER TABLE alebo LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maximálna veľkosť dočasných zoraďovacích súborov';
+$strMyISAMRecoverOptionsDesc = 'Režim automatickej obnovy poškodených MyISAM tabuliek, ktorý sa dá nastaviť parametrom --myisam-recover pri spúšťaní servra.';
+$strMyISAMRecoverOptions = 'Režim automatickej obnovy';
+$strMyISAMRepairThreadsDesc = 'Ak je táto hodnota vyššia ako 1, počas procesu Opravy Zoradením sú indexy MyISAM tabuľky vytvárané paralelne (každý index vo svojom vlákne).';
+$strMyISAMRepairThreads = 'Opravné vlákna';
+$strMyISAMSortBufferSizeDesc = 'Pamäť, ktorá je alokovaná pri zoraďovaní MyISAM indexov počas vykonávania príkazu REPAIR TABLE, alebo pri vytváraní indexov príkazmi CREATE INDEX alebo ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Veľkosť zoraďovacej pamäte';
+$strMySQLCharset = 'Znaková sada v MySQL';
+$strMysqlClientVersion = 'Verzia MySQL klienta';
+$strMySQLConnectionCollation = 'Overenie MySQL spojenia';
+$strMySQLSaid = 'MySQL hlási: ';
+$strMySQLShowProcess = 'Zobraziť procesy';
+
+$strName = 'Názov';
+$strNext = 'Ďalší';
+$strNoActivity = 'Boli ste neaktívni viac ako %s sekúnd, prihláste sa prosím znovu';
+$strNoDatabasesSelected = 'Neboli vybrané žiadne databázy.';
+$strNoDatabases = 'Žiadne databázy';
+$strNoDataReceived = 'Neboli prijaté žiadne dáta na import. Buď nebol načítaný žiadny súbor alebo jeho veľkosť prekročila maximálnu veľkosť povolenú v PHP. Pozri FAQ 1.16.';
+$strNoDescription = 'bez Popisu';
+$strNoDetailsForEngine = 'Pre tento úložný systém nie sú dostupné žiadne podrobnejšie informácie.';
+$strNoDropDatabases = 'Možnosť "DROP DATABASE" vypnutá.';
+$strNoExplain = 'Preskočiť vysvetlenie SQL';
+$strNoFilesFoundInZip = 'V ZIP archíve neboli nájdené žiadne súbory!';
+$strNoFrames = 'phpMyAdmin funguje lepšie s prehliadačmi podporujúcimi <b>rámy</b>.';
+$strNoIndex = 'Nebol definovaný žiadny index!';
+$strNoIndexPartsDefined = 'Časti indexu neboli definované!';
+$strNoModification = 'Žiadna zmena';
+$strNone = 'Žiadny';
+$strNo = 'Nie';
+$strNoOptions = 'Tento formát nemá žiadne nastavenia';
+$strNoPassword = 'Žiadne heslo';
+$strNoPermission = 'Web server nemá oprávenia na uloženie do súboru %s.';
+$strNoPhp = 'bez PHP kódu';
+$strNoPrivileges = 'Žiadne oprávnenia';
+$strNoRights = 'Nemáte dostatočné práva na vykonanie tejto akcie!';
+$strNoRowsSelected = 'Nebol vybraný žiadny riadok';
+$strNoSpace = 'Nedostatok miesta pre uloženie súboru %s.';
+$strNoTablesFound = 'Neboli nájdené žiadne tabuľky v tejto datábaze.';
+$strNoThemeSupport = 'Zmena vzhľadu nie je podporovaná, skontrolujte si nastavenia a vzhľady v adresári %s.';
+$strNotNumber = 'Toto nie je číslo!';
+$strNotOK = 'chyba';
+$strNotSet = 'Tabuľka <b>%s</b> nebola nájdená alebo nie je nastavená v %s';
+$strNoUsersFound = 'Nebol nájdený žiadny používateľ.';
+$strNoValidateSQL = 'Preskočiť potvrdenie platnosti SQL';
+$strNull = 'Nulový';
+$strNumberOfFields = 'Počet polí';
+$strNumSearchResultsInTable = '%s výskyt(ov)v tabuľke <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Celkovo:</b> <i>%s</i> výskyt(ov)';
+$strNumTables = 'Tabuľky';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Tabuľkový procesor Open Document';
+$strOpenDocumentText = 'Open Document Text';
+$strOpenNewWindow = 'Otvoriť nové okno phpMyAdmina';
+$strOperations = 'Operácie';
+$strOperator = 'Operátor';
+$strOptimizeTable = 'Optimalizovať tabuľku';
+$strOr = 'alebo';
+$strOverhead = 'Naviac';
+$strOverwriteExisting = 'Prepísať existujúci súbor(y)';
+
+$strPageNumber = 'Číslo stránky:';
+$strPagesToBeFlushed = 'Stránok určených k uvoľneniu';
+$strPaperSize = 'Veľkosť stránky';
+$strPartialImport = 'Čiastočný import';
+$strPartialText = 'Čiastočné texty';
+$strPasswordChanged = 'Heslo pre %s bolo úspešne zmenené.';
+$strPasswordEmpty = 'Heslo je prázdne!';
+$strPasswordHashing = 'Hashovanie hesla';
+$strPassword = 'Heslo';
+$strPasswordNotSame = 'Heslá sa nezhodujú!';
+$strPdfDbSchema = 'Schéma databázy "%s" - Strana %s';
+$strPdfInvalidTblName = 'Tabuľka "%s" neexistuje!';
+$strPdfNoTables = 'Žiadne tabuľky';
+$strPDF = 'PDF';
+$strPDFReportTitle = 'Titulok výpisu';
+$strPerHour = 'za hodinu';
+$strPerMinute = 'za minútu';
+$strPerSecond = 'za sekundu';
+$strPersian = 'Perština';
+$strPhoneBook = 'adresár';
+$strPHPVersion = 'Verzia PHP';
+$strPhp = 'Vytvoriť PHP kód';
+$strPmaDocumentation = 'phpMyAdmin Dokumentácia';
+$strPmaUriError = 'Direktíva <tt>$cfg[\'PmaAbsoluteUri\']</tt> v konfiguračnom súbore MUSÍ byť nastavená!';
+$strPolish = 'Poľština';
+$strPortrait = 'Na výšku';
+$strPos1 = 'Začiatok';
+$strPrevious = 'Predchádzajúci';
+$strPrimaryKeyHasBeenDropped = 'Primárny kľúč bol zrušený';
+$strPrimaryKeyName = 'Názov primárneho kľúča musí byť... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>musí</b> byť <b>iba</b> meno primárneho kľúča!)';
+$strPrimary = 'Primárny';
+$strPrintViewFull = 'Náhľad tlače (s kompletnými textami)';
+$strPrintView = 'Náhľad k tlači';
+$strPrint = 'Vytlačiť';
+$strPrivDescAllPrivileges = 'Všetky oprávnenia okrem GRANT.';
+$strPrivDescAlter = 'Povolí meniť štruktúru existujúcich tabuliek.';
+$strPrivDescAlterRoutine = 'Umožňuje upravovať a odstraňovať uložené procedúry.';
+$strPrivDescCreateDb = 'Povolí vytváranie nových databáz a tabuliek.';
+$strPrivDescCreateRoutine = 'Umožňuje vytvárať uložené procedúry.';
+$strPrivDescCreateTbl = 'Povolí vytváranie nových tabuliek.';
+$strPrivDescCreateTmpTable = 'Povolí vytváranie dočasných tabuliek.';
+$strPrivDescCreateUser = 'Umožňuje vytvárať, odstraňovať a premenovávať používateľské kontá.';
+$strPrivDescCreateView = 'Umožňuje vytvárať nové pohľady.';
+$strPrivDescDelete = 'Povolí mazanie dát.';
+$strPrivDescDropDb = 'Povolí odstraňovanie databáz a tabuliek.';
+$strPrivDescDropTbl = 'Povolí odstraňovanie tabuliek.';
+$strPrivDescExecute5 = 'Umožňuje spúšťať uložené procedúry.';
+$strPrivDescExecute = 'Povolí spúšťanie uložených procedúr. Nefunguje v tejto verzii MySQL.';
+$strPrivDescFile = 'Povolí importovanie a exportovanie dát zo/do súborov na serveri.';
+$strPrivDescGrant = 'Povolí pridávanie uživatelov a práv bez znovunačítania tabuliek práv.';
+$strPrivDescIndex = 'Povolí vytváranie a mazanie indexov.';
+$strPrivDescInsert = 'Povolí vkladanie a nahradzovanie dát.';
+$strPrivDescLockTables = 'Povolí zmaknutie tabuliek pre aktuálne vlákno.';
+$strPrivDescMaxConnections = 'Obmedzí počet nových spojení, ktoré môže používateľ vytvoriť za hodinu.';
+$strPrivDescMaxQuestions = 'Obmedzí počet dopytov, ktoré môže používateľ odoslať za hodinu.';
+$strPrivDescMaxUpdates = 'Obmedzí počet príkazov meniacich tabuľku alebo databázu, ktorá môže používateľ odoslať za hodinu.';
+$strPrivDescMaxUserConnections = 'Obmedzuje počet simultánnych pripojení používateľa.';
+$strPrivDescReferences = 'Nefunguje v tejto verzii MySQL.';
+$strPrivDescReload = 'Povolí znovunačítanie nastavení a vyprázdňovanie vyrovnávacích pamätí serveru.';
+$strPrivDescReplClient = 'Povolí používateľovi zistiť kde je hlavný / pomocný server.';
+$strPrivDescReplSlave = 'Potrebné pre replikáciu pomocných serverov.';
+$strPrivDescSelect = 'Povolí čítanie dát.';
+$strPrivDescShowDb = 'Povolí prístup ku kompletnému zoznamu databáz.';
+$strPrivDescShowView = 'Umožňuje spúšťať príkazy so SHOW CREATE VIEW.';
+$strPrivDescShutdown = 'Povolí vypnutie serveru.';
+$strPrivDescSuper = 'Povolí spojenie aj v prípade, že bol dosiahnutý maximálny počet spojení. Potrebné pre väčšinu operácií pri správe serveru ako nastavovanie globálny premenných alebo zabíjanie procesov iných používateľov.';
+$strPrivDescUpdate = 'Povolí menenie dát.';
+$strPrivDescUsage = 'Žiadne práva.';
+$strPrivileges = 'Oprávnenia';
+$strPrivilegesReloaded = 'Práva boli úspešne znovunačítané.';
+$strProcedures = 'Procedúry';
+$strProcesses = 'Procesy';
+$strProcesslist = 'Zoznam procesov';
+$strProtocolVersion = 'Verzia protokolu';
+$strPutColNames = 'Pridať názvy polí na prvý riadok';
+
+$strQBEDel = 'Zmazať';
+$strQBE = 'Dopyt podľa príkladu';
+$strQBEIns = 'Vložiť';
+$strQueryCache = 'Vyrovnávacia pamäť príkazov';
+$strQueryFrame = 'SQL okno';
+$strQueryOnDb = ' SQL dopyt v databáze <b>%s</b>:';
+$strQueryResultsOperations = 'Operácie s výsledkami dopytu';
+$strQuerySQLHistory = 'SQL história';
+$strQueryStatistics = '<b>Query statistics</b>: Since its startup, %s queries have been sent to the server.';
+$strQueryTime = 'Dopyt zabral %01.4f sek.';
+$strQueryType = 'Typ dopytu';
+$strQueryWindowLock = 'Neprepisovať tento dopyt z hlavného okna';
+
+$strReadRequests = 'Požiadavkov na čítanie';
+$strReceived = 'Prijaté';
+$strRecords = 'Záznamov';
+$strReferentialIntegrity = 'Skontrolovať referenčnú integritu:';
+$strRefresh = 'Obnoviť';
+$strRelationalSchema = 'Relačná schéma';
+$strRelationNotWorking = 'Prídavné vlastnosti pre prácu s prepojenými tabuľkami boli deaktivované. Ak chcete zistiť prečo, kliknite %ssem%s.';
+$strRelationsForTable = 'PREPOJENIA PRE TABUĽKU';
+$strRelations = 'Prepojenia';
+$strRelationView = 'Zobraziť prepojenia';
+$strReloadingThePrivileges = 'Znovunačítanie práv';
+$strReloadPrivileges = 'Znovunačítať prístupové práva';
+$strRemoveSelectedUsers = 'Odstrániť vybraných používateľov';
+$strRenameDatabaseOK = 'Databáza %s bola premenovaná na %s';
+$strRenameTableOK = 'Tabuľka %s bola premenovaná na %s';
+$strRenameTable = 'Premenovať tabuľku na';
+$strRepairTable = 'Opraviť tabuľku';
+$strReplaceNULLBy = 'Nahradiť NULL hodnoty';
+$strReplaceTable = 'Nahradiť dáta v tabuľke súborom';
+$strReplication = 'Replikácia';
+$strReset = 'Pôvodné (Reset)';
+$strResourceLimits = 'Obmedzenie zdrojov';
+$strReType = 'Potvrdiť';
+$strRevokeAndDeleteDescr = 'Užívatelia budú mať stále právo USAGE (používanie) až do znovunačítania práv.';
+$strRevokeAndDelete = 'Odobranie všetkých aktívnych práv používateľom a ich následné odstránenie.';
+$strRevokeMessage = 'Boli zrušené oprávnenia pre %s';
+$strRevoke = 'Zrušiť';
+$strRomanian = 'Rumunština';
+$strRowLength = 'Dĺžka riadku';
+$strRowsFrom = 'riadky začínajú od';
+$strRowSize = ' Veľkosť riadku ';
+$strRowsModeFlippedHorizontal = 'vodorovnom (otočené hlavičky)';
+$strRowsModeHorizontal = 'horizontálnom';
+$strRowsModeOptions = 'v(o) %s móde a opakovať hlavičky po každých %s bunkách';
+$strRowsModeVertical = 'vertikálnom';
+$strRows = 'Riadkov';
+$strRowsStatistic = 'Štatistika riadku';
+$strRunning = 'beží na %s';
+$strRunQuery = 'Odošli dopyt';
+$strRunSQLQueryOnServer = 'Spustiť SQL príkaz(y) na servri %s';
+$strRunSQLQuery = 'Spustiť SQL dopyt/dopyty na databázu %s';
+$strRussian = 'Ruština';
+
+$strSaveOnServer = 'Uložiť na server do adresára %s';
+$strSave = 'Uložiť';
+$strScaleFactorSmall = 'Mierka je príliš mala na roztiahnutie schémy na stránku';
+$strSearchFormTitle = 'Hľadať v databáze';
+$strSearch = 'Hľadať';
+$strSearchInTables = 'V tabuľke(ách):';
+$strSearchNeedle = 'Slovo(á) alebo hodnotu(y), ktoré chcete vyhľadať (nahradzujúci znak: "%"):';
+$strSearchOption1 = 'najmenej jedno zo slov';
+$strSearchOption2 = 'všetky slová';
+$strSearchOption3 = 'presný výraz';
+$strSearchOption4 = 'ako regulárny výraz';
+$strSearchResultsFor = 'Prehľadať výsledky na "<i>%s</i>" %s:';
+$strSearchType = 'Nájdi:';
+$strSecretRequired = 'Nastavte prosím kľúč pre šifrovanie cookies v konfiguračnom súbore (blowfish_secret).';
+$strSelectADb = 'Prosím vyberte si databázu';
+$strSelectAll = 'Označiť všetko';
+$strSelectBinaryLog = 'Vyberte binárny log na zobrazenie';
+$strSelectFields = 'Zvoliť pole (najmenej jedno):';
+$strSelectNumRows = 'v dopyte';
+$strSelectTables = 'Vybrať Tabuľky';
+$strSend = 'Pošli';
+$strSent = 'Odoslané';
+$strServerChoice = 'Voľba serveru';
+$strServerNotResponding = 'Server neodpovedá';
+$strServer = 'Server';
+$strServers = 'Servery';
+$strServerStatusDelayedInserts = 'Odložené vloženia';
+$strServerStatus = 'Stav serveru';
+$strServerStatusUptime = 'Tento server beží %s. Bol spustený %s.';
+$strServerTabVariables = 'Premenné';
+$strServerTrafficNotes = '<b>Server traffic</b>: These tables show the network traffic statistics of this MySQL server since its startup.';
+$strServerVars = 'Premenné a nastavenia serveru';
+$strServerVersion = 'Verzia serveru';
+$strSessionValue = 'Hodnota sedenia';
+$strSetEnumVal = 'Ak je pole typu "enum" alebo "set", prosím zadávajte hodnoty v tvare: \'a\',\'b\',\'c\'...<br />Ak dokonca potrebujete zadať spätné lomítko ("\") alebo apostrof ("\'") pri týchto hodnotách, zadajte ich napríklad takto \'\\\\xyz\' alebo \'a\\\'b\'.';
+$strShowAll = 'Zobraziť všetko';
+$strShowColor = 'Zobraziť farbu';
+$strShowDatadictAs = 'Formát dátového slovníka';
+$strShowFullQueries = 'Zobraziť kompletné dopyty';
+$strShowGrid = 'Zobraziť mriežku';
+$strShowingBookmark = 'Zobrazujem obľúbený príkaz';
+$strShowingRecords = 'Ukázať záznamy ';
+$strShowOpenTables = 'Zobraziť otvorené tabuľky';
+$strShowPHPInfo = 'Zobraziť informácie o PHP';
+$strShowSlaveHosts = 'Zobraziť podriadené hosty';
+$strShowSlaveStatus = 'Zobraziť stav podriadených hostov';
+$strShowStatusBinlog_cache_disk_useDescr = 'Počet transakcií, ktoré využili dočasnú vyrovnávaciu pamäť binárneho logu, ale zároveň prekročili hodnotu binlog_cache_size a museli tak použiť dočasný súbor na uloženie príkazov transakcie.';
+$strShowStatusBinlog_cache_useDescr = 'Počet transakcií, ktoré využili vyrovnávaciu pamäť binárneho logu.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Počet dočasných tabuliek automaticky vytvorených servrom pri vykonávaní príkazov. Ak je hodnota Created_tmp_disk_tables príliš vysoká, môžte zvýšiť hodnotu tmp_table_size, aby boli dočasné tabuľky ukladané do pamäte a nie na disk.';
+$strShowStatusCreated_tmp_filesDescr = 'Počet dočasných súborov vytvorených servrom mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'Počet dočasných, v pamäti uložených tabuliek, vytvorených servrom pri vykonávaní príkazov.';
+$strShowStatusDelayed_errorsDescr = 'Počet riadkov pridaných príkazom INSERT DELAYED, pri ktorých sa vyskytla chyba (pravdepodobne opakujúci sa kľúč).';
+$strShowStatusDelayed_insert_threadsDescr = 'Počet vlákien používaných príkazmi INSERT DELAYED. Každá samostatná tabuľka, na ktorú je použitý príkaz INSERT DELAYED, ma svoje vlastné vlákno.';
+$strShowStatusDelayed_writesDescr = 'Počet riadkov vložených príkazom INSERT DELAYED.';
+$strShowStatusFlush_commandsDescr = 'Počet vykonaných príkazov FLUSH.';
+$strShowStatusHandler_commitDescr = 'Počet interných príkazov COMMIT.';
+$strShowStatusHandler_deleteDescr = 'Koľkokrát bol z tabuľky odstránený riadok.';
+$strShowStatusHandler_discoverDescr = 'MySQL server môže zaslať požiadavku NDB Clustru, či nevie o existencii tabuľky s daným menom. Tento proces sa nazýva objavovanie. Handler_discover zobrazuje počet doposiaľ objavených tabuliek.';
+$strShowStatusHandler_read_firstDescr = 'Počet prečítaní prvej položky indexu. Ak je táto hodnota príliš vysoká, znamená to že server vykonáva príliš veľa kompletných prechádzaní indexov; napríklad, SELECT col1 FROM foo, za predpokladu že col1 je indexovaný.';
+$strShowStatusHandler_read_keyDescr = 'Počet požiadavkov na načítanie riadku podľa kľúča. Ak je táto hodnota vysoká, je to dobrým znamením že sú príkazy a tabuľky správne indexované.';
+$strShowStatusHandler_read_nextDescr = 'Počet požiadavkov na načítanie nasledujúceho riadku v poradí podľa kľúča. Táto hodnota sa zvyšuje ak sa načítava indexovaný stĺpec v danom rozsahu alebo ak sa vykonáva prehľadávanie indexu.';
+$strShowStatusHandler_read_prevDescr = 'Počet požiadavkov na načítanie predchádzajúceho riadku podľa kľúča. Táto čítacia metóda sa použiva hlavne na optimalizáciu príkazov typu ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Počet požiadavkov na načítanie riadku na základe určitej pozície. Táto hodnota je vysoká, ak sa vykonáva veľa príkazov, ktoré si vyžadujú zoradenie výsledku. Pravdepodobne sa použiva veľa príkazov, kvôli ktorým musí MySQL kompletne prehľadávať tabuľky, alebo sa používajú zjednotenia, ktoré správne nevyužívajú kľúče.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Počet požiadavkov na načítanie nasledujúceho riadku. Táto hodnota je vysoká, ak sa vykonáva veľa kompletných prehľadávaní tabuliek. Znamená to že buď tabuľky nie sú správne indexované alebo príkazy nedostatočne využívajú dostupné indexy.';
+$strShowStatusHandler_rollbackDescr = 'Počet interných príkazov ROLLBACK.';
+$strShowStatusHandler_updateDescr = 'Počet požiadavkov na zmenu záznamu (riadku) v tabuľke.';
+$strShowStatusHandler_writeDescr = 'Počet požiadavkov na vloženie nového záznamu (riadku) do tabuľky.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Počet stránok obsahujúcich dáta (nečistých aj čistých).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Počet nečistých stránok.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Počet stránok, na ktoré je požiadavka na vyprázdnenie.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Počet voľných stránok.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Počet uzamknutých stránok v InnoDB vyrovnávacej pamäti. Z týchto stránok sa momentálne číta alebo zapisuje, prípadne nemôžu byť vyprázdnené ani odstránené z nejakého iného dôvodu.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Počet momentálne neprístupných stránok z dôvodu účasti na administratívnych účeloch ako napr. uzamkýnanie riadkov alebo adaptívny hash index. Táto hodnota sa tiež môže vypočítať ako Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Celkový počet stránok vo vyrovnávacej pamäti InnoDB.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Počet "náhodných" predčítaní vykonaných InnoDB. Táto situácia nastáva pri príkazoch, ktoré prehľadávajú veľkú časť tabuľky, ale v náhodnom poradí.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Počet sekvenčných predčítaní vykonaných InnoDB. Táto situácia nastáva pri vykonávaní sekvenčného prehľadávania celej tabuľky.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Počet požiadavkov na logické načítavanie.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Počet logických načítaní, ktoré sa nemohli vykonať z vyrovnávacej pamäte a namiesto toho bolo vykonané načítanie celej jednej stránky.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normálne sa zápis do vyrovnávacej pamäte InnoDB vykonáva v pozadí. Ak však nie sú pri požiadavke na načítanie alebo vytvorenie stránky dostupné žiadne čisté stránky, je potrebné počkať na ich vyčistenie. Táto hodnota zobrazuje počet týchto čakaní a ak bola správne nastavená veľkosť vyrovnávacej pamäte, mala by byť nízka.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Počet zápisov do vyrovnávacej pamäte InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Počet vykonaných fsync() operácií.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Aktuálny počet prebiehajúcich fsync() operácií.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Počet aktuálne prebiehajúcich načítavaní.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Počet aktuálne prebiehajúcich zápisov.';
+$strShowStatusInnodb_data_readDescr = 'Množstvo už načítaných dát, v bajtoch.';
+$strShowStatusInnodb_data_readsDescr = 'Celkový počet načítaní dát.';
+$strShowStatusInnodb_data_writesDescr = 'Celkový počet zápisov dát.';
+$strShowStatusInnodb_data_writtenDescr = 'Množstvo už zapísaných dát, v bajtoch.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Počet vykonaných dvojitých zápisov a počet stránok zapísaných pre tento účel.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Počet vykonaných dvojitých zápisov a počet stránok zapísaných pre tento účel.';
+$strShowStatusInnodb_log_waitsDescr = 'Počet čakaní na vyprázdnenie vyrovnávacej pamäte logu z dôvodu jej zaplnenia.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Počet požiadaviek na zápis do logovacieho súboru.';
+$strShowStatusInnodb_log_writesDescr = 'Počet fyzických zápisov do logovacieho súboru.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Počet fsync zápisov vykonaných na logovacom súbore.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Počet prebiehajúcich synchronizácií logovacieho súboru.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Počet prebiehajúcich zápisov do logovacieho súboru.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Množstvo bajtov zapísaných do logovacieho súboru.';
+$strShowStatusInnodb_pages_createdDescr = 'Počet vytvorených stránok.';
+$strShowStatusInnodb_page_sizeDescr = 'Veľkosť nakompilovanej InnoDB stránky (prednastavených je 16KB). Viacero hodnôt sa udáva v stránkach; pomocou veľkosti stránky je možné ich premeniť na bajty.';
+$strShowStatusInnodb_pages_readDescr = 'Počet načítaných stránok.';
+$strShowStatusInnodb_pages_writtenDescr = 'Počet zapísaných stránok.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Počet zámkov na riadky, na ktoré sa čaká.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Priemerný čas potrebný na získanie zámku na riadok, v milisekundách.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Celkový čas potrebný na získanie zámku na riadok, v milisekundách.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maximálny čas potrebný na získanie zámku na riadok, v milisekundách.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Koľkokrát sa muselo čakať na zámok na riadok.';
+$strShowStatusInnodb_rows_deletedDescr = 'Počet záznamov (riadkov) odstránených z InnoDB tabuliek.';
+$strShowStatusInnodb_rows_insertedDescr = 'Počet záznamov (riadkov) vložených do InnoDB tabuliek.';
+$strShowStatusInnodb_rows_readDescr = 'Počet načítaných záznamov (riadkov) z InnoDB tabuliek.';
+$strShowStatusInnodb_rows_updatedDescr = 'Počet upravených záznamov (riadkov) v InnoDB tabuľkách.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Počet zmenených kľúčových blokov vo vyrovnávacej pamäti kľúčov, ktoré ešte neboli zapísané na disk. Predtým sa táto hodnota nazývala Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Počet nevyužitých blokov vo vyrovnávacej pamäti kľúčov. Z tejto hodnoty môžete zistiť koľko vyrovnávacej pamäte sa práve používa.';
+$strShowStatusKey_blocks_usedDescr = 'Počet využitých blokov vo vyrovnávacej pamäti kľúčov. Táto hodnota určuje najväčšie množstvo blokov, ktoré kedy naraz použité.';
+$strShowStatusKey_read_requestsDescr = 'Počet požiadavkov na načítanie kľúčového bloku z vyrovnávacej pamäti.';
+$strShowStatusKey_readsDescr = 'Počet načítaní kľúčového bloku priamo z disku. Ak je táto hodnota príliš veľká, väčšinou to znamená, že veľkosť vyrovnávacej pamäti (key_buffer_size) je príliš malá. Úspešnosť vyrovnávacej pamäte si môžte vypočítať zo vzťahu Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Počet požiadavkov na zápis kľúčového bloku do vyrovnávacej pamäti.';
+$strShowStatusKey_writesDescr = 'Počet fyzických zápisov kľúčového bloku na disk.';
+$strShowStatusLast_query_costDescr = 'Celkové náklady na posledný kompilovaný príkaz, vypočítané optimizérom príkazov. Užitočné na porovnávanie nákladov na rôzne príkazy pre tú istú požiadavku. Prednastavená hodnota 0 znamená, že doposiaľ neboli skompilované žiadne príkazy.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Počet riadkov čakajúcich na zápis cez INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'Počet doposiaľ otvorených tabuliek. Ak je táto hodnota príliš vysoká, pravdepodobne je vyrovnávacia pamäť pre tabuľky príliš malá.';
+$strShowStatusOpen_filesDescr = 'Počet otvorených súborov.';
+$strShowStatusOpen_streamsDescr = 'Počet otvorených streamov (väčšinou využívané na logovanie).';
+$strShowStatusOpen_tablesDescr = 'Počet práve otvorených tabuliek.';
+$strShowStatusQcache_free_blocksDescr = 'Množstvo voľných pamäťových blokov vo vyrovnávacej pamäti príkazov.';
+$strShowStatusQcache_free_memoryDescr = 'Veľkosť voľnej pamäti pre vyrovnávaciu pamäť príkazov.';
+$strShowStatusQcache_hitsDescr = 'Počet zásahov vyrovnávacej pamäti.';
+$strShowStatusQcache_insertsDescr = 'Počet príkazov pridaných do vyrovnávacej pamäti.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Počet príkazov, ktoré boli odstránené z vyrovnácej pamäti na uvoľnenie pamäti pre nové príkazy. Táto hodnota vám môže pomôcť pri upravovaní veľkosti vyrovnávacej pamäti príkazov. Na výber príkazov na odstránenie z vyrovnávacej pamäti sa používa stratégia LRU (tzn. najdlhšie nepoužité príkazy budú odstránené ako prvé).';
+$strShowStatusQcache_not_cachedDescr = 'Počet príkazov neumiestnených do vyrovnávacej pamäti (nie sú cachovateľné alebo nevyhovujú nastaveniu query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Počet príkazov registrovaných vo vyrovnávacej pamäti.';
+$strShowStatusQcache_total_blocksDescr = 'Celkové množstvo blokov vo vyrovnávacej pamäti príkazov.';
+$strShowStatusReset = 'Vynulovať';
+$strShowStatusRpl_statusDescr = 'Stav failsafe replikácie (zatiaľ neimplementované).';
+$strShowStatusSelect_full_joinDescr = 'Počet spojení, ktoré nevyužívajú indexy. Ak sa táto hodnota nerovná 0, mali by ste starostlivo skontrolovať indexy vašich tabuliek.';
+$strShowStatusSelect_full_range_joinDescr = 'Počet spojení, ktoré na referenčnej tabuľke využili intervalové vyhľadávanie.';
+$strShowStatusSelect_range_checkDescr = 'Počet spojení bez kľúčov, ktoré kontrolovali použitie kľúča na každom riadku (ak táto hodnota nie je 0, mali by ste starostlivo skontrolovať indexy vašich tabuliek).';
+$strShowStatusSelect_rangeDescr = 'Počet spojení, ktoré na prvej tabuľke využili intervalové vyhľadávanie (táto hodnota nie je kritická ani v prípade, že je vysoká).';
+$strShowStatusSelect_scanDescr = 'Počet spojení, ktoré vykonali kompletné prehľadanie prvej tabuľky.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Počet dočasných tabuliek, otvorených podriadeným SQL vláknom.';
+$strShowStatusSlave_retried_transactionsDescr = 'Celkový počet (od spustenia) pokusov replikačného podriadeného SQL vlákna o znovuobnovenie transakcie.';
+$strShowStatusSlave_runningDescr = 'Táto položka obsahuje hodnotu ON ak je tento server podriadeným a je pripojený k prislúchajúcemu nadriadenému servru.';
+$strShowStatusSlow_launch_threadsDescr = 'Počet vlákien, ktorých vytvorenie zabralo viac ako je hodnota slow_launch_time.';
+$strShowStatusSlow_queriesDescr = 'Počet príkazov, ktorých vykonanie zabralo viac ako je hodnota long_query_time.';
+$strShowStatusSort_merge_passesDescr = 'Počet zlučovacích prechodov, ktoré musel vykonať zoraďovací algoritmus. Ak je táto hodnota prílis veľká, mali by ste pouvažovať nad zvýšením hodnoty systémového nastavania sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Počet rozsahom obmedzených zoraďovaní.';
+$strShowStatusSort_rowsDescr = 'Počet zoradených riadkov.';
+$strShowStatusSort_scanDescr = 'Počet zoradení uskutočnených prehľadávaním tabuľky.';
+$strShowStatusTable_locks_immediateDescr = 'Počet zámkov tabuliek, ktoré boli získané okamžite.';
+$strShowStatusTable_locks_waitedDescr = 'Počet prípadov keď sa zámok tabuľky nedal získať okamžite a bolo nutné vyčkať. Ak je táto hodnota vysoká a máte problémy s výkonom, mali by ste najprv optimalizovať vaše príkazy a potom buď rozdeliť tabuľku/tabuľky alebo použiť replikáciu.';
+$strShowStatusThreads_cachedDescr = 'Počet vlákien vo vyrovnávacej pamäti. Úspešnosť tejto vyrovnávacej pamäti sa dá vypočítať zo vzťahu Threads_created/Connections. Ak je táto hodnota v červenom, mali by ste zvýšiť hodnotu thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Počet momentálne otvorených spojení.';
+$strShowStatusThreads_createdDescr = 'Počet vlákien vytvorených na zaobchádzanie so spojeniami. Ak je hodnota Threads_created vysoká, mohli by ste zvýšiť hodnotu thread_cache_size (to však nespôsobí žiadnu citeľnú zmenu ak máte vlákna dobre implementované).';
+$strShowStatusThreads_runningDescr = 'Počet aktívnych (nespiacich) vlákien.';
+$strShowTableDimension = 'Zobraziť rozmery tabuliek';
+$strShowTables = 'Zobraziť tabuľky';
+$strShowThisQuery = ' Zobraziť tento dopyt znovu ';
+$strShow = 'Ukázať';
+$strSimplifiedChinese = 'Zjednodušená Čínština';
+$strSingly = '(po jednom)';
+$strSize = 'Veľkosť';
+$strSkipQueries = 'Počet záznamov (príkazov), ktoré sa majú zo začiatku preskočiť';
+$strSlovak = 'Slovenčina';
+$strSlovenian = 'Slovinčina';
+$strSocketProblem = '(alebo soket lokálneho MySQL servra nie je správne nastavený)';
+$strSortByKey = 'Zoradiť podľa kľúča';
+$strSorting = 'Zoraďovanie';
+$strSort = 'Triediť';
+$strSpaceUsage = 'Zabrané miesto';
+$strSpanish = 'Španielsky';
+$strSplitWordsWithSpace = 'Slová sú rozdelené medzerou (" ").';
+$strSQLCompatibility = 'Režim kompatibility SQL';
+$strSQLExportType = 'Typ vytvorených dopytov';
+$strSQLParserBugMessage = 'Je možné, že ste našli chybu v SQL syntaktickom analyzátore. Preskúmajte podrobne SQL dopyt, predovšetkým správnosť umiestnenia úvodzoviek. Ďalšia možnosť je, že nahrávate súbor s binárnymi dátami nezapísanými v úvodzovkách. Môžete tiež vyskúšať použiť príkazový riadok MySQL na odstránenie problému. Pokial stále máte problémy alebo syntaktický analyzátor SQL stále hlási chybu v dopyte, ktorý v príkazovom riadku funguje, prosím pokúste sa zredukovať dopyt na čo najmenší, v ktorom sa problém ešte vyskytuje a ohláste chybu na stránke phpMyAdmina spolu so sekciou VÝPIS uvedenú nižšie:';
+$strSQLParserUserError = 'Vyskytla sa chyba v SQL dopyte. Nižšie uvedený MySQL výstup (ak je nejaký) Vám môže pomôcť odstrániť problém';
+$strSQLQuery = 'SQL dopyt';
+$strSQLResult = 'výsledok SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Neplatný identifikátor';
+$strSQPBugUnclosedQuote = 'Neuzatvorené úvodzovky';
+$strSQPBugUnknownPunctuation = 'Neznámy interpunkčný reťazec';
+$strStatCheckTime = 'Posledná kontrola';
+$strStatCreateTime = 'Vytvorenie';
+$strStatement = 'Údaj';
+$strStatisticsOverrun = 'Na vyťaženom serveri môže dôjsť k pretečeniu počítadiel, takže štatistiky servera môžu byť nepresné.';
+$strStatUpdateTime = 'Posledná zmena';
+$strStatus = 'Stav';
+$strStorageEngines = 'Úložné Systémy';
+$strStorageEngine = 'Úložný Systém';
+$strStrucCSV = 'CSV dáta';
+$strStrucData = 'Štruktúru a dáta';
+$strStrucExcelCSV = 'CSV pre MS Excel dáta';
+$strStrucNativeExcel = 'Natívne dáta MS Excel';
+$strStrucOnly = 'Iba štruktúru';
+$strStructPropose = 'Navrhnúť štruktúru tabuľky';
+$strStructure = 'Štruktúra';
+$strSubmit = 'Odošli';
+$strSuccess = 'SQL dopyt bol úspešne vykonaný';
+$strSum = 'Celkom';
+$strSwedish = 'Švédsky';
+$strSwitchToDatabase = 'Prepnúť na skopírovanú databázu';
+$strSwitchToTable = 'Prepnúť na skopírovanú tabuľku';
+
+$strTableAlreadyExists = 'Tabuľka %s už existuje!';
+$strTableComments = 'Komentár k tabuľke';
+$strTableEmpty = 'Tabuľka je prázdna!';
+$strTableHasBeenDropped = 'Tabuľka %s bola odstránená';
+$strTableHasBeenEmptied = 'Tabuľka %s bola vyprázdená';
+$strTableHasBeenFlushed = 'Tabuľka %s bola vyprázdnená';
+$strTableMaintenance = 'Údržba tabuľky';
+$strTableOfContents = 'Obsah';
+$strTableOptions = 'Parametre tabuľky';
+$strTables = '%s tabuľka(y)';
+$strTableStructure = 'Štruktúra tabuľky pre tabuľku';
+$strTable = 'Tabuľka';
+$strTakeIt = 'zvoliť';
+$strTblPrivileges = 'Oprávnenia pre jednotlivé tabuľky';
+$strTempData = 'Dočasné dáta';
+$strTextAreaLength = ' Toto možno nepôjde upraviť,<br /> kvôli svojej dĺžke ';
+$strThai = 'Thajčina';
+$strThemeDefaultNotFound = 'Predvolený vzhľad %s nebol nájdený!';
+$strThemeNoPreviewAvailable = 'Náhľad nie je dostupný.';
+$strThemeNotFound = 'Vzhľad %s nebol nájdený!';
+$strThemeNoValidImgPath = 'Nebola nájdená platná cesta k obrázkom pre vzhľad %s!';
+$strThemePathNotFound = 'Nebola nájdená platná cesta ku vzhľadu %s!';
+$strTheme = 'Vzhľad';
+$strThisHost = 'Tento počítač';
+$strThreads = 'Počet vlákien';
+$strThreadSuccessfullyKilled = 'Vlákno %s bol úspešne zabité.';
+$strTime = 'Čas';
+$strTimeoutInfo = 'Predchádzajúcemu importu vypršal časový limit. Po znovuodoslaní formulára sa bude pokračovať od pozície %d.';
+$strTimeoutNothingParsed = 'Avšak pri poslednom pokuse neboli prijaté žiadne dáta, čo obvykle znamená, že phpMyAdmin nebude schopný dokončiť tento import, pokiaľ nebude zvýšený časový limit behu skriptu v php.';
+$strTimeoutPassed = 'Časový limit behu skriptu vypršal. Ak chcete import súboru dokončiť, odošlite znova formulár a import bude pokračovať.';
+$strToggleScratchboard = 'zobraziť grafický návrh';
+$strTotal = 'celkovo';
+$strTotalUC = 'Celkom';
+$strTraditionalChinese = 'Tradičná Čínština';
+$strTraditionalSpanish = 'Tradičná Španielčina';
+$strTraffic = 'Prevádzka';
+$strTransactionCoordinator = 'Koordinátor transakcií';
+$strTransformation_application_octetstream__download = 'Zobrazí odkaz na stiahnutie dát. Prvý parameter je meno súboru, druhý je meno stĺpca v tabuľke obsahujúci meno súboru. Ak zadáte druhý parameter, prvý musí byť prázdny.';
+$strTransformation_application_octetstream__hex = 'Zobrazí dáta v ich hexadecimálnej forme. Nepovinný parameter určuje po koľko znakoch je vkladaná medzera (štandardne po dvoch).';
+$strTransformation_image_jpeg__inline = 'Zobrazí náhľad obrázku s odkazom na obrázok; parametre šírka a výška v bodoch (pomer strán obrázku zostane zachovaný)';
+$strTransformation_image_jpeg__link = 'Zobrazí odkaz na obrázok (napr. stiahnutie poľa blob).';
+$strTransformation_image_png__inline = 'Zobrazí image/jpeg: inline';
+$strTransformation_text_plain__external = 'PLATÍ IBA PRE LINUX: Spustí externú aplikáciu, na jej štandardný vstup pošle pole a zobrazí výstup programu. Predvolený program je Tidy, ktorý pekne sformátuje HTML. Z bezpečnostných dôvodov musíte ručne upraviť obsah súboru libraries/transformations/text_plain__external.inc.php a pridať do neho povolené aplikácie. Prvý parameter je číslo aplikácie, ktorú chcete použiť a druhý parametre sú parametre tejto aplikácie. Ak je tretí parameter nastavený na 1, výstup bude skonvertovaný funkciou htmlspecialchars() (predvolený je 1). Štvrtý parameter v prípade, že je nastavený na 1 pridá k výstupnému textu parameter NOWRAP, čím zabezpečí zachovanie formátovania (predvolený je 1)';
+$strTransformation_text_plain__formatted = 'Zachová pôvodné formátovanie poľa tak ako je uložené v databáze.';
+$strTransformation_text_plain__imagelink = 'Zobrazí obrázok a odkaz z poľa obsahujúceho odkaz na obrázok. Prvý parameter je prefix URL (napr. "http://domena.sk/"), druhý a tretí parameter určujú šírku a výšku obrázku.';
+$strTransformation_text_plain__link = 'Zobrazí odkaz z poľa obsahujúceho odkaz. Prvý parameter je prefix URL (napr. "http://domena.sk/"), druhý parameter je text odkazu.';
+$strTransformation_text_plain__sql = 'Formátuje text ako SQL príkaz pomocou syntaxového zvýrazňovania.';
+$strTransformation_text_plain__substr = 'Zobrazí iba časť reťazca. Prvý parameter je posun od začiatku (predvolený je 0) a druhý určuje dĺžku textu, ktorá sa ma zobraziť, ak nie je zadaný bude zobrazený zvyšok textu. Tretí parameter určuje znaky, ktoré budú pridané na koniec skráteného textu (predvolené je ...).';
+$strTruncateQueries = 'Zobraziť skrátene dopyty';
+$strTurkish = 'Turecky';
+$strType = 'Typ';
+
+$strUkrainian = 'Ukrajinsky';
+$strUncheckAll = 'Odznačiť všetko';
+$strUnicode = 'Unicode';
+$strUnique = 'Unikátny';
+$strUnknown = 'neznámy';
+$strUnselectAll = 'Odznačiť všetko';
+$strUnsupportedCompressionDetected = 'Pokúsili ste sa načítať súbor s nepodporovanou kompresiou (%s). Buď nie je zahrnutá podpora tejto kompresie alebo bola deaktivovaná v konfigurácii.';
+$strUpdatePrivMessage = 'Boli aktualizované oprávnenia pre %s.';
+$strUpdateProfileMessage = 'Profil bol aktualizovaný.';
+$strUpdateQuery = 'Aktualizovať dopyt';
+$strUpdComTab = 'Prosím prečítajte si dokumentáciu ako aktualizovať tabuľku s informáciami o stĺpcoch (Column_comments Table)';
+$strUpgrade = 'Mali by ste aktualizovať %s na verziu %s alebo vyššiu.';
+$strUploadLimit = 'Pravdepodobne ste sa pokúsili uploadnuť príliš veľký súbor. Prečítajte si prosím %sdokumentáciu%s, ako sa dá toto obmedzenie obísť.';
+$strUploadsNotAllowed = 'Ukladanie súborov na server nie je povolené.';
+$strUsage = 'Využitie';
+$strUseBackquotes = ' Použiť opačný apostrof pri názvoch tabuliek a polí ';
+$strUseHostTable = 'Použiť tabuľku s hostiteľmi';
+$strUserAlreadyExists = 'Používateľ %s už existuje!';
+$strUserEmpty = 'Meno používateľa je prázdne!';
+$strUserName = 'Meno používateľa';
+$strUserNotFound = 'Zvolený používateľ nebol nájdený v tabuľke práv.';
+$strUserOverview = 'Prehľad používatelov';
+$strUser = 'Používateľ';
+$strUsersDeleted = 'Vybraní používatelia bol úspešne odstránený.';
+$strUsersHavingAccessToDb = 'Používatelia majúci prístup k &quot;%s&quot;';
+$strUseTabKey = 'Pre pohyb medzi hodnotami použite klávesu TAB alebo pre pohyb všetkými smermi klávesy CTRL+šípky';
+$strUseTables = 'Použiť tabuľky';
+$strUseTextField = 'Požiť textové pole';
+$strUseThisValue = 'Použiť túto hodnotu';
+
+$strValidateSQL = 'Potvrdiť platnosť SQL';
+$strValidatorError = 'SQL validator nemohol byť inicializovaný. Prosím skontrolujte, či sú nainštalované všetky potrebné rozšírenia php, tak ako sú popísané v %sdocumentation%s.';
+$strValue = 'Hodnota';
+$strVar = 'Premenná';
+$strVersionInformation = 'Informácie o verzii';
+$strViewDumpDatabases = 'Export databáz';
+$strViewDumpDB = 'Zobraziť dump (schému) databázy';
+$strViewDump = 'Zobraziť dump (schému) tabuľky';
+$strViewHasBeenDropped = 'Pohľad %s bol odstránený';
+$strView = 'Pohľad';
+
+$strWebServerUploadDirectoryError = 'Adresár určený pre upload súborov sa nedá otvoriť';
+$strWebServerUploadDirectory = 'upload adresár web serveru';
+$strWelcome = 'Vitajte v %s';
+$strWestEuropean = 'Západná Európa';
+$strWildcard = 'nahradzujúci znak';
+$strWindowNotFound = 'Cieľové okno prehliadača nemohlo byť aktualizované. Možno ste zatvorili rodičovské okno, alebo prehliadač blokuje operácie medzi oknami z dôvodu bezpečnostných nastavení';
+$strWithChecked = 'Výber:';
+$strWriteRequests = 'Požiadavkov na zápis';
+$strWrongUser = 'Zlé používateľské meno alebo heslo. Prístup zamietnutý.';
+
+$strXML = 'XML';
+
+$strYes = 'Áno';
+
+$strZeroRemovesTheLimit = 'Poznámka: Nastavenie týchto parametrov na 0 (nulu) odstráni obmedzenia.';
+$strZip = '"zozipované"';
+
+// To translate:
+
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/slovenian-utf-8.inc.php b/lang/slovenian-utf-8.inc.php
new file mode 100644
index 0000000000..bc5561af75
--- /dev/null
+++ b/lang/slovenian-utf-8.inc.php
@@ -0,0 +1,1467 @@
+<?php
+/* $Id$ */
+
+/* By: urska.colner, agenda d.o.o. <urska.colner@agenda.si>, uros kositer, agenda d.o.o. <urosh@agenda.si> */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = '.';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Ned', 'Pon', 'Tor', 'Sre', 'Čet', 'Pet', 'Sob');
+$month = array('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y ob %I:%M %p';
+$timespanfmt = '%s dni, %s ur, %s minut in %s sekund';
+
+$strAbortedClients = 'Prekinjeno';
+$strAccessDenied = 'Dostop zavrnjen';
+$strAccessDeniedExplanation = 'phpMyAdmin se je poskušal povezati na MySQL strežnik, ki je zavrnil povezavo. Preverite, ali gostitelj, uporabniško ime in geslo v datoteki config.inc.php ustrezajo podatkom administratorja MySQL strežnika.';
+$strAction = 'Akcija';
+$strAddAutoIncrement = 'Dodaj AUTO_INCREMENT vrednost';
+$strAddConstraints = 'Dodaj omejitve';
+$strAddDeleteColumn = 'Dodaj/Odstrani stolpec \'Polje\'';
+$strAddDeleteRow = 'Dodaj/Odstrani vrstico \'Kriterij\'';
+$strAddHeaderComment = 'Dodaj prilagojen komentar v glavo (\\n prelomi vrstice)';
+$strAddIntoComments = 'Dodaj med komentarje';
+$strAddNewField = 'Dodaj novo polje';
+$strAddPrivilegesOnDb = 'Dodaj privilegije na naslednji podatkovni bazi';
+$strAddPrivilegesOnTbl = 'Dodaj privilegije na naslednji tabeli';
+$strAddSearchConditions = 'Dodaj iskalne pogoje (telo "where" stavka):';
+$strAddToIndex = 'Dodaj indeksu &nbsp;%s&nbsp;stolpec(ce)';
+$strAddUser = 'Dodaj novega uporabnika';
+$strAddUserMessage = 'Dodali ste novega uporabnika.';
+$strAdministration = 'Administracija';
+$strAfterInsertBack = 'Nazaj na prejšnjo stran';
+$strAfterInsertNewInsert = 'Vstavi še eno novo vrstico';
+$strAfterInsertSame = 'Pojdi nazaj na stran';
+$strAfter = 'Po %s';
+$strAllTableSameWidth = 'prikažem vse tabele enake širine?';
+$strAll = 'Vse/Vsi';
+$strAlterOrderBy = 'Spremeni vrstni red prikaza tabele za';
+$strAnalyzeTable = 'Analiziraj tabelo';
+$strAnd = 'In';
+$strAnIndex = 'Na %s je dodan indeks';
+$strAnyHost = 'Katerikoli gostitelj';
+$strAny = 'Katerikoli';
+$strAnyUser = 'Katerikoli uporabnik';
+$strAPrimaryKey = 'Na %s je dodan primarni ključ';
+$strArabic = 'Arabsko';
+$strArmenian = 'Armensko';
+$strAscending = 'Naraščajoče';
+$strAtBeginningOfTable = 'Na začetku tabele';
+$strAtEndOfTable = 'Na koncu tabele';
+$strAttr = 'Atributi';
+$strAutomaticLayout = 'Samodejna postavitev';
+
+$strBack = 'Nazaj';
+$strBaltic = 'Baltsko';
+$strBeginCut = 'ZAČETEK IZREZA';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Binarno';
+$strBinaryDoNotEdit = 'Binarno - ne urejaj';
+$strBookmarkAllUsers = 'Dovoli dostop do zaznamka vsem uporabnikom';
+$strBookmarkDeleted = 'Zaznamek je odstranjen.';
+$strBookmarkLabel = 'Nalepka';
+$strBookmarkQuery = 'Označena SQL-poizvedba';
+$strBookmarkThis = 'Označi to SQL-poizvedbo';
+$strBookmarkView = 'Samo pogled';
+$strBrowseForeignValues = 'Prebrskaj tuje vrednosti';
+$strBrowse = 'Prebrskaj';
+$strBulgarian = 'Bolgarsko';
+$strBzip = '"bzipano"';
+
+$strCalendar = 'Koledar';
+$strCannotLogin = 'Ne morem se prijaviti v MySQL strežnik';
+$strCantLoad = 'ne morem naložiti podaljška %s,<br />prosim preverite PHP konfiguracijo';
+$strCantLoadRecodeIconv = 'Ni mogoče naložiti iconv ali recode ekstenzij, ki so potrebne za pretvorbe kodnih tabel, konfigurirajte php tako, da bo omogočal uporabo teh ekstenzij ali onemogočite pretvarjanje kodnih tabel v phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Indeksa ni mogoče preimenovati v PRIMARY!';
+$strCantUseRecodeIconv = 'Ni mogoče uporabljati iconv, libiconv ali recode_string funkcij, čeprav so ekstenzije normalno naložene. Preverite konfiguracijo php.';
+$strCardinality = 'Kardinalnost';
+$strCaseInsensitive = 'ne razlikuj velikih in malih črk';
+$strCaseSensitive = 'razlikuj velike in male črke';
+$strCentralEuropean = 'Centralno evropsko';
+$strChangeCopyModeCopy = '... obdrži starega.';
+$strChangeCopyModeDeleteAndReload = ' ... izbriši starega uporabnika s seznama uporabnikov ter ponovno naloži njegove pravice.';
+$strChangeCopyModeJustDelete = ' ... izbriši starega s seznama uporabnikov.';
+$strChangeCopyModeRevoke = ' ... prekliči vse aktivne pravice starega uporabnika ter jih izbriši.';
+$strChangeCopyMode = 'Ustvari novega uporabnika z enakimi pravicami in ...';
+$strChangeCopyUser = 'Spremeni prijavne informacije / Kopiraj uporabnika';
+$strChangeDisplay = 'Izberite polje za prikaz';
+$strChangePassword = 'Spremeni geslo';
+$strChange = 'Spremeni';
+$strCharset = 'Nabor znakov';
+$strCharsetOfFile = 'Nabor znakov datoteke:';
+$strCharsetsAndCollations = 'Nabori znakov in pravila za razvrščanje znakov';
+$strCharsets = 'Nabori znakov';
+$strCheckAll = 'Označi vse';
+$strCheckOverhead = 'Preveri prekoračene';
+$strCheckPrivsLong = 'Preveri privilegije za podatkovno bazo &quot;%s&quot;.';
+$strCheckPrivs = 'Preveri privilegije';
+$strCheckTable = 'Preveri tabelo';
+$strChoosePage = 'Izberite stran za urejanje';
+$strColComFeat = 'Prikazovanje komentarjev stolpcev';
+$strCollation = 'Pravilo za razvrščanje znakov';
+$strColumnNames = 'Imena stolpcev';
+$strColumnPrivileges = 'Privilegiji tipični za stolpec';
+$strCommand = 'Ukaz';
+$strComments = 'Komentarji';
+$strCompleteInserts = 'Popolne \'insert\' poizvedbe';
+$strCompression = 'Stiskanje';
+$strConfigFileError = 'phpMyAdmin ni mogel prebrati konfiguracijske datoteke!<br />To se lahko zgodi, če php pri prevajanju konfiguracijske datoteke najde napako ali pa ne najde datoteke.<br />Prosimo, odprite konfiguracijsko datoteko s povezavo, ki je navedena spodaj in preberite dobljeno sporočilo o napaki. V večini primerov gre za manjkajoči narekovaj ali podpičje.<br />Če dobite prazno stran, je vse v redu.';
+$strConfigureTableCoord = 'Prosimo, konfigurirajte koordinate za tabelo %s';
+$strConnectionError = 'Povezava ni mogoča: neveljavne nastavitve.';
+$strConnections = 'Povezave';
+$strConstraintsForDumped = 'Omejitve tabel za povzetek stanja';
+$strConstraintsForTable = 'Omejitve za tabelo';
+$strCookiesRequired = 'Če želite še dalje uporabljati program, morate omogočiti piškotke.';
+$strCopyTable = 'Kopiraj tabelo v (podatkovna_baza<b>.</b>tabela):';
+$strCopyTableOK = 'Tabela %s je skopirana v %s.';
+$strCopyTableSameNames = 'Tabele ni mogoče kopirati same vase!';
+$strCouldNotKill = 'phpMyAdmin ni uspel prekiniti teme %s. Verjetno je že prekinjena.';
+$strCreateIndexTopic = 'Ustvari nov indeks';
+$strCreateIndex = 'Ustvari indeks na&nbsp;%s&nbsp;stolpcih';
+$strCreateNewDatabase = 'Ustvari novo podatkovno bazo';
+$strCreateNewTable = 'Ustvari novo tabelo v podatkovni bazi %s';
+$strCreatePage = 'Ustvari novo stran';
+$strCreatePdfFeat = 'Ustvarjanje PDF datotek';
+$strCreate = 'Ustvari';
+$strCreationDates = 'Datumi za ustvarjeno/posodobljeno/preverjeno';
+$strCriteria = 'Kriteriji';
+$strCroatian = 'Hrvaško';
+$strCyrillic = 'Cirilica';
+$strCzech = 'Češko';
+$strCzechSlovak = 'Češkoslovaško';
+
+$strDanish = 'Dansko';
+$strDatabaseEmpty = 'Ime podatkovne baze je prazno!';
+$strDatabaseExportOptions = 'Možnosti za izvoz baze podatkov';
+$strDatabaseHasBeenDropped = 'Podatkovna baza %s je zavržena.';
+$strDatabase = 'Podatkovna baza';
+$strDatabasesDropped = '%s podatkovne baze so uspešno zavržene.';
+$strDatabases = 'podatkovne baze';
+$strDatabasesStatsDisable = 'Onemogoči statistiko';
+$strDatabasesStatsEnable = 'Omogoči statistiko';
+$strDatabasesStatsHeavyTraffic = 'Obvestilo: Omogočitev statistike podatkovne baze lahko povzroči močno povečan promet med spletnim in podatkovnim strežnikom.';
+$strDatabasesStats = 'Statistika podatkovnih baz';
+$strDataDict = 'Podatkovni slovar';
+$strDataOnly = 'Samo podatki';
+$strData = 'Podatki';
+$strDBComment = 'Komentar zbirke podatkov: ';
+$strDbPrivileges = 'Privilegiji tipični za podatkovno bazo';
+$strDBRename = 'Preimenuj podatkovno bazo v';
+$strDbSpecific = 'glede na zbirko podatkov';
+$strDefault = 'Privzeto';
+$strDefaultValueHelp = 'Za privzete vrednosti vnesite samo vrednosti, brez poševnice nazaj ali narekovaja, npr.: a';
+$strDelayedInserts = 'Uporabi zakasnjeno vstavljanje';
+$strDeleteAndFlushDescr = 'To je najboljši način, vendar lahko osveževanje privilegijev traja nekaj časa.';
+$strDeleteAndFlush = 'Izbriši uporabnike in potem osveži privilegije.';
+$strDeleted = 'Vrstica je izbrisana';
+$strDelete = 'Izbriši';
+$strDeleting = 'Brišem %s';
+$strDelOld = 'Trenutna stran vsebuje sklice na tabele, ki ne obstajajo več. Ali želite izbrisati te sklice?';
+$strDescending = 'Padajoče';
+$strDescription = 'Opis';
+$strDictionary = 'slovar';
+$strDisabled = 'Onemogočeno';
+$strDisplayFeat = 'Prikaži lastnosti';
+$strDisplayOrder = 'Vrstni red prikaza:';
+$strDisplayPDF = 'Prikaži PDF shemo';
+$strDoAQuery = 'Izvedi "query by example" (nadomestni znak: "%")';
+$strDocu = 'Dokumentacija';
+$strDoYouReally = 'Ali res želite ';
+$strDropDatabaseStrongWarning = 'S tem dejanjem boste UNIČILI celotno bazo podatkov!';
+$strDropUsersDb = 'Izbriši podatkovne baze, ki imajo enako ime kot uporabniki.';
+$strDrop = 'Zavrži';
+$strDumpingData = 'Odloži podatke za tabelo';
+$strDumpSaved = 'Dump je shranjen v datoteko %s.';
+$strDumpXRows = 'Odloži %s vrstic, začni z zapisom # %s.';
+$strDynamic = 'dinamično';
+
+$strEditPDFPages = 'Uredi PDF strani';
+$strEditPrivileges = 'Uredi privilegije';
+$strEdit = 'Uredi';
+$strEffective = 'Učinkovito';
+$strEmpty = 'Izprazni';
+$strEmptyResultSet = 'MySQL je vrnil kot rezultat prazno množico (npr. nič vrstic).';
+$strEnabled = 'Omogočeno';
+$strEncloseInTransaction = 'Vključi izvoz v transakcijo';
+$strEndCut = 'KONEC IZREZA';
+$strEnd = 'Konec';
+$strEndRaw = 'END RAW';
+$strEnglish = 'Angleško';
+$strEnglishPrivileges = ' Opomba: Imena MySQL privilegijev so zapisana v angleščini ';
+$strError = 'Napaka';
+$strEstonian = 'Estonsko';
+$strExcelEdition = 'Izdaja za Excel';
+$strExecuteBookmarked = 'Izvedi izbrano poizvedbo';
+$strExplain = 'Razloži SQL stavek';
+$strExport = 'Izvozi';
+$strExtendedInserts = 'Razširjene \'insert\' poizvedbe';
+$strExtra = 'Dodatno';
+
+$strFailedAttempts = 'Neuspeli poizkusi';
+$strFieldHasBeenDropped = 'Polje %s je zavrženo';
+$strField = 'Polje';
+$strFieldsEnclosedBy = 'Polja obdana z';
+$strFieldsEscapedBy = 'Polja izognjena z';
+$strFields = 'Polja';
+$strFieldsTerminatedBy = 'Polja zaključena z';
+$strFileAlreadyExists = 'Datoteka %s že obstaja na strežniku, spremenite ime novi ali prepišite obstoječo datoteko.';
+$strFileCouldNotBeRead = 'Ne morem prebrati datoteke';
+$strFileNameTemplate = 'Predloga datoteke';
+$strFileNameTemplateRemember = 'Shrani predlogo';
+$strFixed = 'fiksno';
+$strFlushPrivilegesNote = 'Obvestilo: phpMyAdmin dobi podatke o uporabnikovih privilegijih iz MySQL tabel privilegijev. Vsebina teh tabel se lahko razlikuje od privilegijev, ki jih uporablja strežnik, če so bile tabele ročno spremenjene. V tem primeru morate, preden nadaljujete, osvežiti privilegije.';
+$strFlushTable = 'Počisti tabelo ("FLUSH")';
+$strFormat = 'Oblika';
+$strFormEmpty = 'V obliki manjka vrednost !';
+$strFullText = 'Polna besedila';
+$strFunction = 'Funkcija';
+
+$strGenBy = 'Ustvaril';
+$strGeneralRelationFeat = 'Splošne lastnosti relacij';
+$strGenTime = 'Čas nastanka';
+$strGeorgian = 'Gruzijsko';
+$strGerman = 'Nemško';
+$strGlobal = 'globalno';
+$strGlobalPrivileges = 'Globalni privilegiji';
+$strGlobalValue = 'Skupna vrednost';
+$strGo = 'Izvedi';
+$strGrantOption = 'Dovoli';
+$strGreek = 'Grško';
+$strGzip = '"gzipano"';
+
+$strHasBeenAltered = 'je bil spremenjen(a).';
+$strHaveToShow = 'Za prikaz morate izbrati morate vsaj en stolpec';
+$strHebrew = 'Hebrejsko';
+$strHome = 'Domov';
+$strHomepageOfficial = 'Uradna domača stran phpMyAdmin';
+$strHostEmpty = 'Ime gostitelja je prazno!';
+$strHost = 'Gostitelj';
+$strHungarian = 'Madžarsko';
+
+$strId = 'ID';
+$strIdxFulltext = 'Polno besedilo';
+$strIgnoreInserts = 'Uporabi možnost prezri vstavke';
+$strIgnore = 'Prezri';
+$strImportFiles = 'Uvozi datoteke';
+$strIndexes = 'Indeksi';
+$strIndexHasBeenDropped = 'Indeks %s je zavržen';
+$strIndex = 'Indeks';
+$strIndexName = 'Ime indeksa&nbsp;:';
+$strIndexType = 'Vrsta indeksa&nbsp;:';
+$strInnodbStat = 'InnoDB stanje';
+$strInsecureMySQL = 'Konfiguracijska datoteka vsebuje nastavitve (uporabnik root brez gesla), ki odgovarjajo privzetemu privlegiranemu računu MySQLa. MySQL strežnik teče s privzetimi nastavitvami, zato je izpostavljen vdorom. Čimprej odpravite ti dve varnostni luknji.';
+$strInsertAsNewRow = 'Vstavi kot novo vrstico';
+$strInsert = 'Vstavi';
+$strInternalRelations = 'Notranje relacije';
+$strInUse = 'v uporabi';
+
+$strJapanese = 'Japonsko';
+$strJumpToDB = 'Preskoči na podatkovno bazo &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Izbrisani&quot; uporabniki lahko še vedno normalno dostopajo do strežnika, dokler ne osvežite privilegijev';
+$strJustDelete = 'Samo izbriši uporabnike iz tabel privilegijev.';
+
+$strKeepPass = 'Ne spreminjaj gesla';
+$strKeyname = 'Ime ključa';
+$strKill = 'Prekini proces';
+$strKorean = 'Korejsko';
+
+$strLandscape = 'Ležeče';
+$strLatexCaption = 'Ime tabele';
+$strLatexContent = 'Vsebina tabele __TABLE__';
+$strLatexContinuedCaption = 'Nadaljevanje imena tabele';
+$strLatexContinued = '(nadaljevanje)';
+$strLatexIncludeCaption = 'Vključi ime tabele';
+$strLatexLabel = 'Označi ključ';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktura tabele __TABLE__';
+$strLengthSet = 'Dolžina/Vrednosti*';
+$strLimitNumRows = 'Število vrstic na stran';
+$strLinesTerminatedBy = 'Vrstice zaključene z';
+$strLinkNotFound = 'Povezave ni mogoče najti';
+$strLinksTo = 'Povezave z';
+$strLithuanian = 'Litvansko';
+$strLocalhost = 'Lokalno';
+$strLocationTextfile = 'Lokacija datoteke z besedilom';
+$strLoginInformation = 'Podatki o prijavi';
+$strLogin = 'Prijava';
+$strLogout = 'Odjava';
+$strLogPassword = 'Geslo:';
+$strLogServer = 'Strežnik';
+$strLogUsername = 'Uporabniško ime:';
+
+$strMaximumSize = 'Največja velikost: %s%s';
+$strMIME_available_mime = 'Razpoložljive MIME-vrste';
+$strMIME_available_transform = 'Razpoložljive pretvorbe';
+$strMIME_description = 'Opis';
+$strMIME_MIMEtype = 'MIME-vrsta';
+$strMIME_nodescription = 'Za to pretvorbo ni na voljo opisa.<br />Za funkcije %s se pozanimajte pri avtorju.';
+$strMIME_transformation_note = 'Seznam razpoložljivih možnosti pretvorbe in pretvorbe MIME-vrst boste videli, če kliknete na %sopise transformacij%s';
+$strMIME_transformation_options = 'Možnosti pretvorbe';
+$strMIME_transformation_options_note = 'Vrednosti za možnosti pretvorbe vnesite v naslednji obliki: \'a\', 100, b,\'c\'...<br />Če želite med vrednosti vnesti poševnico nazaj ("\") ali enojni narekovaj ("\'"), morate pred ta znak postaviti (še eno) poševnico nazaj (npr. \'\\\\xyz\' ali \'a\\\'b\').';
+$strMIME_transformation = 'Pretvorba z brskalnikom';
+$strMIMETypesForTable = 'VRSTE MIME ZA TABELO';
+$strMIME_without = 'MIME-vrste, ki so napisano ležeče, nimajo lastne pretvorbene funkcije';
+$strModifications = 'Spremembe so shranjene';
+$strModifyIndexTopic = 'Spremeni indeks';
+$strModify = 'Spremeni';
+$strMoveTableOK = 'Tabela %s je bila premaknjena v %s.';
+$strMoveTable = 'Premakni tabelo v (podatkovna_baza<b>.</b>tabela):';
+$strMoveTableSameNames = 'Tabele ni mogoče premakniti same vase!';
+$strMultilingual = 'večjezično';
+$strMySQLCharset = 'MySQL kodna tabela';
+$strMySQLSaid = 'MySQL je vrnil: ';
+$strMySQLShowProcess = 'Pokaži procese';
+
+$strName = 'Ime';
+$strNext = 'Naslednji';
+$strNoDatabases = 'Brez podatkovnih baz';
+$strNoDatabasesSelected = 'Ni izbranih podatkovnih baz.';
+$strNoDescription = 'brez opisa';
+$strNoDropDatabases = '"DROP DATABASE" poizvedbe so izključene.';
+$strNoExplain = 'Preskoči razlago SQL stavka';
+$strNoFrames = 'phpMyAdmin je prijaznejši z brskalnikom, ki podpira okvirje.';
+$strNoIndex = 'Ni definiranega indeksa!';
+$strNoIndexPartsDefined = 'Ni definiranega dela indeksa!';
+$strNoModification = 'Brez sprememb';
+$strNo = 'Ne';
+$strNone = 'Brez';
+$strNoOptions = 'Za to obliko ni možnosti';
+$strNoPassword = 'Brez gesla';
+$strNoPermission = 'Spletni strežnik nima dovoljenja za shranjevanje datoteke %s';
+$strNoPhp = 'Brez kode PHP';
+$strNoPrivileges = 'Brez privilegijev';
+$strNoRights = 'Nimate dovolj pravic, da bi bili sedaj tukaj!';
+$strNoSpace = 'Ni dovolj prostora za shranjevanje datoteke %s.';
+$strNoTablesFound = 'V podatkovni bazi ni mogoče najti tabel.';
+$strNotNumber = 'To ni število!';
+$strNotOK = 'Ni v redu';
+$strNotSet = 'Tabele <b>%s</b> ni mogoče najti ali pa ni v %s';
+$strNoUsersFound = 'Ni mogoče najti uporabnika(ov).';
+$strNoValidateSQL = 'Preskoči preverjanje pravilnosti SQL stavka';
+$strNull = 'Null';
+$strNumSearchResultsInTable = '%s zadetek(ov) v tabeli <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Skupaj:</b> <i>%s</i> zadetek(ov)';
+$strNumTables = 'Ttabel';
+
+$strOK = 'V redu';
+$strOperations = 'Operacije';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optimiraj tabelo';
+$strOr = 'Ali';
+$strOverhead = 'Presežek';
+$strOverwriteExisting = 'Prepiši obstoječo(e) datoteko(e)';
+
+$strPageNumber = 'Številka strani:';
+$strPaperSize = 'Velikost papirja';
+$strPartialText = 'Delna besedila';
+$strPasswordChanged = 'Geslo za %s je uspešno spremenjeno.';
+$strPasswordEmpty = 'Geslo je prazno!';
+$strPassword = 'Geslo';
+$strPasswordNotSame = 'Gesli se ne ujemata!';
+$strPdfDbSchema = 'Shema podatkovne baze "%s" - Stran %s';
+$strPdfInvalidTblName = 'Tabela "%s" ne obstaja!';
+$strPdfNoTables = 'Ni tabel';
+$strPerHour = 'na uro';
+$strPerMinute = 'na minuto';
+$strPerSecond = 'na sekundo';
+$strPhoneBook = 'telefonski imenik';
+$strPhp = 'Ustvari PHP kodo';
+$strPHPVersion = 'Različica PHP';
+$strPmaDocumentation = 'phpMyAdmin dokumentacija';
+$strPmaUriError = 'Ukaz <tt>$cfg[\'PmaAbsoluteUri\']</tt> mora biti definiran v konfiguracijski datoteki!';
+$strPortrait = 'Pokončno';
+$strPos1 = 'Začetek';
+$strPrevious = 'Prejšnji';
+$strPrimaryKeyHasBeenDropped = 'Primarni ključ je zavržen';
+$strPrimaryKeyName = 'Ime primarnega ključa mora biti... PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>mora</b> biti ime <b>samo</b> primarnega ključa!)';
+$strPrimary = 'Primarni';
+$strPrint = 'Natisni';
+$strPrintViewFull = 'Pogled za tiskanje (s polnimi besedili)';
+$strPrintView = 'Pogled postavitve tiskanja';
+$strPrivDescAllPrivileges = 'Vsebuje vse privilegije razen GRANT.';
+$strPrivDescAlter = 'Omogoča spreminjanje strukture obstoječih tabel.';
+$strPrivDescCreateDb = 'Omogoča ustvarjanje novih podatkovnih baz in tabel.';
+$strPrivDescCreateTbl = 'Omogoča ustvarjanje novih tabel.';
+$strPrivDescCreateTmpTable = 'Omogoča ustvarjanje začasnih tabel.';
+$strPrivDescDelete = 'Omogoča brisanje podatkov.';
+$strPrivDescDropDb = 'Omogoča brisanje podatkovnih baz in tabel.';
+$strPrivDescDropTbl = 'Omogoča brisanje tabel.';
+$strPrivDescExecute = 'Omogoča poganjanje shranjenih postopkov; V tej verziji MySQL nima pomena.';
+$strPrivDescFile = 'Omogoča uvažanje in izvažanje podatkov v datoteke.';
+$strPrivDescGrant = 'Omogoča dodajanje uporabnikov in privilegijev brez osveževanja privilegijev.';
+$strPrivDescIndex = 'Omogoča ustvarjanje in brisanje indeksov.';
+$strPrivDescInsert = 'Omogoča vstavljanje in zamenjavo podatkov.';
+$strPrivDescLockTables = 'Omogoča zaklepanje tabel za trenutno temo.';
+$strPrivDescMaxConnections = 'Omeji število povezav, ki jih uporabnik lahko odpre v eni uri.';
+$strPrivDescMaxQuestions = 'Omeji število poizved, ki jih uporabnik lahko pošlje strežniku v eni uri.';
+$strPrivDescMaxUpdates = 'Omeji število ukazov za spremembo tabel ali podatkovne baze, ki jih uporabnik lahko izvrši v eni uri.';
+$strPrivDescReferences = 'V tej verziji MySQL nima pomena.';
+$strPrivDescReload = 'Omogoča osveževanje strežnikovih nastavitev in praznjenje strežnikovih predpomnilnikov.';
+$strPrivDescReplClient = 'Da uporabniku pravico poizvedovati kje so njegovi nadrejeni / podrjeni strežniki.';
+$strPrivDescReplSlave = 'Potrebno za podrejene strežnike pri replikaciji.';
+$strPrivDescSelect = 'Omogoča branje podatkov.';
+$strPrivDescShowDb = 'Omogoča dostop do popolnega spiska podatkovnih baz';
+$strPrivDescShutdown = 'Omogoča ugašanje strežnika.';
+$strPrivDescSuper = 'Omogoča priklaplanje tudi če je že doseženo največje dovoljeno število priklopov; Potrebno za večino administrativnih nalog kot sta postavljanje globalnih spremenljivk in ukinjanje procesov drugih uporabnikov.';
+$strPrivDescUpdate = 'Omogoča spreminjanje podatkov.';
+$strPrivDescUsage = 'Brez privilegijev.';
+$strPrivileges = 'Privilegiji';
+$strPrivilegesReloaded = 'Uspešno sem osvežil privilegije.';
+$strProcesses = 'Procesi';
+$strProcesslist = 'Seznam procesov';
+$strPutColNames = 'Postavi imena polj v prvo vrstico';
+
+$strQBEDel = 'Briši';
+$strQBEIns = 'Vstavi';
+$strQBE = 'Poizvedba';
+$strQueryFrame = 'Okno za iskanje';
+$strQueryOnDb = 'SQL-poizvedba na podatkovni bazi <b>%s</b>:';
+$strQuerySQLHistory = 'SQL-zgodovina';
+$strQueryStatistics = '<b>Statistika poizvedbe</b>: Od zagona je bilo strežniku poslanih %s poizvedb.';
+$strQueryTime = 'Poizvedba je potrebovala %01.4f s';
+$strQueryType = 'Vrsta poizvedbe';
+$strQueryWindowLock = 'Ne prepiši te poizvedbe od zunaj';
+
+$strReceived = 'Prejeto';
+$strRecords = 'Zapisi';
+$strReferentialIntegrity = 'Preveri referenčno integriteto:';
+$strRelationalSchema = 'Relacijska shema';
+$strRelationNotWorking = 'Dodatne funkcije za delo s povezanimi tabelami so bile izkjučene. Če želite izvedeti zakaj, kliknite %stukaj%s.';
+$strRelationsForTable = 'RELACIJE ZA TABELO';
+$strRelations = 'Relacije';
+$strRelationView = 'Pogled relacij';
+$strReloadingThePrivileges = 'Osvežujem privilegije';
+$strRemoveSelectedUsers = 'Izbriši izbrane uporabnike';
+$strRenameDatabaseOK = 'Baza podatkov %s je preimenovana v %s';
+$strRenameTableOK = 'Tabela %s je preimenovana v %s';
+$strRenameTable = 'Preimenuj tabelo v';
+$strRepairTable = 'Popravi tabelo';
+$strReplaceNULLBy = 'Zamenjaj NULL z';
+$strReplaceTable = 'Podatke v tabeli zamenjaj z datoteko';
+$strReset = 'Ponastavi';
+$strResourceLimits = 'Omejitve virov';
+$strReType = 'Ponovno vnesi';
+$strRevokeAndDeleteDescr = 'Uporabniki bodo še vedno imeli USAGE privilegije, dokler ne osvežite privilegijev.';
+$strRevokeAndDelete = 'Odvzemi uporabnikom aktivne privilegije in jih potem izbriši.';
+$strRevokeMessage = 'Odvzeli ste privilegije za %s';
+$strRevoke = 'Odvzemi';
+$strRowLength = 'Dolžina vrstice';
+$strRowsFrom = 'vrstice naprej od zapisa #';
+$strRowSize = ' Velikost vrstice ';
+$strRowsModeFlippedHorizontal = 'vodoravno (zasukani naslovi)';
+$strRowsModeHorizontal = 'vodoravnem';
+$strRowsModeOptions = 'v %s načinu in ponovi glavo po %s celicah';
+$strRowsModeVertical = 'navpičnem';
+$strRowsStatistic = 'Statistika vrstic';
+$strRows = 'Vrstice';
+$strRunning = 'teče na %s';
+$strRunQuery = 'Izvedi poizvedbo';
+$strRunSQLQuery = 'Izvedi SQL poizvedbo/poizvedbe na podatkovni bazi %s';
+$strRussian = 'Rusko';
+
+$strSaveOnServer = 'Shrani na strežnik, v imenik %s';
+$strSave = 'Shrani';
+$strScaleFactorSmall = 'Faktor povečava je premajhen, da bi spravili shemo na eno stran';
+$strSearchFormTitle = 'Išči v podatkovni bazi';
+$strSearchInTables = 'V tabelah:';
+$strSearch = 'Iskanje';
+$strSearchNeedle = 'Iskane besede ali vrednosti (nadomestni znak: "%"):';
+$strSearchOption1 = 'katerokoli besedo';
+$strSearchOption2 = 'vse besede';
+$strSearchOption3 = 'točno določeno frazo';
+$strSearchOption4 = 'kot \'regular expression\'';
+$strSearchResultsFor = 'Rezultati iskanja "<i>%s</i>" %s:';
+$strSearchType = 'Najdi:';
+$strSecretRequired = 'Konfiguracijski datoteki morate sedaj določiti skrivno geslo (blowfish_secret).';
+$strSelectADb = 'Prosimo, izberite podatkovno bazo';
+$strSelectAll = 'Izberi vse';
+$strSelectFields = 'Izberite polja (vsaj eno):';
+$strSelectNumRows = 'in poizvedba';
+$strSelectTables = 'Izberi tabele';
+$strSend = 'Shrani kot datoteko';
+$strSent = 'Poslano';
+$strServerChoice = 'Izbira strežnika';
+$strServerStatus = 'Podatki o izvajanju';
+$strServerStatusUptime = 'MySQL strežnik deluje že %s. Zagnal se je %s.';
+$strServer = 'Strežnik';
+$strServerTabVariables = 'Spremenljivke';
+$strServerTrafficNotes = '<b>Promet na strežniku</b>: V teh tabelah je prikazana statistika obremenitve omrežja za ta MySQL strežnik, odkar je bil zagnan.';
+$strServerVars = 'Spremenljivke in nastavitve strežnika';
+$strServerVersion = 'Različica strežnika';
+$strSessionValue = 'Vrednost seje';
+$strSetEnumVal = 'Če je polje vrste "enum" ali "set", navedite vrednosti v obliki: \'a\',\'b\',\'c\'...<br /> Če želite med vrednostmi uporabiti poševnico ("\") ali enojni narekovaj ("\'"), pred tem znakom vnesite poševnico (n.pr. \'\\\\xyz\' ali \'a\\\'b\').';
+$strShowAll = 'Pokaži vse';
+$strShowColor = 'Pokaži barvo';
+$strShowDatadictAs = 'Oblika podatkovnega slovarja';
+$strShowFullQueries = 'Pokaži celotne poizvedbe';
+$strShowGrid = 'Pokaži mrežo';
+$strShowingRecords = 'Prikazujem vrstice';
+$strShowPHPInfo = 'Pokaži podatke o PHP';
+$strShow = 'Pokaži';
+$strShowTableDimension = 'Pokaži dimenzije tabel';
+$strShowTables = 'Pokaži tabele';
+$strShowThisQuery = ' Ponovno pokaži poizvedbo v tem oknu ';
+$strSimplifiedChinese = 'Poenostavljeno kitajsko';
+$strSingly = '(posamezno)';
+$strSize = 'Velikost';
+$strSortByKey = 'Uredi po ključu';
+$strSort = 'Sortiraj';
+$strSpaceUsage = 'Poraba prostora';
+$strSplitWordsWithSpace = 'Besede so ločene s presledkom (" ").';
+$strSQLExportType = 'Vrsta izvoza';
+$strSQLParserBugMessage = 'Obstaja možnost, da ste v SQL razčlenjevalniku naleteli na hrošča. Temeljito preglejte poizvedbo in preverite, če so citati pravilni in če se ujemajo. Možno je tudi, da prenašate binarno datoteko, ki je izven področja besedila citata. Poizvedbo lahko preizkusite tudi na vmesniku ukazne vrstice MySQL. Če je strežnik MySQL izpisal napako, vam le-ta lahko pomaga pri ugotavljanju težav. Če se bodo težave nadaljevale, ali če razčlenjevalniku ne uspe tam, kjer vmesniku ukazne vrstice uspe, potem zmanjšajte vnešeno SQL poizvedbo na tisto poizvedbo, ki povzroča težave in pošljite poročilo o napaki skupaj s podatki iz spodnjega odseka IZREZA.';
+$strSQLParserUserError = 'Izgleda, da je v SQL poizvedbi prišlo do napake. Če je strežnik MySQL izpisal napako, vam le-ta lahko pomaga pri ugotavljanju težav.';
+$strSQLQuery = 'SQL-poizvedba';
+$strSQLResult = 'Rezultat SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Neveljavni identifikator';
+$strSQPBugUnclosedQuote = 'Odprt citat';
+$strSQPBugUnknownPunctuation = 'Neznan niz ločil';
+$strStatCheckTime = 'Zadnjič pregledano';
+$strStatCreateTime = 'Ustvarjeno';
+$strStatement = 'Izjave';
+$strStatUpdateTime = 'Zadnjič posodobljeno';
+$strStatus = 'Stanje';
+$strStrucCSV = 'CSV podatki';
+$strStrucData = 'Struktura in podatki';
+$strStrucExcelCSV = 'CSV podatki za MS Excel';
+$strStrucOnly = 'Samo struktura';
+$strStructPropose = 'Predlagaj strukturo tabele';
+$strStructure = 'Struktura';
+$strSubmit = 'Pošlji';
+$strSuccess = 'SQL-poizvedba je bila uspešno izvedena';
+$strSum = 'Vsota';
+$strSwedish = 'Švedsko';
+$strSwitchToTable = 'Preklopi na kopirano tabelo';
+
+$strTableComments = 'Komentar tabele';
+$strTableEmpty = 'Ime tabele je prazno!';
+$strTableHasBeenDropped = 'Tabela %s je zavržena';
+$strTableHasBeenEmptied = 'Tabela %s je izpraznjena';
+$strTableHasBeenFlushed = 'Tabela %s je osvežena';
+$strTableMaintenance = 'Vzdrževanje tabele';
+$strTableOfContents = 'Vsebina';
+$strTableOptions = 'Možnosti tabele';
+$strTables = '%s tabel';
+$strTableStructure = 'Struktura tabele';
+$strTable = 'Tabela';
+$strTblPrivileges = 'Privilegiji tipični za tabelo';
+$strTextAreaLength = ' Zaradi njegove dolžine<br /> polja ne bo mogoče urejati ';
+$strThai = 'Tajsko';
+$strThisHost = 'Ta strežnik';
+$strThreadSuccessfullyKilled = 'Tema %s je bila prekinjena.';
+$strTime = 'Čas';
+$strToggleScratchboard = 'preklopi odložišče (scratchboard)';
+$strTotal = 'skupaj';
+$strTotalUC = 'Skupaj';
+$strTraditionalChinese = 'Tradicionalno kitajsko';
+$strTraffic = 'Promet';
+$strTransformation_application_octetstream__download = 'Prikaži povezavo za prenos binarnih podatkov polja. Prva možnost je ime binarne datoteke. Druga možnost je možno ime polja v vrstici tabele, ki vsebuje to ime datoteke. Če vnesete drugo možnost, mora biti prva možnost prazna';
+$strTransformation_image_jpeg__inline = 'Prikaže sličico, na katero lahko kliknete; možnosti: širina, višina v slikovnih pikah (obdrži prvotna razmerja)';
+$strTransformation_image_jpeg__link = 'Pokaže povezavo na grafiko (neposredni BLOB prenos, ipd.).';
+$strTransformation_image_png__inline = 'Pokaži sliko/jpeg: vključeno';
+$strTransformation_text_plain__external = 'SAMO ZA LINUX: Zažene zunanjo aplikacijo in podaja podatke za fielddata preko standardnega vhoda. Vrne standardni izhod aplikacije. Privzeto je Tidy, za tiskanje HTML-kode. Zaradi varnostnih razlogov morate ročno urediti datoteko libraries/transformations/text_plain__external.inc.php in vstaviti orodja za zaganjanje. Prva možnost je številka programa, ki ga želite uporabiti, druga možnost pa so parametri za program. Če tretji parameter nastavite na 1, bo s pomočjo htmlspecialchars() pretvoril izhod (Privzeto: 1). Če nastavite četrti parameter na 1, bo v celico z vsebino (content cell) vnesel NOWRAP in tako prikazal celoten izhod brez preoblikovanja (Privzeto: 1)';
+$strTransformation_text_plain__formatted = 'Ohrani izvirno oblikovanje polja, brez izgubljanja vsebine.';
+$strTransformation_text_plain__imagelink = 'Prikaže sliko in povezavo, polje vsebuje ime datoteke; najprej je predpona, npr. "http://domena.com/", druga možnost je širina v slikovnih pikah, tretja pa višina.';
+$strTransformation_text_plain__link = 'Prikaže povezavo, polje vsebuje ime datoteke; prva možnost je predpona, npr. "http://domena.com/", druga pa ime povezave.';
+$strTransformation_text_plain__substr = 'Vrne le del niza. Prva možnost je odmik, ki določa, kje se bo začelo prikazano besedilo (Privzeto: 0). Druga možnost je odmik, ki pove, koliko besedila bo prikazanega. Če ni določen, bo izpisano vse preostalo besedilo. Tretja možnost pa določa, kateri znaki bodo pripeti vrnjenemu podnizu (Privzeto: ...) .';
+$strTruncateQueries = 'Skrči prikazane poizvedbe';
+$strTurkish = 'Turško';
+$strType = 'Vrsta';
+
+$strUkrainian = 'Ukrajinsko';
+$strUncheckAll = 'Odznači vse';
+$strUnicode = 'Unicode';
+$strUnique = 'Unikaten';
+$strUnknown = 'neznano';
+$strUnselectAll = 'Prekliči izbor vsega';
+$strUpdatePrivMessage = 'Posodobili ste privilegije za %s.';
+$strUpdateProfileMessage = 'Profil je posodobljen.';
+$strUpdateQuery = 'Osveži poizvedbo';
+$strUpdComTab = 'Navodila za posodobitev tabele Column_comments\' najdete v dokumentaciji';
+$strUpgrade = '%s bi morali nadgraditi v verzijo %s ali novejšo.';
+$strUsage = 'Uporaba';
+$strUseBackquotes = 'Obdaj imena tabel in polj z enojnimi poševnimi narekovaji';
+$strUseHostTable = 'Uporabi tabelo gostiteljev';
+$strUserAlreadyExists = 'Uporabnik %s že obstaja!';
+$strUserEmpty = 'Uporabniško ime je prazno!';
+$strUserName = 'Uporabniško ime';
+$strUserNotFound = 'Izbranega uporabnika v tabelah privilegijev nisem našel.';
+$strUserOverview = 'Pregled uporabnikov';
+$strUsersDeleted = 'Uspešno sem izbrisal izbrane uporabnike.';
+$strUsersHavingAccessToDb = 'Uporabniški dostop do &quot;%s&quot;';
+$strUser = 'Uporabnik';
+$strUseTables = 'Uporabi tabele';
+$strUseTextField = 'Uporabi tekstovno polje';
+$strUseThisValue = 'Uporabi to vrednost';
+
+$strValidateSQL = 'Preveri pravilnost SQL stavka';
+$strValidatorError = 'Ne morem inicializirati SQL validatorja. Prosim preverite, če so nameščeni vsi php razširitve, kot je navedeno v %dokumenaciji%.';
+$strValue = 'Vrednost';
+$strVar = 'Spremenljivka';
+$strViewDumpDatabases = 'Pokaži povzetek stanja podatkovnih baz';
+$strViewDumpDB = 'Preglej povzetek stanja podatkovne baze';
+$strViewDump = 'Preglej povzetek stanja tabele';
+
+$strWebServerUploadDirectoryError = 'Imenik, ki ste ga določili za nalaganje, je nedosegljiv';
+$strWebServerUploadDirectory = 'imenik za nalaganje datotek';
+$strWelcome = 'Dobrodošli v %s';
+$strWestEuropean = 'Zahodno evropsko';
+$strWildcard = 'nadomestni znak';
+$strWindowNotFound = 'Ciljnega okna ni bilo mogoče osvežiti. Morda ste zaprli nadrejeno okno ali pa vaš brskalnik blokira osveževanje varnostnih parametrov med okni.';
+$strWithChecked = 'Z označenim:';
+$strWrongUser = 'Napačno uporabniško ime/geslo. Dostop zavrnjen.';
+
+$strXML = 'XML';
+
+$strYes = 'Da';
+
+$strZeroRemovesTheLimit = 'Obvestilo: Če postavite vrednost na 0 (nič), boste odstranili omejitev.';
+$strZip = '"zipano"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/sort_lang.sh b/lang/sort_lang.sh
new file mode 100755
index 0000000000..42032da9b9
--- /dev/null
+++ b/lang/sort_lang.sh
@@ -0,0 +1,83 @@
+#!/bin/sh
+# $Id$
+##
+# Shell script to make each language file neat and tidy
+#
+# Robin Johnson <robbat2@users.sourceforge.net>
+# August 9, 2002
+##
+
+specialsort()
+{
+ in=$1
+ out=$2
+
+ STRINGORDER="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
+
+ for i in $STRINGORDER;
+ do
+ egrep '^\$str'$i $in | sort >> $out
+ echo >> $out
+ done
+}
+
+sortlang()
+{
+ f=$1
+ targetdir=tmp-$f
+ mkdir -p $targetdir
+
+ TRANSLATIONSTRING='//.*translate.*$'
+ STRINGSTRING='^\$str[[:alnum:]_]+'
+ WHITESPACE='^[[:blank:]]*$'
+ CVSID='/\* \$Id$ \*/'
+
+ echo -n "Extracting:"
+ echo -n " head"
+ egrep -i -v $TRANSLATIONSTRING $f | \
+ egrep -v "$STRINGSTRING|$CVSID|\?>|<\?php" >> $targetdir/head
+
+ echo -n " cvs"
+ egrep "$CVSID" $f >>$targetdir/cvs
+
+ echo -n " strings"
+ egrep -i -v "$WHITESPACE|$TRANSLATIONSTRING" $f | \
+ egrep $STRINGSTRING > $targetdir/tmp-tosort
+
+ echo -n " pending_translations"
+ egrep -i "$STRINGSTRING.*$TRANSLATIONSTRING" $f > $targetdir/tmp-translate
+ echo
+
+ echo -n "Building:"
+ echo -n " strings"
+ specialsort $targetdir/tmp-tosort $targetdir/sort
+
+ echo -n " pending_translations"
+ if [ -s $targetdir/tmp-translate ] ; then
+ echo '// To translate:' > $targetdir/translate
+ specialsort $targetdir/tmp-translate $targetdir/translate
+ else
+ echo -n > $targetdir/translate
+ fi
+ echo
+
+ echo "Assembling final"
+ echo "<?php" > $f
+ cat $targetdir/cvs $targetdir/head $targetdir/sort $targetdir/translate \
+ | uniq >> $f
+ echo "?>" >> $f
+
+ rm -rf $targetdir
+}
+
+echo "-------------------------------------------------------------------"
+for i in "$@";
+do
+ if [ ! -f $i ] ; then
+ echo "$i is not a file, skipping"
+ else
+ echo "Sorting $i"
+ sortlang $i
+ fi
+ echo "-------------------------------------------------------------------"
+done;
diff --git a/lang/spanish-utf-8.inc.php b/lang/spanish-utf-8.inc.php
new file mode 100644
index 0000000000..9f8eddbe37
--- /dev/null
+++ b/lang/spanish-utf-8.inc.php
@@ -0,0 +1,1443 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// Atajos para Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$mysql_5_0_doc_lang = 'es';
+
+$day_of_week = array('Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab');
+$month = array('Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic');
+// Ver http://www.php.net/manual/es/function.strftime.php para definir
+// la variable siguiente
+$datefmt = '%d-%m-%Y a las %H:%M:%S';
+$timespanfmt = '%s días, %s horas, %s minutos y %s segundos';
+
+$strAbortedClients = 'Abortado';
+$strAccessDenied = 'Acceso denegado ';
+$strAccessDeniedCreateConfig = 'La razón más probable es que usted no creó un archivo de configuración. Utilice %1$ssetup script%2$s para crear una.';
+$strAccessDeniedExplanation = 'phpMyAdmin intentó conectarse con el servidor MySQL, y el servidor rechazó esta conexión. Deberá revisar el host, nombre de usuario y contraseña en config.inc.php y asegurarse que corresponden con la información provista por el administrador del servidor MySQL.';
+$strAction = 'Acción';
+$strActions = 'Accciones';
+$strAddAutoIncrement = 'Añadir el valor AUTO_INCREMENT';
+$strAddClause = 'Añada %s';
+$strAddConstraints = 'Añadir restricciones';
+$strAddDeleteColumn = 'Añadir/borrar columna de criterio';
+$strAddDeleteRow = 'Añadir/borrar fila de criterio';
+$strAddFields = 'Añadir %s campo(s)';
+$strAddHeaderComment = 'Añadir su propio comentario en el encabezado (\\n segmenta las oraciones)';
+$strAddIntoComments = 'Añadir en los comentarios';
+$strAddNewField = 'Insertar nuevo campo';
+$strAddPrivilegesOnDb = 'Añadir privilegios a esta base de datos';
+$strAddPrivilegesOnTbl = 'Añadir privilegios a esta tabla';
+$strAddSearchConditions = 'Insertar las condiciones de búsqueda (cuerpo de la cláusula "where"):';
+$strAddToIndex = 'Añadir al índice &nbsp;%s&nbsp;columna(s)';
+$strAddUser = 'Agregar un nuevo usuario';
+$strAddUserMessage = 'Ha agregado un nuevo usuario.';
+$strAdministration = 'Administración';
+$strAfter = 'Después de %s';
+$strAfterInsertBack = 'Volver';
+$strAfterInsertNewInsert = 'Insertar un nuevo registro';
+$strAfterInsertNext = 'Editar la siguiente fila';
+$strAfterInsertSame = 'Volver a esta página';
+$strAllowInterrupt = 'Permita la interrupción de la importación en el caso de que el script detecte que se ha acercado a su límite de tiempo. Esto podría ser un buen método para importar archivos grandes; sin embargo, puede dañar las transacciones.';
+$strAllTableSameWidth = '¿Mostrar todas las tablas que tienen el mismo ancho?';
+$strAll = 'Todos/as';
+$strAlterOrderBy = 'Modificar el ORDER BY de la tabla';
+$strAnalyze = 'Analice';
+$strAnalyzeTable = 'Analizar la tabla';
+$strAndThen = 'y luego';
+$strAnd = 'y luego';
+$strAngularLinks = 'Enlaces angulares';
+$strAnIndex = 'Se añadió un índice en %s';
+$strAny = 'cualquiera';
+$strAnyHost = 'Cualquier servidor';
+$strAnyUser = 'Cualquier usuario';
+$strApproximateCount = 'Podría ser aproximado. Léase la FAQ 3.11';
+$strAPrimaryKey = 'Se añadió una clave primaria en %s';
+$strArabic = 'Árabe';
+$strArmenian = 'Armenio';
+$strAscending = 'Ascendente';
+$strAsDefined = 'Como fuera definido:';
+$strAtBeginningOfTable = 'Al comienzo de la tabla';
+$strAtEndOfTable = 'Al final de la tabla';
+$strAttr = 'Atributos';
+$strAutomaticLayout = 'Diseño automático';
+
+$strBack = 'Volver';
+$strBaltic = 'Báltico';
+$strBeginCut = 'INICIO DEL CORTE';
+$strBeginRaw = 'INICIO DEL VOLCADO';
+$strBinary = ' Binario ';
+$strBinaryDoNotEdit = ' Binario - ¡no editar! ';
+$strBinaryLog = 'Log binario';
+$strBinLogEventType = 'Tipo de evento';
+$strBinLogInfo = 'Información';
+$strBinLogName = 'Nombre con el cual se registró';
+$strBinLogOriginalPosition = 'Posición original';
+$strBinLogPosition = 'Posición';
+$strBinLogServerId = 'ID del servidor';
+$strBookmarkAllUsers = 'Permitir que todo usuario pueda acceder a este favorito';
+$strBookmarkCreated = 'El favorito %s fue creado';
+$strBookmarkDeleted = 'El favorito ha sido borrado.';
+$strBookmarkLabel = 'Etiqueta';
+$strBookmarkQuery = 'Consulta guardada en favoritos';
+$strBookmarkReplace = 'Reemplazar el favorito existente que tenga el mismo nombre';
+$strBookmarkThis = 'Guardar esta consulta en favoritos';
+$strBookmarkView = 'Solamente ver';
+$strBrowseDistinctValues = 'Navegar los valores distintivos';
+$strBrowse = 'Examinar';
+$strBrowseForeignValues = 'Mostrar los valores extranjeros';
+$strBufferPoolActivity = 'Actividad de la memoria (búfer) de tránsito común';
+$strBufferPool = 'Total de memoria del búfer';
+$strBufferPoolUsage = 'Total de memoria del búfer consumido';
+$strBufferReadMissesInPercent = 'Leer los fallos en %';
+$strBufferReadMisses = 'Leer los fallos';
+$strBufferWriteWaits = 'Escribir las esperas';
+$strBufferWriteWaitsInPercent = 'Escribir las esperas en %';
+$strBulgarian = 'Búlgaro';
+$strBusyPages = 'Páginas activas';
+$strBzip = '"Comprimido con bzip"';
+
+$strCalendar = 'Calendario';
+$strCancel = 'Cancelar';
+$strCanNotLoadExportPlugins = 'No se cargaron los plugins de exportación. Por favor, ¡revise su instalación!';
+$strCanNotLoadImportPlugins = 'No se pudieron cargar los plugins de importación, por favor revise su instalación';
+$strCannotLogin = 'El servidor MySQL no autorizó su ingreso';
+$strCantLoad = 'no se pudo cargar la extensión %s,<br />por favor revise su configuración de PHP.';
+$strCantLoadRecodeIconv = 'No se puede cargar iconv o recodificar una extensión necesaria para la conversión de juegos de caracteres, configure php para permitir el uso de estas extensiones o desactive la conversión de juegos de caracteres en phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'No puede cambiar el nombre del índice a ¡PRIMARY!';
+$strCantUseRecodeIconv = 'No se puede utilizar iconv ni libiconv ni la función recode_string mientras se carga la extensión de informes. Comprueba la configuración de php.';
+$strCardinality = 'Cardinalidad';
+$strCaseInsensitive = 'independiente de mayúsculas y minúsculas';
+$strCaseSensitive = 'dependiente de mayúsculas y minúsculas';
+$strCentralEuropean = 'Europeo central';
+$strChange = 'Cambiar';
+$strChangeCopyModeCopy = '...mantener el anterior.';
+$strChangeCopyMode = 'Crear un nuevo usuario con los mismos privilegios y...';
+$strChangeCopyModeDeleteAndReload = ' ...borrar el viejo de las tablas de usuario y luego volver a cargar los privilegios.';
+$strChangeCopyModeJustDelete = ' ...borrar el viejo de las tablas de usuario.';
+$strChangeCopyModeRevoke = ' ...revocar todos los privilegios activos del viejo y eliminarlo después.';
+$strChangeCopyUser = 'Cambiar la información de la cuenta / Copiar el usuario';
+$strChangeDisplay = 'Elegir el campo a mostrar';
+$strChangePassword = 'Cambio de contraseña';
+$strCharset = 'Juego de caracteres';
+$strCharsetOfFile = 'Juego de caracteres del archivo:';
+$strCharsetsAndCollations = 'Juego de caracteres y sus cotejamientos';
+$strCharsets = 'Juegos de caracteres';
+$strCheckAll = 'Marcar todos/as';
+$strCheckOverhead = 'Marcar las tablas con residuo a depurar';
+$strCheckPrivsLong = 'Revisar los privilegios para la base de datos &quot;%s&quot;.';
+$strCheckPrivs = 'Revisar los privilegios';
+$strCheck = 'Revise';
+$strCheckTable = 'Revisar la tabla';
+$strChoosePage = 'Elegir la página a editar';
+$strColComFeat = 'Mostrando los comentarios de la columna';
+$strCollation = 'Cotejamiento';
+$strColumnNames = 'Nombre de las columnas';
+$strColumnPrivileges = 'Privilegios específicos para la columna';
+$strCommand = 'Comando';
+$strComment = 'Comentario';
+$strComments = 'Comentarios';
+$strCompatibleHashing = 'Compatible con MySQL&nbsp;4.0';
+$strCompleteInserts = 'Completar los INSERTS';
+$strCompression = 'Compresión';
+$strCompressionWillBeDetected = 'La compresión escogida para el archivo a importar se detectará automáticamente de: %s';
+$strConfigDefaultFileError = 'No fue posible cargar la configuración predeterminada desde: "%1$s"';
+$strConfigFileError = '¡phpMyAdmin no puede leer el fichero de configuración!<br />Esto puede suceder si php encuentra un error sintáctico en él o bien php no puede encontrar el fichero.<br />Intente acceder al fichero de configuración directamente mediante el siguiente enlace y compruebe el(los) mensaje(s) de error que reciba. En muchas ocasiones falta una coma o punto y coma en algún sitio.<br />Si recibe una página en blanco, todo está correcto.';
+$strConfigureTableCoord = 'Configure las coordenadas para la tabla %s';
+$strConnectionError = 'No se estableció la conexión: los parámetros están incorrectos.';
+$strConnections = 'Conexiones';
+$strConstraintsForDumped = 'Filtros para las tablas descargadas (dump)';
+$strConstraintsForTable = 'Filtros para la tabla';
+$strControluserFailed = 'La conexión para controluser, como está definida en su configuración, fracasó.';
+$strCookiesRequired = 'Las "cookies" deben estar habilitadas.';
+$strCopy = 'Copiar';
+$strCopyDatabaseOK = 'La base de datos %s ha sido copiada a %s';
+$strCopyTable = 'Copiar la tabla a (base de datos<b>.</b>tabla):';
+$strCopyTableOK = 'La tabla %s se copió a %s.';
+$strCopyTableSameNames = '¡No es posible copiar la tabla a la misma!';
+$strCouldNotKill = 'phpMyAdmin no fue capaz de destruir el proceso %s. Probablemente ya ha sido cerrado.';
+$strCreate = 'Crear';
+$strCreateDatabaseBeforeCopying = 'CREAR BASE DE DATOS antes de copiar';
+$strCreateIndex = 'Crear un índice en&nbsp;%s&nbsp;columna(s)';
+$strCreateIndexTopic = 'Crear un nuevo índice';
+$strCreateNewDatabase = 'Crear nueva base de datos';
+$strCreateNewTable = 'Crear nueva tabla en la base de datos %s';
+$strCreatePage = 'Crear una nueva página';
+$strCreatePdfFeat = 'Creación de los PDF';
+$strCreateRelation = 'Crear relación';
+$strCreateTable = 'Crear tabla';
+$strCreateUserDatabase = 'Base de datos para el usuario';
+$strCreateUserDatabaseName = 'Crear base de datos con el mismo nombre y otorgue todos los privilegios';
+$strCreateUserDatabaseNone = 'Ninguna';
+$strCreateUserDatabaseWildcard = 'Otorgue todos los privilegios al nombre que contiene comodín (username\_%)';
+$strCreationDates = 'Fechas de creación/actualización/revisión';
+$strCriteria = 'Criterio';
+$strCroatian = 'Croata';
+$strCSV = 'CSV';
+$strCustomColor = 'Cambiar el color';
+$strCyrillic = 'Cirílico';
+$strCzech = 'Checo';
+$strCzechSlovak = 'Checo-Eslovaco';
+
+$strDanish = 'Danés';
+$strDatabase = 'Base de datos';
+$strDatabaseEmpty = '¡El nombre de la base de datos está vacío!';
+$strDatabaseExportOptions = 'Opciones de exportación de la base de datos';
+$strDatabaseHasBeenCreated = 'La base de datos %1$s se creó.';
+$strDatabaseHasBeenDropped = 'La base de datos %s ha sido eliminada.';
+$strDatabases = 'Bases de datos';
+$strDatabasesDropped = '%s bases de datos han sido eliminadas exitosamente.';
+$strDatabasesStatsDisable = 'Desactivar las estadísticas';
+$strDatabasesStatsEnable = 'Activar las estadísticas';
+$strDatabasesStats = 'Estadísticas de la base';
+$strDatabasesStatsHeavyTraffic = 'Nota: Activar aquí las estadísticas de la base de datos podría causar tráfico pesado entre el servidor web y el servidor MySQL.';
+$strData = 'Datos';
+$strDataDict = 'Diccionario de datos';
+$strDataOnly = 'Solamente datos';
+$strDataPages = 'Páginas que contienen datos';
+$strDBComment = 'Comentario de la base de datos: ';
+$strDBCopy = 'Copiar la base de datos a';
+$strDbIsEmpty = 'La base de datos, ¡parece estar vacía!';
+$strDbPrivileges = 'Privilegios específicos para la base de datos';
+$strDBRename = 'Cambiar el nombre de la base de datos a';
+$strDbSpecific = 'específico para la base de datos';
+$strDefaultEngine = '%s es el motor de almacenamiento predeterminado en este servidor MySQL.';
+$strDefault = 'Predeterminado';
+$strDefaultValueHelp = 'Para valores predeterminados, por favor ingrese solamente un valor, sin caracteres de escape \"\\\" ni comillas, usando este formato: a';
+$strDefragment = 'Defragmentar la tabla';
+$strDelayedInserts = 'Usar "inserts" con retraso';
+$strDeleteAndFlush = 'Borrar a los usuarios y luego volver a cargar los privilegios.';
+$strDeleteAndFlushDescr = 'Este es el modo más limpio, pero volver a cargar los privilegios puede tomar tiempo.';
+$strDelete = 'Borrar';
+$strDeleted = 'La fila se ha borrado';
+$strDeleteNoUsersSelected = '¡No se han seleccionado usuarios para eliminar!';
+$strDeleteRelation = 'Eliminar la relación';
+$strDeleting = 'Borrando %s';
+$strDelimiter = 'Delimitador';
+$strDelOld = 'La página actual tiene referencias a tablas que ya no existen. ¿Desea eliminar esas referencias?';
+$strDescending = 'Descendente';
+$strDescription = 'Descripción';
+$strDesigner = 'Diseñador';
+$strDesignerHelpDisplayField = 'El campo Display se halla en color rosado. Para activar o desactivar un campo como un campo Display, dé clic en el ícono "Seleccione el campo a mostrar", luego dé clic en el nombre apropiado del campo.';
+$strDetails = 'Detalles...';
+$strDictionary = 'diccionario';
+$strDirectLinks = 'Enlaces directos';
+$strDirtyPages = 'Páginas que requieren ser depuradas';
+$strDisabled = 'Deshabilitado';
+$strDisableForeignChecks = 'Deshabilitar la revisión de las llaves extranjeras (foreign keys)';
+$strDisplayFeat = 'Mostrar las opciones'; //Features = ¿opciones, componentes?
+$strDisplayOrder = 'Mostrar en este orden:';
+$strDisplayPDF = 'Mostrar esquema PDF';
+$strDoAQuery = 'Hacer una consulta (comodín: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Documentación';
+$strDoYouReally = 'Realmente desea ';
+$strDropDatabaseStrongWarning = '¡Está a punto de DESTRUIR una base de datos completa!';
+$strDrop = 'Eliminar';
+$strDropUsersDb = 'Eliminar las bases de datos que tienen los mismos nombres que los usuarios.';
+$strDumpingData = 'Volcar la base de datos para la tabla';
+$strDumpSaved = 'Su archivo (MySQL dump) ha sido guardado con el nombre %s.';
+$strDumpXRows = 'Volcar %s filas empezando por la fila %s.';
+$strDynamic = 'dinámico/a';
+
+$strEdit = 'Editar';
+$strEditPDFPages = 'Editar las páginas PDF';
+$strEditPrivileges = 'Editar los privilegios';
+$strEffective = 'Efectivo/a';
+$strEmptyResultSet = 'MySQL ha devuelto un valor vacío (i.e., cero columnas).';
+$strEmpty = 'Vaciar';
+$strEnabled = 'Habilitado';
+$strEncloseInTransaction = 'Incluir lo exportado en una transacción';
+$strEndCut = 'FIN DEL CORTE';
+$strEnd = 'Fin';
+$strEndRaw = 'FIN DEL VOLCADO';
+$strEngineAvailable = '%s está disponible en este servidor MySQL.';
+$strEngineDisabled = '%s ha sido deshabilitado para este motor de almacenamiento.';
+$strEngines = 'Motores';
+$strEngineUnsupported = 'Este servidor MySQL no es compatible con el motor de almacenamiento %s.';
+$strEnglish = 'Inglés';
+$strEnglishPrivileges = ' Nota: Los nombres de los privilegios de MySQL están expresados en inglés ';
+$strError = 'Error';
+$strErrorInZipFile = 'Error en el archivo ZIP:';
+$strErrorRelationAdded = 'Error: no se añadió la relación.';
+$strErrorRelationExists = 'Error: la relación ya existe.';
+$strErrorRenamingTable = 'Error al cambiar el nombre de la tabla %1$s a %2$s';
+$strErrorSaveTable = 'Error guardando las coordenadas para el Diseñador.';
+$strEscapeWildcards = 'Los comodines _ y % deben acompañarse de \ para usarlos de manera literal';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonio';
+$strEvent = 'Evento';
+$strEvents = 'Eventos';
+$strExcelEdition = 'Edición Excel';
+$strExecuteBookmarked = 'Ejecute la consulta marcada previamente';
+$strExplain = 'Explicar el SQL';
+$strExport = 'Exportar';
+$strExportImportToScale = 'Exporte/Importe a escala';
+$strExportMustBeFile = 'El formato de exportación seleccionado ¡debe grabarse en el archivo!';
+$strExtendedInserts = 'INSERTs extendidos';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Intentos fallidos';
+$strField = 'Campo';
+$strFieldHasBeenDropped = 'Se eliminó el campo %s';
+$strFieldInsertFromFileTempDirNotExists = 'Se detectó un error al trasladar el archivo cargado, ver FAQ 1.11';
+$strFields = 'Campos';
+$strFieldsEnclosedBy = 'Campos encerrados por';
+$strFieldsEscapedBy = 'Caracter de escape';
+$strFieldsTerminatedBy = 'Campos terminados en';
+$strFileAlreadyExists = 'El archivo %s ya existe en el servidor, cambie el nombre del archivo o revise la opción de sobreescritura.';
+$strFileCouldNotBeRead = 'No fue posible leer el archivo';
+$strFileNameTemplateDescriptionDatabase = 'nombre de la base de datos';
+$strFileNameTemplateDescription = 'Este valor es interpretado usando %1$sstrftime%2$s; así, usted puede usar cadenas de caracteres para formatear el tiempo. De manera adicional, sucederán las siguientes transformaciones: %3$s. El texto restante se mantendrá como está.';
+$strFileNameTemplateDescriptionServer = 'nombre del servidor';
+$strFileNameTemplateDescriptionTable = 'nombre de la tabla';
+$strFileNameTemplate = 'Plantilla del nombre del archivo';
+$strFileNameTemplateRemember = 'recordar la plantilla';
+$strFiles = 'Archivos';
+$strFileToImport = 'Archivo a importar';
+$strFixed = 'fijo';
+$strFlushPrivilegesNote = 'Nota: phpMyAdmin obtiene los privilegios de los usuarios \'directamente de las tablas de privilegios MySQL\'. El contenido de estas tablas puede diferir de los privilegios que usa el servidor si es que se han realizado cambios manuales en él. En este caso, nuevamente deberá %scargar la página de privilegios%s antes de continuar.';
+$strFlushQueryCache = 'Vaciar el cache de consultas';
+$strFlushTables = 'Vaciar el cache de todas las tablas';
+$strFlushTable = 'Vaciar el caché de la tabla ("FLUSH")';
+$strFontSize = 'Tamaño del font';
+$strForeignKeyError = 'Ocurrió un error al crear la llave extranjera en %1$s (revise los data types)';
+$strForeignKeyRelationAdded = 'Se añadió una relación FOREIGN KEY';
+$strFormat = 'Formato';
+$strFormEmpty = '¡Falta un valor en el formulario!';
+$strFreePages = 'Páginas libres';
+$strFullText = 'Textos completos';
+$strFunction = 'Función';
+$strFunctions = 'Funciones';
+
+$strGenBy = 'Generado por';
+$strGeneralRelationFeat = 'Opciones de relación general'; //Features = ¿opciones, componentes?
+$strGenerate = 'Generar';
+$strGeneratePassword = 'Generar la contraseña';
+$strGenTime = 'Tiempo de generación';
+$strGeorgian = 'Georgiano';
+$strGerman = 'Alemán';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Privilegios globales';
+$strGlobalValue = 'Valor global';
+$strGo = 'Continuar';
+$strGrantOption = 'Conceder';
+$strGreek = 'Griego';
+$strGzip = '"Comprimido con gzip"';
+
+$strHandler = 'Gestor';
+$strHasBeenAltered = 'fue modificada.';
+$strHaveToShow = 'Debe elegir al menos una columna para mostrar';
+$strHebrew = 'Hebreo';
+$strHelp = 'Ayuda';
+$strHexForBLOB = 'Use hexadecimal para BLOB';
+$strHide = 'Ocultar';
+$strHideShowAll = 'Ocultar/mostrar todo';
+$strHideShowNoRelation = 'Ocultar/mostrar Tablas que no tengan relación';
+$strHomepageOfficial = 'Página oficial de phpMyAdmin';
+$strHome = 'Página de inicio';
+$strHostEmpty = '¡¡El nombre del servidor está vacío!!';
+$strHost = 'Servidor';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Húngaro';
+
+$strIcelandic = 'Islandés';
+$strId = 'Identificación';
+$strIdxFulltext = 'Texto completo';
+$strIEUnsupported = 'Internet Explorer no reconoce esa función.';
+$strIgnoreDuplicates = 'Ignore las filas duplicadas';
+$strIgnore = 'Ignorar';
+$strIgnoreInserts = 'Usar la opción ignore inserts';
+$strImportExportCoords = 'Importar/Exportar coordenadas para el esquema PDF';
+$strImportFiles = 'Importar archivos';
+$strImportFormat = 'Formato del archivo importado';
+$strImport = 'Importar';
+$strImportSuccessfullyFinished = 'La importación se ejecutó exitosamente, se ejecutaron %d consultas.';
+$strIndexes = 'Índices';
+$strIndexesSeemEqual = 'Los índices %1$s y %2$s parecen ser iguales y posiblemente se puede remover uno.';
+$strIndexHasBeenDropped = 'El índice %s ha sido eliminado';
+$strIndex = 'Índice';
+$strIndexName = 'Nombre del índice&nbsp;:';
+$strIndexType = 'Tipo de índice&nbsp;:';
+$strIndexWarningTable = 'Problemas con los índices de la tabla `%s`';
+$strInnoDBAutoextendIncrementDesc = 'El tamaño a incrementar para que se extienda el ancho de una tabla capaz de autoextenderse cuando se llena.';
+$strInnoDBAutoextendIncrement = 'Incremente el valor AUTOEXTEND';
+$strInnoDBBufferPoolSizeDesc = 'El tamaño de la memoria intermedia (búfer) usado por InnoDB para almacenar, en el cache, los datos e índices de sus tablas.';
+$strInnoDBBufferPoolSize = 'Tamaño de la memoria (búfer) de tránsito común';
+$strInnoDBDataFilePath = 'Archivos de datos';
+$strInnoDBDataHomeDirDesc = 'La parte constante de la ruta del directorio para todos los archivos de datos InnoDB.';
+$strInnoDBDataHomeDir = 'Directorio raíz de los datos';
+$strInnoDBPages = 'páginas';
+$strInnodbStat = 'Estado del InnoDB';
+$strInsecureMySQL = 'Su archivo de configuración contiene parámetros (root sin contraseña) que corresponden a la cuenta privilegiada predeterminada de MySQL. Su servidor de MySQL está usando estos valores, lo que constituye una vulnerabilidad. Se le recomienda corregir esta brecha de seguridad. Por ejemplo, desde la página de inicio de phpMyAdmin seleccione Privilegios y agregue la contraseña a root@localhost. Deberá escribir la misma contraseña en config.inc.php de phpMyAdmin';
+$strInsertAsNewRow = 'Insertar como una nueva fila';
+$strInsertedRowId = 'La Id de la fila insertada es: %1$d';
+$strInsert = 'Insertar';
+$strInterface = 'Interfaz';
+$strInternalAndForeign = 'No es necesaria una relación interna cuando existe una relación LLAVE EXTRANJERA correspondiente.';
+$strInternalRelationAdded = 'Se añadió la relación interna';
+$strInternalRelations = 'Relaciones internas';
+$strInUse = 'en uso';
+$strInvalidAuthMethod = 'El método de autenticación no es válido en la configuración actual:';
+$strInvalidColumnCount = 'El número de columnas debe ser superior a cero.';
+$strInvalidColumn = '¡Las columnas especificadas (%s) no son válidas!';
+$strInvalidCSVFieldCount = 'El número de campos de los datos CSV en la línea %d no es válido.';
+$strInvalidCSVFormat = 'El formato de los datos CSV en la línea %d no es válido.';
+$strInvalidCSVParameter = 'Parámetro no válido para importar CSV: %s';
+$strInvalidDatabase = 'La base de datos no es válida';
+$strInvalidFieldAddCount = 'Debe añadir al menos un campo.';
+$strInvalidFieldCount = 'La tabla debe tener al menos un campo.';
+$strInvalidLDIImport = '¡Este plugin no tiene soporte para importaciones comprimidas!';
+$strInvalidRowNumber = '%d no es un número de fila válido.';
+$strInvalidServerHostname = 'El nombre del host no es válido para el servidor %1$s. Por favor, revise su configuración.';
+$strInvalidServerIndex = 'No es válido el índice del servidor: "%s"';
+$strInvalidTableName = 'El nombre de la tabla no es válido';
+
+$strJapanese = 'Japonés';
+$strJoins = 'Vínculos (Joins)';
+$strJumpToDB = 'Saltar a la base de datos &quot;%s&quot;.';
+$strJustDeleteDescr = 'Los usuarios &quot;borrados&quot; aún podrán acceder al servidor de manera usual hasta que los privilegios se hayan vuelto a cargar.';
+$strJustDelete = 'Solamente borrar a los usuarios de la tabla de privilegios.';
+
+$strKeepPass = 'No cambiar la contraseña';
+$strKeyCache = 'Cache principal';
+$strKeyname = 'Nombre de la clave';
+$strKill = 'Matar el proceso';
+$strKnownExternalBug = 'La funcionalidad %s está afectada por un fallo conocido, vea %s';
+$strKorean = 'Coreano';
+
+$strLandscape = 'Orientación horizontal';
+$strLanguage = 'Idioma';
+$strLanguageUnknown = 'Idioma desconocido: %1$s.';
+$strLatchedPages = 'Páginas vinculadas';
+$strLatexCaption = 'Subtitulado de la tabla';
+$strLatexContent = 'Contenido de la tabla __TABLE__';
+$strLatexContinuedCaption = 'Continuación del subtitulado de la tabla';
+$strLatexContinued = '(continúa)';
+$strLatexIncludeCaption = 'Incluir el subtitulado de la tabla';
+$strLatexLabel = 'Clave de la etiqueta';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Estructura de la tabla __TABLE__';
+$strLatvian = 'Letón';
+$strLDI = 'CSV usando LOAD DATA';
+$strLDILocal = 'Use la palabra clave LOCAL';
+$strLengthSet = 'Longitud/Valores*';
+$strLimitNumRows = 'registros por página';
+$strLinesTerminatedBy = 'Líneas terminadas en';
+$strLinkNotFound = 'No se encontró el enlace';
+$strLinksTo = 'Enlaces a';
+$strLithuanian = 'Lituano';
+$strLocalhost = 'Local';
+$strLocationTextfile = 'Localización del archivo de texto';
+$strLoginInformation = 'Información de la cuenta';
+$strLogin = 'Iniciar sesión';
+$strLogout = 'Salir';
+$strLogPassword = 'Contraseña:';
+$strLogServer = 'Servidor';
+$strLogUsername = 'Usuario:';
+$strLongOperation = 'Esta operación podría tomar algún tiempo. ¿Proceder de todas formas?';
+
+$strMaxConnects = 'Número máx. de conexiones concurrentes';
+$strMaximalQueryLength = 'Longitud máxima de la consulta creada';
+$strMaximumSize = 'Tamaño máximo: %s%s';
+$strMbExtensionMissing = 'No se halló la extensión PHP mbstring y al parecer usted está usando tipografía multibyte. phpMyAdmin no puede cortar correctamente las cadenas de caracteres sin la extensión mbstring y podría dar resultados inesperados.';
+$strMbOverloadWarning = 'Usted ha activado mbstring.func_overload en su configuración PHP. ¡Esta opción es incompatible con phpMyAdmin y podría causar la pérdida de algunos datos!';
+$strMIME_available_mime = 'MIME-types disponibles';
+$strMIME_available_transform = 'Transformaciones disponibles';
+$strMIME_description = 'Descripción';
+$strMIME_MIMEtype = 'MIME-type';
+$strMIME_nodescription = 'No hay una descripción disponible para esta transformación.<br />Por favor pregunte al autor lo que %s hace.';
+$strMIME_transformation_note = 'Para una lista de opciones de transformación disponibles y sus transformaciones MIME-type transformations, dé clic en %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Por favor ingrese los valores para las opciones de transformación usando este formato: \'a\',\'b\',\'c\'...<br />Si alguna vez requiere insertar un Backslash ("\") o comilla sencilla ("\'") entre esos valores, use backslash (por ejemplo \'\\\\xyz\' o \'a\\\'b\').';
+$strMIME_transformation_options = 'Opciones de transformación';
+$strMIME_transformation = 'Transformación del navegador';
+$strMIMETypesForTable = 'TIPOS MIME PARA LA TABLA';
+$strMIME_without = 'MIME-types impresos en itálicas no tienen una función de transformación adicional';
+$strModifications = 'Se han guardado las modificaciones';
+$strModifyIndexTopic = 'Modificar un índice';
+$strModify = 'Modificar';
+$strMoveMenu = 'Mover el Menú';
+$strMoveTable = 'Mover tabla a (Base de datos<b>.</b>tabla):';
+$strMoveTableOK = 'La tabla %s ha sido movida a %s.';
+$strMoveTableSameNames = '¡No es posible mover la tabla a la misma!';
+$strMultilingual = 'multilingüe';
+$strMyISAMDataPointerSizeDesc = 'El tamaño predeterminado del puntero de datos en bytes, para su uso en CREATE TABLE para las tablas MyISAM cuando no se ha especificado la opción MAX_ROWS.';
+$strMyISAMDataPointerSize = 'Tamaño del puntero de datos';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Si el archivo temporal usado para la generación rápida de índices MyISAM fuese mayor que el uso del key cache por la cantidad especificada aquí, preferir el método key cache.';
+$strMyISAMMaxExtraSortFileSize = 'Tamaño máximo de los archivos temporales durante la generación del índice';
+$strMyISAMMaxSortFileSizeDesc = 'El tamaño máximo del archivo temporal que MySQL puede generar mientras genera un nuevo índice MyISAM del archivo temporal (durante REPAIR TABLE, ALTER TABLE, o LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Tamaño máximo para los archivos temporales generados durante la organización';
+$strMyISAMRecoverOptionsDesc = 'La modalidad para la recuperación automática de tablas MyISAM caídas catastróficamente, como fuera determinado mediante la opción al arranque del servidor --myisam-recover.';
+$strMyISAMRecoverOptions = 'Modalidad de recuperación automática';
+$strMyISAMRepairThreadsDesc = 'Si este valor es superior a 1, se generan en paralelo los índices de las tablas MyISAM (cada índice con su propio proceso) durante el proceso \"Reparar mediante organización\".';
+$strMyISAMRepairThreads = 'Reparar los procesos';
+$strMyISAMSortBufferSizeDesc = 'La cantidad de memoria que se asigna para organizar los índices MyISAM durante la operación REPAIR TABLE o cuando se generan índices con CREATE INDEX o ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Organizar el tamaño del búfer de memoria';
+$strMySQLCharset = 'Juegos de caracteres de MySQL';
+$strMysqlClientVersion = 'Versión del cliente';
+$strMySQLConnectionCollation = 'Cotejamiento de las conexiones MySQL';
+$strMysqlLibDiffersServerVersion = 'Su versión de librería PHP MySQL %s es distinta de aquella de su versión de servidor MySQL %s. Esto puede ocasionar un comportamiento impredecible.';
+$strMySQLSaid = 'MySQL ha dicho: ';
+$strMySQLShowProcess = 'Mostrar procesos';
+
+$strName = 'Nombre';
+$strNext = 'Próxima';
+$strNoActivity = 'No ha habido actividad desde hace %s o más segundos, por favor reingrese al sitio';
+$strNoDatabases = 'No hay bases de datos';
+$strNoDatabasesSelected = 'No se seleccionaron bases de datos.';
+$strNoDataReceived = 'No se recibieron datos para importar. O no se envió el nombre del archivo, o el tamaño del archivo excedió el máximo permitido por su configuración PHP. Por favor, lea el FAQ 1.16.';
+$strNoDescription = 'Sin descripción';
+$strNoDetailsForEngine = 'No existe información detallada acerca de las condiciones en que se encuentra este motor de almacenamiento.';
+$strNoDropDatabases = 'Los enunciados \"DROP DATABASE\" están deshabilitados.';
+$strNoExplain = 'Salir de la explicación del SQL';
+$strNoFilesFoundInZip = '¡No se hallaron archivos dentro del archivo ZIP!';
+$strNoFrames = 'phpMyAdmin funciona mejor con un navegador que <b>reconoce frames</b>.';
+$strNoIndex = '¡No se ha definido el índice!';
+$strNoIndexPartsDefined = '¡No se han definido las partes del índice!';
+$strNoModification = 'Sin cambios';
+$strNone = 'Ninguna';
+$strNo = 'No';
+$strNoOptions = 'Este formato no tiene opciones';
+$strNoPassword = 'Sin contraseña';
+$strNoPermission = 'El servidor web no tiene permiso para guardar el archivo %s.';
+$strNoPhp = 'Sin código PHP';
+$strNoPrivileges = 'Sin privilegios';
+$strNoRights = '¡Usted no tiene suficientes privilegios para estar aquí ahora!';
+$strNoRowsSelected = 'No se seleccionaron filas';
+$strNoSpace = 'No hay suficiente espacio para guardar el archivo %s.';
+$strNoTablesFound = 'No se han encontrado tablas en la base de datos.';
+$strNoThemeSupport = 'No existe soporte para Diseños personalizados (Themes), por favor, revise su configuración y/o sus temas en el directorio %s.';
+$strNotNumber = '¡Ésto no es un número!';
+$strNotOK = 'no recibió el OK';
+$strNotSet = 'La tabla <b>%s</b> no fue hallada o no fue definida en %s';
+$strNoUsersFound = 'Usuario(s) no encontrado(s).';
+$strNoValidateSQL = 'Salir de la validación del SQL';
+$strNull = 'Nulo';
+$strNumberOfFields = 'Número de campos';
+$strNumberOfTables = 'Número de tablas';
+$strNumSearchResultsInTable = '%s resultado(s) en la tabla <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Total:</b> <i>%s</i> resultado(s)';
+$strNumTables = 'Tablas';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'Hoja de cálculo Open Document';
+$strOpenDocumentText = 'Texto Open Document';
+$strOpenNewWindow = 'Abrir nueva ventana de phpMyAdmin';
+$strOperations = 'Operaciones';
+$strOperator = 'Operador';
+$strOptimize = 'Optimice';
+$strOptimizeTable = 'Optimizar la tabla';
+$strOptions = 'Opciones';
+$strOr = 'O';
+$strOverhead = 'Residuo a depurar';
+$strOverwriteExisting = 'Sobreescribir el(los) archivo(s) existente(s)';
+
+$strPacked = 'Empacado';
+$strPageNumber = 'Número de página:';
+$strPagesToBeFlushed = 'Páginas que serán eliminadas';
+$strPaperSize = 'Tamaño del papel';
+$strPartialImport = 'Importación parcial';
+$strPartialText = 'Textos parciales';
+$strPartitionDefinition = 'definición de la PARTICIÓN';
+$strPartitioned = 'particionado';
+$strPartitionMaintenance = 'Mantenimiento de la partición';
+$strPartition = 'Partición %s';
+$strPasswordChanged = 'La contraseña para %s se cambió exitosamente.';
+$strPassword = 'Contraseña';
+$strPasswordEmpty = '¡La contraseña está vacía!';
+$strPasswordHashing = 'Hashing de la contraseña';
+$strPasswordNotSame = '¡Las contraseñas no coinciden!';
+$strPBXTCheckpointFrequencyDesc = 'La cantidad de datos escritos a la bitácora de transacciones antes de hacer un punto de revisión. El valor predeterminado es 24MB.';
+$strPBXTCheckpointFrequency = 'Frecuencia del punto de revisión';
+$strPBXTDataFileGrowSizeDesc = 'Tamaño que puede crecer el archivo de gestión de datos (.xtd).';
+$strPBXTDataFileGrowSize = 'Tamaño que puede crecer el archivo de datos';
+$strPBXTDataLogThresholdDesc = 'El tamaño máximo de una bitácora de archivo de datos. El predeterminado es 64MB. PBXT puede crear un máximo de 32000 bitácoras de datos, que son utilizados por todas las tablas. Por tanto, esta variable se puede incrementar para incrementar la cantidad total de datos que se pueden almacenar en la base de datos.';
+$strPBXTDataLogThreshold = 'Umbral de la bitácora de datos';
+$strPBXTGarbageThresholdDesc = 'El porcentaje de chatarra en un archivo bitácora de datos antes de ser compactado. Este es un valor entre 1 y 99. El valor predeterminado es 50.';
+$strPBXTGarbageThreshold = 'Umbral de chatarra';
+$strPBXTIndexCacheSizeDesc = 'Esta es la cantidad de memoria asignada al index cache. El valor predeterminado es 32MB. La memoria asignada aquí se usa solamente para el caché de las páginas índice.';
+$strPBXTIndexCacheSize = 'Tamaño del caché del índice';
+$strPBXTLogBufferSizeDesc = 'El tamaño de la memoria (búfer) utilizada cuando escribe una bitácora de datos. El predeterminado es 256MB. El motor asigna un búfer por proceso, pero solamente si el proceso es requerido para escribir una bitácora de datos.';
+$strPBXTLogBufferSize = 'Tamaño de la bitácora del búfer';
+$strPBXTLogCacheSizeDesc = 'La cantidad de memoria asignada al caché de la bitácora de transacciones utilizado para hacer el caché de los datos de la bitácora de transacciones. El valor predeterminado es 16MB.';
+$strPBXTLogCacheSize = 'Tamaño del caché de la bitácora';
+$strPBXTLogFileCount = 'Contaje de archivos bitácora';
+$strPBXTLogFileCountDesc = 'Este es el número de bitácoras de archivos de transacción (pbxt/system/xlog*.xt) que el sistema mantendrá. Si el número de bitácoras excede este valor, entonces las bitácoras antiguas se eliminan, de otro modo su nombre cambia y reciben el siguiente número más alto.';
+$strPBXTLogFileThresholdDesc = 'El tamaño de la bitácora de transacciones antes del rollover, y se crea una nueva bitácora. El valor predeterminado es 16MB.';
+$strPBXTLogFileThreshold = 'Umbral del archivo bitácora';
+$strPBXTRecordCacheSizeDesc = 'Esta es la cantidad de memoria asignada al caché de registros utilizado para el caché de los datos de la tabla. El valor predeterminado es 32MB. Esta memoria se utiliza para el caché de cambios a los archivos de datos handle (.xtd) y apuntador de la fila (.xtr).';
+$strPBXTRecordCacheSize = 'Tamaño del caché del registro';
+$strPBXTRowFileGrowSizeDesc = 'Tamaño que puede crecer el archivo del apuntador de filas (.xtr).';
+$strPBXTRowFileGrowSize = 'Tamaño que puede crecer el archivo de filas';
+$strPBXTTransactionBufferSizeDesc = 'El tamaño de global transaction log buffer (el motor asigna 2 memorias búfer de este tamaño). El valor predeterminado es 1MB.';
+$strPBXTTransactionBufferSize = 'Tamaño de la memoria (búfer) de la transacción';
+$strPdfDbSchema = 'Esquema de la base de datos "%s" - Página %s';
+$strPdfInvalidTblName = '¡La tabla "%s" no existe!';
+$strPdfNoTables = 'No existen tablas';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Genera un reporte conteniendo los datos de una sola tabla)';
+$strPDFReportTitle = 'Título del reporte';
+$strPerHour = 'por hora';
+$strPerMinute = 'por minuto';
+$strPerSecond = 'por segundo';
+$strPersian = 'Persa';
+$strPhoneBook = 'directorio telefónico';
+$strPhp = 'Crear código PHP';
+$strPHPExtension = 'extensión PHP';
+$strPHPVersion = 'Versión de PHP';
+$strPleaseSelectPrimaryOrUniqueKey = 'Por favor, seleccione la clave primaria o una clave única';
+$strPmaDocumentation = 'Documentación de phpMyAdmin';
+$strPmaUriError = 'El contenido de <tt>$cfg[\'PmaAbsoluteUri\']</tt> ¡DEBE constar en config.inc.php!';
+$strPolish = 'Polaco';
+$strPortrait = 'Orientación vertical';
+$strPos1 = 'Empezar';
+$strPrevious = 'Previo';
+$strPrimaryKeyHasBeenDropped = 'La clave primaria ha sido eliminada';
+$strPrimaryKeyName = 'El nombre de la clave primaria debe ser \"PRIMARY\"';
+$strPrimaryKeyWarning = '("PRIMARY" <b>exclusivamente debe</b> ser el nombre de ¡una clave primaria!)';
+$strPrimary = 'Primaria';
+$strPrint = 'Imprimir';
+$strPrintViewFull = 'Previsualización para imprimir (documento completo)';
+$strPrintView = 'Vista de impresión';
+$strPrivDescAllPrivileges = 'Incluye todos los privilegios excepto GRANT (CONCEDER).';
+$strPrivDescAlter = 'Permite alterar la estructura de las tablas existentes.';
+$strPrivDescAlterRoutine = 'Permite alterar y eliminar las rutinas almacenadas.';
+$strPrivDescCreateDb = 'Permite crear nuevas bases de datos y tablas.';
+$strPrivDescCreateRoutine = 'Permite crear el almacenamiento de rutinas.';
+$strPrivDescCreateTbl = 'Permite la creación de tablas nuevas.';
+$strPrivDescCreateTmpTable = 'Permite la creación de tablas temporales.';
+$strPrivDescCreateUser = 'Permite crear, eliminar y cambiar el nombre de las cuentas de usuario.';
+$strPrivDescCreateView = 'Permite crear nuevas vistas.';
+$strPrivDescDelete = 'Permite borrar datos.';
+$strPrivDescDropDb = 'Permite eliminar bases de datos y tablas.';
+$strPrivDescDropTbl = 'Permite eliminar tablas.';
+$strPrivDescEvent = 'Permite organizar los eventos para el gestor de eventos';
+$strPrivDescExecute5 = 'Permite ejecutar las rutinas almacenadas.';
+$strPrivDescExecute = 'Permite ejecutar procedimientos guardados; no tiene efecto en esta versión de MySQL.';
+$strPrivDescFile = 'Permite importar y exportar datos de y hacia archivos.';
+$strPrivDescGrant = 'Permite añadir usuarios y privilegios sin conectarse nuevamente a la tabla de privilegios.';
+$strPrivDescIndex = 'Permite crear y eliminar índices.';
+$strPrivDescInsert = 'Permite insertar y reemplazar datos.';
+$strPrivDescLockTables = 'Permite poner candados a las tablas para el proceso actual.';
+$strPrivDescMaxConnections = 'Limita el número de conexiones nuevas que el usuario puede abrir por hora.';
+$strPrivDescMaxQuestions = 'Limita el número de consultas que el usuario puede enviar al servidor por hora.';
+$strPrivDescMaxUpdates = 'Limita el número de comandos que cambian cualquier tabla o base de datos que el usuario puede ejecutar por hora.';
+$strPrivDescMaxUserConnections = 'Limita el número de conexiones simultáneas que el usuario pueda tener.';
+$strPrivDescProcess = 'Permite ver los procesos de todos los usuarios';
+$strPrivDescReferences = 'No tiene efecto en esta versión de MySQL.';
+$strPrivDescReload = 'Permite volver a cargar los parámetros del servidor y depurar los cachés del servidor.';
+$strPrivDescReplClient = 'Da el derecho al usuario para preguntar dónde están los "esclavos / masters".';
+$strPrivDescReplSlave = 'Necesario para los "esclavos" de replicación.';
+$strPrivDescSelect = 'Permite leer los datos.';
+$strPrivDescShowDb = 'Concede acceso a la lista completa de bases de datos.';
+$strPrivDescShowView = 'Permite llevar a cabo las consultas SHOW CREATE VIEW (MOSTRAR CREAR VER).';
+$strPrivDescShutdown = 'Permite desconectar el servidor.';
+$strPrivDescSuper = 'Permite la conexión, incluso si el número máximo de conexiones ha sido alcanzado; Necesario para la mayor parte de operaciones administrativas tales como montar parámetros de variables globales o matar procesos de otros usuarios.';
+$strPrivDescTrigger = 'Permite crear y eliminar un evento desencadenante';
+$strPrivDescUpdate = 'Permite cambiar los datos.';
+$strPrivDescUsage = 'Sin privilegios.';
+$strPrivileges = 'Privilegios';
+$strPrivilegesReloaded = 'Los privilegios fueron cargados nuevamente de manera exitosa.';
+$strProcedures = 'Procedimientos';
+$strProcesses = 'Procesos';
+$strProcesslist = 'Lista de procesos';
+$strProfiling = 'Perfil/Perfilamiento';
+$strProtocolVersion = 'Versión del protocolo';
+$strPutColNames = 'Poner los nombres de campo en la primera hilera';
+
+$strQBEDel = 'Borrar';
+$strQBE = 'Generar una consulta';
+$strQBEIns = 'Insertar';
+$strQueryCache = 'Cache de consultas';
+$strQueryFrame = 'Ventana de consulta';
+$strQueryOnDb = 'Consulta a la base de datos <b>%s</b>:';
+$strQueryResultsOperations = 'Operaciones sobre los resultados de la consulta';
+$strQuerySQLHistory = 'Historial-SQL';
+$strQueryStatistics = '<b>Estadísticas de consulta</b>: Desde su inicio, %s consultas han sido enviadas al servidor.';
+$strQueryTime = 'La consulta tardó %01.4f seg';
+$strQueryType = 'Tipo de consulta';
+$strQueryWindowLock = 'No sobreescribir esta consulta desde fuera de la ventana';
+
+$strReadRequests = 'Lea las solicitudes';
+$strRebuild = 'Reconstruya';
+$strReceived = 'Recibido';
+$strRecommended = 'recomendado';
+$strRecords = 'Registros';
+$strReferentialIntegrity = 'Comprobar la integridad referencial:';
+$strRefresh = 'Actualizar';
+$strRelationalDisplayField = 'Campo que muestra las relaciones';
+$strRelationalKey = 'Llave relacional';
+$strRelationalSchema = 'Esquema relacionado';
+$strRelationDeleted = 'La relación fue eliminada';
+$strRelationNotWorking = 'Las opciones adicionales para trabajar con tablas vinculadas fueron desactivadas. Para saber porqué, dé clic %saquí%s.'; //Features = ¿opciones, componentes?
+$strRelationsForTable = 'RELACIONES PARA LA TABLA';
+$strRelations = 'Relaciones';
+$strRelationView = 'Vista de relaciones';
+$strReload = 'Cargar nuevamente';
+$strReloadingThePrivileges = 'Cargando los privilegios nuevamente';
+$strReloadPrivileges = 'Cargar los privilegios nuevamente';
+$strRemovePartitioning = 'Remueva la partición';
+$strRemoveSelectedUsers = 'Eliminar a los usuarios seleccionados';
+$strRenameDatabaseOK = 'La base de datos %s ha sido cambiada de nombre a %s';
+$strRenameTable = 'Cambiar el nombre de la tabla a';
+$strRenameTableOK = 'Tabla %s ahora se llama %s';
+$strRepair = 'Repare';
+$strRepairTable = 'Reparar la tabla';
+$strReplaceNULLBy = 'Reemplazar NULL con';
+$strReplaceTable = 'Reemplazar los datos de la tabla con los del archivo';
+$strReplication = 'Replicación';
+$strReset = 'Reiniciar';
+$strResourceLimits = 'Límites de recursos';
+$strRestartInsertion = 'Reinicie la inserción con %s filas';
+$strReType = 'Debe volver a escribir';
+$strRevokeAndDeleteDescr = 'Los usuarios aún tendrán el privilegio "USAGE" hasta que los privilegios se hayan vuelto a cargar.';
+$strRevokeAndDelete = 'Revocar todos los privilegios activos de los usuarios y borrarlos después.';
+$strRevokeMessage = 'Ha revocado los privilegios para %s';
+$strRevoke = 'Revocar';
+$strRomanian = 'Rumano';
+$strRoutineReturnType = 'Muestre el tipo';
+$strRoutines = 'Rutinas';
+$strRowLength = 'Longitud de la fila';
+$strRowsAffected = '%1$d fila(s) fueron afectadas.';
+$strRowsDeleted = '%1$d fila(s) fueron eliminadas.';
+$strRows = 'Filas';
+$strRowsFrom = 'filas empezando de';
+$strRowsInserted = '%1$d filas(s) fueron insertadas.';
+$strRowSize = ' Tamaño de la fila ';
+$strRowsModeFlippedHorizontal = 'horizontal (encabezados rotados)';
+$strRowsModeHorizontal = 'horizontal';
+$strRowsModeOptions = 'en modo %s y repetir los encabezados cada %s celdas';
+$strRowsModeVertical = 'vertical';
+$strRowsStatistic = 'Estadísticas de la fila';
+$strRunning = 'ejecutándose en %s';
+$strRunQuery = 'Ejecutar la consulta';
+$strRunSQLQuery = 'Ejecutar la(s) consulta(s) SQL en la base de datos %s';
+$strRunSQLQueryOnServer = 'Ejecute la o las consultas SQL en el servidor %s';
+$strRussian = 'Ruso';
+
+$strSave = 'Grabar';
+$strSaveOnServer = 'Guardar en el servidor, en el directorio %s ';
+$strSavePosition = 'Guardar posición';
+$strScaleFactorSmall = 'El factor de la escala es demasiado pequeño para poner el esquema en una página';
+$strSearch = 'Buscar';
+$strSearchFormTitle = 'Buscar en la base de datos';
+$strSearchInField = 'Dentro del campo:';
+$strSearchInTables = 'En la(s) tabla(s):';
+$strSearchNeedle = 'Palabra(s) o valor(es) a buscar (comodín: "%"):';
+$strSearchOption1 = 'al menos una de estas palabras';
+$strSearchOption2 = 'Todas las palabras';
+$strSearchOption3 = 'La frase exacta';
+$strSearchOption4 = 'como expresión regular';
+$strSearchResultsFor = 'Resultados de la búsqueda por "<i>%s</i>" %s:';
+$strSearchType = 'Encontrado:';
+$strSecretRequired = 'El archivo de configuración ahora necesita salvoconducto (una frase secreta) (blowfish_secret).';
+$strSelectADb = 'Seleccionar una base de datos';
+$strSelectAll = 'Seleccionar todo';
+$strSelectBinaryLog = 'Seleccionar el log binario que desea examinar';
+$strSelectFields = 'Seleccionar campos (al menos uno):';
+$strSelectForeignKey = 'Seleccione la llave extranjera (foreign key)';
+$strSelectNumRows = 'en la consulta';
+$strSelectReferencedKey = 'Seleccione la llave de referencia';
+$strSelectTables = 'Seleccionar tablas';
+$strSend = 'Enviar (genera un archivo descargable)';
+$strSent = 'Enviado';
+$strServerChoice = 'Elección del servidor';
+$strServerNotResponding = 'El servidor no está respondiendo';
+$strServer = 'Servidor';
+$strServers = 'Servidores';
+$strServerStatusDelayedInserts = 'Delayed inserts';
+$strServerStatus = 'Información acerca del tiempo de ejecución del proceso principal';
+$strServerStatusUptime = 'Este servidor MySQL ha estado activo durante %s. Se inició en %s.';
+$strServerTabVariables = 'Variables';
+$strServerTrafficNotes = '<b>Tráfico del servidor</b>: Estas tablas muestran las estadísticas de tráfico en la red de este servidor MySQL desde su inicio.';
+$strServerVars = 'Variables y parámetros del servidor';
+$strServerVersion = 'Versión del servidor';
+$strSessionStartupErrorGeneral = 'Hubo errores al iniciar la sesión. Por favor, revise los errores en la bitácora de su PHP y/o servidor web y configure correctamente su instalación PHP.';
+$strSessionValue = 'Valor de la sesión';
+$strSetEnumVal = 'Si el tipo de campo es "enum" o "set", por favor ingrese los valores usando este formato: \'a\',\'b\',\'c\'...<br />Si alguna vez necesita poner una barra invertida("\") o una comilla simple ("\'") entre esos valores, siempre ponga una barra invertida. (Por ejemplo \'\\\\xyz\' o \'a\\\'b\').';
+$strShowAll = 'Mostrar todo';
+$strShowColor = 'Mostrar color';
+$strShowDatadictAs = 'Formato del Diccionario de Datos';
+$strShowFullQueries = 'Mostrar las consultas enteras';
+$strShowGrid = 'Mostrar la cuadrícula';
+$strShowHideLeftMenu = 'Ocultar/mostrar menú izquierdo';
+$strShowingBookmark = 'Mostrando el favorito';
+$strShowingPhp = 'Mostrar como código PHP';
+$strShowingRecords = 'Mostrando registros ';
+$strShowingSQL = 'Mostrando la consulta SQL';
+$strShow = 'Mostrar';
+$strShowOpenTables = 'Mostrar las tablas que están abiertas';
+$strShowPHPInfo = 'Mostrar la información de PHP';
+$strShowSlaveHosts = 'Mostrar los hosts esclavos';
+$strShowSlaveStatus = 'Mostrar el estado del esclavo';
+$strShowStatusBinlog_cache_disk_useDescr = 'El número de transacciones que usaron el cache de log binario temporal pero que excedieron el valor del binlog_cache_size y usaron un archivo temporal para almacenar los enunciados de la transacción.';
+$strShowStatusBinlog_cache_useDescr = 'El número de transacciones que usaron el cache de log binario temporal.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'El número de tablas temporales en el disco que fueron creados automáticamente por el servidor mientras ejecuta los enunciados. Si las tablas Created_tmp_disk_tables es grande, puede incrementar el valor de tmp_table_size para hacer que las tablas temporales se basen en memoria en lugar de basarse en disco.';
+$strShowStatusCreated_tmp_filesDescr = 'El número de archivos temporales que fueron creados por mysqld.';
+$strShowStatusCreated_tmp_tablesDescr = 'El número de tablas temporales in-memory creadas automáticamente por el servidor mientras se ejecutaban los enunciados.';
+$strShowStatusDelayed_errorsDescr = 'El número de filas escritas con INSERT DELAYED en los cuales ocurrió algún error (probablemente una llave duplicada).';
+$strShowStatusDelayed_insert_threadsDescr = 'El número de procesos gestores INSERT DELAYED en uso. Cada tabla diferente en la cual uno usa INSERT DELAYED recibe su propio proceso.';
+$strShowStatusDelayed_writesDescr = 'El número de filas INSERT DELAYED escritas.';
+$strShowStatusFlush_commandsDescr = 'El número de enunciados FLUSH ejecutados.';
+$strShowStatusHandler_commitDescr = 'El número de enunciados COMMIT internos.';
+$strShowStatusHandler_deleteDescr = 'El número de veces que una fila fue eliminada de una tabla.';
+$strShowStatusHandler_discoverDescr = 'El servidor MySQL puede solicitar al motor de almacenamiento NDB Cluster si conoce acerca de una tabla con un nombre dado. Esto se llama descubrimiento. Handler_discover indica el número ocasiones que las tablas han sido descubiertas.';
+$strShowStatusHandler_read_firstDescr = 'El número de veces en que el primer registro ha sido leído desde un índice. Si este valor es alto, sugiere que el servidor está haciendo gran cantidad de escaneos completos del índice; por ejemplo, SELECT col1 FROM foo, asumiendo que col1 está indizado.';
+$strShowStatusHandler_read_keyDescr = 'El número de solicitudes hechas para leer una fila basado en una llave. Si este valor es alto, es una buena indicación de que sus consultas y tablas están indizadas apropiadamente.';
+$strShowStatusHandler_read_nextDescr = 'El número de solicitudes hechas para leer la siguiente fila en un orden clave. Este se incrementa si usted está consultando una columna índice con un limitante de rango o si usted está haciendo un escaneo del índice.';
+$strShowStatusHandler_read_prevDescr = 'El número de solicitudes hechas para leer la fila previa en un orden clave. Este método de lectura se usa principalmente para optimizar a ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'El número de solicitudes hechas para leer una fila basado en una posición fija. Este es alto si usted está haciendo muchas consultas que requieren el reordenamiento del resultado. Usted probablemente tiene muchas consultas que requieren que MySQL escanee tablas enteras o usted debe tener vínculos (joins) que no usan las llaves de manera apropiada.';
+$strShowStatusHandler_read_rnd_nextDescr = 'El número de solicitudes hechas para leer la siguiente fila en el archivo de datos. Este es alto si usted está haciendo muchos escaneos de tablas. Generalmente, esto sugiere que sus tablas no están indizadas apropiadamente o que sus consultas no están escritas para tomar ventaja de los índices que tiene.';
+$strShowStatusHandler_rollbackDescr = 'El número de enunciados ROLLBACK internos.';
+$strShowStatusHandler_updateDescr = 'El número de solicitudes hechas para actualizar una fila en una tabla.';
+$strShowStatusHandler_writeDescr = 'El número de solicitudes hechas para insertar una fila en una tabla.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'El número de páginas conteniendo datos (sucias o limpias).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'El número de páginas actualmente sucias.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'El número de páginas en la memoria (búfer) de tránsito común que se ha solicitado sean vaciadas.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'El número de páginas libres.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'El número de páginas aseguradas en la memoria (búfer) de tránsito común InnoDB. Estas son páginas en fase de lectura o escritura o que no pueden ser vaciadas o removidas por alguna otra razón.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'El número de páginas ocupadas porque han sido asignadas para overhead administrativo tales como row locks o el índice hash adaptativo. Este valor también puede ser calculado como Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Tamaño total de la memoria (búfer) de tránsito común, en páginas.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'El número de read-aheads InnoDB "aleatorias" iniciadas. Esto sucede cuando una consulta va a escanear una gran porción de una tabla pero en orden aleatorio.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'El número de read-aheads InnoDB secuenciales iniciadas. Esto sucede cuando InnoDB hace un escaneo secuencial de la tabla completa.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'El número de solicitudes de lectura lógica hechas por InnoDB.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'El número de lecturas lógicas que InnoDB no pudo satisfacer de la memoria (búfer) de tránsito común y donde fue necesario hacer lectura de página sencilla.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalmente, las escrituras a la memoria de tránsito común InnoDB suceden en el trasfondo. Sin embargo, de ser necesario leer o crear una página y existen páginas limpias disponibles, es necesario esperar que las páginas sean vaciadas previamente. Este contador cuenta las instancias de estas esperas. Si los parámetros del tamaño de la memoria de tránsito común se fijaron apropiadamente, este valor será pequeño.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'El número de escrituras hechas a la memoria de tránsito común InnoDB.';
+$strShowStatusInnodb_data_fsyncsDescr = 'El número de operaciones fsync() hechas hasta el momento.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'El número actual de operaciones fsync() pendientes.';
+$strShowStatusInnodb_data_pending_readsDescr = 'El número actual de lecturas pendientes.';
+$strShowStatusInnodb_data_pending_writesDescr = 'El número actual de escrituras pendientess.';
+$strShowStatusInnodb_data_readDescr = 'El número de datos leídos hasta el momento, en bytes.';
+$strShowStatusInnodb_data_readsDescr = 'El número total de lectura de datos.';
+$strShowStatusInnodb_data_writesDescr = 'El número total de escritura de datos.';
+$strShowStatusInnodb_data_writtenDescr = 'La cantidad de datos escritas hasta el momento, en bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'El número de escrituras doublewrite que se han ejecutado y el número de páginas escritas con este propósito.';
+$strShowStatusInnodb_dblwr_writesDescr = 'El número de escrituras doublewrite que se han ejecutado y el número de páginas escritas con este propósito.';
+$strShowStatusInnodb_log_waitsDescr = 'El número de esperas generadas porque la memoria (búfer) log fue demasiado pequeña y hubo que esperar a que fuera vaciada antes de continuar.';
+$strShowStatusInnodb_log_write_requestsDescr = 'El número de solicitudes de escritura al log.';
+$strShowStatusInnodb_log_writesDescr = 'El número de escrituras físicas al archivo log.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'El número de escrituras fsyncs hechas al archivo log.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'El número de fsyncs pendientes al archivo log.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Escrituras pendientes al archivo log.';
+$strShowStatusInnodb_os_log_writtenDescr = 'El número de bytes escritos al archivo log.';
+$strShowStatusInnodb_pages_createdDescr = 'El número de páginas creadas.';
+$strShowStatusInnodb_page_sizeDescr = 'El tamaño de página InnDB precompilado (por omisión 16KB). Muchos valores son contados por páginas; el tamaño de la página permite que pueda convertirse fácilmente a bytes.';
+$strShowStatusInnodb_pages_readDescr = 'El número de páginas leídas.';
+$strShowStatusInnodb_pages_writtenDescr = 'El número de páginas escritas.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'El número de row locks que actualmente están en espera.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'El tiempo promedio para adquirir un row lock, en milisegundos.';
+$strShowStatusInnodb_row_lock_timeDescr = 'El total de tiempo invertido para adquirir los row locks, en milisegundos.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'El tiempo máximo para adquirir un row lock, en milisegundos.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'El número de veces que un row lock tuvo que esperarse.';
+$strShowStatusInnodb_rows_deletedDescr = 'El número de filas eliminadas de tablas InnoDB.';
+$strShowStatusInnodb_rows_insertedDescr = 'El número de filas insertadas en tablas InnoDB.';
+$strShowStatusInnodb_rows_readDescr = 'El número de filas leídas de las tablas InnoDB.';
+$strShowStatusInnodb_rows_updatedDescr = 'El número de filas actualizadas en tablas InnoDB.';
+$strShowStatusKey_blocks_not_flushedDescr = 'El número de key blocks en el key cache que han cambiado pero que aún no han sido vaciados al disco. Antes se conocía como Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'El número de bloques sin usar en el key cache. Puede usar este valor para determinar cuánto del key cache está en uso.';
+$strShowStatusKey_blocks_usedDescr = 'El número de bloques usados en el key cache. Este valor es un marcador de desbordamiento que indica el número máximo de bloques que algún momento se llegaron a usar.';
+$strShowStatusKey_read_requestsDescr = 'El número de solicitudes para leer un key block desde el cache.';
+$strShowStatusKey_readsDescr = 'El número de lecturas físicas del key block desde el disco. Si el Key_reads es grande, entonces el valor key_buffer_size probablemente es demasiado pequeño. La tasa de fallos en el cache puede calcularse como Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'El número de solicitudes para escribir un key block al cache.';
+$strShowStatusKey_writesDescr = 'El número de escrituras físicas a un key block al disco.';
+$strShowStatusLast_query_costDescr = 'El costo total de la última consulta compilada como fuera computada por el optimizador de consultas. Es útil para comparar el costo de diferentes planes de consulta para una misma consulta. El valor por omisión de 0 significa que ninguna consulta ha sido compilada todavía.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'El número de filas esperando ser escritas en las colas INSERT DELAYED.';
+$strShowStatusOpened_tablesDescr = 'El número de tablas que han sido abiertas. Si el número de tablas abiertas es grande, su valor del cache de tabla probablemente es muy pequeño.';
+$strShowStatusOpen_filesDescr = 'El número de archivos que están abiertos.';
+$strShowStatusOpen_streamsDescr = 'El número de flujos de datos que están abiertos (usado principalmente para alimentar a los logs).';
+$strShowStatusOpen_tablesDescr = 'El número de tablas que están abiertas.';
+$strShowStatusQcache_free_blocksDescr = 'El número de bloques de memoria libre en el cache de consultas.';
+$strShowStatusQcache_free_memoryDescr = 'La cantidad de memoria libre para el cache de consultas.';
+$strShowStatusQcache_hitsDescr = 'El número de hits al cache.';
+$strShowStatusQcache_insertsDescr = 'El número de consultas añadidos al cache.';
+$strShowStatusQcache_lowmem_prunesDescr = 'El número de consultas que han sido removidos del cache para liberar la memoria para poner nuevas consultas en el cache. Esta información puede ayudar a afinar el tamaño del cache de consultas. El cache de consultas usa la estrategia Least Recently Used (LRU) para decidir cuáles consultas deben ser removidas del cache.';
+$strShowStatusQcache_not_cachedDescr = 'El número de consultas que no ingresaron al cache (porque no es posible o porque el parámetro no está activado en query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'El número de consultas registradas en el cache.';
+$strShowStatusQcache_total_blocksDescr = 'El número total de bloques en el cache de consultas.';
+$strShowStatusReset = 'Resetear';
+$strShowStatusRpl_statusDescr = 'El estado de la replicación a prueba de fallos (aún no ha sido implementada).';
+$strShowStatusSelect_full_joinDescr = 'El número de vínculos (joins) que no usan índices. Si este valor no es 0, deberá revisar los índices de sus tablas cuidadosamente.';
+$strShowStatusSelect_full_range_joinDescr = 'El número de vínculos (joins) que usaron búsqueda por rangos en una tabla de referencias.';
+$strShowStatusSelect_range_checkDescr = 'El número de vínculos (joins) sin keys que revisan el uso de key luego de cada fila. (Si no es 0, deberá revisar los índices de sus tablas cuidadosamente.)';
+$strShowStatusSelect_rangeDescr = 'El número de vínculos (joins) que usaron rangos en la primera tabla. (Normalmente no es crítico aun cuando sea grande.)';
+$strShowStatusSelect_scanDescr = 'El número de vínculos (joins) que hicieron un escaneo completo de la primera tabla.';
+$strShowStatusSlave_open_temp_tablesDescr = 'El número de tablas temporales actualmente abiertas por el proceso SQL esclavo.';
+$strShowStatusSlave_retried_transactionsDescr = 'Número total de veces (desde el arranque) que el proceso SQL esclavo de replicación ha reintentado hacer transacciones.';
+$strShowStatusSlave_runningDescr = 'Está ENCENDIDO si este servidor es un esclavo que está conectado a un master.';
+$strShowStatusSlow_launch_threadsDescr = 'El número de procesos que han tomado más de los segundos registrados en slow_launch_time para crear.';
+$strShowStatusSlow_queriesDescr = 'El número de consultas que han tomado más segundos que los registrados en long_query_time.';
+$strShowStatusSort_merge_passesDescr = 'El número de pasadas de fusión (merge) que el algoritmo organizar ha debido hacer. Si este valor es grande, debe considerar incrementar el valor de la varible de sistema sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'El número de consultas organizar que se ejecutaron con rangos.';
+$strShowStatusSort_rowsDescr = 'El número de filas sorted.';
+$strShowStatusSort_scanDescr = 'El número de consultas organizar que se hicieron escaneando la tabla.';
+$strShowStatusTable_locks_immediateDescr = 'El número de veces que un table lock fue adquirido inmediatamente.';
+$strShowStatusTable_locks_waitedDescr = 'El número de veces que un table lock no pudo adquirirse inmediatamente y fue necesaria una espera. Si este valor es alto, y hay problemas de rendimiento, primero deberá optimizar sus consultas, y luego, ya sea partir sus tablas o usar replicación.';
+$strShowStatusThreads_cachedDescr = 'El número de procesos en el cache de procesos. La tasa de hits al cache puede calcularse como Threads_created/Connections. Si este valor es rojo, debe incrementar su thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'El número de conexiones abiertas actualmente.';
+$strShowStatusThreads_createdDescr = 'El número de procesos creados para manejar las conexiones. Si Threads_created es grande, querrá incrementar el valor thread_cache_size. (Normalmente esto no aporta una mejoría notable en el rendimiento si usted tiene una buena implementación de procesos.)';
+$strShowStatusThreads_runningDescr = 'El número de procesos que no están en reposo.';
+$strShowTableDimension = 'Mostrar la dimensión de las tablas';
+$strShowTables = 'Mostrar las tablas';
+$strShowThisQuery = ' Mostrar esta consulta otra vez ';
+$strSimplifiedChinese = 'Chino simplificado';
+$strSingly = '(solamente)';
+$strSize = 'Tamaño';
+$strSkipQueries = 'Número de registros (consultas) a saltarse desde el inicio';
+$strSlovak = 'Eslovaco';
+$strSlovenian = 'Esloveno';
+$strSmallBigAll = 'Pequeño/grande todos';
+$strSnapToGrid = 'Cuadrícula magnética';
+$strSocketProblem = '(o el socket del servidor MySQL local no está configurado correctamente)';
+$strSortByKey = 'Organizar según la clave';
+$strSorting = 'Organizando (sorting)';
+$strSort = 'Ordenar';
+$strSpaceUsage = 'Espacio utilizado';
+$strSpanish = 'Español';
+$strSplitWordsWithSpace = 'Palabras separadas por un espacio (" ").';
+$strSQLCompatibility = 'Modalidad compatible con SQL';
+$strSQLExportType = 'Tipo de exportación';
+$strSQLParserBugMessage = 'Hay la posibilidad de que usted haya encontrado un error en el intérprete de SQL. Por favor examine cuidadosamente su consulta, y verifique que las comillas están siendo usadas adecuadamente y hacen juego. Otra posible causa del fallo es que usted este subiendo un archivo con datos binarios por fuera del área de texto delimitado. Intente su consulta en la interfaz de comandos de MySQL. La salida generada por el servidor de MySQL, de existir, aparece abajo, en cuyo caso puede ayudar a diagnosticar el problema. Si aún tiene problemas o el intérprete falla en tanto que en la interfaz de comandos funciona, por favor reduzca la salida de su consulta de SQL a la consulta que genera el problema, y envíe un reporte de error con la cadena de datos en la sección de CORTE indicada abajo:';
+$strSQLParserUserError = 'Parece haber un error en su consulta de SQL. La salida generada por el servidor de MySQL, de existir, aparece abajo, en cuyo caso puede ayudar a diagnosticar el problema.';
+$strSQLQuery = 'consulta SQL';
+$strSQLResult = 'Resultado SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'El identificador no es válido';
+$strSQPBugUnclosedQuote = 'Comillas sin cerrar';
+$strSQPBugUnknownPunctuation = 'Signo de puntuación desconocido';
+$strStandInStructureForView = 'Estructura Stand-in para la vista';
+$strStatCheckTime = 'Última revisión';
+$strStatCreateTime = 'Creación';
+$strStatement = 'Enunciado';
+$strStatisticsOverrun = 'En un servidor que se encuentra ejecutando procesos, los contadores de bytes pueden excederse. Por tanto, las estadísticas reportadas por el servidor MySQL pueden estar incorrectas.';
+$strStatUpdateTime = 'Última actualización';
+$strStatus = 'Estado actual';
+$strStorageEngine = 'Motor de almacenamiento';
+$strStorageEngines = 'Motores de almacenamiento';
+$strStrucCSV = 'Datos CSV ';
+$strStrucData = 'Estructura y datos';
+$strStrucExcelCSV = 'CSV para datos de MS Excel';
+$strStrucNativeExcel = 'Datos de MS Excel en formato nativo';
+$strStrucOnly = 'Únicamente la estructura ';
+$strStructPropose = 'Planteamiento de la estructura de tabla';
+$strStructure = 'Estructura';
+$strStructureForView = 'Estructura para la vista';
+$strSubmit = 'Enviar';
+$strSuccess = 'Su consulta se ejecutó con éxito';
+$strSuhosin = 'El servidor está utilizando Suhosin. Por favor, refiérase a %sdocumentation%s para posibles ajustes.';
+$strSum = 'Número de filas';
+$strSwedish = 'Sueco';
+$strSwekeyAuthenticating = 'Autenticando...';
+$strSwekeyAuthFailed = 'La autenticación de hardware fracasó';
+$strSwekeyNoKeyId = 'El archivo %s no contiene ninguna Id de llave';
+$strSwekeyNoKey = 'No se ha conectado una llave de autenticación válida';
+$strSwitchToDatabase = 'Seleccionar la base de datos copiada';
+$strSwitchToTable = 'Cambiar (switch) a la tabla copiada';
+
+$strTableAlreadyExists = '¡La tabla %s ya existe!';
+$strTableAlteredSuccessfully = 'Los cambios en la Tabla %1$s se hicieron exitosamente';
+$strTableComments = 'Comentarios de la tabla';
+$strTableEmpty = '¡El nombre de la tabla está vacío!';
+$strTableHasBeenCreated = 'La Tabla %1$s se creó.';
+$strTableHasBeenDropped = 'Se ha eliminado la tabla %s';
+$strTableHasBeenEmptied = 'Se ha vaciado la tabla %s';
+$strTableHasBeenFlushed = 'Se ha vaciado el caché de la tabla %s';
+$strTableIsEmpty = 'La tabla, ¡parece estar vacía!';
+$strTableMaintenance = 'Mantenimiento de la tabla';
+$strTableName = 'Nombre de la tabla';
+$strTableOfContents = 'Tabla de contenidos';
+$strTableOptions = 'Opciones de la tabla';
+$strTables = '%s tabla(s)';
+$strTableStructure = 'Estructura de tabla para la tabla';
+$strTable = 'Tabla';
+$strTakeIt = 'tómelo';
+$strTblPrivileges = 'Privilegios específicos para la tabla';
+$strTempData = 'Datos temporales';
+$strTextAreaLength = ' Debido a su longitud,<br /> este campo podría no ser editable ';
+$strTexyText = 'Texto Texy!';
+$strThai = 'Tailandés';
+$strThemeDefaultNotFound = '¡No se halló la plantilla de interfaz (theme) predeterminada %s!';
+$strThemeNoPreviewAvailable = 'No existe una previsualización disponible.';
+$strThemeNotFound = '¡No se halló la plantilla de interfaz (theme) %s!';
+$strThemeNoValidImgPath = '¡No se halló la ruta de imágenes para la plantilla de interfaz (theme) %s!';
+$strThemePathNotFound = '¡No se halló la ruta de la plantilla de interfaz (theme) para la plantilla %s!';
+$strTheme = 'Tema / Estilo';
+$strThisHost = 'Este Host';
+$strThreads = 'Procesos';
+$strThreadSuccessfullyKilled = 'El proceso %s fue destruido exitosamente.';
+$strTimeoutInfo = 'Se agotó el tiempo de ejecución en la importación previa; si lo reenvía continuará desde la posición %d.';
+$strTimeoutNothingParsed = 'Sin embargo, en la ejecución más reciente no se procesaron datos. Esto usualmente significa que phpMyAdmin no será capaz de completar esta importación a menos que usted incremente el tiempo de ejecución de php.';
+$strTimeoutPassed = 'Se ha agotado el tiempo de ejecución del script; si desea completar la importación, por favor, reenvíe el mismo archivo y la importación continuará.';
+$strTime = 'Tiempo';
+$strToFromPage = 'página de/a la';
+$strToggleScratchboard = 'cambiar el estado del scratchboard';
+$strToggleSmallBig = 'Alterne entre pequeño y grande';
+$strToSelectRelation = 'Para seleccionar la relación, dé clic en:';
+$strTotal = 'total';
+$strTotalUC = 'Total';
+$strTraditionalChinese = 'Chino tradicional';
+$strTraditionalSpanish = 'Español tradicional';
+$strTraffic = 'Tráfico';
+$strTransactionCoordinator = 'Coordinador de transacción';
+$strTransformation_application_octetstream__download = 'Mostrar un enlace para descargar los datos binarios de un campo. La primera opción es el nombre del archivo binario. La segunda opción es un nombre de campo factible de una fila de la tabla que contiene el nombre del campo. Si usted aporta una segunda opción, necesariamente deberá consignar la primera opción a una cadena de caracteres vacía';
+$strTransformation_application_octetstream__hex = 'Muestra los datos en representación hexadecimal. El primer parámetro es opcional y especifica cuán a menudo se añadirá espacio (2 nibbles, es decir, 1 byte de manera predeterminada).';
+$strTransformation_image_jpeg__inline = 'Muestra un thumbnail que puede abrirse mediante un clic; opciones: width, height en píxeles (mantiene la proporción original)';
+$strTransformation_image_jpeg__link = 'Muestra un enlace a esta imagen (i.e., blob descarga directa).';
+$strTransformation_image_png__inline = 'Ver imagen/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Toma un campo TIME, TIMESTAMP o DATETIME y lo formatea usando su formato de fechas local. La primera opción es el offset (en horas) que se añadirá al timestamp (Predeterminado: 0). La segunda opción es un dateformat diferente de acuerdo con los parámetros disponibles para el strftime() del PHP. La tercera opción determina si usted quiere ver la fecha local o la UTC (use strings "local" o "utc") para eso. Según eso, el formato de la fecha tendrá un valor diferente - para "local" mire la documentación para la función strftime() del PHP y para "utc" se hace usando la función gmdate().';
+$strTransformation_text_plain__external = 'LINUX SOLAMENTE: Ejecuta una aplicación externa y alimenta el fielddata mediante input estándar. Retorna el output estándar de la aplicación. El predeterminado es Tidy, para mostrar código HTML agradable para la impresión. Por razones de seguridad, debe editar manualmente el archivo libraries/transformations/text_plain__external.inc.php e insertar las herramientas que permitirá se ejecuten. La primera opción será el número del programa que querrá utilizar y la segunda opción son los parámetros para el programa. El tercer parámetro, de ser 1 convertirá el output usando htmlspecialchars() (el predeterminado es 1). Un cuarto parámetro, de ser 1 pondrá un NOWRAP a la celda de contenido para que todo el output se muestre sin reformatear (Predeterminado 1)';
+$strTransformation_text_plain__formatted = 'Mantiene el formato original del campo. No se puede hacer Escape.';
+$strTransformation_text_plain__imagelink = 'Muestra una imagen y un enlace, el campo contiene el nombre del archivo; la primera opción es un prefijo como "http://dominio.com/", la segunda opción es el ancho en píxeles, el tercero es el alto.';
+$strTransformation_text_plain__link = 'Muestra un enlace, el campo contiene el nombre del archivo; la primera opción es un prefijo como "http://dominio.com/", la segunda opción es un título para el enlace.';
+$strTransformation_text_plain__sql = 'Formatea el texto como una consulta SQL y resalta la sintaxis.';
+$strTransformation_text_plain__substr = 'Muestra una parte de una cadena de caracteres. La primera opción es el número de caracteres a pasar por alto desde el principio de la cadena de caracteres (Predeterminado: 0). La segunda opción es el número de caracteres a mostrar (Predeterminado: hasta el final de la cadena de caracteres). La tercera opción es la cadena de caracteres a adjuntar y/o anteponer cuando haya truncamiento (Predeterminado: "...").';
+$strTriggers = '(Evento) desencadenante';
+$strTruncateQueries = 'Truncar las consultas que ya se han mostrado';
+$strTurkish = 'Turco';
+$strType = 'Tipo';
+
+$strUkrainian = 'Ucraniano';
+$strUncheckAll = 'Desmarcar todos';
+$strUnicode = 'Unicode';
+$strUnique = 'Único';
+$strUnknown = 'desconocido';
+$strUnselectAll = 'Deseleccionar todo';
+$strUnsupportedCompressionDetected = 'Usted intentó cargar un archivo con un tipo de compresión desconocido (%s). Este tipo de compresión puede no estar implementado o quizá no ha sido habilitado en su archivo de configuración.';
+$strUpdatePrivMessage = 'Ha actualizado los privilegios para %s.';
+$strUpdateProfileMessage = 'Se actualizó el perfil.';
+$strUpdateQuery = 'Modificar la consulta';
+$strUpdComTab = 'Para actualizar su tabla Columna_comentarios (Column_comments), por favor revise la documentación';
+$strUpgrade = 'Usted debería actualizar su %s a la versión %s o más reciente.';
+$strUploadErrorCantWrite = 'No fue posible grabar el archivo al disco.';
+$strUploadErrorExtension = 'La carga del archivo fue detenida por extensión.';
+$strUploadErrorFormSize = 'El archivo que intentó cargar excede la directiva MAX_FILE_SIZE especificada en el formulario HTML.';
+$strUploadErrorIniSize = 'El archivo que intentó cargar excede la directiva upload_max_filesize en php.ini.';
+$strUploadErrorNoTempDir = 'No existe una carpeta temporal.';
+$strUploadErrorPartial = 'El archivo que intentó cargar no alcanzó el 100%.';
+$strUploadErrorUnknown = 'Error desconocido durante la carga del archivo.';
+$strUploadLimit = 'Usted probablemente intentó cargar un archivo demasiado grande. Por favor, refiérase a %sdocumentation%s para hallar modos de superar esta limitante.';
+$strUploadsNotAllowed = 'No está permitido subir archivos a este servidor.';
+$strUsage = 'Uso';
+$strUseBackquotes = 'Usar "backquotes" con tablas y nombres de campo';
+$strUseHostTable = 'Usar la tabla Anfitrión (Host)';
+$strUserAlreadyExists = '¡El usuario %s ya existe!';
+$strUserEmpty = '¡El nombre de usuario está vacío!';
+$strUserName = 'Nombre de usuario';
+$strUserNotFound = 'El usuario que seleccionó no se halló en la tabla de privilegios.';
+$strUserOverview = 'Vista global de usuarios';
+$strUsersDeleted = 'Los usuarios seleccionados fueron borrados exitosamente.';
+$strUsersHavingAccessToDb = 'Usuarios con acceso a &quot;%s&quot;';
+$strUser = 'Usuario';
+$strUseTabKey = 'Use la tecla TAB para saltar de un valor a otro, o CTRL+flechas para moverse a cualquier parte';
+$strUseTables = 'Usar tablas';
+$strUseTextField = 'Use el campo de texto';
+$strUseThisValue = 'Use este valor';
+
+$strValidateSQL = 'Validar el SQL';
+$strValidatorError = 'El validador de SQL no pudo inicializarse. Por favor revise si ha instalado las extensiones php necesarias, como están descritas en la %sdocumentación%s.';
+$strValue = 'Valor';
+$strVar = 'Variable';
+$strVersionInformation = 'Acerca de esta versión';
+$strViewDumpDatabases = 'Ver el volcado (schema) de la base de datos';
+$strViewDumpDB = 'Ver el volcado esquema de la base de datos';
+$strViewDump = 'Mostrar el volcado esquema de la tabla';
+$strViewHasAtLeast = 'Esta vista tiene al menos este número de filas. Por favor, refiérase a la %sdocumentation%s.';
+$strViewHasBeenDropped = 'Se descartó el modo de visualización %s';
+$strViewName = '(VIEW) VER nombre';
+$strView = 'Visualizar';
+
+$strWebServer = 'Servidor web';
+$strWebServerUploadDirectory = 'directorio en el servidor web para subir los archivos';
+$strWebServerUploadDirectoryError = 'No está disponible el directorio que usted habilitó para subir las tareas';
+$strWelcome = 'Bienvenido a %s';
+$strWestEuropean = 'Europea occidental';
+$strWiki = 'Wiki';
+$strWildcard = 'comodín';
+$strWindowNotFound = 'La ventana del navegador no pudo actualizarse. Quizá cerró la ventana principal o su navegador está bloqueando las actualizaciones en ventanas múltiples debido a sus parámetros de seguridad.';
+$strWithChecked = 'Para los elementos que están marcados:';
+$strWriteRequests = 'Escribir las solicitudes';
+$strWrongUser = 'El nombre de usuario o la contraseña es incorrecto. El acceso fue denegado.';
+
+$strXML = 'XML';
+
+$strYes = 'Sí';
+
+$strZeroRemovesTheLimit = 'Nota: si cambia los parámetros de estas opciones a 0 (cero), remueve el límite.';
+$strZip = '"comprimido con zip"';
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/swedish-utf-8.inc.php b/lang/swedish-utf-8.inc.php
new file mode 100644
index 0000000000..836583da1c
--- /dev/null
+++ b/lang/swedish-utf-8.inc.php
@@ -0,0 +1,1445 @@
+<?php
+/* $Id$ */
+
+/*
+ * Translated by Björn T. Hallberg <bjornth at users dot sourceforge dot net>
+ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ' ';
+$number_decimal_separator = ',';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+$day_of_week = array('Sön', 'Mån', 'Tis', 'Ons', 'Tors', 'Fre', 'Lör');
+$month = array('januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y kl %H:%M';
+$timespanfmt = '%s dagar, %s timmar, %s minuter och %s sekunder';
+
+$strAbortedClients = 'Avbrutna';
+$strAccessDenied = 'Åtkomst nekad';
+$strAccessDeniedCreateConfig = 'Trolig orsak till detta är att du inte skapade en konfigurationsfil. Du vill kanske använda %1$suppsättningsskript%2$s för att skapa en.';
+$strAccessDeniedExplanation = 'phpMyAdmin försökte skapa en förbindelse till MySQL-servern, men servern nekade uppkopplingen. Kontrollera värd, användarnamn och lösenord i config.inc.php och förvissa dig om att de stämmer överens med informationen från administratören av MySQL-servern.';
+$strAction = 'Åtgärd';
+$strActions = 'Åtgärder';
+$strAddAutoIncrement = 'Lägg till AUTO_INCREMENT-värde';
+$strAddClause = 'Lägg till %s';
+$strAddConstraints = 'Lägg till restriktioner';
+$strAddDeleteColumn = 'Lägg till/ta bort fältkolumner';
+$strAddDeleteRow = 'Lägg till/ta bort villkorsrader';
+$strAddFields = 'Lägg till %s fält';
+$strAddHeaderComment = 'Lägg till egen kommentar i huvud (\\n delar rader)';
+$strAddIntoComments = 'Lägg till i kommentarer';
+$strAddNewField = 'Lägg till fält';
+$strAddPrivilegesOnDb = 'Lägg till privilegier till följande databas';
+$strAddPrivilegesOnTbl = 'Lägg till privilegier till följande tabell';
+$strAddSearchConditions = 'Lägg till sökvillkor (uttryck i "where"-sats):';
+$strAddToIndex = 'Lägg till&nbsp;%s&nbsp;kolumn(er) till index';
+$strAddUser = 'Lägg till ny användare';
+$strAddUserMessage = 'Du har lagt till en ny användare.';
+$strAdministration = 'Administration';
+$strAfter = 'Efter %s';
+$strAfterInsertBack = 'Gå tillbaka till föregående sida';
+$strAfterInsertNewInsert = 'Lägg till ytterligare en ny rad';
+$strAfterInsertNext = 'Ändra nästa rad';
+$strAfterInsertSame = 'Gå tillbaka till denna sida';
+$strAll = 'Alla';
+$strAllowInterrupt = 'Tillåt avbrott av import ifall skriptet upptäcker att det är nära tidsbegränsningen. Detta kan vara ett bra sätt att importera stora filer, men det kan bryta transaktioner.';
+$strAllTableSameWidth = 'Visa alla tabeller med samma bredd';
+$strAlterOrderBy = 'Sortera om tabellen efter';
+$strAnalyze = 'Analysera';
+$strAnalyzeTable = 'Analysera tabell';
+$strAnd = 'Och';
+$strAndThen = 'och sedan';
+$strAngularLinks = 'Vinklade länkar';
+$strAnIndex = 'Ett index har lagts till för %s';
+$strAny = 'Vem som helst';
+$strAnyHost = 'Vilken värd som helst';
+$strAnyUser = 'Vilken användare som helst';
+$strApproximateCount = 'Kan vara ungefärligt. Se FAQ 3.11';
+$strAPrimaryKey = 'En primär nyckel har lagts till för %s';
+$strArabic = 'Arabisk';
+$strArmenian = 'Armenisk';
+$strAscending = 'Stigande';
+$strAsDefined = 'Enligt angivet:';
+$strAtBeginningOfTable = 'I början av tabellen';
+$strAtEndOfTable = 'I slutet av tabellen';
+$strAttr = 'Attribut';
+$strAutomaticLayout = 'Automatisk layout';
+
+$strBack = 'Bakåt';
+$strBaltic = 'Baltisk';
+$strBeginCut = 'START URKLIPP';
+$strBeginRaw = 'START RÅTEXT';
+$strBinary = 'Binär';
+$strBinaryDoNotEdit = 'Binär - ändra inte';
+$strBinaryLog = 'Binär logg';
+$strBinLogEventType = 'Typ av händelse';
+$strBinLogInfo = 'Information';
+$strBinLogName = 'Loggnamn';
+$strBinLogOriginalPosition = 'Ursprunglig position';
+$strBinLogPosition = 'Position';
+$strBinLogServerId = 'Server-ID';
+$strBookmarkAllUsers = 'Låt varje användare få tillgång till detta bokmärke';
+$strBookmarkCreated = 'Bokmärket %s har skapats';
+$strBookmarkDeleted = 'Bokmärket har tagits bort.';
+$strBookmarkLabel = 'Etikett';
+$strBookmarkQuery = 'Bokmärkt SQL-fråga';
+$strBookmarkReplace = 'Ersätt befintligt bokmärke med samma namn';
+$strBookmarkThis = 'Skapa bokmärke för den här SQL-frågan';
+$strBookmarkView = 'Visa endast';
+$strBrowse = 'Visa';
+$strBrowseDistinctValues = 'Visa distinkta värden';
+$strBrowseForeignValues = 'Visa främmande värden';
+$strBufferPoolActivity = 'Buffertaktivitet';
+$strBufferPool = 'Buffertutrymme';
+$strBufferPoolUsage = 'Buffertanvändning';
+$strBufferReadMissesInPercent = 'Läsmissar i %';
+$strBufferReadMisses = 'Läsmissar';
+$strBufferWriteWaitsInPercent = 'Skrivväntanden i %';
+$strBufferWriteWaits = 'Skrivväntanden';
+$strBulgarian = 'Bulgarisk';
+$strBusyPages = 'Upptagna sidor';
+$strBzip = '"bzippad"';
+
+$strCalendar = 'Kalender';
+$strCancel = 'Avbryt';
+$strCanNotLoadExportPlugins = 'Kunde inte ladda export-tillägg. Kontrollera din installation.';
+$strCanNotLoadImportPlugins = 'Kunde inte ladda tillägg för import. Kontrollera din installation!';
+$strCannotLogin = 'Kan ej logga in på MySQL-server';
+$strCantLoad = 'kan inte ladda %s-tillägg,<br />var god kontrollera PHP-konfigurationen.';
+$strCantLoadRecodeIconv = 'Kan inte ladda tilläggen iconv eller recode som behövs för teckenuppsättningsomvandling. Antingen konfigurera PHP för att tillåta dessa tillägg eller inaktivera teckenuppsättningsomvandling i phpMyAdmin.';
+$strCantRenameIdxToPrimary = 'Kan inte byta namn på index till "PRIMARY"!';
+$strCantUseRecodeIconv = 'Kan inte använda varken funktionen iconv, libiconv eller recode_string, fastän de nödvändiga tilläggen verkar vara laddade. Kontrollera din PHP-konfiguration.';
+$strCardinality = 'Kardinalitet';
+$strCaseInsensitive = 'skiftlägesokänsligt';
+$strCaseSensitive = 'skiftlägeskänsligt';
+$strCentralEuropean = 'Centraleuropeisk';
+$strChange = 'Ändra';
+$strChangeCopyModeCopy = '... behåll den gamla.';
+$strChangeCopyMode = 'Skapa en ny användare med samma privilegier och ...';
+$strChangeCopyModeDeleteAndReload = ' ... ta bort den gamla från användartabellerna och ladda om privilegierna efteråt.';
+$strChangeCopyModeJustDelete = ' ... ta bort den gamla från användartabellerna.';
+$strChangeCopyModeRevoke = ' ... upphäv alla aktiva privilegier från dan gamla och ta bort den efteråt.';
+$strChangeCopyUser = 'Ändra inloggningsinformation / Kopiera användare';
+$strChangeDisplay = 'Välj fält som ska visas';
+$strChangePassword = 'Byt lösenord';
+$strCharset = 'Teckenuppsättning';
+$strCharsetOfFile = 'Filens teckenuppsättning:';
+$strCharsetsAndCollations = 'Teckenuppsättningar och kollationeringar';
+$strCharsets = 'Teckenuppsättningar';
+$strCheckAll = 'Markera alla';
+$strCheck = 'Kontrollera';
+$strCheckOverhead = 'Markera ooptimerade';
+$strCheckPrivs = 'Kontrollera privilegier';
+$strCheckPrivsLong = 'Kontrollera privilegier för databas &quot;%s&quot;.';
+$strCheckTable = 'Kontrollera tabell';
+$strChoosePage = 'Välj en sida att redigera';
+$strColComFeat = 'Visning av kolumnkommentarer';
+$strCollation = 'Kollationering';
+$strColumnNames = 'Kolumn-namn';
+$strColumnPrivileges = 'Kolumnspecifika privilegier';
+$strCommand = 'Kommando';
+$strComment = 'Kommentar';
+$strComments = 'Kommentarer';
+$strCompatibleHashing = 'Kompatibel med MySQL&nbsp;4.0';
+$strCompleteInserts = 'Kompletta infogningar';
+$strCompression = 'Komprimering';
+$strCompressionWillBeDetected = 'Importerad fils komprimering kommer automatiskt detekteras från: %s';
+$strConfigDefaultFileError = 'Kunde inte ladda standardkonfiguration från: "%1$s"';
+$strConfigFileError = 'phpMyAdmin kunde inte läsa din konfigurationsfil!<br />Detta kan inträffa om PHP hittar ett fel i den eller om PHP inte hittar filen.<br />Anropa konfigurationsfilen direkt mha länken nedan och läs PHP:s felmeddelande(n) som du erhåller. I de flesta fall saknas ett citationstecken eller ett semikolon någonstans.<br />Om du erhåller en tom sida är allt bra.';
+$strConfigureTableCoord = 'Var god ange koordinaterna för tabellen %s';
+$strConnectionError = 'Kan ej skapa förbindelse: ogiltiga inställningar.';
+$strConnections = 'Uppkopplingar';
+$strConstraintsForDumped = 'Restriktioner för dumpade tabeller';
+$strConstraintsForTable = 'Restriktioner för tabell';
+$strControluserFailed = 'Uppkoppling för controluser enligt din konfiguration misslyckades.';
+$strCookiesRequired = 'Kakor (cookies) måste tillåtas för att gå vidare.';
+$strCopy = 'Kopiera';
+$strCopyDatabaseOK = 'Databas %s har kopierats till %s';
+$strCopyTable = 'Kopiera tabellen till (databas<b>.</b>tabell):';
+$strCopyTableOK = 'Tabellen %s har kopierats till %s.';
+$strCopyTableSameNames = 'Kan inte kopiera tabell till samma namn!';
+$strCouldNotKill = 'phpMyAdmin kunde inte döda tråd %s. Troligtvis har den redan avslutats.';
+$strCreate = 'Skapa';
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE före kopiering';
+$strCreateIndex = 'Skapa ett index för&nbsp;%s&nbsp;kolumn(er)';
+$strCreateIndexTopic = 'Skapa ett nytt index';
+$strCreateNewDatabase = 'Skapa ny databas';
+$strCreateNewTable = 'Skapa ny tabell i databas %s';
+$strCreatePage = 'Skapa en ny sida';
+$strCreatePdfFeat = 'Skapande av PDF-sidor';
+$strCreateRelation = 'Skapa relation';
+$strCreateTable = 'Skapa tabell';
+$strCreateUserDatabase = 'Databas för användare';
+$strCreateUserDatabaseName = 'Skapa databas med samma namn och ge alla privilegier';
+$strCreateUserDatabaseNone = 'Ingen';
+$strCreateUserDatabaseWildcard = 'Ge alla privilegier till namn med jokertecken (username\_%)';
+$strCreationDates = 'Skapad/Uppdaterad/Kontrollerad datum';
+$strCriteria = 'Villkor';
+$strCroatian = 'Kroatisk';
+$strCSV = 'CSV';
+$strCustomColor = 'Anpassad färg';
+$strCyrillic = 'Kyrillisk';
+$strCzech = 'Tjeckisk';
+$strCzechSlovak = 'Tjeckisk-Slovakisk';
+
+$strDanish = 'Dansk';
+$strDatabase = 'Databas';
+$strDatabaseEmpty = 'Databasens namn är tomt!';
+$strDatabaseExportOptions = 'Exportalternativ för databas';
+$strDatabaseHasBeenCreated = 'Databas %1$s har skapats.';
+$strDatabaseHasBeenDropped = 'Databasen %s har tagits bort.';
+$strDatabases = 'Databaser';
+$strDatabasesDropped = '%s databaser har tagits bort.';
+$strDatabasesStats = 'Databas-statistik';
+$strDatabasesStatsDisable = 'Stäng av statistik';
+$strDatabasesStatsEnable = 'Slå på statistik';
+$strDatabasesStatsHeavyTraffic = 'Anm: Att slå på databasstatistik här kan orsaka tung trafik mellan webb- och MySQL-servern.';
+$strData = 'Data';
+$strDataDict = 'Datalexikon';
+$strDataOnly = 'Enbart data';
+$strDataPages = 'Sidor innehållande data';
+$strDBComment = 'Databaskommentar: ';
+$strDBCopy = 'Kopiera databas till';
+$strDbIsEmpty = 'Databasen verkar vara tom!';
+$strDbPrivileges = 'Databasspecifika privilegier';
+$strDBRename = 'Döp om databasen till';
+$strDbSpecific = 'databasspecifik';
+$strDefault = 'Standard';
+$strDefaultEngine = '%s är standardlagringsmotorn på denna MySQL-server.';
+$strDefaultValueHelp = 'För standardvärden, ange endast ett enstaka värde, utan bakåtstreck eller citattecken, enligt formatet: a';
+$strDefragment = 'Defragmentera tabell';
+$strDelayedInserts = 'Använd fördröjda infogningar';
+$strDeleteAndFlush = 'Ta bort användarna och ladda om privilegierna efteråt.';
+$strDeleteAndFlushDescr = 'Detta är det renaste sättet, men omladdning av privilegierna kan ta en stund.';
+$strDelete = 'Radera';
+$strDeleted = 'Raden har raderats';
+$strDeleteNoUsersSelected = 'Inga användare valda för borttagning!';
+$strDeleteRelation = 'Ta bort relation';
+$strDeleting = 'Tar bort %s';
+$strDelimiter = 'Avgränsare';
+$strDelOld = 'Nuvarande sida har referenser till tabeller som inte längre existerar. Vill du ta bort dessa referenser?';
+$strDescending = 'Fallande';
+$strDescription = 'Beskrivning';
+$strDesigner = 'Designer';
+$strDesignerHelpDisplayField = 'Visningsfältet visas i rosa. För att ange ett fält som visningsfält, klicka på ikonen "Välj fält som ska visas" och klicka sedan på lämpligt fältnamn.';
+$strDetails = 'Detaljer...';
+$strDictionary = 'lexikon';
+$strDirectLinks = 'Direkta länkar';
+$strDirtyPages = 'Orena sidor';
+$strDisabled = 'Inaktiverat';
+$strDisableForeignChecks = 'Stäng av kontroll av främmande nycklar';
+$strDisplayFeat = 'Visningsfunktionaliteter';
+$strDisplayOrder = 'Visningsordning:';
+$strDisplayPDF = 'Visa PDF-schema';
+$strDoAQuery = 'Utför en "Query By Example" (jokertecken: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Dokumentation';
+$strDoYouReally = 'Vill du verkligen ';
+$strDropDatabaseStrongWarning = 'Du håller på att FÖRGÖRA en hel databas!';
+$strDrop = 'Radera';
+$strDropUsersDb = 'Ta bort databaserna med samma namn som användarna.';
+$strDumpingData = 'Data i tabell';
+$strDumpSaved = 'SQL-satserna har sparats till filen %s.';
+$strDumpXRows = 'Visa %s rader med början på rad %s.';
+$strDynamic = 'dynamisk';
+
+$strEdit = 'Ändra';
+$strEditPDFPages = 'Redigera PDF-sidor';
+$strEditPrivileges = 'Ändra privilegier';
+$strEffective = 'Effektivt';
+$strEmpty = 'Töm';
+$strEmptyResultSet = 'MySQL returnerade ett tomt resultat (dvs inga rader).';
+$strEnabled = 'Aktiverat';
+$strEncloseInTransaction = 'Inneslut export i en transaktion';
+$strEndCut = 'SLUT URKLIPP';
+$strEnd = 'Slutet';
+$strEndRaw = 'SLUT RÅTEXT';
+$strEngineAvailable = '%s är tillgänglig på denna MySQL-server.';
+$strEngineDisabled = '%s har inaktiverats på denna MySQL-server.';
+$strEngines = 'Motorer';
+$strEngineUnsupported = 'Denna MySQL-server har inte stöd för lagringsmotorn %s.';
+$strEnglish = 'Engelsk';
+$strEnglishPrivileges = ' Obs! MySQL privilegiumnamn anges på engelska ';
+$strError = 'Fel';
+$strErrorInZipFile = 'Fel i ZIP-arkiv:';
+$strErrorRelationAdded = 'Fel: Relation inte tillagd.';
+$strErrorRelationExists = 'Fel: Relation finns redan.';
+$strErrorRenamingTable = 'Fel vid namnbyte på tabell %1$s till %2$s';
+$strErrorSaveTable = 'Fel vid sparande av koordinater för Designer.';
+$strEscapeWildcards = 'Jokerteknen _ och % måste föregås av ett \ för att användas i egentlig betydelse';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estnisk';
+$strEvent = 'Händelse';
+$strEvents = 'Händelser';
+$strExcelEdition = 'Excel-version';
+$strExecuteBookmarked = 'Utför bokmärkt fråga';
+$strExplain = 'Förklara SQL-kod';
+$strExport = 'Exportera';
+$strExportImportToScale = 'Exportera/importera till skala';
+$strExportMustBeFile = 'Vald export-typ måste sparas i fil!';
+$strExtendedInserts = 'Utökade infogningar';
+$strExtra = 'Extra';
+
+$strFailedAttempts = 'Misslyckade försök';
+$strField = 'Fält';
+$strFieldHasBeenDropped = 'Fältet %s har tagits bort';
+$strFieldInsertFromFileTempDirNotExists = 'Fel vid flytt av uppladdad fil, se FAQ 1.11';
+$strFieldsEnclosedBy = 'Fälten omges av';
+$strFieldsEscapedBy = 'Specialtecken i fält föregås av';
+$strFields = 'Fält';
+$strFieldsTerminatedBy = 'Fälten avslutas med';
+$strFileAlreadyExists = 'Filen %s finns redan på servern. Ändra filnamnet eller kryssa i skriv över-alternativet.';
+$strFileCouldNotBeRead = 'Filen kunde inte läsas';
+$strFileNameTemplateDescriptionDatabase = 'databasnamn';
+$strFileNameTemplateDescriptionServer = 'servernamn';
+$strFileNameTemplateDescriptionTable = 'tabellnamn';
+$strFileNameTemplateDescription = 'Detta värde tolkas mha %1$sstrftime%2$s, så du kan använda strängar med tidsformatering. Dessutom kommer följande omvandlingar att ske: %3$s. Övrig text behålls som den är.';
+$strFileNameTemplate = 'Mall för filnamn';
+$strFileNameTemplateRemember = 'kom ihåg mall';
+$strFiles = 'Filer';
+$strFileToImport = 'Fil att importera';
+$strFixed = 'fast';
+$strFlushPrivilegesNote = 'Anm: phpMyAdmin hämtar användarnas privilegier direkt från MySQL:s privilegiumtabeller. Innehållet i dessa tabeller kan skilja sig från privilegierna som servern använder ifall manuella ändringar har gjorts. I detta fall bör du %sladda om privilegierna%s innan du fortsätter.';
+$strFlushQueryCache = 'Rensa frågecache';
+$strFlushTable = 'Rensa tabell';
+$strFlushTables = 'Stäng alla tabeller';
+$strFontSize = 'Teckenstorlek';
+$strForeignKeyError = 'Fel vid skapande av främmande nyckel för %1$s (kontrollera datatyper)';
+$strForeignKeyRelationAdded = 'Främmande nyckel-relation tillagd';
+$strFormat = 'Format';
+$strFormEmpty = 'Värde saknas i formuläret!';
+$strFreePages = 'Fria sidor';
+$strFullText = 'Fullständiga texter';
+$strFunction = 'Funktion';
+$strFunctions = 'Funktioner';
+
+$strGenBy = 'Genererad av';
+$strGeneralRelationFeat = 'Allmänna relationsfunktionaliteter';
+$strGenerate = 'Generera';
+$strGeneratePassword = 'Generera lösenord';
+$strGenTime = 'Skapad';
+$strGeorgian = 'Georgisk';
+$strGerman = 'Tysk';
+$strGlobal = 'global';
+$strGlobalPrivileges = 'Globala privilegier';
+$strGlobalValue = 'Globalt värde';
+$strGo = 'Kör';
+$strGrantOption = 'Grant';
+$strGreek = 'Grekisk';
+$strGzip = '"gzippad"';
+
+$strHandler = 'Hanterare';
+$strHasBeenAltered = 'har ändrats.';
+$strHaveToShow = 'Du måste välja minst en kolumn som ska visas';
+$strHebrew = 'Hebreisk';
+$strHelp = 'Hjälp';
+$strHexForBLOB = 'Använd hexadecimal för BLOB';
+$strHide = 'Dölj';
+$strHideShowAll = 'Dölj/visa alla';
+$strHideShowNoRelation = 'Dölj/visa tabeller utan relationer';
+$strHome = 'Hem';
+$strHomepageOfficial = 'phpMyAdmin:s officiella hemsida';
+$strHostEmpty = 'Värdnamnet är tomt!';
+$strHost = 'Värd';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Ungersk';
+
+$strIcelandic = 'Isländska';
+$strId = 'ID';
+$strIdxFulltext = 'Heltext';
+$strIEUnsupported = 'Internet Explorer saknar stöd för denna funktion.';
+$strIgnoreDuplicates = 'Ignorera dubblerade rader';
+$strIgnore = 'Ignorera';
+$strIgnoreInserts = 'Använd IGNORE i infogningar';
+$strImportExportCoords = 'Importera/exportera koordinater för PDF-schema';
+$strImportFiles = 'Importera filer';
+$strImportFormat = 'Format på importerad fil';
+$strImport = 'Importera';
+$strImportSuccessfullyFinished = 'Importen har avslutats korrekt, %d frågor utförda.';
+$strIndexes = 'Index';
+$strIndexesSeemEqual = 'Indexen %1$s och %2$s verkar vara indentiska och ett av dem kan möjligen tas bort.';
+$strIndexHasBeenDropped = 'Index %s har tagits bort';
+$strIndex = 'Index';
+$strIndexName = 'Indexnamn&nbsp;:';
+$strIndexType = 'Indextyp&nbsp;:';
+$strIndexWarningTable = 'Problem med index för tabell `%s`';
+$strInnoDBAutoextendIncrement = 'Automatisk utökningsstorlek';
+$strInnoDBAutoextendIncrementDesc = 'Tillökningsstorleken vid automatisk utökning av tabellutrymme när det blir fullt.';
+$strInnoDBBufferPoolSize = 'Buffertstorlek';
+$strInnoDBBufferPoolSizeDesc = 'Storleken på minnesbufferten som InnoDB använder för cache av data och index till sina tabeller.';
+$strInnoDBDataFilePath = 'Datafiler';
+$strInnoDBDataHomeDir = 'Hemkatalog för data';
+$strInnoDBDataHomeDirDesc = 'Den gemensamma delen av sökvägen för alla InnoDB-datafiler.';
+$strInnoDBPages = 'sidor';
+$strInnodbStat = 'InnoDB-status';
+$strInsecureMySQL = 'Din konfigurationsfil innehåller inställningar (root-konto utan lösenord) som motsvarar MySQL:s privilegierade standardkonto. Din MySQL-server körs med denna standardinställning och är öppen för intrång, så du bör verkligen täppa till detta säkerhetshål.';
+$strInsertAsNewRow = 'Lägg till som ny rad';
+$strInsertedRowId = 'Infogade rad id: %1$d';
+$strInsert = 'Lägg till';
+$strInterface = 'Gränssnitt';
+$strInternalAndForeign = 'En intern relation är inte nödvändig när en motsvarande främmande nyckel-relation finns.';
+$strInternalRelationAdded = 'Intern relation tillagd';
+$strInternalRelations = 'Interna relationer';
+$strInUse = 'används';
+$strInvalidAuthMethod = 'Ogiltig metod för autenticiering angiven i konfiguration:';
+$strInvalidColumnCount = 'Antalet kolumner måste vara större än noll.';
+$strInvalidColumn = 'Ogiltig kolumn (%s) angiven!';
+$strInvalidCSVFieldCount = 'Ogiltigt antal fält i CSV-indata på rad %d.';
+$strInvalidCSVFormat = 'Ogiltigt format i CSV-indata på rad %d.';
+$strInvalidCSVParameter = 'Ogiltig parameter för CSV-import: %s';
+$strInvalidDatabase = 'Ogiltig databas';
+$strInvalidFieldAddCount = 'Du måste lägga till åtminstone ett fält.';
+$strInvalidFieldCount = 'Tabell måste ha åtminstone ett fält.';
+$strInvalidLDIImport = 'Detta tillägg stöder inte komprimerade importer!';
+$strInvalidRowNumber = '%d är inte ett giltigt radnummer.';
+$strInvalidServerHostname = 'Ogiltigt värdnamn för server %1$s. Var god granska din konfiguration.';
+$strInvalidServerIndex = 'Ogiltigt serverindex: "%s"';
+$strInvalidTableName = 'Ogiltigt tabellnamn';
+
+$strJapanese = 'Japansk';
+$strJoins = 'Föreningar';
+$strJumpToDB = 'Hoppa till databas &quot;%s&quot;.';
+$strJustDeleteDescr = 'De &quot;borttagna&quot; användarna kommer fortfarande kunna komma åt servern som vanligt tills privilegierna laddas om.';
+$strJustDelete = 'Ta endast bort användarna från privilegiumtabellerna.';
+
+$strKeepPass = 'Ändra inte lösenordet';
+$strKeyCache = 'Nyckelcache';
+$strKeyname = 'Nyckel';;
+$strKill = 'Döda';
+$strKnownExternalBug = 'Funktionaliteten för %s påverkas av en känd bugg, se %s';
+$strKorean = 'Koreansk';
+
+$strLandscape = 'Liggande';
+$strLanguage = 'Språk';
+$strLanguageUnknown = 'Okänt språk: %1$s.';
+$strLatchedPages = 'Låsta sidor';
+$strLatexCaption = 'Tabellrubrik';
+$strLatexContent = 'Innehåll i tabell __TABLE__';
+$strLatexContinuedCaption = 'Fortsatt tabellrubrik';
+$strLatexContinued = '(fortsättning)';
+$strLatexIncludeCaption = 'Inkludera tabellrubrik';
+$strLatexLabel = 'Etikett';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = 'Struktur för tabell __TABLE__';
+$strLatvian = 'Lettiska';
+$strLDI = 'CSV mha LOAD DATA';
+$strLDILocal = 'Använd nyckelordet LOCAL';
+$strLengthSet = 'Längd/Värden*';
+$strLimitNumRows = 'Rader per sida';
+$strLinesTerminatedBy = 'Raderna avslutas med';
+$strLinkNotFound = 'Länk ej funnen';
+$strLinksTo = 'Länkar till';
+$strLithuanian = 'Litauisk';
+$strLocalhost = 'Lokal';
+$strLocationTextfile = 'Textfilens plats';
+$strLoginInformation = 'Inloggningsinformation';
+$strLogin = 'Logga in';
+$strLogout = 'Logga ut';
+$strLogPassword = 'Lösenord:';
+$strLogServer = 'Server';
+$strLogUsername = 'Användarnamn:';
+$strLongOperation = 'Denna operation kan ta lång tid. Försätt ändå?';
+
+$strMaxConnects = 'Max. samtidiga förbindelser';
+$strMaximalQueryLength = 'Maximal längd på skapad fråga';
+$strMaximumSize = 'Maximal storlek: %s%s';
+$strMbExtensionMissing = 'PHP-tillägget mbstring kunde inte hittas och det verkar som om du använder flerbitars teckenuppsättning. phpMyAdmin kan inte dela upp strängar korrekt utan tillägget mbstring, vilket kan leda till oväntade resultat.';
+$strMbOverloadWarning = 'Du har aktiverat mbstring.func_overload i din PHP-konfiguration. Detta alternativ är inkompatibelt med phpMyAdmin och kan orsaka att en del data förstörs!';
+$strMIME_available_mime = 'Tillgängliga MIME-typer';
+$strMIME_available_transform = 'Tillgängliga omvandlingar';
+$strMIME_description = 'Beskrivning';
+$strMIME_MIMEtype = 'MIME-typ';
+$strMIME_nodescription = 'Ingen beskrivning för denna omvandling finns tillgänglig.<br />Vänligen fråga upphovsmannen vad %s gör.';
+$strMIME_transformation = 'Webbläsaromvandling';
+$strMIME_transformation_note = 'För en lista med tillgängliga omvandlingsparametrar och deras MIME-typomvandlingar, klicka på %somvandlingsbeskrivningar%s';
+$strMIME_transformation_options_note = 'Ange värdena för omvandlingsparametrar enligt följande format: \'a\', 100, b,\'c\'...<br />Om du behöver lägga till ett bakåtstreck ("\") eller ett enkelcitat ("\'") i värdena, skriv ett bakåtstreck före tecknet (t.ex. \'\\\\xyz\' eller \'a\\\'b\').';
+$strMIME_transformation_options = 'Omvandlingsparametrar';
+$strMIMETypesForTable = 'MIME-TYPER FÖR TABELL';
+$strMIME_without = 'Kursiverade MIME-typer har inte någon separat omvandlingsfunktion';
+$strModifications = 'Ändringarna har sparats';
+$strModifyIndexTopic = 'Ändra ett index';
+$strModify = 'Ändra';
+$strMoveMenu = 'Flytta meny';
+$strMoveTable = 'Flytta tabellen till (databas<b>.</b>tabell):';
+$strMoveTableOK = 'Tabellen %s har flyttats till %s.';
+$strMoveTableSameNames = 'Kan inte flytta tabell till samma namn!';
+$strMultilingual = 'flerspråkig';
+$strMyISAMDataPointerSize = 'Storlek för datapekare';
+$strMyISAMDataPointerSizeDesc = 'Standardpekarens storlek i bytes, vilken används av CREATE TABLE för MyISAM-tabeller när inget MAX_ROWS-alternativ är specificerat.';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Om den temporära filen som används för snabbt skapande av MyISAM-index skulle vara större än att använda nyckelcachen vars storlek specificeras här, så föredras metoden med nyckelcachen.';
+$strMyISAMMaxExtraSortFileSize = 'Maximal storlek för temporära filer vid skapande av index';
+$strMyISAMMaxSortFileSizeDesc = 'Denna maximala storleken för den temporära filen som MySQL är tillåten att använda under återskapande av MyISAM-index (vid REPAIR TABLE, ALTER TABLE, eller LOAD DATA INFILE).';
+$strMyISAMMaxSortFileSize = 'Maximal storlek för temporära sorteringsfiler';
+$strMyISAMRecoverOptions = 'Automatisk återställning';
+$strMyISAMRecoverOptionsDesc = 'Inställningen för automatisk återställning av kraschade MyISAM-tabeller, som satts via serverns startparameter --myisam-recover.';
+$strMyISAMRepairThreadsDesc = 'Om detta värde är större än 1 skapas MyISAM-tabellindex parallellt (varje index i sin egen tråd) under reparationen vid sorteringsprocess.';
+$strMyISAMRepairThreads = 'Reparera trådar';
+$strMyISAMSortBufferSizeDesc = 'Bufferten som allokeras vid sortering av MyISAM-index under REPAIR TABLE eller vid skapande av index med CREATE INDEX eller ALTER TABLE.';
+$strMyISAMSortBufferSize = 'Storlek för sorteringsbuffert';
+$strMySQLCharset = 'MySQL teckenuppsättning';
+$strMysqlClientVersion = 'MySQL klientversion';
+$strMySQLConnectionCollation = 'Kollation för MySQL-uppkoppling';
+$strMysqlLibDiffersServerVersion = 'Din PHP MySQL bibliotekversion %s skiljer sig från din MySQL serverversion %s. Detta kan orsaka oförutsägbara beteenden.';
+$strMySQLSaid = 'MySQL sa: ';
+$strMySQLShowProcess = 'Visa processer';
+
+$strName = 'Namn';
+$strNext = 'Nästa';
+$strNoActivity = 'Ingen aktivitet sedan %s sekunder eller mer. Var god logga in igen';
+$strNoDatabases = 'Inga databaser';
+$strNoDatabasesSelected = 'Inga databaser markerade.';
+$strNoDataReceived = 'Inga data att importera mottogs. Antingen skickades inget filnamn eller så översteg filens storlek den maximala som tillåts av din PHP-konfiguration.. Se FAQ 1.16.';
+$strNoDescription = 'Ingen beskrivning';
+$strNoDetailsForEngine = 'Det finns ingen tillgänglig detaljerad statusinformation för denna lagringsmotor.';
+$strNoDropDatabases = '"DROP DATABASE"-satser är inaktiverade.';
+$strNoExplain = 'Utan SQL-förklaring';
+$strNoFilesFoundInZip = 'Inga filer hittades i ZIP-arkivet!';
+$strNoFrames = 'phpMyAdmin fungerar tyvärr endast med webbläsare som hanterar ramar.';
+$strNoIndex = 'Inga index är definierade!';
+$strNoIndexPartsDefined = 'Inga delar av index är definierade!';
+$strNoModification = 'Ingen förändring';
+$strNone = 'Inget';
+$strNo = 'Nej';
+$strNoOptions = 'Detta format har inga alternativ';
+$strNoPassword = 'Inget lösenord';
+$strNoPermission = 'Webbservern har inte tillåtelse att spara filen %s.';
+$strNoPhp = 'Utan PHP-kod';
+$strNoPrivileges = 'Inga privilegier';
+$strNoRights = 'Du har inte tillräcklig behörighet för att vara här nu!';
+$strNoRowsSelected = 'Inga rader valda';
+$strNoSpace = 'Otillräckligt utrymme för att spara filen %s.';
+$strNoTablesFound = 'Inga tabeller funna i databasen.';
+$strNoThemeSupport = 'Stöd för teman saknas. Kontrollera din konfiguration och/eller dina teman i katalog %s.';
+$strNotNumber = 'Det är inte ett nummer!';
+$strNotOK = 'Inte OK';
+$strNotSet = '<b>%s</b>-tabellen ej funnen eller ej angiven i %s';
+$strNoUsersFound = 'Hittade ingen användare.';
+$strNoValidateSQL = 'Utan SQL-validering';
+$strNull = 'Null';
+$strNumberOfFields = 'Antal fält';
+$strNumberOfTables = 'Antal tabeller';
+$strNumSearchResultsInTable = '%s träff(ar) i tabell <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Totalt:</b> <i>%s</i> träff(ar)';
+$strNumTables = 'Tabeller';
+
+$strOK = 'OK';
+$strOpenDocumentSpreadsheet = 'OpenDocument-kalkylblad';
+$strOpenDocumentText = 'OpenDocument-text';
+$strOpenNewWindow = 'Öppna nytt phpMyAdmin-fönster';
+$strOperations = 'Operationer';
+$strOperator = 'Operator';
+$strOptimize = 'Optimera';
+$strOptimizeTable = 'Optimera tabell';
+$strOptions = 'Alternativ';
+$strOr = 'Eller';
+$strOverhead = 'Outnyttjat';
+$strOverwriteExisting = 'Skriv över befintlig fil(er)';
+
+$strPacked = 'Packad';
+$strPageNumber = 'Sida:';
+$strPagesToBeFlushed = 'Sidor att rensa';
+$strPaperSize = 'Pappersstorlek';
+$strPartialImport = 'Partiell import';
+$strPartialText = 'Avkortade texter';
+$strPartitionDefinition = 'Partitionsdefinition';
+$strPartitioned = 'partitionerad';
+$strPartitionMaintenance = 'Partitionsunderhåll';
+$strPartition = 'Partition %s';
+$strPasswordChanged = 'Lösenordet för %s har ändrats.';
+$strPasswordEmpty = 'Lösenordet är tomt!';
+$strPasswordHashing = 'Hashning av lösenord';
+$strPasswordNotSame = 'Lösenorden är inte lika!';
+$strPassword = 'Lösenord';
+$strPBXTCheckpointFrequency = 'Frekvens för kontrollpunkt';
+$strPBXTCheckpointFrequencyDesc = 'Mängden data som skrivs till transaktionsloggen innan en kontrollpunkt utförs. Standardvärdet är 24MB.';
+$strPBXTDataFileGrowSize = 'Växstorlek för datafil';
+$strPBXTDataFileGrowSizeDesc = 'Storleken med vilken filer för hanteringsdata (.xtd) växer.';
+$strPBXTDataLogThreshold = 'Gräns för datalogg';
+$strPBXTDataLogThresholdDesc = 'Maximal storlek för dataloggfil. Standardvärdet är 64MB. PBXT kan skapa maximalt 32000 dataloggar, som används av alla tabeller. Så denna variabels värde kan ökas för att öka den totala mängden data som kan lagras i databasen.';
+$strPBXTGarbageThresholdDesc = 'Andelen skräp i en dataloggfil innan den komprimeras. Detta är ett värde mellan 1 och 99. Standardvärdet är 50.';
+$strPBXTGarbageThreshold = 'Gräns för skräp';
+$strPBXTIndexCacheSizeDesc = 'Detta är mängden minne som allokeras för indexcachen. Standardvärdet är 32MB. Minnet som allokeras här används endast för cache av indexsidor.';
+$strPBXTIndexCacheSize = 'Cachestorlek för index';
+$strPBXTLogBufferSizeDesc = 'Storleken på använd buffer vid skrivning av datalogg. Standardvärdet är 256MB. Motorn allokerar en buffer per tråd, men endast om tråden behöver skriva en datalogg.';
+$strPBXTLogBufferSize = 'Bufferstolek för logg';
+$strPBXTLogCacheSizeDesc = 'Mängden minne som allokeras för transaktionsloggcachen som används för cache av transaktionsloggdata. Standardvärdet är 16MB.';
+$strPBXTLogCacheSize = 'Cachestorlek för logg';
+$strPBXTLogFileCountDesc = 'Detta är antalet transaktionsloggfiler (pbxt/system/xlog*.xt) som systemet upprätthåller. Om antalet loggar överstiger detta värde tas gamla loggar bort. Annars döps de om och ges det näst högsta numret.';
+$strPBXTLogFileCount = 'Antal loggfiler';
+$strPBXTLogFileThresholdDesc = 'Storleken på en transaktionslogg före övergång då en ny logg skapas. Standardvärdet är 16MB.';
+$strPBXTLogFileThreshold = 'Gräns för loggfil';
+$strPBXTRecordCacheSizeDesc = 'Detta är mängden minne som allokeras för radcachen som används för cache av tabelldata. Standardvärdet är 32MB. Detta minne används för att cacha ändringar i filer för hanteringsdata (.xtd) och radpekare (.xtr).';
+$strPBXTRecordCacheSize = 'Cachestorlek för rad';
+$strPBXTRowFileGrowSizeDesc = 'Storleken med vilken filer för radpekare (.xtr) växer.';
+$strPBXTRowFileGrowSize = 'Växstorlek för radfil';
+$strPBXTTransactionBufferSizeDesc = 'Storleken på den globala transaktionsloggbuffern (motorn allokerar 2 buffrar med denna storlek). Standardvärdet är 1MB.';
+$strPBXTTransactionBufferSize = 'Transactionsbufferstorlek';
+$strPdfDbSchema = 'Schema för databasen "%s" - Sidan %s';
+$strPdfInvalidTblName = 'Tabellen "%s" finns inte!';
+$strPdfNoTables = 'Inga tabeller';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Skapar en rapport som innehåller data från en enstaka tabell)';
+$strPDFReportTitle = 'Rapportrubrik';
+$strPerHour = 'per timme';
+$strPerMinute = 'per minut';
+$strPerSecond = 'per sekund';
+$strPersian = 'Persiska';
+$strPhoneBook = 'telefonbok';
+$strPhp = 'Skapa PHP-kod';
+$strPHPExtension = 'PHP-tillägg';
+$strPHPVersion = 'PHP-version';
+$strPleaseSelectPrimaryOrUniqueKey = 'Välj den primära nyckeln eller en unik nyckel';
+$strPmaDocumentation = 'phpMyAdmin dokumentation';
+$strPmaUriError = 'Variabeln <tt>$cfg[\'PmaAbsoluteUri\']</tt> MÅSTE anges i din konfigurationsfil!';
+$strPolish = 'Polska';
+$strPortrait = 'Stående';
+$strPos1 = 'Början';
+$strPrevious = 'Föregående';
+$strPrimaryKeyHasBeenDropped = 'Den primära nyckeln har tagits bort';
+$strPrimaryKeyName = 'Primärnyckelns namn måste vara "PRIMARY"!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>måste</b> vara namnet på och <b>endast på</b> en primärnyckel!)';
+$strPrimary = 'Primär';
+$strPrint = 'Skriv ut';
+$strPrintViewFull = 'Utskriftsvänlig visning (med fullständiga texter)';
+$strPrintView = 'Utskriftsvänlig visning';
+$strPrivDescAllPrivileges = 'Inkluderar alla privilegier utom GRANT.';
+$strPrivDescAlter = 'Tillåter ändring av befintliga tabellers struktur.';
+$strPrivDescAlterRoutine = 'Tillåter ändring och borttagning av lagrade rutiner.';
+$strPrivDescCreateDb = 'Tillåter skapande av nya databaser och tabeller.';
+$strPrivDescCreateRoutine = 'Tillåter skapande av lagrade rutiner.';
+$strPrivDescCreateTbl = 'Tillåter skapande av nya tabeller.';
+$strPrivDescCreateTmpTable = 'Tillåter skapande av temporära tabeller.';
+$strPrivDescCreateUser = 'Tillåter skapande, borttagning och omdöpning av användarkonton.';
+$strPrivDescCreateView = 'Tillåter skapande av nya vyer.';
+$strPrivDescDelete = 'Tillåter borttagning av data.';
+$strPrivDescDropDb = 'Tillåter borttagning av databaser och tabeller.';
+$strPrivDescDropTbl = 'Tillåter borttagning av tabeller.';
+$strPrivDescEvent = 'Tillåter skapande av händelser för händelseschemaläggaren';
+$strPrivDescExecute5 = 'Tillåter utförande av lagrade rutiner.';
+$strPrivDescExecute = 'Tillåter körning av lagrade procedurer; Har ingen verkan i denna MySQL-version.';
+$strPrivDescFile = 'Tillåter import av data från och export av data till filer.';
+$strPrivDescGrant = 'Tillåter tillägg av användare och privilegier utan omladdning av privilegiumtabellerna.';
+$strPrivDescIndex = 'Tillåter skapande och borttagning av index.';
+$strPrivDescInsert = 'Tillåter infogning och ersättning av data.';
+$strPrivDescLockTables = 'Tillåter låsning av tabeller för gällande tråd.';
+$strPrivDescMaxConnections = 'Begränsar antalet nya förbindelser användaren kan öppna per timme.';
+$strPrivDescMaxQuestions = 'Begränsar antalet frågor användaren kan skicka till servern per timme.';
+$strPrivDescMaxUpdates = 'Begränsar antalet kommandon, vilka ändrar någon tabell eller databas, som användaren kan utföra per timme.';
+$strPrivDescMaxUserConnections = 'Begränsar antalet samtidiga förbindelser som användaren kan ha.';
+$strPrivDescProcess = 'Tillåter visning av processer för alla användare';
+$strPrivDescReferences = 'Har ingen verkan i denna MySQL-version.';
+$strPrivDescReload = 'Tillåter omladdning av serverinställningar och rensning av serverns cache.';
+$strPrivDescReplClient = 'Ger användaren rätt att fråga var slav- / huvudservrarna är.';
+$strPrivDescReplSlave = 'Nödvändigt för replikeringsslavar.';
+$strPrivDescSelect = 'Tillåter läsning av data.';
+$strPrivDescShowDb = 'Ger tillgång till den fullständiga databaslistan.';
+$strPrivDescShowView = 'Tillåter utförande av SHOW CREATE VIEW-frågor.';
+$strPrivDescShutdown = 'Tillåter avstängning av servern.';
+$strPrivDescSuper = 'Tillåter uppkoppling, även om maximala antalet förbindelser är nådd. Nödvändig för de flesta administrativa funktioner, som att sätta globala variabler eller döda andra användares trådar.';
+$strPrivDescTrigger = 'Tillåter skapande och borttagning av utlösare';
+$strPrivDescUpdate = 'Tillåter ändring av data.';
+$strPrivDescUsage = 'Inga privilegier.';
+$strPrivileges = 'Privilegier';
+$strPrivilegesReloaded = 'Privilegierna har laddats om.';
+$strProcedures = 'Procedurer';
+$strProcesses = 'Processer';
+$strProcesslist = 'Processlista';
+$strProfiling = 'Under produktion';
+$strProtocolVersion = 'Protokollversion';
+$strPutColNames = 'Ange fältnamn på första raden';
+
+$strQBEDel = 'Ta bort';
+$strQBEIns = 'Infoga';
+$strQBE = 'Skapa fråga';
+$strQueryCache = 'Frågecache';
+$strQueryFrame = 'Frågefönster';
+$strQueryOnDb = 'SQL-fråga i databas <b>%s</b>:';
+$strQueryResultsOperations = 'Operationer för frågeresultat';
+$strQuerySQLHistory = 'SQL-historik';
+$strQueryStatistics = '<b>Frågestatistik</b>: %s frågor har skickats till servern sedan den startade.';
+$strQueryTime = 'Frågan tog %01.4f sek';
+$strQueryType = 'Typ av fråga';
+$strQueryWindowLock = 'Skriv inte över denna fråga utifrån detta fönster';
+
+$strReadRequests = 'Läsefterfrågningar';
+$strRebuild = 'Omskapa';
+$strReceived = 'Mottagna';
+$strRecommended = 'rekommenderad';
+$strRecords = 'Rader';
+$strReferentialIntegrity = 'Kontrollera referensintegritet:';
+$strRefresh = 'Uppdatera';
+$strRelationalDisplayField = 'Visningsfält för relation';
+$strRelationalKey = 'Relationsnyckel';
+$strRelationalSchema = 'Relationsschema';
+$strRelationDeleted = 'Relation borttagen';
+$strRelationNotWorking = 'Den extra funktionaliteten för att hantera länkade tabeller har inaktiverats. %sVisa orsaken%s.';
+$strRelationsForTable = 'RELATIONER FÖR TABELL';
+$strRelations = 'Relationer';
+$strRelationView = 'Visa relationer';
+$strReloadingThePrivileges = 'Laddar om privilegierna';
+$strReloadPrivileges = 'Ladda om privilegier';
+$strReload = 'Uppdatera';
+$strRemovePartitioning = 'Ta bort partitionering';
+$strRemoveSelectedUsers = 'Ta bort markerade användare';
+$strRenameDatabaseOK = 'Databas %s har döpts om till %s';
+$strRenameTableOK = 'Tabell %s har döpts om till %s';
+$strRenameTable = 'Döp om tabellen till';
+$strRepair = 'Reparera';
+$strRepairTable = 'Reparera tabell';
+$strReplaceNULLBy = 'Ersätt NULL med';
+$strReplaceTable = 'Ersätt data i tabell';
+$strReplication = 'Replikering';
+$strReset = 'Nollställ';
+$strResourceLimits = 'Resursbegränsningar';
+$strRestartInsertion = 'Börja om infogning med %s rader';
+$strReType = 'Skriv igen';
+$strRevokeAndDeleteDescr = 'Användarna kommer fortfarande ha kvar privilegiet USAGE tills privilegierna laddas om.';
+$strRevokeAndDelete = 'Upphäv användarnas alla aktiva privilegier och ta bort användarna efteråt.';
+$strRevokeMessage = 'Du har upphävt privilegierna för %s';
+$strRevoke = 'Upphäv';
+$strRomanian = 'Rumänska';
+$strRoutineReturnType = 'Returtyp';
+$strRoutines = 'Rutiner';
+$strRowLength = 'Radlängd';
+$strRowsAffected = '%1$d rad(er) påverkade.';
+$strRowsDeleted = '%1$d rad(er) borttagna.';
+$strRowsFrom = 'rader med början från';
+$strRowsInserted = '%1$d rad(er) infogade.';
+$strRowSize = 'Radstorlek';
+$strRowsModeFlippedHorizontal = 'vågrätt (roterade rubriker)';
+$strRowsModeHorizontal = 'vågrätt';
+$strRowsModeOptions = 'i %s format och upprepa rubrikerna efter %s celler';
+$strRowsModeVertical = 'lodrätt';
+$strRows = 'Rader';
+$strRowsStatistic = 'Radstatistik';
+$strRunning = 'körs på %s';
+$strRunQuery = 'Kör fråga';
+$strRunSQLQueryOnServer = 'Kör SQL-fråga/frågor på server %s';
+$strRunSQLQuery = 'Kör SQL-fråga/frågor i databasen %s';
+$strRussian = 'Rysk';
+
+$strSaveOnServer = 'Spara på servern i katalogen %s';
+$strSavePosition = 'Spara position';
+$strSave = 'Spara';
+$strScaleFactorSmall = 'Skalfaktorn är för liten för att schemat ska få plats på en sida';
+$strSearchFormTitle = 'Sök i databas';
+$strSearchInField = 'I fält:';
+$strSearchInTables = 'I tabell(er):';
+$strSearchNeedle = 'Ord eller värde(n) att söka efter (jokertecken: "%"):';
+$strSearchOption1 = 'minst ett av orden';
+$strSearchOption2 = 'alla ord';
+$strSearchOption3 = 'den exakta frasen';
+$strSearchOption4 = 'som reguljärt uttryck';
+$strSearchResultsFor = 'Resultat av sökning efter "<i>%s</i>" %s:';
+$strSearch = 'Sök';
+$strSearchType = 'Hitta:';
+$strSecretRequired = 'Konfigurationsfilen behöver nu ett hemligt lösenord (blowfish_secret).';
+$strSelectADb = 'Välj en databas';
+$strSelectAll = 'Markera alla';
+$strSelectBinaryLog = 'Välj binär logg att visa';
+$strSelectFields = 'Välj fält (minst ett):';
+$strSelectForeignKey = 'Välj främmande nyckel';
+$strSelectNumRows = 'i fråga';
+$strSelectReferencedKey = 'Välj refererad nyckel';
+$strSelectTables = 'Välj tabeller';
+$strSend = 'Spara som fil';
+$strSent = 'Skickade';
+$strServerChoice = 'Serverval';
+$strServerNotResponding = 'Servern svarar inte';
+$strServer = 'Server';
+$strServers = 'Servrar';
+$strServerStatusDelayedInserts = 'Fördröjda infogningar';
+$strServerStatus = 'Körningsinformation';
+$strServerStatusUptime = 'Denna MySQL-server har körts i %s. Den startade den %s.';
+$strServerTabVariables = 'Variabler';
+$strServerTrafficNotes = '<b>Servertrafik</b>: Dessa tabeller visar statistik för nätverkstrafiken hos denna MySQL-server sedan den startade.';
+$strServerVars = 'Servervariabler och inställningar';
+$strServerVersion = 'Serverversion';
+$strSessionStartupErrorGeneral = 'Kan inte starta session utan fel. Kontrollera felmeddelanden i din PHP:s och/eller webbservers loggfil och konfigurera din PHP-installation korrekt.';
+$strSessionValue = 'Sessionsvärde';
+$strSetEnumVal = 'Om en fälttyp är "enum" eller "set", ange värden enligt följande format: \'a\',\'b\',\'c\'...<br />Om du behöver lägga till ett bakåtstreck ("\") eller ett enkelcitat ("\'") i värdena, skriv ett bakåtstreck före tecknet (t.ex. \'\\\\xyz\' eller \'a\\\'b\').';
+$strShowAll = 'Visa alla';
+$strShowColor = 'Visa färger';
+$strShowDatadictAs = 'Format för datalexikon';
+$strShowFullQueries = 'Visa fullständiga frågor';
+$strShowGrid = 'Visa rutnät';
+$strShowHideLeftMenu = 'Visa/Dölj vänster meny';
+$strShowingBookmark = 'Visar bokmärke';
+$strShowingPhp = 'Visar som PHP-kod';
+$strShowingRecords = 'Visar rader ';
+$strShowingSQL = 'Visar SQL-fråga';
+$strShowOpenTables = 'Visa öppna tabeller';
+$strShowPHPInfo = 'Visa PHP-information';
+$strShow = 'Visa';
+$strShowSlaveHosts = 'Visa slav-värdar';
+$strShowSlaveStatus = 'Visa slav-status';
+$strShowStatusBinlog_cache_disk_useDescr = 'Antalet transaktioner som använde den temporära binära loggcachen, men som överskred värdet binlog_cache_size och använde en temporär fil för att lagra satser från transaktionen.';
+$strShowStatusBinlog_cache_useDescr = 'Antalet transaktioner som använde den temporära binära loggcachen.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'Antalet temporära tabeller på disk skapade automatiskt av servern under utförande av satser. Om värdet Created_tmp_disk_tables är stort vill du kanske öka värdet tmp_table_size för att åstadkomma att temporära tabeller lagras i minne istället för på disk.';
+$strShowStatusCreated_tmp_filesDescr = 'Antalet temporära filer som mysqld har skapat.';
+$strShowStatusCreated_tmp_tablesDescr = 'Antalet temporära tabeller i minne skapade automatiskt av servern under utförande av satser.';
+$strShowStatusDelayed_errorsDescr = 'Antalet rader skrivna med INSERT DELAYED för vilka något fel uppstod (förmodligen dubblerad nyckel).';
+$strShowStatusDelayed_insert_threadsDescr = 'Antalet INSERT DELAYED-hanteringstrådar i bruk. Varje tabell på vilken man använder INSERT DELAYED får sin egen tråd.';
+$strShowStatusDelayed_writesDescr = 'Antalet skrivna rader med INSERT DELAYED.';
+$strShowStatusFlush_commandsDescr = 'Antalet utförda FLUSH-satser.';
+$strShowStatusHandler_commitDescr = 'Antalet interna COMMIT-satser.';
+$strShowStatusHandler_deleteDescr = 'Antalet gånger en rad togs bort från en tabell.';
+$strShowStatusHandler_discoverDescr = 'MySQL-servern kan fråga lagringsmotorn NDB Cluster om den känner till en tabell med ett givet namn. Detta kallas upptäckt. Handler_discover indikerar antalet gånger tabeller har upptäckts.';
+$strShowStatusHandler_read_firstDescr = 'Antalet gånger första posten lästes från ett index. Om detta värde är högt tyder det på att servern gör många helindex-avsökningar; t.ex. SELECT col1 FROM foo, under förutsättning att col1 är indexerad.';
+$strShowStatusHandler_read_keyDescr = 'Antalet efterfrågningar att läsa en rad baserat på en nyckel. Om detta värde är högt är det en bra indikation på att dina frågor och tabeller är riktigt indexerade.';
+$strShowStatusHandler_read_nextDescr = 'Antalet efterfrågningar att läsa den följande raden i nyckelordning. Detta värde ökas om du frågar en indexkolumn med en urvalsbegränsning eller om du gör en indexavsökning.';
+$strShowStatusHandler_read_prevDescr = 'Antalet efterfrågningar att läsa den föregående raden i nyckelordning. Denna läsmetod används huvudsakligen för att optimera ORDER BY ... DESC.';
+$strShowStatusHandler_read_rndDescr = 'Antalet efterfrågningar att läsa en rad baserat på en fix position. Detta värde är högt om du ställer många frågor som kräver sortering av resultatet. Du har förmodligen många frågor som kräver att MySQL avsöker hela tabeller eller du har föreningar som inte använder nycklar på rätt sätt.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Antalet efterfrågningar att läsa den följande raden i datafilen. Detta värde är högt om du gör många tabellavsökningar. I allmänhet antyder detta att dina tabeller inte är riktigt indexerade eller att dina frågor inte är skrivna för att dra nytta av de index du har.';
+$strShowStatusHandler_rollbackDescr = 'Antalet interna ROLLBACK-satser.';
+$strShowStatusHandler_updateDescr = 'Antalet efterfrågningar att uppdatera en rad i en tabell.';
+$strShowStatusHandler_writeDescr = 'Antalet efterfrågningar att lägga till en rad i en tabell.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Antalet sidor innehållande data (orena eller rena).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Antalet sidor för närvarande orena.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Antalet buffert-sidor som har efterfrågats om att bli rensade.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Antalet fria sidor.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'Antalet låsta sidor i InnoDB-buffert. Dessa är sidor som för närvarande läses eller skrivs eller som inte kan rensas eller tas bort av någon annan anledning.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Antalet upptagna sidor pga att de har blivit allokerade som administrativt extrautrymme för bl.a. radlås eller adaptivt hashindex. Detta värde kan också beräknas som Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total storlek på buffert, i sidor.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'Antalet "slumpmässiga" läsningar i förväg som InnoDB initierat. Detta sker när en fråga ska avsöka en stor del av en tabell men i slumpmässig ordning.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'Antalet sekventiella läsningar i förväg som InnoDB initierat. Detta sker när InnoDB gör en sekventiell avsökning av en hel tabell.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'Antalet logiska läsefterfrågningar som InnoDB har gjort.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'Antalet logiska läsningar som InnoDB inte kunde uppfylla från buffert och fick göra en enkelsidig läsning.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normalt sker skrivningar till InnoDB-bufferten i bakgrunden. Dock om det behövs läsas eller skapas en sida och inga rena sidor finns tillgängliga, så är det nödvändigt att vänta på att sidor rensas först. Denna räknare räknar fall med dessa väntanden. Om buffertstorleken var riktigt satt ska detta värde vara litet.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'Antalet skrivningar gjorda till InnoDB-bufferten.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Antalet fsync()-operationer hittills.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Nuvarande antal pågående fsync()-operationer.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Nuvarande antal pågående läsningar.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Nuvarande antal pågående skrivningar.';
+$strShowStatusInnodb_data_readDescr = 'Mängden data läst hittills, i bytes.';
+$strShowStatusInnodb_data_readsDescr = 'Totalt antal läsningar av data.';
+$strShowStatusInnodb_data_writesDescr = 'Totalt antal skrivningar av data.';
+$strShowStatusInnodb_data_writtenDescr = 'Mängden data skriven hittills, i bytes.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Antalet dubbelskrivningar som har utförts och antalet sidor som har skrivits för detta ändamål.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Antalet dubbelskrivningar som har utförts och antalet sidor som har skrivits för detta ändamål.';
+$strShowStatusInnodb_log_waitsDescr = 'Antalet väntanden pga loggbufferten var för liten och vi behövde vänta på att den skulle rensas innan kunde fortsätta.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Antalet efterfrågningar att skriva till logg.';
+$strShowStatusInnodb_log_writesDescr = 'Antalet fysiska skrivningar till loggfilen.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Antalet fsync()-skrivningar gjorda till loggfilen.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Antalet pågående fsync() av loggfil.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pågående skrivningar till loggfil.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Antalet bytes skrivna till loggfilen.';
+$strShowStatusInnodb_pages_createdDescr = 'Antalet skapade sidor.';
+$strShowStatusInnodb_page_sizeDescr = 'Den inkompilerade InnoDB-sidstorleken (standard 16kB). Många värden räknas i sidor; sidstorleken tillåter dem att enkelt omvandlas till bytes.';
+$strShowStatusInnodb_pages_readDescr = 'Antalet lästa sidor.';
+$strShowStatusInnodb_pages_writtenDescr = 'Antalet skrivna sidor.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Antalet radlås som för närvarande väntas på.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Genomsnittlig tid för att skaffa ett radlås, i millisekunder.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Total tid spenderad på att skaffa radlås, i millisekunder.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Maximal tid för att skaffa ett radlås, i millisekunder.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Antalet gånger ett radlås behövde väntas på.';
+$strShowStatusInnodb_rows_deletedDescr = 'Antalet rader borttagna från InnoDB-tabeller.';
+$strShowStatusInnodb_rows_insertedDescr = 'Antalet rader tillagda i InnoDB-tabeller.';
+$strShowStatusInnodb_rows_readDescr = 'Antalet rader lästa från InnoDB-tabeller.';
+$strShowStatusInnodb_rows_updatedDescr = 'Antalet rader uppdaterade i InnoDB-tabeller.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Antalet nyckelblock i nyckelcachen som har ändrats men inte ännu överförts till disk. Det brukade vara känt som Not_flushed_key_blocks.';
+$strShowStatusKey_blocks_unusedDescr = 'Antalet oanvända block i nyckelcachen. Du kan använda detta värde för att avgöra hur stor del av nyckelcachen som används.';
+$strShowStatusKey_blocks_usedDescr = 'Antalet använda block i nyckelcachen. Detta värde är ett högvattenmärke som indikerar maximala antalet block som någonsin använts vid ett tillfälle.';
+$strShowStatusKey_read_requestsDescr = 'Antalet efterfrågningar att läsa ett nyckelblock från cachen.';
+$strShowStatusKey_readsDescr = 'Antalet fysiska läsningar av ett nyckelblock från disk. Om värdet Key_reads är stort, då är förmodligen ditt värde key_buffer_size för litet. Cachens missfrekvens kan beräknas som Key_reads/Key_read_requests.';
+$strShowStatusKey_write_requestsDescr = 'Antalet efterfrågningar att skriva ett nyckelblock till cachen.';
+$strShowStatusKey_writesDescr = 'Antalet fysiska skrivningar av ett nyckelblock till disk.';
+$strShowStatusLast_query_costDescr = 'Den totala kostnaden för den senaste kompilerade frågan enligt beräkning av frågeoptimeraren. Användbart vid jämförelse av kostnad för olika frågesätt av samma fråga. Standardvärdet 0 innebär att ingen fråga har kompilerats ännu.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'Antalet rader som väntar på att skrivas i INSERT DELAYED-köer.';
+$strShowStatusOpened_tablesDescr = 'Antalet tabeller som har öppnats. Om antalet öppnade tabeller är stort är förmodligen ditt tabellcache-värde för litet.';
+$strShowStatusOpen_filesDescr = 'Antalet filer som är öppna.';
+$strShowStatusOpen_streamsDescr = 'Antalet strömmar som är öppna (används huvudsakligen för loggning).';
+$strShowStatusOpen_tablesDescr = 'Antalet tabeller som är öppna.';
+$strShowStatusQcache_free_blocksDescr = 'Antalet fria minnesblock i frågecachen.';
+$strShowStatusQcache_free_memoryDescr = 'Mängden fritt minne för frågecache.';
+$strShowStatusQcache_hitsDescr = 'Antalet cache-träffar.';
+$strShowStatusQcache_insertsDescr = 'Antalet frågor tillagda i cachen.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Antalet frågor som har tagits bort från cachen för att frigöra minne för cachning av nya frågor. Denna information kan hjälpa dig att ställa in storleken på frågecachen. Frågecachen använder strategin minst nyligen använd (LRU) för att bestämma vilka frågor som ska tas bort från cachen.';
+$strShowStatusQcache_not_cachedDescr = 'Antalet icke-cachade frågor (inte möjliga att cacha eller inte cachade pga inställningen query_cache_type).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Antalet frågor registrerade i cachen.';
+$strShowStatusQcache_total_blocksDescr = 'Totala antalet block i frågecachen.';
+$strShowStatusReset = 'Återställ';
+$strShowStatusRpl_statusDescr = 'Status för felsäker replikering (ännu inte implementerat).';
+$strShowStatusSelect_full_joinDescr = 'Antalet föreningar som inte använder index. Om detta värde inte är 0, bör du noggrant kontrollera index för dina tabeller.';
+$strShowStatusSelect_full_range_joinDescr = 'Antalet föreningar som använde en urvalssökning på en referenstabell.';
+$strShowStatusSelect_range_checkDescr = 'Antalet föreningar utan nycklar som kontrollerar nyckelanvändning efter varje rad. (Om detta värde inte är 0, bör du noggrant kontrollera index för dina tabeller.)';
+$strShowStatusSelect_rangeDescr = 'Antalet föreningar som använde urval på den första tabellen. (Det är normalt inte kritiskt även om detta är stort.)';
+$strShowStatusSelect_scanDescr = 'Antalet föreningar som gjorde en fullständig avsökning av första tabellen.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Antalet temporära tabeller för närvarande öppna av slavens SQL-tråd.';
+$strShowStatusSlave_retried_transactionsDescr = 'Totalt (sedan start) antal gånger som replikeringsslavens SQL-tråd har omprövat transaktioner.';
+$strShowStatusSlave_runningDescr = 'Denna är ON ifall denna server är en slav som är förbunden till en huvudserver.';
+$strShowStatusSlow_launch_threadsDescr = 'Antalet frågor som har tagit mer än slow_launch_time sekunder att skapa.';
+$strShowStatusSlow_queriesDescr = 'Antalet frågor som har tagit mer än long_query_time sekunder.';
+$strShowStatusSort_merge_passesDescr = 'Antalet sammanslagningar som sorteringsalgoritmen har behövt utföra. Om detta värde är stort bör du överväga att öka värdet i systemvariabeln sort_buffer_size.';
+$strShowStatusSort_rangeDescr = 'Antalet sorteringar som gjordes med urval.';
+$strShowStatusSort_rowsDescr = 'Antalet sorterade rader.';
+$strShowStatusSort_scanDescr = 'Antalet sorteringar som har gjorts genom avsökning av tabellen.';
+$strShowStatusTable_locks_immediateDescr = 'Antalet gånger som ett tabellås förvärvades omedelbart.';
+$strShowStatusTable_locks_waitedDescr = 'Antalet gånger som ett tabellås inte kunde förvärvas omedelbart och en väntan var nödvändig. Om detta värde är högt och du har prestandaproblem bör du först optimera dina frågor och antingen dela upp din tabell eller tabeller eller använda replikering.';
+$strShowStatusThreads_cachedDescr = 'Antalet trådar i trådcachen. Cachens träffrekvens kan beräknas som Threads_created/Connections. Om detta värde är rött bör du öka värdet thread_cache_size.';
+$strShowStatusThreads_connectedDescr = 'Antalet för närvarande öppna förbindelser.';
+$strShowStatusThreads_createdDescr = 'Antalet trådar skapade för att hantera förbindelser. Om värdet Threads_created är stort, vill du kanske öka värdet thread_cache_size. (Normalt ger detta inte någon märkbar prestandaförbättring om du har en bra trådimplementering.)';
+$strShowStatusThreads_runningDescr = 'Antalet trådar som inte är vilande.';
+$strShowTableDimension = 'Visa tabellers dimensioner';
+$strShowTables = 'Visa tabeller';
+$strShowThisQuery = ' Visa frågan här igen ';
+$strSimplifiedChinese = 'Förenklad kinesiska';
+$strSingly = '(ensam)';
+$strSize = 'Storlek';
+$strSkipQueries = 'Antal poster (rader) att hoppa över från början';
+$strSlovak = 'Slovakiska';
+$strSlovenian = 'Slovenska';
+$strSmallBigAll = 'Små/stora alla';
+$strSnapToGrid = 'Fäst vid rutnät';
+$strSocketProblem = '(eller den lokala MySQL-serverns socket är inte korrekt konfigurerad)';
+$strSortByKey = 'Sortera efter nyckel';
+$strSorting = 'Sortering';
+$strSort = 'Sortering';
+$strSpaceUsage = 'Utrymmesanvändning';
+$strSpanish = 'Spanska';
+$strSplitWordsWithSpace = 'Ord separeras med mellanslag (" ").';
+$strSQLCompatibility = 'SQL-kompatibilitet';
+$strSQLExportType = 'Export-typ';
+$strSQLParserBugMessage = 'Det är möjligt att du har hittat en bugg i SQL-analysatorn. Var god granska din fråga noga och kontrollera att citationstecknen är korrekta och matchar varandra. En annan möjlig felorsak kan vara att du överför en fil med binärkod som inte ligger inom citationstecken. Du kan även testa din fråga i MySQL:s kommandoradsgränssnitt. Felmeddelandet från MySQL-servern nedan, om det finns något, kan också hjälpa dig att analysera problemet. Om du fortfarande har problem eller om SQL-analysatorn misslyckas när kommandoradsgränssnittet lyckas, var vänlig reducera din inmatning av SQL-frågor till den enda fråga som orsakar problem och skicka en buggrapport med datastycket i URKLIPP-sektionen nedan:';
+$strSQLParserUserError = 'Det verkar vara ett fel i din SQL-fråga. Felmeddelandet från MySQL-servern nedan, om det finns något, kan också hjälpa dig att analysera problemet.';
+$strSQLQuery = 'SQL-fråga';
+$strSQLResult = 'SQL-resultat';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Ogiltig identifierare';
+$strSQPBugUnclosedQuote = 'Oavslutat citat';
+$strSQPBugUnknownPunctuation = 'Okänd interpunktion i sträng';
+$strStandInStructureForView = 'Ersättningsstruktur för visning';
+$strStatCheckTime = 'Senaste kontroll';
+$strStatCreateTime = 'Skapades';
+$strStatement = 'Uppgift';
+$strStatisticsOverrun = 'På en upptagen server kan byte-räknare spåra ur, varför denna statistik som rapporterats från MySQL-servern kan vara felaktig.';
+$strStatUpdateTime = 'Senaste uppdatering';
+$strStatus = 'Status';
+$strStorageEngines = 'Lagringsmotorer';
+$strStorageEngine = 'Lagringsmotor';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Struktur och data';
+$strStrucExcelCSV = 'CSV för MS Excel';
+$strStrucNativeExcel = 'Naturlig MS Excel-data';
+$strStrucOnly = 'Enbart struktur';
+$strStructPropose = 'Föreslå tabellstruktur';
+$strStructureForView = 'Struktur för visning';
+$strStructure = 'Struktur';
+$strSubmit = 'Sänd';
+$strSuccess = 'Din SQL-fråga utfördes korrekt';
+$strSuhosin = 'Server körs med Suhosin. Se %sdokumentation%s för möjliga frågor.';
+$strSum = 'Summa';
+$strSwedish = 'Svensk';
+$strSwekeyAuthenticating = 'Autenticiering pågår...';
+$strSwekeyAuthFailed = 'Hårdvaruautenticiering misslyckades';
+$strSwekeyNoKeyId = 'Filen %s innehåller inget nyckelid';
+$strSwekeyNoKey = 'Giltig autenticieringsnyckel saknas';
+$strSwitchToDatabase = 'Byt till kopierad databas';
+$strSwitchToTable = 'Byt till kopierad tabell';
+
+$strTableAlreadyExists = 'Tabell %s finns redan!';
+$strTableAlteredSuccessfully = 'Tabell %1$s har ändrats';
+$strTableComments = 'Tabellkommentarer';
+$strTableEmpty = 'Tabellnamnet är tomt!';
+$strTableHasBeenCreated = 'Tabell %1$s har skapats.';
+$strTableHasBeenDropped = 'Tabellen %s har tagits bort';
+$strTableHasBeenEmptied = 'Tabellen %s har tömts';
+$strTableHasBeenFlushed = 'Tabellen %s har rensats';
+$strTableIsEmpty = 'Tabellen verkar vara tom!';
+$strTableMaintenance = 'Tabellunderhåll';
+$strTableName = 'Tabellnamn';
+$strTableOfContents = 'Innehållsförteckning';
+$strTableOptions = 'Tabellalternativ';
+$strTables = '%s tabell(er)';
+$strTableStructure = 'Struktur för tabell';
+$strTable = 'Tabell';
+$strTakeIt = 'använd detta';
+$strTblPrivileges = 'Tabellspecifika privilegier';
+$strTempData = 'Temporära data';
+$strTextAreaLength = ' På grund av dess längd,<br /> kanske detta fält inte kan redigeras ';
+$strTexyText = 'Texy! text';
+$strThai = 'Thailändsk';
+$strThemeDefaultNotFound = 'Standardtema %s hittades inte!';
+$strThemeNoPreviewAvailable = 'Ingen förhandsgranskning tillgänglig.';
+$strThemeNotFound = 'Tema %s hittades inte!';
+$strThemeNoValidImgPath = 'Ingen giltig sökväg till bilder för tema %s hittades!';
+$strThemePathNotFound = 'Temats sökväg för tema %s hittades inte!';
+$strTheme = 'Tema / Stil';
+$strThisHost = 'Denna värd';
+$strThreads = 'Trådar';
+$strThreadSuccessfullyKilled = 'Tråd %s dödades med framgång.';
+$strTimeoutInfo = 'Tidsbegränsningen överskreds vid föregående import. Efter återupptagning av importen kommer den fortsätta från position %d.';
+$strTimeoutNothingParsed = 'Dock blev inga data bearbetade i senaste körningen. Detta betyder vanligtvis att phpMyAdmin inte kan slutföra denna import såvida du inte ökar PHP:s tidsbegränsningar.';
+$strTimeoutPassed = 'Skriptets tidsbegränsning har överskridits. Om du vill slutföra importen, importera samma fil igen så kommer importen att återupptas.';
+$strTime = 'Tid';
+$strToFromPage = 'till/från sida';
+$strToggleScratchboard = 'Visa/dölj skisstavla';
+$strToggleSmallBig = 'Växla liten/stor';
+$strToSelectRelation = 'För att välja relation, klicka :';
+$strTotal = 'totalt';
+$strTotalUC = 'Totalt';
+$strTraditionalChinese = 'Traditionell kinesiska';
+$strTraditionalSpanish = 'Traditionell Spanska';
+$strTraffic = 'Trafik';
+$strTransactionCoordinator = 'Transaktionssamordnare';
+$strTransformation_application_octetstream__download = 'Visar en länk för att ladda ner fältets binära data. Du kan använda första parametern för att ange filnamnet eller använda den andra parametern för att ange fältnamnet för en tabellkolumn som innehåller filnamn. Om du anger andra parametern så måste första parametern sättas till en tom sträng.';
+$strTransformation_application_octetstream__hex = 'Visar hexadecimal representation av data. Valfri första parameter anger hur ofta mellanslag läggs till (standardvärde: 2 tecken).';
+$strTransformation_image_jpeg__inline = 'Visar en klickbar tumnagelbild. Parametrarna är maximal bredd och höjd i pixlar. Bildens ursprungliga proportioner bibehålls.';
+$strTransformation_image_jpeg__link = 'Visar en länk för att ladda ner denna bild.';
+$strTransformation_image_png__inline = 'Se image/jpeg: inline';
+$strTransformation_text_plain__dateformat = 'Visar en TIME, TIMESTAMP, DATETIME eller numerisk unix tidsstämpel som ett formaterat datum. Första parametern är förskjutning (i timmar) som kommer adderas till tidsstämpeln (standardvärde: 0). Använd andra parametern för att ange ett annorlunda datum/tid-format. Tredje parametern avgör ifall du vill se lokalt datum eller UTC (ange "local" eller "utc"). Enligt detta har datumformatet olika värden - för "local" se dokumentationen för PHP:s funktion strftime() och för "utc" se funktionen gmdate().';
+$strTransformation_text_plain__external = 'ENDAST LINUX: Startar en extern applikation och skickar fältdata till den via standard-indata. Returnerar applikationens standard-utdata. Standard är Tidy, för att snygga till HTML-kod. Av säkerhetsskäl måste du manuellt redigera filen libraries/transformations/text_plain__external.inc.php och infoga verktygen du vill tillåta ska få köras. Den första parametern är då numret för det program som du vill använda och den andra parametern är parametrarna för programmet. Om den tredje parametern sätts till 1 kommer utdata konverteras mha htmlspecialchars() (standardvärde: 1). Om den fjärde parametern sätts till 1 kommer radbrytning att undvikas så att all utdata kommer att visas på en rad (standardvärde: 1).';
+$strTransformation_text_plain__formatted = 'Visar innehållet i fältet som det är, utan att köra det genom htmlspecialchars(). Det innebär att fältet antas innehålla korrekt HTML-kod.';
+$strTransformation_text_plain__imagelink = 'Visar en bild och en länk; fältet innehåller filnamnet. Första parametern är ett URL-prefix såsom "http://www.example.com/". Andra och tredje parametern är bredden och höjden i pixlar.';
+$strTransformation_text_plain__link = 'Visar en länk; fältet innehåller filnamnet. Första parametern är ett URL-prefix såsom "http://www.example.com/". Andra parametern är en titel för länken.';
+$strTransformation_text_plain__sql = 'Formaterar text som en SQL-fråga med markerade satser.';
+$strTransformation_text_plain__substr = 'Visar del av en sträng. Första parametern är antalet tecken att hoppa över från början på strängen (standardvärde: 0). Andra parametern är antalet tecken som ska returneras (standardvärde: till slutet på strängen). Den tredje parametern är en sträng som läggs till i slutet och/eller början när trunkering utförs (standardvärde: "...").';
+$strTriggers = 'Utlösare';
+$strTruncateQueries = 'Korta av visade frågor';
+$strTurkish = 'Turkisk';
+$strType = 'Typ';
+
+$strUkrainian = 'Ukrainsk';
+$strUncheckAll = 'Avmarkera alla';
+$strUnicode = 'Unicode';
+$strUnique = 'Unik';
+$strUnknown = 'okänd';
+$strUnselectAll = 'Avmarkera alla';
+$strUnsupportedCompressionDetected = 'Du försökta ladda en fil med komprimering (%s) som inte stöds. Antingen är stöd för det inte implementerat eller inaktiverat i din konfiguration.';
+$strUpdatePrivMessage = 'Du har uppdaterat privilegierna för %s.';
+$strUpdateProfileMessage = 'Profilen har uppdaterats.';
+$strUpdateQuery = 'Uppdatera fråga';
+$strUpdComTab = 'Se dokumentationen för uppdatering av din tabell column_comments';
+$strUpgrade = 'Du bör uppgradera till %s %s eller senare.';
+$strUploadErrorCantWrite = 'Misslyckades att skriva fil till disk.';
+$strUploadErrorExtension = 'Filuppladdning stoppades av tillägg.';
+$strUploadErrorFormSize = 'Den uppladdade filen överskrider direktivet MAX_FILE_SIZE som specificerades i HTML-formuläret.';
+$strUploadErrorIniSize = 'Den uppladdade filen överskrider direktivet upload_max_filesize i php.ini.';
+$strUploadErrorNoTempDir = 'Saknar en temporär katalog.';
+$strUploadErrorPartial = 'Den uppladdade filen var endast delvis uplladdad.';
+$strUploadErrorUnknown = 'Okänt fel i filuppladdning.';
+$strUploadLimit = 'Du försökte förmodligen ladda upp en för stor fil. Se %sdokumentationen%s för metoder att gå runt denna begränsning.';
+$strUploadsNotAllowed = 'Filuppladdningar är inte tillåtna på denna server.';
+$strUsage = 'Användning';
+$strUseBackquotes = 'Använd bakåtcitat runt tabell- och fältnamn';
+$strUseHostTable = 'Använd värdtabell';
+$strUserAlreadyExists = 'Användaren %s finns redan!';
+$strUserEmpty = 'Användarnamnet är tomt!';
+$strUserName = 'Användarnamn';
+$strUserNotFound = 'Den markerade användaren kunde inte hittas i privilegiumtabellen.';
+$strUserOverview = 'Användaröversikt';
+$strUsersDeleted = 'De markerade användarna har tagits bort.';
+$strUsersHavingAccessToDb = 'Användare som har tillgång till &quot;%s&quot;';
+$strUser = 'Användare';
+$strUseTabKey = 'Använd TAB-tangenten för att flytta från värde till värde, eller CTRL+pil för att flytta vart som helst';
+$strUseTables = 'Använd tabeller';
+$strUseTextField = 'Använd textfältet';
+$strUseThisValue = 'Använd detta värde';
+
+$strValidateSQL = 'Validera SQL-kod';
+$strValidatorError = 'SQL-validatorn kunde inte initieras. Kontrollera om du har installerat de nödvändiga PHP-tilläggen enligt %sdokumentationen%s.';
+$strValue = 'Värde';
+$strVar = 'Variabel';
+$strVersionInformation = 'Versionsinformation';
+$strViewDumpDatabases = 'Visa SQL-satser för databaser';
+$strViewDumpDB = 'Visa SQL-satser för databasen';
+$strViewDump = 'Visa SQL-satser för tabellen';
+$strViewHasAtLeast = 'Denna vy har åtminstone detta antal rader. Se %sdokumentation%s.';
+$strViewHasBeenDropped = 'Vyn %s har tagits bort';
+$strViewName = 'Namn på vy';
+$strView = 'Vy';
+
+$strWebServerUploadDirectoryError = 'Katalogen som du konfigurerat för uppladdning kan inte nås';
+$strWebServerUploadDirectory = 'Uppladdningskatalog på webbserver';
+$strWebServer = 'Webbserver';
+$strWelcome = 'Välkommen till %s';
+$strWestEuropean = 'Västeuropeisk';
+$strWiki = 'Wiki';
+$strWildcard = 'jokertecken';
+$strWindowNotFound = 'Målfönstret kunde inte uppdateras. Orsaken kan vara att du stängt föräldrafönstret eller att din webbläsares säkerhetsinställningar blockerar uppdateringar mellan fönster.';
+$strWithChecked = 'Med markerade:';
+$strWriteRequests = 'Skrivefterfrågningar';
+$strWrongUser = 'Fel användarnamn/lösenord. Åtkomst nekad.';
+
+$strXML = 'XML';
+
+$strYes = 'Ja';
+
+$strZeroRemovesTheLimit = 'Anm: Genom att sätta dessa alternativ till 0 (noll) tas begränsningarna bort.';
+$strZip = '"zippad"';
+
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/tatarish-utf-8.inc.php b/lang/tatarish-utf-8.inc.php
new file mode 100644
index 0000000000..02ee8cc4fc
--- /dev/null
+++ b/lang/tatarish-utf-8.inc.php
@@ -0,0 +1,1458 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('Bayt', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Ykş', 'Dşm', 'Sşm', 'Çrş', 'Pnc', 'Cmğ', 'Şmb');
+$month = array('Ğın', 'Feb', 'Mar', 'Äpr', 'May', 'Yün', 'Yül', 'Aug', 'Sen', 'Ökt', 'Nöy', 'Dek');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%Y.%m.%d, %H:%M';
+$timespanfmt = '%s kön, %s säğät, %s minut ta %s sekund';
+
+$strAbortedClients = 'Özderelde';
+$strAccessDeniedExplanation = 'phpMyAdmin bu MySQL servergä totaşılıp qarağaç, server bu totaşıluın özep quydı. Xäzer, "config.inc.php" biremendä kertelgän sanaqisem/ireşisem/sersüzlär tikäserep, alarnı MySQL idäräçese birgän mäğlümät belän çağıştırıp qarísı qala.';
+$strAccessDenied = 'İreşep Bulmadı';
+$strAction = 'Eş';
+$strAddAutoIncrement = '"AUTO_INCREMENT" bäyäsen östise';
+$strAddClause = '%s östäw';
+$strAddConstraints = 'Çikläwlär östise';
+$strAddDeleteColumn = 'Add/Delete Field Columns';
+$strAddDeleteRow = 'Add/Delete Criteria Row';
+$strAddFields = '%s alan östäw';
+$strAddHeaderComment = 'Başlıqqa östämä açıqlama östäw (yullar \\n belän ayırıla)';
+$strAddIntoComments = 'Açıqlama eçenä östise';
+$strAddNewField = 'Yaña alan östäw';
+$strAddPrivilegesOnDb = 'Kiläse biremlek öçen xoquqlar östäw';
+$strAddPrivilegesOnTbl = 'Kiläse tüşämä öçen xoquqlar östäw';
+$strAddSearchConditions = 'Ezläw şartın östäw ("WHERE" eçtälege):';
+$strAddToIndex = 'Açqıçqa tağın &nbsp;%s&nbsp;alan östise';
+$strAddUserMessage = 'Yana qullanuçı östälände.';
+$strAddUser = 'Yaña qullanuçı östäw';
+$strAdministration = 'İdärä';
+$strAfterInsertBack = 'Aldağı bitkä qaytu';
+$strAfterInsertNewInsert = 'Tağın ber yazma östäw';
+$strAfterInsertNext = 'Kiläse yazma üzgärtü';
+$strAfterInsertSame = 'Bu bitkä kire qaytası';
+$strAfter = '%s artınnan';
+$strAll = 'Barısı';
+$strAllTableSameWidth = 'display all Tables with same width?';
+$strAlterOrderBy = 'Tüşämä eçtälegen bolay tezäse';
+$strAnalyzeTable = 'Tüşämä centekläw';
+$strAndThen = ', şunnan soñ';
+$strAnd = 'Wä';
+$strAnIndex = '"%s" öçen ber açqıç qorıldı';
+$strAnyHost = 'Bar bulğan host';
+$strAny = 'Törle';
+$strAnyUser = 'Törle qullanuçı';
+$strApproximateCount = 'Törle buluı bar. YBS 3.11 qarísı';
+$strAPrimaryKey = '"%s" öçen töp açqıç qorıldı';
+$strArabic = 'Çäräpçä';
+$strArmenian = 'Ärmänçä';
+$strAscending = 'Artıp';
+$strAtBeginningOfTable = 'Tüşämä Başına';
+$strAtEndOfTable = 'Tüşämä azağına';
+$strAttr = 'Üzençälek';
+$strAutomaticLayout = 'Zihenle urnaştıru';
+
+$strBack = 'Kire';
+$strBaltic = 'Baltiq';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Binar';
+$strBinaryDoNotEdit = 'Binar - üzgärtmäslek';
+$strBinaryLog = 'Binar köndälek';
+$strBinLogEventType = 'Buldıq töre';
+$strBinLogInfo = 'Beleşmä';
+$strBinLogName = 'Köndälek adı';
+$strBinLogOriginalPosition = 'Tärtip buyınça urın';
+$strBinLogPosition = 'Urın';
+$strBinLogServerId = 'Server ID\'e';
+$strBookmarkAllUsers = 'Bu tamğanı bar qullanuçığa da ireşüle itäse';
+$strBookmarkCreated = '%s digän bitbilge yaratıldı';
+$strBookmarkDeleted = 'Tamğa beterelde.';
+$strBookmarkLabel = 'Yarlıq';
+$strBookmarkQuery = 'Tamğalanğan SQL-soraw';
+$strBookmarkReplace = 'Şulay uq atalğan bitbilgelärne almaştırası';
+$strBookmarkThis = 'Bu SQL-sorawğa tamğa quy';
+$strBookmarkView = 'Kürep kenä';
+$strBrowseForeignValues = 'Browse foreign values';
+$strBrowse = 'Küzätü';
+$strBufferPoolActivity = 'Bufer Pul Terelege';
+$strBufferPool = 'Bufer Pulı';
+$strBufferPoolUsage = 'Bufer Pul Totılğanlığı';
+$strBufferReadMissesInPercent = 'Uñışsız uqu, % öçen';
+$strBufferReadMisses = 'Uñışsız uqu';
+$strBufferWriteWaitsInPercent = 'Yazğanda kötterü, % öçen';
+$strBufferWriteWaits = 'Yazğanda kötterü';
+$strBulgarian = 'Balgarça';
+$strBusyPages = 'Eştä bit';
+$strBzip = '"bziple"';
+
+$strCalendar = 'Täqwim';
+$strCanNotLoadImportPlugins = 'Totaşmalar yökläp bulmadı, quyılışın tikşerep alası!';
+$strCannotLogin = 'MySQL servergä totaşılıp bulmadı';
+$strCantLoadRecodeIconv = 'Can not load iconv or recode extension needed for charset conversion, configure php to allow using these extensions or disable charset conversion in phpMyAdmin.';
+$strCantLoad = '"%s" yöklämäsen cibärep bulmadı,<br />PHP Caylawın tikşerçe';
+$strCantRenameIdxToPrimary = 'Açqıçnı "PRIMARY" itep atap bulmí!';
+$strCantUseRecodeIconv = 'Can not use iconv nor libiconv nor recode_string function while extension reports to be loaded. Check your php configuration.';
+$strCardinality = 'Qabatlanu sanı';
+$strCaseInsensitive = 'keşe/olı sizmiçä';
+$strCaseSensitive = 'keşe/olı sizep';
+$strCentralEuropean = 'Üzäk Awrupı';
+$strChangeCopyModeCopy = '... keep the old one.';
+$strChangeCopyMode = 'Create a new user with the same privileges and ...';
+$strChangeCopyModeDeleteAndReload = ' ... delete the old one from the user tables and reload the privileges afterwards.';
+$strChangeCopyModeJustDelete = ' ... delete the old one from the user tables.';
+$strChangeCopyModeRevoke = ' ... revoke all active privileges from the old one and delete it afterwards.';
+$strChangeCopyUser = 'Change Login Information / Copy User';
+$strChangeDisplay = 'Kürsätäse Alan saylaw';
+$strChangePassword = 'Sersüz üzgärtü';
+$strChange = 'Üzgärt';
+$strCharset = 'Bilgelämä';
+$strCharsetOfFile = 'Şul biremneñ bilgelämäse:';
+$strCharsetsAndCollations = 'Bilgelämä &amp; Tezü cayı';
+$strCharsets = 'Bilgelämä';
+$strCheckAll = 'Saylap Beter';
+$strCheckOverhead = 'Check overheaded';
+$strCheckPrivsLong = '"%s" biremlege öçen xoquqlar tikşerü.';
+$strCheckPrivs = 'Xoquqlar tikşerü';
+$strCheckTable = 'Tüşämä tikşerü';
+$strChoosePage = 'Tözätü öçen berär bit sayla';
+$strColComFeat = 'Buy Açıqlamasın Kürsätäse';
+$strCollation = 'Tezü cayı';
+$strColumnNames = 'Alan iseme';
+$strColumnPrivileges = 'Berär bağana öçen xoquqlar';
+$strCommand = 'Ämer';
+$strComments = 'Açıqlama';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 öçen yaraqlı';
+$strCompleteInserts = 'Tulayım östise';
+$strCompression = 'Qısu';
+$strConfigDefaultFileError = 'Töp köyläneşen yökläp bulmadı: "%1$s"';
+$strConfigFileError = 'phpMyAdmin was unable to read your configuration file!<br />This might happen if php finds a parse error in it or php cannot find the file.<br />Please call the configuration file directly using the link below and read the php error message(s) that you receive. In most cases a quote or a semicolon is missing somewhere.<br />If you receive a blank page, everything is fine.';
+$strConfigureTableCoord = 'Please configure the coordinates for table %s';
+$strConnectionError = 'Totaşa almím: yaraqsız köyläwlär.';
+$strConnections = 'Totaşular';
+$strConstraintsForDumped = 'Constraints for dumped tables';
+$strConstraintsForTable = 'Constraints for table';
+$strCookiesRequired = 'Cookies must be enabled past this point.';
+$strCopyDatabaseOK = 'Database %s has been copied to %s';
+$strCopy = 'Kübäyt';
+$strCopyTable = 'Boña kübäyt (biremlek<b>.</b>tüşämä):';
+$strCopyTableOK = 'Table %s has been copied to %s.';
+$strCopyTableSameNames = 'Can\'t copy table to same one!';
+$strCouldNotKill = 'phpMyAdmin %s ceben üterä almadı. Bälki ul yabılğan bulğan da inde.';
+$strCreateDatabaseBeforeCopying = 'Kübäytü aldınnan CREATE DATABASE östise';
+$strCreateIndex = '%s alannan tezeş yaratu';
+$strCreateIndexTopic = 'Yaña tezeş yaratu';
+$strCreateNewDatabase = 'Yaña biremlek yaratu';
+$strCreateNewTable = '%s biremlegendä yaña tüşämä yaratu';
+$strCreatePage = 'Yaña Bit yaratu';
+$strCreatePdfFeat = 'PDF yaratu';
+$strCreateUserDatabaseNone = 'Yuq';
+$strCreateUserDatabase = 'Qullanuçı biremlege';
+$strCreate = 'Yarat';
+$strCreationDates = 'Yaratılu/Üzgärelü/Tikşerü çaqları';
+$strCriteria = 'Şart';
+$strCroatian = 'Kroatça';
+$strCSV = 'CSV';
+$strCyrillic = 'Urısälif';
+$strCzech = 'Çexçä';
+$strCzechSlovak = 'Çex-Slovak';
+
+$strDanish = 'Dança';
+$strDatabase = 'Biremlek';
+$strDatabaseEmpty = 'Biremlek iseme buş!';
+$strDatabaseExportOptions = 'Biremlek saqlaw köyläneşe';
+$strDatabaseHasBeenDropped = '%s biremlege beterelde.';
+$strDatabases = 'Biremleklär';
+$strDatabasesDropped = '"%s" biremlegen beterü uñışlı uzdı.';
+$strDatabasesStats = 'Biremlek nöfüsläre';
+$strDatabasesStatsDisable = 'Nöfüse Sünderü';
+$strDatabasesStatsEnable = 'Nöfüsne Cibärü';
+$strDatabasesStatsHeavyTraffic = 'Note: Enabling the Database statistics here might cause heavy traffic between the webserver and the MySQL one.';
+$strDataDict = 'Eçtälek Süzlege';
+$strData = 'Eçtälek';
+$strDataOnly = 'Eçtälegen genä';
+$strDataPages = 'Eçtälekle bitlär';
+$strDBComment = 'Biremlek açıqlaması:';
+$strDBCopy = 'Biremlekne boña kübäyt';
+$strDbPrivileges = 'Berär biremlekkä qağılışlı xoquqlar';
+$strDBRename = 'Biremlekne bolay atap quy';
+$strDbSpecific = 'berär biremlekkä qağılışlı';
+$strDefaultEngine = 'Bu MySQL-serverdä %s digän saqlaw ısulı töp bularaq saylanğan.';
+$strDefault = 'Töpcay';
+$strDefaultValueHelp = 'Töpcay bäyäsen kertkändä, kireawışlar qullanmasqa, cäyä eçenä da salmasqa. Bolayraq kertäse: a';
+$strDefragment = 'Tüşämä kisäklären berläşterü';
+$strDelayedInserts = 'Kötterep östise';
+$strDeleteAndFlush = 'Betergäç, xoquqlarnı yañadan yöklise.';
+$strDeleteAndFlushDescr = 'This is the cleanest way, but reloading the privileges may take a while.';
+$strDeleted = 'Bu yazma salınğan buldı';
+$strDeleteNoUsersSelected = 'Beteräse qullanuçılar saylanmağan!';
+$strDelete = 'Sal';
+$strDeleting = '"%s" Beterü';
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?';
+$strDescending = 'Kimep';
+$strDescription = 'Açıqlama';
+$strDictionary = 'süzlek';
+$strDirtyPages = 'Üzgärtelgän bit';
+$strDisabled = 'Sünek';
+$strDisableForeignChecks = 'Yat tezeş tikşerüen sünderep';
+$strDisplayFeat = 'Mömkinleklär Kürsätü';
+$strDisplayOrder = 'Kürsätü tärtibe:';
+$strDisplayPDF = 'PDF schema kürsätü';
+$strDoAQuery = '"Ürnäk buyınça soraw" eşkärtü (almaştırma: "%")';
+$strDocu = 'Qullanma';
+$strDoYouReally = 'Sin çınlap ta bonı eşlärgä teliseñme: ';
+$strDrop = 'Beter';
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!';
+$strDropUsersDb = 'Bu qullanuçılar kebek atalğan biremleklärne beteräse.';
+$strDumpingData = 'Tüşämä eçtälegen çığaru';
+$strDumpSaved = 'Eçtälege "%s" biremenä saqlandı.';
+$strDumpXRows = 'Eçtälek: %s kerem, #%s keremnän başlap.';
+$strDynamic = 'üzgärüçän';
+
+$strEditPDFPages = 'PDF-Bitlär Üzgärtü';
+$strEditPrivileges = 'Xoquqlar Üzgärtü';
+$strEdit = 'Tözätü';
+$strEffective = 'Uñışlı';
+$strEmpty = 'Buşat';
+$strEmptyResultSet = 'MySQL sorawğa buş cawap, yäğni nül kertem qaytarttı.';
+$strEnabled = 'Açıq';
+$strEncloseInTransaction = 'Transaksi eçendä ütkärep';
+$strEnd = 'Azaq';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEngineAvailable = 'Bu MySQL serverdä %s bar.';
+$strEngineDisabled = 'Bu MySQL serverdä %s sünderelgän bulğan.';
+$strEngines = 'Engine';
+$strEngineUnsupported = 'Bu MySQL server %s saqlaw enginen totmí.';
+$strEnglishPrivileges = ' Beläse: MySQL\'da xoquq adı İnglizçä kertelä!';
+$strEnglish = 'İnglizçä';
+$strErrorInZipFile = 'ZIP-tuplama eçendä xata:';
+$strErrorRenamingTable = '%1$s atlı tüşämä adın %2$s itep üzgärtep bulmadı';
+$strError = 'Xata';
+$strEscapeWildcards = '_ belän % bilgelären şul kileş kenä qullanu öçen \ belän ütkärergä kiräk';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estonça';
+$strExcelEdition = 'Excel söreme';
+$strExecuteBookmarked = 'Tamğalanğan soraw cibärü';
+$strExplain = 'SQL Centekläw';
+$strExport = 'Export';
+$strExtendedInserts = 'Kiñäytep östise';
+$strExtra = 'Östämä';
+
+$strFailedAttempts = 'Failed attempts';
+$strField = 'Alan';
+$strFieldHasBeenDropped = '%s isemle alan beterelde';
+$strFields = 'Alan';
+$strFieldsEnclosedBy = 'Alan yaptıruçı bilge';
+$strFieldsEscapedBy = 'Alan uzdıru bilgese';
+$strFieldsTerminatedBy = 'Alan arasında bilge';
+$strFileAlreadyExists = 'Serverdä %s digän birem bar inde, adın almaştırası, yä inde östän yazu tamğasın açası qala.';
+$strFileCouldNotBeRead = 'Birem uqıp bulmadı';
+$strFileNameTemplate = 'Birem adınıñ tözeleşe';
+$strFileNameTemplateDescriptionDatabase = 'biremlek adı';
+$strFileNameTemplateDescriptionServer = 'server adı';
+$strFileNameTemplateDescriptionTable = 'tüşämä adı';
+$strFileNameTemplateRemember = 'tözeleşen yatla';
+$strFileToImport = 'Yöklise birem';
+$strFixed = 'berketelgän';
+$strFlushPrivilegesNote = 'Beläse: MySQL-serverneñ eçke tüşämä eçennän alınğan xoquqlar bu. Server qullana torğan xoquqlar qul aşa üzgärtelgän bulsa, bu tüşämä eçtälege alardan ayırıla ala. Andí çaqlarda, dawam itü aldınnan, %sxoquqlarnı qabat yökläp alası%s.';
+$strFlushQueryCache = 'Soraw alxäteren awdar';
+$strFlushTables = 'Tüşämälärne yabıp beteräse';
+$strFlushTable = 'Tüşäwne awdar ("FLUSH")';
+$strFormat = 'Tözeleş';
+$strFormEmpty = 'Bu formıda bäyä kertelmi qalğan!';
+$strFreePages = 'Buş bit sanı';
+$strFullText = 'Tulı Mätennär';
+$strFunction = 'Funksí';
+
+$strGenBy = 'Ürçätkeç:';
+$strGeneralRelationFeat = 'Bäyläneşlär buyınça töp mömkinleklär';
+$strGeneratePassword = 'Sersüz Ürçetü';
+$strGenerate = 'Ürçet';
+$strGenTime = 'Ürçäw Zamanı';
+$strGeorgian = 'Görceçä';
+$strGerman = 'Almança';
+$strGlobal = 'ğömümi';
+$strGlobalPrivileges = 'Töp xoquq';
+$strGlobalValue = 'Töp bäyä';
+$strGo = 'Äydä';
+$strGrantOption = 'Xoquq';
+$strGreek = 'Yunança';
+$strGzip = '"gziple"';
+
+$strHandler = 'Eşkärtkeç';
+$strHasBeenAltered = 'üzgärtelde.';
+$strHaveToShow = 'You have to choose at least one Column to display';
+$strHebrew = 'Yähüdçä';
+$strHome = 'Başbit';
+$strHomepageOfficial = 'phpMyAdmin säxifäse';
+$strHostEmpty = 'Host adı buş!';
+$strHost = 'Host';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Macarça';
+
+$strIcelandic = 'İclandça';
+$strId = 'ID';
+$strIdxFulltext = 'Tulımäten';
+$strIgnoreDuplicates = 'Qabatlanğan yazmalarnı ütäse';
+$strIgnoreInserts = '"IGNORE" belän kertäse';
+$strIgnore = 'Qarama';
+$strImportFiles = 'Biremdän alu';
+$strImportFormat = 'Yöklänğan birem tözeleşe';
+$strImport = 'Yökläw';
+$strIndexes = 'Tezeşlär';
+$strIndexHasBeenDropped = '"%s" digän tezeş salındı';
+$strIndexName = 'Tezeş adı&nbsp;:';
+$strIndex = 'Tezeş';
+$strIndexType = 'Tezeş töre&nbsp;:';
+$strIndexWarningTable = '`%s` atlı tüşäw tezeşläre belän nidider tiskärlek bar';
+$strInnoDBAutoextendIncrement = 'Biremlektä arttıru adımı';
+$strInnoDBAutoextendIncrementDesc = 'Tüşämä alanı tulğaç, anı arttıruçı adımı bu.';
+$strInnoDBBufferPoolSize = 'Bufer pul olılığı';
+$strInnoDBBufferPoolSizeDesc = 'InnoDB üz tüşämä öçen alxäter belän açqıçlar urnaştırğanda bu olılıqta bulğan bufer qullana.';
+$strInnoDBDataFilePath = 'Eçtälek bireme';
+$strInnoDBDataHomeDir = 'Biremnär törgäge';
+$strInnoDBDataHomeDirDesc = 'InnoDB biremnäre öçen törgäk yulınıñ töp öleşe bu.';
+$strInnoDBPages = 'bit';
+$strInnodbStat = 'InnoDB Torışı';
+$strInsecureMySQL = 'MySQL-servergä ireşü öçen qullanası xisap bularaq, caylaw biremendä töp xisap saylanğan (sersüzsez "root"). MySQL-server şul töp xisap belän açılğan da, andıy xällär iminlekneñ citdi tişege tip sanala.';
+$strInsertAsNewRow = 'Yaña yazma kert tä';
+$strInsert = 'Östäw';
+$strInternalRelations = 'Eçke bäyläneş';
+$strInUse = 'totıla';
+$strInvalidCSVParameter = 'CSV yökläweneñ yaraqsız köyläneşe: %s';
+$strInvalidDatabase = 'Yaraqsız biremlek';
+$strInvalidFieldAddCount = 'Kimendä berär alan kertäse.';
+$strInvalidFieldCount = 'Töşämä alannarı sanı kimendä 1 bulırğa teş.';
+$strInvalidRowNumber = '%d digäne yazma sanı öçen kileşmi.';
+$strInvalidServerIndex = 'Serverdäge "%s" digän tezeleş yaraqsız';
+$strInvalidTableName = 'Tüşämä adı yaraqsız';
+
+$strJapanese = 'Japança';
+$strJoins = 'Bäylär';
+$strJumpToDB = '&quot;%s&quot; biremlegenä küç.';
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.';
+$strJustDelete = 'Xoquqlar tüşämäsennän genä beteräse.';
+
+$strKeepPass = 'Sersüzen üzgärtäse tügel';
+$strKeyCache = 'Tezeş alxätere';
+$strKeyname = 'Tezeş adı';
+$strKill = 'Üter';
+$strKorean = 'Koreyçä';
+
+$strLandscape = 'Yatqırıp';
+$strLanguageUnknown = 'Belgesez tel: %1$s.';
+$strLatchedPages = 'Berketelgän bit';
+$strLatexCaption = 'Tüşämä başlığı';
+$strLatexContent = '__TABLE__ atlı tüşämä eçtälege';
+$strLatexContinuedCaption = 'Tüşämä dawamınıñ başlığı';
+$strLatexContinued = '(dawamlı)';
+$strLatexIncludeCaption = 'Tüşämä başlığın östise';
+$strLatexLabel = 'Açqıç yazması';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = '__TABLE__ atlı tüşämä tözeleşe';
+$strLatvian = 'Latça';
+$strLDI = 'LOAD DATA qullanıp CSV';
+$strLDILocal = 'LOCAL digän süz qullanıp';
+$strLengthSet = 'Ozınlıq/Bäyä*';
+$strLimitNumRows = 'Bit sayın Kertem sanı';
+$strLinesTerminatedBy = 'Yul ara bilgese';
+$strLinkNotFound = 'Bäyläneş tabılmadı';
+$strLinksTo = 'Bonı belän bäyläneş:';
+$strLithuanian = 'Litçä';
+$strLocalhost = 'Cirle';
+$strLocationTextfile = 'SQL-ämerlege belän birem yökläw';
+$strLoginInformation = 'Kereş Turında';
+$strLogin = 'Kereş';
+$strLogout = 'Çığış';
+$strLogPassword = 'Sersüz:';
+$strLogServer = 'Server';
+$strLogUsername = 'Atama:';
+$strLongOperation = 'Bu eş ozaqqa suzıla ala. Barıber eşliseme?';
+
+$strMaximalQueryLength = 'Kilgän soraw külämeneñ öske küläme';
+$strMaximumSize = 'Max: %s%s';
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.';
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!';
+$strMIME_available_mime = 'Barlıq MIME-törlär';
+$strMIME_available_transform = 'Available transformations';
+$strMIME_description = 'Açıqlama';
+$strMIME_MIMEtype = 'MIME-törläre';
+$strMIME_nodescription = 'No Description is available for this transformation.<br />Please ask the author, what %s does.';
+$strMIME_transformation = 'Browser transformation';
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslash it (for example \'\\\\xyz\' or \'a\\\'b\').';
+$strMIME_transformation_options = 'Transformation options';
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE';
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';
+$strModifications = 'Üzgärtülär saqlandı';
+$strModifyIndexTopic = 'Açqıç üzgärtü';
+$strModify = 'Üzgärt';
+$strMoveTable = 'Boña küçerü (biremlek<b>.</b>tüşämä):';
+$strMoveTableOK = '"%s" atlı tüşämä "%s" kebek ataldı.';
+$strMoveTableSameNames = 'Ber ük at belän tüşämä küçerep bulmí!';
+$strMultilingual = 'küptelle';
+$strMyISAMDataPointerSize = 'Data pointer olılığı';
+$strMyISAMDataPointerSizeDesc = 'MAX_ROWS köylämäse bäyälängän oçraqta, CREATE TABLE aşa MyISAM tüşämä qorğanda qullanası pointerneñ baytlı olılığı.';
+$strMyISAMMaxExtraSortFileSize = 'Açqıç yasaw öçen waqıtlı birem olılığın çıläw';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Bu waqıtlı birem tiz MyISAM açqıç qorğanda qullanıla ikän, ul monda bilgelängän açqıç alxäterennän olıraq bulırğa tieş, şul açqıç alxäterläw ısulına qarap.';
+$strMyISAMMaxSortFileSizeDesc = 'MyISAM açqıçın yañadan qorğanda (REPAIR TABLE, ALTER TABLE, yä LOAD DATA INFILE aşa), MySQL qullanırlıq waqıtlı birem olılığın çikläw bu.';
+$strMyISAMMaxSortFileSize = 'Tezü öçen waqıtlı birem olılığın çıläw';
+$strMyISAMRecoverOptionsDesc = 'Cimerelgän MyISAM tüşämä üzennän tözälü ısulı, serverne --myisam-recover köylämäse belän cibärgän çaqta kebek.';
+$strMyISAMRecoverOptions = 'Üzennän tözälü ısulı';
+$strMyISAMRepairThreadsDesc = 'Bu bäyä 1dän dä olıraq ikän, MyISAM tüşämä tezüle Tözätü eşe belän bergä açqıçlar qoru eşe dä cibäreler (açqıç sayın ber ayırım cep).';
+$strMyISAMRepairThreads = 'Tözätü cebe';
+$strMyISAMSortBufferSizeDesc = 'REPAIR TABLE aşa MyISAM-açqıç tözätkändä dä, CREATE INDEX yä ALTER TABLE aşa açqıç östägändä dä yasala torğan bufer bu.';
+$strMyISAMSortBufferSize = 'Tezü bufer küläme';
+$strMySQLCharset = 'MySQL bilgelämäse';
+$strMysqlClientVersion = 'MySQL belän totaştırğıç söreme';
+$strMySQLConnectionCollation = 'MySQL-totaşunıñ tezü cayı';
+$strMySQLSaid = 'MySQL qaytarışı:';
+$strMySQLShowProcess = 'Proseslär tezmäse';
+
+$strName = 'Adı';
+$strNext = 'Kiläse';
+$strNoActivity = 'Kimendä %s sekund eşlämi tordıq, şuña kürä yañadan keräse';
+$strNoDatabases = 'Biremleklär yuq';
+$strNoDatabasesSelected = 'Biremlek saylanmağan.';
+$strNoDescription = 'Açıqlamasız';
+$strNoDetailsForEngine = 'Bu saqlaw engine öçen xälät turında centekle belem yuq.';
+$strNoDropDatabases = '"DROP DATABASE" cönläläre sünderelgän.';
+$strNoExplain = 'SQL Centeklämäskä';
+$strNoFilesFoundInZip = 'ZIP-tuplama eçendä biremnär tabılmadı!';
+$strNoFrames = 'phpMyAdmin is more friendly with a <b>frames-capable</b> browser.';
+$strNoIndex = 'Açqıç bilgelänmäde!';
+$strNoIndexPartsDefined = 'No index parts defined!';
+$strNoModification = 'Üzgäreşsez';
+$strNone = 'Buş';
+$strNoOptions = 'Bu tözeleşeneñ köyläneşe yuq';
+$strNoPassword = 'Sersüzsez';
+$strNoPermission = 'The web server does not have permission to save the file %s.';
+$strNoPhp = 'PHP Kodısız';
+$strNoPrivileges = 'Xoquqsız';
+$strNoRights = 'Bonda bulu öçen, xoquqlarıñ citmi!';
+$strNoRowsSelected = 'Kertemnär sayladı';
+$strNoSpace = '"%s" biremen saqlaw öçen buş ara citmi.';
+$strNoTablesFound = 'Bu biremlektä ber genä dä tüşämä yuq.';
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.';
+$strNotNumber = 'San tügel bu!';
+$strNotOK = 'OK tügel';
+$strNotSet = '<b>%s</b> atlı tüşämä yuq, yä ki "%s" tezmäsenä kermi';
+$strNoUsersFound = 'Qullanuçı yuq.';
+$strNoValidateSQL = 'SQL Tikşermäskä';
+$strNo = 'Yuq';
+$strNull = 'Buş';
+$strNumberOfFields = 'Alannar sanı';
+$strNumSearchResultsInTable = '%s kileşü bar, <i>%s</i> atlı tüşämädä';
+$strNumSearchResultsTotal = '<b>Tulayım:</b> <i>%s</i> kileşü';
+$strNumTables = 'Tüşämä';
+
+$strOK = 'OK';
+$strOpenNewWindow = 'Yaña phpMyAdmin-täräzä açu';
+$strOperations = 'Eşkärtü';
+$strOperator = 'Operator';
+$strOptimizeTable = 'Optimize table';
+$strOr = 'Yä';
+$strOverhead = 'Overhead';
+$strOverwriteExisting = 'Birem bar bulsa, östän yazdırası';
+
+$strPageNumber = 'Bitneñ sanı:';
+$strPagesToBeFlushed = 'Buşatası bit';
+$strPaperSize = 'Qäğäz zuqlığı';
+$strPartialImport = 'Öleşçä yökläw';
+$strPartialText = 'Partial Texts';
+$strPasswordChanged = '"%s" öçen sezsüz üzgärtü uñışlı uzdı.';
+$strPasswordEmpty = 'Sersüzeñ buş!';
+$strPasswordHashing = 'Sersüz Hash\'law';
+$strPasswordNotSame = 'Sersüzlär berbersenä kileşmi!';
+$strPassword = 'Sersüz';
+$strPdfDbSchema = '"%s" biremlek tözeleşe - %s. bit';
+$strPdfInvalidTblName = '"%s" atlı tüşämä yuq äle!';
+$strPdfNoTables = 'Berär genä dä tüşämä yuq';
+$strPDF = 'PDF';
+$strPDFReportTitle = 'Yomğaq başlığı';
+$strPerHour = 'säğät sayın';
+$strPerMinute = 'minut sayın';
+$strPerSecond = 'sekund sayın';
+$strPersian = 'Farsíça';
+$strPhoneBook = 'telefon däftäre';
+$strPhp = 'PHP-Kod yasa';
+$strPHPVersion = 'PHP Söreme';
+$strPmaDocumentation = 'phpMyAdmin qullanması';
+$strPmaUriError = 'The <tt>$cfg[\'PmaAbsoluteUri\']</tt> directive MUST be set in your configuration file!';
+$strPolish = 'Polça';
+$strPortrait = 'Batırıp';
+$strPos1 = 'Başlawğa';
+$strPrevious = 'Uzğan';
+$strPrimaryKeyHasBeenDropped = 'Töp açqıç beterelde';
+$strPrimaryKeyName = 'Bu töp açqıçnıñ adı "PRIMARY" bulırğa tieş!';
+$strPrimaryKeyWarning = '(Töp açqıçnıñ <b>ğına</b> adı "PRIMARY" bulırğa <b>tieş</b>!)';
+$strPrimary = 'Töp';
+$strPrint = 'Bastır';
+$strPrintView = 'Bastıru küreneşe';
+$strPrintViewFull = 'Bastıru küreneşe (bar mätennär belän)';
+$strPrivDescAllPrivileges = 'GRANT\'tan basqa bar xoquqlar da bar.';
+$strPrivDescAlter = 'Biredä bulğan tüşämä tözeleşen üzgärtü xoquqı.';
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.';
+$strPrivDescCreateDb = 'Yaña biremlek/tüşämä yasaw xoquqı.';
+$strPrivDescCreateRoutine = 'Saqlanğan funksílar qorırğa birä.';
+$strPrivDescCreateTbl = 'Yaña tüşämä yasaw xoquqı.';
+$strPrivDescCreateTmpTable = 'Waqıtlı tüşämä yasaw xoquqı.';
+$strPrivDescCreateUser = 'Qullanuçı xísabın qoru/salu/ataw eşen qılırğa birä.';
+$strPrivDescCreateView = 'Yaña qaraş qorırğa birä.';
+$strPrivDescDelete = 'Eçtälek beterü xoquqı.';
+$strPrivDescDropDb = 'Biremlek/tüşämä beterü xoquqı.';
+$strPrivDescDropTbl = 'Tüşämä beterü xoquqı.';
+$strPrivDescExecute5 = 'Eçke funksílar eşlätterergä birä.';
+$strPrivDescExecute = 'Eçke prosedur cibärü xoquqı; MySQL\'nıñ bu söremendä yuq äle ul.';
+$strPrivDescFile = 'Allows importing data from and exporting data into files.';
+$strPrivDescGrant = 'Allows adding users and privileges without reloading the privilege tüşämä.';
+$strPrivDescIndex = 'Açqıçlarnı qoru/beterü xoquqı.';
+$strPrivDescInsert = 'Eçtälek östäw/almaştıru xoquqı.';
+$strPrivDescLockTables = 'Allows locking tables for the current thread.';
+$strPrivDescMaxConnections = 'Limits the number of new connections the user may open per hour.';
+$strPrivDescMaxQuestions = 'Limits the number of queries the user may send to the server per hour.';
+$strPrivDescMaxUpdates = 'Limits the number of commands that change any table or database the user may execute per hour.';
+$strPrivDescReferences = 'Has no effect in this MySQL version.';
+$strPrivDescReload = 'Allows reloading server settings and flushing the server\'s caches.';
+$strPrivDescReplClient = 'Gives the right to the user to ask where the slaves / masters are.';
+$strPrivDescReplSlave = 'Needed for the replication slaves.';
+$strPrivDescSelect = 'Eçtälekne uqu xoquqı.';
+$strPrivDescShowDb = 'Gives access to the complete list of databases.';
+$strPrivDescShowView = 'SHOW CREATE VIEW sorawların eşläterlek itä.';
+$strPrivDescShutdown = 'Serverne tuqtatu xoquqı.';
+$strPrivDescSuper = 'Allows connecting, even if maximum number of connections is reached; Required for most administrative operations like setting global variables or killing threads of other users.';
+$strPrivDescUpdate = 'Eçtälek üzgärtü xoquqı.';
+$strPrivDescUsage = 'Xoquqlar yuq.';
+$strPrivilegesReloaded = 'Bu xoquqlarnı yökläw uñışlı uzdı.';
+$strPrivileges = 'Xoquqlar';
+$strProcesses = 'Proseslar';
+$strProcesslist = 'Proses isemlege';
+$strProtocolVersion = 'Protokol söreme';
+$strPutColNames = 'Berençe yulda alannarnıñ iseme çığarası';
+
+$strQBEDel = 'Sal';
+$strQBEIns = 'Tıq';
+$strQBE = 'Soraw';
+$strQueryCache = 'Soraw alxätere';
+$strQueryFrame = 'Soraw täräzäse';
+$strQueryOnDb = '<b>%s</b> biremlegenä SQL-soraw:';
+$strQueryResultsOperations = 'Soraw qaytarmasın eşkärtü';
+$strQuerySQLHistory = 'SQL-taríxı';
+$strQueryStatistics = '<b>Soraw nöfüse</b>: Bu server yöklännän birle, aña taba %s soraw kilgän.';
+$strQueryTime = 'Soraw eşkärtü %01.4f sek aldı';
+$strQueryType = 'Soraw töre';
+$strQueryWindowLock = 'Bu sorawnı, täräzä tışında bulğanı belän almaştırası tügel';
+
+$strReadRequests = 'Uquğa soraw';
+$strReceived = 'Alındı';
+$strRecords = 'Yazma';
+$strReferentialIntegrity = 'Bäyläneşlärne döreslekkä tikşerü:';
+$strRefresh = 'Yañart';
+$strRelationalSchema = 'Bäyläneşlär sxeme';
+$strRelationNotWorking = 'Bäyläneştä torğan tüşämä belän eşläp bulmas, östämä eşli-alu sünek tora. Anı qabızu öçen, %sbonda çirtäse%s.';
+$strRelations = 'Bäyläneşlär';
+$strRelationsForTable = 'RELATIONS FOR TABLE';
+$strRelationView = 'Bäyläneşkä küzätü';
+$strReloadingThePrivileges = 'Bu xoquqlarnı yöklä';
+$strReloadPrivileges = 'Xoquqlarnı qabat yökläw';
+$strRemoveSelectedUsers = 'Saylanğan qullanuçı beterü';
+$strRenameDatabaseOK = '"%s" biremlege "%s" itep ataldı';
+$strRenameTableOK = '"%s" tüşämäse "%s" itep ataldı';
+$strRenameTable = 'Tüşämä adın üzgärtü';
+$strRepairTable = 'Tüşämä tözätü';
+$strReplaceNULLBy = 'NULL\'nı almaştırası:';
+$strReplaceTable = 'Tüşämä eçtälegen bu biremlektäge belän alamştırası';
+$strReset = 'Awdar';
+$strResourceLimits = 'Resurs çikläwläre';
+$strReType = 'Qabatla';
+$strRevokeAndDeleteDescr = 'The users will still have the USAGE privilege until the privileges are reloaded.';
+$strRevokeAndDelete = 'Qullanuçı xoquqların awdarıp beteräse.';
+$strRevokeMessage = 'You have revoked the privileges for %s';
+$strRevoke = 'Töşer';
+$strRomanian = 'Romança';
+$strRowLength = 'Kerem ozınlığı';
+$strRowsFrom = 'kerem; berençese #';
+$strRowSize = ' Kerem olılığı';
+$strRows = 'Kerem';
+$strRowsModeFlippedHorizontal = 'yatqırıp (başlıqlar almaşıp)';
+$strRowsModeHorizontal = 'yatqırıp';
+$strRowsModeOptions = '%s ısulı belän; başlıqnı %s yul sayın qabatlísı';
+$strRowsModeVertical = 'bastırıp';
+$strRowsStatistic = 'Kerem Nöfüse';
+$strRunning = 'Sanaq: %s';
+$strRunQuery = 'Sorawnı Yulla';
+$strRunSQLQueryOnServer = '%s digän serverdä SQL-soraw eşlätü';
+$strRunSQLQuery = '%s biremlegendä eşlätäse SQL-soraw';
+$strRussian = 'Urısça';
+
+$strSaveOnServer = 'Serverneñ "%s" törgägendä saqla';
+$strSave = 'Saqla';
+$strScaleFactorSmall = 'Bu sxemnı ber bittä urnaştıru öçen, olılıq sanı bik keçe';
+$strSearch = 'Ezläw';
+$strSearchFormTitle = 'Biremlektä ezläw: ';
+$strSearchInTables = 'Kiläse tüşämä eçendä:';
+$strSearchNeedle = 'Tabası süz/bäyä tezmäse (almaşbilgese: "%"):';
+$strSearchOption1 = 'berärse bulsa';
+$strSearchOption2 = 'barısı da bulsa';
+$strSearchOption3 = 'tulı tezmä, tögäl kileş';
+$strSearchOption4 = 'regexp kileş';
+$strSearchResultsFor = '"<i>%s</i>" ezläw näticäse %s:';
+$strSearchType = 'Ezläw:';
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).';
+$strSelectADb = 'Berär biremlek saylísı';
+$strSelectAll = 'Saylap Beter';
+$strSelectBinaryLog = 'Qaraw öçen binar köndälek saylaw';
+$strSelectFields = 'Alannar saylísı (iñ kimendä ber):';
+$strSelectNumRows = 'sorawda';
+$strSelectTables = 'Tüşämä Saylaw';
+$strSend = 'Biremgä saqlıysı';
+$strSent = 'Cibärelde';
+$strServerChoice = 'Server Saylaw';
+$strServerNotResponding = 'Bu server endäşmi';
+$strServer = 'Server';
+$strServers = 'Serverlär';
+$strServerStatusDelayedInserts = 'Kiçerelgän östäw';
+$strServerStatus = 'Eşläw Torışı';
+$strServerStatusUptime = 'Bu MySQL-server %s eşli. %s çorında cibärelgän ide ul.';
+$strServerTabVariables = 'Üzgärmälär';
+$strServerTrafficNotes = '<b>Server taşımı</b>: MySQL-server cibärelgännän birle, anıñ belän çeltär arasında bulğan taşım turında belem bondağı tüşämä eçendä birelä.';
+$strServerVars = 'Server üzgärmäläre &amp; köyläneşe';
+$strServerVersion = 'Server söreme';
+$strSessionValue = 'Sessi bäyäse';
+$strSetEnumVal = 'Alan töre "enum/set" bulsa, bäyäsen bolayraq kertäse: \'a\',\'b\',\'c\'...<br />Bäyä eçenä kireawış ("\") yä sıñarquote ("\'") kertäse bulsa, anı kireawıştırası bula (ürnäk: \'\\\\xyz\' yä ki \'a\\\'b\').';
+$strShowAll = 'Barısın kürsät';
+$strShowColor = 'Tösle kürsät';
+$strShowDatadictAs = 'Eçtälek Süzlegeneñ Tözeleşe';
+$strShowFullQueries = 'Tulı Sorawlar Kürsät';
+$strShowGrid = 'Sırlı kürsät';
+$strShowingBookmark = 'Bitbilge kürsätü';
+$strShowingRecords = 'Yazma sanı:';
+$strShow = 'Kürsät';
+$strShowOpenTables = 'Açıq tüşämä tezmäse';
+$strShowPHPInfo = 'PHP turında';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Buş bitlär sanı.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Köndälek biremenä yazılğan bayt sanı bu.';
+$strShowStatusInnodb_pages_createdDescr = 'Yaratılğan bit sanı bu.';
+$strShowStatusInnodb_page_sizeDescr = 'InnoDB yasağanda bit öçen berketelgän küläme (töcay bäyäse 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.';
+$strShowStatusInnodb_pages_readDescr = 'Uqılğan bit sanı bu.';
+$strShowStatusInnodb_pages_writtenDescr = 'Yazılğan bit sanı bu.';
+$strShowStatusOpen_filesDescr = 'Açıq toruçı birem sanı.';
+$strShowStatusOpen_tablesDescr = 'Açıq toruçı tüşämä sanı.';
+$strShowStatusQcache_hitsDescr = 'Alxätergä turı kilü sanı bu.';
+$strShowStatusReset = 'Awdar';
+$strShowStatusSort_rowsDescr = 'Tezelgän yazma sanı bu.';
+$strShowStatusThreads_connectedDescr = 'Biredä açıq bulğan totaşu sanı.';
+$strShowTableDimension = 'Tüşämä ülçämen kürsätü';
+$strShowTables = 'Tüşämälär kürsätäse';
+$strShowThisQuery = ' Bu sorawnı qabat kürsätäse';
+$strSimplifiedChinese = 'Ciñel Çinçä';
+$strSingly = '(sıñar)';
+$strSize = 'Küläme';
+$strSkipQueries = 'Baştan ütep kitäse yazma sanı';
+$strSlovak = 'Slovakça';
+$strSlovenian = 'Slovença';
+$strSocketProblem = '(yä cirle MySQL-server soketı döres köylänmägän ide)';
+$strSortByKey = 'Qullanası tezeş';
+$strSorting = 'Tezü';
+$strSort = 'Tezü';
+$strSpaceUsage = 'Totılğan Alan';
+$strSpanish = 'İspança';
+$strSplitWordsWithSpace = 'Süzlärne buşlıq bilgese belän ayırası (" ").';
+$strSQLCompatibility = 'SQL, kileşterü ısulı';
+$strSQLExportType = 'Çığaru ısulı';
+$strSQLParserBugMessage = 'There is a chance that you may have found a bug in the SQL parser. Please examine your query closely, and check that the quotes are correct and not mis-matched. Other possible failure causes may be that you are uploading a file with binary outside of a quoted text area. You can also try your query on the MySQL command line interface. The MySQL server error output below, if there is any, may also help you in diagnosing the problem. If you still have problems or if the parser fails where the command line interface succeeds, please reduce your SQL query input to the single query that causes problems, and submit a bug report with the data chunk in the CUT section below:';
+$strSQLParserUserError = 'There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem';
+$strSQLQuery = 'SQL-soraw';
+$strSQLResult = 'SQL qaytarışı';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Tanıtması Yaraqsız';
+$strSQPBugUnclosedQuote = 'Yabılmağan cäyä';
+$strSQPBugUnknownPunctuation = 'Unknown Punctuation String';
+$strStatCheckTime = 'Soñğı tikşerü';
+$strStatCreateTime = 'Yasalışı';
+$strStatement = 'Cömlä';
+$strStatUpdateTime = 'Soñğı yañartılu';
+$strStatus = 'Torış';
+$strStorageEngine = 'Saqlaw Isulı';
+$strStorageEngines = 'Saqlaw Isulı';
+$strStrucCSV = 'CSV bireme';
+$strStrucData = 'Tözeleşen dä, eçtälegen dä';
+$strStrucExcelCSV = 'CSV bireme, MS Excel öçen';
+$strStrucNativeExcel = 'MS Excel tözeleşendä';
+$strStrucOnly = 'Tözeleşen genä';
+$strStructPropose = 'Tüşämä tözeleşenä küzätü';
+$strStructure = 'Tözeleş';
+$strSubmit = 'Künder';
+$strSuccess = 'SQL-sorawıñ uñışlı eşkärtelde';
+$strSum = 'Sum';
+$strSwedish = 'İswäcçä';
+$strSwitchToDatabase = 'Kübäytelgän biremlekkä küçäse';
+$strSwitchToTable = 'Kübäytelgän tüşämägä küçäse';
+
+$strTableAlreadyExists = '%s atlı tüşämä bar inde!';
+$strTableComments = 'Tüşämä açıqlaması';
+$strTableEmpty = 'Tüşämä adı kertelmi qaldı!';
+$strTableHasBeenDropped = '"%s" atlı tüşämä beterelde';
+$strTableHasBeenEmptied = '"%s" atlı tüşämä buşatıldı';
+$strTableHasBeenFlushed = '"%s" atlı tüşämä awdarıldı';
+$strTableMaintenance = 'Tüşämä eşkärtü';
+$strTableOfContents = 'Eçtälek isemlege';
+$strTableOptions = 'Tüşämä köyläneşe';
+$strTables = '%s tüşämä';
+$strTableStructure = 'Tüşämä tözeleşe';
+$strTable = 'Tüşämä';
+$strTakeIt = 'bonı sayla';
+$strTblPrivileges = 'Berär tüşämä öçen xoquqlar';
+$strTempData = 'Çaqlı birem';
+$strTextAreaLength = ' Because of its length,<br /> this field might not be editable';
+$strThai = 'Tayça';
+$strThemeDefaultNotFound = '%s digän töp tışlaw tabılmadı!';
+$strThemeNotFound = '%s digän tışlaw tabılmadı!';
+$strThemeNoValidImgPath = '%s digän tışlaw sürätläre urınlaşqan yul tabılmadı!';
+$strThemePathNotFound = '%s digän tışlaw urınlaşqan yul tabılmadı!';
+$strTheme = 'Tışlaw / Bizäleş';
+$strThisHost = 'Bu Sanaq';
+$strThreads = 'Ceplär';
+$strThreadSuccessfullyKilled = '%s cebe uñışlı üterelgän buldı.';
+$strTime = 'Waqıt';
+$strToggleScratchboard = 'Toggle scratchboard';
+$strTotal = 'tulayım';
+$strTotalUC = 'Tulayım';
+$strTraditionalChinese = 'Ğädäti Çinçä';
+$strTraditionalSpanish = 'Ğädäti İspança';
+$strTraffic = 'Taşım';
+$strTransactionCoordinator = 'Eş-ara idäräçese';
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string';
+$strTransformation_image_jpeg__inline = 'Displays a clickable thumbnail; options: width,height in pixels (keeps the original ratio)';
+$strTransformation_image_jpeg__link = 'Displays a link to this image (direct blob download, i.e.).';
+$strTransformation_image_png__inline = 'See image/jpeg: inline';
+$strTransformation_text_plain__external = 'LINUX ĞIÑA: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';
+$strTransformation_text_plain__formatted = 'Preserves original formatting of the field. No Escaping is done.';
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.';
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.';
+$strTransformation_text_plain__substr = 'Only shows part of a string. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';
+$strTruncateQueries = 'Sorawnı Qısqartıp Kürsätäse';
+$strTurkish = 'Törekçä';
+$strType = 'Töre';
+
+$strUkrainian = 'Ukrainça';
+$strUncheckAll = 'Saylanunı Töşer';
+$strUnicode = 'Unicode';
+$strUnique = 'Qabatsız';
+$strUnknown = 'belgesez';
+$strUnselectAll = 'Saylanunı Töşer';
+$strUpdatePrivMessage = 'You have updated the privileges for %s.';
+$strUpdateProfileMessage = 'The profile has been updated.';
+$strUpdateQuery = 'Sorawnı Yañart';
+$strUpdComTab = 'Sineñ Column_comments Tüşämä yañartu eşe turında Qullanmada qarísı';
+$strUpgrade = 'You should upgrade to %s %s or later.';
+$strUsage = 'Totılu';
+$strUseBackquotes = 'Tüşämä/alan isemnären kirequote eçenä salası';
+$strUseHostTable = 'Host Tüşämä eçennän';
+$strUserAlreadyExists = '"%s" atlı qullanuçı bar inde!';
+$strUserEmpty = 'Atama buş!';
+$strUserName = 'İreşü iseme';
+$strUserNotFound = 'Bu qullanuçı xoquqlar tüşämä eçendä tabılmadı.';
+$strUserOverview = 'Qullanuçılar tezmäse';
+$strUser = 'Qullanuçı';
+$strUsersDeleted = 'Saylanğan qullanuçını beterü uñışlı uzdı.';
+$strUsersHavingAccessToDb = '"%s" belän eşläw xoquqı bulğan qullanuçılar';
+$strUseTabKey = 'Ber bäyädän ikençegä küçü öçen TAB töymäsen qullanası, başqa cirgä küçü öçen, CTRL+uq töymäläre bar';
+$strUseTables = 'Tüşämä qullanıp';
+$strUseTextField = 'Bu mätennän';
+$strUseThisValue = 'Bu bäyä belän';
+
+$strValidateSQL = 'SQL\'nı Tikşer';
+$strValidatorError = 'SQL-tikşerüçe köylänmägän. Bu kiräk bulğan php-yöklämäne köyläw turında %squllanmada%s uqıp bula.';
+$strValue = 'Bäyä';
+$strVar = 'Üzgärmä';
+$strVersionInformation = 'Söreme turında';
+$strViewDumpDatabases = 'Biremleklärneñ eçtälegen (tözeleşen) çığaru';
+$strViewDumpDB = 'Biremlek eçtälegen (tözeleşen) çığaru';
+$strViewDump = 'Tüşämä eçtälegen (tözeleşen) çığaru';
+$strViewHasBeenDropped = '"%s" atlı Qaraş beterelgän buldı';
+$strView = 'Qaraş';
+
+$strWebServerUploadDirectoryError = 'Yökläw öçen bigelängän törgäkne uqıp bulmí';
+$strWebServerUploadDirectory = 'web-server\'neñ yökläw törgäge';
+$strWelcome = '%s siña İsäñme di';
+$strWestEuropean = 'Batış Awrupı';
+$strWildcard = 'almaşbilge';
+$strWindowNotFound = 'Browsernıñ maqsat täräzäse yañartılmí qaldı. Ana-täräzä yabılğan bulğan bälki, yä browserneñ iminlek caylawında täräzä-ara yañartu tıyılğan bulıp tora.';
+$strWithChecked = 'Saylanğannı:';
+$strWriteRequests = 'Yazuğa soraw';
+$strWrongUser = 'Atama/sersüzeñ yalğış buluına kürä ireşep bulmadı.';
+
+$strXML = 'XML';
+
+$strYes = 'Äye';
+
+$strZeroRemovesTheLimit = 'Beläse: 0 (nül) kertelgän çaqta çikläwe beterelä.';
+$strZip = '"ziple"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+
+$strDelimiter = 'Delimiter'; //to translate
+
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+
+$strReplication = 'Replication'; //to translate
+
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+
+
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/thai-utf-8.inc.php b/lang/thai-utf-8.inc.php
new file mode 100644
index 0000000000..ba7a3e20d0
--- /dev/null
+++ b/lang/thai-utf-8.inc.php
@@ -0,0 +1,1469 @@
+<?php
+/* $Id$ */
+
+// first created 2002/04/29 Arthit Suriyawongkul & Warit Wanasathian
+// last modified 2004/08/22 Arthit Suriyawongkul
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('ไบต์', 'กิโลไบต์', 'เมกกะไบต์', 'กิกะไบต์', 'เทอราไบต์', 'เพตตะไบต์', 'เอกซะไบต์');
+
+$day_of_week = array('อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.');
+$month = array('ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y %Rน.';
+
+$timespanfmt = '%s วัน, %s ชั่วโมง, %s นาที, %s วินาที';
+
+$strAbortedClients = 'ยกเลิก';
+$strAccessDenied = 'ไม่อนุญาตให้ใช้งาน';
+$strAction = 'กระทำการ';
+$strAddAutoIncrement = 'เพิ่มค่า AUTO_INCREMENT';
+$strAddDeleteColumn = 'เพิ่ม/ลบ คอลัมน์ (ฟิลด์)';
+$strAddDeleteRow = 'เพิ่ม/ลบ แถว';
+$strAddNewField = 'เพิ่มฟิลด์ใหม่';
+$strAddPrivilegesOnDb = 'เพิ่มสิทธิของฐานข้อมูลต่อไปนี้';
+$strAddPrivilegesOnTbl = 'เพิ่มสิทธิของตารางต่อไปนี้';
+$strAddSearchConditions = 'เพิ่มเงื่อนไขในการค้นหา:';
+$strAddToIndex = 'เพิ่มดัชนีคอลัมน์ %s';
+$strAddUser = 'เพิ่มผู้ใช้ใหม่';
+$strAddUserMessage = 'เพิ่มผู้ใช้ใหม่เรียบร้อยแล้ว';
+$strAdministration = 'การดูแลระบบ';
+$strAfterInsertBack = 'ส่งกลับ';
+$strAfterInsertNewInsert = 'แทรกระเบียนใหม่';
+$strAfter = 'หลัง %s';
+$strAll = 'ทั้งหมด';
+$strAllTableSameWidth = 'ให้แสดงตารางทุกอัน ด้วยความกว้างเท่ากันหรือไม่?';
+$strAlterOrderBy = 'เรียงค่าในตารางตาม';
+$strAnalyzeTable = 'วิเคราะห์ตาราง';
+$strAnd = 'และ';
+$strAnIndex = 'ได้เพิ่มดัชนีแล้วใน %s';
+$strAny = 'ใดๆ';
+$strAnyHost = 'โฮสต์ใดๆ';
+$strAnyUser = 'ผู้ใช้ใดๆ';
+$strAPrimaryKey = 'ได้เพิ่มไพรมารีคีย์แล้วใน %s';
+$strArabic = 'อารบิค';
+$strArmenian = 'อาร์เมเนีย';
+$strAscending = 'น้อยไปมาก';
+$strAtBeginningOfTable = 'ที่จุดเริ่มต้นของตาราง';
+$strAtEndOfTable = 'ที่จุดสุดท้ายของตาราง';
+$strAttr = 'แอตทริบิวต์';
+$strAutomaticLayout = 'จัดตำแหน่งอัตโนมัติ';
+
+$strBack = 'ย้อนกลับ';
+$strBaltic = 'บอลติก';
+$strBeginCut = 'เริ่มจุดตัด';
+$strBeginRaw = 'เริ่มข้อมูลดิบ';
+$strBinary = ' ข้อมูลไบนารี ';
+$strBinaryDoNotEdit = ' ข้อมูลไบนารี - ห้ามแก้ไข ';
+$strBookmarkDeleted = 'ลบคำค้นที่จดไว้เรียบร้อยแล้ว';
+$strBookmarkLabel = 'ป้ายชื่อ';
+$strBookmarkQuery = 'คำค้นนี้ถูกจดไว้แล้ว';
+$strBookmarkThis = 'จดคำค้นนี้ไว้';
+$strBookmarkView = 'ดูอย่างเดียว';
+$strBrowse = 'เปิดดู';
+$strBulgarian = 'บัลเกเรีย';
+$strBzip = '"bzipped"';
+
+$strCalendar = 'ปฏิทิน';
+$strCannotLogin = 'ไม่สามารถล็อกอินเข้าเซิร์ฟเวอร์ MySQL ได้';
+$strCantLoadRecodeIconv = 'ไม่สามารถเรียกใช้ตัวช่วย iconv หรือ recode เพื่อแปลงชุดตัวอักษร, ทางเลือก: 1) ตั้งค่าให้ PHP สามารถใช้ตัวช่วยเหล่านี้ได้ หรือ 2) ตั้งค่าให้ phpMyAdmin ไม่ต้องแปลงชุดตัวอักษร';
+$strCantLoad = 'ไม่สามารถเรียกส่วนขยาย %s,<br />กรุณาตรวจสอบการตั้งค่าของ PHP';
+$strCantRenameIdxToPrimary = 'เปลี่ยนชื่อดัชนีเป็น PRIMARY ไม่ได้!';
+$strCantUseRecodeIconv = 'ไม่สามารถใช้ฟังก์ชั่น iconv หรือ libiconv หรือ recode_string ทั้งๆ ที่สามารถเรียกตัวช่วย สำหรับฟังก์ชั่นเหล่านั้นขึ้นมาได้แล้ว. ลองตรวจสอบการตั้งค่าของ PHP';
+$strCardinality = 'Cardinality';
+$strCaseInsensitive = 'ไม่สนใจตัวเล็กตัวใหญ่';
+$strCaseSensitive = 'สนใจตัวเล็กตัวใหญ่';
+$strCentralEuropean = 'ยุโรปกลาง';
+$strChange = 'เปลี่ยน';
+$strChangeCopyMode = 'สร้างผู้ใช้ใหม่ ให้มีสิทธิเหมือนกัน และ ...';
+$strChangeCopyModeCopy = '... เก็บของเก่าไว้.';
+$strChangeCopyModeDeleteAndReload = ' ... ลบของเก่าจากตารางผู้ใช้ แล้วเรียกใช้รายการสิทธิ์ใหม่หลังจากนั้น.';
+$strChangeCopyModeJustDelete = ' ... ลบของเก่าทิ้งไปจากตารางผู้ใช้.';
+$strChangeCopyModeRevoke = ' ... เรียกคืนสิทธิ์ทั้งหมดจากเดิม แล้วลบมันหลังจากนั้น.';
+$strChangeCopyUser = 'เปลี่ยนข้อมูลล็อกอิน / ทำสำเนาผู้ใช้';
+$strChangeDisplay = 'เลือกฟิลด์ที่ต้องการแสดง';
+$strChangePassword = 'เปลี่ยนรหัสผ่าน';
+$strCharset = 'ชุดตัวอักษร';
+$strCharsetOfFile = 'ชุดอักขระของไฟล์ (character set):';
+$strCharsets = 'ชุดตัวอักษร';
+$strCharsetsAndCollations = 'ชุดตัวอักษร และการเรียงลำดับ';
+$strCheckAll = 'เลือกทั้งหมด';
+$strCheckPrivs = 'ตรวจสอบสิทธิ';
+$strCheckPrivsLong = 'ตรวจสอบสิทธิสำหรับฐานข้อมูล &quot;%s&quot;.';
+$strCheckTable = 'ตรวจสอบตาราง';
+$strChoosePage = 'เลือกหน้าที่ต้องการแก้ไข';
+$strColComFeat = 'แสดงหมายเหตุของคอลัมน์';
+$strCollation = 'การเรียงลำดับ';
+$strColumnNames = 'ชื่อคอลัมน์';
+$strColumnPrivileges = 'สิทธิเฉพาะคอลัมน์';
+$strCommand = 'คำสั่ง';
+$strComments = 'หมายเหตุ';
+$strCompleteInserts = 'คำสั่ง INSERT เต็มรูปแบบ';
+$strCompression = 'บีบอัดข้อมูล';
+$strConfigFileError = 'phpMyAdmin ไม่สามารถอ่านแฟ้มคอนฟิกูเรชั่นของคุณได้<br />โดยปกติ อาจจะเป็นเพราะตัว PHP หาไฟล์ไม่เจอ หรือไม่สามารถประมวลผล (parse) ไฟล์ได้<br />ลองเรียกไฟล์คอนฟิกูเรชั่นขึ้นมาโดยตรง (กดลิงค์ด้านล่าง) และดูว่ามี error message อะไรหรือไม่ ลองตรวจสอบดูเครื่องหมาย quote หรือ semicolon ว่าใส่ครบหรือเปล่า<br />ถ้าคุณเห็นหน้าว่างๆ แสดงว่าทุกอย่างเป็นปกติดี';
+$strConfigureTableCoord = 'กรุณาตั้งค่าโคออร์ดิเนตของตาราง %s';
+$strConnections = 'การเชื่อมต่อ';
+$strCookiesRequired = 'ต้องอนุญาตใช้ใช้ \'คุ๊กกี้\' (cookie) เสียก่อน จึงจะผ่านจุดนี้ไปได้';
+$strCopyTable = 'คัดลอกตารางไปยัง (ฐานข้อมูล<b>.</b>ตาราง):';
+$strCopyTableOK = 'คัดลอกตาราง %s ไปเก็บในชื่อ %s เรียบร้อยแล้ว.';
+$strCopyTableSameNames = 'คัดลอกตารางไปที่เดิมไม่ได้';
+$strCouldNotKill = 'phpMyAdmin ไม่สามารถฆ่าเธรด %s. บางทีมันอาจจะถูกปิดไปแล้วก็ได้.';
+$strCreate = 'สร้าง';
+$strCreateIndex = 'สร้างดัชนีโดยคอลัมน์ %s';
+$strCreateIndexTopic = 'สร้างดัชนีใหม่';
+$strCreateNewDatabase = 'สร้างฐานข้อมูลใหม่';
+$strCreateNewTable = 'สร้างตารางในฐานข้อมูลนี้ %s';
+$strCreatePage = 'เริ่มหน้าใหม่';
+$strCreatePdfFeat = 'การสร้างเอกสาร PDF';
+$strCriteria = 'เงื่อนไข';
+$strCroatian = 'โครเอเชีย';
+$strCyrillic = 'ซิริลิค';
+$strCzech = 'เช็ค';
+$strCzechSlovak = 'เช็ค-สโลวัก';
+
+$strDanish = 'เดนมาร์ก';
+$strData = 'ข้อมูล';
+$strDatabase = 'ฐานข้อมูล';
+$strDatabaseHasBeenDropped = 'โยนฐานข้อมูล %s ทิ้งไปเรียบร้อยแล้ว';
+$strDatabases = 'ฐานข้อมูล';
+$strDatabasesDropped = '%s ฐานข้อมูลได้ถูกทิ้งไปเรียบร้อยแล้ว.';
+$strDatabasesStats = 'สถิติฐานข้อมูล';
+$strDatabasesStatsDisable = 'ยกเลิกการเก็บสถิติ';
+$strDatabasesStatsEnable = 'ให้มีการเก็บสถิติ';
+$strDatabasesStatsHeavyTraffic = 'โปรดทราบ: การเปิดใช้การเก็บสถิติของฐานข้อมูล อาจจะทำให้มีปริมาณการถ่ายโอนข้อมูลจำนวนมาก ระหว่างเว็บเซิร์ฟเวอร์ และเซิร์ฟเวอร์ MySQL.';
+$strDataDict = 'พจนานุกรมข้อมูล';
+$strDataOnly = 'เฉพาะข้อมูล';
+$strDBComment = 'หมายเหตุของฐานข้อมูล: ';
+$strDbPrivileges = 'สิทธิเจาะจงเฉพาะฐานข้อมูล';
+$strDBRename = 'เปลี่ยนชื่อฐานข้อมูลเป็น';
+$strDbSpecific = 'เฉพาะฐานข้อมูล';
+$strDefault = 'ค่าปริยาย';
+$strDefragment = 'จัดระเบียบตาราง';
+$strDelete = 'ลบ';
+$strDeleteAndFlush = 'ลบผู้ใช้ และเรียกใช้รายการสิทธิ์ใหม่หลังจากนั้น.';
+$strDeleteAndFlushDescr = 'นี่เป็นวิธีที่หมดจดที่สุด แต่การโหลดสิทธิใช้งานใหม่ จะต้องใช้เวลาสักระยะ.';
+$strDeleted = 'ลบเรียบร้อยแล้ว';
+$strDeleting = 'กำลังลบ %s';
+$strDescending = 'มากไปน้อย';
+$strDescription = 'รายละเอียด';
+$strDictionary = 'พจนานุกรม';
+$strDisabled = 'ระงับการใช้อยู่';
+$strDisplayFeat = 'ความสามารถด้านการแสดงผล';
+$strDisplayOrder = 'ลำดับการแสดง:';
+$strDisplayPDF = 'แสดงสกีมาของ PDF';
+$strDoAQuery = 'ทำ "คำค้นจากตัวอย่าง" (wildcard: "%")';
+$strDocu = 'เอกสารอ้างอิง';
+$strDoYouReally = 'ต้องการจะ ';
+$strDrop = 'โยนทิ้ง';
+$strDropUsersDb = 'โยนฐานข้อมูลที่มีชื่อเดียวกับผู้ใช้ทิ้ง.';
+$strDumpingData = 'dump ตาราง';
+$strDumpXRows = 'ดัมพ์แถว %s แถว เริ่มที่แถว %s';
+$strDynamic = 'ไม่คงที่';
+
+$strEdit = 'แก้ไข';
+$strEditPDFPages = 'แก้ไขหน้า PDF';
+$strEditPrivileges = 'แก้ไขสิทธิ';
+$strEffective = 'มีผล';
+$strEmpty = 'ลบข้อมูล';
+$strEmptyResultSet = 'MySQL คืนผลลัพธ์ว่างเปล่ากลับมา (null / 0 แถว).';
+$strEnabled = 'เปิดใช้อยู่';
+$strEnd = 'ท้ายสุด';
+$strEndCut = 'สิ้นสุดจุดตัด';
+$strEndRaw = 'สิ้นสุดข้อมูลดิบ';
+$strEnglish = 'อังกฤษ';
+$strEnglishPrivileges = ' โปรดทราบ: ชื่อของสิทธิใน MySQL จะแสดงเป็นภาษาอังกฤษ ';
+$strError = 'ผิดพลาด';
+$strEstonian = 'เอสโตเนีย';
+$strExplain = 'อธิบาย SQL';
+$strExport = 'ส่งออก';
+$strExtendedInserts = 'แทรกหลายระเบียนในคราวเดียว';
+$strExtra = 'เพิ่มเติม';
+
+$strFailedAttempts = 'ความพยายามล้มเหลว';
+$strField = 'ฟิลด์';
+$strFieldHasBeenDropped = 'โยนฟิลด์ %s ทิ้งไปเรียบร้อยแล้ว';
+$strFields = 'จำนวนฟิลด์';
+$strFieldsEnclosedBy = 'คร่อมฟิลด์ด้วย';
+$strFieldsEscapedBy = 'เครื่องหมายสำหรับ escape char';
+$strFieldsTerminatedBy = 'จบฟิลด์ด้วย';
+$strFileCouldNotBeRead = 'อ่านไฟล์ไม่ได้';
+$strFileNameTemplate = 'รูปแบบของชื่อไฟล์';
+$strFileNameTemplateRemember = 'จำรูปแบบ';
+$strFixed = 'คงที่';
+$strFlushTable = 'ล้างตาราง (flush)';
+$strFormat = 'รูปแบบ';
+$strFormEmpty = 'ค่าในแบบฟอร์มหายไป !';
+$strFullText = 'ทั้งข้อความ';
+$strFunction = 'ฟังก์ชั่น';
+
+$strGenBy = 'สร้างโดย';
+$strGeneralRelationFeat = 'ความสามารถด้านรีเลชันทั่วไป';
+$strGenTime = 'เวลาในการสร้าง';
+$strGeorgian = 'จอร์เจีย';
+$strGerman = 'เยอรมัน';
+$strGlobal = 'โกลบอล';
+$strGlobalPrivileges = 'สิทธิแบบโกลบอล';
+$strGlobalValue = 'ค่าแบบโกลบอล';
+$strGo = 'ลงมือ';
+$strGrantOption = 'มอบสิทธิ';
+$strGreek = 'กรีก';
+$strGzip = '"gzipped"';
+
+$strHasBeenAltered = 'เปลี่ยนเสร็จแล้ว';
+$strHaveToShow = 'ต้องเลือกให้แสดงอย่างน้อยหนึ่งคอลัมน์';
+$strHebrew = 'ฮิบรู';
+$strHome = 'หน้าบ้าน';
+$strHomepageOfficial = 'โฮมเพจอย่างเป็นทางการของ phpMyAdmin';
+$strHost = 'โฮสต์';
+$strHostEmpty = 'ชื่อโฮสต์ยังว่างอยู่!';
+$strHungarian = 'ฮังการี';
+
+$strIcelandic = 'ไอซ์แลนด์';
+$strId = 'ID';
+$strIdxFulltext = 'ข้อความเต็ม (fulltext)';
+$strIgnore = 'ไม่สนใจ';
+$strImportFiles = 'นำเข้าไฟล์';
+$strIndex = 'ดัชนี';
+$strIndexes = 'ดัชนี';
+$strIndexHasBeenDropped = 'โยนดัชนี %s ทิ้งไปเรียบร้อยแล้ว';
+$strIndexName = 'ชื่อดัชนี :';
+$strIndexType = 'ชนิดของดัชนี :';
+$strInnodbStat = 'สถานะของ InnoDB';
+$strInsecureMySQL = 'จากไฟล์เก็บค่ากำหนดของคุณ คุณไม่ได้ตั้งรหัสผ่านสำหรับ root ซึ่งจะถูกใช้เป็นชื่อปริยายซึ่งมีสิทธิพิเศษ. เซิร์ฟเวอร์ MySQL ที่ทำงานด้วยค่าปริยายนี้ อาจถูกบุกรุกได้ คุณควรจะแก้ไขรูรั่วอันนี้ทันที เพื่อความปลอดภัย';
+$strInsert = 'แทรก';
+$strInsertAsNewRow = 'แทรกเป็นแถวใหม่';
+$strInternalRelations = 'รีเลชันภายใน';
+$strInUse = 'ใช้อยู่';
+
+$strJapanese = 'ญี่ปุ่น';
+$strJumpToDB = 'กระโดดไปที่ฐานข้อมูล &quot;%s&quot;.';
+$strJustDelete = 'แค่ลบผู้ใช้ออกจากตารางแสดงสิทธิเข้าถึง';
+
+$strKeepPass = 'กรุณาอย่าเปลี่ยนรหัสผ่าน';
+$strKeyname = 'ชื่อคีย์';
+$strKill = 'ฆ่าทิ้ง';
+$strKorean = 'เกาหลี';
+
+$strLandscape = 'แนวนอน';
+$strLatexCaption = 'คำอธิบายตาราง';
+$strLatexContinued = '(ต่อ)';
+$strLaTeX = 'LaTeX';
+$strLatvian = 'ลัตเวีย';
+$strLengthSet = 'ความยาว/เซต*';
+$strLimitNumRows = 'ระเบียนต่อหน้า';
+$strLinesTerminatedBy = 'จบแถวด้วย';
+$strLinkNotFound = 'ไม่พบลิงก์';
+$strLinksTo = 'เชื่อมไปยัง';
+$strLithuanian = 'ลิธัวเนีย';
+$strLocalhost = 'โลคอล';
+$strLocationTextfile = 'เลือกไฟล์ข้อความจาก';
+$strLogin = 'เข้าสู่ระบบ';
+$strLoginInformation = 'ข้อมูลล็อกอิน';
+$strLogout = 'ออกจากระบบ';
+$strLogPassword = 'รหัสผ่าน:';
+$strLogServer = 'เซิร์ฟเวอร์';
+$strLogUsername = 'ชื่อผู้ใช้:';
+
+$strMaximumSize = 'ขนาดใหญ่สุด: %s%s';
+$strMIME_available_mime = 'MIME-types ที่มีอยู่';
+$strMIME_available_transform = 'การแปลงที่เรียกใช้ได้';
+$strMIME_description = 'รายละเอียด';
+$strMIME_MIMEtype = 'MIME-type';
+$strMIME_nodescription = 'ไม่ปรากฏรายละเอียดสำหรับการแปลงนี้.<br />กรุณาสอบถามผู้เขียนว่า, %s ทำอะไร.';
+$strMIME_transformation_options = 'ตัวเลือกการแปลง';
+$strModifications = 'บันทึกการแก้ไขเรียบร้อยแล้ว';
+$strModify = 'แก้ไข';
+$strModifyIndexTopic = 'แก้ไขดัชนี';
+$strMoveTable = 'ย้ายตารางไป (database<b>.</b>table):';
+$strMoveTableOK = 'ตาราง %s ถูกย้ายไป %s แล้ว';
+$strMoveTableSameNames = 'ย้ายตารางไปที่เดิมไม่ได้';
+$strMultilingual = 'หลายภาษา';
+$strMySQLCharset = 'ชุดตัวอักษร (charset) ของ MySQL';
+$strMySQLSaid = 'MySQL แสดง: ';
+$strMySQLShowProcess = 'แสดงงานที่ทำอยู่ของ MySQL';
+
+$strName = 'ชื่อ';
+$strNext = 'ต่อไป';
+$strNo = 'ไม่';
+$strNoDatabases = 'ไม่มีฐานข้อมูล';
+$strNoDatabasesSelected = 'ยังไม่ได้เลือกฐานข้อมูล.';
+$strNoDescription = 'ไม่มีรายละเอียด';
+$strNoDropDatabases = 'คำสั่ง "DROP DATABASE" ถูกปิดไว้';
+$strNoExplain = 'ไม่ต้องอธิบาย SQL';
+$strNoFrames = 'เบราเซอร์ที่<b>ใช้เฟรมได้</b> จะช่วยให้ใช้ phpMyAdmin ได้ง่ายขึ้น';
+$strNoIndex = 'ยังไม่ได้กำหนดดัชนีใดๆ!';
+$strNoIndexPartsDefined = 'ไม่ได้กำหนดส่วนใดๆ ของดัชนี!';
+$strNoModification = 'ไม่มีการเปลี่ยนแปลง';
+$strNone = 'ไม่มี';
+$strNoOptions = 'รูปแบบนี้ไม่มีตัวเลือก';
+$strNoPassword = 'ไม่มีรหัสผ่าน';
+$strNoPhp = 'ไม่เอาโค้ด PHP';
+$strNoPrivileges = 'ไม่มีสิทธิ';
+$strNoRights = 'คุณไม่มีสิทธิที่จะเข้ามาตรงนี้!';
+$strNoRowsSelected = 'ยังไม่ได้เลือกแถว';
+$strNoTablesFound = 'ไม่พบตารางใด ๆ ในฐานข้อมูล';
+$strNotNumber = 'ค่านี้ไม่ใช่ตัวเลข!';
+$strNotOK = 'ไม่ตกลง';
+$strNotSet = 'ไม่พบตาราง <b>%s</b> ใน %s';
+$strNoUsersFound = 'ไม่พบผู้ใช้ใดๆ.';
+$strNoValidateSQL = 'ไม่ต้องตรวจสอบ SQL';
+$strNull = 'ว่างเปล่า (null)';
+$strNumSearchResultsInTable = 'พบ %s ผลลัพธ์ที่ตรงในตาราง <i>%s</i>';
+$strNumSearchResultsTotal = '<b>รวม:</b> <i>%s</i> ผลลัพธ์ที่ตรง';
+$strNumTables = 'ตาราง';
+
+$strOK = 'ตกลง';
+$strOperations = 'กระบวนการ';
+$strOptimizeTable = 'ปรับแต่งตาราง';
+$strOr = 'หรือ';
+$strOverhead = 'เกินความจำเป็น';
+$strOverwriteExisting = 'เขียนทับแฟ้มที่มีอยู่แล้ว';
+
+$strPageNumber = 'หมายเลขหน้า:';
+$strPaperSize = 'ขนาดกระดาษ';
+$strPartialText = 'ข้อความบางส่วน';
+$strPassword = 'รหัสผ่าน';
+$strPasswordChanged = 'เปลี่ยนรหัสผ่านของ %s เรียบร้อยแล้ว';
+$strPasswordEmpty = 'รหัสผ่านยังว่างอยู่!';
+$strPasswordNotSame = 'รหัสผ่านไม่ตรงกัน!';
+$strPdfDbSchema = 'schema ของฐานข้อมูล "%s" - หน้า %s';
+$strPdfInvalidTblName = 'ไม่มีตาราง "%s"!';
+$strPdfNoTables = 'ไม่มีตาราง';
+$strPerHour = 'ต่อชั่วโมง';
+$strPerMinute = 'ต่อนาที';
+$strPerSecond = 'ต่อวินาที';
+$strPhoneBook = 'สมุดโทรศัพท์';
+$strPhp = 'สร้างโค้ด PHP';
+$strPHPVersion = 'รุ่นของ PHP';
+$strPmaDocumentation = 'เอกสารการใช้ phpMyAdmin';
+$strPmaUriError = '<b>ต้อง</b>กำหนดค่า <tt>$cfg[\'PmaAbsoluteUri\']</tt> ในไฟล์คอนฟิกูเรชั่นเสียก่อน';
+$strPolish = 'โปแลนด์';
+$strPortrait = 'แนวตั้ง';
+$strPos1 = 'จุดเริ่มต้น';
+$strPrevious = 'ก่อนหน้า';
+$strPrimary = 'ไพรมารี';
+$strPrimaryKeyHasBeenDropped = 'โยนไพรมารีคีย์ทิ้งไปเรียบร้อยแล้ว';
+$strPrimaryKeyName = 'ชื่อของไพรมารีคีย์ จะต้องเป็น PRIMARY เท่านั้น';
+$strPrimaryKeyWarning = '(ชื่อของไพรมารีคีย์<b>จะต้องเป็น</b> "PRIMARY" เท่านั้น!)';
+$strPrint = 'พิมพ์';
+$strPrintView = 'แสดง';
+$strPrivDescAllPrivileges = 'ให้สิทธิทุกอย่าง ยกเว้นการให้สิทธิแก่ผู้อื่น (GRANT).';
+$strPrivDescAlter = 'อนุญาตให้เปลี่ยนโครงสร้างของตารางที่มีอยู่เดิม.';
+$strPrivDescCreateDb = 'อนุญาตให้สร้างฐานข้อมูล และตารางใหม่.';
+$strPrivDescCreateTbl = 'อนุญาตให้สร้างตารางใหม่.';
+$strPrivDescCreateTmpTable = 'อนุญาตให้สร้างตารางชั่วคราว.';
+$strPrivDescDelete = 'อนุญาตให้ลบข้อมูล';
+$strPrivDescDropDb = 'อนุญาตให้ทิ้งฐานข้อมูล และตาราง';
+$strPrivDescDropTbl = 'อนุญาตให้ทิ้งตาราง';
+$strPrivDescExecute = 'อนุญาตให้รัน stored procedure (ไม่มีผลใน MySQL รุ่นนี้)';
+$strPrivDescFile = 'อนุญาตให้นำเข้าข้อมูล และส่งออกข้อมูล ไปที่ไฟล์';
+$strPrivDescGrant = 'อนุญาตให้เพิ่มผู้ใช้ และสิทธิเข้าถึง โดยไม่ต้องเรียกใช้ตารางสิทธิใหม่';
+$strPrivDescIndex = 'อนุญาตให้สร้าง และทิ้ง ดัชนี';
+$strPrivDescInsert = 'อนุญาตให้เพิ่ม และแทนที่ ข้อมูล';
+$strPrivDescLockTables = 'อนุญาตให้ล็อกตารางสำหรับเธรดปัจจุบัน';
+$strPrivDescMaxConnections = 'จำกัดจำนวนการเชื่อมต่อใหม่ ที่ผู้ใช้จะสามารถเปิดได้ ต่อชั่วโมง';
+$strPrivDescMaxQuestions = 'จำกัดจำนวนของคำค้น ที่ผู้ใช้จะสามารถส่งมาที่เซิร์ฟเวอร์ได้ ต่อชั่วโมง';
+$strPrivDescMaxUpdates = 'จำกัดจำนวนของคำสั่ง ที่จะเปลี่ยนแปลงตาราง หรือฐานข้อมูลใดๆ ที่ผู้ใช้จะสามารถสั่งได้ ต่อชั่วโมง';
+$strPrivDescReferences = 'ไม่มีผลใน MySQL รุ่นนี้';
+$strPrivDescReload = 'อนุญาตให้เรียกใช้ค่ากำหนดของเซิร์ฟเวอร์ใหม่ และล้างแคชของเซิร์ฟเวอร์';
+$strPrivDescReplClient = 'มอบสิทธิให้ผู้ใช้ ในการถามว่า slaves หรือ masters อยู่ที่ไหน.';
+$strPrivDescSelect = 'อนุญาตให้อ่านข้อมูลได้.';
+$strPrivDescShowDb = 'สามารถเรียกดูรายการฐานข้อมูลทั้งหมดได้';
+$strPrivDescShutdown = 'อนุญาตให้ปิดเซิร์ฟเวอร์ได้';
+$strPrivDescUpdate = 'อนุญาตให้เปลี่ยนข้อมูลได้.';
+$strPrivDescUsage = 'ไม่มีสิทธิใดๆ.';
+$strPrivileges = 'สิทธิ';
+$strPrivilegesReloaded = 'สิทธิได้ถูกเรียกใช้ใหม่เรียบร้อยแล้ว';
+$strProcesses = 'โพรเซส';
+$strProcesslist = 'รายการโพรเซส';
+$strPutColNames = 'ใส่ชื่อฟิลด์ที่แถวแรก';
+
+$strQBE = 'คำค้นจากตัวอย่าง';
+$strQBEDel = 'ลบ';
+$strQBEIns = 'เพิ่ม';
+$strQueryFrame = 'หน้าต่างคำค้น';
+$strQueryOnDb = 'คำค้นบนฐานข้อมูล <b>%s</b>:';
+$strQuerySQLHistory = 'SQL-history';
+$strQueryStatistics = '<b>สถิติคำค้น</b>: มี %s คำค้น ถูกส่งไปที่เซิร์ฟเวอร์ นับตั้งแต่เริ่มระบบ.';
+$strQueryTime = 'คำค้นใช้เวลา %01.4f วินาที';
+$strQueryType = 'ชนิดคำค้น';
+
+$strReceived = 'ได้รับ';
+$strRecords = 'ระเบียน';
+$strReferentialIntegrity = 'ตรวจสอบความสมบูรณ์ของการอ้างถึง:';
+$strRefresh = 'เรียกใหม่';
+$strRelationalSchema = 'รีเลชันแนล สกีมา';
+$strRelationNotWorking = 'ความสามารถเพิ่มเติมสำหรับ linked Tables ได้ถูกระงับเอาไว้ ตามเหตุผลที่แจ้งไว้ใน %shere%s';
+$strRelations = 'รีเลชัน';
+$strRelationView = 'มุมมองรีเลชัน';
+$strReloadingThePrivileges = 'ปรับปรุงสิทธิเข้าถึงใหม่อีกรอบ';
+$strRemoveSelectedUsers = 'ถอนผู้ใช้ที่เลือก';
+$strRenameTable = 'เปลี่ยนชื่อตารางเป็น';
+$strRenameTableOK = 'ตาราง %s ได้ถูกเปลี่ยนชื่อเป็น %s';
+$strRepairTable = 'ซ่อมแซมตาราง';
+$strReplaceNULLBy = 'แทนที่ NULL เป็น';
+$strReplaceTable = 'เขียนทับด้วยข้อมูลจากไฟล์';
+$strReset = 'เริ่มใหม่';
+$strResourceLimits = 'ขีดจำกัดของทรัพยากร';
+$strReType = 'พิมพ์ใหม่';
+$strRevoke = 'เพิกถอน';
+$strRevokeAndDelete = 'เพิกถอน active privileges ทั้งหมดจากผู้ใช้ และลบผู้ใช้ทิ้งหลังจากนั้น.';
+$strRevokeAndDeleteDescr = 'ผู้ใช้ต่างๆ ยังคงมีสิทธิ USAGE จนกว่า ข้อมูลสิทธิ จะถูกเรียกใช้ใหม่อีกที.';
+$strRevokeMessage = 'คุณได้เพิกถอนสิทธิของ %s';
+$strRomanian = 'โรมาเนีย';
+$strRowLength = 'ความยาวแถว';
+$strRows = 'แถว';
+$strRowsFrom = 'แถว เริ่มจากแถวที่';
+$strRowSize = ' ขนาดแถว ';
+$strRowsModeFlippedHorizontal = 'แนวนอน (หมุนหัวเรื่อง)';
+$strRowsModeHorizontal = 'แนวนอน';
+$strRowsModeOptions = 'อยู่ใน %s และซ้ำหัวแถวทุกๆ %s เซลล์';
+$strRowsModeVertical = 'แนวตั้ง';
+$strRowsStatistic = 'สถิติของแถว';
+$strRunning = 'ทำงานอยู่บน %s';
+$strRunQuery = 'ประมวลผลคำค้น';
+$strRunSQLQuery = 'ประมวลผลคำค้นบนฐานข้อมูล %s';
+$strRussian = 'รัสเซีย';
+
+$strSave = 'บันทึก';
+$strScaleFactorSmall = 'อัตราย่อน้อยเกินไป ที่จะจัดให้สกีมาอยู่ในหน้าเดียว';
+$strSearch = 'ค้นหา';
+$strSearchFormTitle = 'ค้นหาในฐานข้อมูล';
+$strSearchInTables = 'ในตาราง:';
+$strSearchNeedle = 'คำ หรือ ค่าที่ต้องการค้นหา (wildcard: "%"):';
+$strSearchOption1 = 'อย่างน้อยหนึ่งคำ';
+$strSearchOption2 = 'ทุกคำ';
+$strSearchOption3 = 'เหมือนทั้งวลี';
+$strSearchOption4 = 'รูปแบบคำพ้อง (regular expression)';
+$strSearchResultsFor = 'ผลการค้นหา "<i>%s</i>" %s:';
+$strSearchType = 'ค้น:';
+$strSelectADb = 'โปรดเลือกฐานข้อมูล';
+$strSelectAll = 'เลือกทั้งหมด';
+$strSelectFields = 'เลือกฟิลด์ (อย่างน้อยหนึ่งฟิลด์):';
+$strSelectNumRows = 'ในคำค้น';
+$strSelectTables = 'เลือกตาราง';
+$strSend = 'ส่งมาเป็นไฟล์';
+$strSent = 'ถูกส่ง';
+$strServer = 'เซิร์ฟเวอร์';
+$strServerChoice = 'ตัวเลือกเซิร์ฟเวอร์';
+$strServerNotResponding = 'เซิร์ฟเวอร์ดังกล่าวไม่ตอบสนอง';
+$strServerStatus = 'ข้อมูลรันไทม์';
+$strServerStatusUptime = 'เซิร์ฟเวอร์ MySQL นี้รันมาเป็นเวลา %s. เริ่มตอน %s.';
+$strServerTabVariables = 'ตัวแปร';
+$strServerTrafficNotes = '<b>การจราจรของเซิร์ฟเวอร์</b>: ตารางนี้แสดงสถิติของการจราจรบนเครือข่าย สำหรับเซิร์ฟเวอร์ MySQL นี้ ตั้งแต่มันเริ่มทำงาน.';
+$strServerVars = 'ตัวแปร และค่ากำหนด ของเซิร์ฟเวอร์';
+$strServerVersion = 'รุ่นของเซิร์ฟเวอร์';
+$strSessionValue = 'ค่าเซสชั่น';
+$strSetEnumVal = 'ถ้าชนิดของฟิลด์เป็น "enum" หรือ "set" โปรดใส่ค่าตามรูปแบบ: \'a\',\'b\',\'c\'...<br />ถ้าต้องการใส่เครื่องหมาย backslash ("\\") หรือ อัญประกาศเดี่ยว ("\'") เข้าไปในค่าเหล่านั้น ให้ใส่เครื่องหมาย แบ๊กแสลช นำหน้า (ตัวอย่าง: \'\\\\xyz\' or \'a\\\'b\')';
+$strShow = 'แสดง';
+$strShowAll = 'แสดงทั้งหมด';
+$strShowColor = 'แสดงสี';
+$strShowDatadictAs = 'รูปแบบพจนานุกรมข้อมูล';
+$strShowFullQueries = 'แสดงคำค้นแบบเต็ม';
+$strShowGrid = 'แสดงกริด';
+$strShowingRecords = 'แสดงระเบียนที่ ';
+$strShowPHPInfo = 'แสดงข้อมูลของ PHP';
+$strShowTableDimension = 'แสดงมิติของตาราง';
+$strShowTables = 'แสดงตาราง';
+$strShowThisQuery = ' แสดงคำค้นนี้อีกที ';
+$strSimplifiedChinese = 'จีน (แผ่นดินใหญ่)';
+$strSingly = '(เดี่ยว)';
+$strSize = 'ขนาด';
+$strSlovak = 'สโลวัก';
+$strSlovenian = 'สโลเวเนีย';
+$strSort = 'เรียง';
+$strSortByKey = 'เรียงโดยคีย์';
+$strSpaceUsage = 'เนื้อที่ที่ใช้';
+$strSpanish = 'สเปน';
+$strSplitWordsWithSpace = 'คำถูกแบ่งด้วยช่องว่าง (" ").';
+$strSQLParserBugMessage = 'อาจจะมีการเปลี่ยนแปลงบางอย่าง ที่คุณพบว่ามันเป็นข้อผิดพลาดของตัวอ่านคำสั่ง SQL. กรุณาตรวจสอบคำค้นของคุณให้ถี่ถ้วน โดยเฉพาะการเปิด/ปิดเครื่องหมายคำพูด (quotes) ให้ถูกต้อง. อีกสาเหตุหนึ่งที่เป็นไปได้คือ คุณอาจจะอัพโหลดแฟ้มไบนารีข้างนอกช่วงของเครื่องหมายคำพูด. คุณสามารถที่จะลองคำค้นของคุณที่คอมมานด์ไลน์ของ MySQL ซึ่งคุณอาจจะพบข้อผิดพลาดบางอย่างในนั้น. หากเซิร์ฟเวอร์ MySQL แจ้งข้อผิดพลาดมา, ให้ลองอ่านดู มันอาจจะช่วยให้คุณวินิจฉัยปัญหาได้ดีขึ้น. ถ้าคุณยังพบปัญหากับ parser ใน phpMyAdmin อยู่ แต่ไม่พบปัญหากับ parser ในคอมมานด์ไลน์, ให้ลองลดความยาวของคำค้น SQL ลง จนกระทั่งเหลือคำค้น SQL เดี่ยวๆ ที่ยังทำให้เกิดปัญหาอยู่อีก, แล้วแจ้งข้อผิดพลาดดังกล่าวมาที่เรา, ส่งมันมาพร้อมกับตัวข้อมูลที่คุณค้น ซึ่งได้จากส่วนของ CUT ด้านล่าง.';
+$strSQLParserUserError = 'อาจจะมีข้อผิดพลาดบางอย่างในคำค้น SQL ของคุณ. หาก MySQL server ได้แจ้งข้อผิดพลาดมาด้านล่างนี้ ให้ลองอ่านดู มันอาจจะช่วยให้คุณวินิจฉัยปัญหาได้ดีขึ้น';
+$strSQLQuery = 'คำค้น SQL';
+$strSQLResult = 'ผลลัพธ์ SQL';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'ชื่อตัวแปรไม่ถูกต้อง';
+$strSQPBugUnclosedQuote = 'ไม่ได้ปิดเครื่องหมายคำพูด';
+$strSQPBugUnknownPunctuation = 'มีเครื่องหมายวรรคตอนที่ไม่รู้จัก';
+$strStatCheckTime = 'ตรวจสอบครั้งสุดท้ายเมื่อ';
+$strStatCreateTime = 'สร้างเมื่อ';
+$strStatement = 'คำสั่ง';
+$strStatUpdateTime = 'ปรับปรุงครั้งสุดท้ายเมื่อ';
+$strStatus = 'สถานะ';
+$strStrucCSV = 'ข้อมูล CSV (คั่นด้วยเครื่องหมายลูกน้ำ ",")';
+$strStrucData = 'ทั้งโครงสร้างและข้อมูล';
+$strStrucExcelCSV = 'ข้อมูล CSV สำหรับไมโครซอฟต์เอ็กเซล';
+$strStrucOnly = 'เฉพาะโครงสร้าง';
+$strStructPropose = 'เสนอโครงสร้างตาราง';
+$strStructure = 'โครงสร้าง';
+$strSubmit = 'ส่ง';
+$strSuccess = 'ทำคำค้นเสร็จเรียบร้อยแล้ว';
+$strSum = 'ผลรวม';
+$strSwedish = 'สวีเดน';
+$strSwitchToTable = 'สลับไปที่ตารางที่ถูกทำสำเนาไว้';
+
+$strTable = 'ตาราง ';
+$strTableComments = 'หมายเหตุของตาราง';
+$strTableEmpty = 'ชื่อตารางยังว่างอยู่!';
+$strTableHasBeenDropped = 'โยนตาราง %s ทิ้งไปเรียบร้อยแล้ว';
+$strTableHasBeenEmptied = 'ลบข้อมูลในตาราง %s เรียบร้อยแล้ว';
+$strTableHasBeenFlushed = 'ล้างตาราง %s เรียบร้อยแล้ว';
+$strTableMaintenance = 'การดูแลรักษาตาราง';
+$strTableOfContents = 'สารบัญ';
+$strTableOptions = 'ตัวเลือกตาราง';
+$strTables = '%s ตาราง';
+$strTableStructure = 'โครงสร้างตาราง';
+$strTblPrivileges = 'สิทธิเจาะจงเฉพาะตาราง';
+$strTextAreaLength = 'เนื่องจากความยาวของมัน <br />ฟิลด์นี้ ไม่อาจแก้ไขได้';
+$strThai = 'ไทย';
+$strTheme = 'หน้าตา';
+$strThisHost = 'โฮสต์นี้';
+$strThreadSuccessfullyKilled = 'เธรด %s ถูกทำลายเรียบร้อยแล้ว.';
+$strTime = 'เวลา';
+$strTotal = 'ทั้งหมด';
+$strTotalUC = 'รวม';
+$strTraditionalChinese = 'จีน (ไต้หวัน)';
+$strTraditionalSpanish = 'สเปน (ดั้งเดิม)';
+$strTraffic = 'การจราจร';
+$strTransformation_image_jpeg__inline = 'แสดงรูปขนาดเล็กที่กดเข้าไปดูภาพใหญ่ได้; ตัวเลือก: ความกว้าง, ความสูง หน่วยเป็นพิกเซล (คงสัดส่วนเดิม)';
+$strTransformation_image_jpeg__link = 'แสดงลิงก์ไปยังรูป (ดาวน์โหลดข้อมูลไบนารีโดยตรง/blob).';
+$strTransformation_image_png__inline = 'ดูรูปชนิด image/jpeg ทันที';
+$strTransformation_text_plain__formatted = 'สงวนการจัดรูปแบบเดิมในฟิลด์ไว้ -- ไม่แทรก escape character.';
+$strTruncateQueries = 'ตัดทอนคำค้นที่แสดง';
+$strTurkish = 'ตุรกี';
+$strType = 'ชนิด';
+
+$strUkrainian = 'ยูเครน';
+$strUncheckAll = 'ไม่เลือกเลย';
+$strUnicode = 'ยูนิโค้ด';
+$strUnique = 'เอกลักษณ์';
+$strUnknown = 'ไม่ระบุ';
+$strUnselectAll = 'ไม่เลือกเลย';
+$strUpdatePrivMessage = 'คุณได้ปรับปรุงสิทธิสำหรับ %s แล้ว';
+$strUpdateProfileMessage = 'ปรับปรุงโพรไฟล์เรียบร้อยแล้ว';
+$strUpdateQuery = 'ปรับปรุงคำค้น';
+$strUpdComTab = 'โปรดอ่านเอกสารเกี่ยวกับ วิธีการปรับปรุงตาราง Column_comments (เก็บหมายเหตุของคอลัมน์) ของคุณ';
+$strUsage = 'ใช้งาน';
+$strUseBackquotes = 'ใส่ \'backqoute\' ให้กับชื่อตารางและฟิลด์';
+$strUser = 'ผู้ใช้';
+$strUserAlreadyExists = 'มีผู้ใช้ %s อยู่แล้ว!';
+$strUserEmpty = 'ชื่อผู้ใช้ยังว่างอยู่!';
+$strUserName = 'ชื่อผู้ใช้';
+$strUserNotFound = 'ไม่พบผู้ใช้ที่เลือกในตารางแสดงสิทธิ';
+$strUserOverview = 'ข้อมูลทั่วไปของผู้ใช้';
+$strUsersDeleted = 'ลบผู้ใช้ที่เลือกไว้เรียบร้อยแล้ว.';
+$strUsersHavingAccessToDb = 'ผู้ใช้มีสิทธิเข้าถึงฐานข้อมูล &quot;%s&quot;';
+$strUseTables = 'ใช้ตาราง';
+$strUseTextField = 'ใช้ช่องใส่ข้อความ (text field)';
+$strUseThisValue = 'ใช้ค่านี้';
+
+$strValidateSQL = 'ตรวจสอบ SQL';
+$strValidatorError = 'ไม่สามารถเริ่มตัวตรวจสอบ SQL ได้. กรุณาตรวจสอบว่า คุณได้ติดตั้ง php extensions ที่จำเป็น ดังที่อธิบายไว้ใน %sdocumentation%s เรียบร้อยแล้ว';
+$strValue = 'ค่า';
+$strVar = 'ตัวแปร';
+$strViewDump = 'ดูโครงสร้างของตาราง';
+$strViewDumpDB = 'ดูโครงสร้างของฐานข้อมูล';
+
+$strWebServerUploadDirectory = 'ไดเรกทอรีสำหรับอัพโหลด ที่เว็บเซิร์ฟเวอร์';
+$strWebServerUploadDirectoryError = 'ไม่สามารถใช้งาน ไดเรกทอรีที่ตั้งไว้สำหรับอัพโหลดได้';
+$strWelcome = '%s ยินดีต้อนรับ';
+$strWestEuropean = 'ยุโรปตะวันตก';
+$strWildcard = 'ไวล์การ์ด';
+$strWithChecked = 'ทำกับที่เลือก:';
+$strWrongUser = 'อนุญาตให้เข้าใช้ไม่ได้ ชื่อผู้ใช้หรือรหัสผ่านผิด';
+
+$strXML = 'XML';
+
+$strYes = 'ใช่';
+
+$strZeroRemovesTheLimit = 'โปรดทราบ: ถ้าเปลี่ยนค่าเหล่านี้เป็น 0 (ศูนย์) จะหมายถึง ไม่มีขีดจำกัด.';
+$strZip = '"ถูกบีบอัดอยู่ (zip)"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAccessDeniedExplanation = 'phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAddIntoComments = 'Add into comments';//to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCSV = 'CSV'; //to translate
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDatabaseExportOptions = 'Database export options';//to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefaultValueHelp = 'For default values, please enter just a single value, without backslash escaping or quotes, using this format: a'; //to translate
+$strDelayedInserts = 'ใช้ delayed inserts'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDelOld = 'The current Page has References to Tables that no longer exist. Would you like to delete those References?'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+$strDumpSaved = 'Dump has been saved to file %s.'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+$strExecuteBookmarked = 'Execute bookmarked query'; //to translate
+
+$strFileAlreadyExists = 'File %s already exists on server, change filename or check overwrite option.'; //to translate
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushPrivilegesNote = 'โปรดทราบ: phpMyAdmin gets the users\' privileges directly from MySQL\'s privilege tables. The content of this tables may differ from the privileges the server uses if manual changes have made to it. In this case, you should %sreload the privileges%s before you continue.'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+$strJustDeleteDescr = 'The &quot;deleted&quot; users will still be able to access the server as usual until the privileges are reloaded.'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIME_transformation = 'Browser transformation';//to translate
+$strMIME_transformation_note = 'For a list of available transformation options and their MIME-type transformations, click on %stransformation descriptions%s';//to translate
+$strMIME_transformation_options_note = 'Please enter the values for transformation options using this format: \'a\', 100, b,\'c\'...<br />If you ever need to put a backslash ("\") or a single quote ("\'") amongst those values, backslashes it (for example \'\\\\xyz\' or \'a\\\'b\').';//to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMIME_without = 'MIME-types printed in italics do not have a seperate transformation function';//to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoPermission = 'The web server does not have permission to save the file %s.'; //to translate
+$strNoSpace = 'Insufficient space to save the file %s.'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescReplSlave = 'Needed for the replication slaves.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strPrivDescSuper = 'อนุญาตให้เชื่อมต่อ, แม้ว่าจำนวนการเชื่อมต่อจะถึงระดับสูงสุดแล้ว; Required for most administrative operations like setting global variables or killing threads of other users.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+$strQueryWindowLock = 'Do not overwrite this query from outside the window'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSaveOnServer = 'Save on server in %s directory'; //to translate
+$strSecretRequired = 'The configuration file now needs a secret passphrase (blowfish_secret).'; //to translate
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'ข้อมูล Native MS Excel'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strToggleScratchboard = 'toggle scratchboard'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__external = 'สำหรับ ลีนุกซ์ เท่านั้น: Launches an external application and feeds the fielddata via standard input. Returns standard output of the application. Default is Tidy, to pretty print HTML code. For security reasons, you have to manually edit the file libraries/transformations/text_plain__external.inc.php and insert the tools you allow to be run. The first option is then the number of the program you want to use and the second option are the parameters for the program. The third parameter, if set to 1 will convert the output using htmlspecialchars() (Default is 1). A fourth parameter, if set to 1 will put a NOWRAP to the content cell so that the whole output will be shown without reformatting (Default 1)';//to translate
+$strTransformation_text_plain__imagelink = 'Displays an image and a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is the width in pixels, third is the height.'; //to translate
+$strTransformation_text_plain__link = 'Displays a link, the field contains the filename; first option is a prefix like "http://domain.com/", second option is a title for the link.'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+$strTransformation_text_plain__substr = 'แสดงข้อความบางส่วนเท่านั้น. First option is an offset to define where the output of your text starts (Default 0). Second option is an offset how much text is returned. If empty, returns all the remaining text. The third option defines which chars will be appended to the output when a substring is returned (Default: ...) .';//to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseHostTable = 'ใช้ Host Table'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewDumpDatabases = 'View dump (schema) of databases';//to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/translatecount.sh b/lang/translatecount.sh
new file mode 100755
index 0000000000..908166eb63
--- /dev/null
+++ b/lang/translatecount.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# $Id$
+##
+# Shell script to produce counts of just how out of date the translations are!
+##
+# Accepts optional parameters of a list of files to produce counts from
+# Defaults to using all files
+##
+# Written by Robin Johnson <robbat2 at users.sourceforge.net>
+##
+srcfilelist=${@}
+destfilelist=""
+translationmatch='//to translate'
+suffixtoremove='.inc.php'
+added=0
+if [ -z "${srcfilelist}" ]; then
+ srcfilelist="*.inc.php"
+ added=1
+fi;
+for i in ${srcfilelist}; do
+ if [ ! -e ${i} ]; then
+ $i=`eval ${i}*php3`
+ fi
+ if [ -e ${i} ]; then
+ destfilelist="${destfilelist} ${i}"
+ fi;
+done;
+destfilelist=`echo ${destfilelist} | xargs -n1 | egrep '.inc.php$'`
+if [ ! -z "${destfilelist}" ]; then
+ grep -c -- "${translationmatch}" ${destfilelist} | sort -t':' -n +1 | sed -e "s/${suffixtoremove}//g" | xargs -n1 | egrep -v ':0$'
+fi;
diff --git a/lang/turkish-utf-8.inc.php b/lang/turkish-utf-8.inc.php
new file mode 100644
index 0000000000..574fa995a9
--- /dev/null
+++ b/lang/turkish-utf-8.inc.php
@@ -0,0 +1,1453 @@
+<?php
+/* $Id$ */
+
+// phpMyAdmin Türkçe 01.09.2006 itibariyle önceki çeviriye göre çok daha
+// iyi bir çeviriyle yeniden yapılmıştır.
+// Birim ayarları Türkçe standartlarına göre tam ve doğru olarak ayarlanmıştır.
+// Çeviren Burak Yavuz (BouRock@live.com)
+// Çeviri sürümü phpMyAdmin 2.10.1.0
+
+$charset = 'utf-8';
+$text_dir = 'ltr'; // ('ltr' for left to right, 'rtl' for right to left)
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+$byteUnits = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB');
+
+// MySQL manual language definition, this is optional, en will be used
+// if not defined
+$mysql_4_1_doc_lang = 'tr';
+$mysql_5_0_doc_lang = 'tr';
+$mysql_5_1_doc_lang = 'tr';
+
+$day_of_week = array('Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi');
+$month = array('Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%d %B %Y saat %H:%M:%S';
+$timespanfmt = '%s gün, %s saat, %s dakika ve %s saniye';
+
+$strAbortedClients = 'İptal edilen';
+$strAccessDenied = 'Erişim engellendi';
+$strAccessDeniedCreateConfig = 'Muhtemelen bunun sebebi yapılandırma dosyasını oluşturmadığınız içindir. Bir tane oluşturmak için %1$skurulum programcığı%2$s kullanmak isteyebilirsiniz.';
+$strAccessDeniedExplanation = 'phpMyAdmin MySQL sunucusuna bağlanmayı denedi ama sunucu bağlantıyı reddetti. config.inc içindeki anamakine (host) adresini, kullanıcı adını ve parolayı kontrol edin ve MySQL sunucusunun yöneticisi tarafından verilen bilgiyle uyuştuğundan emin olun.';
+$strAction = 'Eylem';
+$strAddAutoIncrement = 'AUTO_INCREMENT değeri ekle';
+$strAddClause = '%s komutu ekle';
+$strAddConstraints = 'Kısıtlamaları ekle';
+$strAddDeleteColumn = 'Alan Sütunları Ekle/Sil';
+$strAddDeleteRow = 'Kriter Satırı Ekle/Sil';
+$strAddFields = '%s alan ekle';
+$strAddHeaderComment = 'Başlık içine özel yorum ekle (\\n satırları böler)';
+$strAddIntoComments = 'Yorumların içine ekle';
+$strAddNewField = 'Yeni alan ekle';
+$strAddPrivilegesOnDb = 'Aşağıdaki veritabanına yetkileri ekle';
+$strAddPrivilegesOnTbl = 'Aşağıdaki tabloya yetkileri ekle';
+$strAddSearchConditions = 'Arama koşulu ekle ("where" koşulu gövdesi):';
+$strAddToIndex = 'İndekse&nbsp;%s&nbsp;sütun ekle';
+$strAddUserMessage = 'Yeni bir kullanıcı eklediniz.';
+$strAddUser = 'Yeni Kullanıcı ekle';
+$strAdministration = 'Yönetim';
+$strAfterInsertBack = 'Önceki sayfaya geri dön';
+$strAfterInsertNewInsert = 'Yeni başka bir satır ekle';
+$strAfterInsertNext = 'Sonraki satırı düzenle';
+$strAfterInsertSame = 'Bu sayfaya geri dön';
+$strAfter = '%s tablosundan sonra';
+$strAllowInterrupt = 'Küçük programcığın zaman sınırına yaklaşıldığını algılaması durumunda içeri aktarımı kesmeye izin ver. Bu büyük dosyaların içeri aktarımı için iyi bir yol olabilir, ancak hareketleri kesebilir.';
+$strAllTableSameWidth = 'Bütün tablolar aynı genişlikte gösterilsin?';
+$strAll = 'Tümü';
+$strAlterOrderBy = 'Tablo sıralamasını şuna göre değiştir';
+$strAnalyzeTable = 'Tabloyu analiz et';
+$strAndThen = 've';
+$strAnd = 'Ve';
+$strAngularLinks = 'Yönlendirmeli bağlantılar';
+$strAnIndex = '%s üzerinde bir indeks eklendi';
+$strAny = 'Herhangi';
+$strAnyHost = 'Herhangi anamakine';
+$strAnyUser = 'Herhangi kullanıcı';
+$strApproximateCount = 'Yaklaşık olabilir. SSS 3.11\'e bakın';
+$strAPrimaryKey = '%s üzerinde birincil anahtar eklendi';
+$strArabic = 'Arapça';
+$strArmenian = 'Ermenice';
+$strAscending = 'Küçükten Büyüğe';
+$strAtBeginningOfTable = 'Tablonun Başında';
+$strAtEndOfTable = 'Tablonun Sonunda';
+$strAttr = 'Öznitelikler';
+$strAutomaticLayout = 'Otomatik yerleşim';
+
+$strBack = 'Geri';
+$strBaltic = 'Baltık';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinary = 'Binari';
+$strBinaryDoNotEdit = 'Binari - düzenlemeyiniz';
+$strBinaryLog = 'Binari günlüğü';
+$strBinLogEventType = 'Olay türü';
+$strBinLogInfo = 'Bilgi';
+$strBinLogName = 'Günlük ismi';
+$strBinLogOriginalPosition = 'Orijinal konum';
+$strBinLogPosition = 'Konum';
+$strBinLogServerId = 'Sunucu ID';
+$strBookmarkAllUsers = 'Bütün kullanıcıların bu işaretlemeye erişimlerine izin ver';
+$strBookmarkCreated = 'İşaretleme %s oluşturuldu';
+$strBookmarkDeleted = 'İşaretleme silindi.';
+$strBookmarkLabel = 'Etiket';
+$strBookmarkQuery = 'SQL sorgusu işaretlendi';
+$strBookmarkReplace = 'Mevcut aynı ismin işaretlemesini değiştir';
+$strBookmarkThis = 'Bu SQL sorgusunu işaretle';
+$strBookmarkView = 'Sadece göster';
+$strBrowseDistinctValues = 'Farklı değerlere gözat';
+$strBrowseForeignValues = 'Yabancı değerlere gözat';
+$strBrowse = 'Gözat';
+$strBufferPoolActivity = 'Ara Bellek Havuzu Etkinliği';
+$strBufferPool = 'Ara Bellek Havuzu';
+$strBufferPoolUsage = 'Ara Bellek Havuzu Kullanımı';
+$strBufferReadMissesInPercent = 'Okuma kaçırması %';
+$strBufferReadMisses = 'Okuma kaçırıyor';
+$strBufferWriteWaitsInPercent = 'Yazma beklemesi %';
+$strBufferWriteWaits = 'Yazma bekliyor';
+$strBulgarian = 'Bulgarca';
+$strBusyPages = 'Meşgul sayfalar';
+$strBzip = '"bzip olarak"';
+
+$strCalendar = 'Takvim';
+$strCancel = 'İptal';
+$strCanNotLoadExportPlugins = 'Dışarı aktarma eklentileri yüklenemedi, lütfen kurulumunuzu kontrol edin!';
+$strCanNotLoadImportPlugins = 'İçeri aktarma eklentileri yüklenemedi, lütfen kurulumunuzu kontrol edin!';
+$strCannotLogin = 'MySQL sunucusuna oturum açılamıyor';
+$strCantLoad = '[a@http://php.net/%1$s@Documentation][em]%1$s[/em][/a] uzantısı yüklenemiyor. Lütfen PHP yapılandırmanızı kontrol edin.';
+$strCantLoadRecodeIconv = 'Karakter grubu dönüşümü için gerekli olan iconv veya recode uzantıları yüklenemedi. Ya PHP\'yi bu uzantıları etkinleştirmek için yapılandırın ya da phpMyAdmin içinde karakter grubu dönüşümünü etkisizleştirin...';
+$strCantRenameIdxToPrimary = 'İndeks\'i PRIMARY olarak yeniden adlandıramazsınız!';
+$strCantUseRecodeIconv = 'Gerekli uzantılar yüklenmiş görünmesine rağmen, ne iconv, ne libinconv, ne de recode_string işlevi kullanılamadı. PHP yapılandırmanızı kontrol edin.';
+$strCardinality = 'Önemlilik';
+$strCaseInsensitive = 'büyük küçük harfe duyarsız';
+$strCaseSensitive = 'büyük küçük harfe duyarlı';
+$strCentralEuropean = 'Orta Avrupa';
+$strChangeCopyMode = 'Aynı yetkilerle yeni bir kullanıcı oluştur ve ...';
+$strChangeCopyModeCopy = '... eski olanı sakla.';
+$strChangeCopyModeDeleteAndReload = '... eski olanı kullanıcı tablolarından sil ve sonra da yetkileri yeniden yükle.';
+$strChangeCopyModeJustDelete = '... eski olanı kullanıcı tablolarından sil.';
+$strChangeCopyModeRevoke = '... eski olandan bütün aktif yetkileri iptal et ve sonra da sil.';
+$strChangeCopyUser = 'Otutum Açma Bilgisini değiştir / Kullanıcıyı kopyala';
+$strChange = 'Değiştir';
+$strChangeDisplay = 'Göstermek için alan seçin';
+$strChangePassword = 'Parola değiştir';
+$strCharset = 'Karakter grubu';
+$strCharsetOfFile = 'Dosyanın karakter grubu:';
+$strCharsetsAndCollations = 'Karakter Grupları ve Karşılaştırmalar';
+$strCharsets = 'Karakter grupları';
+$strCheckAll = 'Tümünü İşaretle';
+$strCheckOverhead = 'Ek yükü olan tabloları kontrol et';
+$strCheckPrivsLong = '&quot;%s&quot; veritabanı için yetkileri kontrol et.';
+$strCheckPrivs = 'Yetkileri kontrol et';
+$strCheckTable = 'Tabloyu kontrol et';
+$strChoosePage = 'Lütfen düzenlemek için sayfa seçin';
+$strColComFeat = 'Sütun Yorumları gösteriliyor';
+$strCollation = 'Karşılaştırma';
+$strColumnNames = 'Sütun adları';
+$strColumnPrivileges = 'Sütuna özgü yetkiler';
+$strCommand = 'Komut';
+$strComments = 'Yorumlar';
+$strCompatibleHashing = 'MySQL&nbsp;4.0 uyumlu';
+$strCompleteInserts = 'Bütün eklemeler';
+$strCompression = 'Sıkıştırma';
+$strCompressionWillBeDetected = 'İçeri aktarılmış dosya sıkıştırması otomatik olarak bu dosya türlerinden algılanacak: %s';
+$strConfigDefaultFileError = 'Varsayılan yapılandırma bundan yüklenemedi: "%1$s"';
+$strConfigFileError ='phpMyAdmin yapılandırma dosyanızı okuyamadı!<br />Bu, eğer PHP, içinde ayrıştırma hatası bulursa ya da dosyayı bulamazsa meydana gelebilir.<br />Lütfen aşağıdaki bağlantıyı kullanarak yapılandırma dosyasını doğrudan çağırın ve aldığınız PHP hata mesaj(larını)ı okuyun. Çoğu durumda herhangi bir yerde tırnak veya noktalı virgül eksiktir.<br />Eğer boş bir sayfa karşınıza çıkıyorsa, her şey yolunda demektir.';
+$strConfigureTableCoord = 'Lütfen %s tablosu için koordinatları yapılandırın';
+$strConnectionError = 'Bağlanamıyor: geçersiz ayarlar.';
+$strConnections = 'Bağlantılar';
+$strConstraintsForDumped = 'Dökümü yapılmış tablolar için kısıtlamalar';
+$strConstraintsForTable = 'Tablo kısıtlamaları';
+$strControluserFailed = 'Yapılandırmanız içinde tanımlanmış denetim kullanıcıları için bağlantı başarısız.';
+$strCookiesRequired = 'Bu kısmı geçmek için tanımlama bilgileri (Cookies) açık olmalı.';
+$strCopyDatabaseOK = '%s veritabanı %s\'e kopyalandı.';
+$strCopy = 'Kopyala';
+$strCopyTableOK = '%s tablosu %s üzerine kopyalandı.';
+$strCopyTableSameNames = 'Tablo aynısına kopyalanamıyor!';
+$strCopyTable = 'Tabloyu şuna (veritabanı<b>.</b>tablo) kopyala:';
+$strCouldNotKill = 'phpMyAdmin %s işlemini sonlandıramadı. Muhtemelen zaten kapatılmış.';
+$strCreateDatabaseBeforeCopying = 'Kopyalamadan önce CREATE DATABASE (Veritabanı Oluştur)';
+$strCreateIndex = '&nbsp;%s&nbsp;sütunda indeks oluştur.';
+$strCreateIndexTopic = 'Yeni bir indeks oluştur';
+$strCreateNewDatabase = 'Yeni veritabanı oluştur';
+$strCreateNewTable = '%s veritabanında yeni tablo oluştur';
+$strCreate = 'Oluştur';
+$strCreatePage = 'Yeni bir sayfa oluştur';
+$strCreatePdfFeat = 'PDF\'lerin oluşturulması';
+$strCreateRelation = 'İlişki oluştur';
+$strCreateTable = 'Tablo oluştur';
+$strCreateUserDatabase = 'Kullanıcı için veritabanı';
+$strCreateUserDatabaseName = 'Aynı isimle veritabanı oluştur ve tüm yetkileri ver';
+$strCreateUserDatabaseNone = 'Yok';
+$strCreateUserDatabaseWildcard = 'Joker isimlere tüm yetkileri ver (kullanıcıadı_%)';
+$strCreationDates = 'Oluşturma/Güncelleme/Kontrol tarihleri';
+$strCriteria = 'Kriter';
+$strCroatian = 'Hırvatça';
+$strCSV = 'CSV';
+$strCyrillic = 'Kiril';
+$strCzech = 'Çekçe';
+$strCzechSlovak = 'Çekçe-Slovakça';
+
+$strDanish = 'Danca';
+$strDatabaseEmpty = 'Veritabanı adı boş!';
+$strDatabaseExportOptions = 'Veritabanı dışarı aktarma seçenekleri';
+$strDatabaseHasBeenDropped = '%s veritabanı kaldırıldı.';
+$strDatabasesDropped = '%s veritabanları başarılı olarak kaldırıldı.';
+$strDatabasesStatsDisable = 'İstatistikler etkisiz';
+$strDatabasesStatsEnable = 'İstatistikler etkin';
+$strDatabasesStatsHeavyTraffic = 'Not: Buradaki veritabanı istatistiklerini etkinleştirmek web sunucusu ile MySQL sunucusu arasında yüksek trafiğe yol açabilir.';
+$strDatabasesStats = 'Veritabanı istatistikleri';
+$strDatabases = 'Veritabanları';
+$strDatabase = 'Veritabanı';
+$strDataDict = 'Veri sözlüğü';
+$strDataOnly = 'Sadece veri';
+$strDataPages = 'Veri içeren sayfalar';
+$strData = 'Veri';
+$strDBComment = 'Veritabanı yorumu:';
+$strDBCopy = 'Veritabanını şuraya kopyala:';
+$strDbIsEmpty = 'Veritabanı boş olarak görünüyor!';
+$strDbPrivileges = 'Veritabanına özgü yetkiler';
+$strDBRename = 'Veritabanını şuna yeniden adlandır';
+$strDbSpecific = 'Veritabanına özgü';
+$strDefaultEngine = '%s bu MySQL sunucusundaki varsayılan depolama motorudur.';
+$strDefaultValueHelp = 'Varsayılan değerler için lütfen sola eğik çizgisiz veya alıntısız sadece tek değer girin. Bu biçimi kullanın: a';
+$strDefault = 'Varsayılan';
+$strDefragment = 'Tabloyu birleştir';
+$strDelayedInserts = 'Gecikmiş eklemeleri kullan';
+$strDeleteAndFlushDescr = 'Bu en temiz yoldur fakat yetkileri yeniden yüklemek zaman alabilir.';
+$strDeleteAndFlush = 'Kullanıcıları sil ve sonra da yetkileri yeniden yükle.';
+$strDeleted = 'Satır silindi';
+$strDeleteNoUsersSelected = 'Silmek için kullanıcı seçilmedi!';
+$strDeleteRelation = 'İlişkiyi sil';
+$strDelete = 'Sil';
+$strDeleting = '%s siliniyor';
+$strDelimiter = 'Sınırlayıcı';
+$strDelOld = 'Şu anki sayfa, daha fazla bulunması gereksiz tablolara verilmiş referanslara sahip. Bu referansları silmek ister misiniz?';
+$strDescending = 'Büyükten Küçüğe';
+$strDescription = 'Açıklama';
+$strDesigner = 'Tasarımcı';
+$strDesignerHelpDisplayField = 'Görüntü alanı pembe ile gösterilir. Alanı, görüntü alanı olarak ayarlamak/ayarı kaldırmak için "Görüntülemek için alan seç" simgesine tıklayın, sonrada uygun alan adı üzerine tıklayın.';
+$strDictionary = 'sözlük';
+$strDirectLinks = 'Doğrudan bağlantılar';
+$strDirtyPages = 'Bozuk sayfalar';
+$strDisabled = 'Etkisiz';
+$strDisableForeignChecks = 'Yabancı anahtar işaretlerini etkisizleştir';
+$strDisplayFeat = 'Özellikleri Göster';
+$strDisplayOrder = 'Görünüm düzeni:';
+$strDisplayPDF = 'PDF şemasını göster';
+$strDoAQuery = '"Örnek sorgu" yap. (joker: "%")';
+$strDocSQL = 'DocSQL';
+$strDocu = 'Belgeler';
+$strDoYouReally = 'Aşağıdaki komutu uygulamak istediğinize emin misiniz? ';
+$strDropDatabaseStrongWarning = 'Bütün bir veritabanını YOK ETMEK üzeresiniz!';
+$strDrop = 'Kaldır';
+$strDropUsersDb = 'Kullanıcılarla aynı isimlerde olan veritabanlarını kaldır.';
+$strDumpingData = 'Tablo döküm verisi';
+$strDumpSaved = 'Döküm dosyası %s dosyasına kaydedildi';
+$strDumpXRows = '%s satır dökümü, %s. kayıttan başlıyor.';
+$strDynamic = 'değişken';
+
+$strEdit = 'Düzenle';
+$strEditPDFPages = ' PDF Sayfalarını düzenle';
+$strEditPrivileges = 'Yetkileri düzenle';
+$strEffective = 'Etkili';
+$strEmpty = 'Boşalt';
+$strEmptyResultSet = 'MySQL boş bir sonuç kümesi döndürdü (örn. sıfır satır).';
+$strEnabled = 'Etkin';
+$strEncloseInTransaction = 'İşlem içinde dışarı aktarmayı kapsa';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'Son';
+$strEngineAvailable = '%s bu MySQL sunucusunda var.';
+$strEngineDisabled = '%s bu MySQL sunucusu için etkisizleştirildi.';
+$strEngines = 'Motorlar';
+$strEngineUnsupported = 'Bu MySQL sunucusu %s depolama motorunu desteklemez.';
+$strEnglishPrivileges = ' Not: MySQL yetki adları İngilizce olarak belirtilir ';
+$strEnglish = 'İngilizce';
+$strError = 'Hata';
+$strErrorInZipFile = 'ZIP arşivinde hata:';
+$strErrorRelationAdded = 'Hata: İlişki eklenmedi.';
+$strErrorRelationExists = 'Hata: İlişki zaten var.';
+$strErrorRenamingTable = '%1$s tablo adını %2$s tablo adına değiştirme hatası';
+$strErrorSaveTable = 'Tasarımcı düzenlemelerini kaydetme hatası.';
+$strEscapeWildcards = '_ ve % jokerleri harfi harfine kullanılmak için \ ile doldurun.';
+$strEsperanto = 'Esperanto';
+$strEstonian = 'Estçe';
+$strEvent = 'Olay';
+$strExcelEdition = 'Excel yapısı';
+$strExecuteBookmarked = 'İşaretlenmiş sorguyu çalıştır';
+$strExplain = 'SQL\'i açıkla';
+$strExport = 'Dışarı Aktar';
+$strExportImportToScale = 'Ölçeklemek için İçeri/Dışarı Aktar';
+$strExportMustBeFile = 'Seçili dışarı aktarma türü dosyaya kaydedilmelidir!';
+$strExtendedInserts = 'Genişletilmiş eklemeler';
+$strExtra = 'Ekstra';
+
+$strFailedAttempts = 'Başarısız deneme';
+$strField = 'Alan';
+$strFieldHasBeenDropped = '%s alanı kaldırıldı';
+$strFieldInsertFromFileTempDirNotExists = 'Gönderilen dosyayı taşıma hatası, SSS 1.11\'e bakın';
+$strFieldsEnclosedBy = 'Alanları kapsayan:';
+$strFieldsEscapedBy = 'Alanları dolduran:';
+$strFields = 'Alanlar';
+$strFieldsTerminatedBy = 'Alanları sonlandıran:';
+$strFileAlreadyExists = '%s dosyası zaten sunucuda var, dosya adını değiştirin veya üzerine yazma seçeneğini işaretleyin.';
+$strFileCouldNotBeRead = 'Dosya okunamadı';
+$strFileNameTemplateDescription = 'Bu değer %1$sstrftime%2$s kullanılarak yorumlanır, bu yüzden zaman biçimlendirme dizgisi kullanabilirsiniz. İlave olarak yandaki dönüşümler meydana gelecek: %3$s. Diğer metin olduğu gibi tutulacak.';
+$strFileNameTemplateDescriptionDatabase = 'veritabanı adı';
+$strFileNameTemplateDescriptionServer = 'sunucu adı';
+$strFileNameTemplateDescriptionTable = 'tablo adı';
+$strFileNameTemplate = 'Dosya adı şablonu';
+$strFileNameTemplateRemember = 'şablonu hatırla';
+$strFiles = 'Dosyalar';
+$strFileToImport = 'İçeri aktarmak için dosya';
+$strFixed = 'Sabit';
+$strFlushPrivilegesNote = 'Not: phpMyAdmin kullanıcıların yetkilerini doğrudan MySQL\'in yetki tablolarından alır. Bu tabloların içerikleri, eğer elle değiştirildiyse sunucunun kullandığı yetkilerden farklı olabilir. Bu durumda devam etmeden önce %syetkileri yeniden yüklemeniz%s gerekir.';
+$strFlushQueryCache = 'Sorgu önbelleğini temizle';
+$strFlushTables = 'Tüm tabloları temizle (kapat)';
+$strFlushTable = 'Tabloyu temizle ("FLUSH")';
+$strFontSize = 'Yazı Tipi boyutu';
+$strFormat = 'Biçim';
+$strFormEmpty = 'Formda eksik değer!';
+$strFreePages = 'Serbest sayfalar';
+$strFullText = 'Tam Metinler';
+$strFunctions = 'İşlevler';
+$strFunction = 'İşlev';
+
+$strGenBy = 'Üreten:';
+$strGeneralRelationFeat = 'Genel ilişki özellikleri';
+$strGeneratePassword = 'Parola Üret';
+$strGenerate = 'Üret';
+$strGenTime = 'Üretim Zamanı';
+$strGeorgian = 'Gürcüce';
+$strGerman = 'Almanca';
+$strGlobal = 'genel';
+$strGlobalPrivileges = 'Genel yetkiler';
+$strGlobalValue = 'Genel değer';
+$strGo = 'Git';
+$strGrantOption = 'Onayla';
+$strGreek = 'Yunanca';
+$strGzip = '"gzip olarak"';
+
+$strHandler = 'Denetimci';
+$strHasBeenAltered = 'değiştirildi.';
+$strHaveToShow = 'Görüntülemek için en az bir sütun seçmelisiniz';
+$strHebrew = 'İbranice';
+$strHelp = 'Yardım';
+$strHexForBLOB = 'BLOB için onaltılık sistem kullan';
+$strHide = 'Gizle';
+$strHideShowAll = 'Tümünü Gizle/Göster';
+$strHideShowNoRelation = 'İlişkisi olmayan Tabloları Gizle/Göster';
+$strHome = 'Giriş';
+$strHomepageOfficial = 'Resmî phpMyAdmin Anasayfası';
+$strHost = 'Anamakine';
+$strHostEmpty = 'Anamakine adı boş!';
+$strHTMLExcel = 'Microsoft Excel 2000';
+$strHTMLWord = 'Microsoft Word 2000';
+$strHungarian = 'Macarca';
+
+$strIcelandic = 'İzlandaca';
+$strId = 'ID';
+$strIdxFulltext = 'Tam metin';
+$strIEUnsupported = 'Internet Explorer bu işlevi desteklemiyor.';
+$strIgnoreDuplicates = 'Kopya satırları yoksay';
+$strIgnoreInserts = 'Yoksayılan eklemeleri kullan';
+$strIgnore = 'Yoksay';
+$strImportExportCoords = 'PDF şeması için düzenlemeleri İçeri/Dışarı Aktar';
+$strImportFiles = 'Dosyaları içeri aktar';
+$strImportFormat = 'İçeri aktarılmış dosyanın biçimi';
+$strImportSuccessfullyFinished = 'İçeri aktarma başarılı olarak bitti, %d sorgu çalıştırıldı.';
+$strImport = 'İçeri Aktar';
+$strIndexes = 'İndeksler';
+$strIndexHasBeenDropped = '%s indeksi kaldırıldı';
+$strIndexName = 'İndeks ismi:';
+$strIndexType = 'İndeks türü :';
+$strIndexWarningTable = '`%s` tablosunun indeksleri ile ilgili sorunlar';
+$strIndex = 'İndeks';
+$strInnoDBAutoextendIncrement = 'Artış miktarını otomatik genişlet';
+$strInnoDBAutoextendIncrementDesc = 'Tablo dolduğunda otomatik genişleyen tablo alanının genişlemesi için artış miktarı boyutu.';
+$strInnoDBBufferPoolSize = 'Ara bellek havuzu boyutu';
+$strInnoDBBufferPoolSizeDesc = 'Hafıza ara belleği boyutu InnoDB, veriyi önbelleklemek ve tablolarını indekslemek için kullanır.';
+$strInnoDBDataFilePath = 'Veri dosyaları';
+$strInnoDBDataHomeDirDesc = 'Tüm InnoDB veri dosyaları için dizin yolunun ortak kısmı.';
+$strInnoDBDataHomeDir = 'Veri ana dizini';
+$strInnoDBPages = 'sayfa';
+$strInnodbStat = 'InnoDB Durumu';
+$strInsecureMySQL = 'Yapılandırma dosyanız varsayılan MySQL yetkili hesapla uyuşan ayarlar (parolasız root) içeriyor. MySQL sunucunuz bu varsayılan, dışardan girişe açık ayarlarla çalışıyor ve bu güvenlik açığını gerçekten düzeltmeniz gerekmektedir.';
+$strInsertAsNewRow = 'Yeni satır olarak ekle';
+$strInsert = 'Ekle';
+$strInternalRelationAdded = 'Dahili ilişki eklendi';
+$strInternalRelations = 'Dahili ilişkiler';
+$strInUse = 'kullanımda';
+$strInvalidAuthMethod = 'Yapılandırma içinde geçersiz kimlik denetimi yöntemi ayarı:';
+$strInvalidColumnCount = 'Sütun sayısı sıfırdan büyük olmalı.';
+$strInvalidColumn = 'Geçersiz sütun (%s) belirlenmiş!';
+$strInvalidCSVFieldCount = 'CSV girişinde %d. satırda geçersiz alan sayısı.';
+$strInvalidCSVFormat = 'CSV girişinin %d. satırında geçersiz biçim.';
+$strInvalidCSVParameter = 'CSV girişi için geçersiz parametre: %s';
+$strInvalidDatabase = 'Geçersiz veritabanı';
+$strInvalidFieldAddCount = 'En az bir alan eklemek zorundasınız.';
+$strInvalidFieldCount = 'Tablonun en az bir alanı olmalı.';
+$strInvalidLDIImport = 'Bu eklenti sıkıştırılmış içeri aktarım dosyalarını desteklemez!';
+$strInvalidRowNumber = '%d geçerli bir satır sayısı değil.';
+$strInvalidServerHostname = '%1$s sunucusu için geçersiz anamakine. Lütfen yapılandırmanızı gözden geçirin.';
+$strInvalidServerIndex = 'Geçersiz sunucu indeksi: "%s"';
+$strInvalidTableName = 'Geçersiz tablo adı';
+
+$strJapanese = 'Japonca';
+$strJoins = 'Birleştirmeler';
+$strJumpToDB = '&quot;%s&quot; veritabanına git.';
+$strJustDeleteDescr = '&quot;Silinmiş&quot; kullanıcılar, yetkiler yeniden yüklenene kadar her zaman olduğu gibi sunucuya hala erişilebileceklerdir.';
+$strJustDelete = 'Sadece kullanıcıları yetki tablolarından sil.';
+
+$strKeepPass = 'Parolayı değiştirme';
+$strKeyCache = 'Anahtar önbelleği';
+$strKeyname = 'Anahtar ismi';
+$strKill = 'Sonlandır';
+$strKnownExternalBug = '%s işlevselliği bilinen bir hata tarafından zarar görmüş, bakınız %s';
+$strKorean = 'Korece';
+
+$strLandscape = 'Peyzaj';
+$strLanguage = 'Dil';
+$strLanguageUnknown = 'Bilinmeyen dil: %1$s.';
+$strLatchedPages = 'Sabitlenmiş sayfalar';
+$strLatexCaption = 'Tablo başlığı';
+$strLatexContent = '__TABLE__ tablosunun içeriği';
+$strLatexContinuedCaption = 'Devam eden tablo başlığı';
+$strLatexContinued = '(devam eden)';
+$strLatexIncludeCaption = 'Tablo başlığını dahil et';
+$strLatexLabel = 'Etiket anahtarı';
+$strLaTeX = 'LaTeX';
+$strLatexStructure = '__TABLE__ tablosunun yapısı';
+$strLatvian = 'Litvanyaca';
+$strLDILocal = 'YEREL anahtar kelime kullan';
+$strLDI = 'VERİ YÜKLE kullanarak CSV';
+$strLengthSet = 'Uzunluk/Değerler';
+$strLimitNumRows = 'Sayfa başına satır sayısı';
+$strLinesTerminatedBy = 'Satırı sonlandıran:';
+$strLinkNotFound = 'Bağlantı bulunamadı';
+$strLinksTo = 'Şuna bağlantı ver ->';
+$strLithuanian = 'Litvanyaca';
+$strLocalhost = 'Yerel';
+$strLocationTextfile = 'Metin dosyasının yeri';
+$strLoginInformation = 'Oturum Açma Bilgisi';
+$strLogin = 'Oturum Aç';
+$strLogout = 'Oturumu Kapat';
+$strLogPassword = 'Parola:';
+$strLogServer = 'Sunucu';
+$strLogUsername = 'Kullanıcı Adı:';
+$strLongOperation = 'Bu işlem uzun zaman alabilir. Yine de ilerlensin mi?';
+
+$strMaxConnects = 'En fazla eşzamanlı bağlantı';
+$strMaximalQueryLength = 'Oluşturulan sorgunun azami uzunluğu';
+$strMaximumSize = 'En fazla: %s%s';
+$strMbExtensionMissing = 'mbstring PHP uzantısı bulunamadı ve çoklu bayt karakter grubu kullandığınız görünüyor. Mbstring uzantısı olmadan phpMyAdmin karakter dizgilerini doğru olarak bölemez ve bu beklenmedik sonuçlar doğurabilir.';
+$strMbOverloadWarning = 'PHP yapılandırmanızda mbstring.func_overload işlevini etkinleştirmişsiniz. Bu seçenek phpMyAdmin ile uyumlusuzdur ve bazı veri bozulmalarına sebep olabilir!';
+$strMIME_available_mime = 'Mevcut MIME türleri';
+$strMIME_available_transform = 'Mevcut dönüşümler';
+$strMIME_description = 'Açıklama';
+$strMIME_MIMEtype = 'MIME türü';
+$strMIME_nodescription = 'Bu dönüşüm için mevcut açıklama yok.<br />Lütfen yazara %s ne yapar diye sorun.';
+$strMIME_transformation_note = 'Mevcut dönüşüm seçeneklerinin listesi ve bunların MIME türü dönüşümleri için %sdönüşüm tanımlamarı%s\'na tıklayın';
+$strMIME_transformation_options = 'Dönüşüm seçenekleri';
+$strMIME_transformation_options_note = 'Lütfen dönüşüm seçenekleri için değerleri bu biçimi kullanarak giriniz: \'a\', 100, b,\'c\'...<br />Eğer bu değerler arasına hep ters eğik çizgi ("\") veya tek tırnak ("\'") koymanız gerekirse, önlerine ters eğik çizgi koyun (örneğin \'\\\\xyz\' veya \'a\\\'b\').';
+$strMIME_transformation = 'Tarayıcı dönüşümü';
+$strMIMETypesForTable = 'TABLO MIME TÜRLERİ';
+$strMIME_without = 'İtalik olarak yazılmış MIME türleri ayrı bir dönüşüm işlevine sahip değildir.';
+$strModifications = 'Değişiklikler kaydedildi';
+$strModify = 'Değiştir';
+$strModifyIndexTopic = 'Indeksi değiştir';
+$strMoveMenu = 'Menüyü taşı';
+$strMoveTableOK = '%s tablosu %s üzerine taşındı.';
+$strMoveTableSameNames = 'Tablo aynısına taşınamıyor!';
+$strMoveTable = 'Tabloyu şuna (veritabanı<b>.</b>tablo) taşı:';
+$strMultilingual = 'çokdilli';
+$strMyISAMDataPointerSizeDesc = 'MAX_ROWS seçeneği belirlenmediğinde MyISAM tabloları için CREATE TABLE komutuyla kullanılacak olan bayt cinsinden varsayılan imleç boyutu.';
+$strMyISAMDataPointerSize = 'Veri imleci boyutu';
+$strMyISAMMaxExtraSortFileSizeDesc = 'Eğer hızlı MyISAM indeksi oluşturulması için kullanılan geçici dosya, burada belirlenmiş miktar tarafından kullanılan anahtar önbelleğinden büyükse, anahtar önbellek yöntemi tercih edilir.';
+$strMyISAMMaxExtraSortFileSize = 'İndeks oluşturmada kullanılan geçici dosyalar için en fazla boyut';
+$strMyISAMMaxSortFileSizeDesc = 'MySQL\'in, bir MyISAM indeksi yeniden oluşturulurken kullanmaya izin verdiği geçici dosyanın en fazla boyutu (REPAIR TABLE, ALTER TABLE, ya da LOAD DATA INFILE sırasında).';
+$strMyISAMMaxSortFileSize = 'Geçici sıralama dosyaları için en fazla boyut.';
+$strMyISAMRecoverOptionsDesc = '-myisam-recover sunucusu başlat seçeneği yoluyla ayarlanan, çökmüş MyISAM tablolarını otomatik kurtarmak için kip.';
+$strMyISAMRecoverOptions = 'Otomatik kurtarma kipi';
+$strMyISAMRepairThreadsDesc = 'Eğer bu değer 1\'den büyükse, sıralama işlemi tarafından yapılan onarma sırasında, MyISAM tablosu indeksleri (her bir indeks kendi işlemi içinde) paralel olarak oluşturulur.';
+$strMyISAMRepairThreads = 'İşlemleri onar';
+$strMyISAMSortBufferSize = 'Ara bellek boyutunu sırala';
+$strMyISAMSortBufferSizeDesc = 'Bir REPAIR TABLE komutu sırasında MyISAM indeksleri sıralanırken ya da CREATE INDEX veya ALTER TABLE komutuyla indeksler oluşturulduğunda ayrılan ara bellek miktarı.';
+$strMySQLCharset = 'MySQL karakter grubu';
+$strMysqlClientVersion = 'MySQL istemci sürümü';
+$strMySQLConnectionCollation = 'MySQL bağlantı karşılaştırması';
+$strMysqlLibDiffersServerVersion = 'PHP MySQL kütüphanenizin %s sürümü MySQL sunucunuzun %s sürümünden farklı. Bu tarafsız davranışa sebep olabilir.';
+$strMySQLSaid = 'MySQL çıktısı: ';
+$strMySQLShowProcess = 'İşlemleri göster';
+
+$strName = 'İsim';
+$strNext = 'Sonraki';
+$strNoActivity = '%s saniye içinde hiçbir işlem yapılmadı, lütfen yeniden oturum açın';
+$strNoDatabasesSelected = 'Veritabanı seçilmedi.';
+$strNoDatabases = 'Veritabanı yok';
+$strNoDataReceived = 'İçeri aktarmak için veri alınmadı. Ya dosya adı gönderilmedi ya da PHP yapılandırmanız tarafından izin verilen en fazla boyut aşıldı. SSS 1.16\'ya bakın.';
+$strNoDescription = 'Açıklama yok';
+$strNoDetailsForEngine = 'Bu depolama motoru için ayrıntılı durum bilgisi mevcut değil.';
+$strNoDropDatabases = '"DROP DATABASE" ifadesi etkisiz.';
+$strNoExplain = 'SQL Açıklamasını atla';
+$strNoFilesFoundInZip = 'ZIP arşivi içinde hiç dosya bulunamadı!';
+$strNoFrames = 'phpMyAdmin, <b>çerçeve-kabiliyeti</b> olan tarayıcı ile daha kullanışlıdır.';
+$strNo = 'Hayır';
+$strNoIndexPartsDefined = 'İndeks kısımları tanımlanmadı!';
+$strNoIndex = 'İndeks tanımlanmadı!';
+$strNoModification = 'Değişiklik yok';
+$strNone = 'Hiçbiri';
+$strNoOptions = 'Bu biçimin seçenekleri yok';
+$strNoPassword = 'Parola yok';
+$strNoPermission = 'Web sunucusu %s dosyasını kaydetmek için izne sahip değil.';
+$strNoPhp = 'PHP Kodsuz';
+$strNoPrivileges = 'Yetkiler yok';
+$strNoRights = 'Burada bulunmak için yeterli izinlere sahip değilsiniz!';
+$strNoRowsSelected = 'Satır seçilmedi';
+$strNoSpace = '%s dosyasını kaydetmek için yetersiz alan.';
+$strNoTablesFound = 'Veritabanında tablo bulunamadı.';
+$strNoThemeSupport = 'Tema desteği yok, lütfen yapılandırmanızı ve/veya %s dizinindeki temalarınızı kontrol edin.';
+$strNotNumber = 'Bu bir sayı değil!';
+$strNotOK = 'TAMAM değil';
+$strNotSet = '<b>%s</b> tablosu bulunamadı veya %s içinde ayarlanmadı';
+$strNoUsersFound = 'Kullanıcı(lar) bulunamadı.';
+$strNoValidateSQL = 'SQL Doğrulamasını atla';
+$strNull = 'Boş';
+$strNumberOfFields = 'Alan sayısı';
+$strNumberOfTables = 'Tablo sayısı';
+$strNumSearchResultsInTable = '%s eşleşme, <i>%s</i> tablosu içinde';
+$strNumSearchResultsTotal = '<b>Toplam:</b> <i>%s</i> eşleşme';
+$strNumTables = 'Tablolar';
+
+$strOK = 'TAMAM';
+$strOpenDocumentSpreadsheet = 'Açık Belge Hesap Çizelgesi';
+$strOpenDocumentText = 'Açık Belge Metini';
+$strOpenNewWindow = 'Yeni phpMyAdmin penceresi aç';
+$strOperations = 'İşlemler';
+$strOperator = 'İşletici';
+$strOptimizeTable = 'Tabloyu uyarla';
+$strOptions = 'Seçenekler';
+$strOr = 'Veya';
+$strOverhead = 'Ek Yük';
+$strOverwriteExisting = 'Mevcut dosya(ların)nın üzerine yaz';
+
+$strPageNumber = 'Sayfa numarası:';
+$strPagesToBeFlushed = 'Temizlenen sayfalar';
+$strPaperSize = 'Kağıt boyutu';
+$strPartialImport = 'Kısmi içeri aktarma';
+$strPartialText = 'Kısmi Metinler';
+$strPasswordChanged = '%s için parola başarılı olarak değiştirildi.';
+$strPasswordEmpty = 'Parola boş!';
+$strPasswordHashing = 'Parola Hesaplanıyor';
+$strPasswordNotSame = 'Parolalar birbiriyle aynı değil!';
+$strPassword = 'Parola';
+$strPdfDbSchema = ' "%s" veritabanının şeması - Sayfa %s';
+$strPdfInvalidTblName = ' "%s" tablosu yok!';
+$strPdfNoTables = 'Tablolar yok';
+$strPDF = 'PDF';
+$strPDFReportExplanation = '(Tek tablonun verisini içeren bir rapor üretir)';
+$strPDFReportTitle = 'Rapor başlığı';
+$strPerHour = 'saat başına';
+$strPerMinute = 'dakika başına';
+$strPerSecond = 'saniye başına';
+$strPersian = 'Farsça';
+$strPhoneBook = 'telefon defteri';
+$strPhp = 'PHP Kodu oluştur';
+$strPHPVersion = 'PHP Sürümü';
+$strPleaseSelectPrimaryOrUniqueKey = 'Lütfen birincil anaktarı veya benzersiz anahtarı seçin';
+$strPmaDocumentation = 'phpMyAdmin belgeleri';
+$strPmaUriError = '<tt>$cfg[\'PmaAbsoluteUri\']</tt> talimatı yapılandırma dosyanız içinde AYARLANMAK zorundadır!';
+$strPolish = 'Polonyaca';
+$strPortrait = 'Portre';
+$strPos1 = 'Yukarı';
+$strPrevious = 'Önceki';
+$strPrimary = 'Birincil';
+$strPrimaryKeyHasBeenDropped = 'Birincil anahtar kaldırıldı';
+$strPrimaryKeyName = 'Birincil anahtarın ismi "PRIMARY" olmalıdır!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>sadece ve sadece</b> bir birincil anahtarın ismi <b>olmalıdır!</b>';
+$strPrintView = 'Baskı görünümü';
+$strPrintViewFull = 'Baskı görünümü (tüm metinler ile)';
+$strPrint = 'Yazdır';
+$strPrivDescAllPrivileges = 'GRANT hariç tüm yetkileri içerir.';
+$strPrivDescAlterRoutine = 'Depolanan yordamların değiştirilmesine ve kaldırılmasına izin verir.';
+$strPrivDescAlter = 'Varolan tabloların yapısının değiştirilmesine izin verir.';
+$strPrivDescCreateDb = 'Yeni veritabanları ve tabloların oluşturulmasına izin verir.';
+$strPrivDescCreateRoutine = 'Depolanan yordamların oluşturulmasına izin verir.';
+$strPrivDescCreateTbl = 'Yeni tabloların oluşturulmasına izin verir.';
+$strPrivDescCreateTmpTable = 'Geçici tablolara oluşturulmasına izin verir.';
+$strPrivDescCreateUser = 'Kullanıcı hesaplarının oluşturulmasına, kaldırılmasına ve yeniden adlandırılmasına izin verir.';
+$strPrivDescCreateView = 'Yeni görünümlerin oluşturulmasına izin verir.';
+$strPrivDescDelete = 'Veri silinmesine izin verir.';
+$strPrivDescDropDb = 'Veritabanları ve tabloların kaldırılmasına izin verir.';
+$strPrivDescDropTbl = 'Tabloların kaldırılmasına izin verir.';
+$strPrivDescExecute5 = 'Depolanan yordamların yürütülmesine izin verir.';
+$strPrivDescExecute = 'Depolanmış işlemlerin çalıştırılmasına izin verir; bu MySQL sürümünde etkisi yoktur.';
+$strPrivDescFile = 'Verinin içeri ve dışarı aktarılmasına izin verir.';
+$strPrivDescGrant = 'Yetki tablolarını yeniden yüklemeden yeni kullanıcıların ve yetkilerin eklenmesine izin verir.';
+$strPrivDescIndex = 'İndekslerin oluşturulmasına ve kaldırılmasına izin verir.';
+$strPrivDescInsert = 'Verinin eklenmesine ve yerinin değiştirilmesine izin verir.';
+$strPrivDescLockTables = 'Şu anki işlem için tabloların kilitlenmesine izin verir.';
+$strPrivDescMaxConnections = 'Kullanıcının saat başına açabileceği yeni bağlantı sayısını sınırlar.';
+$strPrivDescMaxQuestions = 'Kullanıcının saat başına sunucuya gönderebileceği sorgu sayısını sınırlar.';
+$strPrivDescMaxUpdates = 'Kullanıcının saat başına çalıştırabileceği herhangi bir tabloyu veya veritabanını değiştiren komut sayısını sınırlar.';
+$strPrivDescMaxUserConnections = 'Kullanıcının eşzamanlı bağlantı sayısını sınırlar.';
+$strPrivDescReferences = 'Bu MySQL sürümünde etkisi yoktur.';
+$strPrivDescReload = 'Sunucu ayarlarının yeniden yüklenmesine ve sunucunun önbelleğinin temizlenmesine izin verir';
+$strPrivDescReplClient = 'Kullanıcılara Slave ve Master\'ların nerede olduğunu sormasına izin verir.';
+$strPrivDescReplSlave = 'Çoğaltılan slave\'ler için gereklidir.';
+$strPrivDescSelect = 'Veri okunmasına izin verir.';
+$strPrivDescShowDb = 'Bütün veritabanı listesine erişim verir.';
+$strPrivDescShowView = 'SHOW CREATE VIEW sorgularının yapılmasına izin verir.';
+$strPrivDescShutdown = 'Sunucunun kapatılmasına izin ver.';
+$strPrivDescSuper = 'En fazla bağlantı sayısı aşılsa bile bağlanmasına izin verir; genel değişkenleri ayarlamak veya diğer kullanıcıların işlemlerini sonlandırmak gibi pek çok yönetimsel işlemler için gereklidir.';
+$strPrivDescUpdate = 'Veri değiştirilmesine izin ver.';
+$strPrivDescUsage = 'Yetkiler yok.';
+$strPrivilegesReloaded = 'Yetkiler başarılı olarak yüklendi.';
+$strPrivileges = 'Yetkiler';
+$strProcedures = 'Yordamlar';
+$strProcesses = 'İşlemler';
+$strProcesslist = 'İşlem listesi';
+$strProtocolVersion = 'Protokol sürümü';
+$strPutColNames = 'İlk satır içine alan adlarını koy';
+
+$strQBEDel = 'Del';
+$strQBEIns = 'Ins';
+$strQBE = 'Sorgu';
+$strQueryCache = 'Sorgu önbelleği';
+$strQueryFrame = 'Sorgu penceresi';
+$strQueryOnDb = '<b>%s</b> veritabanında SQL sorgusu:';
+$strQueryResultsOperations = 'Sorgu sonuçları işlemleri';
+$strQuerySQLHistory = 'SQL geçmişi';
+$strQueryStatistics = '<b>Sorgu istatistikleri</b>: Başlangıçtan beri sunucuya %s sorgu gönderildi.';
+$strQueryTime = 'Sorgu %01.4f san sürdü';
+$strQueryType = 'Sorgu türü';
+$strQueryWindowLock = 'Pencere dışından bu sorgunun üzerine yazma';
+
+$strReadRequests = 'İstekleri oku';
+$strReceived = 'Alınan';
+$strRecommended = 'önerilir';
+$strRecords = 'Kayıtlar';
+$strReferentialIntegrity = 'İlgili bütünlük kontrolü:';
+$strRefresh = 'Yenile';
+$strRelationalSchema = 'İlişkisel şema';
+$strRelationDeleted = 'İlişki silindi';
+$strRelationNotWorking = 'Bağlı tablolar ile çalışan ilave özellikler etkisizleştirildi. Nedenini öğrenmek için %sburaya%s tıklayın.';
+$strRelationsForTable = 'TABLO İLİŞKİLERİ';
+$strRelations = 'İlişkiler';
+$strRelationView = 'İlişki görünümü';
+$strReloadingThePrivileges = 'Yetkiler yeniden yükleniyor';
+$strReloadPrivileges = 'Yetkileri yeniden yükle';
+$strReload = 'Yeniden Yükle';
+$strRemoveSelectedUsers = 'Seçili kullanıcıları kaldır';
+$strRenameDatabaseOK = '%s veritabanı %s olarak yeniden adlandırıldı';
+$strRenameTableOK = '%s tablosu %s olarak yeniden adlandırıldı';
+$strRenameTable = 'Tabloyu yeniden şuna adlandır';
+$strRepairTable = 'Tabloyu onar';
+$strReplaceNULLBy = 'NULL\'u bunla değiştir:';
+$strReplaceTable = 'Tablo verisini dosya ile değiştir';
+$strReplication = 'Çoğaltma';
+$strReset = 'Sıfırla';
+$strResourceLimits = 'Kaynak sınırları';
+$strRestartInsertion = '%s satırlı eklemeyi yeniden başlat';
+$strReType = 'Yeniden gir';
+$strRevokeAndDeleteDescr = 'Kullanıcılar, yetkiler yeniden yüklenene kadar hala USAGE yetkisine sahip olacaklar.';
+$strRevokeAndDelete = 'Kullanıcılardan tüm aktif yetkileri geri al ve sonra da sil.';
+$strRevoke = 'Geri al';
+$strRevokeMessage = '%s için yetkileri geri aldınız';
+$strRomanian = 'Romence';
+$strRoutines = 'Yordamlar';
+$strRoutineReturnType = 'Dönüş türü';
+$strRowLength = 'Satır uzunluğu';
+$strRowsFrom = 'satır, başlayacağı kayıt numarası:';
+$strRowSize = ' Satır boyutu ';
+$strRowsModeFlippedHorizontal = 'yatay (döndürülmüş başlıklar)';
+$strRowsModeHorizontal = 'yatay';
+$strRowsModeOptions = '%s kipinde ve %s hücre sonra başlığı tekrarla.';
+$strRowsModeVertical = 'dikey';
+$strRows = 'Satırlar';
+$strRowsStatistic = 'Satır İstatistikleri';
+$strRunning = '%s üzerinde çalışıyor';
+$strRunQuery = 'Sorguyu Gönder';
+$strRunSQLQueryOnServer = '%s sunucusu üzerinde SQL sorgusunu/sorgularını çalıştır';
+$strRunSQLQuery = '%s veritabanı üzerinde SQL sorgusunu/sorgularını çalıştır';
+$strRussian = 'Rusça';
+
+$strSave = 'Kaydet';
+$strSaveOnServer = 'Sunucuda %s dizinine kaydet';
+$strSavePosition = 'Konumu kaydet';
+$strScaleFactorSmall = 'Ölçek, şemayı bir sayfaya sığdırmak için çok küçük';
+$strSearch = 'Ara';
+$strSearchFormTitle = 'Veritabanında ara';
+$strSearchInTables = 'Tablo içindeki(ler):';
+$strSearchNeedle = 'Aranacak kelime(ler) veya değer(ler) ( joker: "%" ):';
+$strSearchOption1 = 'kelimelerin en azından biri';
+$strSearchOption2 = 'tüm kelimeler';
+$strSearchOption3 = 'kesin ifade';
+$strSearchOption4 = 'kurallı ifade olarak';
+$strSearchResultsFor = '"<i>%s</i>" %s için arama sonuçları:';
+$strSearchType = 'Bul:';
+$strSecretRequired = 'Yapılandırma dosyası için gizli bir parola ifadesi gerekiyor (blowfish_secret).';
+$strSelectADb = ' Lütfen bir veritabanı seçin';
+$strSelectAll = 'Tümünü Seç';
+$strSelectBinaryLog = 'Görüntülemek için binari günlüğünü seçin';
+$strSelectFields = 'Alanları seç (en az bir):';
+$strSelectForeignKey = 'Dış Anahtarı seç';
+$strSelectNumRows = 'sorgu içerisinde';
+$strSelectReferencedKey = 'Kaynak gösterilen anahtarı seç';
+$strSelectTables = 'Tabloları seç';
+$strSend = 'Dosya olarak kaydet';
+$strSent = 'Gönderilen';
+$strServerChoice = 'Sunucu Seçimi';
+$strServerNotResponding = 'Sunucu yanıt vermiyor';
+$strServers = 'Sunucular';
+$strServerStatus = 'Çalışma Süresi Bilgisi';
+$strServerStatusDelayedInserts = 'Gecikmiş eklemeler';
+$strServerStatusUptime = 'Bu MySQL sunucusunun çalışma süresi: %s. Başlatıldığı zaman: %s.';
+$strServer = 'Sunucu';
+$strServerTabVariables = 'Değişkenler';
+$strServerTrafficNotes = '<b>Sunucu trafiği</b>: Bu tablolar sunucunun başlatıldığı andan itibaren MySQL sunucusunun ağ trafiği istatistiklerini gösterir.';
+$strServerVars = 'Sunucu değişkenleri ve ayarları';
+$strServerVersion = 'Sunucu sürümü';
+$strSessionStartupErrorGeneral = 'Oturum hatasız olarak başlatılamıyor, lütfen PHP ve/veya web sunucusu günlüğü dosyanızda verilen hataları kontrol edin ve PHP kurulumunuzu düzgün olarak yapılandırın.';
+$strSessionValue = 'Oturum değeri';
+$strSetEnumVal = 'Eğer alan türü "enum" veya "set" ise lütfen değerleri bu biçimi kullanarak girin: \'a\',\'b\',\'c\'...<br />Eğer bu değerler arasına hep ters eğik çizgi ("\") veya tek tırnak ("\'") koymanız gerekirse, önlerine ters eğik çizgi koyun (örneğin \'\\\\xyz\' veya \'a\\\'b\').';
+$strShowAll = 'Tümünü göster';
+$strShowColor = 'Rengi göster';
+$strShowDatadictAs = 'Veri Sözlüğü Biçimi';
+$strShowFullQueries = 'Tüm Sorguları Göster';
+$strShow = 'Göster';
+$strShowGrid = 'Izgara göster';
+$strShowHideLeftMenu = 'Sol menüyü Göster/Gizle';
+$strShowingBookmark = 'İşaret gösteriliyor';
+$strShowingPhp = 'PHP kodu olarak gösteriliyor';
+$strShowingRecords = 'Satırlar gösteriliyor';
+$strShowingSQL = 'SQL sorgusu gösteriliyor';
+$strShowOpenTables = 'Açık tabloları göster';
+$strShowPHPInfo = 'PHP bilgisini göster';
+$strShowSlaveHosts = 'Slave anamakineleri göster';
+$strShowSlaveStatus = 'Slave durumunu göster';
+$strShowStatusBinlog_cache_disk_useDescr = 'Geçici binari günlüğü önbelleğinde kullanılan işlemlerin sayısıdır ama binlog_cache_size değerini aştı ve işlemdeki ifadeleri depolamak için geçici dosya kullandı.';
+$strShowStatusBinlog_cache_useDescr = 'Geçici binari günlüğü önbelleğinde kullanılan işlemlerin sayısı.';
+$strShowStatusCreated_tmp_disk_tablesDescr = 'İfadeler çalıştırılırken sunucu tarafından disk üzerindeki geçici tablo sayıları otomatik olarak oluşturuldu. Eğer Created_tmp_disk_tables değeri büyük ise, geçici tabloların disk tabanlı yerine bellek tabanlı olamasına sebep olmak için tmp_table_size değerini arttırmak isteyebilirsiniz.';
+$strShowStatusCreated_tmp_filesDescr = 'mysqld\'nin kaç tane geçici dosya oluşturduğudur.';
+$strShowStatusCreated_tmp_tablesDescr = 'İfadeler çalıştırılırken sunucu tarafından bellek içindeki geçici tabloların sayısı otomatik olarak oluşturuldu.';
+$strShowStatusDelayed_errorsDescr = 'INSERT DELAYED komutu ile yazılmış, bazı hataların meydana geldiği satır sayısı (muhtemelen kopya anahtar).';
+$strShowStatusDelayed_insert_threadsDescr = 'Kullanımda olan INSERT DELAYED işleticisi işlem sayısı. INSERT DELAYED komutunu kullanan her farklı tablodan biri kendi işlemini alır.';
+$strShowStatusDelayed_writesDescr = 'INSERT DELAYED satır yazımı sayısıdır.';
+$strShowStatusFlush_commandsDescr = 'Çalıştırılmış FLUSH ifadesi sayısıdır.';
+$strShowStatusHandler_commitDescr = 'Dahili COMMIT ifadesi sayısıdır.';
+$strShowStatusHandler_deleteDescr = 'Tablodan satırın kaç kez silindiği sayısıdır.';
+$strShowStatusHandler_discoverDescr = 'Eğer MySQL sunucusu verilen isimdeki tabloyu biliyorsa, NDB Yığını depolama motorunu sorabilir. Buna keşfetme denir. Handler_discover tabloların keç kez keşfedildiğini gösterir.';
+$strShowStatusHandler_read_firstDescr = 'İndeks\'ten ilk girişin kaç kez okunduğu sayısıdır. Eğer bu değer yüksekse, sunucunun çok fazla indeks taraması yapıyor olduğunu gösterir; örneğin, SELECT col1 FROM foo, anlaşılıyor ki col1 indekslenmiş.';
+$strShowStatusHandler_read_keyDescr = 'Anahtarda satır tabanlı okumak için istek sayısıdır. Eğer bu değer yüksekse, sorgularınızın ve tablolarınızın düzgün bir şekilde indekslenmesinin iyi olduğu belirtisidir.';
+$strShowStatusHandler_read_nextDescr = 'Anahtar sırasında sonraki satırı okumak için istek sayısıdır. Eğer kısıtlı aralık ile indeks sütununu sorguluyorsanız ya da indeks taraması yapıyorsanız, bu arttırılan miktardır.';
+$strShowStatusHandler_read_prevDescr = 'Anahtar sırasında önceki satırı okumak için istek sayısıdır. Bu okuma yöntemi başlıca ORDER BY ... DESC komutunu uyarlamak için kullanılır.';
+$strShowStatusHandler_read_rndDescr = 'Sabitlenmiş konumda satır tabanlı okumak için istek sayısıdır. Eğer sonuçları sıralamayı gerektiren çok fazla sorgu yapıyorsanız, bu değer yüksek olur. Muhtemelen bütün tabloları taramak için MySQL gerektiren çok fazla sorgulamanız vardır veya düzgün bir şekilde anahtarları kullanmamaktasınız.';
+$strShowStatusHandler_read_rnd_nextDescr = 'Veri dosyasında sonraki satırı okumak için istek sayısıdır. Eğer çok fazla tablo taraması yapıyorsanız, bu değer yüksek olur. Genellikle tablolarınız düzgün bir şekilde indekslenmediğinde ya da sorgularınız, sahip olduğunuz indeksleri çıkarına kullanmak için yazmadığında önerilir.';
+$strShowStatusHandler_rollbackDescr = 'Dahili ROLLBACK ifadesi sayısıdır.';
+$strShowStatusHandler_updateDescr = 'Tablo içinde satır güncellemek için istek sayısıdır.';
+$strShowStatusHandler_writeDescr = 'Tablo içinde satır eklemek için istek sayısıdır.';
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'Veri içeren sayfa sayısıdır (dolu veya temiz).';
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'Şu anki dolu sayfa sayısıdır.';
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'Temizlenmesi için istenmiş ara bellek havuz sayfa sayısıdır.';
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'Boş sayfa sayısıdır.';
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'InnoDB ara bellek havuzunda sabitlenmiş sayfa sayısıdır. Bunlar şu anki okunan veya yazılmış ya da bazı diğer sebepler yüzünden temizlenemeyen veya taşınamayan sayfalardır.';
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'Meşgul sayfa sayısıdır çünkü bunlar satır kilitleri veya uyarlamalı adresleme indeksi gibi yönetimsel ek yük için ayrılmıştır. Bu değer aynı zamanda Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data değerleri gibi hesaplanabilir.';
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Sayfalardaki ara bellek havuzunun toplam boyutudur.';
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'InnoDB "rastgele" önden okuma başlatımı sayısıdır. Sorgu tablonun büyük bir kısmını taradığı zaman bu olur ama rastgele düzende.';
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'InnoDB sıralı önden okuma başlatımı sayısıdır. InnoDB sıralı tam tablo taraması yaptığı zaman bu olur.';
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'InnoDB\'nin bitirdiği veya yaptığı mantıksal okuma isteği sayısıdır.';
+$strShowStatusInnodb_buffer_pool_readsDescr = 'InnoDB\'nin ara bellek havuzundan tatmin olamadığı ve tek-sayfa okuması yapmak zorunda olduğu mantıksal okuma sayısıdır.';
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normal olarak arkaplanda olan InnoDB ara bellek havuzuna yazılır. Ancak, eğer sayfa oluşturma veya okuma gerekliyse ve temiz sayfalar yoksa önce sayfaların temizlenmesi için beklenmesi gereklidir. Bu sayaç bu bekleme durumlarını sayar. Eğer ara bellek havuzu boyutu düzgün bir şekilde ayarlandıysa, bu değer küçük olmalıdır.';
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'InnoDB ara bellek havuzuna bitti yazma sayısıdır.';
+$strShowStatusInnodb_data_fsyncsDescr = 'Şimdiye kadarki fsync() işlem sayısıdır.';
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'Şu anki bekleyen fsync() işlem sayısıdır.';
+$strShowStatusInnodb_data_pending_readsDescr = 'Şu anki bekleyen okuma sayısıdır.';
+$strShowStatusInnodb_data_pending_writesDescr = 'Şu anki bekleyen yazma sayısıdır.';
+$strShowStatusInnodb_data_readDescr = 'Bayt cinsinden şimdiye kadarki veri okuma miktarıdır.';
+$strShowStatusInnodb_data_readsDescr = 'Toplam veri okuma sayısıdır.';
+$strShowStatusInnodb_data_writesDescr = 'Toplam veri yazma sayısıdır.';
+$strShowStatusInnodb_data_writtenDescr = 'Bayt cinsinden şimdiye kadarki yazılmış veri miktarıdır.';
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'Bu amaç için yazılmış sayfa sayısı ve gerçekleştirilmiş çifte-yazım yazma sayısıdır.';
+$strShowStatusInnodb_dblwr_writesDescr = 'Bu amaç için yazılmış sayfa sayısı ve gerçekleştirilmiş çifte-yazım yazma sayısıdır.';
+$strShowStatusInnodb_log_waitsDescr = 'Sahip olunan bekleme sayısıdır çünkü günlük ara belleği çok küçük ve devam etmeden önce temizlenmesi için beklemek zorundayız.';
+$strShowStatusInnodb_log_write_requestsDescr = 'Günlük yazma isteği sayısıdır.';
+$strShowStatusInnodb_log_writesDescr = 'Günlük dosyasına fiziksel yazma sayısıdır.';
+$strShowStatusInnodb_os_log_fsyncsDescr = 'Günlük dosyasına bitmiş fsyncs yazma sayısıdır.';
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'Bekleyen günlük dosyası fsyncs sayısıdır.';
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Bekleyen günlük dosyası yazma sayısıdır.';
+$strShowStatusInnodb_os_log_writtenDescr = 'Günlük dosyasına yazılı bayt sayısıdır.';
+$strShowStatusInnodb_pages_createdDescr = 'Oluşturulmuş sayfa sayısıdır.';
+$strShowStatusInnodb_page_sizeDescr = 'Derlenen InnoDB sayfa boyutu (varsayılan 16KB). Birçok değer sayfalarda sayılır; sayfa boyutu bunların kolaylıkla bayt\'a dönüştürülmesine izin verir.';
+$strShowStatusInnodb_pages_readDescr = 'Okunan sayfa sayısıdır.';
+$strShowStatusInnodb_pages_writtenDescr = 'Yazılmış sayfa sayısıdır.';
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'Şu anki beklenen satır kilidi sayısıdır.';
+$strShowStatusInnodb_row_lock_time_avgDescr = 'Milisaniye cinsinden satır kilidi elde etmek için ortalama süredir.';
+$strShowStatusInnodb_row_lock_timeDescr = 'Milisaniye cinsinden satır kilidi elde ederken harcanmış toplam süredir.';
+$strShowStatusInnodb_row_lock_time_maxDescr = 'Milisaniye cinsinden satır kilidi elde etmek için en fazla süredir.';
+$strShowStatusInnodb_row_lock_waitsDescr = 'Satır kilidinin beklemek zorunda kaldığı süre sayısıdır.';
+$strShowStatusInnodb_rows_deletedDescr = 'InnoDB tablolarından silinen satır sayısıdır.';
+$strShowStatusInnodb_rows_insertedDescr = 'InnoDB tablolarına eklenen satır sayısıdır.';
+$strShowStatusInnodb_rows_readDescr = 'InnoDB tablolarından okunan satır sayısıdır.';
+$strShowStatusInnodb_rows_updatedDescr = 'InnoDB tablolarında güncellenen satır sayısıdır.';
+$strShowStatusKey_blocks_not_flushedDescr = 'Anahtar önbelleğindeki değiştirilmiş ama diskte henüz temizlenmemiş anahtar bloğu sayısıdır. Not_flushed_key_blocks olarak bilinip kullanılır.';
+$strShowStatusKey_blocks_unusedDescr = 'Anahtar önbelleğinde kullanılmayan blok sayısıdır. Bu değeri anahtar önbelleğinin ne kadarının kullanımda olmasını belirlemek için kullanabilirsiniz.';
+$strShowStatusKey_blocks_usedDescr = 'Anahtar önbelleğinde kullanılan blok sayısıdır. Bu değerin en uç noktada olması bir kerede en fazla blok sayısının kullanımda olmamasını gösterir.';
+$strShowStatusKey_read_requestsDescr = 'Önbellekten anahtar bloğunun okunması için istek sayısıdır.';
+$strShowStatusKey_readsDescr = 'Diskten anahtar bloğunun fiziksel okunma sayısıdır. Eğer Key_reads değeri büyükse, key_buffer_size değeriniz muhtemelen çok küçüktür. Eksik önbellek oranı Key_reads/Key_read_requests olarak hesaplanabilir.';
+$strShowStatusKey_write_requestsDescr = 'Önbelleğe anahtar bloğu yazmak için istek sayısıdır.';
+$strShowStatusKey_writesDescr = 'Diske anahtar bloğunu fiziksel yazma sayısıdır.';
+$strShowStatusLast_query_costDescr = 'Sorgu en iyileyicisi tarafından hesaplanmış gibi son derlenen sorgunun toplam maliyetidir. Aynı sorgu için farklı sorgu planlarının maliyetini karşılaştırmak için yararlıdır. Varsayılan değer 0, henüz derlenmiş sorgu olmadığı anlamına gelir.';
+$strShowStatusNot_flushed_delayed_rowsDescr = 'INSERT DELAYED sıralarında yazılmak için bekleyen satır sayısıdır.';
+$strShowStatusOpened_tablesDescr = 'Açık olan tablo sayısıdır. Eğer açık tablolar büyükse, tablo önbellek değeriniz muhtemelen çok küçüktür.';
+$strShowStatusOpen_filesDescr = 'Açık olan dosya sayısıdır.';
+$strShowStatusOpen_streamsDescr = 'Açık olan akış sayısıdır (başlıca günlükleme için kullanılır).';
+$strShowStatusOpen_tablesDescr = 'Açık olan tablo sayısıdır.';
+$strShowStatusQcache_free_blocksDescr = 'Sorgu önbelleğindeki boş bellek bloğu sayısıdır.';
+$strShowStatusQcache_free_memoryDescr = 'Sorgu önbelleği için boş bellek miktarıdır.';
+$strShowStatusQcache_hitsDescr = 'Önbelleğe ulaşma sayısıdır.';
+$strShowStatusQcache_insertsDescr = 'Önbelleğe eklenen sorgu sayısıdır.';
+$strShowStatusQcache_lowmem_prunesDescr = 'Yeni sorguları önbelleklemek için belleği boşaltmaya yönelik önbellekten kaldırılmış sorgu sayısıdır. Bu bilgi sorgu önbellek boyutunu ayarlamınıza yardımcı olabilir. Önbellekten hangi sorguların kaldırılacağına karar vermek için sorgu önbelleği en az son kullanılmış (LRU) stratejisini kullanır.';
+$strShowStatusQcache_not_cachedDescr = 'Önbelleklenmemiş sorgu sayısıdır (önbelleklenemez, ya da query_cache_type ayarından dolayı önbelleklenmedi).';
+$strShowStatusQcache_queries_in_cacheDescr = 'Önbellekte kayıtlı sorgu sayısıdır.';
+$strShowStatusQcache_total_blocksDescr = 'Sorgu önbelleği içindeki toplam blok sayısıdır.';
+$strShowStatusReset = 'Sıfırla';
+$strShowStatusRpl_statusDescr = 'Arıza-güvenli çoğaltımı durumu (henüz tamamlanmadı).';
+$strShowStatusSelect_full_joinDescr = 'İndeksler kullanmayan birleştirme sayısıdır. Eğer bu değer 0 değilse, tablolarınızın indekslerini dikkatli olarak kontrol etmelisiniz.';
+$strShowStatusSelect_full_range_joinDescr = 'Referans tablosunda aralık araması kullanan birleştirme sayısıdır.';
+$strShowStatusSelect_range_checkDescr = 'Her bir satırdan sonra anahtar kullanımını kontrol eden anahtarsız birleştirme sayısıdır. (Eğer bu değer 0 değilse, tablolarınızın indekslerini dikkatli olarak kontrol etmelisiniz.)';
+$strShowStatusSelect_rangeDescr = 'İlk tabloda aralıkları kullanan birleştirme sayısıdır. (Normal olarak kusurlu değildir, eğer büyükse bile.)';
+$strShowStatusSelect_scanDescr = 'İlk tablonun tam taramasının yapıldığı birleştirme sayısıdır.';
+$strShowStatusSlave_open_temp_tablesDescr = 'Slave SQL işlemi tarafından şu anki açık geçici tablo sayısıdır.';
+$strShowStatusSlave_retried_transactionsDescr = 'Çoğaltılan slave SQL işleminin yeniden denediği işlerin toplam (başlangıçtan beri) süre sayısıdır.';
+$strShowStatusSlave_runningDescr = 'Eğer sunucu master\'a bağlı slave ise, bu AÇIKTIR.';
+$strShowStatusSlow_launch_threadsDescr = 'Oluşturmak için slow_launch_time saniyeden daha uzun zaman almış işlem sayısıdır.';
+$strShowStatusSlow_queriesDescr = 'long_query_time saniyeden daha uzun zaman almış sorgu sayısıdır.';
+$strShowStatusSort_merge_passesDescr = 'Yapılması zorunlu sıralama algoritması birleştirme geçişi sayısıdır. Eğer bu değer büyükse, sort_buffer_size sistem değişkeninin değerini arttırmayı dikkate almalısınız.';
+$strShowStatusSort_rangeDescr = 'Aralıklarla yapılmış sıralama sayısıdır.';
+$strShowStatusSort_rowsDescr = 'Sıralanmış satır sayısıdır.';
+$strShowStatusSort_scanDescr = 'Taranan tablo tarafından yapılmış sıralama sayısıdır.';
+$strShowStatusTable_locks_immediateDescr = 'Tablo kilidinin hemen tanındığı süre sayısıdır.';
+$strShowStatusTable_locks_waitedDescr = 'Tablo kilidinin hemen tanınamadığı ve beklemenin gerektiği süre sayısıdır. Eğer bu değer yüksekse ve performans sorununuz varsa, önce sorgularınızı uyarlamalısınız ve sonra ya tablonuzu ya da tablolarınızı bölün veya çoğaltma kullanın.';
+$strShowStatusThreads_cachedDescr = 'İşlem önbelleği içinde işlem sayısıdır. Önbelleğe ulaşma hızı Threads_created/Bağlantılar olarak hesaplanabilir. Eğer bu değer kırmızı ise, thread_cache_size boyutunuzu yükseltmelisiniz.';
+$strShowStatusThreads_connectedDescr = 'Şu anki açık bağlantı sayısıdır.';
+$strShowStatusThreads_createdDescr = 'Bağlantıları işlemek için oluşturulmuş işlem sayısıdır. Eğer Threads_created değeri büyük ise, thread_cache_size değerini arttırmak isteyebilirsiniz. (eğer iyi bir işlem uygulamasına sahipseniz, normal olarak bu, dikkate değer bir performans artışı vermez.)';
+$strShowStatusThreads_runningDescr = 'Hala faaliyette olan işlemler sayısıdır.';
+$strShowTableDimension = 'Tabloların boyutlarını göster';
+$strShowTables = 'Tabloları göster';
+$strShowThisQuery = 'Bu sorguyu burada tekrar göster';
+$strSimplifiedChinese = 'Basitleştirilmiş Çince';
+$strSingly = '(birer birer)';
+$strSize = 'Boyut';
+$strSkipQueries = 'Başlangıçtan atlamak için kayıt(sorgu) sayısı:';
+$strSlovak = 'Slovakça';
+$strSlovenian = 'Slovence';
+$strSmallBigAll = 'Tümü Küçük/Büyük';
+$strSnapToGrid = 'Kılavuza ayarla';
+$strSocketProblem = '(ya da yerel MySQL sunucusunun soketi doğru olarak yapılandırılmadı)';
+$strSortByKey = 'Anahtara göre sırala';
+$strSorting = 'Sıralama';
+$strSort = 'Sırala';
+$strSpaceUsage = 'Alan kullanımı';
+$strSpanish = 'İspanyolca';
+$strSplitWordsWithSpace = 'Kelimeler boşlukla ayrılır (" ").';
+$strSQLCompatibility = 'SQL uyumluluk kipi';
+$strSQLExportType = 'Dışarı aktarma türü';
+$strSQLParserBugMessage = 'SQL ayrıştırıcısında bir hata bulabilme ihtimaliniz var. Lütfen sorgunuzu yakından dikkatli bir şekilde gözden geçirin ve tırnakların doğru ve uyumsuz olmadığını kontrol edin. Diğer muhtemel hata nedenleri tırnaklı metin alanının dışında binari ile dosya gönderiyor olmanız olabilir. Aynı zamanda sorgunuzu MySQL komut satırı arabiriminde deneyebilirsiniz. Eğer hata varsa, aşağıdaki MySQL sunucu hata çıktısı, sorunu teşhis etmenizde ayrıca size yardımcı olabilir. Eğer hala sorunlarınız varsa ya da komut satırı arabirimi başarılı olduğunda ayrıştırıcı başarısızsa, lütfen sorunlara neden olan SQL sorgu girişinizi tek bir sorguya indirgeyin ve aşağıdaki CUT bölümü içindeki veri yığını ile birlikte hata raporunu gönderin:';
+$strSQLParserUserError = 'SQL sorgunuzda bir hata olduğu görünüyor. Eğer varsa, aşağıdaki MySQL sunucu hata çıktısı, sorunu teşhis etmenizde ayrıca size yardımcı olabilir.';
+$strSQLQuery = 'SQL sorgusu';
+$strSQLResult = 'SQL sonucu';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Geçersiz Tanımlayıcı';
+$strSQPBugUnclosedQuote = 'Kapatılmamış tırnak';
+$strSQPBugUnknownPunctuation = 'Bilinmeyen Noktalama İşareti Dizgisi';
+$strStandInStructureForView = 'Görünüm yapısı durumu';
+$strStatCheckTime = 'Son kontrol';
+$strStatCreateTime = 'Yaratma';
+$strStatement = 'İfadeler';
+$strStatisticsOverrun = 'Meşgul sunucu üzerinde, bayt sayaçları aşırı işleyebilir, bu yüzden MySQL sunucusu tarafından raporlanan istatistikler doğru olmayabilir.';
+$strStatUpdateTime = 'Son güncellenme';
+$strStatus = 'Durum';
+$strStorageEngine = 'Depolama Motoru';
+$strStorageEngines = 'Depolama Motorları';
+$strStrucCSV = 'CSV';
+$strStrucData = 'Yapı ve Veri';
+$strStrucExcelCSV = 'MS Excel için CSV';
+$strStrucNativeExcel = 'Bağımsız MS Excel biçimi';
+$strStrucOnly = 'Sadece yapı';
+$strStructPropose = 'Tablo yapısı öner';
+$strStructureForView = 'Görünüm yapısı';
+$strStructure = 'Yapı';
+$strSubmit = 'Gönder';
+$strSuccess = 'SQL sorgunuz başarılı olarak çalıştırıldı';
+$strSum = 'Toplam';
+$strSwedish = 'İsveççe';
+$strSwitchToDatabase = 'Kopyalanmış veritabanına geç.';
+$strSwitchToTable = 'Kopyalanmış tabloya geç';
+
+$strTableAlreadyExists = '%s tablosu zaten var!';
+$strTableComments = 'Tablo yorumları';
+$strTableEmpty = 'Tablo adı boş!';
+$strTableHasBeenDropped = '%s tablosu kaldırıldı';
+$strTableHasBeenEmptied = '%s tablosu boşaltıldı';
+$strTableHasBeenFlushed = '%s tablosu temizlendi';
+$strTableIsEmpty = 'Tablo boş olarak görünüyor!';
+$strTableMaintenance = 'Tablo bakımı';
+$strTableName = 'Tablo adı';
+$strTableOfContents = 'İçerik tablosu';
+$strTableOptions = 'Tablo seçenekleri';
+$strTables = '%s tablo';
+$strTableStructure = 'Tablo yapısı:';
+$strTable = 'Tablo:';
+$strTakeIt = 'Al';
+$strTblPrivileges = 'Tabloya özgü yetkiler';
+$strTempData = 'Geçici veri';
+$strTextAreaLength = 'Uzunluğu nedeniyle,<br /> bu alan düzenlenebilir olmayabilir ';
+$strThai = 'Tayca';
+$strThemeDefaultNotFound = 'Varsayılan tema %s bulunamadı!';
+$strThemeNoPreviewAvailable = 'Önizleme mevcut değil.';
+$strThemeNotFound = '%s teması bulunamadı!';
+$strThemeNoValidImgPath = '%s teması için geçerli resim yolu bulunamadı!';
+$strThemePathNotFound = '%s teması için tema yolu bulunamadı!';
+$strTheme = 'Tema / Stil';
+$strThisHost = 'Bu Anamakine';
+$strThreadSuccessfullyKilled = '%s işlemi başarılı olarak sonlandırıldı.';
+$strThreads = 'İşlemler';
+$strTimeoutInfo = 'Önceki içeri aktarma zaman aşımına uğradı, sonradan yeniden gönderim %d konumundan devam edecek.';
+$strTimeoutNothingParsed = 'Ancak son çalıştırmada hiç veri ayrıştırılmadı, bu genellikle, php zaman sınırlarını arttırmadığınız sürece phpMyAdmin\'in bu içeri aktarmayı biteremeyeceği anlamına gelir.';
+$strTimeoutPassed = 'Küçük program zaman aşımı geçti, eğer içeri aktarmayı bitirmek istiyorsanız, lütfen aynı dosyayı yeniden gönderin ve içeri aktarma devam edecektir.';
+$strTime = 'Zaman';
+$strToFromPage = 'sayfadan/sayfaya';
+$strToggleScratchboard = 'Karalama panosunu değiştir';
+$strToggleSmallBig = 'Küçüğü/büyüğü değiştir';
+$strToSelectRelation = 'İlişkiyi seçmek için buraya tıklayın :';
+$strTotal = 'toplam';
+$strTotalUC = 'Toplam';
+$strTraditionalChinese = 'Geleneksel Çince';
+$strTraditionalSpanish = 'Geleneksel İspanyolca';
+$strTraffic = 'Trafik';
+$strTransactionCoordinator = 'İşlem koordinatörü';
+$strTransformation_application_octetstream__download = 'Alanın binari verisini indirmek için bağlantı görüntüler. Dosya adını belirlemek için ilk seçeneği kullanabilirsiniz ya da dosya adını içeren alanın adı olarak ikinci seçeneği kullanabilirsiniz. Eğer ikinci seçeneği kullanırsanız birinci seçeneği boş karakter dizgisi olarak ayarlamanız gerekir.';
+$strTransformation_application_octetstream__hex = 'Verinin onaltılık gösterimini görüntüler. İsteğe bağlı ilk parametre, ne sıklıkta boşluk ekleneceğini belirler (varsayılanı 2 yarım bayttır).';
+$strTransformation_image_jpeg__inline = 'Tıklanabilir küçük resim görüntüler. Seçenekler piksel cinsinden en fazla genişlik ve yüksekliktir. Orijinal en-boy oranı korunur.';
+$strTransformation_image_jpeg__link = 'Bu resmi indirme için bağlantı görüntüler.';
+$strTransformation_image_png__inline = 'Resme/jpeg\'e bakın: satıriçi';
+$strTransformation_text_plain__dateformat = 'Biçimlendirilmiş tarih olarak ZAMAN, ZAMAN BİLGİSİ, TARİH veya sayısal unix zaman bilgisi alanını görüntüler. İlk seçenek zaman bilgisine (Varsayılan: 0) eklenecek olan karşılık (saat cinsinden). İkinci seçeneği farklı tarih/zaman biçimi dizgisini belirtmek için kullanın. Üçüncü seçenek yerel tarihi veya bunun için UTC olanı ("local" veya "utc" dizgisi kullanın) görmek istediğinizi belirler. Buna göre tarih biçimi farklı değere sahiptir - "local" için PHP\'nin strftime() işlevine belgelerden bakın ve "utc" ise gmdate() işlevi kullanılarak olur.';
+$strTransformation_text_plain__external = 'SADECE LINUX: Harici bir uygulama çalıştırır ve alan verisini standart giriş yoluyla besler. Uygulamanın standart çıktısı döner. Düzgün HTML kodu baskısı için varsayılan düzenlidir. Güvenlik nedeniyle libraries/transformations/text_plain__external.inc.php dosyasını elle düzenlemeli ve olmasını istediğiniz araçları listelemelisiniz. İlk seçenek kullanmak istediğiniz program sayısı ve ikinci seçenek program için parametrelerdir. Üçüncü seçenek, eğer 1\'e ayarlanırsa, htmlspecialchars() işlevi kullanılarak çıktıyı dönüştürecektir (Varsayılan 1). Dördüncü seçenek, eğer 1\'e ayarlanırsa, sözcük kaydırma korunacak ve tüm çıktı tek bir satırda görünecektir (Varsayılan 1).';
+$strTransformation_text_plain__formatted = 'Alanın içeriğini, htmlspecialchars() işlevini çalıştırmadan olduğu gibi görüntüler. Bu, geçerli HTML içerdiği var sayılan alandır.';
+$strTransformation_text_plain__imagelink = 'Bir resim ve bir bağlantı görüntüler; alan dosya adını içerir. İlk seçenek "http://www.adresim.com/" gibi bir URL ön ekidir. İkinci ve üçüncü seçenekler piksel cinsinden genişlik ve yüksekliktir.';
+$strTransformation_text_plain__link = 'Bir bağlantı görüntüler; alan dosya adını içerir. İlk seçenek "http://www.adresim.com/" gibi bir URL ön ekidir. İkinci seçenek bağlantı için başlıktır.';
+$strTransformation_text_plain__sql = 'Sözdizimi vurgulamalı SQL sorgusu gibi metni biçimlendirir.';
+$strTransformation_text_plain__substr = 'Karakter dizisinin bir kısmını görüntüler. İlk seçenek dizginin başlangıcından atlamak için karakter sayısıdır (Varsayılan 0). İkinci seçenek döndürülecek karakter sayısıdır (Varsayılan: dizginin sonuna kadar). Üçüncü seçenek kısaltma meydana geldiğinde eklemek ve/veya başa eklemek için dizgidir (Varsayılan: "...").';
+$strTriggers = 'Tetiklemeler';
+$strTruncateQueries = 'Gösterilen Sorguları Kısalt';
+$strTurkish = 'Türkçe';
+$strType = 'Türü';
+
+$strUkrainian = 'Ukraynaca';
+$strUncheckAll = 'Hiçbirini Seçme';
+$strUnicode = 'Unicode';
+$strUnique = 'Eşsiz';
+$strUnknown = 'bilinmeyen';
+$strUnselectAll = 'Tüm Seçimi Kaldır';
+$strUnsupportedCompressionDetected = 'Desteklenmeyen sıkıştırmayla (%s) dosya yüklemeyi denediniz. Ya bunun için destek henüz tamamlanmadı ya da yapılandırmanız tarafından etkisizleştirildi.';
+$strUpdatePrivMessage = '%s için yetkileri güncellediniz.';
+$strUpdateProfileMessage = 'Profil güncellendi.';
+$strUpdateQuery = 'Sorguyu Güncelle';
+$strUpdComTab = 'Sütun_Yorumları tablonuzun nasıl güncelleneceğini öğrenmek için lütfen belgelere bakın.';
+$strUpgrade = '%s %s veya sonrasına yükseltmelisiniz.';
+$strUploadErrorCantWrite = 'Dosyayı diske yazma başarısız.';
+$strUploadErrorExtension = 'Dosya gönderme uzantısından dolayı durduruldu.';
+$strUploadErrorFormSize = 'Gönderilen dosya, HTML formu içinde belirlenmiş MAX_FILE_SIZE yönergesini aşıyor.';
+$strUploadErrorIniSize = 'Gönderilen dosya, php.ini içindeki upload_max_filesize yönergesini aşıyor.';
+$strUploadErrorNoTempDir = 'Eksik geçici klasör.';
+$strUploadErrorPartial = 'Gönderilen dosya sadece kısmen gönderildi.';
+$strUploadErrorUnknown = 'Dosya göndermede bilinmeyen hata oldu.';
+$strUploadLimit = 'Muhtemelen çok büyük dosya göndermeyi denediniz. Lütfen bu sınıra çözüm yolu bulmak için %sbelgelere%s başvurun.';
+$strUploadsNotAllowed = 'Bu sunucuda dosya gönderimlerine izin verilmez.';
+$strUsage = 'Kullanım';
+$strUseBackquotes = 'Tablo ve alan adlarını ters tırnak ile kapsa';
+$strUseHostTable = 'Anamakine Tablosu kullan';
+$strUserAlreadyExists = '%s kullanıcısı zaten var!';
+$strUserEmpty = 'Kullanıcı adı boş!';
+$strUser = 'Kullanıcı';
+$strUserName = 'Kullanıcı Adı';
+$strUserNotFound = 'Seçili kullanıcı yetki tablosunda bulunamadı.';
+$strUserOverview = 'Kullanıcı gözden geçirme';
+$strUsersDeleted = 'Seçili kullanıcılar başarılı olarak silindi.';
+$strUsersHavingAccessToDb = '&quot;%s&quot; veritabanına erişimi olan kullanıcılar';
+$strUseTabKey = 'Değerden değere geçmek için TAB tuşunu veya herhangi bir yere gitmek için CTRL+OK TUŞLARI\'nı kullanın.';
+$strUseTables = 'Tabloları kullan';
+$strUseTextField = 'Metin alanını kullan';
+$strUseThisValue = 'Bu değeri kullan';
+
+$strValidateSQL = 'SQL\'i doğrula';
+$strValidatorError = 'SQL onaylayıcısı başlatılamadı. %sBelgelerde%s anlatıldığı gibi lütfen gerekli php uzantılarının kurulu olduğunu kontrol edin.';
+$strValue = 'Değer';
+$strVar = 'Değişken';
+$strVersionInformation = 'Sürüm bilgisi';
+$strViewDumpDatabases = 'Veritabanlarının dökümünü (şemasını) göster';
+$strViewDumpDB = 'Veritabanının dökümünü (şemasını) göster';
+$strViewDump = 'Tablonun dökümünü (şemasını) göster';
+$strViewHasBeenDropped = '%s görünümü kaldırıldı';
+$strViewName = 'GÖRÜNÜM adı';
+$strView = 'Görünüm';
+
+$strWebServerUploadDirectoryError = 'Gönderme işi için ayarladığınız dizine ulaşılamıyor';
+$strWebServerUploadDirectory = 'web sunucusu gönderme dizini';
+$strWelcome = '%s sürümüne Hoş Geldiniz';
+$strWestEuropean = 'Batı Avrupa';
+$strWildcard = 'joker';
+$strWindowNotFound = 'Hedef tarayıcı penceresi güncellenemiyor. Belki ana pencereyi kapatmış olabilirsiniz ya da tarayıcınızın güvenlik ayarları çapraz-pencere güncellemelerini engellemek için yapılandırılmıştır.';
+$strWithChecked = 'Seçilileri:';
+$strWriteRequests = 'Yazma istekleri';
+$strWrongUser = 'Yanlış kullanıcı adı/parola. Erişim engellendi.';
+
+$strXML = 'XML';
+
+$strYes = 'Evet';
+
+$strZeroRemovesTheLimit = 'Not: Bu seçeneklerin 0 (sıfır)\'a ayarlanması sınırı kaldırır.';
+$strZip = '"zip olarak"';
+
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/lang/ukrainian-utf-8.inc.php b/lang/ukrainian-utf-8.inc.php
new file mode 100644
index 0000000000..55bfe02616
--- /dev/null
+++ b/lang/ukrainian-utf-8.inc.php
@@ -0,0 +1,1467 @@
+<?php
+/* $Id$ */
+
+$charset = 'utf-8';
+$text_dir = 'ltr';
+$number_thousands_separator = ',';
+$number_decimal_separator = '.';
+// shortcuts for Byte, Kilo, Mega, Giga, Tera, Peta, Exa
+//$byteUnits = array('Байт', 'кБ', 'МБ', 'ГБ');
+$byteUnits = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');
+
+$day_of_week = array('Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб');
+$month = array('Січ', 'Лют', 'Бер', 'Квт', 'Трв', 'Чрв', 'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру');
+// See http://www.php.net/manual/en/function.strftime.php to define the
+// variable below
+$datefmt = '%B %d %Y р., %H:%M';
+
+$timespanfmt = '%s днів, %s годин, %s хвилин і %s секунд';
+
+$strAbortedClients = 'Перервано';
+$strAccessDeniedExplanation = 'phpMyAdmin спробував з\'єднатися з MySQL сервером, але сервер не дозволив під\'єднання. Прошу перевірити значення host, username та password у файлі config.inc.php та впевнитися, що вони відповідають даним отриманим Вами від адміністратора MySQL сервера.';
+$strAccessDenied = 'Доступ заборонено';
+$strAction = 'Дія';
+$strAddDeleteColumn = 'Додати/забрати колонку критерію';
+$strAddDeleteRow = 'Додати/забрати рядок критерію';
+$strAddIntoComments = 'Додати коментар';
+$strAddNewField = 'Додати нове поле';
+$strAddPrivilegesOnDb = 'Додати права для цієї бази даних';
+$strAddPrivilegesOnTbl = 'Додати права для цієї таблиці';
+$strAddSearchConditions = 'Додати умови пошуку (тіло для умови "where"):';
+$strAddToIndex = 'Додати до індексу&nbsp;%s&nbsp;колоноку(и)';
+$strAddUserMessage = 'Було додано нового користувача.';
+$strAddUser = 'Додати нового користувача';
+$strAdministration = 'Адміністратор';
+$strAfterInsertBack = 'Повернутись';
+$strAfterInsertNewInsert = 'Вставити новий запис';
+$strAfter = 'Після %s';
+$strAllTableSameWidth = 'показувати всі таблиці однакової ширини?';
+$strAll = 'Все';
+$strAlterOrderBy = 'Змінити порядок таблиці';
+$strAnalyzeTable = 'Аналіз таблиці';
+$strAnd = 'І';
+$strAnIndex = 'Було додано індекс для %s';
+$strAnyHost = 'Довільний хост';
+$strAnyUser = 'Довільний користувач';
+$strAny = 'Довільний';
+$strAPrimaryKey = 'Було додано первинний ключ до %s';
+$strArabic = 'Арабське';
+$strArmenian = 'Вірменське';
+$strAscending = 'Зростаючий';
+$strAtBeginningOfTable = 'На початку таблиці';
+$strAtEndOfTable = 'У кінці таблиці';
+$strAttr = 'Атрибути';
+$strAutomaticLayout = 'Автоматичний layout';
+
+$strBack = 'Назад';
+$strBaltic = 'Балтійське';
+$strBeginCut = 'BEGIN CUT';
+$strBeginRaw = 'BEGIN RAW';
+$strBinaryDoNotEdit = ' Двійкові дані - не редагуються ';
+$strBinary = ' Двійковий ';
+$strBookmarkDeleted = 'Закладку було видалено.';
+$strBookmarkLabel = 'Мітка';
+$strBookmarkQuery = 'Закладка на SQL-запит';
+$strBookmarkThis = 'Закладка на даний SQL-запит';
+$strBookmarkView = 'Лише перегляд';
+$strBrowse = 'Переглянути';
+$strBulgarian = 'Болгарське';
+$strBzip = 'запакувати в "bzip"';
+
+$strCannotLogin = 'Не можу зареєструватися на MySQL сервері';
+$strCantLoadRecodeIconv = 'Не можу завантажити iconv чи recode extension необхідні для зміни charset-у, сконфігуруйте php так, щоб можна було використовувати ці extensions, або забороніть зміну charset-у у phpMyAdmin.';
+$strCantLoad = 'не можу завантажити %s,<br />прошу перевірити конфігурацію PHP.';
+$strCantRenameIdxToPrimary = 'Неможливо перейменувати індекс в PRIMARY!';
+$strCantUseRecodeIconv = 'Не можу використати ні/або iconv, ні/або libiconv, ні/або функцію recode_string поки буде завантажено extension reports. Перевірте Вашу php конфігурацію.';
+$strCardinality = 'Кількість елементів';
+$strCaseInsensitive = 'case-insensitive';
+$strCaseSensitive = 'case-sensitive';
+$strCentralEuropean = 'СхідноЄвропейське';
+$strChangeCopyModeCopy = '... залишити старого.';
+$strChangeCopyModeDeleteAndReload = ' ... знищити старого з таблиці користувачів та перевантажити права після того.';
+$strChangeCopyModeJustDelete = ' ... знищити старого з таблиці користувачів.';
+$strChangeCopyModeRevoke = ' ... анулювати всі активні права старого користувача, знищивши його після того.';
+$strChangeCopyMode = 'Створити нового користувача з такими ж правами і ...';
+$strChangeCopyUser = 'Змінити реєстраційні дані / Копіювати користувача';
+$strChangeDisplay = 'Виберіть поля для відображення';
+$strChangePassword = 'Змінити пароль';
+$strChange = 'Змінити';
+$strCharsetOfFile = 'Кодування файлу:';
+$strCharsetsAndCollations = 'Набори символів та схеми';
+$strCharsets = 'Кодування';
+$strCharset = 'Набір символів';
+$strCheckAll = 'Відмітити все';
+$strCheckPrivsLong = 'Перевірити права для бази даних &quot;%s&quot;.';
+$strCheckPrivs = 'Перевірити права';
+$strCheckTable = 'Перевірити таблицю';
+$strChoosePage = 'Прошу вибрати сторінку для редагування';
+$strColComFeat = 'Показувати коментарі стовпців';
+$strCollation = 'Порівняння';
+$strColumnNames = 'Назви колонок';
+$strColumnPrivileges = 'Права, які стосуються колонок таблиці';
+$strCommand = 'Команда';
+$strComments = 'Коментарі';
+$strCompleteInserts = 'Повна вставка';
+$strCompression = 'Стискання';
+$strConfigFileError = 'phpMyAdmin не може прочитати конфігураційний файл <br />Це може статися у тому випадку, коли php натрапить на синтаксичну помилку (parse error) у ньому, або не може знайти самого файлу.<br />Завантажте конфігураційний файл безпосередньо за допомогою посилання поданого нижче і прочитайте отримані повідомлення про помилки (php error messages). Найчастіше десь у файлі просто бракує лапок чи двокрапки. <br />Якщо Ви отримаєте порожню сторінку, - значить все в порядку.';
+$strConfigureTableCoord = 'Прошу сконфіґурувати координати таблиці %s';
+$strConnections = 'З\'єднань';
+$strCookiesRequired = 'З цього моменту Cookies повинні бути дозволені.';
+$strCopyTableOK = 'Таблицю %s було скопійовано в %s.';
+$strCopyTableSameNames = 'Не можу скопіювати таблицю саму в себе!';
+$strCopyTable = 'Скопіювати таблицю в (база даних<b>.</b>таблиця):';
+$strCouldNotKill = 'phpMyAdmin не може припинити процес %s. Він вже напевно був зупинений.';
+$strCreateIndexTopic = 'Створити новий індекс';
+$strCreateIndex = 'Створити індекс на&nbsp;%s&nbsp;колонках';
+$strCreateNewDatabase = 'Створити нову БД';
+$strCreateNewTable = 'Створити нову таблицю в БД %s';
+$strCreatePage = 'Створити нову сторінку';
+$strCreatePdfFeat = 'Створити PDF-файл';
+$strCreate = 'Створити';
+$strCriteria = 'Критерій';
+$strCroatian = 'Кроатське';
+$strCyrillic = 'Кириличне';
+$strCzech = 'Чеське';
+
+$strDanish = 'Данське';
+$strDatabaseExportOptions = 'Налаштування експорту бази даних';
+$strDatabaseHasBeenDropped = 'Базу даних %s знищено.';
+$strDatabasesDropped = '%s баз(а\и) даних успішно знищено.';
+$strDatabasesStatsDisable = 'Заборонити статистику';
+$strDatabasesStatsEnable = 'Дозволити статистику';
+$strDatabasesStatsHeavyTraffic = 'Примітка: Активізація збору статистики бази даних може спричинити значний трафік між веб сервером та базою даних MySQL.';
+$strDatabasesStats = 'Статистика баз даних';
+$strDatabases = 'Бази Даних';
+$strDatabase = 'БД';
+$strDataDict = 'Словник даних';
+$strDataOnly = 'Лише дані';
+$strData = 'Дані';
+$strDBComment = 'Коментар бази даних: ';
+$strDbPrivileges = 'Права, які стосуються бази даних';
+$strDbSpecific = 'специфічний для бази даних';
+$strDefaultValueHelp = 'Для значень за замовчуванням, введіть лише значення, без використання зворотніх слешів чи лапок, у такому форматі: a';
+$strDefault = 'По замовчуванню';
+$strDeleteAndFlushDescr = 'Це кращий спосіб, проте перезавантаження прав може потривати певний час.';
+$strDeleteAndFlush = 'Усунути користувачів і перезавантажити права після цього.';
+$strDeleted = 'Рядок видалено';
+$strDelete = 'Видалити';
+$strDeleting = 'Усунути %s';
+$strDelOld = 'Ця сторінка має посилання на таблицю, якої вже немає. Бажаєте видалити ці посилання?';
+$strDescending = 'Спадаючий';
+$strDescription = 'Опис';
+$strDictionary = 'словник';
+$strDisabled = 'заблоковано';
+$strDisplayFeat = 'Показати можливості';
+$strDisplayOrder = 'Порядок перегляду:';
+$strDisplayPDF = 'Показати PDF схему';
+$strDoAQuery = 'Виконати "запит згідно прикладу" (символ підставновки: "%")';
+$strDocu = 'Документація';
+$strDoYouReally = 'Ви насправді хочете ';
+$strDropUsersDb = 'Усунути бази даних, які мають такі ж назви як імена користувачів.';
+$strDrop = 'Знищити';
+$strDumpingData = 'Дамп даних таблиці';
+$strDumpSaved = 'Dump збережено у файл %s.';
+$strDumpXRows = 'Зґенерувати дамп %s рядків починаючи з %s -го.';
+$strDynamic = 'динамічний';
+
+$strEditPDFPages = 'Редагувати PDF Сторінки';
+$strEditPrivileges = 'Редагування привілеїв';
+$strEdit = 'Редагувати';
+$strEffective = 'Ефективність';
+$strEmptyResultSet = 'MySQL повернула пустий результат (тобто нуль рядків).';
+$strEmpty = 'Очистити';
+$strEnabled = 'дозволено';
+$strEndCut = 'END CUT';
+$strEndRaw = 'END RAW';
+$strEnd = 'Кінець';
+$strEnglishPrivileges = ' Зауваження: привілеї MySQL задаються по-англійськи ';
+$strEnglish = 'Англійське';
+$strError = 'Помилка';
+$strEstonian = 'Естонське';
+$strExecuteBookmarked = 'Виконати збережений запит';
+$strExplain = 'Тлумачити SQL';
+$strExport = 'Експорт';
+$strExtendedInserts = 'Розширена вставка';
+$strExtra = 'Додатково';
+
+$strFailedAttempts = 'Невдалих спроб';
+$strFieldHasBeenDropped = 'Поле %s було видалено';
+$strFieldsEnclosedBy = 'Поля взято в';
+$strFieldsEscapedBy = 'Поля екрануються';
+$strFieldsTerminatedBy = 'Поля розділені';
+$strFields = 'Поля';
+$strField = 'Поле';
+$strFileAlreadyExists = 'Файл %s існує на сервері, прошу змінити назву файлу, або відмітити опцію заміни існуючих файлів.';
+$strFileCouldNotBeRead = 'Неможливо прочитати файл';
+$strFileNameTemplateRemember = 'запам\'ятати шаблон';
+$strFileNameTemplate = 'Шаблон назви файлу';
+$strFixed = 'фіксований';
+$strFlushPrivilegesNote = 'Примітка: phpMyAdmin отримує права користувачів безпосередньо з таблиці прав MySQL. Зміст цієї таблиці може відрізнятися від прав, які використовуються сервером, якщо в цю таблицю вносилися зміни вручну. У цьому випадку Вам необхідно %sперезавантажити права%s перед продовженням.';
+$strFlushTable = 'Очистити кеш таблиці ("FLUSH")';
+$strFormat = 'Формат';
+$strFormEmpty = 'Не задано значення для форми!';
+$strFullText = 'Повні тексти';
+$strFunction = 'Функція';
+
+$strGenBy = 'Згенеровано';
+$strGeneralRelationFeat = 'Загальні можливості';
+$strGenTime = 'Час створення';
+$strGerman = 'Німецьке';
+$strGlobalPrivileges = 'Глобальні права';
+$strGlobalValue = 'Загальне значення';
+$strGlobal = 'глобальний';
+$strGo = 'Вперед';
+$strGrantOption = 'Grant';
+$strGreek = 'Грецьке';
+$strGzip = 'запакувати в "gzip"';
+
+$strHasBeenAltered = 'була змінена.';
+$strHaveToShow = 'Необхідно вибрати принаймі один Стовпчик для показу';
+$strHebrew = 'Іврит';
+$strHomepageOfficial = 'Офіційна сторінка phpMyAdmin';
+$strHome = 'На початок';
+$strHostEmpty = 'Порожнє ім\'я хоста!';
+$strHost = 'Хост';
+$strHungarian = 'Мадярське';
+
+$strId = 'ID';
+$strIdxFulltext = 'ПовнТекст';
+$strIgnore = 'Ігноруровати';
+$strImportFiles = 'Імпорт файлів';
+$strIndexes = 'Індекси';
+$strIndexHasBeenDropped = 'Індекс %s було знищено';
+$strIndexName = 'Назва індекса&nbsp;:';
+$strIndexType = 'Тип індекса&nbsp;:';
+$strIndex = 'Індекс';
+$strInnodbStat = 'Статус InnoDB';
+$strInsecureMySQL = 'Ваш файл конфіґурації містить параметри (root без паролю) які відповідають привілейованому користувачу MySQL. Ваш MySQL сервер у цьому випадку відкритий для вторгнення і тому Вам обов\'язково слід виправити цю прогалину у безпеці.';
+$strInsertAsNewRow = 'Вставити як новий рядок';
+$strInsert = 'Вставити';
+$strInUse = 'використовується';
+
+$strJapanese = 'Японське';
+$strJumpToDB = 'Перейти до бази даних &quot;%s&quot;.';
+$strJustDeleteDescr = '&quot;Усунуті&quot; користувачі все ще матимуть доступ до сервера до тих пір, поки не будуть перезавантажені права.';
+$strJustDelete = 'Щойно усунуто користувачів з таблиці прав.';
+
+$strKeepPass = 'Не змінювати пароль';
+$strKeyname = 'Ім\'я ключа';
+$strKill = 'Вбити';
+$strKorean = 'Корейське';
+
+$strLandscape = 'Landscape';
+$strLaTeX = 'LaTeX';
+$strLengthSet = 'Довжини/Значення*';
+$strLimitNumRows = 'записів на сторінці';
+$strLinesTerminatedBy = 'Рядки розділено';
+$strLinkNotFound = 'Лінк не знайдено';
+$strLinksTo = 'Лінки до';
+$strLithuanian = 'Литовське';
+$strLocalhost = 'Локальний';
+$strLocationTextfile = 'вкажіть розташування текстового файлу';
+$strLoginInformation = 'Вхідна інформація (Login)';
+$strLogin = 'Вхід в систему';
+$strLogout = 'Вийти з системи';
+$strLogPassword = 'Пароль:';
+$strLogUsername = 'Ім\'я користувача:';
+
+$strMIME_available_mime = 'Доступні MIME-types';
+$strMIME_available_transform = 'Доступні перетворення';
+$strMIME_description = 'Опис';
+$strMIME_MIMEtype = 'MIME-type';
+$strMIME_nodescription = 'Немає опису для цього перетворення.<br />Прошу питатися автора, що робить %s.';
+$strMIME_transformation_note = 'Щоб отримати список можливих опцій і їх MIME-type перетворень, натисніть %sописи перетворень%s';
+$strMIME_transformation_options_note = 'Прошу вписати значення опцій перетворення у такому форматі: \'a\', 100, b,\'c\'...<br />Якщо необхідно подати зворотній слеш ("\") чи поодинокі лапки ("\'") у цих значеннях, поставте перед ними додатковий зворотній слеш (наприклад \'\\\\xyz\' чи \'a\\\'b\').';
+$strMIME_transformation_options = 'Опції перетворення';
+$strMIME_transformation = 'Перетворення МІМЕ-типу бровзером';
+$strMIME_without = 'MIME-types подані курсивом не мають окремих функцій перетворення';
+$strModifications = 'Модифікації було збережено';
+$strModifyIndexTopic = 'Змінити індекс';
+$strModify = 'Змінити';
+$strMoveTableOK = 'Таблицю %s було перенесено в %s.';
+$strMoveTableSameNames = 'Не можу перенести таблицю саму в себе!';
+$strMoveTable = 'Перенести таблицю в (база даних<b>.</b>таблиця):';
+$strMultilingual = 'багатомовні';
+$strMySQLCharset = 'MySQL Charset';
+$strMySQLSaid = 'Відповідь MySQL: ';
+$strMySQLShowProcess = 'Показати процеси';
+
+$strName = 'Назва';
+$strNext = 'Дальше';
+$strNoDatabasesSelected = 'Не вибрано бази даних.';
+$strNoDatabases = 'БД відсутні';
+$strNoDescription = 'без опису';
+$strNoDropDatabases = 'Оператори "DROP DATABASE" заборонені.';
+$strNoExplain = 'Не тлумачити SQL';
+$strNoFrames = 'Для роботи phpMyAdmin потрібно браузер з підтримкою <b>фреймів</b>.';
+$strNoIndexPartsDefined = 'Не визначено частини індекса!';
+$strNoIndex = 'Індекс не визначено!';
+$strNoModification = 'Змін немає';
+$strNone = 'Немає';
+$strNoOptions = 'Цей формат не має опцій';
+$strNoPassword = 'Без паролю';
+$strNoPermission = 'Веб-сервер не має привілеїв для збереження файлу %s.';
+$strNoPhp = 'без PHP коду';
+$strNoPrivileges = 'Без привілеїв';
+$strNoRights = 'Ви для цього маєте недостатньо прав!';
+$strNoSpace = 'Бракує місця для збереження файлу %s.';
+$strNoTablesFound = 'В БД не виявлено таблиць.';
+$strNotNumber = 'Це не число!';
+$strNotOK = 'не OK';
+$strNotSet = 'Таблицю <b>%s</b> не знайдено або не визначено у %s';
+$strNoUsersFound = 'Не знайдено користувача.';
+$strNoValidateSQL = 'Не перевіряти SQL';
+$strNo = 'Ні';
+$strNull = 'Нуль';
+$strNumSearchResultsInTable = '%s співпадіння у таблиці <i>%s</i>';
+$strNumSearchResultsTotal = '<b>Разом:</b> <i>%s</i> співпадіння';
+$strNumTables = 'Таблиць';
+
+$strOK = 'OK';
+$strOperations = 'Операцій';
+$strOptimizeTable = 'Оптимізувати таблицю';
+$strOr = 'або';
+$strOverhead = 'Надмірні видатки';
+$strOverwriteExisting = 'Заміняти існуючі файли';
+
+$strPageNumber = 'Номер сторінки:';
+$strPaperSize = 'Формат паперу';
+$strPartialText = 'Часткові тексти';
+$strPasswordChanged = 'Пароль для %s успішно змінено.';
+$strPasswordEmpty = 'Порожній пароль!';
+$strPasswordNotSame = 'Паролі не однакові!';
+$strPassword = 'Пароль';
+$strPdfDbSchema = 'Схема бази даних "%s" - Сторінка %s';
+$strPdfInvalidTblName = 'Таблиці "%s" не існує!';
+$strPdfNoTables = 'Таблиць немає';
+$strPerHour = 'за годину';
+$strPerMinute = 'за хвилину';
+$strPerSecond = 'за секунду';
+$strPhoneBook = 'телефонна книга';
+$strPHPVersion = 'Версія PHP';
+$strPhp = 'Створити PHP код';
+$strPmaDocumentation = 'Документація по phpMyAdmin';
+$strPmaUriError = 'Змінна <tt>$cfg[\'PmaAbsoluteUri\']</tt> ПОВИННА бути встановлена у Вашому конфіґураційному файлі!';
+$strPortrait = 'Portrait';
+$strPos1 = 'Початок';
+$strPrevious = 'Назад';
+$strPrimaryKeyHasBeenDropped = 'Первинний ключ було знищено';
+$strPrimaryKeyName = 'Ім\'я первинного ключа повинно бути PRIMARY!';
+$strPrimaryKeyWarning = '("PRIMARY" <b>повинно</b> бути іменем <b>лише</b> первинного ключа!)';
+$strPrimary = 'Первинний';
+$strPrintView = 'Версія для друку';
+$strPrint = 'Друк';
+$strPrivDescAllPrivileges = 'Дозволити всі права за винятком GRANT.';
+$strPrivDescAlter = 'Дозволити змінювати структуру наявних таблиць.';
+$strPrivDescCreateDb = 'Дозволити створювати нові бази даних та таблиці.';
+$strPrivDescCreateTbl = 'Дозволити створювати нові таблиці.';
+$strPrivDescCreateTmpTable = 'Дозволити створювати тимчасові таблиці.';
+$strPrivDescDelete = 'Дозволити знищувати дані з таблиць.';
+$strPrivDescDropDb = 'Дозволити знищувати бази даних та таблиці.';
+$strPrivDescDropTbl = 'Дозволити знищувати таблиці.';
+$strPrivDescExecute = 'Дозволити виконання збережених процедур; Неефективно для цієї версії MySQL.';
+$strPrivDescFile = 'Дозволити імпорт даних з файлів, та експорт у файли.';
+$strPrivDescGrant = 'Дозволити додавання користувачів та прав без перезавантаження таблиці прав.';
+$strPrivDescIndex = 'Дозволити створення та знищення індексів.';
+$strPrivDescInsert = 'Дозволити вставку та заміну даних.';
+$strPrivDescLockTables = 'Дозволити блокування таблиць для біжучих потоків.';
+$strPrivDescMaxConnections = 'Обмежити кількість нових під\'єднань, які користувач може створювати протягом години.';
+$strPrivDescMaxQuestions = 'Обмежити кількість запитів, які користувач може надіслати серверу протягом години.';
+$strPrivDescMaxUpdates = 'Обмежити кількість команд, що вносять зміни до будь-якої таблиці чи бази даних, які користувач може виконати протягом години.';
+$strPrivDescReferences = 'Неефективно для цієї версії MySQL.';
+$strPrivDescReload = 'Дозволити перезавантаження установок та очищення кешу сервера.';
+$strPrivDescReplClient = 'Надати користувачу право запитувати де є slaves / masters.';
+$strPrivDescReplSlave = 'Необхідно для реплікації slaves.';
+$strPrivDescSelect = 'Дозволити читання даних.';
+$strPrivDescShowDb = 'Надати доступ до повного списку баз даних.';
+$strPrivDescShutdown = 'Дозволити вимкнення сервера.';
+$strPrivDescSuper = 'Дозволити під\'єднання, навіть якщо досягнуто максимальної кількості під\'єднань; Обов\'язково для більшості адміністративних операцій таких як встановлення ґлобальних змінних чи припинення процесів інших користувачів.';
+$strPrivDescUpdate = 'Дозволити зміну даних.';
+$strPrivDescUsage = 'Немає прав.';
+$strPrivilegesReloaded = 'Права успішно перезавантажено.';
+$strPrivileges = 'Привілеї';
+$strProcesses = 'Процеси';
+$strProcesslist = 'Список процесів';
+$strPutColNames = 'Дати назви полів у першому рядку';
+
+$strQBEDel = 'Видалити';
+$strQBEIns = 'Вставити';
+$strQBE = 'Запит згідно прикладу';
+$strQueryFrame = 'Вікно запиту';
+$strQueryOnDb = 'SQL-запит до БД <b>%s</b>:';
+$strQuerySQLHistory = 'SQL-history';
+$strQueryStatistics = '<b>Статистика запитів</b>: З моменту запуску, до сервера було надіслано %s запитів.';
+$strQueryTime = 'Запит виконувався %01.4f сек';
+$strQueryType = 'Тип запиту';
+$strQueryWindowLock = 'Не перекривати цей запит в інших вікнах';
+
+$strReceived = 'Отримано';
+$strRecords = 'Записи';
+$strReferentialIntegrity = 'Перевір цілісність даних на рівні посилань:';
+$strRelationalSchema = 'Схема зв\'язків';
+$strRelationNotWorking = 'Додаткова можливість роботи із залінкованими таблицями деактивована. Для того, щоб довідатись чому, натисніть %sтут%s.';
+$strRelations = 'Зв\'язки';
+$strRelationView = 'Перегляд залежностей';
+$strReloadingThePrivileges = 'Перезавантаження прав';
+$strRemoveSelectedUsers = 'Усунути відмічених користувачів';
+$strRenameTableOK = 'Таблицю %s було перейменовано в %s';
+$strRenameTable = 'Перейменувати таблицю в';
+$strRepairTable = 'Ремонтувати таблицю';
+$strReplaceNULLBy = 'Замінити NULL на';
+$strReplaceTable = 'Замінити дані таблиці даними з файлу';
+$strReset = 'Перевстановити';
+$strResourceLimits = 'Обмеження ресурсів';
+$strReType = 'Підтвердження';
+$strRevokeAndDeleteDescr = 'Користувачі все ще будуть мати право КОРИСТУВАННЯ (USAGE) до тих пір, поки не будуть перезавантажені права.';
+$strRevokeAndDelete = 'Відмінити всі активні права користувачів та усунути їх після цього.';
+$strRevokeMessage = 'Ви змінили привілеї для %s';
+$strRevoke = 'Відмінити';
+$strRowLength = 'Довжина рядка';
+$strRowsFrom = 'рядків з';
+$strRowSize = ' Розмір рядка ';
+$strRowsModeFlippedHorizontal = 'горизонтально (rotated headers)';
+$strRowsModeHorizontal = ' горизонтально ';
+$strRowsModeOptions = '-го %s і дублювати заголовки через кожні %s рядків ';
+$strRowsModeVertical = ' вертикально ';
+$strRowsStatistic = 'Статистика рядка';
+$strRows = 'Рядки';
+$strRunning = 'на %s';
+$strRunQuery = 'Виконати запит';
+$strRunSQLQuery = 'Виконати SQL запит(и) до БД %і';
+$strRussian = 'Російське';
+
+$strSaveOnServer = 'Зберегти на сервері в каталогу %s ';
+$strSave = 'Зберегти';
+$strScaleFactorSmall = 'Занадто малий масштаб щоб схема займала цілу сторінку';
+$strSearchFormTitle = 'Шукати в базі даних';
+$strSearchInTables = 'Всередині таблиць:';
+$strSearchNeedle = 'Слова чи значення, які потрібно знайти (маска: "%"):';
+$strSearchOption1 = 'принаймі одне з слів';
+$strSearchOption2 = 'всі слова';
+$strSearchOption3 = 'точну фразу';
+$strSearchOption4 = 'регулярний вираз';
+$strSearchResultsFor = 'Результати пошуку "<i>%s</i>" %s:';
+$strSearchType = 'Знайти:';
+$strSearch = 'Шукати';
+$strSecretRequired = 'Конфігураційний файл потребує секретну фразу (пароль).';
+$strSelectADb = 'Прошу вибрати БД';
+$strSelectAll = 'Відмітити все';
+$strSelectFields = 'Вибрати поля (щонайменше одне):';
+$strSelectNumRows = 'по запиту';
+$strSelectTables = 'Вибрати таблиці';
+$strSend = 'Відіслати';
+$strSent = 'Відправлено';
+$strServerChoice = 'Вибір сервера';
+$strServerStatusUptime = 'Цей MySQL сервер працює %s. Стартував %s.';
+$strServerStatus = 'Інформація про роботу сервера';
+$strServerTabVariables = 'Змінні';
+$strServerTrafficNotes = '<b>Трафік сервера</b>: таблиці показують статистику завантаження мережі цим MySQL сервером з моменту його запуску.';
+$strServerVars = 'Змінні сервера та налаштування';
+$strServerVersion = 'Версія сервера';
+$strServer = 'Сервер';
+$strSessionValue = 'Значення сесії';
+$strSetEnumVal = 'Для типів поля "enum" та "set", введіть значення згідно такого формату: \'a\',\'b\',\'c\'...<br />Якщо вам буде потрібно ввести зворотню косу риску ("\"") або поодинокі лапки ("\'") посеред цих значень, поставте перед ними зворотню косу риску (наприклад, \'\\\\xyz\' чи \'a\\\'b\').';
+$strShowAll = 'Показати все';
+$strShowColor = 'Показати колір';
+$strShowDatadictAs = 'Формат словника';
+$strShowFullQueries = 'Показати повні запити';
+$strShowGrid = 'Показати сітку';
+$strShowingRecords = 'Показано записи ';
+$strShowPHPInfo = 'Показати інформацію про PHP';
+$strShowTableDimension = 'Показати розміри таблиць';
+$strShowTables = 'Показати таблиці';
+$strShowThisQuery = ' Показати даний запит знову ';
+$strShow = 'Показати';
+$strSimplifiedChinese = 'Китайське Спрощене';
+$strSingly = '(окремо)';
+$strSize = 'Розмір';
+$strSort = 'Посортувати';
+$strSpaceUsage = 'Простір, що використовується';
+$strSplitWordsWithSpace = 'Слова розділені пробілом (" ").';
+$strSQLParserBugMessage = 'Можливо Ви знайшли помилку в парсері SQL. Прошу детальніше перевірити чи коректно вжиті і не пропущені лапки у Вашому запиті. Іншою можливою причиною помилки може бути те що Ви завантажили файл з двійковими даними розміщеними поза взятим в лапки текстом. Спробуйте виконати Ваш запит за допомогою оболонки MySQL з командної стрічки. Повідомлення MySQL сервера про помилку подане нижче (якщо є таке) також може допомогти Вам у визначенні проблеми. Якщо у Вас все ще виникають проблеми чи парсер видає помилку, а з командної стрічки запити виконуються, прошу скоротити Ваш ввідний SQL запит до одного запиту, який власне і викликає проблеми, і відішліть повідомлення про помилку з порцією даних у розділі CUT нижче:';
+$strSQLParserUserError = 'There seems to be an error in your SQL query. Повідомлення MySQL сервера про помилку подане нижче (якщо є таке) також може допомогти Вам у визначенні проблеми.';
+$strSQLQuery = 'SQL-запит';
+$strSQLResult = 'SQL result';
+$strSQL = 'SQL';
+$strSQPBugInvalidIdentifer = 'Некоректний ідентифікатор';
+$strSQPBugUnclosedQuote = 'Не закриті лапки';
+$strSQPBugUnknownPunctuation = 'Невідомий символ пунктуації';
+$strStatCheckTime = 'Перевірено';
+$strStatCreateTime = 'Створено';
+$strStatement = 'Параметр';
+$strStatUpdateTime = 'Поновлено';
+$strStatus = 'Статус';
+$strStrucCSV = 'CSV дані';
+$strStrucData = 'Структуру і дані';
+$strStrucExcelCSV = 'CSV для даних MS Excel';
+$strStrucOnly = 'Лише структуру';
+$strStructPropose = 'Запропонувати структуру таблиці';
+$strStructure = 'Структура';
+$strSubmit = 'Виконати';
+$strSuccess = 'Ваш SQL-запит було успішно виконано';
+$strSum = 'Всього';
+$strSwedish = 'Шведське';
+$strSwitchToTable = 'Перейти до скопійованої таблиці';
+
+$strTableComments = 'Коментар до таблиці';
+$strTableEmpty = 'Порожня назва таблиці!';
+$strTableHasBeenDropped = 'Таблицю %s було знищено';
+$strTableHasBeenEmptied = 'Таблицю %s було очищено';
+$strTableHasBeenFlushed = 'Було очищено кеш таблиці %s';
+$strTableMaintenance = 'Обслговування таблиці';
+$strTableOfContents = 'Зміст';
+$strTableOptions = 'Налаштування таблиці';
+$strTables = '%s таблиц(і)';
+$strTableStructure = 'Структура таблиці';
+$strTable = 'таблиця ';
+$strTblPrivileges = 'Права, які стосуються таблиці';
+$strTextAreaLength = ' Через велику довжину,<br /> це поле не може бути відредаговано ';
+$strThai = 'Тайське';
+$strThisHost = 'Цей хост';
+$strThreadSuccessfullyKilled = 'Процес %s припинено.';
+$strTime = 'Час';
+$strToggleScratchboard = 'ввімкнути чорновик (scratchboard)';
+$strTotalUC = 'Разом';
+$strTotal = 'всього';
+$strTraditionalChinese = 'Китайське Традиційне';
+$strTraffic = 'Трафік';
+$strTransformation_image_jpeg__inline = 'Відображає clickable thumbnail; опції: ширина, висота у пікселах (зберігає початкові пропорції)';
+$strTransformation_image_jpeg__link = 'Відображає лінк до цього малюнку (direct blob download, i.e.).';
+$strTransformation_image_png__inline = 'Див. image/jpeg: inline';
+$strTransformation_text_plain__external = 'LINUX ONLY: Запускає зовнішню програму і подає дані через стандартний ввід. Повертає снаддартний вивід програми. За замовчуванням програмою є Tidy, яка гарно друкує HTML код. З міркувань безпеки, Вам потрібно самостійно відредагувати файл libraries/transformations/text_plain__external.inc.php та вписати програми дозволені для запуску. У такому випадку, перша опція - кількість програм, які Ви бажаєте використовувати і друга - параметри для програм. Третя опція, встановлена в 1, буде ковертувати вивід використовуючи htmlspecialchars() (за замовчуванням: 1). Четверта опція, встановлена в 1, буде додавати NOWRAP до кожної комірки контенту, так що веси вивід буде показано без переформатування (за замовчуванням: 1)';
+$strTransformation_text_plain__formatted = 'Зберігає початкове форматування поля. Не вносяться модифікації.';
+$strTransformation_text_plain__imagelink = 'Показує малюнок і лінк, поле містить назву файлу; перша опція - префікс, подібно до "http://domain.com/", друга - ширина в пікселах, третя - висота.';
+$strTransformation_text_plain__link = 'Показує лінк, поле містить назву файлу; перша опція - префікс, подібно до "http://domain.com/", друга опція - title для лінку.';
+$strTransformation_text_plain__substr = 'Показує лише частину тексту. Перша опція - це відступ який визначає з якого місця повинен початися вивід тексту (за замовчуванням: 0). Друга опція - визначає скільки тексту буде виведено. Якщо вона порожня - виводиться решта всього тексту. Третя опція - визначає які символи буде додано після виведеного текстового сегменту (за замовчуванням: ...) .';
+$strTruncateQueries = 'Обрізати показані запити';
+$strTurkish = 'Турецьке';
+$strType = 'Тип';
+
+$strUkrainian = 'Українське';
+$strUncheckAll = 'Зняти усі відмітки';
+$strUnicode = 'Юнікод';
+$strUnique = 'Унікальне';
+$strUnknown = 'невідоме';
+$strUnselectAll = 'Зняти всі відмітки';
+$strUpdatePrivMessage = 'Було змінено привілеї для';
+$strUpdateProfileMessage = 'Профіль було поновлено.';
+$strUpdateQuery = 'Доповнити запит';
+$strUpdComTab = 'За інформацією як поновити Вашу таблицю Column_comments прошу дивитись у Документації';
+$strUsage = 'Використання';
+$strUseBackquotes = 'Зворотні лапки в назвах таблиць і полів';
+$strUseHostTable = 'Використовувати Таблицю Хостів';
+$strUserAlreadyExists = 'Користувач %s вже існує!';
+$strUserEmpty = 'Порожнє і\'мя користувача!';
+$strUserName = 'Ім\'я користувача';
+$strUserNotFound = 'Вказаного користувача не знайдено в таблиці прав.';
+$strUserOverview = 'Огляд користувачів';
+$strUsersDeleted = 'Відмічених користувачів успішно усунуто.';
+$strUsersHavingAccessToDb = 'Користувачі, котрі мають доступ до &quot;%s&quot;';
+$strUser = 'Користувач';
+$strUseTables = 'Використовувати таблиці';
+$strUseTextField = 'Використовувати текстове поле';
+
+$strValidateSQL = 'Перевірити SQL';
+$strValidatorError = 'Не можу запустити перевірку SQL. Прошу проконтролювати чи заінстальовано необхідні php extensions як описано в %sдокументації%s.';
+$strValue = 'Значення';
+$strVar = 'Змінна';
+$strViewDumpDatabases = 'Переглянути dump (схему) баз даних';
+$strViewDumpDB = 'Переглянути дамп (схему) БД';
+$strViewDump = 'Переглянути дамп (схему) таблиці';
+
+$strWebServerUploadDirectoryError = 'Встановлений Вами каталог для завантаження файлів недоступний';
+$strWebServerUploadDirectory = 'каталог веб-сервера для завантаження файлів (upload directory)';
+$strWelcome = 'Ласкаво просимо до %s';
+$strWestEuropean = 'Західно Європейське';
+$strWildcard = 'шаблон';
+$strWithChecked = 'З відміченими:';
+$strWrongUser = 'Невірний логін/пароль. Доступ не дозволено.';
+
+$strXML = 'XML';
+
+$strYes = 'Так';
+
+$strZeroRemovesTheLimit = 'Примітка: Встановлення цієї опції у 0 (нуль) знімає обмеження.';
+$strZip = 'запакувати в "zip"';
+
+// To translate:
+$strAccessDeniedCreateConfig = 'Probably reason of this is that you did not create configuration file. You might want to use %1$ssetup script%2$s to create one.'; //to translate
+$strAddAutoIncrement = 'Add AUTO_INCREMENT value'; //to translate
+$strAddConstraints = 'Add constraints'; //to translate
+$strAddFields = 'Add %s field(s)'; //to translate
+$strAddHeaderComment = 'Add custom comment into header (\\n splits lines)'; //to translate
+$strAfterInsertNext = 'Edit next row'; //to translate
+$strAfterInsertSame = 'Go back to this page'; //to translate
+$strAllowInterrupt = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strAndThen = 'and then'; //to translate
+$strApproximateCount = 'May be approximate. See FAQ 3.11'; //to translate
+
+$strBinaryLog = 'Binary log'; //to translate
+$strBinLogEventType = 'Event type'; //to translate
+$strBinLogInfo = 'Information'; //to translate
+$strBinLogName = 'Log name'; //to translate
+$strBinLogOriginalPosition = 'Original position'; //to translate
+$strBinLogPosition = 'Position'; //to translate
+$strBinLogServerId = 'Server ID'; //to translate
+$strBookmarkAllUsers = 'Let every user access this bookmark'; //to translate
+$strBookmarkCreated = 'Bookmark %s created'; //to translate
+$strBookmarkReplace = 'Replace existing bookmark of same name'; //to translate
+$strBrowseDistinctValues = 'Browse distinct values'; //to translate
+$strBrowseForeignValues = 'Browse foreign values'; //to translate
+$strBufferPoolActivity = 'Buffer Pool Activity'; //to translate
+$strBufferPool = 'Buffer Pool'; //to translate
+$strBufferPoolUsage = 'Buffer Pool Usage'; //to translate
+$strBufferReadMissesInPercent = 'Read misses in %'; //to translate
+$strBufferReadMisses = 'Read misses'; //to translate
+$strBufferWriteWaitsInPercent = 'Write waits in %'; //to translate
+$strBufferWriteWaits = 'Write waits'; //to translate
+$strBusyPages = 'Busy pages'; //to translate
+
+$strCalendar = 'Calendar'; //to translate
+$strCanNotLoadImportPlugins = 'Could not load import plugins, please check your installation!'; //to translate
+$strCheckOverhead = 'Check tables with overhead'; //to translate
+$strCompatibleHashing = 'MySQL&nbsp;4.0 compatible'; //to translate
+$strCompressionWillBeDetected = 'Imported file compression will be automatically detected from: %s'; //to translate
+$strConfigDefaultFileError = 'Could not load default configuration from: "%1$s"'; //to translate
+$strConnectionError = 'Cannot connect: invalid settings.'; //to translate
+$strConstraintsForDumped = 'Constraints for dumped tables'; //to translate
+$strConstraintsForTable = 'Constraints for table'; //to translate
+$strCopy = 'Copy'; //to translate
+$strCopyDatabaseOK = 'Database %s has been copied to %s'; //to translate
+$strCreateDatabaseBeforeCopying = 'CREATE DATABASE before copying'; //to translate
+$strCreationDates = 'Creation/Update/Check dates'; //to translate
+$strCSV = 'CSV'; //to translate
+$strCzechSlovak = 'Czech-Slovak'; //to translate
+
+$strDatabaseEmpty = 'The database name is empty!'; //to translate
+$strDataPages = 'Pages containing data'; //to translate
+$strDBCopy = 'Copy database to'; //to translate
+$strDBRename = 'Rename database to'; //to translate
+$strDefaultEngine = '%s is the default storage engine on this MySQL server.'; //to translate
+$strDefragment = 'Defragment table'; //to translate
+$strDelayedInserts = 'Use delayed inserts'; //to translate
+$strDeleteNoUsersSelected = 'No users selected for deleting!'; //to translate
+$strDirtyPages = 'Dirty pages'; //to translate
+$strDisableForeignChecks = 'Disable foreign key checks'; //to translate
+$strDropDatabaseStrongWarning = 'You are about to DESTROY a complete database!'; //to translate
+
+$strEncloseInTransaction = 'Enclose export in a transaction'; //to translate
+$strEngineAvailable = '%s is available on this MySQL server.'; //to translate
+$strEngineDisabled = '%s has been disabled for this MySQL server.'; //to translate
+$strEngines = 'Engines'; //to translate
+$strEngineUnsupported = 'This MySQL server does not support the %s storage engine.'; //to translate
+$strErrorInZipFile = 'Error in ZIP archive:'; //to translate
+$strEscapeWildcards = 'Wildcards _ and % should be escaped with a \ to use them literally'; //to translate
+$strEsperanto = 'Esperanto'; //to translate
+$strExcelEdition = 'Excel edition'; //to translate
+
+$strFileNameTemplateDescriptionDatabase = 'database name'; //to translate
+$strFileNameTemplateDescriptionServer = 'server name'; //to translate
+$strFileNameTemplateDescriptionTable = 'table name'; //to translate
+$strFileNameTemplateDescription = 'This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is.'; //to translate
+$strFileToImport = 'File to import'; //to translate
+$strFlushQueryCache = 'Flush query cache'; //to translate
+$strFlushTables = 'Flush (close) all tables'; //to translate
+$strFreePages = 'Free pages'; //to translate
+
+$strGenerate = 'Generate'; //to translate
+$strGeneratePassword = 'Generate Password'; //to translate
+$strGeorgian = 'Georgian'; //to translate
+
+$strHandler = 'Handler'; //to translate
+$strHTMLExcel = 'Microsoft Excel 2000'; //to translate
+$strHTMLWord = 'Microsoft Word 2000'; //to translate
+
+$strIcelandic = 'Icelandic'; //to translate
+$strIgnoreDuplicates = 'Ignore duplicate rows'; //to translate
+$strIgnoreInserts = 'Use ignore inserts'; //to translate
+$strImportFormat = 'Format of imported file'; //to translate
+$strImport = 'Import'; //to translate
+$strImportSuccessfullyFinished = 'Import has been successfully finished, %d queries executed.'; //to translate
+$strIndexWarningTable = 'Problems with indexes of table `%s`';//to translate
+$strInnoDBAutoextendIncrement = 'Autoextend increment'; //to translate
+$strInnoDBAutoextendIncrementDesc = ' The increment size for extending the size of an autoextending tablespace when it becomes full.'; //to translate
+$strInnoDBBufferPoolSize = 'Buffer pool size'; //to translate
+$strInnoDBBufferPoolSizeDesc = 'The size of the memory buffer InnoDB uses to cache data and indexes of its tables.'; //to translate
+$strInnoDBDataFilePath = 'Data files'; //to translate
+$strInnoDBDataHomeDir = 'Data home directory'; //to translate
+$strInnoDBDataHomeDirDesc = 'The common part of the directory path for all InnoDB data files.'; //to translate
+$strInnoDBPages = 'pages'; //to translate
+$strInternalRelations = 'Internal relations'; //to translate
+$strInvalidAuthMethod = 'Invalid authentication method set in configuration:'; //to translate
+$strInvalidColumnCount = 'Column count has to be larger than zero.'; //to translate
+$strInvalidColumn = 'Invalid column (%s) specified!'; //to translate
+$strInvalidCSVFieldCount = 'Invalid field count in CSV input on line %d.'; //to translate
+$strInvalidCSVFormat = 'Invalid format of CSV input on line %d.'; //to translate
+$strInvalidCSVParameter = 'Invalid parameter for CSV import: %s'; //to translate
+$strInvalidFieldAddCount = 'You have to add at least one field.'; //to translate
+$strInvalidFieldCount = 'Table must have at least one field.'; //to translate
+$strInvalidLDIImport = 'This plugin does not support compressed imports!'; //to translate
+$strInvalidRowNumber = '%d is not valid row number.'; //to translate
+$strInvalidServerHostname = 'Invalid hostname for server %1$s. Please review your configuration.'; //to translate
+$strInvalidServerIndex = 'Invalid server index: "%s"'; //to translate
+
+$strJoins = 'Joins'; //to translate
+
+$strKeyCache = 'Key cache'; //to translate
+
+$strLanguageUnknown = 'Unknown language: %1$s.'; //to translate
+$strLatchedPages = 'Latched pages'; //to translate
+$strLatexCaption = 'Table caption';//to translate
+$strLatexContent = 'Content of table __TABLE__';//to translate
+$strLatexContinuedCaption = 'Continued table caption';//to translate
+$strLatexContinued = '(continued)';//to translate
+$strLatexIncludeCaption = 'Include table caption';//to translate
+$strLatexLabel = 'Label key';//to translate
+$strLatexStructure = 'Structure of table __TABLE__';//to translate
+$strLatvian = 'Latvian'; //to translate
+$strLDI = 'CSV using LOAD DATA'; //to translate
+$strLDILocal = 'Use LOCAL keyword'; //to translate
+$strLogServer = 'Server'; //to translate
+$strLongOperation = 'This operation could be long. Proceed anyway?'; //to translate
+
+$strMaxConnects = 'max. concurrent connections'; //to translate
+$strMaximalQueryLength = 'Maximal length of created query'; //to translate
+$strMaximumSize = 'Maximum size: %s%s'; //to translate
+$strMbExtensionMissing = 'The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.'; //to translate
+$strMbOverloadWarning = 'You have enabled mbstring.func_overload in your PHP configuration. This option is incompatible with phpMyAdmin and might cause breaking of some data!'; //to translate
+$strMIMETypesForTable = 'MIME TYPES FOR TABLE'; //to translate
+$strMyISAMDataPointerSize = 'Data pointer size'; //to translate
+$strMyISAMDataPointerSizeDesc = 'The default pointer size in bytes, to be used by CREATE TABLE for MyISAM tables when no MAX_ROWS option is specified.'; //to translate
+$strMyISAMMaxExtraSortFileSizeDesc = 'If the temporary file used for fast MyISAM index creation would be larger than using the key cache by the amount specified here, prefer the key cache method.'; //to translate
+$strMyISAMMaxExtraSortFileSize = 'Maximum size for temporary files on index creation'; //to translate
+$strMyISAMMaxSortFileSizeDesc = 'The maximum size of the temporary file MySQL is allowed to use while re-creating a MyISAM index (during REPAIR TABLE, ALTER TABLE, or LOAD DATA INFILE).'; //to translate
+$strMyISAMMaxSortFileSize = 'Maximum size for temporary sort files'; //to translate
+$strMyISAMRecoverOptions = 'Automatic recovery mode'; //to translate
+$strMyISAMRecoverOptionsDesc = 'The mode for automatic recovery of crashed MyISAM tables, as set via the --myisam-recover server startup option.'; //to translate
+$strMyISAMRepairThreadsDesc = 'If this value is greater than 1, MyISAM table indexes are created in parallel (each index in its own thread) during the Repair by sorting process.'; //to translate
+$strMyISAMRepairThreads = 'Repair threads'; //to translate
+$strMyISAMSortBufferSizeDesc = 'The buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.'; //to translate
+$strMyISAMSortBufferSize = 'Sort buffer size'; //to translate
+$strMysqlClientVersion = 'MySQL client version'; //to translate
+$strMySQLConnectionCollation = 'MySQL connection collation'; //to translate
+
+$strNoActivity = 'No activity since %s seconds or more, please login again'; //to translate
+$strNoDetailsForEngine = 'There is no detailed status information available for this storage engine.'; //to translate
+$strNoFilesFoundInZip = 'No files found inside ZIP archive!'; //to translate
+$strNoRowsSelected = 'No rows selected'; //to translate
+$strNoThemeSupport = 'No themes support, please check your configuration and/or your themes in directory %s.'; //to translate
+$strNumberOfFields = 'Number of fields'; //to translate
+
+$strOpenNewWindow = 'Open new phpMyAdmin window'; //to translate
+$strOperator = 'Operator'; //to translate
+
+$strPagesToBeFlushed = 'Pages to be flushed'; //to translate
+$strPartialImport = 'Partial import'; //to translate
+$strPasswordHashing = 'Password Hashing'; //to translate
+$strPDF = 'PDF'; //to translate
+$strPDFReportTitle = 'Report title'; //to translate
+$strPersian = 'Persian'; //to translate
+$strPolish = 'Polish'; //to translate
+$strPrintViewFull = 'Print view (with full texts)'; //to translate
+$strPrivDescAlterRoutine = 'Allows altering and dropping stored routines.'; //to translate
+$strPrivDescCreateRoutine = 'Allows creating stored routines.'; //to translate
+$strPrivDescCreateUser = 'Allows creating, dropping and renaming user accounts.'; //to translate
+$strPrivDescCreateView = 'Allows creating new views.'; //to translate
+$strPrivDescExecute5 = 'Allows executing stored routines.'; //to translate
+$strPrivDescMaxUserConnections = 'Limits the number of simultaneous connections the user may have.'; //to translate
+$strPrivDescShowView = 'Allows performing SHOW CREATE VIEW queries.'; //to translate
+$strProtocolVersion = 'Protocol version'; //to translate
+
+$strQueryCache = 'Query cache'; //to translate
+
+$strReadRequests = 'Read requests'; //to translate
+$strRefresh = 'Refresh'; //to translate
+$strRelationsForTable = 'RELATIONS FOR TABLE'; //to translate
+$strReloadPrivileges = 'Reload privileges'; //to translate
+$strRenameDatabaseOK = 'Database %s has been renamed to %s'; //to translate
+$strReplication = 'Replication'; //to translate
+$strRomanian = 'Romanian'; //to translate
+$strRunSQLQueryOnServer = 'Run SQL query/queries on server %s'; //to translate
+
+$strSelectBinaryLog = 'Select binary log to view'; //to translate
+$strServerNotResponding = 'The server is not responding'; //to translate
+$strServerStatusDelayedInserts = 'Delayed inserts'; //to translate
+$strShowingBookmark = 'Showing bookmark'; //to translate
+$strShowOpenTables = 'Show open tables'; //to translate
+$strShowSlaveHosts = 'Show slave hosts'; //to translate
+$strShowSlaveStatus = 'Show slave status'; //to translate
+$strShowStatusBinlog_cache_disk_useDescr = 'The number of transactions that used the temporary binary log cache but that exceeded the value of binlog_cache_size and used a temporary file to store statements from the transaction.'; //to translate
+$strShowStatusBinlog_cache_useDescr = 'The number of transactions that used the temporary binary log cache.'; //to translate
+$strShowStatusCreated_tmp_disk_tablesDescr = 'The number of temporary tables on disk created automatically by the server while executing statements. If Created_tmp_disk_tables is big, you may want to increase the tmp_table_size value to cause temporary tables to be memory-based instead of disk-based.'; //to translate
+$strShowStatusCreated_tmp_filesDescr = 'How many temporary files mysqld has created.'; //to translate
+$strShowStatusCreated_tmp_tablesDescr = 'The number of in-memory temporary tables created automatically by the server while executing statements.'; //to translate
+$strShowStatusDelayed_errorsDescr = 'The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).'; //to translate
+$strShowStatusDelayed_insert_threadsDescr = 'The number of INSERT DELAYED handler threads in use. Every different table on which one uses INSERT DELAYED gets its own thread.'; //to translate
+$strShowStatusDelayed_writesDescr = 'The number of INSERT DELAYED rows written.'; //to translate
+$strShowStatusFlush_commandsDescr = 'The number of executed FLUSH statements.'; //to translate
+$strShowStatusHandler_commitDescr = 'The number of internal COMMIT statements.'; //to translate
+$strShowStatusHandler_deleteDescr = 'The number of times a row was deleted from a table.'; //to translate
+$strShowStatusHandler_discoverDescr = 'The MySQL server can ask the NDB Cluster storage engine if it knows about a table with a given name. This is called discovery. Handler_discover indicates the number of time tables have been discovered.'; //to translate
+$strShowStatusHandler_read_firstDescr = 'The number of times the first entry was read from an index. If this is high, it suggests that the server is doing a lot of full index scans; for example, SELECT col1 FROM foo, assuming that col1 is indexed.'; //to translate
+$strShowStatusHandler_read_keyDescr = 'The number of requests to read a row based on a key. If this is high, it is a good indication that your queries and tables are properly indexed.'; //to translate
+$strShowStatusHandler_read_nextDescr = 'The number of requests to read the next row in key order. This is incremented if you are querying an index column with a range constraint or if you are doing an index scan.'; //to translate
+$strShowStatusHandler_read_prevDescr = 'The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.'; //to translate
+$strShowStatusHandler_read_rndDescr = 'The number of requests to read a row based on a fixed position. This is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan whole tables or you have joins that don\'t use keys properly.'; //to translate
+$strShowStatusHandler_read_rnd_nextDescr = 'The number of requests to read the next row in the data file. This is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.'; //to translate
+$strShowStatusHandler_rollbackDescr = 'The number of internal ROLLBACK statements.'; //to translate
+$strShowStatusHandler_updateDescr = 'The number of requests to update a row in a table.'; //to translate
+$strShowStatusHandler_writeDescr = 'The number of requests to insert a row in a table.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dataDescr = 'The number of pages containing data (dirty or clean).'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_dirtyDescr = 'The number of pages currently dirty.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_flushedDescr = 'The number of buffer pool pages that have been requested to be flushed.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_freeDescr = 'The number of free pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_latchedDescr = 'The number of latched pages in InnoDB buffer pool. These are pages currently being read or written or that can\'t be flushed or removed for some other reason.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_miscDescr = 'The number of pages busy because they have been allocated for administrative overhead such as row locks or the adaptive hash index. This value can also be calculated as Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data.'; //to translate
+$strShowStatusInnodb_buffer_pool_pages_totalDescr = 'Total size of buffer pool, in pages.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_rndDescr = 'The number of "random" read-aheads InnoDB initiated. This happens when a query is to scan a large portion of a table but in random order.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_ahead_seqDescr = 'The number of sequential read-aheads InnoDB initiated. This happens when InnoDB does a sequential full table scan.'; //to translate
+$strShowStatusInnodb_buffer_pool_read_requestsDescr = 'The number of logical read requests InnoDB has done.'; //to translate
+$strShowStatusInnodb_buffer_pool_readsDescr = 'The number of logical reads that InnoDB could not satisfy from buffer pool and had to do a single-page read.'; //to translate
+$strShowStatusInnodb_buffer_pool_wait_freeDescr = 'Normally, writes to the InnoDB buffer pool happen in the background. However, if it\'s necessary to read or create a page and no clean pages are available, it\'s necessary to wait for pages to be flushed first. This counter counts instances of these waits. If the buffer pool size was set properly, this value should be small.'; //to translate
+$strShowStatusInnodb_buffer_pool_write_requestsDescr = 'The number writes done to the InnoDB buffer pool.'; //to translate
+$strShowStatusInnodb_data_fsyncsDescr = 'The number of fsync() operations so far.'; //to translate
+$strShowStatusInnodb_data_pending_fsyncsDescr = 'The current number of pending fsync() operations.'; //to translate
+$strShowStatusInnodb_data_pending_readsDescr = 'The current number of pending reads.'; //to translate
+$strShowStatusInnodb_data_pending_writesDescr = 'The current number of pending writes.'; //to translate
+$strShowStatusInnodb_data_readDescr = 'The amount of data read so far, in bytes.'; //to translate
+$strShowStatusInnodb_data_readsDescr = 'The total number of data reads.'; //to translate
+$strShowStatusInnodb_data_writesDescr = 'The total number of data writes.'; //to translate
+$strShowStatusInnodb_data_writtenDescr = 'The amount of data written so far, in bytes.'; //to translate
+$strShowStatusInnodb_dblwr_pages_writtenDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_dblwr_writesDescr = 'The number of doublewrite writes that have been performed and the number of pages that have been written for this purpose.'; //to translate
+$strShowStatusInnodb_log_waitsDescr = 'The number of waits we had because log buffer was too small and we had to wait for it to be flushed before continuing.'; //to translate
+$strShowStatusInnodb_log_write_requestsDescr = 'The number of log write requests.'; //to translate
+$strShowStatusInnodb_log_writesDescr = 'The number of physical writes to the log file.'; //to translate
+$strShowStatusInnodb_os_log_fsyncsDescr = 'The number of fsyncs writes done to the log file.'; //to translate
+$strShowStatusInnodb_os_log_pending_fsyncsDescr = 'The number of pending log file fsyncs.'; //to translate
+$strShowStatusInnodb_os_log_pending_writesDescr = 'Pending log file writes.'; //to translate
+$strShowStatusInnodb_os_log_writtenDescr = 'The number of bytes written to the log file.'; //to translate
+$strShowStatusInnodb_pages_createdDescr = 'The number of pages created.'; //to translate
+$strShowStatusInnodb_page_sizeDescr = 'The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size allows them to be easily converted to bytes.'; //to translate
+$strShowStatusInnodb_pages_readDescr = 'The number of pages read.'; //to translate
+$strShowStatusInnodb_pages_writtenDescr = 'The number of pages written.'; //to translate
+$strShowStatusInnodb_row_lock_current_waitsDescr = 'The number of row locks currently being waited for.'; //to translate
+$strShowStatusInnodb_row_lock_time_avgDescr = 'The average time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_timeDescr = 'The total time spent in acquiring row locks, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_time_maxDescr = 'The maximum time to acquire a row lock, in milliseconds.'; //to translate
+$strShowStatusInnodb_row_lock_waitsDescr = 'The number of times a row lock had to be waited for.'; //to translate
+$strShowStatusInnodb_rows_deletedDescr = 'The number of rows deleted from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_insertedDescr = 'The number of rows inserted in InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_readDescr = 'The number of rows read from InnoDB tables.'; //to translate
+$strShowStatusInnodb_rows_updatedDescr = 'The number of rows updated in InnoDB tables.'; //to translate
+$strShowStatusKey_blocks_not_flushedDescr = 'The number of key blocks in the key cache that have changed but haven\'t yet been flushed to disk. It used to be known as Not_flushed_key_blocks.'; //to translate
+$strShowStatusKey_blocks_unusedDescr = 'The number of unused blocks in the key cache. You can use this value to determine how much of the key cache is in use.'; //to translate
+$strShowStatusKey_blocks_usedDescr = 'The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.'; //to translate
+$strShowStatusKey_read_requestsDescr = 'The number of requests to read a key block from the cache.'; //to translate
+$strShowStatusKey_readsDescr = 'The number of physical reads of a key block from disk. If Key_reads is big, then your key_buffer_size value is probably too small. The cache miss rate can be calculated as Key_reads/Key_read_requests.'; //to translate
+$strShowStatusKey_write_requestsDescr = 'The number of requests to write a key block to the cache.'; //to translate
+$strShowStatusKey_writesDescr = 'The number of physical writes of a key block to disk.'; //to translate
+$strShowStatusLast_query_costDescr = 'The total cost of the last compiled query as computed by the query optimizer. Useful for comparing the cost of different query plans for the same query. The default value of 0 means that no query has been compiled yet.'; //to translate
+$strShowStatusNot_flushed_delayed_rowsDescr = 'The number of rows waiting to be written in INSERT DELAYED queues.'; //to translate
+$strShowStatusOpened_tablesDescr = 'The number of tables that have been opened. If opened tables is big, your table cache value is probably too small.'; //to translate
+$strShowStatusOpen_filesDescr = 'The number of files that are open.'; //to translate
+$strShowStatusOpen_streamsDescr = 'The number of streams that are open (used mainly for logging).'; //to translate
+$strShowStatusOpen_tablesDescr = 'The number of tables that are open.'; //to translate
+$strShowStatusQcache_free_blocksDescr = 'The number of free memory blocks in query cache.'; //to translate
+$strShowStatusQcache_free_memoryDescr = 'The amount of free memory for query cache.'; //to translate
+$strShowStatusQcache_hitsDescr = 'The number of cache hits.'; //to translate
+$strShowStatusQcache_insertsDescr = 'The number of queries added to the cache.'; //to translate
+$strShowStatusQcache_lowmem_prunesDescr = 'The number of queries that have been removed from the cache to free up memory for caching new queries. This information can help you tune the query cache size. The query cache uses a least recently used (LRU) strategy to decide which queries to remove from the cache.'; //to translate
+$strShowStatusQcache_not_cachedDescr = 'The number of non-cached queries (not cachable, or not cached due to the query_cache_type setting).'; //to translate
+$strShowStatusQcache_queries_in_cacheDescr = 'The number of queries registered in the cache.'; //to translate
+$strShowStatusQcache_total_blocksDescr = 'The total number of blocks in the query cache.'; //to translate
+$strShowStatusReset = 'Reset'; //to translate
+$strShowStatusRpl_statusDescr = 'The status of failsafe replication (not yet implemented).'; //to translate
+$strShowStatusSelect_full_joinDescr = 'The number of joins that do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.'; //to translate
+$strShowStatusSelect_full_range_joinDescr = 'The number of joins that used a range search on a reference table.'; //to translate
+$strShowStatusSelect_range_checkDescr = 'The number of joins without keys that check for key usage after each row. (If this is not 0, you should carefully check the indexes of your tables.)'; //to translate
+$strShowStatusSelect_rangeDescr = 'The number of joins that used ranges on the first table. (It\'s normally not critical even if this is big.)'; //to translate
+$strShowStatusSelect_scanDescr = 'The number of joins that did a full scan of the first table.'; //to translate
+$strShowStatusSlave_open_temp_tablesDescr = 'The number of temporary tables currently open by the slave SQL thread.'; //to translate
+$strShowStatusSlave_retried_transactionsDescr = 'Total (since startup) number of times the replication slave SQL thread has retried transactions.'; //to translate
+$strShowStatusSlave_runningDescr = 'This is ON if this server is a slave that is connected to a master.'; //to translate
+$strShowStatusSlow_launch_threadsDescr = 'The number of threads that have taken more than slow_launch_time seconds to create.'; //to translate
+$strShowStatusSlow_queriesDescr = 'The number of queries that have taken more than long_query_time seconds.'; //to translate
+$strShowStatusSort_merge_passesDescr = 'The number of merge passes the sort algorithm has had to do. If this value is large, you should consider increasing the value of the sort_buffer_size system variable.'; //to translate
+$strShowStatusSort_rangeDescr = 'The number of sorts that were done with ranges.'; //to translate
+$strShowStatusSort_rowsDescr = 'The number of sorted rows.'; //to translate
+$strShowStatusSort_scanDescr = 'The number of sorts that were done by scanning the table.'; //to translate
+$strShowStatusTable_locks_immediateDescr = 'The number of times that a table lock was acquired immediately.'; //to translate
+$strShowStatusTable_locks_waitedDescr = 'The number of times that a table lock could not be acquired immediately and a wait was needed. If this is high, and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.'; //to translate
+$strShowStatusThreads_cachedDescr = 'The number of threads in the thread cache. The cache hit rate can be calculated as Threads_created/Connections. If this value is red you should raise your thread_cache_size.'; //to translate
+$strShowStatusThreads_connectedDescr = 'The number of currently open connections.'; //to translate
+$strShowStatusThreads_createdDescr = 'The number of threads created to handle connections. If Threads_created is big, you may want to increase the thread_cache_size value. (Normally this doesn\'t give a notable performance improvement if you have a good thread implementation.)'; //to translate
+$strShowStatusThreads_runningDescr = 'The number of threads that are not sleeping.'; //to translate
+$strSkipQueries = 'Number of records(queries) to skip from start'; //to translate
+$strSlovak = 'Slovak'; //to translate
+$strSlovenian = 'Slovenian'; //to translate
+$strSocketProblem = '(or the local MySQL server\'s socket is not correctly configured)'; //to translate
+$strSortByKey = 'Sort by key'; //to translate
+$strSorting = 'Sorting'; //to translate
+$strSpanish = 'Spanish'; //to translate
+$strSQLCompatibility = 'SQL compatibility mode'; //to translate
+$strSQLExportType = 'Export type'; //to translate
+$strStatisticsOverrun = 'On a busy server, the byte counters may overrun, so those statistics as reported by the MySQL server may be incorrect.'; //to translate
+$strStorageEngines = 'Storage Engines'; //to translate
+$strStorageEngine = 'Storage Engine'; //to translate
+$strStrucNativeExcel = 'Native MS Excel data'; //to translate
+$strSwitchToDatabase = 'Switch to copied database'; //to translate
+
+$strTableAlreadyExists = 'Table %s already exists!'; //to translate
+$strTakeIt = 'take it'; //to translate
+$strTempData = 'Temporary data'; //to translate
+$strThemeDefaultNotFound = 'Default theme %s not found!'; //to translate
+$strThemeNoPreviewAvailable = 'No preview available.'; //to translate
+$strThemeNotFound = 'Theme %s not found!'; //to translate
+$strThemeNoValidImgPath = 'No valid image path for theme %s found!'; //to translate
+$strThemePathNotFound = 'Theme path not found for theme %s!'; //to translate
+$strTheme = 'Theme / Style'; //to translate
+$strThreads = 'Threads'; //to translate
+$strTimeoutInfo = 'Previous import timed out, after resubmitting will continue from position %d.'; //to translate
+$strTimeoutNothingParsed = 'However on last run no data has been parsed, this usually means phpMyAdmin won\'t be able to finish this import unless you increase php time limits.'; //to translate
+$strTimeoutPassed = 'Script timeout passed, if you want to finish import, please resubmit same file and import will resume.'; //to translate
+$strTraditionalSpanish = 'Traditional Spanish'; //to translate
+$strTransactionCoordinator = 'Transaction coordinator'; //to translate
+$strTransformation_application_octetstream__download = 'Display a link to download the binary data of a field. First option is the filename of the binary file. Second option is a possible fieldname of a table row containing the filename. If you provide a second option you need to have the first option set to an empty string'; //to translate
+$strTransformation_application_octetstream__hex = 'Displays hexadecimal representation of data. Optional first parameter specifies how often space will be added (defaults to 2 nibbles).'; //to translate
+$strTransformation_text_plain__sql = 'Formats text as SQL query with syntax highlighting.'; //to translate
+
+$strUnsupportedCompressionDetected = 'You attempted to load file with unsupported compression (%s). Either support for it is not implemented or disabled by your configuration.'; //to translate
+$strUpgrade = 'You should upgrade to %s %s or later.'; //to translate
+$strUploadLimit = 'You probably tried to upload too large file. Please refer to %sdocumentation%s for ways to workaround this limit.'; //to translate
+$strUseTabKey = 'Use TAB key to move from value to value, or CTRL+arrows to move anywhere'; //to translate
+$strUseThisValue = 'Use this value'; //to translate
+
+$strVersionInformation = 'Version information'; //to translate
+$strViewHasBeenDropped = 'View %s has been dropped'; //to translate
+$strView = 'View'; //to translate
+
+$strWindowNotFound = 'The target browser window could not be updated. Maybe you have closed the parent window or your browser is blocking cross-window updates of your security settings'; //to translate
+$strWriteRequests = 'Write requests'; //to translate
+
+$strQueryResultsOperations = 'Query results operations'; //to translate
+$strAddClause = 'Add %s'; //to translate
+$strUploadsNotAllowed = 'File uploads are not allowed on this server.'; //to translate
+$strOpenDocumentSpreadsheet = 'Open Document Spreadsheet'; //to translate
+$strExportMustBeFile = 'Selected export type has to be saved in file!'; //to translate
+$strCreateUserDatabase = 'Database for user'; //to translate
+$strCreateUserDatabaseNone = 'None'; //to translate
+$strCreateUserDatabaseName = 'Create database with same name and grant all privileges'; //to translate
+$strCreateUserDatabaseWildcard = 'Grant all privileges on wildcard name (username\_%)'; //to translate
+$strOpenDocumentText = 'Open Document Text'; //to translate
+$strNoDataReceived = 'No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.'; //to translate
+$strCanNotLoadExportPlugins = 'Could not load export plugins, please check your installation!'; //to translate
+$strErrorRenamingTable = 'Error renaming table %1$s to %2$s'; //to translate
+$strInvalidTableName = 'Invalid table name'; //to translate
+$strInvalidDatabase = 'Invalid database'; //to translate
+$strServers = 'Servers'; //to translate
+$strDelimiter = 'Delimiter'; //to translate
+$strFunctions = 'Functions'; //to translate
+$strProcedures = 'Procedures'; //to translate
+$strPDFReportExplanation = '(Generates a report containing the data of a single table)'; //to translate
+$strFontSize = 'Font size'; //to translate
+$strLanguage = 'Language'; //to translate
+$strTransformation_text_plain__dateformat = 'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp field as formatted date. The first option is the offset (in hours) which will be added to the timestamp (Default: 0). Use second option to specify a different date/time format string. Third option determines whether you want to see local date or UTC one (use "local" or "utc" strings) for that. According to that, date format has different value - for "local" see the documentation for PHP\'s strftime() function and for "utc" it is done using gmdate() function.'; //to translate
+$strDocSQL = 'DocSQL'; //to translate
+$strTableName = 'Table name'; //to translate
+$strTableIsEmpty = 'Table seems to be empty!'; //to translate
+$strDbIsEmpty = 'Database seems to be empty!'; //to translate
+$strShowingPhp = 'Showing as PHP code'; //to translate
+$strShowingSQL = 'Showing SQL query'; //to translate
+$strDesigner = 'Designer'; //to translate
+$strNumberOfTables = 'Number of tables'; //to translate
+$strCreateTable = 'Create table'; //to translate
+$strCreateRelation = 'Create relation'; //to translate
+$strSavePosition = 'Save position'; //to translate
+$strSelectForeignKey = 'Select Foreign Key'; //to translate
+$strHide = 'Hide'; //to translate
+$strShowHideLeftMenu = 'Show/Hide left menu'; //to translate
+$strReload = 'Reload'; //to translate
+$strSmallBigAll = 'Small/Big All'; //to translate
+$strImportExportCoords = 'Import/Export coordinates for PDF schema'; //to translate
+$strMoveMenu = 'Move Menu'; //to translate
+$strAngularLinks = 'Angular links'; //to translate
+$strDirectLinks = 'Direct links'; //to translate
+$strHideShowAll = 'Hide/Show all'; //to translate
+$strHideShowNoRelation = 'Hide/Show Tables with no relation'; //to translate
+$strInternalRelationAdded = 'Internal relation added'; //to translate
+$strRelationDeleted = 'Relation deleted'; //to translate
+$strToSelectRelation = 'To select relation, click :'; //to translate
+$strExportImportToScale = 'Export/Import to scale'; //to translate
+$strRecommended = 'recommended'; //to translate
+$strToFromPage = 'to/from page'; //to translate
+$strSelectReferencedKey = 'Select referenced key'; //to translate
+$strPleaseSelectPrimaryOrUniqueKey = 'Please select the primary key or a unique key'; //to translate
+$strHelp = 'Help'; //to translate
+$strCancel = 'Cancel'; //to translate
+$strDeleteRelation = 'Delete relation'; //to translate
+$strKnownExternalBug = 'The %s functionality is affected by a known bug, see %s'; //to translate
+$strStructureForView = 'Structure for view'; //to translate
+$strStandInStructureForView = 'Stand-in structure for view'; //to translate
+$strToggleSmallBig = 'Toggle small/big'; //to translate
+$strIEUnsupported = 'Internet Explorer does not support this function.'; //to translate
+$strErrorRelationAdded = 'Error: Relation not added.'; //to translate
+$strErrorRelationExists = 'Error: relation already exists.'; //to translate
+$strErrorSaveTable = 'Error saving coordinates for Designer.'; //to translate
+$strSnapToGrid = 'Snap to grid'; //to translate
+$strDesignerHelpDisplayField = 'The display field is shown in pink. To set/unset a field as the display field, click the "Choose field to display" icon, then click on the appropriate field name.'; //to translate
+$strUploadErrorIniSize = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.'; //to translate
+$strUploadErrorFormSize = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.'; //to translate
+$strUploadErrorPartial = 'The uploaded file was only partially uploaded.'; //to translate
+$strUploadErrorNoTempDir = 'Missing a temporary folder.'; //to translate
+$strUploadErrorCantWrite = 'Failed to write file to disk.'; //to translate
+$strUploadErrorExtension = 'File upload stopped by extension.'; //to translate
+$strUploadErrorUnknown = 'Unknown error in file upload.'; //to translate
+$strSessionStartupErrorGeneral = 'Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.'; //to translate
+$strFieldInsertFromFileTempDirNotExists = 'Error moving the uploaded file, see FAQ 1.11'; //to translate
+$strViewName = 'VIEW name'; //to translate
+$strOptions = 'Options'; //to translate
+$strFiles = 'Files'; //to translate
+$strMysqlLibDiffersServerVersion = 'Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'; //to translate
+$strRoutines = 'Routines'; //to translate
+$strRoutineReturnType = 'Return type'; //to translate
+$strControluserFailed = 'Connection for controluser as defined in your configuration failed.'; //to translate
+$strHexForBLOB = 'Use hexadecimal for BLOB'; //to translate
+$strRestartInsertion = 'Restart insertion with %s rows'; //to translate
+$strTriggers = 'Triggers'; //to translate
+$strEvent = 'Event'; //to translate
+$strProfiling = 'Profiling'; //to translate
+$strPartitionDefinition = 'PARTITION definition'; //to translate
+$strPrivDescTrigger = 'Allows creating and dropping triggers'; //to translate
+$strPrivDescEvent = 'Allows to set up events for the event scheduler'; //to translate
+$strPrivDescProcess = 'Allows viewing processes of all users'; //to translate
+$strPartitioned = 'partitioned'; //to translate
+$strTableAlteredSuccessfully = 'Table %1$s has been altered successfully'; //to translate
+$strDatabaseHasBeenCreated = 'Database %1$s has been created.'; //to translate
+$strTableHasBeenCreated = 'Table %1$s has been created.'; //to translate
+$strForeignKeyError = 'Error creating foreign key on %1$s (check data types)'; //to translate
+$strRowsDeleted = '%1$d row(s) deleted.'; //to translate
+$strRowsAffected = '%1$d row(s) affected.'; //to translate
+$strRowsInserted = '%1$d row(s) inserted.'; //to translate
+$strInsertedRowId = 'Inserted row id: %1$d'; //to translate
+$strIndexesSeemEqual = 'The indexes %1$s and %2$s seem to be equal and one of them could possibly be removed.'; //to translate
+$strPartitionMaintenance = 'Partition maintenance'; //to translate
+$strPartition = 'Partition %s'; //to translate
+$strAnalyze = 'Analyze'; //to translate
+$strCheck = 'Check'; //to translate
+$strOptimize = 'Optimize'; //to translate
+$strRebuild = 'Rebuild'; //to translate
+$strRepair = 'Repair'; //to translate
+$strRemovePartitioning = 'Remove partitioning'; //to translate
+$strSearchInField = 'Inside field:'; //to translate
+$strTexyText = 'Texy! text'; //to translate
+$strDetails = 'Details...'; //to translate
+$strComment = 'Comment'; //to translate
+$strPacked = 'Packed'; //to translate
+$strActions = 'Actions'; //to translate
+$strInterface = 'Interface'; //to translate
+$strSuhosin = 'Server running with Suhosin. Please refer to %sdocumentation%s for possible issues.'; //to translate
+$strEvents = 'Events'; //to translate
+$strForeignKeyRelationAdded = 'FOREIGN KEY relation added'; //to translate
+$strInternalAndForeign = 'An internal relation is not necessary when a corresponding FOREIGN KEY relation exists.'; //to translate
+$strViewHasAtLeast = 'This view has at least this number of rows. Please refer to %sdocumentation%s.'; //to translate
+$strRelationalKey = 'Relational key'; //to translate
+$strRelationalDisplayField = 'Relational display field'; //to translate
+$strSwekeyNoKey = 'No valid authentication key plugged'; //to translate
+$strSwekeyNoKeyId = 'File %s does not contain any key id'; //to translate
+$strSwekeyAuthFailed = 'Hardware authentication failed'; //to translate
+$strSwekeyAuthenticating = 'Authenticating...'; //to translate
+$strPBXTIndexCacheSize = 'Index cache size'; //to translate
+$strPBXTRecordCacheSize = 'Record cache size'; //to translate
+$strPBXTLogCacheSize = 'Log cache size'; //to translate
+$strPBXTLogFileThreshold = 'Log file threshold'; //to translate
+$strPBXTTransactionBufferSize = 'Transaction buffer size'; //to translate
+$strPBXTCheckpointFrequency = 'Checkpoint frequency'; //to translate
+$strPBXTDataLogThreshold = 'Data log threshold'; //to translate
+$strPBXTGarbageThreshold = 'Garbage threshold'; //to translate
+$strPBXTLogBufferSize = 'Log buffer size'; //to translate
+$strPBXTDataFileGrowSize = 'Data file grow size'; //to translate
+$strPBXTRowFileGrowSize = 'Row file grow size'; //to translate
+$strPBXTRowFileGrowSizeDesc = 'The grow size of the row pointer (.xtr) files.'; //to translate
+$strPBXTDataFileGrowSizeDesc = 'The grow size of the handle data (.xtd) files.'; //to translate
+$strPBXTLogBufferSizeDesc = 'The size of the buffer used when writing a data log. The default is 256MB. The engine allocates one buffer per thread, but only if the thread is required to write a data log.'; //to translate
+$strPBXTGarbageThresholdDesc = 'The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99. The default is 50.'; //to translate
+$strPBXTDataLogThresholdDesc = 'The maximum size of a data log file. The default value is 64MB. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.'; //to translate
+$strPBXTCheckpointFrequencyDesc = 'The amount of data written to the transaction log before a checkpoint is performed. The default value is 24MB.'; //to translate
+$strPBXTTransactionBufferSizeDesc = 'The size of the global transaction log buffer (the engine allocates 2 buffers of this size). The default is 1MB.'; //to translate
+$strPBXTLogFileThresholdDesc = 'The size of a transaction log before rollover, and a new log is created. The default value is 16MB.'; //to translate
+$strPBXTLogCacheSizeDesc = 'The amount of memory allocated to the transaction log cache used to cache on transaction log data. The default is 16MB.'; //to translate
+$strPBXTRecordCacheSizeDesc = 'This is the amount of memory allocated to the record cache used to cache table data. The default value is 32MB. This memory is used to cache changes to the handle data (.xtd) and row pointer (.xtr) files.'; //to translate
+$strPBXTIndexCacheSizeDesc = 'This is the amount of memory allocated to the index cache. Default value is 32MB. The memory allocated here is used only for caching index pages.'; //to translate
+$strPBXTLogFileCount = 'Log file count'; //to translate
+$strPBXTLogFileCountDesc = 'This is the number of transaction log files (pbxt/system/xlog*.xt) the system will maintain. If the number of logs exceeds this value then old logs will be deleted, otherwise they are renamed and given the next highest number.'; //to translate
+$strAsDefined = 'As defined:'; //to translate
+$strWiki = 'Wiki'; //to translate
+$strWebServer = 'Web server'; //to translate
+$strPHPExtension = 'PHP extension'; //to translate
+$strCustomColor = 'Custom color'; //to translate
+$strBLOBRepository = 'BLOB Repository'; //to translate
+$strBLOBRepositoryDamaged = 'Damaged'; //to translate
+$strBLOBRepositoryDisableAreYouSure = 'Are you sure you want to disable all BLOB references for database %s?'; //to translate
+$strBLOBRepositoryDisabled = 'Disabled'; //to translate
+$strBLOBRepositoryDisable = 'Disable'; //to translate
+$strBLOBRepositoryDisableStrongWarning = 'You are about to DISABLE a BLOB Repository!'; //to translate
+$strBLOBRepositoryEnabled = 'Enabled'; //to translate
+$strBLOBRepositoryEnable = 'Enable'; //to translate
+$strBLOBRepositoryRemove = 'Remove BLOB Repository Reference'; //to translate
+$strBLOBRepositoryRepair = 'Repair'; //to translate
+$strBLOBRepositoryStatus = 'Status'; //to translate
+$strBLOBRepositoryUpload = 'Upload to BLOB repository'; //to translate
+$strViewImage = 'View image'; //to translate
+$strPlayAudio = 'Play audio'; //to translate
+$strViewVideo = 'View video'; //to translate
+$strDownloadFile = 'Download file'; //to translate
+$strLogServerHelp = 'You can enter hostname/IP address and port separated by space.'; //to translate
+$strShowKeys = 'Only show keys'; //to translate
+$strSetupServersAdd = 'Add a new server'; //to translate
+$strSetupServersEdit = 'Edit server'; //to translate
+$strSetupFormset_features = 'Features'; //to translate
+$strSetupFormset_left_frame = 'Customize navigation frame'; //to translate
+$strSetupFormset_main_frame = 'Customize main frame'; //to translate
+$strSetupFormset_import = 'Customize import defaults'; //to translate
+$strSetupFormset_export = 'Customize export options'; //to translate
+$strSetupFormset_customization = 'Customization'; //to translate
+$strSetupTrue = 'yes'; //to translate
+$strSetupFalse = 'no'; //to translate
+$strSetupDisplay = 'Display'; //to translate
+$strSetupDownload = 'Download'; //to translate
+$strSetupClear = 'Clear'; //to translate
+$strSetupLoad = 'Load'; //to translate
+$strSetupRestoreDefaultValue = 'Restore default value'; //to translate
+$strSetupSetValue = 'Set value: %s'; //to translate
+$strSetupWarning = 'Warning'; //to translate
+$strSetupIgnoreErrors = 'Ignore errors'; //to translate
+$strSetupRevertErroneousFields = 'Try to revert erroneous fields to their default values'; //to translate
+$strSetupShowForm = 'Show form'; //to translate
+$strSetupOverview = 'Overview'; //to translate
+$strSetupShowHiddenMessages = 'Show hidden messages (#MSG_COUNT)'; //to translate
+$strSetupNoServers = 'There are no configured servers'; //to translate
+$strSetupNewServer = 'New server'; //to translate
+$strSetupDefaultLanguage = 'Default language'; //to translate
+$strSetupDefaultServer = 'Default server'; //to translate
+$strSetupLetUserChoose = 'let the user choose'; //to translate
+$strSetupOptionNone = '- none -'; //to translate
+$strSetupEndOfLine = 'End of line'; //to translate
+$strSetupConfigurationFile = 'Configuration file'; //to translate
+$strSetupHomepageLink = 'phpMyAdmin homepage'; //to translate
+$strSetupDonateLink = 'Donate'; //to translate
+$strSetupVersionCheckLink = 'Check for latest version'; //to translate
+$strSetupCannotLoadConfig = 'Cannot load or save configuration'; //to translate
+$strSetupCannotLoadConfigMsg = 'Please create web server writable folder [em]config[/em] in phpMyAdmin top level directory as described in [a@../Documentation.html#setup_script]documentation[/a]. Otherwise you will be only able to download or display it.'; //to translate
+$strSetupInsecureConnection = 'Insecure connection'; //to translate
+$strSetupInsecureConnectionMsg1 = 'You are not using a secure connection, all data (including sensitive, like passwords) is transferred unencrypted!'; //to translate
+$strSetupInsecureConnectionMsg2 = 'If your server is also configured to accept HTTPS requests follow [a@%s]this link[/a] to use a secure connection.'; //to translate
+$strSetupVersionCheck = 'Version check'; //to translate
+$strSetupVersionCheckWrapperError = 'Neither URL wrapper nor CURL is available. Version check is not possible.'; //to translate
+$strSetupVersionCheckDataError = 'Reading of version failed. Maybe you\'re offline or the upgrade server does not respond.'; //to translate
+$strSetupVersionCheckInvalid = 'Got invalid version string from server'; //to translate
+$strSetupVersionCheckUnparsable = 'Unparsable version string'; //to translate
+$strSetupVersionCheckNewAvailable = 'New version of phpMyAdmin is available, you should consider upgrade. New version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNewAvailableSvn = 'You are using subversion version, run [kbd]svn update[/kbd] :-)[br]The latest stable version is %s, released on %s.'; //to translate
+$strSetupVersionCheckNone = 'No newer stable version is available'; //to translate
+$strSetupServerSecurityInfoMsg = 'If you feel this is necessary, use additional protection settings - [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server_config]host authentication[/a] settings and [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupServerSslMsg = 'You should use SSL connections if your web server supports it'; //to translate
+$strSetupServerExtensionMsg = 'You should use mysqli for performance reasons'; //to translate
+$strSetupServerAuthConfigMsg = 'You set [kbd]config[/kbd] authentication type and included username and password for auto-login, which is not a desirable option for live hosts. Anyone who knows phpMyAdmin URL can directly access your phpMyAdmin panel. Set [a@?page=servers&amp;mode=edit&amp;id=%1$d#tab_Server]authentication type[/a] to [kbd]cookie[/kbd] or [kbd]http[/kbd].'; //to translate
+$strSetupServerNoPasswordRootMsg = 'You allow for connecting to the server as root without a passowrd.'; //to translate
+$strSetupBlowfishSecretMsg = 'You didn\'t have blowfish secret set and enabled cookie authentication so the key was generated for you. It is used to encrypt cookies.'; //to translate
+$strSetupBlowfishSecretLengthMsg = 'Key is too short, it should have at least 8 characters'; //to translate
+$strSetupBlowfishSecretCharsMsg = 'Key should contain alphanumerics, letters [em]and[/em] special characters'; //to translate
+$strSetupForceSSLMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be enabled if your web server supports it'; //to translate
+$strSetupAllowArbitraryServerMsg = 'This [a@?page=form&amp;formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&amp;formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.'; //to translate
+$strSetupLoginCookieValidityMsg = '[a@?page=form&formset=features#tab_Security]Login cookie validity[/a] should be should be set to 1800 seconds (30 minutes) at most. Values larger than 1800 may pose a security risk such as impersonation.'; //to translate
+$strSetupDirectoryNotice = 'This value should be double checked to ensure that this directory is neither world accessible nor readable or writable by other users on your server.'; //to translate
+$strSetupGZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]GZip compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupBZipDumpWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Bzip2 compression and decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpImportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip decompression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetupZipDumpExportWarning = '[a@?page=form&amp;formset=features#tab_Import_export]Zip compression[/a] requires functions (%s) which are unavailable on this system.'; //to translate
+$strSetuperror_form = 'Submitted form contains errors'; //to translate
+$strSetuperror_missing_field_data = 'Missing data for %s'; //to translate
+$strSetuperror_incorrect_port = 'Not a valid port number'; //to translate
+$strSetuperror_incorrect_value = 'Incorrect value'; //to translate
+$strSetuperror_incorrect_ip_address = 'Incorrect IP address: %s'; //to translate
+$strSetuperror_nan_p = 'Not a positive number'; //to translate
+$strSetuperror_nan_nneg = 'Not a non-negative number'; //to translate
+$strSetuperror_empty_pmadb_user = 'Empty phpMyAdmin control user while using pmadb'; //to translate
+$strSetuperror_empty_pmadb_password = 'Empty phpMyAdmin control user password while using pmadb'; //to translate
+$strSetuperror_empty_user_for_config_auth = 'Empty username while using config authentication method'; //to translate
+$strSetuperror_empty_signon_session = 'Empty signon session name while using signon authentication method'; //to translate
+$strSetuperror_empty_signon_url = 'Empty signon URL while using signon authentication method'; //to translate
+$strSetuperror_connection = 'Could not connect to MySQL server'; //to translate
+$strSetupForm_Server = 'Basic settings'; //to translate
+$strSetupForm_Server_desc = 'Enter server connection parameters'; //to translate
+$strSetupForm_Server_login_options = 'Signon login options'; //to translate
+$strSetupForm_Server_login_options_desc = 'Enter login options for signon authentication'; //to translate
+$strSetupForm_Server_config = 'Server configuration'; //to translate
+$strSetupForm_Server_config_desc = 'Advanced server configuration, do not change these options unless you know what they are for'; //to translate
+$strSetupForm_Server_pmadb = 'PMA database'; //to translate
+$strSetupForm_Server_pmadb_desc = 'Configure phpMyAdmin database to gain access to additional features, see [a@../Documentation.html#linked-tables]linked-tables infrastructure[/a] in documentation'; //to translate
+$strSetupForm_Import_export = 'Import / export'; //to translate
+$strSetupForm_Import_export_desc = 'Set import and export directories and compression options'; //to translate
+$strSetupForm_Security = 'Security'; //to translate
+$strSetupForm_Security_desc = 'Please note that phpMyAdmin is just a user interface and its features do not limit MySQL'; //to translate
+$strSetupForm_Sql_queries = 'SQL queries'; //to translate
+$strSetupForm_Sql_queries_desc = 'SQL queries settings, for SQL Query box options see [a@?page=form&amp;formset=main_frame#tab_Sql_box]Navigation frame[/a] settings'; //to translate
+$strSetupForm_Other_core_settings = 'Other core settings'; //to translate
+$strSetupForm_Other_core_settings_desc = 'Settings that didn\'t fit enywhere else'; //to translate
+$strSetupForm_Left_frame = 'Navigation frame'; //to translate
+$strSetupForm_Left_frame_desc = 'Customize appearance of the navigation frame'; //to translate
+$strSetupForm_Left_servers = 'Servers'; //to translate
+$strSetupForm_Left_servers_desc = 'Servers display options'; //to translate
+$strSetupForm_Left_databases = 'Databases'; //to translate
+$strSetupForm_Left_databases_desc = 'Databases display options'; //to translate
+$strSetupForm_Left_tables = 'Tables'; //to translate
+$strSetupForm_Left_tables_desc = 'Tables display options'; //to translate
+$strSetupForm_Main_frame = 'Main frame'; //to translate
+$strSetupForm_Startup = 'Startup'; //to translate
+$strSetupForm_Startup_desc = 'Customize startup page'; //to translate
+$strSetupForm_Browse = 'Browse mode'; //to translate
+$strSetupForm_Browse_desc = 'Customize browse mode'; //to translate
+$strSetupForm_Edit = 'Edit mode'; //to translate
+$strSetupForm_Edit_desc = 'Customize edit mode'; //to translate
+$strSetupForm_Tabs = 'Tabs'; //to translate
+$strSetupForm_Tabs_desc = 'Choose how you want tabs to work'; //to translate
+$strSetupForm_Sql_box = 'SQL Query box'; //to translate
+$strSetupForm_Sql_box_desc = 'Customize links shown in SQL Query boxes'; //to translate
+$strSetupForm_Import_defaults = 'Import defaults'; //to translate
+$strSetupForm_Import_defaults_desc = 'Customize default common import options'; //to translate
+$strSetupForm_Export_defaults = 'Export defaults'; //to translate
+$strSetupForm_Export_defaults_desc = 'Customize default export options'; //to translate
+$strSetupForm_Query_window = 'Query window'; //to translate
+$strSetupForm_Query_window_desc = 'Customize query window options'; //to translate
+$strSetupServers_verbose_name = 'Verbose name of this server'; //to translate
+$strSetupServers_verbose_desc = 'Hostname where MySQL server is running'; //to translate
+$strSetupServers_host_name = 'Server hostname'; //to translate
+$strSetupServers_host_desc = ''; //to translate
+$strSetupServers_port_name = 'Server port'; //to translate
+$strSetupServers_port_desc = 'Port on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_socket_name = 'Server socket'; //to translate
+$strSetupServers_socket_desc = 'Socket on which MySQL server is listening, leave empty for default'; //to translate
+$strSetupServers_ssl_name = 'Use SSL'; //to translate
+$strSetupServers_ssl_desc = ''; //to translate
+$strSetupServers_connect_type_name = 'Connection type'; //to translate
+$strSetupServers_connect_type_desc = 'How to connect to server, keep tcp if unsure'; //to translate
+$strSetupServers_extension_name = 'PHP extension to use'; //to translate
+$strSetupServers_extension_desc = 'What PHP extension to use, use mysqli if supported'; //to translate
+$strSetupServers_compress_name = 'Compress connection'; //to translate
+$strSetupServers_compress_desc = 'Compress connection to MySQL server'; //to translate
+$strSetupServers_auth_type_name = 'Authentication type'; //to translate
+$strSetupServers_auth_type_desc = 'Authentication method to use'; //to translate
+$strSetupServers_user_name = 'User for config auth'; //to translate
+$strSetupServers_user_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_password_name = 'Password for config auth'; //to translate
+$strSetupServers_password_desc = 'Leave empty if not using config auth'; //to translate
+$strSetupServers_nopassword_name = 'Connect without password'; //to translate
+$strSetupServers_nopassword_desc = 'Try to connect without password'; //to translate
+$strSetupServers_SignonSession_name = 'Signon session name'; //to translate
+$strSetupServers_SignonSession_desc = 'See [a@http://wiki.cihar.com/pma/auth_types#signon]authentication types[/a] for an example'; //to translate
+$strSetupServers_SignonURL_name = 'Signon URL'; //to translate
+$strSetupServers_LogoutURL_name = 'Logout URL'; //to translate
+$strSetupServers_auth_swekey_config_name = 'SweKey config file'; //to translate
+$strSetupServers_auth_swekey_config_desc = 'Config file for [a@http://swekey.com]SweKey hardware authentication[/a], relative to phpMyAdmin root directory, eg. ./swekey.conf'; //to translate
+$strSetupServers_only_db_name = 'Show only listed databases'; //to translate
+$strSetupServers_only_db_desc = 'You can use MySQL wildcard characters (% and _), escape them if you want to use their literal instances, i.e. use \'my\_db\' and not \'my_db\''; //to translate
+$strSetupServers_hide_db_name = 'Hide databases'; //to translate
+$strSetupServers_hide_db_desc = 'Hide databases matching regular expression (PCRE)'; //to translate
+$strSetupServers_AllowRoot_name = 'Allow root login'; //to translate
+$strSetupServers_AllowNoPasswordRoot_name = 'Allow root without password'; //to translate
+$strSetupServers_DisableIS_name = 'Disable use of INFORMATION_SCHEMA'; //to translate
+$strSetupServers_DisableIS_desc = 'More information on [a@http://sf.net/support/tracker.php?aid=1849494]PMA bug tracker[/a] and [a@http://bugs.mysql.com/19588]MySQL Bugs[/a]'; //to translate
+$strSetupServers_AllowDeny_order_name = 'Host authentication order'; //to translate
+$strSetupServers_AllowDeny_order_desc = 'Leave blank if not used'; //to translate
+$strSetupServers_AllowDeny_rules_name = 'Host authentication rules'; //to translate
+$strSetupServers_AllowDeny_rules_desc = 'Leave blank for defaults'; //to translate
+$strSetupServers_ShowDatabasesCommand_name = 'SHOW DATABASES command'; //to translate
+$strSetupServers_ShowDatabasesCommand_desc = 'SQL command to fetch available databases'; //to translate
+$strSetupServers_CountTables_name = 'Count tables'; //to translate
+$strSetupServers_CountTables_desc = 'Count tables when showing database list'; //to translate
+$strSetupServers_pmadb_name = 'PMA database'; //to translate
+$strSetupServers_pmadb_desc = 'Database used for relations, bookmarks, and PDF features. See [a@http://wiki.cihar.com/pma/pmadb]pmadb[/a] for complete information. Leave blank for no support. Default: [kbd]phpmyadmin[/kbd]'; //to translate
+$strSetupServers_controluser_name = 'Control user'; //to translate
+$strSetupServers_controluser_desc = 'A special MySQL user configured with limited permissions, more information available on [a@http://wiki.cihar.com/pma/controluser]wiki[/a]'; //to translate
+$strSetupServers_controlpass_name = 'Control user password'; //to translate
+$strSetupServers_verbose_check_name = 'Verbose check'; //to translate
+$strSetupServers_verbose_check_desc = 'Disable if you know that your pma_* tables are up to date. This prevents compatibility checks and thereby increases performance'; //to translate
+$strSetupServers_bookmarktable_name = 'Bookmark table'; //to translate
+$strSetupServers_bookmarktable_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/bookmark]bookmark[/a] support, default: [kbd]pma_bookmark[/kbd]'; //to translate
+$strSetupServers_relation_name = 'Relation table'; //to translate
+$strSetupServers_relation_desc = 'Leave blank for no [a@http://wiki.cihar.com/pma/relation]relation-links[/a] support, default: [kbd]pma_relation[/kbd]'; //to translate
+$strSetupServers_table_info_name = 'Display fields table'; //to translate
+$strSetupServers_table_info_desc = 'Table to describe the display fields, leave blank for no support; default: [kbd]pma_table_info[/kbd]'; //to translate
+$strSetupServers_table_coords_name = 'PDF schema: table coordinates'; //to translate
+$strSetupServers_table_coords_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_table_coords[/kbd]'; //to translate
+$strSetupServers_pdf_pages_name = 'PDF schema: pages table'; //to translate
+$strSetupServers_pdf_pages_desc = 'Leave blank for no PDF schema support, default: [kbd]pma_pdf_pages[/kbd]'; //to translate
+$strSetupServers_column_info_name = 'Column information table'; //to translate
+$strSetupServers_column_info_desc = 'Leave blank for no column comments/mime types, default: [kbd]pma_column_info[/kbd]'; //to translate
+$strSetupServers_history_name = 'SQL query history table'; //to translate
+$strSetupServers_history_desc = 'Leave blank for no SQL query history support, default: [kbd]pma_history[/kbd]'; //to translate
+$strSetupServers_designer_coords_name = 'Designer table'; //to translate
+$strSetupServers_designer_coords_desc = 'Leave blank for no Designer support, default: [kbd]designer_coords[/kbd]'; //to translate
+$strSetupUploadDir_name = 'Upload directory'; //to translate
+$strSetupUploadDir_desc = 'Directory on server where you can upload files for import'; //to translate
+$strSetupSaveDir_name = 'Save directory'; //to translate
+$strSetupSaveDir_desc = 'Directory where exports can be saved on server'; //to translate
+$strSetupAllowAnywhereRecoding_name = 'Allow character set conversion'; //to translate
+$strSetupDefaultCharset_name = 'Default character set'; //to translate
+$strSetupDefaultCharset_desc = 'Default character set used for conversions'; //to translate
+$strSetupRecodingEngine_name = 'Recoding engine'; //to translate
+$strSetupRecodingEngine_desc = 'Select which functions will be used for character set conversion'; //to translate
+$strSetupIconvExtraParams_name = 'Extra parameters for iconv'; //to translate
+$strSetupZipDump_name = 'ZIP'; //to translate
+$strSetupZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations'; //to translate
+$strSetupGZipDump_name = 'GZip'; //to translate
+$strSetupGZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for import and export operations'; //to translate
+$strSetupBZipDump_name = 'Bzip2'; //to translate
+$strSetupBZipDump_desc = 'Enable [a@http://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for import and export operations'; //to translate
+$strSetupCompressOnFly_name = 'Compress on the fly'; //to translate
+$strSetupCompressOnFly_desc = 'Compress gzip/bzip2 exports on the fly without the need for much memory; if you encounter problems with created gzip/bzip2 files disable this feature'; //to translate
+$strSetupblowfish_secret_name = 'Blowfish secret'; //to translate
+$strSetupblowfish_secret_desc = 'Secret passphrase used for encrypting cookies in [kbd]cookie[/kbd] authentication'; //to translate
+$strSetupForceSSL_name = 'Force SSL connection'; //to translate
+$strSetupForceSSL_desc = 'Force secured connection while using phpMyAdmin'; //to translate
+$strSetupCheckConfigurationPermissions_name = 'Check config file permissions'; //to translate
+$strSetupTrustedProxies_name = 'List of trusted proxies for IP allow/deny'; //to translate
+$strSetupTrustedProxies_desc = 'Input proxies as [kbd]IP: trusted HTTP header[/kbd]. The following example specifies that phpMyAdmin should trust a HTTP_X_FORWARDED_FOR (X-Forwarded-For) header coming from the proxy 1.2.3.4:[br][kbd]1.2.3.4: HTTP_X_FORWARDED_FOR[/kbd]'; //to translate
+$strSetupAllowUserDropDatabase_name = 'Show &quot;Drop database&quot; link to normal users'; //to translate
+$strSetupAllowArbitraryServer_name = 'Allow login to any MySQL server'; //to translate
+$strSetupAllowArbitraryServer_desc = 'If enabled user can enter any MySQL server in login form for cookie auth'; //to translate
+$strSetupLoginCookieRecall_name = 'Recall user name'; //to translate
+$strSetupLoginCookieRecall_desc = 'Define whether the previous login should be recalled or not in cookie authentication mode'; //to translate
+$strSetupLoginCookieValidity_name = 'Login cookie validity'; //to translate
+$strSetupLoginCookieValidity_desc = 'Define how long (in seconds) a login cookie is valid'; //to translate
+$strSetupLoginCookieStore_name = 'Login cookie store'; //to translate
+$strSetupLoginCookieStore_desc = 'Define how long (in seconds) a login cookie should be stored in browser. Default 0 means that it will be kept for existing session only, that is it will be deleted as soon as you close the browser window. This is recommended for non-trusted environments.'; //to translate
+$strSetupLoginCookieDeleteAll_name = 'Delete all cookies on logout'; //to translate
+$strSetupLoginCookieDeleteAll_desc = 'If enabled logout deletes cookies for all servers, otherwise only for current one. Setting this to FALSE makes it easy to forget to log out from other server, when you are using more of them.'; //to translate
+$strSetupShowSQL_name = 'Show SQL queries'; //to translate
+$strSetupShowSQL_desc = 'Defines whether SQL queries generated by phpMyAdmin should be displayed'; //to translate
+$strSetupConfirm_name = 'Confirm DROP queries'; //to translate
+$strSetupConfirm_desc = 'Whether a warning (&quot;Are your really sure...&quot;) should be displayed when you\'re about to lose data'; //to translate
+$strSetupQueryHistoryDB_name = 'Permanent query history'; //to translate
+$strSetupQueryHistoryDB_desc = 'Enable if you want DB-based query history (requires pmadb). If disabled, this utilizes JS-routines to display query history (lost by window close).'; //to translate
+$strSetupQueryHistoryMax_name = 'Query history length'; //to translate
+$strSetupQueryHistoryMax_desc = 'How many queries are kept in history'; //to translate
+$strSetupIgnoreMultiSubmitErrors_name = 'Ignore multiple statement errors'; //to translate
+$strSetupIgnoreMultiSubmitErrors_desc = 'If enabled PMA continues computing multiple-statement queries even if one of the queries failed'; //to translate
+$strSetupVerboseMultiSubmit_name = 'Verbose multiple statements'; //to translate
+$strSetupVerboseMultiSubmit_desc = 'Show affected rows of each statement on multiple-statement queries. See libraries/import.lib.php for defaults on how many queries a statement may contain.'; //to translate
+$strSetupMaxDbList_name = 'Maximum databases'; //to translate
+$strSetupMaxDbList_desc = 'Maximum number of databases displayed in left frame and database list'; //to translate
+$strSetupMaxTableList_name = 'Maximum tables'; //to translate
+$strSetupMaxTableList_desc = 'Maximum number of tables displayed in table list'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_name = 'Maximum displayed SQL length'; //to translate
+$strSetupMaxCharactersInDisplayedSQL_desc = 'Maximum number of characters used when a SQL query is displayed'; //to translate
+$strSetupOBGzip_name = 'GZip output buffering'; //to translate
+$strSetupOBGzip_desc = 'use GZip output buffering for increased speed in HTTP transfers'; //to translate
+$strSetupPersistentConnections_name = 'Persistent connections'; //to translate
+$strSetupPersistentConnections_desc = 'Use persistent connections to MySQL databases'; //to translate
+$strSetupExecTimeLimit_name = 'Maximum execution time'; //to translate
+$strSetupExecTimeLimit_desc = 'Set the number of seconds a script is allowed to run ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupMemoryLimit_name = 'Memory limit'; //to translate
+$strSetupMemoryLimit_desc = 'The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)'; //to translate
+$strSetupSkipLockedTables_name = 'Skip locked tables'; //to translate
+$strSetupSkipLockedTables_desc = 'Mark used tables and make it possible to show databases with locked tables'; //to translate
+$strSetupUseDbSearch_name = 'Use database search'; //to translate
+$strSetupUseDbSearch_desc = 'Allow for searching inside the entire database'; //to translate
+$strSetupLeftFrameLight_name = 'Use light version'; //to translate
+$strSetupLeftFrameLight_desc = 'Disable this if you want to see all databases at once'; //to translate
+$strSetupLeftDisplayLogo_name = 'Display logo'; //to translate
+$strSetupLeftDisplayLogo_desc = 'Show logo in left frame'; //to translate
+$strSetupLeftLogoLink_name = 'Logo link URL'; //to translate
+$strSetupLeftLogoLinkWindow_name = 'Logo link target'; //to translate
+$strSetupLeftLogoLinkWindow_desc = 'Open the linked page in the main window ([kbd]main[/kbd]) or in a new one ([kbd]new[/kbd])'; //to translate
+$strSetupLeftDefaultTabTable_name = 'Target for quick access icon'; //to translate
+$strSetupLeftPointerEnable_name = 'Enable highlighting'; //to translate
+$strSetupLeftPointerEnable_desc = 'Highlight server under the mouse cursor'; //to translate
+$strSetupLeftDisplayServers_name = 'Display servers selection'; //to translate
+$strSetupLeftDisplayServers_desc = 'Display server choice at the top of the left frame'; //to translate
+$strSetupDisplayServersList_name = 'Display servers as a list'; //to translate
+$strSetupDisplayServersList_desc = 'Show server listing as a list instead of a drop down'; //to translate
+$strSetupDisplayDatabasesList_name = 'Display databases as a list'; //to translate
+$strSetupDisplayDatabasesList_desc = 'Show database listing as a list instead of a drop down'; //to translate
+$strSetupLeftFrameDBTree_name = 'Display databases in a tree'; //to translate
+$strSetupLeftFrameDBTree_desc = 'Only light version; display databases in a tree (determined by the separator defined below)'; //to translate
+$strSetupLeftFrameDBSeparator_name = 'Database tree separator'; //to translate
+$strSetupLeftFrameDBSeparator_desc = 'String that separates databases into different tree levels'; //to translate
+$strSetupShowTooltipAliasDB_name = 'Display database comment instead of its name'; //to translate
+$strSetupShowTooltipAliasDB_desc = 'If tooltips are enabled and a database comment is set, this will flip the comment and the real name'; //to translate
+$strSetupLeftFrameTableSeparator_name = 'Table tree separator'; //to translate
+$strSetupLeftFrameTableSeparator_desc = 'String that separates tables into different tree levels'; //to translate
+$strSetupLeftFrameTableLevel_name = 'Maximum table tree depth'; //to translate
+$strSetupShowTooltip_name = 'Display table comments in tooltips'; //to translate
+$strSetupShowTooltipAliasTB_name = 'Display table comment instead of its name'; //to translate
+$strSetupShowTooltipAliasTB_desc = 'When setting this to [kbd]nested[/kbd], the alias of the table name is only used to split/nest the tables according to the $cfg[\'LeftFrameTableSeparator\'] directive, so only the folder is called like the alias, the table name itself stays unchanged'; //to translate
+$strSetupShowStats_name = 'Show statistics'; //to translate
+$strSetupShowStats_desc = 'Allow to display database and table statistics (eg. space usage)'; //to translate
+$strSetupShowPhpInfo_name = 'Show phpinfo() link'; //to translate
+$strSetupShowPhpInfo_desc = 'Shows link to [a@http://php.net/manual/function.phpinfo.php]phpinfo()[/a] output'; //to translate
+$strSetupShowServerInfo_name = 'Show detailed MySQL server information'; //to translate
+$strSetupShowChgPassword_name = 'Show password change form'; //to translate
+$strSetupShowChgPassword_desc = 'Please note that enabling this has no effect with [kbd]config[/kbd] authentication mode because the password is hard coded in the configuration file; this does not limit the ability to execute the same command directly'; //to translate
+$strSetupShowCreateDb_name = 'Show create database form'; //to translate
+$strSetupSuggestDBName_name = 'Suggest new database name'; //to translate
+$strSetupSuggestDBName_desc = 'Suggest a database name on the &quot;Create Database&quot; form (if possible) or keep the text field empty'; //to translate
+$strSetupNavigationBarIconic_name = 'Iconic navigation bar'; //to translate
+$strSetupNavigationBarIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupShowAll_name = 'Allow to display all the rows'; //to translate
+$strSetupShowAll_desc = 'Whether a user should be displayed a &quot;show all (records)&quot; button'; //to translate
+$strSetupMaxRows_name = 'Maximum number of rows to display'; //to translate
+$strSetupMaxRows_desc = 'Number of rows displayed when browsing a result set. If the result set contains more rows, &quot;Previous&quot; and &quot;Next&quot; links will be shown.'; //to translate
+$strSetupOrder_name = 'Default sorting order'; //to translate
+$strSetupOrder_desc = '[kbd]SMART[/kbd] - i.e. descending order for fields of type TIME, DATE, DATETIME and TIMESTAMP, ascending order otherwise'; //to translate
+$strSetupBrowsePointerEnable_name = 'Highlight pointer'; //to translate
+$strSetupBrowsePointerEnable_desc = 'Highlight row pointed by the mouse cursor'; //to translate
+$strSetupBrowseMarkerEnable_name = 'Row marker'; //to translate
+$strSetupBrowseMarkerEnable_desc = 'Highlight selected rows'; //to translate
+$strSetupProtectBinary_name = 'Protect binary fields'; //to translate
+$strSetupProtectBinary_desc = 'Disallow BLOB or BLOB and BINARY fields from editing'; //to translate
+$strSetupShowFunctionFields_name = 'Show function fields'; //to translate
+$strSetupShowFunctionFields_desc = 'Display the function fields in edit/insert mode'; //to translate
+$strSetupCharEditing_name = 'CHAR fields editing'; //to translate
+$strSetupCharEditing_desc = 'Defines which type of editing controls should be used for CHAR and VARCHAR fields; [kbd]input[/kbd] - allows limiting of input length, [kbd]textarea[/kbd] - allows newlines in fields'; //to translate
+$strSetupCharTextareaCols_name = 'CHAR textarea columns'; //to translate
+$strSetupCharTextareaCols_desc = 'Number of columns for CHAR/VARCHAR textareas'; //to translate
+$strSetupCharTextareaRows_name = 'CHAR textarea rows'; //to translate
+$strSetupCharTextareaRows_desc = 'Number of rows for CHAR/VARCHAR textareas'; //to translate
+$strSetupInsertRows_name = 'Number of inserted rows'; //to translate
+$strSetupInsertRows_desc = 'How many rows can be inserted at one time'; //to translate
+$strSetupForeignKeyDropdownOrder_name = 'Foreign key dropdown order'; //to translate
+$strSetupForeignKeyDropdownOrder_desc = 'Sort order for items in a foreign-key dropdown box; [kbd]content[/kbd] is the referenced data, [kbd]id[/kbd] is the key value'; //to translate
+$strSetupForeignKeyMaxLimit_name = 'Foreign key limit'; //to translate
+$strSetupForeignKeyMaxLimit_desc = 'A dropdown will be used if fewer items are present'; //to translate
+$strSetupLightTabs_name = 'Light tabs'; //to translate
+$strSetupLightTabs_desc = 'Use less graphically intense tabs'; //to translate
+$strSetupPropertiesIconic_name = 'Iconic table operations'; //to translate
+$strSetupPropertiesIconic_desc = 'Use only icons, only text or both'; //to translate
+$strSetupDefaultTabServer_name = 'Default server tab'; //to translate
+$strSetupDefaultTabServer_desc = 'Tab that is displayed when entering a server'; //to translate
+$strSetupDefaultTabDatabase_name = 'Default database tab'; //to translate
+$strSetupDefaultTabDatabase_desc = 'Tab that is displayed when entering a database'; //to translate
+$strSetupDefaultTabTable_name = 'Default table tab'; //to translate
+$strSetupDefaultTabTable_desc = 'Tab that is displayed when entering a table'; //to translate
+$strSetupQueryWindowDefTab_name = 'Default query window tab'; //to translate
+$strSetupQueryWindowDefTab_desc = 'Tab displayed when opening a new query window'; //to translate
+$strSetupSQLQuery_Edit_name = 'Edit'; //to translate
+$strSetupSQLQuery_Explain_name = 'Explain SQL'; //to translate
+$strSetupSQLQuery_ShowAsPHP_name = 'Create PHP Code'; //to translate
+$strSetupSQLQuery_Validate_name = 'Validate SQL'; //to translate
+$strSetupSQLQuery_Refresh_name = 'Refresh'; //to translate
+$strSetupImport_format_name = 'Format of imported file'; //to translate
+$strSetupImport_format_desc = 'Default format, mind that this list depends on location (database, table) and only SQL is always avaiable'; //to translate
+$strSetupImport_allow_interrupt_name = 'Partial import: allow interrupt'; //to translate
+$strSetupImport_allow_interrupt_desc = 'Allow interrupt of import in case script detects it is close to time limit. This might be good way to import large files, however it can break transactions.'; //to translate
+$strSetupImport_skip_queries_name = 'Partial import: skip queries'; //to translate
+$strSetupImport_skip_queries_desc = 'Number of records (queries) to skip from start'; //to translate
+$strSetupExport_format_name = 'Format'; //to translate
+$strSetupExport_compression_name = 'Compression'; //to translate
+$strSetupExport_asfile_name = 'Save as file'; //to translate
+$strSetupExport_charset_name = 'Character set of the file'; //to translate
+$strSetupExport_onserver_name = 'Save on server'; //to translate
+$strSetupExport_onserver_overwrite_name = 'Overwrite existing file(s)'; //to translate
+$strSetupExport_remember_file_template_name = 'Remember file name template'; //to translate
+$strSetupExport_file_template_table_name = 'Table name template'; //to translate
+$strSetupExport_file_template_database_name = 'Database name template'; //to translate
+$strSetupExport_file_template_server_name = 'Server name template'; //to translate
+?>
diff --git a/libraries/.htaccess b/libraries/.htaccess
new file mode 100644
index 0000000000..56baee608b
--- /dev/null
+++ b/libraries/.htaccess
@@ -0,0 +1,3 @@
+# This folder does not require access over HTTP
+# (the following directive denies access by default)
+Order allow,deny
diff --git a/libraries/Config.class.php b/libraries/Config.class.php
new file mode 100644
index 0000000000..f2f91cd66d
--- /dev/null
+++ b/libraries/Config.class.php
@@ -0,0 +1,1053 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ *
+ * @version $Id$
+ */
+
+/**
+ * Configuration class
+ *
+ */
+class PMA_Config
+{
+ /**
+ * @var string default config source
+ */
+ var $default_source = './libraries/config.default.php';
+
+ /**
+ * @var array configuration settings
+ */
+ var $settings = array();
+
+ /**
+ * @var string config source
+ */
+ var $source = '';
+
+ /**
+ * @var int source modification time
+ */
+ var $source_mtime = 0;
+ var $default_source_mtime = 0;
+ var $set_mtime = 0;
+
+ /**
+ * @var boolean
+ */
+ var $error_config_file = false;
+
+ /**
+ * @var boolean
+ */
+ var $error_config_default_file = false;
+
+ /**
+ * @var boolean
+ */
+ var $error_pma_uri = false;
+
+ /**
+ * @var array
+ */
+ var $default_server = array();
+
+ /**
+ * @var boolean whether init is done or not
+ * set this to false to force some initial checks
+ * like checking for required functions
+ */
+ var $done = false;
+
+ /**
+ * constructor
+ *
+ * @param string source to read config from
+ */
+ function __construct($source = null)
+ {
+ $this->settings = array();
+
+ // functions need to refresh in case of config file changed goes in
+ // PMA_Config::load()
+ $this->load($source);
+
+ // other settings, independent from config file, comes in
+ $this->checkSystem();
+
+ $this->checkIsHttps();
+ }
+
+ /**
+ * sets system and application settings
+ */
+ function checkSystem()
+ {
+ $this->set('PMA_VERSION', '3.1.0-dev');
+ /**
+ * @deprecated
+ */
+ $this->set('PMA_THEME_VERSION', 2);
+ /**
+ * @deprecated
+ */
+ $this->set('PMA_THEME_GENERATION', 2);
+
+ $this->checkPhpVersion();
+ $this->checkWebServerOs();
+ $this->checkWebServer();
+ $this->checkGd2();
+ $this->checkClient();
+ $this->checkUpload();
+ $this->checkUploadSize();
+ $this->checkOutputCompression();
+ }
+
+ /**
+ * whether to use gzip output compression or not
+ */
+ function checkOutputCompression()
+ {
+ // If zlib output compression is set in the php configuration file, no
+ // output buffering should be run
+ if (@ini_get('zlib.output_compression')) {
+ $this->set('OBGzip', false);
+ }
+
+ // disable output-buffering (if set to 'auto') for IE6, else enable it.
+ if (strtolower($this->get('OBGzip')) == 'auto') {
+ if ($this->get('PMA_USR_BROWSER_AGENT') == 'IE'
+ && $this->get('PMA_USR_BROWSER_VER') >= 6
+ && $this->get('PMA_USR_BROWSER_VER') < 7) {
+ $this->set('OBGzip', false);
+ } else {
+ $this->set('OBGzip', true);
+ }
+ }
+ }
+
+ /**
+ * Determines platform (OS), browser and version of the user
+ * Based on a phpBuilder article:
+ * @see http://www.phpbuilder.net/columns/tim20000821.php
+ */
+ function checkClient()
+ {
+ if (PMA_getenv('HTTP_USER_AGENT')) {
+ $HTTP_USER_AGENT = PMA_getenv('HTTP_USER_AGENT');
+ } elseif (!isset($HTTP_USER_AGENT)) {
+ $HTTP_USER_AGENT = '';
+ }
+
+ // 1. Platform
+ if (strstr($HTTP_USER_AGENT, 'Win')) {
+ $this->set('PMA_USR_OS', 'Win');
+ } elseif (strstr($HTTP_USER_AGENT, 'Mac')) {
+ $this->set('PMA_USR_OS', 'Mac');
+ } elseif (strstr($HTTP_USER_AGENT, 'Linux')) {
+ $this->set('PMA_USR_OS', 'Linux');
+ } elseif (strstr($HTTP_USER_AGENT, 'Unix')) {
+ $this->set('PMA_USR_OS', 'Unix');
+ } elseif (strstr($HTTP_USER_AGENT, 'OS/2')) {
+ $this->set('PMA_USR_OS', 'OS/2');
+ } else {
+ $this->set('PMA_USR_OS', 'Other');
+ }
+
+ // 2. browser and version
+ // (must check everything else before Mozilla)
+
+ if (preg_match('@Opera(/| )([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
+ $this->set('PMA_USR_BROWSER_VER', $log_version[2]);
+ $this->set('PMA_USR_BROWSER_AGENT', 'OPERA');
+ } elseif (preg_match('@MSIE ([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
+ $this->set('PMA_USR_BROWSER_VER', $log_version[1]);
+ $this->set('PMA_USR_BROWSER_AGENT', 'IE');
+ } elseif (preg_match('@OmniWeb/([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
+ $this->set('PMA_USR_BROWSER_VER', $log_version[1]);
+ $this->set('PMA_USR_BROWSER_AGENT', 'OMNIWEB');
+ //} elseif (ereg('Konqueror/([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
+ // Konqueror 2.2.2 says Konqueror/2.2.2
+ // Konqueror 3.0.3 says Konqueror/3
+ } elseif (preg_match('@(Konqueror/)(.*)(;)@', $HTTP_USER_AGENT, $log_version)) {
+ $this->set('PMA_USR_BROWSER_VER', $log_version[2]);
+ $this->set('PMA_USR_BROWSER_AGENT', 'KONQUEROR');
+ } elseif (preg_match('@Mozilla/([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)
+ && preg_match('@Safari/([0-9]*)@', $HTTP_USER_AGENT, $log_version2)) {
+ $this->set('PMA_USR_BROWSER_VER', $log_version[1] . '.' . $log_version2[1]);
+ $this->set('PMA_USR_BROWSER_AGENT', 'SAFARI');
+ } elseif (preg_match('@rv:1.9(.*)Gecko@', $HTTP_USER_AGENT)) {
+ $this->set('PMA_USR_BROWSER_VER', '1.9');
+ $this->set('PMA_USR_BROWSER_AGENT', 'GECKO');
+ } elseif (preg_match('@Mozilla/([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
+ $this->set('PMA_USR_BROWSER_VER', $log_version[1]);
+ $this->set('PMA_USR_BROWSER_AGENT', 'MOZILLA');
+ } else {
+ $this->set('PMA_USR_BROWSER_VER', 0);
+ $this->set('PMA_USR_BROWSER_AGENT', 'OTHER');
+ }
+ }
+
+ /**
+ * Whether GD2 is present
+ */
+ function checkGd2()
+ {
+ if ($this->get('GD2Available') == 'yes') {
+ $this->set('PMA_IS_GD2', 1);
+ } elseif ($this->get('GD2Available') == 'no') {
+ $this->set('PMA_IS_GD2', 0);
+ } else {
+ if (!@function_exists('imagecreatetruecolor')) {
+ $this->set('PMA_IS_GD2', 0);
+ } else {
+ if (@function_exists('gd_info')) {
+ $gd_nfo = gd_info();
+ if (strstr($gd_nfo["GD Version"], '2.')) {
+ $this->set('PMA_IS_GD2', 1);
+ } else {
+ $this->set('PMA_IS_GD2', 0);
+ }
+ } else {
+ /* We must do hard way... but almost no chance to execute this */
+ ob_start();
+ phpinfo(INFO_MODULES); /* Only modules */
+ $a = strip_tags(ob_get_contents());
+ ob_end_clean();
+ /* Get GD version string from phpinfo output */
+ if (preg_match('@GD Version[[:space:]]*\(.*\)@', $a, $v)) {
+ if (strstr($v, '2.')) {
+ $this->set('PMA_IS_GD2', 1);
+ } else {
+ $this->set('PMA_IS_GD2', 0);
+ }
+ } else {
+ $this->set('PMA_IS_GD2', 0);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Whether the Web server php is running on is IIS
+ */
+ function checkWebServer()
+ {
+ if (PMA_getenv('SERVER_SOFTWARE')
+ // some versions return Microsoft-IIS, some Microsoft/IIS
+ // we could use a preg_match() but it's slower
+ && stristr(PMA_getenv('SERVER_SOFTWARE'), 'Microsoft')
+ && stristr(PMA_getenv('SERVER_SOFTWARE'), 'IIS')) {
+ $this->set('PMA_IS_IIS', 1);
+ } else {
+ $this->set('PMA_IS_IIS', 0);
+ }
+ }
+
+ /**
+ * Whether the os php is running on is windows or not
+ */
+ function checkWebServerOs()
+ {
+ // Default to Unix or Equiv
+ $this->set('PMA_IS_WINDOWS', 0);
+ // If PHP_OS is defined then continue
+ if (defined('PHP_OS')) {
+ if (stristr(PHP_OS, 'win')) {
+ // Is it some version of Windows
+ $this->set('PMA_IS_WINDOWS', 1);
+ } elseif (stristr(PHP_OS, 'OS/2')) {
+ // Is it OS/2 (No file permissions like Windows)
+ $this->set('PMA_IS_WINDOWS', 1);
+ }
+ }
+ }
+
+ /**
+ * detects PHP version
+ */
+ function checkPhpVersion()
+ {
+ $match = array();
+ if (! preg_match('@([0-9]{1,2}).([0-9]{1,2}).([0-9]{1,2})@',
+ phpversion(), $match)) {
+ $result = preg_match('@([0-9]{1,2}).([0-9]{1,2})@',
+ phpversion(), $match);
+ }
+ if (isset($match) && ! empty($match[1])) {
+ if (! isset($match[2])) {
+ $match[2] = 0;
+ }
+ if (! isset($match[3])) {
+ $match[3] = 0;
+ }
+ $this->set('PMA_PHP_INT_VERSION',
+ (int) sprintf('%d%02d%02d', $match[1], $match[2], $match[3]));
+ } else {
+ $this->set('PMA_PHP_INT_VERSION', 0);
+ }
+ $this->set('PMA_PHP_STR_VERSION', phpversion());
+ }
+
+ /**
+ * re-init object after loading from session file
+ * checks config file for changes and relaods if neccessary
+ */
+ function __wakeup()
+ {
+ if (! $this->checkConfigSource()
+ || $this->source_mtime !== filemtime($this->getSource())
+ || $this->default_source_mtime !== filemtime($this->default_source)
+ || $this->error_config_file
+ || $this->error_config_default_file) {
+ $this->settings = array();
+ $this->load();
+ $this->checkSystem();
+ }
+
+ // check for https needs to be done everytime,
+ // as https and http uses same session so this info can not be stored
+ // in session
+ $this->checkIsHttps();
+
+ $this->checkCollationConnection();
+ $this->checkFontsize();
+ }
+
+ /**
+ * loads default values from default source
+ *
+ * @uses file_exists()
+ * @uses $this->default_source
+ * @uses $this->error_config_default_file
+ * @uses $this->settings
+ * @return boolean success
+ */
+ function loadDefaults()
+ {
+ $cfg = array();
+ if (! file_exists($this->default_source)) {
+ $this->error_config_default_file = true;
+ return false;
+ }
+ include $this->default_source;
+
+ $this->default_source_mtime = filemtime($this->default_source);
+
+ $this->default_server = $cfg['Servers'][1];
+ unset($cfg['Servers']);
+
+ $this->settings = PMA_array_merge_recursive($this->settings, $cfg);
+
+ $this->error_config_default_file = false;
+
+ return true;
+ }
+
+ /**
+ * loads configuration from $source, usally the config file
+ * should be called on object creation and from __wakeup if config file
+ * has changed
+ *
+ * @param string $source config file
+ */
+ function load($source = null)
+ {
+ $this->loadDefaults();
+
+ if (null !== $source) {
+ $this->setSource($source);
+ }
+
+ if (! $this->checkConfigSource()) {
+ return false;
+ }
+
+ $cfg = array();
+
+ /**
+ * Parses the configuration file
+ */
+ $old_error_reporting = error_reporting(0);
+ if (function_exists('file_get_contents')) {
+ $eval_result =
+ eval('?>' . trim(file_get_contents($this->getSource())));
+ } else {
+ $eval_result =
+ eval('?>' . trim(implode("\n", file($this->getSource()))));
+ }
+ error_reporting($old_error_reporting);
+
+ if ($eval_result === false) {
+ $this->error_config_file = true;
+ } else {
+ $this->error_config_file = false;
+ $this->source_mtime = filemtime($this->getSource());
+ }
+
+ /**
+ * Backward compatibility code
+ */
+ if (!empty($cfg['DefaultTabTable'])) {
+ $cfg['DefaultTabTable'] = str_replace('_properties', '', str_replace('tbl_properties.php', 'tbl_sql.php', $cfg['DefaultTabTable']));
+ }
+ if (!empty($cfg['DefaultTabDatabase'])) {
+ $cfg['DefaultTabDatabase'] = str_replace('_details', '', str_replace('db_details.php', 'db_sql.php', $cfg['DefaultTabDatabase']));
+ }
+
+ $this->checkFontsize();
+ //$this->checkPmaAbsoluteUri();
+ $this->settings = PMA_array_merge_recursive($this->settings, $cfg);
+
+ // Handling of the collation must be done after merging of $cfg
+ // (from config.inc.php) so that $cfg['DefaultConnectionCollation']
+ // can have an effect. Note that the presence of collation
+ // information in a cookie has priority over what is defined
+ // in the default or user's config files.
+ /**
+ * @todo check validity of $_COOKIE['pma_collation_connection']
+ */
+ if (! empty($_COOKIE['pma_collation_connection'])) {
+ $this->set('collation_connection',
+ strip_tags($_COOKIE['pma_collation_connection']));
+ } else {
+ $this->set('collation_connection',
+ $this->get('DefaultConnectionCollation'));
+ }
+ // Now, a collation information could come from REQUEST
+ // (an example of this: the collation selector in main.php)
+ // so the following handles the setting of collation_connection
+ // and later, in common.inc.php, the cookie will be set
+ // according to this.
+ $this->checkCollationConnection();
+
+ return true;
+ }
+
+ /**
+ * set source
+ * @param string $source
+ */
+ function setSource($source)
+ {
+ $this->source = trim($source);
+ }
+
+ /**
+ * checks if the config folder still exists and terminates app if true
+ */
+ function checkConfigFolder()
+ {
+ // Refuse to work while there still might be some world writable dir:
+ if (is_dir('./config')) {
+ die('Remove "./config" directory before using phpMyAdmin!');
+ }
+ }
+
+ /**
+ * check config source
+ *
+ * @return boolean whether source is valid or not
+ */
+ function checkConfigSource()
+ {
+ if (! $this->getSource()) {
+ // no configuration file set at all
+ return false;
+ }
+
+ if (! file_exists($this->getSource())) {
+ // do not trigger error here
+ // https://sf.net/tracker/?func=detail&aid=1370269&group_id=23067&atid=377408
+ /*
+ trigger_error(
+ 'phpMyAdmin-ERROR: unkown configuration source: ' . $source,
+ E_USER_WARNING);
+ */
+ $this->source_mtime = 0;
+ return false;
+ }
+
+ if (! is_readable($this->getSource())) {
+ $this->source_mtime = 0;
+ die('Existing configuration file (' . $this->getSource() . ') is not readable.');
+ }
+
+ // Check for permissions (on platforms that support it):
+ if ($this->get('CheckConfigurationPermissions')) {
+ $perms = @fileperms($this->getSource());
+ if (!($perms === false) && ($perms & 2)) {
+ // This check is normally done after loading configuration
+ $this->checkWebServerOs();
+ if ($this->get('PMA_IS_WINDOWS') == 0) {
+ $this->source_mtime = 0;
+ die('Wrong permissions on configuration file, should not be world writable!');
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * returns specific config setting
+ * @param string $setting
+ * @return mixed value
+ */
+ function get($setting)
+ {
+ if (isset($this->settings[$setting])) {
+ return $this->settings[$setting];
+ }
+ return null;
+ }
+
+ /**
+ * sets configuration variable
+ *
+ * @uses $this->settings
+ * @param string $setting configuration option
+ * @param string $value new value for configuration option
+ */
+ function set($setting, $value)
+ {
+ if (!isset($this->settings[$setting]) || $this->settings[$setting] != $value) {
+ $this->settings[$setting] = $value;
+ $this->set_mtime = time();
+ }
+ }
+
+ /**
+ * returns source for current config
+ * @return string config source
+ */
+ function getSource()
+ {
+ return $this->source;
+ }
+
+ /**
+ * returns a unique value to force a CSS reload if either the config
+ * or the theme changes
+ * must also check the pma_fontsize cookie in case there is no
+ * config file
+ * @return int Unix timestamp
+ */
+ function getThemeUniqueValue()
+ {
+ return intval((null !== $_SESSION['PMA_Config']->get('fontsize') ? $_SESSION['PMA_Config']->get('fontsize') : (isset($_COOKIE['pma_fontsize']) ? $_COOKIE['pma_fontsize'] : 0))) + ($this->source_mtime + $this->default_source_mtime + $_SESSION['PMA_Theme']->mtime_info + $_SESSION['PMA_Theme']->filesize_info) . (isset($_SESSION['userconf']['custom_color']) ? substr($_SESSION['userconf']['custom_color'],1,6) : '');
+ }
+
+ /**
+ * $cfg['PmaAbsoluteUri'] is a required directive else cookies won't be
+ * set properly and, depending on browsers, inserting or updating a
+ * record might fail
+ */
+ function checkPmaAbsoluteUri()
+ {
+ // Setup a default value to let the people and lazy sysadmins work anyway,
+ // they'll get an error if the autodetect code doesn't work
+ $pma_absolute_uri = $this->get('PmaAbsoluteUri');
+ $is_https = $this->get('is_https');
+
+ if (strlen($pma_absolute_uri) < 5
+ // needed to catch http/https switch
+ || ($is_https && substr($pma_absolute_uri, 0, 6) != 'https:')
+ || (!$is_https && substr($pma_absolute_uri, 0, 5) != 'http:')
+ ) {
+ $url = array();
+
+ // At first we try to parse REQUEST_URI, it might contain full URL
+ /**
+ * REQUEST_URI contains PATH_INFO too, this is not what we want
+ * script-php/pathinfo/
+ if (PMA_getenv('REQUEST_URI')) {
+ $url = @parse_url(PMA_getenv('REQUEST_URI')); // produces E_WARNING if it cannot get parsed, e.g. '/foobar:/'
+ if ($url === false) {
+ $url = array('path' => $_SERVER['REQUEST_URI']);
+ }
+ }
+ */
+
+ // If we don't have scheme, we didn't have full URL so we need to
+ // dig deeper
+ if (empty($url['scheme'])) {
+ // Scheme
+ if (PMA_getenv('HTTP_SCHEME')) {
+ $url['scheme'] = PMA_getenv('HTTP_SCHEME');
+ } else {
+ $url['scheme'] =
+ PMA_getenv('HTTPS') && strtolower(PMA_getenv('HTTPS')) != 'off'
+ ? 'https'
+ : 'http';
+ }
+
+ // Host and port
+ if (PMA_getenv('HTTP_HOST')) {
+ if (strpos(PMA_getenv('HTTP_HOST'), ':') !== false) {
+ list($url['host'], $url['port']) =
+ explode(':', PMA_getenv('HTTP_HOST'));
+ } else {
+ $url['host'] = PMA_getenv('HTTP_HOST');
+ }
+ } elseif (PMA_getenv('SERVER_NAME')) {
+ $url['host'] = PMA_getenv('SERVER_NAME');
+ } else {
+ $this->error_pma_uri = true;
+ return false;
+ }
+
+ // If we didn't set port yet...
+ if (empty($url['port']) && PMA_getenv('SERVER_PORT')) {
+ $url['port'] = PMA_getenv('SERVER_PORT');
+ }
+
+ // And finally the path could be already set from REQUEST_URI
+ if (empty($url['path'])) {
+ /**
+ * REQUEST_URI contains PATH_INFO too, this is not what we want
+ * script-php/pathinfo/
+ if (PMA_getenv('PATH_INFO')) {
+ $path = parse_url(PMA_getenv('PATH_INFO'));
+ } else {
+ // PHP_SELF in CGI often points to cgi executable, so use it
+ // as last choice
+ */
+ $path = parse_url($GLOBALS['PMA_PHP_SELF']);
+ //}
+ $url['path'] = $path['path'];
+ }
+ }
+
+ // Make url from parts we have
+ $pma_absolute_uri = $url['scheme'] . '://';
+ // Was there user information?
+ if (!empty($url['user'])) {
+ $pma_absolute_uri .= $url['user'];
+ if (!empty($url['pass'])) {
+ $pma_absolute_uri .= ':' . $url['pass'];
+ }
+ $pma_absolute_uri .= '@';
+ }
+ // Add hostname
+ $pma_absolute_uri .= $url['host'];
+ // Add port, if it not the default one
+ if (! empty($url['port'])
+ && (($url['scheme'] == 'http' && $url['port'] != 80)
+ || ($url['scheme'] == 'https' && $url['port'] != 443))) {
+ $pma_absolute_uri .= ':' . $url['port'];
+ }
+ // And finally path, without script name, the 'a' is there not to
+ // strip our directory, when path is only /pmadir/ without filename.
+ // Backslashes returned by Windows have to be changed.
+ // Only replace backslashes by forward slashes if on Windows,
+ // as the backslash could be valid on a non-Windows system.
+ if ($this->get('PMA_IS_WINDOWS') == 1) {
+ $path = str_replace("\\", "/", dirname($url['path'] . 'a'));
+ } else {
+ $path = dirname($url['path'] . 'a');
+ }
+
+ // To work correctly within transformations overview:
+ if (defined('PMA_PATH_TO_BASEDIR') && PMA_PATH_TO_BASEDIR == '../../') {
+ if ($this->get('PMA_IS_WINDOWS') == 1) {
+ $path = str_replace("\\", "/", dirname(dirname($path)));
+ } else {
+ $path = dirname(dirname($path));
+ }
+ }
+ // in vhost situations, there could be already an ending slash
+ if (substr($path, -1) != '/') {
+ $path .= '/';
+ }
+ $pma_absolute_uri .= $path;
+
+ // We used to display a warning if PmaAbsoluteUri wasn't set, but now
+ // the autodetect code works well enough that we don't display the
+ // warning at all. The user can still set PmaAbsoluteUri manually.
+ // See
+ // http://sf.net/tracker/?func=detail&aid=1257134&group_id=23067&atid=377411
+
+ } else {
+ // The URI is specified, however users do often specify this
+ // wrongly, so we try to fix this.
+
+ // Adds a trailing slash et the end of the phpMyAdmin uri if it
+ // does not exist.
+ if (substr($pma_absolute_uri, -1) != '/') {
+ $pma_absolute_uri .= '/';
+ }
+
+ // If URI doesn't start with http:// or https://, we will add
+ // this.
+ if (substr($pma_absolute_uri, 0, 7) != 'http://'
+ && substr($pma_absolute_uri, 0, 8) != 'https://') {
+ $pma_absolute_uri =
+ (PMA_getenv('HTTPS') && strtolower(PMA_getenv('HTTPS')) != 'off'
+ ? 'https'
+ : 'http')
+ . ':' . (substr($pma_absolute_uri, 0, 2) == '//' ? '' : '//')
+ . $pma_absolute_uri;
+ }
+ }
+ $this->set('PmaAbsoluteUri', $pma_absolute_uri);
+ }
+
+ /**
+ * check selected collation_connection
+ * @todo check validity of $_REQUEST['collation_connection']
+ */
+ function checkCollationConnection()
+ {
+ if (! empty($_REQUEST['collation_connection'])) {
+ $this->set('collation_connection',
+ strip_tags($_REQUEST['collation_connection']));
+ }
+ }
+
+ /**
+ * checks for font size configuration, and sets font size as requested by user
+ *
+ * @uses $_GET
+ * @uses $_POST
+ * @uses $_COOKIE
+ * @uses preg_match()
+ * @uses function_exists()
+ * @uses PMA_Config::set()
+ * @uses PMA_Config::get()
+ * @uses PMA_setCookie()
+ */
+ function checkFontsize()
+ {
+ $new_fontsize = '';
+
+ if (isset($_GET['fontsize'])) {
+ $new_fontsize = $_GET['fontsize'];
+ } elseif (isset($_POST['fontsize'])) {
+ $new_fontsize = $_POST['fontsize'];
+ } elseif (isset($_COOKIE['pma_fontsize'])) {
+ $new_fontsize = $_COOKIE['pma_fontsize'];
+ }
+
+ if (preg_match('/^[0-9.]+(px|em|pt|\%)$/', $new_fontsize)) {
+ $this->set('fontsize', $new_fontsize);
+ } elseif (! $this->get('fontsize')) {
+ // 80% would correspond to the default browser font size
+ // of 16, but use 82% to help read the monoface font
+ $this->set('fontsize', '82%');
+ }
+
+ if (function_exists('PMA_setCookie')) {
+ PMA_setCookie('pma_fontsize', $this->get('fontsize'), '82%');
+ }
+ }
+
+ /**
+ * checks if upload is enabled
+ *
+ */
+
+ function checkUpload()
+ {
+ if (ini_get('file_uploads')) {
+ $this->set('enable_upload', true);
+ // if set "php_admin_value file_uploads Off" in httpd.conf
+ // ini_get() also returns the string "Off" in this case:
+ if ('off' == strtolower(ini_get('file_uploads'))) {
+ $this->set('enable_upload', false);
+ }
+ } else {
+ $this->set('enable_upload', false);
+ }
+ }
+
+ /**
+ * Maximum upload size as limited by PHP
+ * Used with permission from Moodle (http://moodle.org) by Martin Dougiamas
+ *
+ * this section generates $max_upload_size in bytes
+ */
+ function checkUploadSize()
+ {
+ if (! $filesize = ini_get('upload_max_filesize')) {
+ $filesize = "5M";
+ }
+
+ if ($postsize = ini_get('post_max_size')) {
+ $this->set('max_upload_size',
+ min(PMA_get_real_size($filesize), PMA_get_real_size($postsize)));
+ } else {
+ $this->set('max_upload_size', PMA_get_real_size($filesize));
+ }
+ }
+
+ /**
+ * check for https
+ */
+ function checkIsHttps()
+ {
+ $this->set('is_https', PMA_Config::isHttps());
+ }
+
+ /**
+ * @static
+ */
+ static public function isHttps()
+ {
+ $is_https = false;
+
+ $url = array();
+
+ // At first we try to parse REQUEST_URI, it might contain full URL,
+ if (PMA_getenv('REQUEST_URI')) {
+ $url = @parse_url(PMA_getenv('REQUEST_URI')); // produces E_WARNING if it cannot get parsed, e.g. '/foobar:/'
+ if($url === false) {
+ $url = array();
+ }
+ }
+
+ // If we don't have scheme, we didn't have full URL so we need to
+ // dig deeper
+ if (empty($url['scheme'])) {
+ // Scheme
+ if (PMA_getenv('HTTP_SCHEME')) {
+ $url['scheme'] = PMA_getenv('HTTP_SCHEME');
+ } else {
+ $url['scheme'] =
+ PMA_getenv('HTTPS') && strtolower(PMA_getenv('HTTPS')) != 'off'
+ ? 'https'
+ : 'http';
+ }
+ }
+
+ if (isset($url['scheme'])
+ && $url['scheme'] == 'https') {
+ $is_https = true;
+ } else {
+ $is_https = false;
+ }
+
+ return $is_https;
+ }
+
+ /**
+ * detect correct cookie path
+ */
+ function checkCookiePath()
+ {
+ $this->set('cookie_path', PMA_Config::getCookiePath());
+ }
+
+ /**
+ * @static
+ */
+ static public function getCookiePath()
+ {
+ static $cookie_path = null;
+
+ if (null !== $cookie_path) {
+ return $cookie_path;
+ }
+
+ $url = '';
+
+ /**
+ * REQUEST_URI contains PATH_INFO too, this is not what we want
+ * script-php/pathinfo/
+ if (PMA_getenv('REQUEST_URI')) {
+ $url = PMA_getenv('REQUEST_URI');
+ }
+ */
+
+ // If we don't have path
+ if (empty($url)) {
+ if ($GLOBALS['PMA_PHP_SELF']) {
+ // PHP_SELF in CGI often points to cgi executable, so use it
+ // as last choice
+ $url = $GLOBALS['PMA_PHP_SELF'];
+ // on IIS with PHP-CGI:
+ } elseif (PMA_getenv('SCRIPT_NAME')) {
+ $url = PMA_getenv('SCRIPT_NAME');
+ }
+ }
+
+ /**
+ * REQUEST_URI contains PATH_INFO too, this is not what we want
+ * script-php/pathinfo/
+ $parsed_url = @parse_url($_SERVER['REQUEST_URI']); // produces E_WARNING if it cannot get parsed, e.g. '/foobar:/'
+ if ($parsed_url === false) {
+ */
+ $parsed_url = array('path' => $url);
+ //}
+
+ $cookie_path = substr($parsed_url['path'], 0, strrpos($parsed_url['path'], '/')) . '/';
+
+ return $cookie_path;
+ }
+
+ /**
+ * enables backward compatibility
+ */
+ function enableBc()
+ {
+ $GLOBALS['cfg'] = $this->settings;
+ $GLOBALS['default_server'] = $this->default_server;
+ unset($this->default_server);
+ $GLOBALS['collation_connection'] = $this->get('collation_connection');
+ $GLOBALS['is_upload'] = $this->get('enable_upload');
+ $GLOBALS['max_upload_size'] = $this->get('max_upload_size');
+ $GLOBALS['cookie_path'] = $this->get('cookie_path');
+ $GLOBALS['is_https'] = $this->get('is_https');
+
+ $defines = array(
+ 'PMA_VERSION',
+ 'PMA_THEME_VERSION',
+ 'PMA_THEME_GENERATION',
+ 'PMA_PHP_STR_VERSION',
+ 'PMA_PHP_INT_VERSION',
+ 'PMA_IS_WINDOWS',
+ 'PMA_IS_IIS',
+ 'PMA_IS_GD2',
+ 'PMA_USR_OS',
+ 'PMA_USR_BROWSER_VER',
+ 'PMA_USR_BROWSER_AGENT'
+ );
+
+ foreach ($defines as $define) {
+ if (! defined($define)) {
+ define($define, $this->get($define));
+ }
+ }
+ }
+
+ /**
+ * @todo finish
+ */
+ function save() {}
+
+ /**
+ * returns options for font size selection
+ *
+ * @uses preg_replace()
+ * @uses ksort()
+ * @static
+ * @param string $current_size current selected font size with unit
+ * @return array selectable font sizes
+ */
+ static protected function _getFontsizeOptions($current_size = '82%')
+ {
+ $unit = preg_replace('/[0-9.]*/', '', $current_size);
+ $value = preg_replace('/[^0-9.]*/', '', $current_size);
+
+ $factors = array();
+ $options = array();
+ $options["$value"] = $value . $unit;
+
+ if ($unit === '%') {
+ $factors[] = 1;
+ $factors[] = 5;
+ $factors[] = 10;
+ } elseif ($unit === 'em') {
+ $factors[] = 0.05;
+ $factors[] = 0.2;
+ $factors[] = 1;
+ } elseif ($unit === 'pt') {
+ $factors[] = 0.5;
+ $factors[] = 2;
+ } elseif ($unit === 'px') {
+ $factors[] = 1;
+ $factors[] = 5;
+ $factors[] = 10;
+ } else {
+ //unknown font size unit
+ $factors[] = 0.05;
+ $factors[] = 0.2;
+ $factors[] = 1;
+ $factors[] = 5;
+ $factors[] = 10;
+ }
+
+ foreach ($factors as $key => $factor) {
+ $option_inc = $value + $factor;
+ $option_dec = $value - $factor;
+ while (count($options) < 21) {
+ $options["$option_inc"] = $option_inc . $unit;
+ if ($option_dec > $factors[0]) {
+ $options["$option_dec"] = $option_dec . $unit;
+ }
+ $option_inc += $factor;
+ $option_dec -= $factor;
+ if (isset($factors[$key + 1])
+ && $option_inc >= $value + $factors[$key + 1]) {
+ break;
+ }
+ }
+ }
+ ksort($options);
+ return $options;
+ }
+
+ /**
+ * returns html selectbox for font sizes
+ *
+ * @uses $_SESSION['PMA_Config']
+ * @uses PMA_Config::get()
+ * @uses PMA_Config::_getFontsizeOptions()
+ * @uses $GLOBALS['strFontSize']
+ * @static
+ * @param string $current_size currently slected font size with unit
+ * @return string html selectbox
+ */
+ static protected function _getFontsizeSelection()
+ {
+ $current_size = $_SESSION['PMA_Config']->get('fontsize');
+ // for the case when there is no config file (this is supported)
+ if (empty($current_size)) {
+ if (isset($_COOKIE['pma_fontsize'])) {
+ $current_size = $_COOKIE['pma_fontsize'];
+ } else {
+ $current_size = '82%';
+ }
+ }
+ $options = PMA_Config::_getFontsizeOptions($current_size);
+
+ $return = '<label for="select_fontsize">' . $GLOBALS['strFontSize'] . ':</label>' . "\n";
+ $return .= '<select name="fontsize" id="select_fontsize" onchange="this.form.submit();">' . "\n";
+ foreach ($options as $option) {
+ $return .= '<option value="' . $option . '"';
+ if ($option == $current_size) {
+ $return .= ' selected="selected"';
+ }
+ $return .= '>' . $option . '</option>' . "\n";
+ }
+ $return .= '</select>';
+
+ return $return;
+ }
+
+ /**
+ * return complete font size selection form
+ *
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_Config::_getFontsizeSelection()
+ * @uses $GLOBALS['strGo']
+ * @static
+ * @param string $current_size currently slected font size with unit
+ * @return string html selectbox
+ */
+ static public function getFontsizeForm()
+ {
+ return '<form name="form_fontsize_selection" id="form_fontsize_selection"'
+ . ' method="post" action="index.php" target="_parent">' . "\n"
+ . PMA_generate_common_hidden_inputs() . "\n"
+ . PMA_Config::_getFontsizeSelection() . "\n"
+ . '<noscript>' . "\n"
+ . '<input type="submit" value="' . $GLOBALS['strGo'] . '" />' . "\n"
+ . '</noscript>' . "\n"
+ . '</form>';
+ }
+}
+?>
diff --git a/libraries/Error.class.php b/libraries/Error.class.php
new file mode 100644
index 0000000000..1b8b88814f
--- /dev/null
+++ b/libraries/Error.class.php
@@ -0,0 +1,436 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds class PMA_Error
+ *
+ * @version $Id$
+ */
+
+/**
+ * base class
+ */
+require_once './libraries/Message.class.php';
+
+/**
+ * a single error
+ *
+ */
+class PMA_Error extends PMA_Message
+{
+ /**
+ * Error types
+ *
+ * @var array
+ */
+ static public $errortype = array (
+ E_ERROR => 'Error',
+ E_WARNING => 'Warning',
+ E_PARSE => 'Parsing Error',
+ E_NOTICE => 'Notice',
+ E_CORE_ERROR => 'Core Error',
+ E_CORE_WARNING => 'Core Warning',
+ E_COMPILE_ERROR => 'Compile Error',
+ E_COMPILE_WARNING => 'Compile Warning',
+ E_USER_ERROR => 'User Error',
+ E_USER_WARNING => 'User Warning',
+ E_USER_NOTICE => 'User Notice',
+ E_STRICT => 'Runtime Notice',
+ E_RECOVERABLE_ERROR => 'Catchable Fatal Error',
+ );
+
+ /**
+ * Error levels
+ *
+ * @var array
+ */
+ static public $errorlevel = array (
+ E_ERROR => 'error',
+ E_WARNING => 'warning',
+ E_PARSE => 'error',
+ E_NOTICE => 'notice',
+ E_CORE_ERROR => 'error',
+ E_CORE_WARNING => 'warning',
+ E_COMPILE_ERROR => 'error',
+ E_COMPILE_WARNING => 'warning',
+ E_USER_ERROR => 'error',
+ E_USER_WARNING => 'warning',
+ E_USER_NOTICE => 'notice',
+ E_STRICT => 'notice',
+ E_RECOVERABLE_ERROR => 'error',
+ );
+
+ /**
+ * The file in which the error occured
+ *
+ * @var string
+ */
+ protected $_file = '';
+
+ /**
+ * The line in which the error occured
+ *
+ * @var integer
+ */
+ protected $_line = 0;
+
+ /**
+ * Holds any variables defined in the context where the error occured
+ * f. e. $this if the error occured in an object method
+ *
+ * @var array
+ */
+ protected $_context = array();
+
+ /**
+ * Holds the backtrace for this error
+ *
+ * @var array
+ */
+ protected $_backtrace = array();
+
+ /**
+ * Unique id
+ *
+ * @var string
+ */
+ protected $_hash = null;
+
+ /**
+ * Constructor
+ *
+ * @uses debug_backtrace()
+ * @uses PMA_Error::setNumber()
+ * @uses PMA_Error::setMessage()
+ * @uses PMA_Error::setFile()
+ * @uses PMA_Error::setLine()
+ * @uses PMA_Error::setContext()
+ * @uses PMA_Error::setBacktrace()
+ * @param integer $errno
+ * @param string $errstr
+ * @param string $errfile
+ * @param integer $errline
+ * @param array $errcontext
+ */
+ public function __construct($errno, $errstr, $errfile, $errline, $errcontext)
+ {
+ $this->setNumber($errno);
+ $this->setMessage($errstr, false);
+ $this->setFile($errfile);
+ $this->setLine($errline);
+ $this->setContext($errcontext);
+
+ $backtrace = debug_backtrace();
+ // remove last two calls: debug_backtrace() and handleError()
+ unset($backtrace[0]);
+ unset($backtrace[1]);
+
+ $this->setBacktrace($backtrace);
+ }
+
+ /**
+ * sets PMA_Error::$_backtrace
+ *
+ * @uses PMA_Error::$_backtrace to set it
+ * @param array $backtrace
+ */
+ public function setBacktrace($backtrace)
+ {
+ $this->_backtrace = $backtrace;
+ }
+
+ /**
+ * sets PMA_Error::$_context
+ *
+ * @uses PMA_Error::$_context to set it
+ * @param array $context
+ */
+ public function setContext($context)
+ {
+ $this->_context = $context;
+ }
+
+ /**
+ * sets PMA_Error::$_line
+ *
+ * @uses PMA_Error::$_line to set it
+ * @param integer $line
+ */
+ public function setLine($line)
+ {
+ $this->_line = $line;
+ }
+
+ /**
+ * sets PMA_Error::$_file
+ *
+ * @uses PMA_Error::$_file to set it
+ * @uses PMA_Error::relPath()
+ * @param string $file
+ */
+ public function setFile($file)
+ {
+ $this->_file = PMA_Error::relPath($file);
+ }
+
+
+ /**
+ * returns unique PMA_Error::$_hash, if not exists it will be created
+ *
+ * @uses PMA_Error::$_hash as return value and to set it if required
+ * @uses PMA_Error::getNumber()
+ * @uses PMA_Error::getMessage()
+ * @uses PMA_Error::getFile()
+ * @uses PMA_Error::getLine()
+ * @uses PMA_Error::getBacktrace()
+ * @uses md5()
+ * @param string $file
+ * @return string PMA_Error::$_hash
+ */
+ public function getHash()
+ {
+ if (null === $this->_hash) {
+ $this->_hash = md5(
+ $this->getNumber() .
+ $this->getMessage() .
+ $this->getFile() .
+ $this->getLine() .
+ $this->getBacktrace()
+ );
+ }
+
+ return $this->_hash;
+ }
+
+ /**
+ * returns PMA_Error::$_backtrace
+ *
+ * @uses PMA_Error::$_backtrace as return value
+ * @return array PMA_Error::$_backtrace
+ */
+ public function getBacktrace()
+ {
+ return $this->_backtrace;
+ }
+
+ /**
+ * returns PMA_Error::$_file
+ *
+ * @uses PMA_Error::$_file as return value
+ * @return string PMA_Error::$_file
+ */
+ public function getFile()
+ {
+ return $this->_file;
+ }
+
+ /**
+ * returns PMA_Error::$_line
+ *
+ * @uses PMA_Error::$_line as return value
+ * @return integer PMA_Error::$_line
+ */
+ public function getLine()
+ {
+ return $this->_line;
+ }
+
+ /**
+ * returns type of error
+ *
+ * @uses PMA_Error::$errortype
+ * @uses PMA_Error::getNumber()
+ * @return string type of error
+ */
+ public function getType()
+ {
+ return PMA_Error::$errortype[$this->getNumber()];
+ }
+
+ /**
+ * returns level of error
+ *
+ * @uses PMA_Error::$$errorlevel
+ * @uses PMA_Error::getNumber()
+ * @return string level of error
+ */
+ public function getLevel()
+ {
+ return PMA_Error::$errorlevel[$this->getNumber()];
+ }
+
+ /**
+ * returns title prepared for HTML Title-Tag
+ *
+ * @uses PMA_Error::getTitle()
+ * @uses htmlspecialchars()
+ * @uses substr()
+ * @return string HTML escaped and truncated title
+ */
+ public function getHtmlTitle()
+ {
+ return htmlspecialchars(substr($this->getTitle(), 0, 100));
+ }
+
+ /**
+ * returns title for error
+ *
+ * @uses PMA_Error::getType()
+ * @uses PMA_Error::getMessage()
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->getType() . ': ' . $this->getMessage();
+ }
+
+ /**
+ * Display HTML backtrace
+ *
+ * @uses PMA_Error::getBacktrace()
+ * @uses PMA_Error::relPath()
+ * @uses PMA_Error::displayArg()
+ * @uses count()
+ */
+ public function displayBacktrace()
+ {
+ foreach ($this->getBacktrace() as $step) {
+ echo PMA_Error::relPath($step['file']) . '#' . $step['line'] . ': ';
+ if (isset($step['class'])) {
+ echo $step['class'] . $step['type'];
+ }
+ echo $step['function'] . '(';
+ if (count($step['args']) > 1) {
+ echo "<br />\n";
+ foreach ($step['args'] as $arg) {
+ echo "\t";
+ $this->displayArg($arg, $step['function']);
+ echo ',' . "<br />\n";
+ }
+ } elseif (count($step['args']) > 0) {
+ foreach ($step['args'] as $arg) {
+ $this->displayArg($arg, $step['function']);
+ }
+ }
+ echo ')' . "<br />\n";
+ }
+ }
+
+ /**
+ * Display a single function argument
+ * if $function is one of include/require the $arg is converted te relative path
+ *
+ * @uses PMA_Error::relPath()
+ * @uses in_array()
+ * @uses gettype()
+ * @param string $arg
+ * @param string $function
+ */
+ protected function displayArg($arg, $function)
+ {
+ $include_functions = array(
+ 'include',
+ 'include_once',
+ 'require',
+ 'require_once',
+ );
+
+ if (in_array($function, $include_functions)) {
+ echo PMA_Error::relPath($arg);
+ } elseif (is_scalar($arg)) {
+ echo gettype($arg) . ' ' . $arg;
+ } else {
+ echo gettype($arg);
+ }
+ }
+
+ /**
+ * Displays the error in HTML
+ *
+ * @uses PMA_Error::getLevel()
+ * @uses PMA_Error::getType()
+ * @uses PMA_Error::getMessage()
+ * @uses PMA_Error::displayBacktrace()
+ * @uses PMA_Error::isDisplayed()
+ */
+ public function display()
+ {
+ echo '<div class="' . $this->getLevel() . '">';
+ if (! $this->isUserError()) {
+ echo '<strong>' . $this->getType() . '</strong>';
+ echo ' in ' . $this->getFile() . '#' . $this->getLine();
+ echo "<br />\n";
+ }
+ echo $this->getMessage();
+ if (! $this->isUserError()) {
+ echo "<br />\n";
+ echo "<br />\n";
+ echo "<strong>Backtrace</strong><br />\n";
+ echo "<br />\n";
+ echo $this->displayBacktrace();
+ }
+ echo '</div>';
+ $this->isDisplayed(true);
+ }
+
+ /**
+ * whether this error is a user error
+ *
+ * @uses E_USER_WARNING
+ * @uses E_USER_ERROR
+ * @uses E_USER_NOTICE
+ * @uses PMA_Error::getNumber()
+ * @return boolean
+ */
+ public function isUserError()
+ {
+ return $this->getNumber() & (E_USER_WARNING | E_USER_ERROR | E_USER_NOTICE);
+ }
+
+ /**
+ * return short relative path to phpMyAdmin basedir
+ *
+ * prevent path disclusore in error message,
+ * and make users feel save to submit error reports
+ *
+ * @static
+ * @uses PHP_OS()
+ * @uses __FILE__()
+ * @uses realpath()
+ * @uses substr()
+ * @uses explode()
+ * @uses dirname()
+ * @uses implode()
+ * @uses count()
+ * @uses array_pop()
+ * @uses str_replace()
+ * @param string $dest path to be shorten
+ * @return string shortened path
+ */
+ static function relPath($dest)
+ {
+ $dest = realpath($dest);
+
+ if (substr(PHP_OS, 0, 3) == 'WIN') {
+ $path_separator = '\\';
+ } else {
+ $path_separator = '/';
+ }
+
+ $Ahere = explode($path_separator, realpath(dirname(__FILE__) . $path_separator . '..'));
+ $Adest = explode($path_separator, $dest);
+
+ $result = '.';
+ // && count ($Adest)>0 && count($Ahere)>0 )
+ while (implode($path_separator, $Adest) != implode($path_separator, $Ahere)) {
+ if (count($Ahere) > count($Adest)) {
+ array_pop($Ahere);
+ $result .= $path_separator . '..';
+ } else {
+ array_pop($Adest);
+ }
+ }
+ $path = $result . str_replace(implode($path_separator, $Adest), '', $dest);
+ return str_replace($path_separator . $path_separator, $path_separator, $path);
+ }
+}
+?>
diff --git a/libraries/Error_Handler.class.php b/libraries/Error_Handler.class.php
new file mode 100644
index 0000000000..4e4b2eab51
--- /dev/null
+++ b/libraries/Error_Handler.class.php
@@ -0,0 +1,401 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds class PMA_Error_Handler
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/Error.class.php';
+
+/**
+ * handling errors
+ *
+ */
+class PMA_Error_Handler
+{
+ /**
+ * holds errors to be displayed or reported later ...
+ *
+ * @var array of PMA_Error
+ */
+ protected $_errors = array();
+
+ /**
+ * Constructor - set PHP error handler
+ *
+ * @uses set_error_handler()
+ */
+ public function __construct()
+ {
+ set_error_handler(array($this, 'handleError'));
+ }
+
+ /**
+ * Destructor
+ *
+ * stores errors in session
+ *
+ * @uses $_SESSION['errors']
+ * @uses array_merge()
+ * @uses PMA_Error_Handler::$_errors
+ * @uses PMA_Error::isDisplayed()
+ */
+ public function __destruct()
+ {
+ if (isset($_SESSION)) {
+ if (! isset($_SESSION['errors'])) {
+ $_SESSION['errors'] = array();
+ }
+
+ if ($GLOBALS['cfg']['Error_Handler']['gather']) {
+ // remember all errors
+ $_SESSION['errors'] = array_merge($_SESSION['errors'], $this->_errors);
+ } else {
+ // remember only not displayed errors
+ foreach ($this->_errors as $key => $error) {
+ if (! $error->isDisplayed()) {
+ $_SESSION['errors'][$key] = $error;
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * returns array with all errors
+ *
+ * @uses PMA_Error_Handler::$_errors as return value
+ * @uses PMA_Error_Handler::_checkSavedErrors()
+ * @return array PMA_Error_Handler::$_errors
+ */
+ protected function getErrors()
+ {
+ $this->_checkSavedErrors();
+ return $this->_errors;
+ }
+
+ /**
+ * Error handler - called when errors are triggered/occured
+ *
+ * The following error types cannot be handled with a user defined function:
+ * E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR,
+ * E_COMPILE_WARNING,
+ * and most of E_STRICT raised in the file where set_error_handler() is called.
+ *
+ * @uses E_USER_NOTICE
+ * @uses E_USER_WARNING
+ * @uses E_STRICT
+ * @uses E_NOTICE
+ * @uses E_WARNING
+ * @uses E_CORE_WARNING
+ * @uses E_COMPILE_WARNING
+ * @uses E_USER_ERROR
+ * @uses E_ERROR
+ * @uses E_PARSE
+ * @uses E_CORE_ERROR
+ * @uses E_COMPILE_ERROR
+ * @uses E_RECOVERABLE_ERROR
+ * @uses PMA_Error
+ * @uses PMA_Error_Handler::$_errors
+ * @uses PMA_Error_Handler::_dispFatalError()
+ * @uses PMA_Error::getHash()
+ * @uses PMA_Error::getNumber()
+ * @param integer $errno
+ * @param string $errstr
+ * @param string $errfile
+ * @param integer $errline
+ * @param array $errcontext
+ */
+ public function handleError($errno, $errstr, $errfile, $errline, $errcontext)
+ {
+ // create error object
+ $error = new PMA_Error($errno, $errstr, $errfile, $errline, $errcontext);
+
+ // do not repeat errors
+ $this->_errors[$error->getHash()] = $error;
+
+ switch ($error->getNumber()) {
+ case E_USER_NOTICE:
+ case E_USER_WARNING:
+ case E_STRICT:
+ case E_NOTICE:
+ case E_WARNING:
+ case E_CORE_WARNING:
+ case E_COMPILE_WARNING:
+ case E_USER_ERROR:
+ case E_RECOVERABLE_ERROR:
+ // just collect the error
+ // display is called from outside
+ break;
+ case E_ERROR:
+ case E_PARSE:
+ case E_CORE_ERROR:
+ case E_COMPILE_ERROR:
+ default:
+ // FATAL error, dislay it and exit
+ $this->_dispFatalError($error);
+ exit;
+ break;
+ }
+ }
+
+ /**
+ * log error to configured log facility
+ *
+ * @todo finish!
+ * @uses PMA_Error::getMessage()
+ * @uses error_log()
+ * @param PMA_Error $error
+ */
+ protected function _logError($error)
+ {
+ return error_log($error->getMessage());
+ }
+
+ /**
+ * trigger a custom error
+ *
+ * @uses trigger_error()
+ * @param string $errorInfo
+ * @param integer $errorNumber
+ * @param string $file
+ * @param integer $line
+ */
+ public function triggerError($errorInfo, $errorNumber = null, $file = null, $line = null)
+ {
+ // we could also extract file and line from backtrace and call handleError() directly
+ trigger_error($errorInfo, $errorNumber);
+ }
+
+ /**
+ * display fatal error and exit
+ *
+ * @uses headers_sent()
+ * @uses PMA_Error::display()
+ * @uses PMA_Error_Handler::_dispPageStart()
+ * @uses PMA_Error_Handler::_dispPageEnd()
+ * @param PMA_Error $error
+ */
+ protected function _dispFatalError($error)
+ {
+ if (! headers_sent()) {
+ $this->_dispPageStart($error);
+ }
+ $error->display();
+ $this->_dispPageEnd();
+ exit;
+ }
+
+ /**
+ * display the whole error page with all errors
+ *
+ * @uses headers_sent()
+ * @uses PMA_Error_Handler::dispAllErrors()
+ * @uses PMA_Error_Handler::_dispPageStart()
+ * @uses PMA_Error_Handler::_dispPageEnd()
+ */
+ public function dispErrorPage()
+ {
+ if (! headers_sent()) {
+ $this->_dispPageStart();
+ }
+ $this->dispAllErrors();
+ $this->_dispPageEnd();
+ }
+
+ /**
+ * display user errors not displayed
+ *
+ * @uses PMA_Error_Handler::getErrors()
+ * @uses PMA_Error::isDisplayed()
+ * @uses PMA_Error::isUserError()
+ * @uses PMA_Error::display()
+ */
+ public function dispUserErrors()
+ {
+ foreach ($this->getErrors() as $error) {
+ if ($error->isUserError() && ! $error->isDisplayed()) {
+ $error->display();
+ }
+ }
+ }
+
+ /**
+ * display HTML header
+ *
+ * @uses PMA_Error::getTitle()
+ * @param PMA_error $error
+ */
+ protected function _dispPageStart($error = null)
+ {
+ echo '<html><head><title>';
+ if ($error) {
+ echo $error->getTitle();
+ } else {
+ echo 'phpMyAdmin error reporting page';
+ }
+ echo '</title></head>';
+ }
+
+ /**
+ * display HTML footer
+ *
+ */
+ protected function _dispPageEnd()
+ {
+ echo '</body></html>';
+ }
+
+ /**
+ * display all errors regardless already displayed or user errors
+ *
+ * @uses PMA_Error_Handler::getErrors()
+ * @uses PMA_Error::display()
+ */
+ public function dispAllErrors()
+ {
+ foreach ($this->getErrors() as $error) {
+ $error->display();
+ }
+ }
+
+ /**
+ * display errors not displayed
+ *
+ * @uses $cfg['Error_Handler']['display']
+ * @uses PMA_Error_Handler::getErrors()
+ * @uses PMA_Error_Handler::dispUserErrors()
+ * @uses PMA_Error::isDisplayed()
+ * @uses PMA_Error::display()
+ */
+ public function dispErrors()
+ {
+ if ($GLOBALS['cfg']['Error_Handler']['display']) {
+ foreach ($this->getErrors() as $error) {
+ if ($error instanceof PMA_Error) {
+ if (! $error->isDisplayed()) {
+ $error->display();
+ }
+ } else {
+ var_dump($error);
+ }
+ }
+ } else {
+ $this->dispUserErrors();
+ }
+ }
+
+ /**
+ * look in session for saved errors
+ *
+ * @uses $_SESSION['errors']
+ * @uses PMA_Error_Handler::$_errors
+ * @uses array_merge()
+ */
+ protected function _checkSavedErrors()
+ {
+ if (isset($_SESSION['errors'])) {
+
+ // restore saved errors
+ foreach ($_SESSION['errors'] as $hash => $error) {
+ if ($error instanceof PMA_Error && ! isset($this->_errors[$hash])) {
+ $this->_errors[$hash] = $error;
+ }
+ }
+ //$this->_errors = array_merge($_SESSION['errors'], $this->_errors);
+
+ // delet stored errors
+ $_SESSION['errors'] = array();
+ unset($_SESSION['errors']);
+ }
+ }
+
+ /**
+ * return count of errors
+ *
+ * @uses PMA_Error_Handler::getErrors()
+ * @uses count()
+ * @return integer number of errors occoured
+ */
+ public function countErrors()
+ {
+ return count($this->getErrors());
+ }
+
+ /**
+ * return count of user errors
+ *
+ * @uses PMA_Error_Handler::countErrors()
+ * @uses PMA_Error_Handler::getErrors()
+ * @uses PMA_Error::isUserError()
+ * @return integer number of user errors occoured
+ */
+ public function countUserErrors()
+ {
+ $count = 0;
+ if ($this->countErrors()) {
+ foreach ($this->getErrors() as $error) {
+ if ($error->isUserError()) {
+ $count++;
+ }
+ }
+ }
+
+ return $count;
+ }
+
+ /**
+ * whether use errors occured or not
+ *
+ * @uses PMA_Error_Handler::countUserErrors()
+ * @return boolean
+ */
+ public function hasUserErrors()
+ {
+ return (bool) $this->countUserErrors();
+ }
+
+ /**
+ * whether errors occured or not
+ *
+ * @uses PMA_Error_Handler::countErrors()
+ * @return boolean
+ */
+ public function hasErrors()
+ {
+ return (bool) $this->countErrors();
+ }
+
+ /**
+ * number of errors to be displayed
+ *
+ * @uses $cfg['Error_Handler']['display']
+ * @uses PMA_Error_Handler::countErrors()
+ * @uses PMA_Error_Handler::countUserErrors()
+ * @return integer number of errors to be displayed
+ */
+ public function countDisplayErrors()
+ {
+ if ($GLOBALS['cfg']['Error_Handler']['display']) {
+ return $this->countErrors();
+ } else {
+ return $this->countUserErrors();
+ }
+ }
+
+ /**
+ * whether there are errors to display or not
+ *
+ * @uses PMA_Error_Handler::countDisplayErrors()
+ * @return boolean
+ */
+ public function hasDisplayErrors()
+ {
+ return (bool) $this->countDisplayErrors();
+ }
+}
+?>
diff --git a/libraries/File.class.php b/libraries/File.class.php
new file mode 100644
index 0000000000..5350f85b23
--- /dev/null
+++ b/libraries/File.class.php
@@ -0,0 +1,1256 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * file upload functions
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ * @todo replace error messages with localized string
+ * @todo when uploading a file into a blob field, should we also consider using
+ * chunks like in import? UPDATE `table` SET `field` = `field` + [chunk]
+ */
+
+class PMA_File
+{
+ /**
+ * @var string the temporary file name
+ * @access protected
+ */
+ var $_name = null;
+
+ /**
+ * @var string the content
+ * @access protected
+ */
+ var $_content = null;
+
+ /**
+ * @var string the error message
+ * @access protected
+ */
+ var $_error_message = '';
+
+ /**
+ * @var bool whether the file is temporary or not
+ * @access protected
+ */
+ var $_is_temp = false;
+
+ /**
+ * @var string type of compression
+ * @access protected
+ */
+ var $_compression = null;
+
+ /**
+ * @var integer
+ */
+ var $_offset = 0;
+
+ /**
+ * @var integer size of chunk to read with every step
+ */
+ var $_chunk_size = 32768;
+
+ /**
+ * @var resource file handle
+ */
+ var $_handle = null;
+
+ /**
+ * @var boolean whether to decompress content before returning
+ */
+ var $_decompress = false;
+
+ /**
+ * @var string charset of file
+ */
+ var $_charset = null;
+
+ /**
+ * @staticvar string most recent BLOB repository reference
+ */
+ static $_recent_bs_reference = NULL;
+
+ /**
+ * constructor
+ *
+ * @access public
+ * @uses PMA_File::setName()
+ * @param string $name file name
+ */
+ function __construct($name = false)
+ {
+ if ($name) {
+ $this->setName($name);
+ }
+ }
+
+ /**
+ * destructor
+ *
+ * @see PMA_File::cleanUp()
+ * @access public
+ * @uses PMA_File::cleanUp()
+ */
+ function __destruct()
+ {
+ $this->cleanUp();
+ }
+
+ /**
+ * deletes file if it is temporary, usally from a moved upload file
+ *
+ * @access public
+ * @uses PMA_File::delet()
+ * @uses PMA_File::isTemp()
+ * @return boolean success
+ */
+ function cleanUp()
+ {
+ if ($this->isTemp()) {
+ return $this->delete();
+ }
+
+ return true;
+ }
+
+ /**
+ * deletes the file
+ *
+ * @access public
+ * @uses PMA_File::getName()
+ * @uses unlink()
+ * @return boolean success
+ */
+ function delete()
+ {
+ return unlink($this->getName());
+ }
+
+ /**
+ * checks or sets the temp flag for this file
+ * file objects with temp flags are deleted with object destruction
+ *
+ * @access public
+ * @uses PMA_File::$_is_temp to set and read it
+ * @param boolean sets the temp flag
+ * @return boolean PMA_File::$_is_temp
+ */
+ function isTemp($is_temp = null)
+ {
+ if (null !== $is_temp) {
+ $this->_is_temp = (bool) $is_temp;
+ }
+
+ return $this->_is_temp;
+ }
+
+ /**
+ * accessor
+ *
+ * @access public
+ * @uses PMA_File::$_name
+ * @param string $name file name
+ * @access public
+ */
+ function setName($name)
+ {
+ $this->_name = trim($name);
+ }
+
+ /**
+ * @access public
+ * @uses PMA_File::getName()
+ * @uses PMA_File::isUploaded()
+ * @uses PMA_File::checkUploadedFile()
+ * @uses PMA_File::isReadable()
+ * @uses PMA_File::$_content
+ * @uses function_exists()
+ * @uses file_get_contents()
+ * @uses filesize()
+ * @uses fread()
+ * @uses fopen()
+ * @uses bin2hex()
+ * @return string binary file content
+ */
+ function getContent($as_binary = true, $offset = 0, $length = null)
+ {
+ if (null === $this->_content) {
+ if ($this->isUploaded() && ! $this->checkUploadedFile()) {
+ return false;
+ }
+
+ if (! $this->isReadable()) {
+ return false;
+ }
+
+ if (function_exists('file_get_contents')) {
+ $this->_content = file_get_contents($this->getName());
+ } elseif ($size = filesize($this->getName())) {
+ $this->_content = fread(fopen($this->getName(), 'rb'), $size);
+ }
+ }
+
+ if (! empty($this->_content) && $as_binary) {
+ return '0x' . bin2hex($this->_content);
+ }
+
+ if (null !== $length) {
+ return substr($this->_content, $offset, $length);
+ } elseif ($offset > 0) {
+ return substr($this->_content, $offset);
+ }
+
+ return $this->_content;
+ }
+
+ /**
+ * @access public
+ * @uses PMA_File::getName()
+ * @uses is_uploaded_file()
+ */
+ function isUploaded()
+ {
+ return is_uploaded_file($this->getName());
+ }
+
+ /**
+ * accessor
+ *
+ * @access public
+ * @uses PMA_File::$name as return value
+ * @return string PMA_File::$_name
+ */
+ function getName()
+ {
+ return $this->_name;
+ }
+
+ /**
+ * @todo replace error message with localized string
+ * @access public
+ * @uses PMA_File::isUploaded()
+ * @uses PMA_File::setName()
+ * @uses PMA_File::$_error_message
+ * @param string name of file uploaded
+ * @return boolean success
+ */
+ function setUploadedFile($name)
+ {
+ $this->setName($name);
+
+ if (! $this->isUploaded()) {
+ $this->setName(null);
+ $this->_error_message = 'not an uploaded file';
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * @access public
+ * @uses PMA_File::fetchUploadedFromTblChangeRequestMultiple()
+ * @uses PMA_File::setUploadedFile()
+ * @uses PMA_File::setRecentBLOBReference()
+ * @uses curl_setopt_array()
+ * @uses PMA_File::$_error_message
+ * @uses $GLOBALS['strUploadErrorIniSize']
+ * @uses $GLOBALS['strUploadErrorFormSize']
+ * @uses $GLOBALS['strUploadErrorPartial']
+ * @uses $GLOBALS['strUploadErrorNoTempDir']
+ * @uses $GLOBALS['strUploadErrorCantWrite']
+ * @uses $GLOBALS['strUploadErrorExtension']
+ * @uses $GLOBALS['strUploadErrorUnknown']
+ * @uses $_FILES
+ * @param string $key a numeric key used to identify the different rows
+ * @param string $primary_key
+ * @return boolean success
+ */
+ function setUploadedFromTblChangeRequest($key, $primary = null)
+ {
+ if (! isset($_FILES['fields_upload_' . $key])) {
+ return false;
+ }
+
+ $file = $_FILES['fields_upload_' . $key];
+
+ if (null !== $primary) {
+ $file = PMA_File::fetchUploadedFromTblChangeRequestMultiple($file, $primary);
+ }
+
+ // rajk - for blobstreaming
+ $is_bs_upload = FALSE;
+
+ // check if this field requires a repository upload
+ if (isset($_REQUEST['upload_blob_repo_' . $key]))
+ $is_bs_upload = ($_REQUEST['upload_blob_repo_' . $key]['multi_edit'][0] == "on") ? TRUE : FALSE;
+
+ // if request is an upload to the BLOB repository
+ if ($is_bs_upload)
+ {
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if PMA configuration is loaded
+ if (!empty($PMA_Config))
+ {
+ // load BS variables from PMA configuration
+ $pluginsExist = $PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST');
+ $curlExists = $PMA_Config->get('CURL_EXISTS');
+ $bs_database = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+ $bs_database = $bs_database[$_REQUEST['db']];
+
+ $allBSTablesExist = TRUE;
+
+ // determine if plugins and curl exist
+ if ($pluginsExist && $curlExists)
+ {
+ foreach ($bs_database as $table_key=>$table)
+ {
+ if (!$bs_database[$table_key]['Exists'])
+ {
+ $allBSTablesExist = FALSE;
+ break;
+ }
+ }
+ }
+ else
+ $allBSTablesExist = FALSE;
+
+ // if necessary BS tables exist
+ if ($allBSTablesExist)
+ {
+ // setup bs variables for uploading
+ $bs_server = $PMA_Config->get('BLOBSTREAMING_SERVER');
+ $bs_db = $_REQUEST['db'];
+ $bs_table = $_REQUEST['table'];
+
+ // setup file handle and related variables
+ $tmp_file = fopen($file['tmp_name'], 'r');
+ $tmp_file_type = $file['type'];
+ $tmp_file_size = $file['size'];
+
+ if (!$tmp_file_type)
+ $tmp_file_type = NULL;
+
+ // if none of the required variables contain data, return with an unknown error message
+ if (!$bs_server || !$bs_db || !$bs_table || !$tmp_file || !$tmp_file_size)
+ {
+ $this->_error_message = $GLOBALS['strUploadErrorUnknown'];
+ return FALSE;
+ }
+ else
+ $bs_server_path = 'http://' . $bs_server . '/' . $bs_db . '/' . $bs_table;
+
+ // init curl handle
+ $curlHnd = curl_init ($bs_server_path);
+
+ // if curl handle init successful
+ if ($curlHnd)
+ {
+ // specify custom header
+ $customHeader = array(
+ "Accept-Language: en-us;en;q=0;5",
+ "Accept-Charset: ISO-8859-1;utf-8;q=0.7,*;q=0.7",
+ "Content-type: $tmp_file_type"
+ );
+
+ // specify CURL options in array
+ $curlOptArr = array(
+ CURLOPT_PUT => TRUE,
+ CURLOPT_HEADER => TRUE,
+ CURLOPT_HTTPHEADER => $customHeader,
+ CURLOPT_INFILESIZE => $tmp_file_size,
+ CURLOPT_INFILE => $tmp_file,
+ CURLOPT_RETURNTRANSFER => TRUE
+ );
+
+ // pass array of options to curl handle setup function
+ curl_setopt_array($curlHnd, $curlOptArr);
+
+ // execute curl request and retrieve error message(s) (if any)
+ $ret = curl_exec($curlHnd);
+ $errRet = curl_error($curlHnd);
+
+ // close curl handle
+ curl_close($curlHnd);
+
+ // split entire string into array of lines
+ $retArr = explode("\r\n", $ret);
+
+ // check each line as a valid string of a BLOB reference
+ foreach ($retArr as $value)
+ if (strlen($value) > strlen("~*$bs_db/~") && "~*$bs_db/~" == substr($value, 0, strlen($bs_db) + 4))
+ {
+ // is a valid reference, so set as current and break
+ PMA_File::setRecentBLOBReference($value);
+ break;
+ }
+
+ // close file handle
+ if ($tmp_file)
+ fclose($tmp_file);
+ } // end if ($curlHnd)
+ } // end if ($allBSTablesExist)
+ } // end if ($PMA_Config)
+ } // end if ($is_bs_upload)
+
+ // check for file upload errors
+ switch ($file['error']) {
+ // cybot_tm: we do not use the PHP constants here cause not all constants
+ // are defined in all versions of PHP - but the correct constants names
+ // are given as comment
+ case 0: //UPLOAD_ERR_OK:
+ return $this->setUploadedFile($file['tmp_name']);
+ break;
+ case 4: //UPLOAD_ERR_NO_FILE:
+ break;
+ case 1: //UPLOAD_ERR_INI_SIZE:
+ $this->_error_message = $GLOBALS['strUploadErrorIniSize'];
+ break;
+ case 2: //UPLOAD_ERR_FORM_SIZE:
+ $this->_error_message = $GLOBALS['strUploadErrorFormSize'];
+ break;
+ case 3: //UPLOAD_ERR_PARTIAL:
+ $this->_error_message = $GLOBALS['strUploadErrorPartial'];
+ break;
+ case 6: //UPLOAD_ERR_NO_TMP_DIR:
+ $this->_error_message = $GLOBALS['strUploadErrorNoTempDir'];
+ break;
+ case 7: //UPLOAD_ERR_CANT_WRITE:
+ $this->_error_message = $GLOBALS['strUploadErrorCantWrite'];
+ break;
+ case 8: //UPLOAD_ERR_EXTENSION:
+ $this->_error_message = $GLOBALS['strUploadErrorExtension'];
+ break;
+ default:
+ $this->_error_message = $GLOBALS['strUploadErrorUnknown'];
+ } // end switch
+
+ return false;
+ }
+
+ /**
+ * strips some dimension from the multi-dimensional array from $_FILES
+ *
+ * <code>
+ * $file['name']['multi_edit'][$primary] = [value]
+ * $file['type']['multi_edit'][$primary] = [value]
+ * $file['size']['multi_edit'][$primary] = [value]
+ * $file['tmp_name']['multi_edit'][$primary] = [value]
+ * $file['error']['multi_edit'][$primary] = [value]
+ *
+ * // becomes:
+ *
+ * $file['name'] = [value]
+ * $file['type'] = [value]
+ * $file['size'] = [value]
+ * $file['tmp_name'] = [value]
+ * $file['error'] = [value]
+ * </code>
+ *
+ * @todo re-check if requirements changes to PHP >= 4.2.0
+ * @access public
+ * @static
+ * @param array $file the array
+ * @param string $primary
+ * @return array
+ */
+ function fetchUploadedFromTblChangeRequestMultiple($file, $primary)
+ {
+ $new_file = array(
+ 'name' => $file['name']['multi_edit'][$primary],
+ 'type' => $file['type']['multi_edit'][$primary],
+ 'size' => $file['size']['multi_edit'][$primary],
+ 'tmp_name' => $file['tmp_name']['multi_edit'][$primary],
+ 'error' => $file['error']['multi_edit'][$primary],
+ );
+
+ return $new_file;
+ }
+
+ /**
+ * sets the name if the file to the one selected in the tbl_change form
+ *
+ * @access public
+ * @uses $_REQUEST
+ * @uses PMA_File::setLocalSelectedFile()
+ * @uses is_string()
+ * @param string $key a numeric key used to identify the different rows
+ * @param string $primary_key
+ * @return boolean success
+ */
+ function setSelectedFromTblChangeRequest($key, $primary = null)
+ {
+ if (null !== $primary) {
+ if (! empty($_REQUEST['fields_uploadlocal_' . $key]['multi_edit'][$primary])
+ && is_string($_REQUEST['fields_uploadlocal_' . $key]['multi_edit'][$primary])) {
+ // ... whether with multiple rows ...
+ // rajk - for blobstreaming
+ $is_bs_upload = FALSE;
+
+ // check if this field requires a repository upload
+ if (isset($_REQUEST['upload_blob_repo_' . $key]))
+ $is_bs_upload = ($_REQUEST['upload_blob_repo_' . $key]['multi_edit'][0] == "on") ? TRUE : FALSE;
+
+ // is a request to upload file to BLOB repository using uploadDir mechanism
+ if ($is_bs_upload)
+ {
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if the PMA configuration was loaded
+ if (!empty($PMA_Config))
+ {
+ // load BS variables from PMA configuration
+ $pluginsExist = $PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST');
+ $curlExists = $PMA_Config->get('CURL_EXISTS');
+ $bs_database = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+ $bs_database = $bs_database[$_REQUEST['db']];
+
+ $allBSTablesExist = TRUE;
+
+ // if plugins and curl exist
+ if ($pluginsExist && $curlExists)
+ {
+ foreach ($bs_database as $table_key=>$table)
+ {
+ if (!$bs_database[$table_key]['Exists'])
+ {
+ $allBSTablesExist = FALSE;
+ break;
+ }
+ }
+ }
+ else
+ $allBSTablesExist = FALSE;
+
+ // if necessary BS tables exist
+ if ($allBSTablesExist)
+ {
+ // load BS variables
+ $bs_server = $PMA_Config->get('BLOBSTREAMING_SERVER');
+ $bs_db = $_REQUEST['db'];
+ $bs_table = $_REQUEST['table'];
+
+ // setup uploadDir mechanism and file variables
+ $tmp_filename = $GLOBALS['cfg']['UploadDir'] . '/' . $_REQUEST['fields_uploadlocal_' . $key]['multi_edit'][$primary];
+ $tmp_file = fopen($tmp_filename, 'r');
+ $tmp_file_size = filesize($tmp_filename);
+
+ // check if fileinfo library exists
+ if ($PMA_Config->get('FILEINFO_EXISTS'))
+ {
+ // attempt to init fileinfo
+ $finfo = finfo_open(FILEINFO_MIME);
+
+ // fileinfo exists
+ if ($finfo)
+ {
+ // pass in filename to fileinfo and close fileinfo handle after
+ $tmp_file_type = finfo_file($finfo, $tmp_filename);
+ finfo_close($finfo);
+ }
+ }
+ else // no fileinfo library exists, use file command
+ $tmp_file_type = exec("file -bi " . escapeshellarg($tmp_filename));
+
+ if (!$tmp_file_type)
+ $tmp_file_type = NULL;
+
+ // necessary variables aren't loaded, return error message (unknown error)
+ if (!$bs_server || !$bs_db || !$bs_table || !$tmp_file || !$tmp_file_size)
+ {
+ $this->_error_message = $GLOBALS['strUploadErrorUnknown'];
+ return FALSE;
+ }
+ else
+ $bs_server_path = 'http://' . $bs_server . '/' . $bs_db . '/' . $bs_table;
+
+ // init curl handle
+ $curlHnd = curl_init ($bs_server_path);
+
+ // curl handle exists
+ if ($curlHnd)
+ {
+ // specify custom header
+ $customHeader = array(
+ "Accept-Language: en-us;en;q=0;5",
+ "Accept-Charset: ISO-8859-1;utf-8;q=0.7,*;q=0.7",
+ "Content-type: $tmp_file_type"
+ );
+
+ // specify custom curl options
+ $curlOptArr = array(
+ CURLOPT_PUT => TRUE,
+ CURLOPT_HEADER => TRUE,
+ CURLOPT_HTTPHEADER => $customHeader,
+ CURLOPT_INFILESIZE => $tmp_file_size,
+ CURLOPT_INFILE => $tmp_file,
+ CURLOPT_RETURNTRANSFER => TRUE
+ );
+
+ // setup custom curl options (as specified in above array)
+ curl_setopt_array($curlHnd, $curlOptArr);
+
+ // execute curl request and retrieve error message(s) (if any)
+ $ret = curl_exec($curlHnd);
+ $errRet = curl_error($curlHnd);
+
+ // close curl handle
+ curl_close($curlHnd);
+
+ // split return string into lines
+ $retArr = explode("\r\n", $ret);
+
+ // check subsequent lines for valid BLOB reference string
+ foreach ($retArr as $value)
+ if (strlen($value) > strlen("~*$bs_db/~") && "~*$bs_db/~" == substr($value, 0, strlen($bs_db) + 4))
+ {
+ // is a valid reference, so set as current and break
+ PMA_File::setRecentBLOBReference($value);
+ break;
+ }
+
+ // close file handle
+ if ($tmp_file)
+ fclose($tmp_file);
+ } // end if ($curlHnd)
+ } // end if ($allBSTablesExist)
+ } // end if ($PMA_Config)
+ } // end if ($is_bs_upload)
+
+ return $this->setLocalSelectedFile($_REQUEST['fields_uploadlocal_' . $key]['multi_edit'][$primary]);
+ } else {
+ return false;
+ }
+ } elseif (! empty($_REQUEST['fields_uploadlocal_' . $key])
+ && is_string($_REQUEST['fields_uploadlocal_' . $key])) {
+ // rajk - for blobstreaming
+ $is_bs_upload = FALSE;
+
+ // check if this field requires a repository upload
+ if (isset($_REQUEST['upload_blob_repo_' . $key]))
+ $is_bs_upload = ($_REQUEST['upload_blob_repo_' . $key]['multi_edit'][0] == "on") ? TRUE : FALSE;
+
+ // is a request to upload file to BLOB repository using uploadDir mechanism
+ if ($is_bs_upload)
+ {
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if the PMA configuration was loaded
+ if (!empty($PMA_Config))
+ {
+ // load BS variables from PMA configuration
+ $pluginsExist = $PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST');
+ $curlExists = $PMA_Config->get('CURL_EXISTS');
+ $bs_database = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+ $bs_database = $bs_database[$_REQUEST['db']];
+
+ $allBSTablesExist = TRUE;
+
+ // if plugins and curl exist
+ if ($pluginsExist && $curlExists)
+ {
+ foreach ($bs_database as $table_key=>$table)
+ {
+ if (!$bs_database[$table_key]['Exists'])
+ {
+ $allBSTablesExist = FALSE;
+ break;
+ }
+ }
+ }
+ else
+ $allBSTablesExist = FALSE;
+
+ if ($allBSTablesExist)
+ {
+ // load BS variables
+ $bs_server = $PMA_Config->get('BLOBSTREAMING_SERVER');
+ $bs_db = $_REQUEST['db'];
+ $bs_table = $_REQUEST['table'];
+
+ // setup uploadDir mechanism and file variables
+ $tmp_filename = $GLOBALS['cfg']['UploadDir'] . '/' . $_REQUEST['fields_uploadlocal_' . $key]['multi_edit'][$primary];
+ $tmp_file = fopen($tmp_filename, 'r');
+ $tmp_file_size = filesize($tmp_filename);
+
+ // check if fileinfo library exists
+ if ($PMA_Config->get('FILEINFO_EXISTS'))
+ {
+ // attempt to init fileinfo
+ $finfo = finfo_open(FILEINFO_MIME);
+
+ // if fileinfo exists
+ if ($finfo)
+ {
+ // pass in filename to fileinfo and close fileinfo handle after
+ $tmp_file_type = finfo_file($finfo, $tmp_filename);
+ finfo_close($finfo);
+ }
+ }
+ else // no fileinfo library exists, use file command
+ $tmp_file_type = exec("file -bi " . escapeshellarg($tmp_filename));
+
+ if (!$tmp_file_type)
+ $tmp_file_type = NULL;
+
+ // necessary variables aren't loaded, return error message (unknown error)
+ if (!$bs_server || !$bs_db || !$bs_table || !$tmp_file || !$tmp_file_size)
+ {
+ $this->_error_message = $GLOBALS['strUploadErrorUnknown'];
+ return FALSE;
+ }
+ else
+ $bs_server_path = 'http://' . $bs_server . '/' . $bs_db . '/' . $bs_table;
+
+ // init curl handle
+ $curlHnd = curl_init ($bs_server_path);
+
+ // if curl handle exists
+ if ($curlHnd)
+ {
+ // specify custom header
+ $customHeader = array(
+ "Accept-Language: en-us;en;q=0;5",
+ "Accept-Charset: ISO-8859-1;utf-8;q=0.7,*;q=0.7",
+ "Content-type: $tmp_file_type"
+ );
+
+ // specify custom curl options
+ $curlOptArr = array(
+ CURLOPT_PUT => TRUE,
+ CURLOPT_HEADER => TRUE,
+ CURLOPT_HTTPHEADER => $customHeader,
+ CURLOPT_INFILESIZE => $tmp_file_size,
+ CURLOPT_INFILE => $tmp_file,
+ CURLOPT_RETURNTRANSFER => TRUE
+ );
+
+ // setup custom curl options (as specified in above array)
+ curl_setopt_array($curlHnd, $curlOptArr);
+
+ // execute curl request and retrieve error message(s) (if any)
+ $ret = curl_exec($curlHnd);
+ $errRet = curl_error($curlHnd);
+
+ // close curl handle
+ curl_close($curlHnd);
+
+ // split return string into lines
+ $retArr = explode("\r\n", $ret);
+
+ // check subsequent lines for valid BLOB reference string
+ foreach ($retArr as $value)
+ if (strlen($value) > strlen("~*$bs_db/~") && "~*$bs_db/~" == substr($value, 0, strlen($bs_db) + 4))
+ {
+ // is a valid reference, so set as current and break
+ PMA_File::setRecentBLOBReference($value);
+ break;
+ }
+
+ // close file handle
+ if ($tmp_file)
+ fclose($tmp_file);
+ } // end if ($curlHnd)
+ } // end if ($allBSTablesExist)
+ } // end if ($PMA_Config)
+ } // end if ($is_bs_upload)
+
+ return $this->setLocalSelectedFile($_REQUEST['fields_uploadlocal_' . $key]);
+ }
+
+ return false;
+ }
+
+ /**
+ * @access public
+ * @uses PMA_File->$_error_message as return value
+ * @return string error message
+ */
+ function getError()
+ {
+ return $this->_error_message;
+ }
+
+ /**
+ * @access public
+ * @uses PMA_File->$_error_message to check it
+ * @return boolean whether an error occured or not
+ */
+ function isError()
+ {
+ return ! empty($this->_error_message);
+ }
+
+ /**
+ * checks the superglobals provided if the tbl_change form is submitted
+ * and uses the submitted/selected file
+ *
+ * @access public
+ * @uses PMA_File::setUploadedFromTblChangeRequest()
+ * @uses PMA_File::setSelectedFromTblChangeRequest()
+ * @param string $key a numeric key used to identify the different rows
+ * @param string $primary_key
+ * @return boolean success
+ */
+ function checkTblChangeForm($key, $primary_key)
+ {
+ if ($this->setUploadedFromTblChangeRequest($key, $primary_key)) {
+ // well done ...
+ $this->_error_message = '';
+ return true;
+/*
+ } elseif ($this->setUploadedFromTblChangeRequest($key)) {
+ // well done ...
+ $this->_error_message = '';
+ return true;
+*/
+ } elseif ($this->setSelectedFromTblChangeRequest($key, $primary_key)) {
+ // well done ...
+ $this->_error_message = '';
+ return true;
+/*
+ } elseif ($this->setSelectedFromTblChangeRequest($key)) {
+ // well done ...
+ $this->_error_message = '';
+ return true;
+*/
+ }
+ // all failed, whether just no file uploaded/selected or an error
+
+ return false;
+ }
+
+ /**
+ *
+ * @access public
+ * @uses $GLOBALS['strFileCouldNotBeRead']
+ * @uses PMA_File::setName()
+ * @uses PMA_securePath()
+ * @uses PMA_userDir()
+ * @uses $GLOBALS['cfg']['UploadDir']
+ * @param string $name
+ * @return boolean success
+ */
+ function setLocalSelectedFile($name)
+ {
+ if (empty($GLOBALS['cfg']['UploadDir'])) return false;
+
+ $this->setName(PMA_userDir($GLOBALS['cfg']['UploadDir']) . PMA_securePath($name));
+ if (! $this->isReadable()) {
+ $this->_error_message = $GLOBALS['strFileCouldNotBeRead'];
+ $this->setName(null);
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * @access public
+ * @uses PMA_File::getName()
+ * @uses is_readable()
+ * @uses ob_start()
+ * @uses ob_end_clean()
+ * @return boolean whether the file is readable or not
+ */
+ function isReadable()
+ {
+ // suppress warnings from being displayed, but not from being logged
+ // any file access outside of open_basedir will issue a warning
+ ob_start();
+ $is_readable = is_readable($this->getName());
+ ob_end_clean();
+ return $is_readable;
+ }
+
+ /**
+ * If we are on a server with open_basedir, we must move the file
+ * before opening it. The FAQ 1.11 explains how to create the "./tmp"
+ * directory - if needed
+ *
+ * @todo replace error message with localized string
+ * @todo move check of $cfg['TempDir'] into PMA_Config?
+ * @access public
+ * @uses $cfg['TempDir']
+ * @uses $GLOBALS['strFieldInsertFromFileTempDirNotExists']
+ * @uses PMA_File::isReadable()
+ * @uses PMA_File::getName()
+ * @uses PMA_File::setName()
+ * @uses PMA_File::isTemp()
+ * @uses PMA_File::$_error_message
+ * @uses is_dir()
+ * @uses mkdir()
+ * @uses chmod()
+ * @uses is_writable()
+ * @uses basename()
+ * @uses move_uploaded_file()
+ * @uses ob_start()
+ * @uses ob_end_clean()
+ * @return boolean whether uploaded fiel is fine or not
+ */
+ function checkUploadedFile()
+ {
+ if ($this->isReadable()) {
+ return true;
+ }
+
+ if (empty($GLOBALS['cfg']['TempDir']) || ! is_writable($GLOBALS['cfg']['TempDir'])) {
+ // cannot create directory or access, point user to FAQ 1.11
+ $this->_error_message = $GLOBALS['strFieldInsertFromFileTempDirNotExists'];
+ return false;
+ }
+
+ $new_file_to_upload = tempnam(realpath($GLOBALS['cfg']['TempDir']), basename($this->getName()));
+
+ // suppress warnings from being displayed, but not from being logged
+ // any file access outside of open_basedir will issue a warning
+ ob_start();
+ $move_uploaded_file_result = move_uploaded_file($this->getName(), $new_file_to_upload);
+ ob_end_clean();
+ if (! $move_uploaded_file_result) {
+ $this->_error_message = 'error while moving uploaded file';
+ return false;
+ }
+
+ $this->setName($new_file_to_upload);
+ $this->isTemp(true);
+
+ if (! $this->isReadable()) {
+ $this->_error_message = 'cannot read (moved) upload file';
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Detects what compression filse uses
+ *
+ * @todo move file read part into readChunk() or getChunk()
+ * @todo add support for compression plugins
+ * @uses $GLOBALS['strFileCouldNotBeRead']
+ * @uses PMA_File::$_compression to set it
+ * @uses PMA_File::getName()
+ * @uses fopen()
+ * @uses fread()
+ * @uses strlen()
+ * @uses fclose()
+ * @uses chr()
+ * @uses substr()
+ * @access protected
+ * @return string MIME type of compression, none for none
+ */
+ function _detectCompression()
+ {
+ // suppress warnings from being displayed, but not from being logged
+ // f.e. any file access outside of open_basedir will issue a warning
+ ob_start();
+ $file = fopen($this->getName(), 'rb');
+ ob_end_clean();
+
+ if (! $file) {
+ $this->_error_message = $GLOBALS['strFileCouldNotBeRead'];
+ return false;
+ }
+
+ /**
+ * @todo
+ * get registered plugins for file compression
+
+ foreach (PMA_getPlugins($type = 'compression') as $plugin) {
+ if (call_user_func_array(array($plugin['classname'], 'canHandle'), array($this->getName()))) {
+ $this->setCompressionPlugin($plugin);
+ break;
+ }
+ }
+ */
+
+ $test = fread($file, 4);
+ $len = strlen($test);
+ fclose($file);
+
+ if ($len >= 2 && $test[0] == chr(31) && $test[1] == chr(139)) {
+ $this->_compression = 'application/gzip';
+ } elseif ($len >= 3 && substr($test, 0, 3) == 'BZh') {
+ $this->_compression = 'application/bzip2';
+ } elseif ($len >= 4 && $test == "PK\003\004") {
+ $this->_compression = 'application/zip';
+ } else {
+ $this->_compression = 'none';
+ }
+
+ return $this->_compression;
+ }
+
+ /**
+ * whether the content should be decompressed before returned
+ */
+ function setDecompressContent($decompress)
+ {
+ $this->_decompress = (bool) $decompress;
+ }
+
+ function getHandle()
+ {
+ if (null === $this->_handle) {
+ $this->open();
+ }
+ return $this->_handle;
+ }
+
+ function setHandle($handle)
+ {
+ $this->_handle = $handle;
+ }
+
+ /**
+ *
+ */
+ function open()
+ {
+ if (! $this->_decompress) {
+ $this->_handle = @fopen($this->getName(), 'r');
+ }
+
+ switch ($this->getCompression()) {
+ case false:
+ return false;
+ case 'application/bzip2':
+ if ($GLOBALS['cfg']['BZipDump'] && @function_exists('bzopen')) {
+ $this->_handle = @bzopen($this->getName(), 'r');
+ } else {
+ $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());
+ return false;
+ }
+ break;
+ case 'application/gzip':
+ if ($GLOBALS['cfg']['GZipDump'] && @function_exists('gzopen')) {
+ $this->_handle = @gzopen($this->getName(), 'r');
+ } else {
+ $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());
+ return false;
+ }
+ break;
+ case 'application/zip':
+ if ($GLOBALS['cfg']['ZipDump'] && @function_exists('zip_open')) {
+ include_once './libraries/zip_extension.lib.php';
+ $result = PMA_getZipContents($this->getName());
+ if (! empty($result['error'])) {
+ $this->_error_message = PMA_Message::rawError($result['error']);
+ return false;
+ } else {
+ $this->content_uncompressed = $result['data'];
+ }
+ unset($result);
+ } else {
+ $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());
+ return false;
+ }
+ break;
+ case 'none':
+ $this->_handle = @fopen($this->getName(), 'r');
+ break;
+ default:
+ $this->_error_message = sprintf($GLOBALS['strUnsupportedCompressionDetected'], $this->getCompression());
+ return false;
+ break;
+ }
+
+
+ }
+
+ function getCharset()
+ {
+ return $this->_charset;
+ }
+
+ function setCharset($charset)
+ {
+ $this->_charset = $charset;
+ }
+
+ /**
+ * @uses PMA_File::$_compression as return value
+ * @uses PMA_File::detectCompression()
+ * @return string MIME type of compression, none for none
+ * @access public
+ */
+ function getCompression()
+ {
+ if (null === $this->_compression) {
+ return $this->_detectCompression();
+ }
+
+ return $this->_compression;
+ }
+
+ /**
+ * advances the file pointer in the file handle by $length bytes/chars
+ *
+ * @param integer $length numbers of chars/bytes to skip
+ * @return boolean
+ * @todo this function is unused
+ */
+ function advanceFilePointer($length)
+ {
+ while ($length > 0) {
+ // Disable read progresivity, otherwise we eat all memory!
+ $read_multiply = 1; // required?
+ $this->getNextChunk($length);
+ $length -= $this->getChunkSize();
+ }
+ }
+
+ /**
+ * http://bugs.php.net/bug.php?id=29532
+ * bzip reads a maximum of 8192 bytes on windows systems
+ * @todo this function is unused
+ */
+ function getNextChunk($max_size = null)
+ {
+ if (null !== $max_size) {
+ $size = min($max_size, $this->getChunkSize());
+ } else {
+ $size = $this->getChunkSize();
+ }
+
+ // $result = $this->handler->getNextChunk($size);
+ $result = '';
+ switch ($this->getCompression()) {
+ case 'application/bzip2':
+ $result = '';
+ while (strlen($result) < $size - 8192 && ! feof($this->getHandle())) {
+ $result .= bzread($this->getHandle(), $size);
+ }
+ break;
+ case 'application/gzip':
+ $result = gzread($this->getHandle(), $size);
+ break;
+ case 'application/zip':
+ /*
+ * if getNextChunk() is used some day,
+ * replace this code by code similar to the one
+ * in open()
+ *
+ include_once './libraries/unzip.lib.php';
+ $import_handle = new SimpleUnzip();
+ $import_handle->ReadFile($this->getName());
+ if ($import_handle->Count() == 0) {
+ $this->_error_message = $GLOBALS['strNoFilesFoundInZip'];
+ return false;
+ } elseif ($import_handle->GetError(0) != 0) {
+ $this->_error_message = $GLOBALS['strErrorInZipFile']
+ . ' ' . $import_handle->GetErrorMsg(0);
+ return false;
+ } else {
+ $result = $import_handle->GetData(0);
+ }
+ */
+ break;
+ case 'none':
+ $result = fread($this->getHandle(), $size);
+ break;
+ default:
+ return false;
+ }
+
+ echo $size . ' - ';
+ echo strlen($result) . ' - ';
+ echo (@$GLOBALS['__len__'] += strlen($result)) . ' - ';
+ echo $this->_error_message;
+ echo '<hr />';
+
+ if ($GLOBALS['charset_conversion']) {
+ $result = PMA_convert_string($this->getCharset(), $GLOBALS['charset'], $result);
+ } else {
+ /**
+ * Skip possible byte order marks (I do not think we need more
+ * charsets, but feel free to add more, you can use wikipedia for
+ * reference: <http://en.wikipedia.org/wiki/Byte_Order_Mark>)
+ *
+ * @todo BOM could be used for charset autodetection
+ */
+ if ($this->getOffset() === 0) {
+ // UTF-8
+ if (strncmp($result, "\xEF\xBB\xBF", 3) == 0) {
+ $result = substr($result, 3);
+ // UTF-16 BE, LE
+ } elseif (strncmp($result, "\xFE\xFF", 2) == 0
+ || strncmp($result, "\xFF\xFE", 2) == 0) {
+ $result = substr($result, 2);
+ }
+ }
+ }
+
+ $this->_offset += $size;
+ if (0 === $result) {
+ return true;
+ }
+ return $result;
+ }
+
+ function getOffset()
+ {
+ return $this->_offset;
+ }
+
+ function getChunkSize()
+ {
+ return $this->_chunk_size;
+ }
+
+ function setChunkSize($chunk_size)
+ {
+ $this->_chunk_size = (int) $chunk_size;
+ }
+
+ function getContentLength()
+ {
+ return strlen($this->_content);
+ }
+
+ function eof()
+ {
+ if ($this->getHandle()) {
+ return feof($this->getHandle());
+ } else {
+ return ($this->getOffset() >= $this->getContentLength());
+ }
+
+ }
+
+ /**
+ * sets reference to most recent BLOB repository reference
+ *
+ * @access static public
+ * @param string - BLOB repository reference
+ */
+ static function setRecentBLOBReference($ref)
+ {
+ PMA_File::$_recent_bs_reference = $ref;
+ }
+
+ /**
+ * retrieves reference to most recent BLOB repository reference
+ *
+ * @access static public
+ * @return string - most recent BLOB repository reference
+ */
+ static function getRecentBLOBReference()
+ {
+ $ref = PMA_File::$_recent_bs_reference;
+ PMA_File::$_recent_bs_reference = NULL;
+
+ return $ref;
+ }
+}
+?>
diff --git a/libraries/Index.class.php b/libraries/Index.class.php
new file mode 100644
index 0000000000..8697912e9e
--- /dev/null
+++ b/libraries/Index.class.php
@@ -0,0 +1,696 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * holds the datasbe index class
+ *
+ * @version $Id$
+ */
+
+/**
+ * @since phpMyAdmin 3.0.0
+ *
+ */
+class PMA_Index
+{
+ /**
+ * Class-wide storage container for indexes (caching, singleton)
+ *
+ * @var array
+ */
+ protected static $_registry = array();
+
+ /**
+ * @var string The name of the schema
+ */
+ protected $_schema = '';
+
+ /**
+ * @var string The name of the table
+ */
+ protected $_table = '';
+
+ /**
+ * @var string The name of the index
+ */
+ protected $_name = '';
+
+ /**
+ * Columns in index
+ *
+ * @var array
+ */
+ protected $_columns = array();
+
+ /**
+ * The index method used (BTREE, FULLTEXT, HASH, RTREE).
+ *
+ * @var string
+ */
+ protected $_type = '';
+
+ /**
+ * The index choice (PRIMARY, UNIQUE, INDEX, FULLTEXT)
+ *
+ * @var string
+ */
+ protected $_choice = '';
+
+ /**
+ * Various remarks.
+ *
+ * @var string
+ */
+ protected $_remarks = '';
+
+ /**
+ * Any comment provided for the index with a COMMENT attribute when the
+ * index was created.
+ *
+ * @var string
+ */
+ protected $_comment = '';
+
+ /**
+ * @var integer 0 if the index cannot contain duplicates, 1 if it can.
+ */
+ protected $_non_unique = 0;
+
+ /**
+ * Indicates how the key is packed. NULL if it is not.
+ *
+ * @var string
+ */
+ protected $_packed = null;
+
+ /**
+ * Constructor
+ *
+ * @uses $this->set()
+ * @param array $params
+ */
+ public function __construct($params = array())
+ {
+ $this->set($params);
+ }
+
+ static public function singleton($schema, $table, $index_name = '')
+ {
+ PMA_Index::_loadIndexes($table, $schema);
+ if (! isset(PMA_Index::$_registry[$schema][$table][$index_name])) {
+ $index = new PMA_Index;
+ if (strlen($index_name)) {
+ $index->setName($index_name);
+ PMA_Index::$_registry[$schema][$table][$index->getName()] = $index;
+ }
+ return $index;
+ } else {
+ return PMA_Index::$_registry[$schema][$table][$index_name];
+ }
+ }
+
+ /**
+ * returns an array with all indexes from the given table
+ *
+ * @uses PMA_Index::_loadIndexes()
+ * @uses PMA_Index::$_registry
+ * @param string $table
+ * @param string $schema
+ * @return array
+ */
+ static public function getFromTable($table, $schema)
+ {
+ PMA_Index::_loadIndexes($table, $schema);
+
+ if (isset(PMA_Index::$_registry[$schema][$table])) {
+ return PMA_Index::$_registry[$schema][$table];
+ } else {
+ return array();
+ }
+ }
+
+ /**
+ * return primary if set, false otherwise
+ *
+ * @uses PMA_Index::_loadIndexes()
+ * @uses PMA_Index::$_registry
+ * @param string $table
+ * @param string $schema
+ * @return mixed primary index or false if no one exists
+ */
+ static public function getPrimary($table, $schema)
+ {
+ PMA_Index::_loadIndexes($table, $schema);
+
+ if (isset(PMA_Index::$_registry[$schema][$table]['PRIMARY'])) {
+ return PMA_Index::$_registry[$schema][$table]['PRIMARY'];
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Load index data for table
+ *
+ * @uses PMA_Index::$_registry
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_backquote()
+ * @uses PMA_Index
+ * @uses PMA_Index->addColumn()
+ * @param string $table
+ * @param string $schema
+ * @return boolean
+ */
+ static protected function _loadIndexes($table, $schema)
+ {
+ if (isset(PMA_Index::$_registry[$schema][$table])) {
+ return true;
+ }
+
+ $_raw_indexes = PMA_DBI_fetch_result('SHOW INDEX FROM ' . PMA_backquote($schema) . '.' . PMA_backquote($table));
+ foreach ($_raw_indexes as $_each_index) {
+ $_each_index['Schema'] = $schema;
+ if (! isset(PMA_Index::$_registry[$schema][$table][$_each_index['Key_name']])) {
+ $key = new PMA_Index($_each_index);
+ PMA_Index::$_registry[$schema][$table][$_each_index['Key_name']] = $key;
+ } else {
+ $key = PMA_Index::$_registry[$schema][$table][$_each_index['Key_name']];
+ }
+
+ $key->addColumn($_each_index);
+ }
+
+ return true;
+ }
+
+ /**
+ * Add column to index
+ *
+ * @uses $this->_columns
+ * @uses PMA_Index_Column
+ * @param array $params column params
+ */
+ public function addColumn($params)
+ {
+ if (strlen($params['Column_name'])) {
+ $this->_columns[$params['Column_name']] = new PMA_Index_Column($params);
+ }
+ }
+
+ public function addColumns($columns)
+ {
+ $_columns = array();
+
+ if (isset($columns['names'])) {
+ // coming from form
+ // $columns[names][]
+ // $columns[sub_parts][]
+ foreach ($columns['names'] as $key => $name) {
+ $_columns[] = array(
+ 'Column_name' => $name,
+ 'Sub_part' => $columns['sub_parts'][$key],
+ );
+ }
+ } else {
+ // coming from SHOW INDEXES
+ // $columns[][name]
+ // $columns[][sub_part]
+ // ...
+ $_columns = $columns;
+ }
+
+ foreach ($_columns as $column) {
+ $this->addColumn($column);
+ }
+ }
+
+ /**
+ * Returns true if $column indexed in this index
+ *
+ * @uses $this->_columns
+ * @param string $column
+ * @return boolean
+ */
+ public function hasColumn($column)
+ {
+ return isset($this->_columns[$column]);
+ }
+
+ public function set($params)
+ {
+ if (isset($params['columns'])) {
+ $this->addColumns($params['columns']);
+ }
+ if (isset($params['Schema'])) {
+ $this->_schema = $params['Schema'];
+ }
+ if (isset($params['Table'])) {
+ $this->_table = $params['Table'];
+ }
+ if (isset($params['Key_name'])) {
+ $this->_name = $params['Key_name'];
+ }
+ if (isset($params['Index_type'])) {
+ $this->_type = $params['Index_type'];
+ }
+ if (isset($params['Comment'])) {
+ $this->_remarks = $params['Comment'];
+ }
+ if (isset($params['Index_comment'])) {
+ $this->_comment = $params['Index_comment'];
+ }
+ if (isset($params['Non_unique'])) {
+ $this->_non_unique = $params['Non_unique'];
+ }
+ if (isset($params['Packed'])) {
+ $this->_packed = $params['Packed'];
+ }
+ if ('PRIMARY' == $this->_name) {
+ $this->_choice = 'PRIMARY';
+ } elseif ('FULLTEXT' == $this->_type) {
+ $this->_choice = 'FULLTEXT';
+ } elseif ('0' == $this->_non_unique) {
+ $this->_choice = 'UNIQUE';
+ } else {
+ $this->_choice = 'INDEX';
+ }
+ }
+
+ public function getColumnCount()
+ {
+ return count($this->_columns);
+ }
+
+ public function getComment()
+ {
+ return $this->_comment;
+ }
+
+ public function getRemarks()
+ {
+ return $this->_remarks;
+ }
+
+ public function getComments()
+ {
+ $comments = $this->getRemarks();
+ if (strlen($comments)) {
+ $comments .= "\n";
+ }
+ $comments .= $this->getComment();
+
+ return $comments;
+ }
+
+ public function getType()
+ {
+ return $this->_type;
+ }
+
+ /**
+ * Return a list of all index choices
+ *
+ * @return array index choices
+ */
+ static public function getIndexChoices()
+ {
+ return array(
+ 'PRIMARY',
+ 'INDEX',
+ 'UNIQUE',
+ 'FULLTEXT',
+ );
+ }
+
+ public function generateIndexSelector()
+ {
+ $html_options = '';
+
+ foreach (PMA_Index::getIndexChoices() as $each_index_choice) {
+ if ($each_index_choice === 'PRIMARY'
+ && $this->_choice !== 'PRIMARY'
+ && PMA_Index::getPrimary($this->_table, $this->_schema)) {
+ // skip PRIMARY if there is already one in the table
+ continue;
+ }
+ $html_options .= '<option value="' . $each_index_choice . '"'
+ . (($this->_choice == $each_index_choice) ? ' selected="selected"' : '')
+ . '>'. $each_index_choice . '</option>' . "\n";
+ }
+
+ return $html_options;
+ }
+
+ public function getPacked()
+ {
+ return $this->_packed;
+ }
+
+ public function isPacked($as_text = false)
+ {
+ if ($as_text) {
+ $r = array(
+ '0' => $GLOBALS['strNo'],
+ '1' => $GLOBALS['strYes'],
+ );
+ } else {
+ $r = array(
+ '0' => false,
+ '1' => true,
+ );
+ }
+
+ if (null === $this->_packed) {
+ return $r[0];
+ }
+
+ return $this->_packed;
+ }
+
+ public function getNonUnique()
+ {
+ return $this->_non_unique;
+ }
+
+ public function isUnique($as_text = false)
+ {
+ if ($as_text) {
+ $r = array(
+ '0' => $GLOBALS['strYes'],
+ '1' => $GLOBALS['strNo'],
+ );
+ } else {
+ $r = array(
+ '0' => true,
+ '1' => false,
+ );
+ }
+
+ return $r[$this->_non_unique];
+ }
+
+ public function getName()
+ {
+ return $this->_name;
+ }
+
+ public function setName($name)
+ {
+ $this->_name = (string) $name;
+ }
+
+ public function getColumns()
+ {
+ return $this->_columns;
+ }
+
+ /**
+ * Show index data
+ *
+ * @param string $table The tablename
+ * @param array $indexes_info Referenced info array
+ * @param array $indexes_data Referenced data array
+ * @param boolean $print_mode
+ * @access public
+ * @return array Index collection array
+ * @author Garvin Hicking (pma@supergarv.de)
+ */
+ static public function getView($table, $schema, $print_mode = false)
+ {
+ $indexes = PMA_Index::getFromTable($table, $schema);
+
+ if (count($indexes) < 1) {
+ return PMA_Message::warning('strNoIndex')->getDisplay();
+ }
+
+ $r = '';
+
+ $r .= '<h2>' . $GLOBALS['strIndexes'] . ': ';
+ $r .= PMA_showMySQLDocu('optimization', 'optimizing-database-structure');
+ $r .= '</h2>';
+ $r .= '<table>';
+ $r .= '<thead>';
+ $r .= '<tr>';
+ if (! $print_mode) {
+ $r .= '<th colspan="2">' . $GLOBALS['strAction'] . '</th>';
+ }
+ $r .= '<th>' . $GLOBALS['strKeyname'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strType'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strUnique'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strPacked'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strField'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strCardinality'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strCollation'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strNull'] . '</th>';
+ $r .= '<th>' . $GLOBALS['strComment'] . '</th>';
+ $r .= '</tr>';
+ $r .= '</thead>';
+ $r .= '<tbody>';
+
+ $odd_row = true;
+ foreach ($indexes as $index) {
+ $row_span = ' rowspan="' . $index->getColumnCount() . '" ';
+
+ $r .= '<tr class="' . ($odd_row ? 'odd' : 'even') . '">';
+
+ if (! $print_mode) {
+ $this_params = $GLOBALS['url_params'];
+ $this_params['index'] = $index->getName();
+ $r .= '<td ' . $row_span . '>'
+ . ' <a href="tbl_indexes.php' . PMA_generate_common_url($this_params)
+ . '">' . PMA_getIcon('b_edit.png', $GLOBALS['strEdit']) . '</a>'
+ . '</td>' . "\n";
+
+ $this_params = $GLOBALS['url_params'];
+ if ($index->getName() == 'PRIMARY') {
+ $this_params['sql_query'] = 'ALTER TABLE ' . PMA_backquote($table) . ' DROP PRIMARY KEY';
+ $this_params['zero_rows'] = $GLOBALS['strPrimaryKeyHasBeenDropped'];
+ $js_msg = PMA_jsFormat('ALTER TABLE ' . $table . ' DROP PRIMARY KEY');
+ } else {
+ $this_params['sql_query'] = 'ALTER TABLE ' . PMA_backquote($table) . ' DROP INDEX ' . PMA_backquote($index->getName());
+ $this_params['zero_rows'] = sprintf($GLOBALS['strIndexHasBeenDropped'], $index->getName());
+ $js_msg = PMA_jsFormat('ALTER TABLE ' . $table . ' DROP INDEX ' . $index->getName());
+ }
+
+ $r .= '<td ' . $row_span . '>'
+ . ' <a href="sql.php' . PMA_generate_common_url($this_params)
+ . '" onclick="return confirmLink(this, \'' . $js_msg . '\')">'
+ . PMA_getIcon('b_drop.png', $GLOBALS['strDrop']) . '</a>'
+ . '</td>' . "\n";
+ }
+
+ $r .= '<th ' . $row_span . '>' . htmlspecialchars($index->getName()) . '</th>';
+ $r .= '<td ' . $row_span . '>' . htmlspecialchars($index->getType()) . '</td>';
+ $r .= '<td ' . $row_span . '>' . $index->isUnique(true) . '</td>';
+ $r .= '<td ' . $row_span . '>' . $index->isPacked(true) . '</td>';
+
+ foreach ($index->getColumns() as $column) {
+ if ($column->getSeqInIndex() > 1) {
+ $r .= '<tr class="' . ($odd_row ? 'odd' : 'even') . '">';
+ }
+ $r .= '<td>' . htmlspecialchars($column->getName());
+ if ($column->getSubPart()) {
+ $r .= ' (' . $column->getSubPart() . ')';
+ }
+ $r .= '</td>';
+ $r .= '<td>' . htmlspecialchars($column->getCardinality()) . '</td>';
+ $r .= '<td>' . htmlspecialchars($column->getCollation()) . '</td>';
+ $r .= '<td>' . htmlspecialchars($column->getNull()) . '</td>';
+
+ if ($column->getSeqInIndex() == 1) {
+ $r .= '<td ' . $row_span . '>'
+ . htmlspecialchars($index->getComments()) . '</td>';
+ }
+ $r .= '</tr>';
+ } // end foreach $index['Sequences']
+
+ $odd_row = ! $odd_row;
+ } // end while
+ $r .= '</tbody>';
+ $r .= '</table>';
+
+ if (! $print_mode) {
+ $r .= PMA_Index::findDuplicates($table, $schema);
+ }
+
+ return $r;
+ }
+
+ public function getCompareData()
+ {
+ $data = array(
+ // 'Non_unique' => $this->_non_unique,
+ 'Packed' => $this->_packed,
+ 'Index_type' => $this->_type,
+ );
+
+ foreach ($this->_columns as $column) {
+ $data['columns'][] = $column->getCompareData();
+ }
+
+ return $data;
+ }
+
+ /**
+ * Function to check over array of indexes and look for common problems
+ *
+ * @uses $GLOBALS['strIndexesSeemEqual']
+ * @uses is_string()
+ * @uses is_array()
+ * @uses count()
+ * @uses array_pop()
+ * @uses reset()
+ * @uses current()
+ * @access public
+ * @param string name of table
+ * @return string Output HTML
+ */
+ static public function findDuplicates($table, $schema)
+ {
+ $indexes = PMA_Index::getFromTable($table, $schema);
+
+ $output = '';
+
+ // count($indexes) < 2:
+ // there is no need to check if there less than two indexes
+ if (count($indexes) < 2) {
+ return $output;
+ }
+
+ // remove last index from stack and ...
+ while ($while_index = array_pop($indexes)) {
+ // ... compare with every remaining index in stack
+ foreach ($indexes as $each_index) {
+ if ($each_index->getCompareData() !== $while_index->getCompareData()) {
+ continue;
+ }
+
+ // did not find any difference
+ // so it makes no sense to have this two equal indexes
+
+ $message = PMA_Message::warning('strIndexesSeemEqual');
+ $message->addParam($each_index->getName());
+ $message->addParam($while_index->getName());
+ $output .= $message->getDisplay();
+
+ // there is no need to check any further indexes if we have already
+ // found that this one has a duplicate
+ continue 2;
+ }
+ }
+ return $output;
+ }
+}
+
+class PMA_Index_Column
+{
+ /**
+ * @var string The column name
+ */
+ protected $_name = '';
+
+ /**
+ * @var integer The column sequence number in the index, starting with 1.
+ */
+ protected $_seq_in_index = 1;
+
+ /**
+ * @var string How the column is sorted in the index. “A” (Ascending) or NULL (Not sorted)
+ */
+ protected $_collation = null;
+
+ /**
+ * The number of indexed characters if the column is only partly indexed,
+ * NULL if the entire column is indexed.
+ *
+ * @var integer
+ */
+ protected $_sub_part = null;
+
+ /**
+ * Contains YES if the column may contain NULL.
+ * If not, the column contains NO.
+ *
+ * @var string
+ */
+ protected $_null = '';
+
+ /**
+ * An estimate of the number of unique values in the index. This is updated
+ * by running ANALYZE TABLE or myisamchk -a. Cardinality is counted based on
+ * statistics stored as integers, so the value is not necessarily exact even
+ * for small tables. The higher the cardinality, the greater the chance that
+ * MySQL uses the index when doing joins.
+ *
+ * @var integer
+ */
+ protected $_cardinality = 0;
+
+ public function __construct($params = array())
+ {
+ $this->set($params);
+ }
+
+ public function set($params)
+ {
+ if (isset($params['Column_name'])) {
+ $this->_name = $params['Column_name'];
+ }
+ if (isset($params['Seq_in_index'])) {
+ $this->_seq_in_index = $params['Seq_in_index'];
+ }
+ if (isset($params['Collation'])) {
+ $this->_collation = $params['Collation'];
+ }
+ if (isset($params['Cardinality'])) {
+ $this->_cardinality = $params['Cardinality'];
+ }
+ if (isset($params['Sub_part'])) {
+ $this->_sub_part = $params['Sub_part'];
+ }
+ if (isset($params['Null'])) {
+ $this->_null = $params['Null'];
+ }
+ }
+
+ public function getName()
+ {
+ return $this->_name;
+ }
+
+ public function getCollation()
+ {
+ return $this->_collation;
+ }
+
+ public function getCardinality()
+ {
+ return $this->_cardinality;
+ }
+
+ public function getNull()
+ {
+ return $this->_null;
+ }
+
+ public function getSeqInIndex()
+ {
+ return $this->_seq_in_index;
+ }
+
+ public function getSubPart()
+ {
+ return $this->_sub_part;
+ }
+
+ public function getCompareData()
+ {
+ return array(
+ 'Column_name' => $this->_name,
+ 'Seq_in_index' => $this->_seq_in_index,
+ 'Collation' => $this->_collation,
+ 'Sub_part' => $this->_sub_part,
+ 'Null' => $this->_null,
+ );
+ }
+}
+?>
diff --git a/libraries/List.class.php b/libraries/List.class.php
new file mode 100644
index 0000000000..07b4f847bc
--- /dev/null
+++ b/libraries/List.class.php
@@ -0,0 +1,124 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * hold the PMA_List base class
+ *
+ * @version $Id$
+ */
+
+/**
+ * @todo add caching
+ * @since phpMyAdmin 2.9.10
+ * @abstract
+ */
+abstract class PMA_List extends ArrayObject
+{
+ /**
+ * @var mixed empty item
+ */
+ protected $item_empty = '';
+
+ public function __construct($array = array(), $flags = 0, $iterator_class = "ArrayIterator")
+ {
+ parent::__construct($array, $flags, $iterator_class);
+ }
+
+ /**
+ * returns item only if there is only one in the list
+ *
+ * @uses count()
+ * @uses reset()
+ * @uses PMA_List::getEmpty() to return it
+ * @return single item
+ */
+ public function getSingleItem()
+ {
+ if (count($this) === 1) {
+ return reset($this);
+ }
+
+ return $this->getEmpty();
+ }
+
+ /**
+ * defines what is an empty item (0, '', false or null)
+ *
+ * @uses PMA_List::$item_empty as return value
+ * @return mixed an empty item
+ */
+ public function getEmpty()
+ {
+ return $this->item_empty;
+ }
+
+ /**
+ * checks if the given db names exists in the current list, if there is
+ * missing at least one item it returns false otherwise true
+ *
+ * @uses PMA_List::$items to check for existence of specific item
+ * @uses func_get_args()
+ * @uses in_array() to check if given arguments exists in PMA_List::$items
+ * @param string $db_name,.. one or more mysql result resources
+ * @return boolean true if all items exists, otheriwse false
+ */
+ public function exists()
+ {
+ $this_elements = $this->getArrayCopy();
+ foreach (func_get_args() as $result) {
+ if (! in_array($result, $this_elements)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * returns HTML <option>-tags to be used inside <select></select>
+ *
+ * @uses PMA_List::$items to build up the option items
+ * @uses PMA_List::getDefault() to mark this as selected if requested
+ * @uses htmlspecialchars() to escape items
+ * @param mixed $selected the selected db or true for selecting current db
+ * @param boolean $include_information_schema
+ * @return string HTML option tags
+ */
+ public function getHtmlOptions($selected = '', $include_information_schema = true)
+ {
+ if (true === $selected) {
+ $selected = $this->getDefault();
+ }
+
+ $options = '';
+ foreach ($this as $each_item) {
+ if (false === $include_information_schema && 'information_schema' === $each_item) {
+ continue;
+ }
+ $options .= '<option value="' . htmlspecialchars($each_item) . '"';
+ if ($selected === $each_item) {
+ $options .= ' selected="selected"';
+ }
+ $options .= '>' . htmlspecialchars($each_item) . '</option>' . "\n";
+ }
+
+ return $options;
+ }
+
+ /**
+ * returns default item
+ *
+ * @uses PMA_List::getEmpty() as fallback
+ * @return string default item
+ */
+ public function getDefault()
+ {
+ return $this->getEmpty();
+ }
+
+ /**
+ * builds up the list
+ *
+ */
+ abstract public function build();
+}
+?>
diff --git a/libraries/List_Database.class.php b/libraries/List_Database.class.php
new file mode 100644
index 0000000000..ddb141dad1
--- /dev/null
+++ b/libraries/List_Database.class.php
@@ -0,0 +1,512 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * holds the PMA_List_Database class
+ *
+ * @version $Id$
+ */
+
+/**
+ * the list base class
+ */
+require_once './libraries/List.class.php';
+
+/**
+ * handles database lists
+ *
+ * <code>
+ * $PMA_List_Database = new PMA_List_Database($userlink, $controllink);
+ * </code>
+ *
+ * @todo this object should be attached to the PMA_Server object
+ * @todo ? make use of INFORMATION_SCHEMA
+ * @todo ? support --skip-showdatabases and user has only global rights
+ * @access public
+ * @since phpMyAdmin 2.9.10
+ */
+/*public*/ class PMA_List_Database extends PMA_List
+{
+ /**
+ * @var mixed database link resource|object to be used
+ */
+ protected $_db_link = null;
+
+ /**
+ * @var mixed user database link resource|object
+ */
+ protected $_db_link_user = null;
+
+ /**
+ * @var mixed controluser database link resource|object
+ */
+ protected $_db_link_control = null;
+
+ /**
+ * @var boolean whether SHOW DATABASES is disabled or not
+ * @access protected
+ */
+ protected $_show_databases_disabled = false;
+
+ /**
+ * @var string command to retrieve databases from server
+ */
+ protected $_command = null;
+
+ /**
+ * Constructor
+ *
+ * @uses PMA_List_Database::$_db_link
+ * @uses PMA_List_Database::$_db_link_user
+ * @uses PMA_List_Database::$_db_link_control
+ * @uses PMA_List_Database::build()
+ * @param mixed $db_link_user user database link resource|object
+ * @param mixed $db_link_control control database link resource|object
+ */
+ public function __construct($db_link_user = null, $db_link_control = null)
+ {
+ $this->_db_link = $db_link_user;
+ $this->_db_link_user = $db_link_user;
+ $this->_db_link_control = $db_link_control;
+
+ parent::__construct();
+ $this->build();
+ }
+
+ /**
+ * checks if the configuration wants to hide some databases
+ *
+ * @todo temporaly use this docblock to test how to doc $GLOBALS
+ * @uses PMA_List_Database::$items
+ * @uses preg_match()
+ * @uses $cfg['Server']['hide_db']
+ */
+ protected function _checkHideDatabase()
+ {
+ if (empty($GLOBALS['cfg']['Server']['hide_db'])) {
+ return;
+ }
+
+ foreach ($this as $key => $db) {
+ if (preg_match('/' . $GLOBALS['cfg']['Server']['hide_db'] . '/', $db)) {
+ $this->offsetUnset($key);
+ }
+ }
+ }
+
+ /**
+ * retrieves database list from server
+ *
+ * @todo we could also search mysql tables if all fail?
+ * @uses PMA_List_Database::$_show_databases_disabled for not retrying if SHOW DATABASES is disabled
+ * @uses PMA_List_Database::$_db_link
+ * @uses PMA_List_Database::$_db_link_control in case of SHOW DATABASES is disabled for userlink
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_DBI_getError()
+ * @uses $GLOBALS['error_showdatabases']
+ * @uses $GLOBALS['errno']
+ * @param string $like_db_name usally a db_name containing wildcards
+ */
+ protected function _retrieve($like_db_name = null)
+ {
+ if ($this->_show_databases_disabled) {
+ return array();
+ }
+
+ if (null !== $like_db_name) {
+ $command = "SHOW DATABASES LIKE '" . $like_db_name . "'";
+ } elseif (null === $this->_command) {
+ $command = str_replace('#user#', $GLOBALS['cfg']['Server']['user'],
+ $GLOBALS['cfg']['Server']['ShowDatabasesCommand']);
+ $this->_command = $command;
+ } else {
+ $command = $this->_command;
+ }
+
+ $database_list = PMA_DBI_fetch_result($command, null, null, $this->_db_link);
+ PMA_DBI_getError();
+
+ if ($GLOBALS['errno'] !== 0) {
+ // failed to get database list, try the control user
+ // (hopefully there is one and he has SHOW DATABASES right)
+ $this->_db_link = $this->_db_link_control;
+ $database_list = PMA_DBI_fetch_result($command, null, null, $this->_db_link);
+
+ PMA_DBI_getError();
+
+ if ($GLOBALS['errno'] !== 0) {
+ // failed! we will display a warning that phpMyAdmin could not safely
+ // retrieve database list, the admin has to setup a control user or
+ // allow SHOW DATABASES
+ $GLOBALS['error_showdatabases'] = true;
+ $this->_show_databases_disabled = true;
+ }
+ }
+
+ return $database_list;
+ }
+
+ /**
+ * builds up the list
+ *
+ * @uses PMA_List_Database::$items to initialize it
+ * @uses PMA_List_Database::_checkOnlyDatabase()
+ * @uses PMA_List_Database::_retrieve()
+ * @uses PMA_List_Database::_checkHideDatabase()
+ * @uses array_values()
+ * @uses natsort()
+ * @uses $cfg['NaturalOrder']
+ */
+ public function build()
+ {
+ if (! $this->_checkOnlyDatabase()) {
+ $items = $this->_retrieve();
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ natsort($items);
+ }
+ $this->exchangeArray($items);
+ }
+
+ $this->_checkHideDatabase();
+ }
+
+ /**
+ * checks the only_db configuration
+ *
+ * @uses PMA_List_Database::$_show_databases_disabled
+ * @uses PMA_List_Database::$items
+ * @uses PMA_List_Database::_retrieve()
+ * @uses PMA_unescape_mysql_wildcards()
+ * @uses preg_match()
+ * @uses array_diff()
+ * @uses array_merge()
+ * @uses is_array()
+ * @uses strlen()
+ * @uses is_string()
+ * @uses $cfg['Server']['only_db']
+ * @return boolean false if there is no only_db, otherwise true
+ */
+ protected function _checkOnlyDatabase()
+ {
+ if (is_string($GLOBALS['cfg']['Server']['only_db'])
+ && strlen($GLOBALS['cfg']['Server']['only_db'])) {
+ $GLOBALS['cfg']['Server']['only_db'] = array(
+ $GLOBALS['cfg']['Server']['only_db']
+ );
+ }
+
+ if (! is_array($GLOBALS['cfg']['Server']['only_db'])) {
+ return false;
+ }
+
+ $items = array();
+
+ foreach ($GLOBALS['cfg']['Server']['only_db'] as $each_only_db) {
+ if ($each_only_db === '*' && ! $this->_show_databases_disabled) {
+ // append all not already listed dbs to the list
+ $items = array_merge($items,
+ array_diff($this->_retrieve(), $items));
+ // there can only be one '*', and this can only be last
+ break;
+ }
+
+ // check if the db name contains wildcard,
+ // thus containing not escaped _ or %
+ if (! preg_match('/(^|[^\\\\])(_|%)/', $each_only_db)) {
+ // ... not contains wildcard
+ $items[] = PMA_unescape_mysql_wildcards($each_only_db);
+ continue;
+ }
+
+ if (! $this->_show_databases_disabled) {
+ $items = array_merge($items, $this->_retrieve($each_only_db));
+ continue;
+ }
+
+ // @todo induce error, about not using wildcards with SHOW DATABASE disabled?
+ }
+
+ $this->exchangeArray($items);
+
+ return true;
+ }
+
+ /**
+ * returns default item
+ *
+ * @uses PMA_List::getEmpty()
+ * @uses $GLOBALS['db']
+ * @uses strlen()
+ * @return string default item
+ */
+ public function getDefault()
+ {
+ if (strlen($GLOBALS['db'])) {
+ return $GLOBALS['db'];
+ }
+
+ return $this->getEmpty();
+ }
+
+ /**
+ * returns array with dbs grouped with extended infos
+ *
+ * @uses $GLOBALS['PMA_List_Database']
+ * @uses $GLOBALS['cfgRelation']['commwork']
+ * @uses $cfg['ShowTooltip']
+ * @uses $cfg['LeftFrameDBTree']
+ * @uses $cfg['LeftFrameDBSeparator']
+ * @uses $cfg['ShowTooltipAliasDB']
+ * @uses PMA_getTableCount()
+ * @uses PMA_getDbComment()
+ * @uses is_array()
+ * @uses implode()
+ * @uses strstr()
+ * @uses explode()
+ * @param integer $offset
+ * @param integer $count
+ * @return array db list
+ */
+ public function getGroupedDetails($offset, $count)
+ {
+ $dbgroups = array();
+ $parts = array();
+
+ if ($GLOBALS['cfg']['ShowTooltip']
+ && $GLOBALS['cfgRelation']['commwork']) {
+ $db_tooltips = PMA_getDbComments();
+ }
+
+ foreach ($this->getLimitedItems($offset, $count) as $key => $db) {
+ // garvin: Get comments from PMA comments table
+ $db_tooltip = '';
+
+ if (isset($db_tooltips[$db])) {
+ $db_tooltip = $_db_tooltips[$db];
+ }
+
+ if ($GLOBALS['cfg']['LeftFrameDBTree']
+ && $GLOBALS['cfg']['LeftFrameDBSeparator']
+ && strstr($db, $GLOBALS['cfg']['LeftFrameDBSeparator']))
+ {
+ // use strpos instead of strrpos; it seems more common to
+ // have the db name, the separator, then the rest which
+ // might contain a separator
+ // like dbname_the_rest
+ $pos = strpos($db, $GLOBALS['cfg']['LeftFrameDBSeparator']);
+ $group = substr($db, 0, $pos);
+ $disp_name_cut = substr($db, $pos);
+ } else {
+ $group = $db;
+ $disp_name_cut = $db;
+ }
+
+ $disp_name = $db;
+ if ($db_tooltip && $GLOBALS['cfg']['ShowTooltipAliasDB']) {
+ $disp_name = $db_tooltip;
+ $disp_name_cut = $db_tooltip;
+ $db_tooltip = $db;
+ }
+
+ $dbgroups[$group][$db] = array(
+ 'name' => $db,
+ 'disp_name_cut' => $disp_name_cut,
+ 'disp_name' => $disp_name,
+ 'comment' => $db_tooltip,
+ );
+
+ if ($GLOBALS['cfg']['Server']['CountTables']) {
+ $dbgroups[$group][$db]['num_tables'] = PMA_getTableCount($db);
+ }
+ } // end foreach ($GLOBALS['PMA_List_Database']->items as $db)
+ return $dbgroups;
+ }
+
+ /**
+ * returns a part of the items
+ *
+ * @uses array_slice()
+ * @param integer $offset
+ * @param integer $count
+ * @return array some items
+ */
+ public function getLimitedItems($offset, $count)
+ {
+ return array_slice($this->getArrayCopy(), $offset, $count);
+ }
+
+ /**
+ * returns html code for list with dbs
+ *
+ * @return string html code list
+ */
+ public function getHtmlListGrouped($selected = '', $offset, $count)
+ {
+ if (true === $selected) {
+ $selected = $this->getDefault();
+ }
+
+ $return = '<ul id="databaseList" xml:lang="en" dir="ltr">' . "\n";
+ foreach ($this->getGroupedDetails($offset, $count) as $group => $dbs) {
+ if (count($dbs) > 1) {
+ $return .= '<li>' . htmlspecialchars($group) . '<ul>' . "\n";
+ // whether display db_name cut by the group part
+ $cut = true;
+ } else {
+ // .. or full
+ $cut = false;
+ }
+ foreach ($dbs as $db) {
+ $return .= '<li';
+ if ($db['name'] == $selected) {
+ $return .= ' class="selected"';
+ }
+ $return .= '><a';
+ if (! empty($db['comment'])) {
+ $return .= ' title="' . htmlspecialchars($db['comment']) . '"';
+ }
+ $return .= ' href="index.php?' . PMA_generate_common_url($db['name'])
+ . '" target="_parent">';
+ if ($cut) {
+ $return .= htmlspecialchars($db['disp_name_cut']);
+ } else {
+ $return .= htmlspecialchars($db['disp_name']);
+ }
+
+ if (! empty($db['num_tables'])) {
+ $return .= ' (' . $db['num_tables'] . ')';
+ }
+ $return .= '</a></li>' . "\n";
+ }
+ if (count($dbs) > 1) {
+ $return .= '</ul></li>' . "\n";
+ }
+ }
+ $return .= '</ul>';
+
+ return $return;
+ }
+
+ /**
+ * returns html code for select form element with dbs
+ *
+ * @todo IE can not handle different text directions in select boxes so,
+ * as mostly names will be in english, we set the whole selectbox to LTR
+ * and EN
+ *
+ * @return string html code select
+ */
+ public function getHtmlSelectGrouped($selected = '', $offset, $count)
+ {
+ if (true === $selected) {
+ $selected = $this->getDefault();
+ }
+
+ $return = '<select name="db" id="lightm_db" xml:lang="en" dir="ltr"'
+ . ' onchange="if (this.value != \'\') window.parent.openDb(this.value);">' . "\n"
+ . '<option value="" dir="' . $GLOBALS['text_dir'] . '">'
+ . '(' . $GLOBALS['strDatabases'] . ') ...</option>' . "\n";
+ foreach ($this->getGroupedDetails($offset, $count) as $group => $dbs) {
+ if (count($dbs) > 1) {
+ $return .= '<optgroup label="' . htmlspecialchars($group)
+ . '">' . "\n";
+ // whether display db_name cuted by the group part
+ $cut = true;
+ } else {
+ // .. or full
+ $cut = false;
+ }
+ foreach ($dbs as $db) {
+ $return .= '<option value="' . htmlspecialchars($db['name']) . '"'
+ .' title="' . htmlspecialchars($db['comment']) . '"';
+ if ($db['name'] == $selected) {
+ $return .= ' selected="selected"';
+ }
+ $return .= '>' . htmlspecialchars($cut ? $db['disp_name_cut'] : $db['disp_name']);
+ if (! empty($db['num_tables'])) {
+ $return .= ' (' . $db['num_tables'] . ')';
+ }
+ $return .= '</option>' . "\n";
+ }
+ if (count($dbs) > 1) {
+ $return .= '</optgroup>' . "\n";
+ }
+ }
+ $return .= '</select>';
+
+ return $return;
+ }
+
+ /**
+ * this is just a backup, if all is fine this can be deleted later
+ *
+ * @deprecated
+ */
+ protected function _checkAgainstPrivTables()
+ {
+ // 1. get allowed dbs from the "mysql.db" table
+ // lem9: User can be blank (anonymous user)
+ $local_query = "
+ SELECT DISTINCT `Db` FROM `mysql`.`db`
+ WHERE `Select_priv` = 'Y'
+ AND `User`
+ IN ('" . PMA_sqlAddslashes($GLOBALS['cfg']['Server']['user']) . "', '')";
+ $tmp_mydbs = PMA_DBI_fetch_result($local_query, null, null,
+ $GLOBALS['controllink']);
+ if ($tmp_mydbs) {
+ // Will use as associative array of the following 2 code
+ // lines:
+ // the 1st is the only line intact from before
+ // correction,
+ // the 2nd replaces $dblist[] = $row['Db'];
+
+ // Code following those 2 lines in correction continues
+ // populating $dblist[], as previous code did. But it is
+ // now populated with actual database names instead of
+ // with regular expressions.
+ $tmp_alldbs = PMA_DBI_query('SHOW DATABASES;', $GLOBALS['controllink']);
+ // loic1: all databases cases - part 2
+ if (isset($tmp_mydbs['%'])) {
+ while ($tmp_row = PMA_DBI_fetch_row($tmp_alldbs)) {
+ $dblist[] = $tmp_row[0];
+ } // end while
+ } else {
+ while ($tmp_row = PMA_DBI_fetch_row($tmp_alldbs)) {
+ $tmp_db = $tmp_row[0];
+ if (isset($tmp_mydbs[$tmp_db]) && $tmp_mydbs[$tmp_db] == 1) {
+ $dblist[] = $tmp_db;
+ $tmp_mydbs[$tmp_db] = 0;
+ } elseif (!isset($dblist[$tmp_db])) {
+ foreach ($tmp_mydbs as $tmp_matchpattern => $tmp_value) {
+ // loic1: fixed bad regexp
+ // TODO: db names may contain characters
+ // that are regexp instructions
+ $re = '(^|(\\\\\\\\)+|[^\])';
+ $tmp_regex = ereg_replace($re . '%', '\\1.*', ereg_replace($re . '_', '\\1.{1}', $tmp_matchpattern));
+ // Fixed db name matching
+ // 2000-08-28 -- Benjamin Gandon
+ if (ereg('^' . $tmp_regex . '$', $tmp_db)) {
+ $dblist[] = $tmp_db;
+ break;
+ }
+ } // end while
+ } // end if ... elseif ...
+ } // end while
+ } // end else
+ PMA_DBI_free_result($tmp_alldbs);
+ unset($tmp_mydbs);
+ } // end if
+
+ // 2. get allowed dbs from the "mysql.tables_priv" table
+ $local_query = 'SELECT DISTINCT Db FROM mysql.tables_priv WHERE Table_priv LIKE \'%Select%\' AND User = \'' . PMA_sqlAddslashes($GLOBALS['cfg']['Server']['user']) . '\'';
+ $rs = PMA_DBI_try_query($local_query, $GLOBALS['controllink']);
+ if ($rs && @PMA_DBI_num_rows($rs)) {
+ while ($row = PMA_DBI_fetch_assoc($rs)) {
+ if (!in_array($row['Db'], $dblist)) {
+ $dblist[] = $row['Db'];
+ }
+ } // end while
+ PMA_DBI_free_result($rs);
+ } // end if
+ }
+}
+?>
diff --git a/libraries/Message.class.php b/libraries/Message.class.php
new file mode 100644
index 0000000000..50245e0cf9
--- /dev/null
+++ b/libraries/Message.class.php
@@ -0,0 +1,802 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds class PMA_Message
+ *
+ * @version $Id: Error.class.php 10738 2007-10-08 16:02:58Z cybot_tm $
+ */
+
+/**
+ * a single message
+ *
+ * simple usage examples:
+ * <code>
+ * // display simple error message 'Error'
+ * PMA_Message::error()->display();
+ *
+ * // get simple success message 'Success'
+ * $message = PMA_Message::success();
+ *
+ * // get special notice 'Some locale notice'
+ * $message = PMA_Message::notice('strSomeLocaleNotice');
+ *
+ * // display raw warning message 'This is a warning!'
+ * PMA_Message::rawWarning('This is a warning!')->display();
+ * </code>
+ *
+ * more advanced usage example:
+ * <code>
+ * $message = PMA_Message::success('strSomeLocaleMessage');
+ *
+ * $hint = PMA_Message::notice('strSomeFootnote');
+ * $hint->addParam('[a@./Documentation.html#cfg_Example@_blank]');
+ * $hint->addParam('[/a]');
+ * $hint = PMA_showHint($hint);
+ *
+ * $message->addMessage($hint);
+ *
+ * $more = PMA_Message::notice('strSomeMoreLocale');
+ * $more->addString('strSomeEvenMoreLocale', '<br />');
+ * $more->addParam('parameter for strSomeMoreLocale');
+ * $more->addParam('more parameter for strSomeMoreLocale');
+ *
+ * $message->addMessage($more);
+ * $message->addMessage('some final words', ' - ');
+ *
+ * $message->display();
+ * // strSomeLocaleMessage <sup>1</sup> strSomeMoreLocale<br />
+ * // strSomeEvenMoreLocale - some final words
+ * </code>
+ */
+class PMA_Message
+{
+ const SUCCESS = 1; // 0001
+ const NOTICE = 2; // 0010
+ const WARNING = 4; // 0100
+ const ERROR = 8; // 1000
+
+ const SANITIZE_NONE = 0; // 0000 0000
+ const SANITIZE_STRING = 16; // 0001 0000
+ const SANITIZE_PARAMS = 32; // 0010 0000
+ const SANITIZE_BOOTH = 48; // 0011 0000
+
+ /**
+ * message levels
+ *
+ * @var array
+ */
+ static public $level = array (
+ PMA_Message::SUCCESS => 'success',
+ PMA_Message::NOTICE => 'notice',
+ PMA_Message::WARNING => 'warning',
+ PMA_Message::ERROR => 'error',
+ );
+
+ /**
+ * The message number
+ *
+ * @access protected
+ * @var integer
+ */
+ protected $_number = PMA_Message::NOTICE;
+
+ /**
+ * The locale string identifier
+ *
+ * @access protected
+ * @var string
+ */
+ protected $_string = '';
+
+ /**
+ * The formated message
+ *
+ * @access protected
+ * @var string
+ */
+ protected $_message = '';
+
+ /**
+ * Whether the message was already displayed
+ *
+ * @access protected
+ * @var boolean
+ */
+ protected $_is_displayed = false;
+
+ /**
+ * Unique id
+ *
+ * @access protected
+ * @var string
+ */
+ protected $_hash = null;
+
+ /**
+ * holds parameters
+ *
+ * @access protected
+ * @var array
+ */
+ protected $_params = array();
+
+ /**
+ * holds additional messages
+ *
+ * @access protected
+ * @var array
+ */
+ protected $_added_messages = array();
+
+ /**
+ * Constructor
+ *
+ * @uses PMA_Message::setNumber()
+ * @uses PMA_Message::setString()
+ * @uses PMA_Message::setParams()
+ * @uses PMA_Message::NOTICE
+ * @uses PMA_Message::SANITIZE_NONE
+ * @uses PMA_Message::SANITIZE_STRING
+ * @uses PMA_Message::SANITIZE_PARAMS
+ * @param string $string
+ * @param integer $number
+ * @param array $$params
+ * @param boolean $sanitize
+ */
+ public function __construct($string = '', $number = PMA_Message::NOTICE,
+ $params = array(), $sanitize = PMA_Message::SANITIZE_NONE)
+ {
+ $this->setString($string, $sanitize & PMA_Message::SANITIZE_STRING);
+ $this->setNumber($number);
+ $this->setParams($params, $sanitize & PMA_Message::SANITIZE_PARAMS);
+ }
+
+ /**
+ * magic method: return string representation for this object
+ *
+ * @uses PMA_Message::getMessage()
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->getMessage();
+ }
+
+ /**
+ * get PMA_Message of type success
+ *
+ * shorthand for getting a simple success message
+ *
+ * @static
+ * @uses PMA_Message as returned object
+ * @uses PMA_Message::SUCCESS
+ * @param string $string
+ * @return PMA_Message
+ */
+ static public function success($string = '')
+ {
+ if (empty($string)) {
+ $string = 'strSuccess';
+ }
+
+ return new PMA_Message($string, PMA_Message::SUCCESS);
+ }
+
+ /**
+ * get PMA_Message of type error
+ *
+ * shorthand for getting a simple error message
+ *
+ * @static
+ * @uses PMA_Message as returned object
+ * @uses PMA_Message::ERROR
+ * @param string $string
+ * @return PMA_Message
+ */
+ static public function error($string = '')
+ {
+ if (empty($string)) {
+ $string = 'strError';
+ }
+
+ return new PMA_Message($string, PMA_Message::ERROR);
+ }
+
+ /**
+ * get PMA_Message of type warning
+ *
+ * shorthand for getting a simple warning message
+ *
+ * @static
+ * @uses PMA_Message as returned object
+ * @uses PMA_Message::WARNING
+ * @param string $string
+ * @return PMA_Message
+ */
+ static public function warning($string)
+ {
+ return new PMA_Message($string, PMA_Message::WARNING);
+ }
+
+ /**
+ * get PMA_Message of type notice
+ *
+ * shorthand for getting a simple notice message
+ *
+ * @static
+ * @uses PMA_Message as returned object
+ * @uses PMA_Message::NOTICE
+ * @param string $string
+ * @return PMA_Message
+ */
+ static public function notice($string)
+ {
+ return new PMA_Message($string, PMA_Message::NOTICE);
+ }
+
+ /**
+ * get PMA_Message with customized content
+ *
+ * shorthand for getting a customized message
+ *
+ * @static
+ * @uses PMA_Message as returned object
+ * @uses PMA_Message::setMessage()
+ * @param string $message
+ * @param integer $type
+ * @return PMA_Message
+ */
+ static public function raw($message, $type = PMA_Message::NOTICE)
+ {
+ $r = new PMA_Message('', $type);
+ $r->setMessage($message);
+ return $r;
+ }
+
+ /**
+ * get PMA_Message of type error with custom content
+ *
+ * shorthand for getting a customized error message
+ *
+ * @static
+ * @uses PMA_Message::raw()
+ * @uses PMA_Message::ERROR
+ * @param string $message
+ * @return PMA_Message
+ */
+ static public function rawError($message)
+ {
+ return PMA_Message::raw($message, PMA_Message::ERROR);
+ }
+
+ /**
+ * get PMA_Message of type warning with custom content
+ *
+ * shorthand for getting a customized warning message
+ *
+ * @static
+ * @uses PMA_Message::raw()
+ * @uses PMA_Message::WARNING
+ * @param string $message
+ * @return PMA_Message
+ */
+ static public function rawWarning($message)
+ {
+ return PMA_Message::raw($message, PMA_Message::WARNING);
+ }
+
+ /**
+ * get PMA_Message of type notice with custom content
+ *
+ * shorthand for getting a customized notice message
+ *
+ * @static
+ * @uses PMA_Message::raw()
+ * @uses PMA_Message::NOTICE
+ * @param string $message
+ * @return PMA_Message
+ */
+ static public function rawNotice($message)
+ {
+ return PMA_Message::raw($message, PMA_Message::NOTICE);
+ }
+
+ /**
+ * get PMA_Message of type success with custom content
+ *
+ * shorthand for getting a customized success message
+ *
+ * @static
+ * @uses PMA_Message::raw()
+ * @uses PMA_Message::SUCCESS
+ * @param string $message
+ * @return PMA_Message
+ */
+ static public function rawSuccess($message)
+ {
+ return PMA_Message::raw($message, PMA_Message::SUCCESS);
+ }
+
+ /**
+ * returns whether this message is a success message or not
+ * and optionaly makes this message a success message
+ *
+ * @uses PMA_Message::SUCCESS
+ * @uses PMA_Message::setNumber()
+ * @uses PMA_Message::getNumber()
+ * @param boolean $set
+ * @return boolean whether this is a success message or not
+ */
+ public function isSuccess($set = false)
+ {
+ if ($set) {
+ $this->setNumber(PMA_Message::SUCCESS);
+ }
+
+ return $this->getNumber() & PMA_Message::SUCCESS;
+ }
+
+ /**
+ * returns whether this message is a notice message or not
+ * and optionaly makes this message a notice message
+ *
+ * @uses PMA_Message::NOTICE
+ * @uses PMA_Message::setNumber()
+ * @uses PMA_Message::getNumber()
+ * @param boolean $set
+ * @return boolean whether this is a notice message or not
+ */
+ public function isNotice($set = false)
+ {
+ if ($set) {
+ $this->setNumber(PMA_Message::NOTICE);
+ }
+
+ return $this->getNumber() & PMA_Message::NOTICE;
+ }
+
+ /**
+ * returns whether this message is a warning message or not
+ * and optionaly makes this message a warning message
+ *
+ * @uses PMA_Message::WARNING
+ * @uses PMA_Message::setNumber()
+ * @uses PMA_Message::getNumber()
+ * @param boolean $set
+ * @return boolean whether this is a warning message or not
+ */
+ public function isWarning($set = false)
+ {
+ if ($set) {
+ $this->setNumber(PMA_Message::WARNING);
+ }
+
+ return $this->getNumber() & PMA_Message::WARNING;
+ }
+
+ /**
+ * returns whether this message is an error message or not
+ * and optionaly makes this message an error message
+ *
+ * @uses PMA_Message::ERROR
+ * @uses PMA_Message::setNumber()
+ * @uses PMA_Message::getNumber()
+ * @param boolean $set
+ * @return boolean whether this is an error message or not
+ */
+ public function isError($set = false)
+ {
+ if ($set) {
+ $this->setNumber(PMA_Message::ERROR);
+ }
+
+ return $this->getNumber() & PMA_Message::ERROR;
+ }
+
+ /**
+ * set raw message (overrides string)
+ *
+ * @uses PMA_Message::$_message to set it
+ * @uses PMA_Message::sanitize()
+ * @param string $message
+ * @param boolean $sanitize whether to sanitize $message or not
+ */
+ public function setMessage($message, $sanitize = false)
+ {
+ if ($sanitize) {
+ $message = PMA_Message::sanitize($message);
+ }
+ $this->_message = $message;
+ }
+
+ /**
+ * set string (does not take effect if raw message is set)
+ *
+ * @uses PMA_Message::$_string to set it
+ * @uses PMA_Message::sanitize()
+ * @param string $_string
+ * @param boolean $sanitize whether to sanitize $string or not
+ */
+ public function setString($_string, $sanitize = true)
+ {
+ if ($sanitize) {
+ $_string = PMA_Message::sanitize($_string);
+ }
+ $this->_string = $_string;
+ }
+
+ /**
+ * set message type number
+ *
+ * @uses PMA_Message::$_number to set it
+ * @param integer $number
+ */
+ public function setNumber($number)
+ {
+ $this->_number = $number;
+ }
+
+ /**
+ * add parameter, usually in conjunction with strings
+ *
+ * usage
+ * <code>
+ * $message->addParam('strLocale', false);
+ * $message->addParam('[em]somes tring[/em]');
+ * $message->addParam('<img src="img" />', false);
+ * </code>
+ *
+ * @uses htmlspecialchars()
+ * @uses PMA_Message::$_params to fill
+ * @uses PMA_Message::notice()
+ * @param mixed $param
+ * @param boolean $raw
+ */
+ public function addParam($param, $raw = true)
+ {
+ if ($param instanceof PMA_Message) {
+ $this->_params[] = $param;
+ } elseif ($raw) {
+ $this->_params[] = htmlspecialchars($param);
+ } else {
+ $this->_params[] = PMA_Message::notice($param);
+ }
+ }
+
+ /**
+ * add another string to be concatenated on displaying
+ *
+ * @uses PMA_Message::$_added_messages to fill
+ * @uses PMA_Message::notice()
+ * @param string $string to be added
+ * @param string $separator to use between this and previous string/message
+ */
+ public function addString($string, $separator = ' ')
+ {
+ $this->_added_messages[] = $separator;
+ $this->_added_messages[] = PMA_Message::notice($string);
+ }
+
+ /**
+ * add a bunch of messages at once
+ *
+ * @uses PMA_Message::addMessage()
+ * @param array $messages to be added
+ * @param string $separator to use between this and previous string/message
+ */
+ public function addMessages($messages, $separator = ' ')
+ {
+ foreach ($messages as $message) {
+ $this->addMessage($message, $separator);
+ }
+ }
+
+ /**
+ * add another raw message to be concatenated on displaying
+ *
+ * @uses PMA_Message::$_added_messages to fill
+ * @uses PMA_Message::rawNotice()
+ * @param mixed $message to be added
+ * @param string $separator to use between this and previous string/message
+ */
+ public function addMessage($message, $separator = ' ')
+ {
+ if (strlen($separator)) {
+ $this->_added_messages[] = $separator;
+ }
+
+ if ($message instanceof PMA_Message) {
+ $this->_added_messages[] = $message;
+ } else {
+ $this->_added_messages[] = PMA_Message::rawNotice($message);
+ }
+ }
+
+ /**
+ * set all params at once, usually used in conjunction with string
+ *
+ * @uses PMA_Message::sanitize()
+ * @uses PMA_Message::$_params to set
+ * @param array $params
+ * @param boolean $sanitize
+ */
+ public function setParams($params, $sanitize = false)
+ {
+ if ($sanitize) {
+ $params = PMA_Message::sanitize($params);
+ }
+ $this->_params = $params;
+ }
+
+ /**
+ * return all parameters
+ *
+ * @uses PMA_Message::$_params as return value
+ * @return array
+ */
+ public function getParams()
+ {
+ return $this->_params;
+ }
+
+ /**
+ * return all added messages
+ *
+ * @uses PMA_Message::$_added_messages as return value
+ * @return array
+ */
+ public function getAddedMessages()
+ {
+ return $this->_added_messages;
+ }
+
+ /**
+ * Sanitizes $message
+ *
+ * @static
+ * @uses is_array()
+ * @uses htmlspecialchars()
+ * @uses PMA_Message::sanitize() recursiv
+ * @param mixed the message(s)
+ * @return mixed the sanitized message(s)
+ * @access public
+ */
+ static public function sanitize($message)
+ {
+ if (is_array($message)) {
+ foreach ($message as $key => $val) {
+ $message[$key] = PMA_Message::sanitize($val);
+ }
+
+ return $message;
+ }
+
+ return htmlspecialchars($message);
+ }
+
+ /**
+ * decode $message, taking into account our special codes
+ * for formatting
+ *
+ * @static
+ * @uses PREG_SET_ORDER
+ * @uses in_array()
+ * @uses preg_match_all()
+ * @uses preg_match()
+ * @uses preg_replace()
+ * @uses substr()
+ * @uses strtr()
+ * @param string $message the message
+ * @return string the decoded message
+ * @access public
+ */
+ static public function decodeBB($message)
+ {
+ $replace_pairs = array(
+ '[i]' => '<em>', // deprecated by em
+ '[/i]' => '</em>', // deprecated by em
+ '[em]' => '<em>',
+ '[/em]' => '</em>',
+ '[b]' => '<strong>', // deprecated by strong
+ '[/b]' => '</strong>', // deprecated by strong
+ '[strong]' => '<strong>',
+ '[/strong]' => '</strong>',
+ '[tt]' => '<code>', // deprecated by CODE or KBD
+ '[/tt]' => '</code>', // deprecated by CODE or KBD
+ '[code]' => '<code>',
+ '[/code]' => '</code>',
+ '[kbd]' => '<kbd>',
+ '[/kbd]' => '</kbd>',
+ '[br]' => '<br />',
+ '[/a]' => '</a>',
+ '[sup]' => '<sup>',
+ '[/sup]' => '</sup>',
+ );
+
+ $message = strtr($message, $replace_pairs);
+
+ $pattern = '/\[a@([^"@]*)@([^]"]*)\]/';
+
+ if (preg_match_all($pattern, $message, $founds, PREG_SET_ORDER)) {
+ $valid_links = array(
+ 'http', // default http:// links (and https://)
+ './Do', // ./Documentation
+ );
+
+ foreach ($founds as $found) {
+ // only http... and ./Do... allowed
+ if (! in_array(substr($found[1], 0, 4), $valid_links)) {
+ return $message;
+ }
+ // a-z and _ allowed in target
+ if (! empty($found[2]) && preg_match('/[^a-z_]+/i', $found[2])) {
+ return $message;
+ }
+ }
+
+ $message = preg_replace($pattern, '<a href="\1" target="\2">', $message);
+ }
+
+ return $message;
+ }
+
+ /**
+ * wrapper for sprintf()
+ *
+ * @uses sprintf()
+ * @uses func_get_args()
+ * @uses is_array()
+ * @uses array_unshift()
+ * @uses call_user_func_array()
+ * @return string formated
+ */
+ static public function format()
+ {
+ $params = func_get_args();
+ if (is_array($params[1])) {
+ array_unshift($params[1], $params[0]);
+ $params = $params[1];
+ }
+
+ return call_user_func_array('sprintf', $params);
+ }
+
+ /**
+ * returns unique PMA_Message::$_hash, if not exists it will be created
+ *
+ * @uses PMA_Message::$_hash as return value and to set it if required
+ * @uses PMA_Message::getNumber()
+ * @uses PMA_Message::$_string
+ * @uses PMA_Message::$_message
+ * @uses md5()
+ * @param string $file
+ * @return string PMA_Message::$_hash
+ */
+ public function getHash()
+ {
+ if (null === $this->_hash) {
+ $this->_hash = md5(
+ $this->getNumber() .
+ $this->_string .
+ $this->_message
+ );
+ }
+
+ return $this->_hash;
+ }
+
+ /**
+ * returns compiled message
+ *
+ * @uses PMA_Message::$_message as return value
+ * @uses PMA_Message::getString()
+ * @uses PMA_Message::getParams()
+ * @uses PMA_Message::format()
+ * @uses PMA_Message::decodeBB()
+ * @uses PMA_Message::getAddedMessages()
+ * @uses strlen()
+ * @return string complete message
+ */
+ public function getMessage()
+ {
+ $message = $this->_message;
+
+ if (0 === strlen($message)) {
+ $string = $this->getString();
+ if (isset($GLOBALS[$string])) {
+ $message = $GLOBALS[$string];
+ } elseif (0 === strlen($string)) {
+ $message = '';
+ } else {
+ $message = $string;
+ }
+ }
+
+ if (count($this->getParams()) > 0) {
+ $message = PMA_Message::format($message, $this->getParams());
+ }
+
+ $message = PMA_Message::decodeBB($message);
+
+ foreach ($this->getAddedMessages() as $add_message) {
+ $message .= $add_message;
+ }
+
+ return $message;
+ }
+
+ /**
+ * returns PMA_Message::$_string
+ *
+ * @uses PMA_Message::$_string as return value
+ * @return string PMA_Message::$_string
+ */
+ public function getString()
+ {
+ return $this->_string;
+ }
+
+ /**
+ * returns PMA_Message::$_number
+ *
+ * @uses PMA_Message::$_number as return value
+ * @return integer PMA_Message::$_number
+ */
+ public function getNumber()
+ {
+ return $this->_number;
+ }
+
+ /**
+ * returns level of message
+ *
+ * @uses PMA_Message::$level
+ * @uses PMA_Message::getNumber()
+ * @return string level of message
+ */
+ public function getLevel()
+ {
+ return PMA_Message::$level[$this->getNumber()];
+ }
+
+ /**
+ * Displays the message in HTML
+ *
+ * @uses PMA_Message::getLevel()
+ * @uses PMA_Message::getMessage()
+ * @uses PMA_Message::isDisplayed()
+ */
+ public function display()
+ {
+ echo $this->getDisplay();
+ $this->isDisplayed(true);
+ }
+
+ /**
+ * returns HTML code for displaying this message
+ *
+ * @return string whole message box
+ */
+ public function getDisplay()
+ {
+ return '<div class="' . $this->getLevel() . '">'
+ . $this->getMessage() . '</div>';
+ }
+
+ /**
+ * sets and returns whether the message was displayed or not
+ *
+ * @uses PMA_Message::$_is_displayed to set it and/or return it
+ * @param boolean $is_displayed
+ * @return boolean PMA_Message::$_is_displayed
+ */
+ public function isDisplayed($is_displayed = false)
+ {
+ if ($is_displayed){
+ $this->_is_displayed = $is_displayed;
+ }
+
+ return $this->_is_displayed;
+ }
+}
+?>
diff --git a/libraries/PMA.php b/libraries/PMA.php
new file mode 100644
index 0000000000..b85f04c7a6
--- /dev/null
+++ b/libraries/PMA.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Enter description here...
+ *
+ */
+require_once './libraries/List_Database.class.php';
+
+/**
+ * phpMyAdmin main Controller
+ *
+ *
+ *
+ */
+class PMA
+{
+ /**
+ * Holds database list
+ *
+ * @var PMA_List_Database
+ */
+ protected $databases = null;
+
+ /**
+ * DBMS user link
+ *
+ * @var resource
+ */
+ protected $userlink = null;
+
+ /**
+ * DBMS control link
+ *
+ * @var resource
+ */
+ protected $controllink = null;
+
+ /**
+ * magic access to protected/inaccessible members/properties
+ *
+ * @see http://php.net/language.oop5.overloading
+ */
+ public function __get($param)
+ {
+ switch ($param) {
+ case 'databases' :
+ return $this->getDatabaseList();
+ break;
+ case 'userlink' :
+ return $this->userlink;
+ break;
+ case 'controllink' :
+ return $this->controllink;
+ break;
+ }
+
+ return null;
+ }
+
+ /**
+ * magic access to protected/inaccessible members/properties
+ *
+ * @see http://php.net/language.oop5.overloading
+ */
+ public function __set($param, $value)
+ {
+ switch ($param) {
+ case 'userlink' :
+ $this->userlink = $value;
+ break;
+ case 'controllink' :
+ $this->controllink = $value;
+ break;
+ }
+ }
+
+ /**
+ * Accessor to PMA::$databases
+ *
+ * @uses PMA::$databases
+ * @uses PMA::$userlink
+ * @uses PMA::$controllink
+ * @uses PMA_List_Database
+ * @return PMA_List_Databases
+ */
+ public function getDatabaseList()
+ {
+ if (null === $this->databases) {
+ $this->databases = new PMA_List_Database($this->userlink, $this->controllink);
+ }
+
+ return $this->databases;
+ }
+}
+?>
diff --git a/libraries/Partition.class.php b/libraries/Partition.class.php
new file mode 100644
index 0000000000..bf6209093b
--- /dev/null
+++ b/libraries/Partition.class.php
@@ -0,0 +1,55 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Library for extracting information about the partitions
+ *
+ * @version $Id$
+ */
+
+
+/**
+ * base Partition Class
+ */
+class PMA_Partition
+{
+ /**
+ * returns array of partition names for a specific db/table
+ *
+ * @access public
+ * @uses PMA_DBI_fetch_result()
+ * @return array of partition names
+ */
+ static public function getPartitionNames($db, $table)
+ {
+ if (PMA_Partition::havePartitioning()) {
+ return PMA_DBI_fetch_result("select `PARTITION_NAME` from `information_schema`.`PARTITIONS` where `TABLE_SCHEMA` = '" . $db . "' and `TABLE_NAME` = '" . $table . "'");
+ } else {
+ return array();
+ }
+ }
+
+ /**
+ * checks if MySQL server supports partitioning
+ *
+ * @static
+ * @staticvar boolean $have_partitioning
+ * @staticvar boolean $already_checked
+ * @access public
+ * @uses PMA_DBI_fetch_result()
+ * @return boolean
+ */
+ static public function havePartitioning()
+ {
+ static $have_partitioning = false;
+ static $already_checked = false;
+
+ if (! $already_checked) {
+ $have_partitioning = PMA_MYSQL_INT_VERSION >= 50100 && PMA_DBI_fetch_value("SHOW VARIABLES LIKE 'have_partitioning';");
+ $already_checked = true;
+ }
+ return $have_partitioning;
+ }
+
+}
+
+?>
diff --git a/libraries/StorageEngine.class.php b/libraries/StorageEngine.class.php
new file mode 100644
index 0000000000..69d51e557e
--- /dev/null
+++ b/libraries/StorageEngine.class.php
@@ -0,0 +1,422 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Library for extracting information about the available storage engines
+ *
+ * @version $Id$
+ */
+
+/**
+ * defines
+ */
+define('PMA_ENGINE_SUPPORT_NO', 0);
+define('PMA_ENGINE_SUPPORT_DISABLED', 1);
+define('PMA_ENGINE_SUPPORT_YES', 2);
+define('PMA_ENGINE_SUPPORT_DEFAULT', 3);
+
+define('PMA_ENGINE_DETAILS_TYPE_PLAINTEXT', 0);
+define('PMA_ENGINE_DETAILS_TYPE_SIZE', 1);
+define('PMA_ENGINE_DETAILS_TYPE_NUMERIC', 2); //Has no effect yet...
+define('PMA_ENGINE_DETAILS_TYPE_BOOLEAN', 3); // 'ON' or 'OFF'
+
+/**
+ * base Storage Engine Class
+ */
+class PMA_StorageEngine
+{
+ /**
+ * @var string engine name
+ */
+ var $engine = 'dummy';
+
+ /**
+ * @var string engine title/description
+ */
+ var $title = 'PMA Dummy Engine Class';
+
+ /**
+ * @var string engine lang description
+ */
+ var $comment = 'If you read this text inside phpMyAdmin, something went wrong...';
+
+ /**
+ * @var integer engine supported by current server
+ */
+ var $support = PMA_ENGINE_SUPPORT_NO;
+
+ /**
+ * returns array of storage engines
+ *
+ * @static
+ * @staticvar array $storage_engines storage engines
+ * @access public
+ * @uses PMA_DBI_fetch_result()
+ * @return array of storage engines
+ */
+ static public function getStorageEngines()
+ {
+ static $storage_engines = null;
+
+ if (null !== $storage_engines) {
+ return $storage_engines;
+ }
+
+ return PMA_DBI_fetch_result('SHOW STORAGE ENGINES', 'Engine');
+ }
+
+ /**
+ * returns HTML code for storage engine select box
+ *
+ * @author rabus
+ * @static
+ * @uses PMA_StorageEngine::getStorageEngines()
+ * @uses strtolower()
+ * @uses htmlspecialchars()
+ * @param string $name The name of the select form element
+ * @param string $id The ID of the form field
+ * @param string $selected The selected engine
+ * @param boolean $offerUnavailableEngines
+ * Should unavailable storage engines be offered?
+ * @return string html selectbox
+ */
+ static public function getHtmlSelect($name = 'engine', $id = null,
+ $selected = null, $offerUnavailableEngines = false)
+ {
+ $selected = strtolower($selected);
+ $output = '<select name="' . $name . '"'
+ . (empty($id) ? '' : ' id="' . $id . '"') . '>' . "\n";
+
+ foreach (PMA_StorageEngine::getStorageEngines() as $key => $details) {
+ if (!$offerUnavailableEngines
+ && ($details['Support'] == 'NO' || $details['Support'] == 'DISABLED')) {
+ continue;
+ }
+ // currently (MySQL 5.1.26) there is no way we can be informed
+ // that PBMS does not support normal table creation so
+ // we use an exception here
+ if ('PBMS' == $details['Engine']) {
+ continue;
+ }
+ $output .= ' <option value="' . htmlspecialchars($key). '"'
+ . (empty($details['Comment'])
+ ? '' : ' title="' . htmlspecialchars($details['Comment']) . '"')
+ . (strtolower($key) == $selected || (empty($selected) && $details['Support'] == 'DEFAULT')
+ ? ' selected="selected"' : '') . '>' . "\n"
+ . ' ' . htmlspecialchars($details['Engine']) . "\n"
+ . ' </option>' . "\n";
+ }
+ $output .= '</select>' . "\n";
+ return $output;
+ }
+
+ /**
+ * public static final PMA_StorageEngine getEngine()
+ *
+ * Loads the corresponding engine plugin, if available.
+ *
+ * @uses str_replace()
+ * @uses file_exists()
+ * @uses PMA_StorageEngine
+ * @param string $engine The engine ID
+ * @return object The engine plugin
+ */
+ static public function getEngine($engine)
+ {
+ $engine = str_replace('/', '', str_replace('.', '', $engine));
+ $engine_lowercase_filename = strtolower($engine);
+ if (file_exists('./libraries/engines/' . $engine_lowercase_filename . '.lib.php')
+ && include_once './libraries/engines/' . $engine_lowercase_filename . '.lib.php') {
+ $class_name = 'PMA_StorageEngine_' . $engine;
+ $engine_object = new $class_name($engine);
+ } else {
+ $engine_object = new PMA_StorageEngine($engine);
+ }
+ return $engine_object;
+ }
+
+ /**
+ * return true if given engine name is supported/valid, otherwise false
+ *
+ * @static
+ * @uses PMA_StorageEngine::getStorageEngines()
+ * @param string $engine name of engine
+ * @reutrn boolean whether $engine is valid or not
+ */
+ static public function isValid($engine)
+ {
+ $storage_engines = PMA_StorageEngine::getStorageEngines();
+ return isset($storage_engines[$engine]);
+ }
+
+ /**
+ * returns as HTML table of the engine's server variables
+ *
+ * @uses PMA_ENGINE_DETAILS_TYPE_SIZE
+ * @uses PMA_ENGINE_DETAILS_TYPE_NUMERIC
+ * @uses PMA_StorageEngine::getVariablesStatus()
+ * @uses $GLOBALS['strNoDetailsForEngine']
+ * @uses PMA_showHint()
+ * @uses PMA_formatByteDown()
+ * @uses PMA_formatNumber()
+ * @uses htmlspecialchars()
+ * @return string The table that was generated based on the retrieved information
+ */
+ function getHtmlVariables()
+ {
+ $odd_row = false;
+ $ret = '';
+
+ foreach ($this->getVariablesStatus() as $details) {
+ $ret .= '<tr class="' . ($odd_row ? 'odd' : 'even') . '">' . "\n"
+ . ' <td>' . "\n";
+ if (!empty($details['desc'])) {
+ $ret .= ' ' . PMA_showHint($details['desc']) . "\n";
+ }
+ $ret .= ' </td>' . "\n"
+ . ' <th>' . htmlspecialchars($details['title']) . '</th>' . "\n"
+ . ' <td class="value">';
+ switch ($details['type']) {
+ case PMA_ENGINE_DETAILS_TYPE_SIZE:
+ $parsed_size = PMA_formatByteDown($details['value']);
+ $ret .= $parsed_size[0] . '&nbsp;' . $parsed_size[1];
+ unset($parsed_size);
+ break;
+ case PMA_ENGINE_DETAILS_TYPE_NUMERIC:
+ $ret .= PMA_formatNumber($details['value']) . ' ';
+ break;
+ default:
+ $ret .= htmlspecialchars($details['value']) . ' ';
+ }
+ $ret .= '</td>' . "\n"
+ . '</tr>' . "\n";
+ $odd_row = !$odd_row;
+ }
+
+ if (! $ret) {
+ $ret = '<p>' . "\n"
+ . ' ' . $GLOBALS['strNoDetailsForEngine'] . "\n"
+ . '</p>' . "\n";
+ } else {
+ $ret = '<table class="data">' . "\n" . $ret . '</table>' . "\n";
+ }
+
+ return $ret;
+ }
+
+ /**
+ * returns array with detailed info about engine specific server variables
+ *
+ * @uses PMA_ENGINE_DETAILS_TYPE_PLAINTEXT
+ * @uses PMA_StorageEngine::getVariables()
+ * @uses PMA_StorageEngine::getVariablesLikePattern()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_free_result()
+ * @return array with detailed info about specific engine server variables
+ */
+ function getVariablesStatus()
+ {
+ $variables = $this->getVariables();
+ $like = $this->getVariablesLikePattern();
+
+ if ($like) {
+ $like = " LIKE '" . $like . "' ";
+ } else {
+ $like = '';
+ }
+
+ $mysql_vars = array();
+
+ $sql_query = 'SHOW GLOBAL VARIABLES ' . $like . ';';
+ $res = PMA_DBI_query($sql_query);
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ if (isset($variables[$row['Variable_name']])) {
+ $mysql_vars[$row['Variable_name']] = $variables[$row['Variable_name']];
+ } elseif (! $like
+ && strpos(strtolower($row['Variable_name']), strtolower($this->engine)) !== 0) {
+ continue;
+ }
+ $mysql_vars[$row['Variable_name']]['value'] = $row['Value'];
+
+ if (empty($mysql_vars[$row['Variable_name']]['title'])) {
+ $mysql_vars[$row['Variable_name']]['title'] = $row['Variable_name'];
+ }
+
+ if (! isset($mysql_vars[$row['Variable_name']]['type'])) {
+ $mysql_vars[$row['Variable_name']]['type'] = PMA_ENGINE_DETAILS_TYPE_PLAINTEXT;
+ }
+ }
+ PMA_DBI_free_result($res);
+
+ return $mysql_vars;
+ }
+
+ /**
+ * Constructor
+ *
+ * @uses PMA_StorageEngine::getStorageEngines()
+ * @uses PMA_ENGINE_SUPPORT_DEFAULT
+ * @uses PMA_ENGINE_SUPPORT_YES
+ * @uses PMA_ENGINE_SUPPORT_DISABLED
+ * @uses PMA_ENGINE_SUPPORT_NO
+ * @uses $this->engine
+ * @uses $this->title
+ * @uses $this->comment
+ * @uses $this->support
+ * @param string $engine The engine ID
+ */
+ function __construct($engine)
+ {
+ $storage_engines = PMA_StorageEngine::getStorageEngines();
+ if (!empty($storage_engines[$engine])) {
+ $this->engine = $engine;
+ $this->title = $storage_engines[$engine]['Engine'];
+ $this->comment =
+ (isset($storage_engines[$engine]['Comment'])
+ ? $storage_engines[$engine]['Comment']
+ : '');
+ switch ($storage_engines[$engine]['Support']) {
+ case 'DEFAULT':
+ $this->support = PMA_ENGINE_SUPPORT_DEFAULT;
+ break;
+ case 'YES':
+ $this->support = PMA_ENGINE_SUPPORT_YES;
+ break;
+ case 'DISABLED':
+ $this->support = PMA_ENGINE_SUPPORT_DISABLED;
+ break;
+ case 'NO':
+ default:
+ $this->support = PMA_ENGINE_SUPPORT_NO;
+ }
+ }
+ }
+
+ /**
+ * public String getTitle()
+ *
+ * Reveals the engine's title
+ * @uses $this->title
+ * @return string The title
+ */
+ function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * public String getComment()
+ *
+ * Fetches the server's comment about this engine
+ * @uses $this->comment
+ * @return string The comment
+ */
+ function getComment()
+ {
+ return $this->comment;
+ }
+
+ /**
+ * public String getSupportInformationMessage()
+ *
+ * @uses $GLOBALS['strDefaultEngine']
+ * @uses $GLOBALS['strEngineAvailable']
+ * @uses $GLOBALS['strEngineDisabled']
+ * @uses $GLOBALS['strEngineUnsupported']
+ * @uses $GLOBALS['strEngineUnsupported']
+ * @uses PMA_ENGINE_SUPPORT_DEFAULT
+ * @uses PMA_ENGINE_SUPPORT_YES
+ * @uses PMA_ENGINE_SUPPORT_DISABLED
+ * @uses PMA_ENGINE_SUPPORT_NO
+ * @uses $this->support
+ * @uses $this->title
+ * @uses sprintf
+ * @return string The localized message.
+ */
+ function getSupportInformationMessage()
+ {
+ switch ($this->support) {
+ case PMA_ENGINE_SUPPORT_DEFAULT:
+ $message = $GLOBALS['strDefaultEngine'];
+ break;
+ case PMA_ENGINE_SUPPORT_YES:
+ $message = $GLOBALS['strEngineAvailable'];
+ break;
+ case PMA_ENGINE_SUPPORT_DISABLED:
+ $message = $GLOBALS['strEngineDisabled'];
+ break;
+ case PMA_ENGINE_SUPPORT_NO:
+ default:
+ $message = $GLOBALS['strEngineUnsupported'];
+ }
+ return sprintf($message, htmlspecialchars($this->title));
+ }
+
+ /**
+ * public string[][] getVariables()
+ *
+ * Generates a list of MySQL variables that provide information about this
+ * engine. This function should be overridden when extending this class
+ * for a particular engine.
+ *
+ * @abstract
+ * @return Array The list of variables.
+ */
+ function getVariables()
+ {
+ return array();
+ }
+
+ /**
+ * returns string with filename for the MySQL helppage
+ * about this storage engne
+ *
+ * @return string mysql helppage filename
+ */
+ function getMysqlHelpPage()
+ {
+ return $this->engine . '-storage-engine';
+ }
+
+ /**
+ * public string getVariablesLikePattern()
+ *
+ * @abstract
+ * @return string SQL query LIKE pattern
+ */
+ function getVariablesLikePattern()
+ {
+ return false;
+ }
+
+ /**
+ * public String[] getInfoPages()
+ *
+ * Returns a list of available information pages with labels
+ *
+ * @abstract
+ * @return array The list
+ */
+ function getInfoPages()
+ {
+ return array();
+ }
+
+ /**
+ * public String getPage()
+ *
+ * Generates the requested information page
+ *
+ * @abstract
+ * @param string $id The page ID
+ *
+ * @return string The page
+ * boolean or false on error.
+ */
+ function getPage($id)
+ {
+ return false;
+ }
+}
+
+?>
diff --git a/libraries/Table.class.php b/libraries/Table.class.php
new file mode 100644
index 0000000000..acb806761b
--- /dev/null
+++ b/libraries/Table.class.php
@@ -0,0 +1,1152 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * @todo make use of PMA_Message and PMA_Error
+ */
+class PMA_Table
+{
+
+ static $cache = array();
+
+ /**
+ * @var string table name
+ */
+ var $name = '';
+
+ /**
+ * @var string database name
+ */
+ var $db_name = '';
+
+ /**
+ * @var string engine (innodb, myisam, bdb, ...)
+ */
+ var $engine = '';
+
+ /**
+ * @var string type (view, base table, system view)
+ */
+ var $type = '';
+
+ /**
+ * @var array settings
+ */
+ var $settings = array();
+
+ /**
+ * @var array errors occured
+ */
+ var $errors = array();
+
+ /**
+ * @var array messages
+ */
+ var $messages = array();
+
+ /**
+ * Constructor
+ *
+ * @param string $table_name table name
+ * @param string $db_name database name
+ */
+ function __construct($table_name, $db_name)
+ {
+ $this->setName($table_name);
+ $this->setDbName($db_name);
+ }
+
+ /**
+ * @see PMA_Table::getName()
+ */
+ function __toString()
+ {
+ return $this->getName();
+ }
+
+ function getLastError()
+ {
+ return end($this->errors);
+ }
+
+ function getLastMessage()
+ {
+ return end($this->messages);
+ }
+
+ /**
+ * sets table name
+ *
+ * @uses $this->name to set it
+ * @param string $table_name new table name
+ */
+ function setName($table_name)
+ {
+ $this->name = $table_name;
+ }
+
+ /**
+ * returns table name
+ *
+ * @uses $this->name as return value
+ * @param boolean whether to quote name with backticks ``
+ * @return string table name
+ */
+ function getName($quoted = false)
+ {
+ if ($quoted) {
+ return PMA_backquote($this->name);
+ }
+ return $this->name;
+ }
+
+ /**
+ * sets database name for this table
+ *
+ * @uses $this->db_name to set it
+ * @param string $db_name
+ */
+ function setDbName($db_name)
+ {
+ $this->db_name = $db_name;
+ }
+
+ /**
+ * returns database name for this table
+ *
+ * @uses $this->db_name as return value
+ * @param boolean whether to quote name with backticks ``
+ * @return string database name for this table
+ */
+ function getDbName($quoted = false)
+ {
+ if ($quoted) {
+ return PMA_backquote($this->db_name);
+ }
+ return $this->db_name;
+ }
+
+ /**
+ * returns full name for table, including database name
+ *
+ * @param boolean whether to quote name with backticks ``
+ */
+ function getFullName($quoted = false)
+ {
+ return $this->getDbName($quoted) . '.' . $this->getName($quoted);
+ }
+
+ static public function isView($db = null, $table = null)
+ {
+ if (strlen($db) && strlen($table)) {
+ return PMA_Table::_isView($db, $table);
+ }
+
+ if (isset($this) && strpos($this->get('TABLE TYPE'), 'VIEW')) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * sets given $value for given $param
+ *
+ * @uses $this->settings to add or change value
+ * @param string param name
+ * @param mixed param value
+ */
+ function set($param, $value)
+ {
+ $this->settings[$param] = $value;
+ }
+
+ /**
+ * returns value for given setting/param
+ *
+ * @uses $this->settings to return value
+ * @param string name for value to return
+ * @return mixed value for $param
+ */
+ function get($param)
+ {
+ if (isset($this->settings[$param])) {
+ return $this->settings[$param];
+ }
+
+ return null;
+ }
+
+ /**
+ * loads structure data
+ * (this function is work in progress? not yet used)
+ */
+ function loadStructure()
+ {
+ $table_info = PMA_DBI_get_tables_full($this->getDbName(), $this->getName());
+
+ if (false === $table_info) {
+ return false;
+ }
+
+ $this->settings = $table_info;
+
+ if ($this->get('TABLE_ROWS') === null) {
+ $this->set('TABLE_ROWS', PMA_Table::countRecords($this->getDbName(),
+ $this->getName(), true, true));
+ }
+
+ $create_options = explode(' ', $this->get('TABLE_ROWS'));
+
+ // export create options by its name as variables into gloabel namespace
+ // f.e. pack_keys=1 becomes available as $pack_keys with value of '1'
+ foreach ($create_options as $each_create_option) {
+ $each_create_option = explode('=', $each_create_option);
+ if (isset($each_create_option[1])) {
+ $this->set($$each_create_option[0], $each_create_option[1]);
+ }
+ }
+ }
+
+ /**
+ * Checks if this "table" is a view
+ *
+ * @deprecated
+ * @todo see what we could do with the possible existence of $table_is_view
+ * @param string the database name
+ * @param string the table name
+ *
+ * @return boolean whether this is a view
+ *
+ * @access public
+ */
+ static protected function _isView($db, $table)
+ {
+ // maybe we already know if the table is a view
+ if (isset($GLOBALS['tbl_is_view']) && $GLOBALS['tbl_is_view']) {
+ return true;
+ }
+
+ // This would be the correct way of doing the check but at least in
+ // MySQL 5.0.33 it's too slow when there are hundreds of databases
+ // and/or tables (more than 3 minutes for 400 tables)
+ /*if (false === PMA_DBI_fetch_value('SELECT TABLE_NAME FROM `information_schema`.`VIEWS` WHERE `TABLE_SCHEMA` = \'' . $db . '\' AND `TABLE_NAME` = \'' . $table . '\';')) {
+ return false;
+ } else {
+ return true;
+ } */
+ // A more complete verification would be to check if all columns
+ // from the result set are NULL except Name and Comment.
+ // MySQL from 5.0.0 to 5.0.12 returns 'view',
+ // from 5.0.13 returns 'VIEW'.
+ // use substr() because the comment might contain something like:
+ // (VIEW 'BASE2.VTEST' REFERENCES INVALID TABLE(S) OR COLUMN(S) OR FUNCTION)
+ $comment = strtoupper(PMA_Table::sGetStatusInfo($db, $table, 'Comment'));
+ return substr($comment, 0, 4) == 'VIEW';
+ }
+
+ static public function sGetToolTip($db, $table)
+ {
+ return PMA_Table::sGetStatusInfo($db, $table, 'Comment')
+ . ' (' . PMA_Table::countRecords($db, $table, true) . ')';
+ }
+
+ static public function sGetStatusInfo($db, $table, $info = null, $force_read = false)
+ {
+ if (! isset(PMA_Table::$cache[$db][$table]) || $force_read) {
+ PMA_Table::$cache[$db][$table] = PMA_DBI_fetch_single_row('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ' LIKE \'' . $table . '\'');
+ }
+
+ if (null === $info) {
+ return PMA_Table::$cache[$db][$table];
+ }
+
+ if (! isset(PMA_Table::$cache[$db][$table][$info]) || $force_read) {
+ PMA_Table::$cache[$db][$table] = PMA_DBI_fetch_single_row('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ' LIKE \'' . $table . '\'');
+ }
+ return PMA_Table::$cache[$db][$table][$info];
+ }
+
+ /**
+ * generates column/field specification for ALTER or CREATE TABLE syntax
+ *
+ * @todo move into class PMA_Column
+ * @todo on the interface, some js to clear the default value when the default
+ * current_timestamp is checked
+ * @static
+ * @param string $name name
+ * @param string $type type ('INT', 'VARCHAR', 'BIT', ...)
+ * @param string $length length ('2', '5,2', '', ...)
+ * @param string $attribute
+ * @param string $collation
+ * @param string $null with 'NULL' or 'NOT NULL'
+ * @param string $default_type whether default is CURRENT_TIMESTAMP,
+ * NULL, NONE, USER_DEFINED
+ * @param boolean $default_value default value for USER_DEFINED default type
+ * @param string $extra 'AUTO_INCREMENT'
+ * @param string $comment field comment
+ * @param array &$field_primary list of fields for PRIMARY KEY
+ * @param string $index
+ * @return string field specification
+ */
+ static function generateFieldSpec($name, $type, $length = '', $attribute = '',
+ $collation = '', $null = false, $default_type = 'USER_DEFINED',
+ $default_value = '', $extra = '', $comment = '',
+ &$field_primary, $index, $default_orig = false)
+ {
+
+ $is_timestamp = strpos(' ' . strtoupper($type), 'TIMESTAMP') == 1;
+
+ /**
+ * @todo include db-name
+ */
+ $query = PMA_backquote($name) . ' ' . $type;
+
+ if ($length != ''
+ && !preg_match('@^(DATE|DATETIME|TIME|TINYBLOB|TINYTEXT|BLOB|TEXT|MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT)$@i', $type)) {
+ $query .= '(' . $length . ')';
+ }
+
+ if ($attribute != '') {
+ $query .= ' ' . $attribute;
+ }
+
+ if (!empty($collation) && $collation != 'NULL'
+ && preg_match('@^(TINYTEXT|TEXT|MEDIUMTEXT|LONGTEXT|VARCHAR|CHAR|ENUM|SET)$@i', $type)) {
+ $query .= PMA_generateCharsetQueryPart($collation);
+ }
+
+ if ($null !== false) {
+ if ($null == 'NULL') {
+ $query .= ' NULL';
+ } else {
+ $query .= ' NOT NULL';
+ }
+ }
+
+ switch ($default_type) {
+ case 'USER_DEFINED' :
+ if ($is_timestamp && $default_value === '0') {
+ // a TIMESTAMP does not accept DEFAULT '0'
+ // but DEFAULT 0 works
+ $query .= ' DEFAULT 0';
+ } elseif ($type == 'BIT') {
+ $query .= ' DEFAULT b\'' . preg_replace('/[^01]/', '0', $default_value) . '\'';
+ } else {
+ $query .= ' DEFAULT \'' . PMA_sqlAddslashes($default_value) . '\'';
+ }
+ break;
+ case 'NULL' :
+ case 'CURRENT_TIMESTAMP' :
+ $query .= ' DEFAULT ' . $default_type;
+ break;
+ case 'NONE' :
+ default :
+ break;
+ }
+
+ if (!empty($extra)) {
+ $query .= ' ' . $extra;
+ // Force an auto_increment field to be part of the primary key
+ // even if user did not tick the PK box;
+ if ($extra == 'AUTO_INCREMENT') {
+ $primary_cnt = count($field_primary);
+ if (1 == $primary_cnt) {
+ for ($j = 0; $j < $primary_cnt && $field_primary[$j] != $index; $j++) {
+ //void
+ }
+ if (isset($field_primary[$j]) && $field_primary[$j] == $index) {
+ $query .= ' PRIMARY KEY';
+ unset($field_primary[$j]);
+ }
+ // but the PK could contain other columns so do not append
+ // a PRIMARY KEY clause, just add a member to $field_primary
+ } else {
+ $found_in_pk = false;
+ for ($j = 0; $j < $primary_cnt; $j++) {
+ if ($field_primary[$j] == $index) {
+ $found_in_pk = true;
+ break;
+ }
+ } // end for
+ if (! $found_in_pk) {
+ $field_primary[] = $index;
+ }
+ }
+ } // end if (auto_increment)
+ }
+ if (!empty($comment)) {
+ $query .= " COMMENT '" . PMA_sqlAddslashes($comment) . "'";
+ }
+ return $query;
+ } // end function
+
+ /**
+ * Counts and returns (or displays) the number of records in a table
+ *
+ * Revision 13 July 2001: Patch for limiting dump size from
+ * vinay@sanisoft.com & girish@sanisoft.com
+ *
+ * @param string the current database name
+ * @param string the current table name
+ * @param boolean whether to retain or to displays the result
+ * @param boolean whether to force an exact count
+ *
+ * @return mixed the number of records if "retain" param is true,
+ * otherwise true
+ *
+ * @access public
+ */
+ static public function countRecords($db, $table, $ret = false,
+ $force_exact = false, $is_view = null)
+ {
+ if (isset(PMA_Table::$cache[$db][$table]['ExactRows'])) {
+ $row_count = PMA_Table::$cache[$db][$table]['ExactRows'];
+ } else {
+ $row_count = false;
+
+ if (null === $is_view) {
+ $is_view = PMA_Table::isView($db, $table);
+ }
+
+ if (! $force_exact) {
+ if (! isset(PMA_Table::$cache[$db][$table]['Rows']) && ! $is_view) {
+ PMA_Table::$cache[$db][$table] = PMA_DBI_fetch_single_row('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ' LIKE \'' . PMA_sqlAddslashes($table, true) . '\'');
+ }
+ $row_count = PMA_Table::$cache[$db][$table]['Rows'];
+ }
+
+ // for a VIEW, $row_count is always false at this point
+ if (false === $row_count || $row_count < $GLOBALS['cfg']['MaxExactCount']) {
+ if (! $is_view) {
+ $row_count = PMA_DBI_fetch_value(
+ 'SELECT COUNT(*) FROM ' . PMA_backquote($db) . '.'
+ . PMA_backquote($table));
+ } else {
+ // For complex views, even trying to get a partial record
+ // count could bring down a server, so we offer an
+ // alternative: setting MaxExactCountViews to 0 will bypass
+ // completely the record counting for views
+
+ if ($GLOBALS['cfg']['MaxExactCountViews'] == 0) {
+ $row_count = 0;
+ } else {
+ // Counting all rows of a VIEW could be too long, so use
+ // a LIMIT clause.
+ // Use try_query because it can fail (a VIEW is based on
+ // a table that no longer exists)
+ $result = PMA_DBI_try_query(
+ 'SELECT 1 FROM ' . PMA_backquote($db) . '.'
+ . PMA_backquote($table) . ' LIMIT '
+ . $GLOBALS['cfg']['MaxExactCountViews'],
+ null, PMA_DBI_QUERY_STORE);
+ if (!PMA_DBI_getError()) {
+ $row_count = PMA_DBI_num_rows($result);
+ PMA_DBI_free_result($result);
+ }
+ }
+ }
+ PMA_Table::$cache[$db][$table]['ExactRows'] = $row_count;
+ }
+ }
+
+ if ($ret) {
+ return $row_count;
+ }
+
+ /**
+ * @deprecated at the moment nowhere is $return = false used
+ */
+ // Note: as of PMA 2.8.0, we no longer seem to be using
+ // PMA_Table::countRecords() in display mode.
+ echo PMA_formatNumber($row_count, 0);
+ if ($is_view) {
+ echo '&nbsp;'
+ . sprintf($GLOBALS['strViewHasAtLeast'],
+ $GLOBALS['cfg']['MaxExactCount'],
+ '[a@./Documentation.html#cfg_MaxExactCount@_blank]', '[/a]');
+ }
+ } // end of the 'PMA_Table::countRecords()' function
+
+ /**
+ * @see PMA_Table::generateFieldSpec()
+ */
+ static public function generateAlter($oldcol, $newcol, $type, $length,
+ $attribute, $collation, $null, $default_type, $default_value,
+ $extra, $comment = '', &$field_primary, $index, $default_orig)
+ {
+ return PMA_backquote($oldcol) . ' '
+ . PMA_Table::generateFieldSpec($newcol, $type, $length, $attribute,
+ $collation, $null, $default_type, $default_value, $extra,
+ $comment, $field_primary, $index, $default_orig);
+ } // end function
+
+ /**
+ * Inserts existing entries in a PMA_* table by reading a value from an old entry
+ *
+ * @param string The array index, which Relation feature to check
+ * ('relwork', 'commwork', ...)
+ * @param string The array index, which PMA-table to update
+ * ('bookmark', 'relation', ...)
+ * @param array Which fields will be SELECT'ed from the old entry
+ * @param array Which fields will be used for the WHERE query
+ * (array('FIELDNAME' => 'FIELDVALUE'))
+ * @param array Which fields will be used as new VALUES. These are the important
+ * keys which differ from the old entry.
+ * (array('FIELDNAME' => 'NEW FIELDVALUE'))
+
+ * @global string relation variable
+ *
+ * @author Garvin Hicking <me@supergarv.de>
+ */
+ static public function duplicateInfo($work, $pma_table, $get_fields, $where_fields,
+ $new_fields)
+ {
+ $last_id = -1;
+
+ if (isset($GLOBALS['cfgRelation']) && $GLOBALS['cfgRelation'][$work]) {
+ $select_parts = array();
+ $row_fields = array();
+ foreach ($get_fields as $get_field) {
+ $select_parts[] = PMA_backquote($get_field);
+ $row_fields[$get_field] = 'cc';
+ }
+
+ $where_parts = array();
+ foreach ($where_fields as $_where => $_value) {
+ $where_parts[] = PMA_backquote($_where) . ' = \''
+ . PMA_sqlAddslashes($_value) . '\'';
+ }
+
+ $new_parts = array();
+ $new_value_parts = array();
+ foreach ($new_fields as $_where => $_value) {
+ $new_parts[] = PMA_backquote($_where);
+ $new_value_parts[] = PMA_sqlAddslashes($_value);
+ }
+
+ $table_copy_query = '
+ SELECT ' . implode(', ', $select_parts) . '
+ FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . PMA_backquote($GLOBALS['cfgRelation'][$pma_table]) . '
+ WHERE ' . implode(' AND ', $where_parts);
+
+ // must use PMA_DBI_QUERY_STORE here, since we execute another
+ // query inside the loop
+ $table_copy_rs = PMA_query_as_cu($table_copy_query, true,
+ PMA_DBI_QUERY_STORE);
+
+ while ($table_copy_row = @PMA_DBI_fetch_assoc($table_copy_rs)) {
+ $value_parts = array();
+ foreach ($table_copy_row as $_key => $_val) {
+ if (isset($row_fields[$_key]) && $row_fields[$_key] == 'cc') {
+ $value_parts[] = PMA_sqlAddslashes($_val);
+ }
+ }
+
+ $new_table_query = '
+ INSERT IGNORE INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db'])
+ . '.' . PMA_backquote($GLOBALS['cfgRelation'][$pma_table]) . '
+ (' . implode(', ', $select_parts) . ',
+ ' . implode(', ', $new_parts) . ')
+ VALUES
+ (\'' . implode('\', \'', $value_parts) . '\',
+ \'' . implode('\', \'', $new_value_parts) . '\')';
+
+ PMA_query_as_cu($new_table_query);
+ $last_id = PMA_DBI_insert_id();
+ } // end while
+
+ PMA_DBI_free_result($table_copy_rs);
+
+ return $last_id;
+ }
+
+ return true;
+ } // end of 'PMA_Table::duplicateInfo()' function
+
+
+ /**
+ * Copies or renames table
+ * @todo use RENAME for move operations
+ * - would work only if the databases are on the same filesystem,
+ * how can we check that? try the operation and
+ * catch an error?
+ * - for views, only if MYSQL > 50013
+ * - still have to handle pmadb synch.
+ *
+ * @author Michal Cihar <michal@cihar.com>
+ */
+ static public function moveCopy($source_db, $source_table, $target_db, $target_table, $what, $move, $mode)
+ {
+ global $err_url;
+
+ // set export settings we need
+ $GLOBALS['sql_backquotes'] = 1;
+ $GLOBALS['asfile'] = 1;
+
+ // Ensure the target is valid
+ if (! $GLOBALS['pma']->databases->exists($source_db, $target_db)) {
+ if (! $GLOBALS['pma']->databases->exists($source_db)) {
+ $GLOBALS['message'] = PMA_Message::rawError('source database `'
+ . htmlspecialchars($source_db) . '` not found');
+ }
+ if (! $GLOBALS['pma']->databases->exists($target_db)) {
+ $GLOBALS['message'] = PMA_Message::rawError('target database `'
+ . htmlspecialchars($target_db) . '` not found');
+ }
+ return false;
+ }
+
+ $source = PMA_backquote($source_db) . '.' . PMA_backquote($source_table);
+ if (! isset($target_db) || ! strlen($target_db)) {
+ $target_db = $source_db;
+ }
+
+ // Doing a select_db could avoid some problems with replicated databases,
+ // when moving table from replicated one to not replicated one
+ PMA_DBI_select_db($target_db);
+
+ $target = PMA_backquote($target_db) . '.' . PMA_backquote($target_table);
+
+ // do not create the table if dataonly
+ if ($what != 'dataonly') {
+ require_once './libraries/export/sql.php';
+
+ $no_constraints_comments = true;
+ $GLOBALS['sql_constraints_query'] = '';
+
+ $sql_structure = PMA_getTableDef($source_db, $source_table, "\n", $err_url, false, false);
+ unset($no_constraints_comments);
+ $parsed_sql = PMA_SQP_parse($sql_structure);
+ $analyzed_sql = PMA_SQP_analyze($parsed_sql);
+ $i = 0;
+ if (empty($analyzed_sql[0]['create_table_fields'])) {
+ // this is not a CREATE TABLE, so find the first VIEW
+ $target_for_view = PMA_backquote($target_db);
+ while (true) {
+ if ($parsed_sql[$i]['type'] == 'alpha_reservedWord' && $parsed_sql[$i]['data'] == 'VIEW') {
+ break;
+ }
+ $i++;
+ }
+ }
+ unset($analyzed_sql);
+ $server_sql_mode = PMA_DBI_fetch_value("SHOW VARIABLES LIKE 'sql_mode'", 0, 1);
+ if ('ANSI_QUOTES' == $server_sql_mode) {
+ $table_delimiter = 'quote_double';
+ } else {
+ $table_delimiter = 'quote_backtick';
+ }
+ unset($server_sql_mode);
+
+ /* nijel: Find table name in query and replace it */
+ while ($parsed_sql[$i]['type'] != $table_delimiter) {
+ $i++;
+ }
+
+ /* no need to PMA_backquote() */
+ if (isset($target_for_view)) {
+ // this a view definition; we just found the first db name
+ // that follows DEFINER VIEW
+ // so change it for the new db name
+ $parsed_sql[$i]['data'] = $target_for_view;
+ // then we have to find all references to the source db
+ // and change them to the target db, ensuring we stay into
+ // the $parsed_sql limits
+ $last = $parsed_sql['len'] - 1;
+ $backquoted_source_db = PMA_backquote($source_db);
+ for (++$i; $i <= $last; $i++) {
+ if ($parsed_sql[$i]['type'] == $table_delimiter && $parsed_sql[$i]['data'] == $backquoted_source_db) {
+ $parsed_sql[$i]['data'] = $target_for_view;
+ }
+ }
+ unset($last,$backquoted_source_db);
+ } else {
+ $parsed_sql[$i]['data'] = $target;
+ }
+
+ /* Generate query back */
+ $sql_structure = PMA_SQP_formatHtml($parsed_sql, 'query_only');
+ // If table exists, and 'add drop table' is selected: Drop it!
+ $drop_query = '';
+ if (isset($GLOBALS['drop_if_exists'])
+ && $GLOBALS['drop_if_exists'] == 'true') {
+ if (PMA_Table::_isView($target_db,$target_table)) {
+ $drop_query = 'DROP VIEW';
+ } else {
+ $drop_query = 'DROP TABLE';
+ }
+ $drop_query .= ' IF EXISTS '
+ . PMA_backquote($target_db) . '.'
+ . PMA_backquote($target_table);
+ PMA_DBI_query($drop_query);
+
+ $GLOBALS['sql_query'] .= "\n" . $drop_query . ';';
+
+ // garvin: If an existing table gets deleted, maintain any
+ // entries for the PMA_* tables
+ $maintain_relations = true;
+ }
+
+ @PMA_DBI_query($sql_structure);
+ $GLOBALS['sql_query'] .= "\n" . $sql_structure . ';';
+
+ if (($move || isset($GLOBALS['add_constraints']))
+ && !empty($GLOBALS['sql_constraints_query'])) {
+ $parsed_sql = PMA_SQP_parse($GLOBALS['sql_constraints_query']);
+ $i = 0;
+
+ // find the first $table_delimiter, it must be the source table name
+ while ($parsed_sql[$i]['type'] != $table_delimiter) {
+ $i++;
+ // maybe someday we should guard against going over limit
+ //if ($i == $parsed_sql['len']) {
+ // break;
+ //}
+ }
+
+ // replace it by the target table name, no need to PMA_backquote()
+ $parsed_sql[$i]['data'] = $target;
+
+ // now we must remove all $table_delimiter that follow a CONSTRAINT
+ // keyword, because a constraint name must be unique in a db
+
+ $cnt = $parsed_sql['len'] - 1;
+
+ for ($j = $i; $j < $cnt; $j++) {
+ if ($parsed_sql[$j]['type'] == 'alpha_reservedWord'
+ && strtoupper($parsed_sql[$j]['data']) == 'CONSTRAINT') {
+ if ($parsed_sql[$j+1]['type'] == $table_delimiter) {
+ $parsed_sql[$j+1]['data'] = '';
+ }
+ }
+ }
+
+ // Generate query back
+ $GLOBALS['sql_constraints_query'] = PMA_SQP_formatHtml($parsed_sql,
+ 'query_only');
+ if ($mode == 'one_table') {
+ PMA_DBI_query($GLOBALS['sql_constraints_query']);
+ }
+ $GLOBALS['sql_query'] .= "\n" . $GLOBALS['sql_constraints_query'];
+ if ($mode == 'one_table') {
+ unset($GLOBALS['sql_constraints_query']);
+ }
+ }
+ } else {
+ $GLOBALS['sql_query'] = '';
+ }
+
+ // Copy the data unless this is a VIEW
+ if (($what == 'data' || $what == 'dataonly') && ! PMA_Table::_isView($target_db,$target_table)) {
+ $sql_insert_data =
+ 'INSERT INTO ' . $target . ' SELECT * FROM ' . $source;
+ PMA_DBI_query($sql_insert_data);
+ $GLOBALS['sql_query'] .= "\n\n" . $sql_insert_data . ';';
+ }
+
+ require_once './libraries/relation.lib.php';
+ $GLOBALS['cfgRelation'] = PMA_getRelationsParam();
+
+ // Drops old table if the user has requested to move it
+ if ($move) {
+
+ // This could avoid some problems with replicated databases, when
+ // moving table from replicated one to not replicated one
+ PMA_DBI_select_db($source_db);
+
+ if (PMA_Table::_isView($source_db,$source_table)) {
+ $sql_drop_query = 'DROP VIEW';
+ } else {
+ $sql_drop_query = 'DROP TABLE';
+ }
+ $sql_drop_query .= ' ' . $source;
+ PMA_DBI_query($sql_drop_query);
+
+ // garvin: Move old entries from PMA-DBs to new table
+ if ($GLOBALS['cfgRelation']['commwork']) {
+ $remove_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['column_info'])
+ . ' SET table_name = \'' . PMA_sqlAddslashes($target_table) . '\', '
+ . ' db_name = \'' . PMA_sqlAddslashes($target_db) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($source_db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($source_table) . '\'';
+ PMA_query_as_cu($remove_query);
+ unset($remove_query);
+ }
+
+ // garvin: updating bookmarks is not possible since only a single table is moved,
+ // and not the whole DB.
+
+ if ($GLOBALS['cfgRelation']['displaywork']) {
+ $table_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['table_info'])
+ . ' SET db_name = \'' . PMA_sqlAddslashes($target_db) . '\', '
+ . ' table_name = \'' . PMA_sqlAddslashes($target_table) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($source_db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($source_table) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ }
+
+ if ($GLOBALS['cfgRelation']['relwork']) {
+ $table_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['relation'])
+ . ' SET foreign_table = \'' . PMA_sqlAddslashes($target_table) . '\','
+ . ' foreign_db = \'' . PMA_sqlAddslashes($target_db) . '\''
+ . ' WHERE foreign_db = \'' . PMA_sqlAddslashes($source_db) . '\''
+ . ' AND foreign_table = \'' . PMA_sqlAddslashes($source_table) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+
+ $table_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['relation'])
+ . ' SET master_table = \'' . PMA_sqlAddslashes($target_table) . '\','
+ . ' master_db = \'' . PMA_sqlAddslashes($target_db) . '\''
+ . ' WHERE master_db = \'' . PMA_sqlAddslashes($source_db) . '\''
+ . ' AND master_table = \'' . PMA_sqlAddslashes($source_table) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ }
+
+ /**
+ * @todo garvin: Can't get moving PDFs the right way. The page numbers
+ * always get screwed up independently from duplication because the
+ * numbers do not seem to be stored on a per-database basis. Would
+ * the author of pdf support please have a look at it?
+ */
+
+ if ($GLOBALS['cfgRelation']['pdfwork']) {
+ $table_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['table_coords'])
+ . ' SET table_name = \'' . PMA_sqlAddslashes($target_table) . '\','
+ . ' db_name = \'' . PMA_sqlAddslashes($target_db) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($source_db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($source_table) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ /*
+ $pdf_query = 'SELECT pdf_page_number '
+ . ' FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($target_db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($target_table) . '\'';
+ $pdf_rs = PMA_query_as_cu($pdf_query);
+
+ while ($pdf_copy_row = PMA_DBI_fetch_assoc($pdf_rs)) {
+ $table_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['pdf_pages'])
+ . ' SET db_name = \'' . PMA_sqlAddslashes($target_db) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($source_db) . '\''
+ . ' AND page_nr = \'' . PMA_sqlAddslashes($pdf_copy_row['pdf_page_number']) . '\'';
+ $tb_rs = PMA_query_as_cu($table_query);
+ unset($table_query);
+ unset($tb_rs);
+ }
+ */
+ }
+
+ if ($GLOBALS['cfgRelation']['designerwork']) {
+ $table_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['designer_coords'])
+ . ' SET table_name = \'' . PMA_sqlAddslashes($target_table) . '\','
+ . ' db_name = \'' . PMA_sqlAddslashes($target_db) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($source_db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($source_table) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ }
+
+ $GLOBALS['sql_query'] .= "\n\n" . $sql_drop_query . ';';
+ // end if ($move)
+ } else {
+ // we are copying
+ // garvin: Create new entries as duplicates from old PMA DBs
+ if ($what != 'dataonly' && !isset($maintain_relations)) {
+ if ($GLOBALS['cfgRelation']['commwork']) {
+ // Get all comments and MIME-Types for current table
+ $comments_copy_query = 'SELECT
+ column_name, ' . PMA_backquote('comment') . ($GLOBALS['cfgRelation']['mimework'] ? ', mimetype, transformation, transformation_options' : '') . '
+ FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['column_info']) . '
+ WHERE
+ db_name = \'' . PMA_sqlAddslashes($source_db) . '\' AND
+ table_name = \'' . PMA_sqlAddslashes($source_table) . '\'';
+ $comments_copy_rs = PMA_query_as_cu($comments_copy_query);
+
+ // Write every comment as new copied entry. [MIME]
+ while ($comments_copy_row = PMA_DBI_fetch_assoc($comments_copy_rs)) {
+ $new_comment_query = 'REPLACE INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['column_info'])
+ . ' (db_name, table_name, column_name, ' . PMA_backquote('comment') . ($GLOBALS['cfgRelation']['mimework'] ? ', mimetype, transformation, transformation_options' : '') . ') '
+ . ' VALUES('
+ . '\'' . PMA_sqlAddslashes($target_db) . '\','
+ . '\'' . PMA_sqlAddslashes($target_table) . '\','
+ . '\'' . PMA_sqlAddslashes($comments_copy_row['column_name']) . '\''
+ . ($GLOBALS['cfgRelation']['mimework'] ? ',\'' . PMA_sqlAddslashes($comments_copy_row['comment']) . '\','
+ . '\'' . PMA_sqlAddslashes($comments_copy_row['mimetype']) . '\','
+ . '\'' . PMA_sqlAddslashes($comments_copy_row['transformation']) . '\','
+ . '\'' . PMA_sqlAddslashes($comments_copy_row['transformation_options']) . '\'' : '')
+ . ')';
+ PMA_query_as_cu($new_comment_query);
+ } // end while
+ PMA_DBI_free_result($comments_copy_rs);
+ unset($comments_copy_rs);
+ }
+
+ // duplicating the bookmarks must not be done here, but
+ // just once per db
+
+ $get_fields = array('display_field');
+ $where_fields = array('db_name' => $source_db, 'table_name' => $source_table);
+ $new_fields = array('db_name' => $target_db, 'table_name' => $target_table);
+ PMA_Table::duplicateInfo('displaywork', 'table_info', $get_fields, $where_fields, $new_fields);
+
+
+ /**
+ * @todo revise this code when we support cross-db relations
+ */
+ $get_fields = array('master_field', 'foreign_table', 'foreign_field');
+ $where_fields = array('master_db' => $source_db, 'master_table' => $source_table);
+ $new_fields = array('master_db' => $target_db, 'foreign_db' => $target_db, 'master_table' => $target_table);
+ PMA_Table::duplicateInfo('relwork', 'relation', $get_fields, $where_fields, $new_fields);
+
+
+ $get_fields = array('foreign_field', 'master_table', 'master_field');
+ $where_fields = array('foreign_db' => $source_db, 'foreign_table' => $source_table);
+ $new_fields = array('master_db' => $target_db, 'foreign_db' => $target_db, 'foreign_table' => $target_table);
+ PMA_Table::duplicateInfo('relwork', 'relation', $get_fields, $where_fields, $new_fields);
+
+
+ $get_fields = array('x', 'y', 'v', 'h');
+ $where_fields = array('db_name' => $source_db, 'table_name' => $source_table);
+ $new_fields = array('db_name' => $target_db, 'table_name' => $target_table);
+ PMA_Table::duplicateInfo('designerwork', 'designer_coords', $get_fields, $where_fields, $new_fields);
+
+ /**
+ * @todo garvin: Can't get duplicating PDFs the right way. The
+ * page numbers always get screwed up independently from
+ * duplication because the numbers do not seem to be stored on a
+ * per-database basis. Would the author of pdf support please
+ * have a look at it?
+ *
+ $get_fields = array('page_descr');
+ $where_fields = array('db_name' => $source_db);
+ $new_fields = array('db_name' => $target_db);
+ $last_id = PMA_Table::duplicateInfo('pdfwork', 'pdf_pages', $get_fields, $where_fields, $new_fields);
+
+ if (isset($last_id) && $last_id >= 0) {
+ $get_fields = array('x', 'y');
+ $where_fields = array('db_name' => $source_db, 'table_name' => $source_table);
+ $new_fields = array('db_name' => $target_db, 'table_name' => $target_table, 'pdf_page_number' => $last_id);
+ PMA_Table::duplicateInfo('pdfwork', 'table_coords', $get_fields, $where_fields, $new_fields);
+ }
+ */
+ }
+ }
+ return true;
+ }
+
+ /**
+ * checks if given name is a valid table name,
+ * currently if not empty, trailing spaces, '.', '/' and '\'
+ *
+ * @todo add check for valid chars in filename on current system/os
+ * @see http://dev.mysql.com/doc/refman/5.0/en/legal-names.html
+ * @param string $table_name name to check
+ * @return boolean whether the string is valid or not
+ */
+ function isValidName($table_name)
+ {
+ if ($table_name !== trim($table_name)) {
+ // trailing spaces
+ return false;
+ }
+
+ if (! strlen($table_name)) {
+ // zero length
+ return false;
+ }
+
+ if (preg_match('/[.\/\\\\]+/i', $table_name)) {
+ // illegal char . / \
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * renames table
+ *
+ * @param string new table name
+ * @param string new database name
+ * @return boolean success
+ */
+ function rename($new_name, $new_db = null)
+ {
+ if (null !== $new_db && $new_db !== $this->getDbName()) {
+ // Ensure the target is valid
+ if (! $GLOBALS['pma']->databases->exists($new_db)) {
+ $this->errors[] = $GLOBALS['strInvalidDatabase'] . ': ' . $new_db;
+ return false;
+ }
+ } else {
+ $new_db = $this->getDbName();
+ }
+
+ $new_table = new PMA_Table($new_name, $new_db);
+
+ if ($this->getFullName() === $new_table->getFullName()) {
+ return true;
+ }
+
+ if (! PMA_Table::isValidName($new_name)) {
+ $this->errors[] = $GLOBALS['strInvalidTableName'] . ': ' . $new_table->getFullName();
+ return false;
+ }
+
+ $GLOBALS['sql_query'] = '
+ RENAME TABLE ' . $this->getFullName(true) . '
+ TO ' . $new_table->getFullName(true) . ';';
+ if (! PMA_DBI_query($GLOBALS['sql_query'])) {
+ $this->errors[] = sprintf($GLOBALS['strErrorRenamingTable'], $this->getFullName(), $new_table->getFullName());
+ return false;
+ }
+
+ $old_name = $this->getName();
+ $old_db = $this->getDbName();
+ $this->setName($new_name);
+ $this->setDbName($new_db);
+
+ /**
+ * @todo move into extra function PMA_Relation::renameTable($new_name, $old_name, $new_db, $old_db)
+ */
+ // garvin: Move old entries from comments to new table
+ require_once './libraries/relation.lib.php';
+ $GLOBALS['cfgRelation'] = PMA_getRelationsParam();
+ if ($GLOBALS['cfgRelation']['commwork']) {
+ $remove_query = '
+ UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . PMA_backquote($GLOBALS['cfgRelation']['column_info']) . '
+ SET `db_name` = \'' . PMA_sqlAddslashes($new_db) . '\',
+ `table_name` = \'' . PMA_sqlAddslashes($new_name) . '\'
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($old_db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($old_name) . '\'';
+ PMA_query_as_cu($remove_query);
+ unset($remove_query);
+ }
+
+ if ($GLOBALS['cfgRelation']['displaywork']) {
+ $table_query = '
+ UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . PMA_backquote($GLOBALS['cfgRelation']['table_info']) . '
+ SET `db_name` = \'' . PMA_sqlAddslashes($new_db) . '\',
+ `table_name` = \'' . PMA_sqlAddslashes($new_name) . '\'
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($old_db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($old_name) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ }
+
+ if ($GLOBALS['cfgRelation']['relwork']) {
+ $table_query = '
+ UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . PMA_backquote($GLOBALS['cfgRelation']['relation']) . '
+ SET `foreign_db` = \'' . PMA_sqlAddslashes($new_db) . '\',
+ `foreign_table` = \'' . PMA_sqlAddslashes($new_name) . '\'
+ WHERE `foreign_db` = \'' . PMA_sqlAddslashes($old_db) . '\'
+ AND `foreign_table` = \'' . PMA_sqlAddslashes($old_name) . '\'';
+ PMA_query_as_cu($table_query);
+
+ $table_query = '
+ UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . PMA_backquote($GLOBALS['cfgRelation']['relation']) . '
+ SET `master_db` = \'' . PMA_sqlAddslashes($new_db) . '\',
+ `master_table` = \'' . PMA_sqlAddslashes($new_name) . '\'
+ WHERE `master_db` = \'' . PMA_sqlAddslashes($old_db) . '\'
+ AND `master_table` = \'' . PMA_sqlAddslashes($old_name) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ }
+
+ if ($GLOBALS['cfgRelation']['pdfwork']) {
+ $table_query = '
+ UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . PMA_backquote($GLOBALS['cfgRelation']['table_coords']) . '
+ SET `db_name` = \'' . PMA_sqlAddslashes($new_db) . '\',
+ `table_name` = \'' . PMA_sqlAddslashes($new_name) . '\'
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($old_db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($old_name) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ }
+
+ if ($GLOBALS['cfgRelation']['designerwork']) {
+ $table_query = '
+ UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . PMA_backquote($GLOBALS['cfgRelation']['designer_coords']) . '
+ SET `db_name` = \'' . PMA_sqlAddslashes($new_db) . '\',
+ `table_name` = \'' . PMA_sqlAddslashes($new_name) . '\'
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($old_db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($old_name) . '\'';
+ PMA_query_as_cu($table_query);
+ unset($table_query);
+ }
+
+ $this->messages[] = sprintf($GLOBALS['strRenameTableOK'],
+ htmlspecialchars($old_name), htmlspecialchars($new_name));
+ return true;
+ }
+
+ /**
+ * Get all unique columns
+ *
+ * returns an array with all columns with unqiue content, in fact these are
+ * all columns being single indexed in PRIMARY or UNIQUE
+ *
+ * f.e.
+ * - PRIMARY(id) // id
+ * - UNIQUE(name) // name
+ * - PRIMARY(fk_id1, fk_id2) // NONE
+ * - UNIQUE(x,y) // NONE
+ *
+ *
+ * @param boolean whether to quote name with backticks ``
+ * @return array
+ */
+ public function getUniqueColumns($quoted = true)
+ {
+ $sql = 'SHOW INDEX FROM ' . $this->getFullName(true) . ' WHERE Non_unique = 0';
+ $uniques = PMA_DBI_fetch_result($sql, array('Key_name', null), 'Column_name');
+
+ $return = array();
+ foreach ($uniques as $index) {
+ if (count($index) > 1) {
+ continue;
+ }
+ $return[] = $this->getFullName($quoted) . '.' . ($quoted ? PMA_backquote($index[0]) : $index[0]);
+ }
+
+ return $return;
+ }
+
+ /**
+ * Get all indexed columns
+ *
+ * returns an array with all columns make use of an index, in fact only
+ * first columns in an index
+ *
+ * f.e. index(col1, col2) would only return col1
+ * @param boolean whether to quote name with backticks ``
+ * @return array
+ */
+ public function getIndexedColumns($quoted = true)
+ {
+ $sql = 'SHOW INDEX FROM ' . $this->getFullName(true) . ' WHERE Seq_in_index = 1';
+ $indexed = PMA_DBI_fetch_result($sql, 'Column_name', 'Column_name');
+
+ $return = array();
+ foreach ($indexed as $column) {
+ $return[] = $this->getFullName($quoted) . '.' . ($quoted ? PMA_backquote($column) : $column);
+ }
+
+ return $return;
+ }
+}
+?>
diff --git a/libraries/Theme.class.php b/libraries/Theme.class.php
new file mode 100644
index 0000000000..7f8f222103
--- /dev/null
+++ b/libraries/Theme.class.php
@@ -0,0 +1,390 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * hold PMA_Theme class
+ *
+ * @version $Id$
+ */
+
+/**
+ * handles theme
+ *
+ * @todo add the possibility to make a theme depend on another theme and by default on original
+ * @todo make all components optional - get missing components from 'parent' theme
+ * @todo make css optionally replacing 'parent' css or extending it (by appending at the end)
+ * @todo add an optional global css file - which will be used for both frames
+ *
+ */
+class PMA_Theme {
+ /**
+ * @var string theme version
+ * @access protected
+ */
+ var $version = '0.0.0.0';
+
+ /**
+ * @var string theme name
+ * @access protected
+ */
+ var $name = '';
+
+ /**
+ * @var string theme id
+ * @access protected
+ */
+ var $id = '';
+
+ /**
+ * @var string theme path
+ * @access protected
+ */
+ var $path = '';
+
+ /**
+ * @var string image path
+ * @access protected
+ */
+ var $img_path = '';
+
+ /**
+ * @var array valid css types
+ * @access protected
+ */
+ var $types = array('left', 'right', 'print');
+
+ /**
+ * @var integer last modification time for info file
+ * @access protected
+ */
+ var $mtime_info = 0;
+
+ /**
+ * needed because sometimes, the mtime for different themes
+ * is identical
+ * @var integer filesize for info file
+ * @access protected
+ */
+ var $filesize_info = 0;
+
+ /**
+ * @access public
+ * @uses PMA_Theme::getPath()
+ * @uses PMA_Theme::$mtime_info
+ * @uses PMA_Theme::setVersion()
+ * @uses PMA_Theme::setName()
+ * @uses filemtime()
+ * @uses filesize()
+ * @uses file_exists()
+ * @return boolean whether loading them info was successful or not
+ */
+ function loadInfo()
+ {
+ if (! file_exists($this->getPath() . '/info.inc.php')) {
+ return false;
+ }
+
+ if ($this->mtime_info === filemtime($this->getPath() . '/info.inc.php')) {
+ return true;
+ }
+
+ @include $this->getPath() . '/info.inc.php';
+
+ // was it set correctly?
+ if (! isset($theme_name)) {
+ return false;
+ }
+
+ $this->mtime_info = filemtime($this->getPath() . '/info.inc.php');
+ $this->filesize_info = filesize($this->getPath() . '/info.inc.php');
+
+ if (isset($theme_full_version)) {
+ $this->setVersion($theme_full_version);
+ } elseif (isset($theme_generation, $theme_version)) {
+ $this->setVersion($theme_generation . '.' . $theme_version);
+ }
+ $this->setName($theme_name);
+
+ return true;
+ }
+
+ /**
+ * returns theme object loaded from given folder
+ * or false if theme is invalid
+ *
+ * @static
+ * @access public
+ * @uses PMA_Theme
+ * @uses PMA_Theme::setPath()
+ * @uses PMA_Theme::loadInfo()
+ * @uses PMA_Theme::checkImgPath()
+ * @param string $folder path to theme
+ * @return object PMA_Theme
+ */
+ static public function load($folder)
+ {
+ $theme = new PMA_Theme();
+
+ $theme->setPath($folder);
+
+ if (! $theme->loadInfo()) {
+ return false;
+ }
+
+ $theme->checkImgPath();
+
+ return $theme;
+ }
+
+ /**
+ * checks image path for existance - if not found use img from original theme
+ *
+ * @access public
+ * @uses PMA_Theme::getPath()
+ * @uses PMA_Theme::setImgPath()
+ * @uses PMA_Theme::getName()
+ * @uses $GLOBALS['cfg']['ThemePath']
+ * @uses $GLOBALS['strThemeNoValidImgPath']
+ * @uses is_dir()
+ * @uses sprintf()
+ */
+ function checkImgPath()
+ {
+ if (is_dir($this->getPath() . '/img/')) {
+ $this->setImgPath($this->getPath() . '/img/');
+ return true;
+ } elseif (is_dir($GLOBALS['cfg']['ThemePath'] . '/original/img/')) {
+ $this->setImgPath($GLOBALS['cfg']['ThemePath'] . '/original/img/');
+ return true;
+ } else {
+ trigger_error(
+ sprintf($GLOBALS['strThemeNoValidImgPath'], $this->getName()),
+ E_USER_ERROR);
+ return false;
+ }
+ }
+
+ /**
+ * returns path to theme
+ *
+ * @access public
+ * @uses PMA_Theme::$path as return value
+ * @return string $path path to theme
+ */
+ function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * returns layout file
+ *
+ * @access public
+ * @uses PMA_Theme::getPath()
+ * @return string layout file
+ */
+ function getLayoutFile()
+ {
+ return $this->getPath() . '/layout.inc.php';
+ }
+
+ /**
+ * set path to theme
+ *
+ * @access public
+ * @uses PMA_Theme::$path to set it
+ * @param string $path path to theme
+ */
+ function setPath($path)
+ {
+ $this->path = trim($path);
+ }
+
+ /**
+ * sets version
+ *
+ * @access public
+ * @uses PMA_Theme::$version
+ * @param string new version
+ */
+ function setVersion($version)
+ {
+ $this->version = trim($version);
+ }
+
+ /**
+ * returns version
+ *
+ * @access public
+ * @uses PMA_Theme::$version
+ * @return string version
+ */
+ function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * checks theme version agaisnt $version
+ * returns true if theme version is equal or higher to $version
+ *
+ * @access public
+ * @uses version_compare()
+ * @uses PMA_Theme::getVersion()
+ * @param string $version version to compare to
+ * @return boolean
+ */
+ function checkVersion($version)
+ {
+ return version_compare($this->getVersion(), $version, 'lt');
+ }
+
+ /**
+ * sets name
+ *
+ * @access public
+ * @uses PMA_Theme::$name to set it
+ * @uses trim()
+ * @param string $name new name
+ */
+ function setName($name)
+ {
+ $this->name = trim($name);
+ }
+
+ /**
+ * returns name
+ *
+ * @access public
+ * @uses PMA_Theme::$name as return value
+ * @return string name
+ */
+ function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * sets id
+ *
+ * @access public
+ * @uses PMA_Theme::$id to set it
+ * @param string $id new id
+ */
+ function setId($id)
+ {
+ $this->id = trim($id);
+ }
+
+ /**
+ * returns id
+ *
+ * @access public
+ * @uses PMA_Theme::$id as return value
+ * @return string id
+ */
+ function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * @access public
+ * @uses PMA_Theme::$img_path to set it
+ * @param string path to images for this theme
+ */
+ function setImgPath($path)
+ {
+ $this->img_path = $path;
+ }
+
+ /**
+ * @access public
+ * @uses PMA_Theme::$img_path as retunr value
+ * @return string image path for this theme
+ */
+ function getImgPath()
+ {
+ return $this->img_path;
+ }
+
+ /**
+ * load css (send to stdout, normally the browser)
+ *
+ * @access public
+ * @uses PMA_Theme::getPath()
+ * @uses PMA_Theme::$types
+ * @uses PMA_SQP_buildCssData()
+ * @uses file_exists()
+ * @uses in_array()
+ * @param string $type left, right or print
+ */
+ function loadCss(&$type)
+ {
+ if (empty($type) || ! in_array($type, $this->types)) {
+ $type = 'left';
+ }
+
+ if ($type == 'right') {
+ echo PMA_SQP_buildCssData();
+ }
+
+ $_css_file = $this->getPath()
+ . '/css/theme_' . $type . '.css.php';
+
+ if (! file_exists($_css_file)) {
+ return false;
+ }
+
+ if ($GLOBALS['text_dir'] === 'ltr') {
+ $right = 'right';
+ $left = 'left';
+ } else {
+ $right = 'left';
+ $left = 'right';
+ }
+
+ include $_css_file;
+ return true;
+ }
+
+ /**
+ * prints out the preview for this theme
+ *
+ * @access public
+ * @uses PMA_Theme::getName()
+ * @uses PMA_Theme::getVersion()
+ * @uses PMA_Theme::getId()
+ * @uses PMA_Theme::getPath()
+ * @uses $GLOBALS['strThemeNoPreviewAvailable']
+ * @uses $GLOBALS['strTakeIt']
+ * @uses PMA_generate_common_url()
+ * @uses addslashes()
+ * @uses file_exists()
+ * @uses htmlspecialchars()
+ */
+ function printPreview()
+ {
+ echo '<div class="theme_preview">';
+ echo '<h2>' . htmlspecialchars($this->getName())
+ .' (' . htmlspecialchars($this->getVersion()) . ')</h2>'
+ .'<p>'
+ .'<a target="_top" href="index.php'
+ .PMA_generate_common_url(array('set_theme' => $this->getId())) . '"'
+ .' onclick="takeThis(\'' . addslashes($this->getId()) . '\');'
+ .' return false;">';
+ if (@file_exists($this->getPath() . '/screen.png')) {
+ // if screen exists then output
+
+ echo '<img src="' . $this->getPath() . '/screen.png" border="1"'
+ .' alt="' . htmlspecialchars($this->getName()) . '"'
+ .' title="' . htmlspecialchars($this->getName()) . '" /><br />';
+ } else {
+ echo $GLOBALS['strThemeNoPreviewAvailable'];
+ }
+
+ echo '[ <strong>' . $GLOBALS['strTakeIt'] . '</strong> ]</a>'
+ .'</p>'
+ .'</div>';
+ }
+}
+?>
diff --git a/libraries/Theme_Manager.class.php b/libraries/Theme_Manager.class.php
new file mode 100644
index 0000000000..194cab24f8
--- /dev/null
+++ b/libraries/Theme_Manager.class.php
@@ -0,0 +1,379 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/Theme.class.php';
+
+/**
+ *
+ */
+class PMA_Theme_Manager
+{
+ /**
+ * @var string path to theme folder
+ * @protected
+ */
+ var $_themes_path;
+
+ /**
+ * @var array available themes
+ */
+ var $themes = array();
+
+ /**
+ * @var string cookie name
+ */
+ var $cookie_name = 'pma_theme';
+
+ /**
+ * @var boolean
+ */
+ var $per_server = false;
+
+ /**
+ * @var string name of active theme
+ */
+ var $active_theme = '';
+
+ /**
+ * @var object PMA_Theme active theme
+ */
+ var $theme = null;
+
+ /**
+ * @var string
+ */
+ var $theme_default = 'original';
+
+ function __construct()
+ {
+ $this->init();
+ }
+
+ /**
+ * sets path to folder containing the themes
+ *
+ * @param string $path path to themes folder
+ * @return boolean success
+ */
+ function setThemesPath($path)
+ {
+ if (! $this->_checkThemeFolder($path)) {
+ return false;
+ }
+
+ $this->_themes_path = trim($path);
+ return true;
+ }
+
+ /**
+ * @public
+ * @return string
+ */
+ function getThemesPath()
+ {
+ return $this->_themes_path;
+ }
+
+ /**
+ * sets if there are different themes per server
+ *
+ * @param boolean $per_server
+ */
+ function setThemePerServer($per_server)
+ {
+ $this->per_server = (bool) $per_server;
+ }
+
+ function init()
+ {
+ $this->themes = array();
+ $this->theme_default = 'original';
+ $this->active_theme = '';
+
+ if (! $this->setThemesPath($GLOBALS['cfg']['ThemePath'])) {
+ return false;
+ }
+
+ $this->setThemePerServer($GLOBALS['cfg']['ThemePerServer']);
+
+ $this->loadThemes();
+
+ $this->theme = new PMA_Theme;
+
+
+ if (! $this->checkTheme($GLOBALS['cfg']['ThemeDefault'])) {
+ trigger_error(
+ sprintf($GLOBALS['strThemeDefaultNotFound'],
+ htmlspecialchars($GLOBALS['cfg']['ThemeDefault'])),
+ E_USER_ERROR);
+ $GLOBALS['cfg']['ThemeDefault'] = false;
+ }
+
+ $this->theme_default = $GLOBALS['cfg']['ThemeDefault'];
+
+ // check if user have a theme cookie
+ if (! $this->getThemeCookie()
+ || ! $this->setActiveTheme($this->getThemeCookie())) {
+ // otherwise use default theme
+ if ($GLOBALS['cfg']['ThemeDefault']) {
+ $this->setActiveTheme($GLOBALS['cfg']['ThemeDefault']);
+ } else {
+ // or original theme
+ $this->setActiveTheme('original');
+ }
+ }
+ }
+
+ function checkConfig()
+ {
+ if ($this->_themes_path != trim($GLOBALS['cfg']['ThemePath'])
+ || $this->theme_default != $GLOBALS['cfg']['ThemeDefault']) {
+ $this->init();
+ } else {
+ // at least the theme path needs to be checked every time for new
+ // themes, as there is no other way at the moment to keep track of
+ // new or removed themes
+ $this->loadThemes();
+ }
+ }
+
+ function setActiveTheme($theme = null)
+ {
+ if (! $this->checkTheme($theme)) {
+ trigger_error(
+ sprintf($GLOBALS['strThemeNotFound'], htmlspecialchars($theme)),
+ E_USER_ERROR);
+ return false;
+ }
+
+ $this->active_theme = $theme;
+ $this->theme = $this->themes[$theme];
+
+ // need to set later
+ //$this->setThemeCookie();
+
+ return true;
+ }
+
+ /**
+ * @return string cookie name
+ */
+ function getThemeCookieName()
+ {
+ // Allow different theme per server
+ if (isset($GLOBALS['server']) && $this->per_server) {
+ return $this->cookie_name . '-' . $GLOBALS['server'];
+ } else {
+ return $this->cookie_name;
+ }
+ }
+
+ /**
+ * returns name of theme stored in the cookie
+ * @return string theme name from cookie
+ */
+ function getThemeCookie()
+ {
+ if (isset($_COOKIE[$this->getThemeCookieName()])) {
+ return $_COOKIE[$this->getThemeCookieName()];
+ }
+
+ return false;
+ }
+
+ /**
+ * save theme in cookie
+ *
+ * @uses PMA_setCookie();
+ * @uses PMA_Theme_Manager::getThemeCookieName()
+ * @uses PMA_Theme_Manager::$theme
+ * @uses PMA_Theme_Manager::$theme_default
+ * @uses PMA_Theme::getId()
+ */
+ function setThemeCookie()
+ {
+ PMA_setCookie($this->getThemeCookieName(), $this->theme->id,
+ $this->theme_default);
+ // force a change of a dummy session variable to avoid problems
+ // with the caching of phpmyadmin.css.php
+ $_SESSION['PMA_Config']->set('theme-update', $this->theme->id);
+ return true;
+ }
+
+ /**
+ * @private
+ * @param string $folder
+ * @return boolean
+ */
+ /*private*/ function _checkThemeFolder($folder)
+ {
+ if (! is_dir($folder)) {
+ trigger_error(
+ sprintf($GLOBALS['strThemePathNotFound'],
+ htmlspecialchars($folder)),
+ E_USER_ERROR);
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * read all themes
+ */
+ function loadThemes()
+ {
+ $this->themes = array();
+
+ if ($handleThemes = opendir($this->getThemesPath())) {
+ // check for themes directory
+ while (false !== ($PMA_Theme = readdir($handleThemes))) {
+ if (array_key_exists($PMA_Theme, $this->themes)) {
+ // this does nothing!
+ //$this->themes[$PMA_Theme] = $this->themes[$PMA_Theme];
+ continue;
+ }
+ $new_theme = PMA_Theme::load($this->getThemesPath() . '/' . $PMA_Theme);
+ if ($new_theme) {
+ $new_theme->setId($PMA_Theme);
+ $this->themes[$PMA_Theme] = $new_theme;
+ }
+ } // end get themes
+ closedir($handleThemes);
+ } else {
+ trigger_error(
+ 'phpMyAdmin-ERROR: cannot open themes folder: ' . $this->getThemesPath(),
+ E_USER_WARNING);
+ return false;
+ } // end check for themes directory
+
+ ksort($this->themes);
+ return true;
+ }
+
+ /**
+ * checks if given theme name is a known theme
+ *
+ * @param string $theme name fo theme to check for
+ */
+ function checkTheme($theme)
+ {
+ if (! array_key_exists($theme, $this->themes)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * returns HTML selectbox, with or without form enclosed
+ *
+ * @param boolean $form whether enclosed by from tags or not
+ */
+ function getHtmlSelectBox($form = true)
+ {
+ $select_box = '';
+
+ if ($form) {
+ $select_box .= '<form name="setTheme" method="post" action="index.php"'
+ .' target="_parent">';
+ $select_box .= PMA_generate_common_hidden_inputs();
+ }
+
+ $theme_selected = FALSE;
+ $theme_preview_path= './themes.php';
+ $theme_preview_href = '<a href="' . $theme_preview_path . '" target="themes" onclick="'
+ . "window.open('" . $theme_preview_path . "','themes','left=10,top=20,width=510,height=350,scrollbars=yes,status=yes,resizable=yes');"
+ . '">';
+ $select_box .= $theme_preview_href . $GLOBALS['strTheme'] . '</a>:' . "\n";
+
+ $select_box .= '<select name="set_theme" xml:lang="en" dir="ltr"'
+ .' onchange="this.form.submit();" >';
+ foreach ($this->themes as $each_theme_id => $each_theme) {
+ $select_box .= '<option value="' . $each_theme_id . '"';
+ if ($this->active_theme === $each_theme_id) {
+ $select_box .= ' selected="selected"';
+ }
+ $select_box .= '>' . htmlspecialchars($each_theme->getName()) . '</option>';
+ }
+ $select_box .= '</select>';
+
+ if ($form) {
+ $select_box .= '<noscript><input type="submit" value="' . $GLOBALS['strGo'] . '" /></noscript>';
+ $select_box .= '</form>';
+ }
+
+ return $select_box;
+ }
+
+ /**
+ * enables backward compatibility
+ */
+ function makeBc()
+ {
+ $GLOBALS['theme'] = $this->theme->getId();
+ $GLOBALS['pmaThemePath'] = $this->theme->getPath();
+ $GLOBALS['pmaThemeImage'] = $this->theme->getImgPath();
+
+ /**
+ * load layout file if exists
+ */
+ if (@file_exists($GLOBALS['pmaThemePath'] . 'layout.inc.php')) {
+ include $GLOBALS['pmaThemePath'] . 'layout.inc.php';
+ }
+
+
+ }
+
+ /**
+ * prints out preview for every theme
+ *
+ * @uses $this->themes
+ * @uses PMA_Theme::printPreview()
+ */
+ function printPreviews()
+ {
+ foreach ($this->themes as $each_theme) {
+ $each_theme->printPreview();
+ } // end 'open themes'
+ }
+
+ /**
+ * returns PMA_Theme object for fall back theme
+ * @return object PMA_Theme
+ */
+ function getFallBackTheme()
+ {
+ if (isset($this->themes['original'])) {
+ return $this->themes['original'];
+ }
+
+ return false;
+ }
+
+ /**
+ * prints css data
+ */
+ function printCss($type)
+ {
+ if ($this->theme->loadCss($type)) {
+ return true;
+ }
+
+ // if loading css for this theme failed, try default theme css
+ $fallback_theme = $this->getFallBackTheme();
+ if ($fallback_theme && $fallback_theme->loadCss($type)) {
+ return true;
+ }
+
+ return false;
+ }
+}
+?>
diff --git a/libraries/auth/config.auth.lib.php b/libraries/auth/config.auth.lib.php
new file mode 100644
index 0000000000..347d771659
--- /dev/null
+++ b/libraries/auth/config.auth.lib.php
@@ -0,0 +1,138 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to run config authentication (ie no authentication).
+ *
+ * @version $Id$
+ */
+
+
+/**
+ * Displays authentication form
+ *
+ * @return boolean always true
+ *
+ * @access public
+ */
+function PMA_auth()
+{
+ return TRUE;
+} // end of the 'PMA_auth()' function
+
+
+/**
+ * Gets advanced authentication settings
+ *
+ * @return boolean always true
+ *
+ * @access public
+ */
+function PMA_auth_check()
+{
+ return TRUE;
+} // end of the 'PMA_auth_check()' function
+
+
+/**
+ * Set the user and password after last checkings if required
+ *
+ * @return boolean always true
+ *
+ * @access public
+ */
+function PMA_auth_set_user()
+{
+ return TRUE;
+} // end of the 'PMA_auth_set_user()' function
+
+
+/**
+ * User is not allowed to login to MySQL -> authentication failed
+ *
+ * @global string the MySQL error message PHP returns
+ * @global string the connection type (persistent or not)
+ * @global string the MySQL server port to use
+ * @global string the MySQL socket port to use
+ * @global array the current server settings
+ * @global string the font face to use in case of failure
+ * @global string the default font size to use in case of failure
+ * @global string the big font size to use in case of failure
+ * @global boolean tell the "PMA_mysqlDie()" function headers have been
+ * sent
+ *
+ * @return boolean always true (no return indeed)
+ *
+ * @access public
+ */
+function PMA_auth_fails()
+{
+ global $php_errormsg, $cfg;
+
+ $conn_error = PMA_DBI_getError();
+ if (!$conn_error) {
+ if (isset($php_errormsg)) {
+ $conn_error = $php_errormsg;
+ } else {
+ $conn_error = $GLOBALS['strConnectionError'];
+ }
+ }
+
+ // Defines the charset to be used
+ header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
+ /* HTML header */
+ $page_title = $GLOBALS['strAccessDenied'];
+ require './libraries/header_meta_style.inc.php';
+ ?>
+</head>
+
+<body>
+<br /><br />
+<center>
+ <h1><?php echo sprintf($GLOBALS['strWelcome'], ' phpMyAdmin '); ?></h1>
+</center>
+<br />
+<table border="0" cellpadding="0" cellspacing="3" align="center" width="80%">
+ <tr>
+ <td>
+
+ <?php
+ $GLOBALS['is_header_sent'] = TRUE;
+
+ if (isset($GLOBALS['allowDeny_forbidden']) && $GLOBALS['allowDeny_forbidden']) {
+ trigger_error($GLOBALS['strAccessDenied'], E_USER_NOTICE);
+ } else {
+ // Check whether user has configured something
+ if ($_SESSION['PMA_Config']->source_mtime == 0) {
+ echo '<p>' . sprintf($GLOBALS['strAccessDeniedCreateConfig'], '<a href="setup/">', '</a>') . '</p>' . "\n";
+ } elseif (!isset($GLOBALS['errno']) || (isset($GLOBALS['errno']) && $GLOBALS['errno'] != 2002) && $GLOBALS['errno'] != 2003) {
+ // if we display the "Server not responding" error, do not confuse users
+ // by telling them they have a settings problem
+ // (note: it's true that they could have a badly typed host name, but
+ // anyway the current $strAccessDeniedExplanation tells that the server
+ // rejected the connection, which is not really what happened)
+ // 2002 is the error given by mysqli
+ // 2003 is the error given by mysql
+ trigger_error($GLOBALS['strAccessDeniedExplanation'], E_USER_WARNING);
+ }
+ PMA_mysqlDie($conn_error, '', true, '', false);
+ }
+ $GLOBALS['error_handler']->dispUserErrors();
+?>
+ </td>
+ </tr>
+<?php
+ if (count($GLOBALS['cfg']['Servers']) > 1) {
+ // offer a chance to login to other servers if the current one failed
+ require_once './libraries/select_server.lib.php';
+ echo '<tr>' . "\n";
+ echo ' <td>' . "\n";
+ PMA_select_server(TRUE, TRUE);
+ echo ' </td>' . "\n";
+ echo '</tr>' . "\n";
+ }
+ echo '</table>' . "\n";
+ require_once './libraries/footer.inc.php';
+ return TRUE;
+} // end of the 'PMA_auth_fails()' function
+
+?>
diff --git a/libraries/auth/cookie.auth.lib.php b/libraries/auth/cookie.auth.lib.php
new file mode 100644
index 0000000000..c9f94ec549
--- /dev/null
+++ b/libraries/auth/cookie.auth.lib.php
@@ -0,0 +1,676 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to run cookie based authentication.
+ * Thanks to Piotr Roszatycki <d3xter at users.sourceforge.net> and
+ * Dan Wilson who built this patch for the Debian package.
+ *
+ * @version $Id$
+ */
+
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+require './libraries/auth/swekey/swekey.auth.lib.php';
+
+if (function_exists('mcrypt_encrypt')) {
+ /**
+ * Uses faster mcrypt library if available
+ * (as this is not called from anywhere else, put the code in-line
+ * for faster execution)
+ */
+
+ /**
+ * Initialization
+ * Store the initialization vector because it will be needed for
+ * further decryption. I don't think necessary to have one iv
+ * per server so I don't put the server number in the cookie name.
+ */
+ if (empty($_COOKIE['pma_mcrypt_iv'])
+ || false === ($iv = base64_decode($_COOKIE['pma_mcrypt_iv'], true))) {
+ srand((double) microtime() * 1000000);
+ $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC), MCRYPT_RAND);
+ PMA_setCookie('pma_mcrypt_iv', base64_encode($iv));
+ }
+
+ /**
+ * Encryption using blowfish algorithm (mcrypt)
+ *
+ * @param string original data
+ * @param string the secret
+ *
+ * @return string the encrypted result
+ *
+ * @access public
+ *
+ * @author lem9
+ */
+ function PMA_blowfish_encrypt($data, $secret)
+ {
+ global $iv;
+ return base64_encode(mcrypt_encrypt(MCRYPT_BLOWFISH, $secret, $data, MCRYPT_MODE_CBC, $iv));
+ }
+
+ /**
+ * Decryption using blowfish algorithm (mcrypt)
+ *
+ * @param string encrypted data
+ * @param string the secret
+ *
+ * @return string original data
+ *
+ * @access public
+ *
+ * @author lem9
+ */
+ function PMA_blowfish_decrypt($encdata, $secret)
+ {
+ global $iv;
+ return trim(mcrypt_decrypt(MCRYPT_BLOWFISH, $secret, base64_decode($encdata), MCRYPT_MODE_CBC, $iv));
+ }
+
+} else {
+ require_once './libraries/blowfish.php';
+ trigger_error(PMA_sanitize(sprintf($strCantLoad, 'mcrypt')), E_USER_WARNING);
+}
+
+/**
+ * Returns blowfish secret or generates one if needed.
+ * @uses $cfg['blowfish_secret']
+ * @uses $_SESSION['auto_blowfish_secret']
+ *
+ * @access public
+ */
+function PMA_get_blowfish_secret() {
+ if (empty($GLOBALS['cfg']['blowfish_secret'])) {
+ if (empty($_SESSION['auto_blowfish_secret'])) {
+ $_SESSION['auto_blowfish_secret'] = uniqid('', true);
+ }
+ return $_SESSION['auto_blowfish_secret'];
+ } else {
+ return $GLOBALS['cfg']['blowfish_secret'];
+ }
+}
+
+/**
+ * Displays authentication form
+ *
+ * this function MUST exit/quit the application
+ *
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['PHP_AUTH_USER']
+ * @uses $GLOBALS['pma_auth_server']
+ * @uses $GLOBALS['text_dir']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['charset']
+ * @uses $GLOBALS['target']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['strWelcome']
+ * @uses $GLOBALS['strSecretRequired']
+ * @uses $GLOBALS['strError']
+ * @uses $GLOBALS['strLogin']
+ * @uses $GLOBALS['strLogServer']
+ * @uses $GLOBALS['strLogUsername']
+ * @uses $GLOBALS['strLogPassword']
+ * @uses $GLOBALS['strServerChoice']
+ * @uses $GLOBALS['strGo']
+ * @uses $GLOBALS['strCookiesRequired']
+ * @uses $GLOBALS['strPmaDocumentation']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $cfg['Servers']
+ * @uses $cfg['LoginCookieRecall']
+ * @uses $cfg['Lang']
+ * @uses $cfg['Server']
+ * @uses $cfg['ReplaceHelpImg']
+ * @uses $cfg['blowfish_secret']
+ * @uses $cfg['AllowArbitraryServer']
+ * @uses $_COOKIE
+ * @uses $_REQUEST['old_usr']
+ * @uses PMA_sendHeaderLocation()
+ * @uses PMA_select_language()
+ * @uses PMA_select_server()
+ * @uses file_exists()
+ * @uses sprintf()
+ * @uses count()
+ * @uses htmlspecialchars()
+ * @uses is_array()
+ * @global string the last connection error
+ *
+ * @access public
+ */
+function PMA_auth()
+{
+ global $conn_error;
+
+ /* Perform logout to custom URL */
+ if (! empty($_REQUEST['old_usr'])
+ && ! empty($GLOBALS['cfg']['Server']['LogoutURL'])) {
+ PMA_sendHeaderLocation($GLOBALS['cfg']['Server']['LogoutURL']);
+ exit;
+ }
+
+ /* No recall if blowfish secret is not configured as it would produce garbage */
+ if ($GLOBALS['cfg']['LoginCookieRecall'] && !empty($GLOBALS['cfg']['blowfish_secret'])) {
+ $default_user = $GLOBALS['PHP_AUTH_USER'];
+ $default_server = $GLOBALS['pma_auth_server'];
+ $autocomplete = '';
+ } else {
+ $default_user = '';
+ $default_server = '';
+ // skip the IE autocomplete feature.
+ $autocomplete = ' autocomplete="off"';
+ }
+
+ $cell_align = ($GLOBALS['text_dir'] == 'ltr') ? 'left' : 'right';
+
+ // Defines the charset to be used
+ header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
+ // Defines the "item" image depending on text direction
+ $item_img = $GLOBALS['pmaThemeImage'] . 'item_' . $GLOBALS['text_dir'] . '.png';
+
+ /* HTML header; do not show here the PMA version to improve security */
+ $page_title = 'phpMyAdmin ';
+ require './libraries/header_meta_style.inc.php';
+ ?>
+<script type="text/javascript">
+//<![CDATA[
+// show login form in top frame
+if (top != self) {
+ window.top.location.href=location;
+}
+//]]>
+</script>
+</head>
+
+<body class="loginform">
+
+ <?php
+ if (file_exists('./config.header.inc.php')) {
+ require './config.header.inc.php';
+ }
+ ?>
+
+<div class="container">
+<a href="http://www.phpmyadmin.net" target="_blank" class="logo"><?php
+ $logo_image = $GLOBALS['pmaThemeImage'] . 'logo_right.png';
+ if (@file_exists($logo_image)) {
+ echo '<img src="' . $logo_image . '" id="imLogo" name="imLogo" alt="phpMyAdmin" border="0" />';
+ } else {
+ echo '<img name="imLogo" id="imLogo" src="' . $GLOBALS['pmaThemeImage'] . 'pma_logo.png' . '" '
+ . 'border="0" width="88" height="31" alt="phpMyAdmin" />';
+ }
+ ?></a>
+<h1>
+ <?php
+ echo sprintf($GLOBALS['strWelcome'],
+ '<bdo dir="ltr" xml:lang="en">' . $page_title . '</bdo>');
+ ?>
+</h1>
+ <?php
+
+ // Show error message
+ if (! empty($conn_error)) {
+ PMA_Message::rawError($conn_error)->display();
+ }
+
+ // Displays the languages form
+ if (empty($GLOBALS['cfg']['Lang'])) {
+ require_once './libraries/display_select_lang.lib.php';
+ // use fieldset, don't show doc link
+ PMA_select_language(true, false);
+ }
+
+ ?>
+<br />
+<!-- Login form -->
+<form method="post" action="index.php" name="login_form"<?php echo $autocomplete; ?> target="_top" class="login">
+ <fieldset>
+ <legend>
+<?php
+ echo $GLOBALS['strLogin'];
+ // no real need to put a link to doc here, and it would reveal the
+ // version number
+?>
+</legend>
+
+<?php if ($GLOBALS['cfg']['AllowArbitraryServer']) { ?>
+ <div class="item">
+ <label for="input_servername" title="<?php echo $GLOBALS['strLogServerHelp']; ?>"><?php echo $GLOBALS['strLogServer']; ?></label>
+ <input type="text" name="pma_servername" id="input_servername" value="<?php echo htmlspecialchars($default_server); ?>" size="24" class="textfield" title="<?php echo $GLOBALS['strLogServerHelp']; ?>" />
+ </div>
+<?php } ?>
+ <div class="item">
+ <label for="input_username"><?php echo $GLOBALS['strLogUsername']; ?></label>
+ <input type="text" name="pma_username" id="input_username" value="<?php echo htmlspecialchars($default_user); ?>" size="24" class="textfield"/>
+ </div>
+ <div class="item">
+ <label for="input_password"><?php echo $GLOBALS['strLogPassword']; ?></label>
+ <input type="password" name="pma_password" id="input_password" value="" size="24" class="textfield" />
+ </div>
+ <?php
+ if (count($GLOBALS['cfg']['Servers']) > 1) {
+ ?>
+ <div class="item">
+ <label for="select_server"><?php echo $GLOBALS['strServerChoice']; ?>:</label>
+ <select name="server" id="select_server"
+ <?php
+ if ($GLOBALS['cfg']['AllowArbitraryServer']) {
+ echo ' onchange="document.forms[\'login_form\'].elements[\'pma_servername\'].value = \'\'" ';
+ }
+ echo '>';
+
+ require_once './libraries/select_server.lib.php';
+ PMA_select_server(false, false);
+
+ echo '</select></div>';
+ } else {
+ echo ' <input type="hidden" name="server" value="' . $GLOBALS['server'] . '" />';
+ } // end if (server choice)
+ ?>
+ </fieldset>
+ <fieldset class="tblFooters">
+ <input value="<?php echo $GLOBALS['strGo']; ?>" type="submit" id="input_go" />
+ <?php
+ $_form_params = array();
+ if (! empty($GLOBALS['target'])) {
+ $_form_params['target'] = $GLOBALS['target'];
+ }
+ if (! empty($GLOBALS['db'])) {
+ $_form_params['db'] = $GLOBALS['db'];
+ }
+ if (! empty($GLOBALS['table'])) {
+ $_form_params['table'] = $GLOBALS['table'];
+ }
+ // do not generate a "server" hidden field as we want the "server"
+ // drop-down to have priority
+ echo PMA_generate_common_hidden_inputs($_form_params, '', 0, 'server');
+ ?>
+ </fieldset>
+</form>
+
+ <?php
+
+ // BEGIN Swekey Integration
+ Swekey_login('input_username', 'input_go');
+ // END Swekey Integration
+
+ // show the "Cookies required" message only if cookies are disabled
+ // (we previously tried to set some cookies)
+ if (empty($_COOKIE)) {
+ trigger_error($GLOBALS['strCookiesRequired'], E_USER_NOTICE);
+ }
+ if ($GLOBALS['error_handler']->hasDisplayErrors()) {
+ echo '<div>';
+ $GLOBALS['error_handler']->dispErrors();
+ echo '</div>';
+ }
+ ?>
+</div>
+<script type="text/javascript">
+// <![CDATA[
+function PMA_focusInput()
+{
+ var input_username = document.getElementById('input_username');
+ var input_password = document.getElementById('input_password');
+ if (input_username.value == '') {
+ input_username.focus();
+ } else {
+ input_password.focus();
+ }
+}
+
+window.setTimeout('PMA_focusInput()', 500);
+// ]]>
+</script>
+ <?php
+ if (file_exists('./config.footer.inc.php')) {
+ require './config.footer.inc.php';
+ }
+ ?>
+</body>
+</html>
+ <?php
+ exit;
+} // end of the 'PMA_auth()' function
+
+
+
+/**
+ * Gets advanced authentication settings
+ *
+ * this function DOES NOT check authentication - it just checks/provides
+ * authentication credentials required to connect to the MySQL server
+ * usually with PMA_DBI_connect()
+ *
+ * it returns false if something is missing - which usually leads to
+ * PMA_auth() which displays login form
+ *
+ * it returns true if all seems ok which usually leads to PMA_auth_set_user()
+ *
+ * it directly switches to PMA_auth_fails() if user inactivity timout is reached
+ *
+ * @todo AllowArbitraryServer on does not imply that the user wants an
+ * arbitrary server, or? so we should also check if this is filled and
+ * not only if allowed
+ * @uses $GLOBALS['PHP_AUTH_USER']
+ * @uses $GLOBALS['PHP_AUTH_PW']
+ * @uses $GLOBALS['no_activity']
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['from_cookie']
+ * @uses $GLOBALS['pma_auth_server']
+ * @uses $cfg['AllowArbitraryServer']
+ * @uses $cfg['LoginCookieValidity']
+ * @uses $cfg['Servers']
+ * @uses $_REQUEST['old_usr'] from logout link
+ * @uses $_REQUEST['pma_username'] from login form
+ * @uses $_REQUEST['pma_password'] from login form
+ * @uses $_REQUEST['pma_servername'] from login form
+ * @uses $_COOKIE
+ * @uses $_SESSION['last_access_time']
+ * @uses PMA_removeCookie()
+ * @uses PMA_blowfish_decrypt()
+ * @uses PMA_auth_fails()
+ * @uses time()
+ *
+ * @return boolean whether we get authentication settings or not
+ *
+ * @access public
+ */
+function PMA_auth_check()
+{
+ // Initialization
+ /**
+ * @global $GLOBALS['pma_auth_server'] the user provided server to connect to
+ */
+ $GLOBALS['pma_auth_server'] = '';
+
+ $GLOBALS['PHP_AUTH_USER'] = $GLOBALS['PHP_AUTH_PW'] = '';
+ $GLOBALS['from_cookie'] = false;
+
+ // BEGIN Swekey Integration
+ if (! Swekey_auth_check()) {
+ return false;
+ }
+ // END Swekey Integration
+
+ if (defined('PMA_CLEAR_COOKIES')) {
+ foreach($GLOBALS['cfg']['Servers'] as $key => $val) {
+ PMA_removeCookie('pmaPass-' . $key);
+ PMA_removeCookie('pmaServer-' . $key);
+ PMA_removeCookie('pmaUser-' . $key);
+ }
+ return false;
+ }
+
+ if (! empty($_REQUEST['old_usr'])) {
+ // The user wants to be logged out
+ // -> delete his choices that were stored in session
+
+ // according to the PHP manual we should do this before the destroy:
+ //$_SESSION = array();
+ // but we still need some parts of the session information
+ // in libraries/header_meta_style.inc.php
+
+ session_destroy();
+ // -> delete password cookie(s)
+ if ($GLOBALS['cfg']['LoginCookieDeleteAll']) {
+ foreach($GLOBALS['cfg']['Servers'] as $key => $val) {
+ PMA_removeCookie('pmaPass-' . $key);
+ if (isset($_COOKIE['pmaPass-' . $key])) {
+ unset($_COOKIE['pmaPass-' . $key]);
+ }
+ }
+ } else {
+ PMA_removeCookie('pmaPass-' . $GLOBALS['server']);
+ if (isset($_COOKIE['pmaPass-' . $GLOBALS['server']])) {
+ unset($_COOKIE['pmaPass-' . $GLOBALS['server']]);
+ }
+ }
+ }
+
+ if (! empty($_REQUEST['pma_username'])) {
+ // The user just logged in
+ $GLOBALS['PHP_AUTH_USER'] = $_REQUEST['pma_username'];
+ $GLOBALS['PHP_AUTH_PW'] = empty($_REQUEST['pma_password']) ? '' : $_REQUEST['pma_password'];
+ if ($GLOBALS['cfg']['AllowArbitraryServer'] && isset($_REQUEST['pma_servername'])) {
+ $GLOBALS['pma_auth_server'] = $_REQUEST['pma_servername'];
+ }
+ return true;
+ }
+
+ // At the end, try to set the $GLOBALS['PHP_AUTH_USER']
+ // and $GLOBALS['PHP_AUTH_PW'] variables from cookies
+
+ // servername
+ if ($GLOBALS['cfg']['AllowArbitraryServer']
+ && ! empty($_COOKIE['pmaServer-' . $GLOBALS['server']])) {
+ $GLOBALS['pma_auth_server'] = $_COOKIE['pmaServer-' . $GLOBALS['server']];
+ }
+
+ // username
+ if (empty($_COOKIE['pmaUser-' . $GLOBALS['server']])) {
+ return false;
+ }
+
+ $GLOBALS['PHP_AUTH_USER'] = PMA_blowfish_decrypt(
+ $_COOKIE['pmaUser-' . $GLOBALS['server']],
+ PMA_get_blowfish_secret());
+
+ // user was never logged in since session start
+ if (empty($_SESSION['last_access_time'])) {
+ return false;
+ }
+
+ // User inactive too long
+ if ($_SESSION['last_access_time'] < time() - $GLOBALS['cfg']['LoginCookieValidity']) {
+ PMA_cacheUnset('is_create_db_priv', true);
+ PMA_cacheUnset('is_process_priv', true);
+ PMA_cacheUnset('is_reload_priv', true);
+ PMA_cacheUnset('db_to_create', true);
+ PMA_cacheUnset('dbs_where_create_table_allowed', true);
+ $GLOBALS['no_activity'] = true;
+ PMA_auth_fails();
+ exit;
+ }
+
+ // password
+ if (empty($_COOKIE['pmaPass-' . $GLOBALS['server']])) {
+ return false;
+ }
+
+ $GLOBALS['PHP_AUTH_PW'] = PMA_blowfish_decrypt(
+ $_COOKIE['pmaPass-' . $GLOBALS['server']],
+ PMA_get_blowfish_secret());
+
+ if ($GLOBALS['PHP_AUTH_PW'] == "\xff(blank)") {
+ $GLOBALS['PHP_AUTH_PW'] = '';
+ }
+
+ $GLOBALS['from_cookie'] = true;
+
+ return true;
+} // end of the 'PMA_auth_check()' function
+
+
+/**
+ * Set the user and password after last checkings if required
+ *
+ * @uses $GLOBALS['PHP_AUTH_USER']
+ * @uses $GLOBALS['PHP_AUTH_PW']
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['from_cookie']
+ * @uses $GLOBALS['pma_auth_server']
+ * @uses $cfg['Server']
+ * @uses $cfg['AllowArbitraryServer']
+ * @uses $cfg['LoginCookieStore']
+ * @uses $cfg['PmaAbsoluteUri']
+ * @uses $_SESSION['last_access_time']
+ * @uses PMA_COMING_FROM_COOKIE_LOGIN
+ * @uses PMA_setCookie()
+ * @uses PMA_blowfish_encrypt()
+ * @uses PMA_removeCookie()
+ * @uses PMA_sendHeaderLocation()
+ * @uses time()
+ * @uses define()
+ * @return boolean always true
+ *
+ * @access public
+ */
+function PMA_auth_set_user()
+{
+ global $cfg;
+
+ // Ensures valid authentication mode, 'only_db', bookmark database and
+ // table names and relation table name are used
+ if ($cfg['Server']['user'] != $GLOBALS['PHP_AUTH_USER']) {
+ foreach ($cfg['Servers'] as $idx => $current) {
+ if ($current['host'] == $cfg['Server']['host']
+ && $current['port'] == $cfg['Server']['port']
+ && $current['socket'] == $cfg['Server']['socket']
+ && $current['ssl'] == $cfg['Server']['ssl']
+ && $current['connect_type'] == $cfg['Server']['connect_type']
+ && $current['user'] == $GLOBALS['PHP_AUTH_USER']) {
+ $GLOBALS['server'] = $idx;
+ $cfg['Server'] = $current;
+ break;
+ }
+ } // end foreach
+ } // end if
+
+ if ($GLOBALS['cfg']['AllowArbitraryServer']
+ && ! empty($GLOBALS['pma_auth_server'])) {
+ /* Allow to specify 'host port' */
+ $parts = explode(' ', $GLOBALS['pma_auth_server']);
+ if (count($parts) == 2) {
+ $tmp_host = $parts[0];
+ $tmp_port = $parts[1];
+ } else {
+ $tmp_host = $GLOBALS['pma_auth_server'];
+ $tmp_port = '';
+ }
+ if ($cfg['Server']['host'] != $GLOBALS['pma_auth_server']) {
+ $cfg['Server']['host'] = $tmp_host;
+ if (!empty($tmp_port)) {
+ $cfg['Server']['port'] = $tmp_port;
+ }
+ }
+ unset($tmp_host, $tmp_port, $parts);
+ }
+ $cfg['Server']['user'] = $GLOBALS['PHP_AUTH_USER'];
+ $cfg['Server']['password'] = $GLOBALS['PHP_AUTH_PW'];
+
+ $_SESSION['last_access_time'] = time();
+
+ // Name and password cookies need to be refreshed each time
+ // Duration = one month for username
+ PMA_setCookie('pmaUser-' . $GLOBALS['server'],
+ PMA_blowfish_encrypt($cfg['Server']['user'],
+ PMA_get_blowfish_secret()));
+
+ // Duration = as configured
+ PMA_setCookie('pmaPass-' . $GLOBALS['server'],
+ PMA_blowfish_encrypt(!empty($cfg['Server']['password']) ? $cfg['Server']['password'] : "\xff(blank)",
+ PMA_get_blowfish_secret()),
+ null,
+ $GLOBALS['cfg']['LoginCookieStore']);
+
+ // Set server cookies if required (once per session) and, in this case, force
+ // reload to ensure the client accepts cookies
+ if (! $GLOBALS['from_cookie']) {
+ if ($GLOBALS['cfg']['AllowArbitraryServer']) {
+ if (! empty($GLOBALS['pma_auth_server'])) {
+ // Duration = one month for servername
+ PMA_setCookie('pmaServer-' . $GLOBALS['server'], $cfg['Server']['host']);
+ } else {
+ // Delete servername cookie
+ PMA_removeCookie('pmaServer-' . $GLOBALS['server']);
+ }
+ }
+
+ // URL where to go:
+ $redirect_url = $cfg['PmaAbsoluteUri'] . 'index.php';
+
+ // any parameters to pass?
+ $url_params = array();
+ if (strlen($GLOBALS['db'])) {
+ $url_params['db'] = $GLOBALS['db'];
+ }
+ if (strlen($GLOBALS['table'])) {
+ $url_params['table'] = $GLOBALS['table'];
+ }
+ // any target to pass?
+ if (! empty($GLOBALS['target']) && $GLOBALS['target'] != 'index.php') {
+ $url_params['target'] = $GLOBALS['target'];
+ }
+
+ /**
+ * whether we come from a fresh cookie login
+ */
+ define('PMA_COMING_FROM_COOKIE_LOGIN', true);
+ PMA_sendHeaderLocation($redirect_url . PMA_generate_common_url($url_params, '&'));
+ exit();
+ } // end if
+
+ return true;
+} // end of the 'PMA_auth_set_user()' function
+
+
+/**
+ * User is not allowed to login to MySQL -> authentication failed
+ *
+ * prepares error message and switches to PMA_auth() which display the error
+ * and the login form
+ *
+ * this function MUST exit/quit the application,
+ * currently doen by call to PMA_auth()
+ *
+ * @todo $php_errormsg is invalid here!? it will never be set in this scope
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['allowDeny_forbidden']
+ * @uses $GLOBALS['strAccessDenied']
+ * @uses $GLOBALS['strNoActivity']
+ * @uses $GLOBALS['strCannotLogin']
+ * @uses $GLOBALS['no_activity']
+ * @uses $cfg['LoginCookieValidity']
+ * @uses PMA_removeCookie()
+ * @uses PMA_getenv()
+ * @uses PMA_DBI_getError()
+ * @uses PMA_sanitize()
+ * @uses PMA_auth()
+ * @uses sprintf()
+ * @uses basename()
+ * @access public
+ */
+function PMA_auth_fails()
+{
+ global $conn_error;
+
+ // Deletes password cookie and displays the login form
+ PMA_removeCookie('pmaPass-' . $GLOBALS['server']);
+
+ if (! empty($GLOBALS['allowDeny_forbidden'])) {
+ $conn_error = $GLOBALS['strAccessDenied'];
+ } elseif (! empty($GLOBALS['no_activity'])) {
+ $conn_error = sprintf($GLOBALS['strNoActivity'], $GLOBALS['cfg']['LoginCookieValidity']);
+ // Remember where we got timeout to return on same place
+ if (PMA_getenv('SCRIPT_NAME')) {
+ $GLOBALS['target'] = basename(PMA_getenv('SCRIPT_NAME'));
+ // avoid "missing parameter: field" on re-entry
+ if ('tbl_alter.php' == $GLOBALS['target']) {
+ $GLOBALS['target'] = 'tbl_structure.php';
+ }
+ }
+ } elseif (PMA_DBI_getError()) {
+ $conn_error = PMA_sanitize(PMA_DBI_getError());
+ } elseif (isset($php_errormsg)) {
+ $conn_error = $php_errormsg;
+ } else {
+ $conn_error = $GLOBALS['strCannotLogin'];
+ }
+
+ PMA_auth();
+} // end of the 'PMA_auth_fails()' function
+
+?>
diff --git a/libraries/auth/http.auth.lib.php b/libraries/auth/http.auth.lib.php
new file mode 100644
index 0000000000..c68e356555
--- /dev/null
+++ b/libraries/auth/http.auth.lib.php
@@ -0,0 +1,228 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to run http authentication.
+ * NOTE: Requires PHP loaded as a Apache module.
+ *
+ * @version $Id$
+ */
+
+
+/**
+ * Displays authentication form
+ *
+ * @global string the font face to use in case of failure
+ * @global string the default font size to use in case of failure
+ * @global string the big font size to use in case of failure
+ *
+ * @return boolean always true (no return indeed)
+ *
+ * @access public
+ */
+function PMA_auth()
+{
+ /* Perform logout to custom URL */
+ if (!empty($_REQUEST['old_usr']) && !empty($GLOBALS['cfg']['Server']['LogoutURL'])) {
+ PMA_sendHeaderLocation($GLOBALS['cfg']['Server']['LogoutURL']);
+ exit;
+ }
+
+ if (empty($GLOBALS['cfg']['Server']['verbose'])) {
+ $server_message = $GLOBALS['cfg']['Server']['host'];
+ } else {
+ $server_message = $GLOBALS['cfg']['Server']['verbose'];
+ }
+ // remove non US-ASCII to respect RFC2616
+ $server_message = preg_replace('/[^\x20-\x7e]/i', '', $server_message);
+ header('WWW-Authenticate: Basic realm="phpMyAdmin ' . $server_message . '"');
+ header('HTTP/1.0 401 Unauthorized');
+ if (php_sapi_name() !== 'cgi-fcgi') {
+ header('status: 401 Unauthorized');
+ }
+
+ // Defines the charset to be used
+ header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
+ /* HTML header */
+ $page_title = $GLOBALS['strAccessDenied'];
+ require './libraries/header_meta_style.inc.php';
+ ?>
+</head>
+<body>
+ <?php
+ if (file_exists('./config.header.inc.php')) {
+ require './config.header.inc.php';
+ }
+ ?>
+
+<br /><br />
+<center>
+ <h1><?php echo sprintf($GLOBALS['strWelcome'], ' phpMyAdmin'); ?></h1>
+</center>
+<br />
+
+ <?php
+ PMA_Message::error('strWrongUser')->display();
+
+ if (file_exists('./config.footer.inc.php')) {
+ require './config.footer.inc.php';
+ }
+ ?>
+
+</body>
+</html>
+ <?php
+ exit();
+} // end of the 'PMA_auth()' function
+
+
+/**
+ * Gets advanced authentication settings
+ *
+ * @global string the username if register_globals is on
+ * @global string the password if register_globals is on
+ * @global array the array of server variables if register_globals is
+ * off
+ * @global array the array of environment variables if register_globals
+ * is off
+ * @global string the username for the ? server
+ * @global string the password for the ? server
+ * @global string the username for the WebSite Professional server
+ * @global string the password for the WebSite Professional server
+ * @global string the username of the user who logs out
+ *
+ * @return boolean whether we get authentication settings or not
+ *
+ * @access public
+ */
+function PMA_auth_check()
+{
+ global $PHP_AUTH_USER, $PHP_AUTH_PW;
+ global $old_usr;
+
+ // Grabs the $PHP_AUTH_USER variable whatever are the values of the
+ // 'register_globals' and the 'variables_order' directives
+ if (empty($PHP_AUTH_USER)) {
+ if (PMA_getenv('PHP_AUTH_USER')) {
+ $PHP_AUTH_USER = PMA_getenv('PHP_AUTH_USER');
+ } elseif (PMA_getenv('REMOTE_USER')) {
+ // CGI, might be encoded, see below
+ $PHP_AUTH_USER = PMA_getenv('REMOTE_USER');
+ } elseif (PMA_getenv('REDIRECT_REMOTE_USER')) {
+ // CGI, might be encoded, see below
+ $PHP_AUTH_USER = PMA_getenv('REDIRECT_REMOTE_USER');
+ } elseif (PMA_getenv('AUTH_USER')) {
+ // WebSite Professional
+ $PHP_AUTH_USER = PMA_getenv('AUTH_USER');
+ } elseif (PMA_getenv('HTTP_AUTHORIZATION')) {
+ // IIS, might be encoded, see below
+ $PHP_AUTH_USER = PMA_getenv('HTTP_AUTHORIZATION');
+ } elseif (PMA_getenv('Authorization')) {
+ // FastCGI, might be encoded, see below
+ $PHP_AUTH_USER = PMA_getenv('Authorization');
+ }
+ }
+ // Grabs the $PHP_AUTH_PW variable whatever are the values of the
+ // 'register_globals' and the 'variables_order' directives
+ if (empty($PHP_AUTH_PW)) {
+ if (PMA_getenv('PHP_AUTH_PW')) {
+ $PHP_AUTH_PW = PMA_getenv('PHP_AUTH_PW');
+ } elseif (PMA_getenv('REMOTE_PASSWORD')) {
+ // Apache/CGI
+ $PHP_AUTH_PW = PMA_getenv('REMOTE_PASSWORD');
+ } elseif (PMA_getenv('AUTH_PASSWORD')) {
+ // WebSite Professional
+ $PHP_AUTH_PW = PMA_getenv('AUTH_PASSWORD');
+ }
+ }
+
+ // Decode possibly encoded information (used by IIS/CGI/FastCGI)
+ // (do not use explode() because a user might have a colon in his password
+ if (strcmp(substr($PHP_AUTH_USER, 0, 6), 'Basic ') == 0) {
+ $usr_pass = base64_decode(substr($PHP_AUTH_USER, 6));
+ if (! empty($usr_pass)) {
+ $colon = strpos($usr_pass, ':');
+ if ($colon) {
+ $PHP_AUTH_USER = substr($usr_pass, 0, $colon);
+ $PHP_AUTH_PW = substr($usr_pass, $colon + 1);
+ }
+ unset($colon);
+ }
+ unset($usr_pass);
+ }
+
+ // User logged out -> ensure the new username is not the same
+ if (!empty($old_usr)
+ && (isset($PHP_AUTH_USER) && $old_usr == $PHP_AUTH_USER)) {
+ $PHP_AUTH_USER = '';
+ // -> delete user's choices that were stored in session
+ session_destroy();
+ }
+
+ // Returns whether we get authentication settings or not
+ if (empty($PHP_AUTH_USER)) {
+ return false;
+ } else {
+ return true;
+ }
+} // end of the 'PMA_auth_check()' function
+
+
+/**
+ * Set the user and password after last checkings if required
+ *
+ * @global array the valid servers settings
+ * @global integer the id of the current server
+ * @global array the current server settings
+ * @global string the current username
+ * @global string the current password
+ *
+ * @return boolean always true
+ *
+ * @access public
+ */
+function PMA_auth_set_user()
+{
+ global $cfg, $server;
+ global $PHP_AUTH_USER, $PHP_AUTH_PW;
+
+ // Ensures valid authentication mode, 'only_db', bookmark database and
+ // table names and relation table name are used
+ if ($cfg['Server']['user'] != $PHP_AUTH_USER) {
+ $servers_cnt = count($cfg['Servers']);
+ for ($i = 1; $i <= $servers_cnt; $i++) {
+ if (isset($cfg['Servers'][$i])
+ && ($cfg['Servers'][$i]['host'] == $cfg['Server']['host'] && $cfg['Servers'][$i]['user'] == $PHP_AUTH_USER)) {
+ $server = $i;
+ $cfg['Server'] = $cfg['Servers'][$i];
+ break;
+ }
+ } // end for
+ } // end if
+
+ $cfg['Server']['user'] = $PHP_AUTH_USER;
+ $cfg['Server']['password'] = $PHP_AUTH_PW;
+
+ return true;
+} // end of the 'PMA_auth_set_user()' function
+
+
+/**
+ * User is not allowed to login to MySQL -> authentication failed
+ *
+ * @return boolean always true (no return indeed)
+ *
+ * @access public
+ */
+function PMA_auth_fails()
+{
+ $error = PMA_DBI_getError();
+ if ($error && $GLOBALS['errno'] != 1045) {
+ PMA_fatalError($error);
+ } else {
+ PMA_auth();
+ return true;
+ }
+
+} // end of the 'PMA_auth_fails()' function
+
+?>
diff --git a/libraries/auth/signon.auth.lib.php b/libraries/auth/signon.auth.lib.php
new file mode 100644
index 0000000000..b5118cdf83
--- /dev/null
+++ b/libraries/auth/signon.auth.lib.php
@@ -0,0 +1,174 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to run single signon authentication.
+ *
+ * @version $Id$
+ */
+
+
+/**
+ * Displays authentication form
+ *
+ * @global string the font face to use in case of failure
+ * @global string the default font size to use in case of failure
+ * @global string the big font size to use in case of failure
+ *
+ * @return boolean always true (no return indeed)
+ *
+ * @access public
+ */
+function PMA_auth() {
+ if (empty($GLOBALS['cfg']['Server']['SignonURL'])) {
+ PMA_fatalError('You must set SignonURL!');
+ } elseif (!empty($_REQUEST['old_usr']) && !empty($GLOBALS['cfg']['Server']['LogoutURL'])) {
+ /* Perform logout to custom URL */
+ PMA_sendHeaderLocation($GLOBALS['cfg']['Server']['LogoutURL']);
+ } else {
+ PMA_sendHeaderLocation($GLOBALS['cfg']['Server']['SignonURL']);
+ }
+ exit();
+} // end of the 'PMA_auth()' function
+
+
+/**
+ * Gets advanced authentication settings
+ *
+ * @global string the username if register_globals is on
+ * @global string the password if register_globals is on
+ * @global array the array of server variables if register_globals is
+ * off
+ * @global array the array of environment variables if register_globals
+ * is off
+ * @global string the username for the ? server
+ * @global string the password for the ? server
+ * @global string the username for the WebSite Professional server
+ * @global string the password for the WebSite Professional server
+ * @global string the username of the user who logs out
+ *
+ * @return boolean whether we get authentication settings or not
+ *
+ * @access public
+ */
+function PMA_auth_check()
+{
+ global $PHP_AUTH_USER, $PHP_AUTH_PW;
+
+ /* Session name */
+ $session_name = $GLOBALS['cfg']['Server']['SignonSession'];
+
+ /* Current host */
+ $single_signon_host = $GLOBALS['cfg']['Server']['host'];
+
+ /* Are we requested to do logout? */
+ $do_logout = !empty($_REQUEST['old_usr']);
+
+ /* Does session exist? */
+ if (isset($_COOKIE[$session_name])) {
+ /* End current session */
+ $old_session = session_name();
+ $old_id = session_id();
+ session_write_close();
+
+ /* Load single signon session */
+ session_name($session_name);
+ session_id($_COOKIE[$session_name]);
+ session_start();
+
+ /* Grab credentials if they exist */
+ if (isset($_SESSION['PMA_single_signon_user'])) {
+ if ($do_logout) {
+ $PHP_AUTH_USER = '';
+ } else {
+ $PHP_AUTH_USER = $_SESSION['PMA_single_signon_user'];
+ }
+ }
+ if (isset($_SESSION['PMA_single_signon_password'])) {
+ if ($do_logout) {
+ $PHP_AUTH_PW = '';
+ } else {
+ $PHP_AUTH_PW = $_SESSION['PMA_single_signon_password'];
+ }
+ }
+ if (isset($_SESSION['PMA_single_signon_host'])) {
+ $single_signon_host = $_SESSION['PMA_single_signon_host'];
+ }
+ /* Also get token as it is needed to access subpages */
+ if (isset($_SESSION['PMA_single_signon_token'])) {
+ /* No need to care about token on logout */
+ $pma_token = $_SESSION['PMA_single_signon_token'];
+ }
+
+ /* End single signon session */
+ session_write_close();
+
+ /* Restart phpMyAdmin session */
+ session_name($old_session);
+ if (!empty($old_id)) {
+ session_id($old_id);
+ }
+ session_start();
+
+ /* Set the single signon host */
+ $GLOBALS['cfg']['Server']['host']=$single_signon_host;
+
+ /* Restore our token */
+ if (!empty($pma_token)) {
+ $_SESSION[' PMA_token '] = $pma_token;
+ }
+ }
+
+ // Returns whether we get authentication settings or not
+ if (empty($PHP_AUTH_USER)) {
+ return false;
+ } else {
+ return true;
+ }
+} // end of the 'PMA_auth_check()' function
+
+
+/**
+ * Set the user and password after last checkings if required
+ *
+ * @global array the valid servers settings
+ * @global integer the id of the current server
+ * @global array the current server settings
+ * @global string the current username
+ * @global string the current password
+ *
+ * @return boolean always true
+ *
+ * @access public
+ */
+function PMA_auth_set_user()
+{
+ global $cfg;
+ global $PHP_AUTH_USER, $PHP_AUTH_PW;
+
+ $cfg['Server']['user'] = $PHP_AUTH_USER;
+ $cfg['Server']['password'] = $PHP_AUTH_PW;
+
+ return true;
+} // end of the 'PMA_auth_set_user()' function
+
+
+/**
+ * User is not allowed to login to MySQL -> authentication failed
+ *
+ * @return boolean always true (no return indeed)
+ *
+ * @access public
+ */
+function PMA_auth_fails()
+{
+ $error = PMA_DBI_getError();
+ if ($error && $GLOBALS['errno'] != 1045) {
+ PMA_fatalError($error);
+ } else {
+ PMA_auth();
+ return true;
+ }
+
+} // end of the 'PMA_auth_fails()' function
+
+?>
diff --git a/libraries/auth/swekey/authentication.inc.php b/libraries/auth/swekey/authentication.inc.php
new file mode 100644
index 0000000000..ea23393df7
--- /dev/null
+++ b/libraries/auth/swekey/authentication.inc.php
@@ -0,0 +1,167 @@
+
+<script>
+
+ var g_SwekeyPlugin = null;
+
+ // -------------------------------------------------------------------
+ // Create the swekey plugin if it does not exists
+ function Swekey_Plugin()
+ {
+ try
+ {
+ if (g_SwekeyPlugin != null)
+ return g_SwekeyPlugin;
+
+ if (window.ActiveXObject)
+ {
+ g_SwekeyPlugin = document.getElementById("swekey_activex");
+ if (g_SwekeyPlugin == null)
+ {
+ // we must create the activex that way instead of new ActiveXObject("FbAuthAx.FbAuthCtl");
+ // ortherwise SetClientSite is not called and we can not get the url
+ var div = document.createElement('div');
+ div.innerHTML='<object id="swekey_activex" style="display:none" CLASSID="CLSID:8E02E3F9-57AA-4EE1-AA68-A42DD7B0FADE"></object>';
+
+ // Never append to the body because it may still loading and it breaks IE
+ document.body.insertBefore(div, document.body.firstChild);
+ g_SwekeyPlugin = document.getElementById("swekey_activex");
+ }
+ return g_SwekeyPlugin;
+ }
+
+ g_SwekeyPlugin = document.getElementById("swekey_plugin");
+ if (g_SwekeyPlugin != null)
+ return g_SwekeyPlugin;
+
+ for (i = 0; i < navigator.plugins.length; i ++)
+ {
+ try
+ {
+ if (navigator.plugins[i] == null)
+ {
+ navigator.plugins.refresh();
+ }
+ else if (navigator.plugins[i][0] != null && navigator.plugins[i][0].type == "application/fbauth-plugin")
+ {
+ var x = document.createElement('embed');
+ x.setAttribute('type', 'application/fbauth-plugin');
+ x.setAttribute('id', 'swekey_plugin');
+ x.setAttribute('width', '0');
+ x.setAttribute('height', '0');
+ x.style.dislay='none';
+
+ //document.body.appendChild(x);
+ document.body.insertBefore(x, document.body.firstChild);
+ g_SwekeyPlugin = document.getElementById("swekey_plugin");
+ return g_SwekeyPlugin;
+ }
+ }
+ catch (e)
+ {
+ navigator.plugins.refresh();
+ //alert ('Failed to create plugin: ' + e);
+ }
+ }
+ }
+ catch (e)
+ {
+ //alert("Swekey_Plugin " + e);
+ g_SwekeyPlugin = null;
+ }
+ return null;
+ }
+
+ // -------------------------------------------------------------------
+ // Returns true if the swekey plugin is installed
+ function Swekey_Installed()
+ {
+ return (Swekey_Plugin() != null);
+ }
+
+ // -------------------------------------------------------------------
+ // List the id of the Swekey connected to the PC
+ // Returns a string containing comma separated Swekey Ids
+ // A Swekey is a 32 char hexadecimal value.
+ function Swekey_ListKeyIds()
+ {
+ try
+ {
+ return Swekey_Plugin().list();
+ }
+ catch (e)
+ {
+// alert("Swekey_ListKeyIds " + e);
+ }
+ return "";
+ }
+
+ // -------------------------------------------------------------------
+ // Ask the Connected Swekey to generate an OTP
+ // id: The id of the connected Swekey (returne by Swekey_ListKeyIds())
+ // rt: A random token
+ // return: The calculated OTP encoded in a 64 chars hexadecimal value.
+ function Swekey_GetOtp(id, rt)
+ {
+ try
+ {
+ return Swekey_Plugin().getotp(id, rt);
+ }
+ catch (e)
+ {
+// alert("Swekey_GetOtp " + e);
+ }
+ return "";
+ }
+
+ // -------------------------------------------------------------------
+ // Ask the Connected Swekey to generate a OTP linked to the current https host
+ // id: The id of the connected Swekey (returne by Swekey_ListKeyIds())
+ // rt: A random token
+ // return: The calculated OTP encoded in a 64 chars hexadecimal value.
+ // or "" if the current url does not start with https
+ function Swekey_GetLinkedOtp(id, rt)
+ {
+ try
+ {
+ return Swekey_Plugin().getlinkedotp(id, rt);
+ }
+ catch (e)
+ {
+// alert("Swekey_GetSOtp " + e);
+ }
+ return "";
+ }
+
+ // -------------------------------------------------------------------
+ // Calls Swekey_GetOtp or Swekey_GetLinkedOtp depending if we are in
+ // an https page or not.
+ // id: The id of the connected Swekey (returne by Swekey_ListKeyIds())
+ // rt: A random token
+ // return: The calculated OTP encoded in a 64 chars hexadecimal value.
+ function Swekey_GetSmartOtp(id, rt)
+ {
+ var res = Swekey_GetLinkedOtp(id, rt);
+ if (res == "")
+ res = Swekey_GetOtp(id, rt);
+
+ return res;
+ }
+
+ // -------------------------------------------------------------------
+ // Set a unplug handler (url) to the specified connected feebee
+ // id: The id of the connected Swekey (returne by Swekey_ListKeyIds())
+ // key: The key that index that url, (aplhanumeric values only)
+ // url: The url that will be launched ("" deletes the url)
+ function Swekey_SetUnplugUrl(id, key, url)
+ {
+ try
+ {
+ return Swekey_Plugin().setunplugurl(id, key, url);
+ }
+ catch (e)
+ {
+// alert("Swekey_SetUnplugUrl " + e);
+ }
+ }
+
+</script>
diff --git a/libraries/auth/swekey/musbe-ca.crt b/libraries/auth/swekey/musbe-ca.crt
new file mode 100644
index 0000000000..2a31ad18f9
--- /dev/null
+++ b/libraries/auth/swekey/musbe-ca.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIJAMjw7QcLWCd6MA0GCSqGSIb3DQEBBQUAMGsxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRQwEgYDVQQKEwtNdXNiZSwgSW5j
+LjESMBAGA1UEAxMJbXVzYmUuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQG11c2Jl
+LmNvbTAeFw0wODA5MDQxNDE2MTNaFw0zNzEyMjExNDE2MTNaMGsxCzAJBgNVBAYT
+AlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRQwEgYDVQQKEwtNdXNiZSwgSW5jLjES
+MBAGA1UEAxMJbXVzYmUuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQG11c2JlLmNv
+bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOBhOljxVzQfK4gted2I
+d3BemcjW4abAUOzn3KYWXpPO5xIfVeXNDGkDbyH+X+7fo94sX25/ewuKNFDSOcvo
+tXHq7uQenTHB35r+a+LY81KceUHgW90a3XsqPAkwAjyYcgo3zmM2DtLvw+5Yod8T
+wAHk9m3qavnQ1uk99jBTwL7RZ9jIZHh9pFCL93uJc2obtd8O96Iycbn2q0w/AWbb
++eUVWIHzvLtfPvROeL3lJzr/Uz5LjKapxJ3qyqASflfHpnj9pU8l6g2TQ6Hg5KT5
+tLFkRe7uGhOfRtOQ/+NjaWrEuNCFnpyN4Q5Fv+5qA1Ip1IpH0200sWbAf/k2u0Qp
+Sx0CAwEAAaOB0DCBzTAdBgNVHQ4EFgQUczJrQ7hCvtsnzcqiDIZ/GSn/CiwwgZ0G
+A1UdIwSBlTCBkoAUczJrQ7hCvtsnzcqiDIZ/GSn/Ciyhb6RtMGsxCzAJBgNVBAYT
+AlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRQwEgYDVQQKEwtNdXNiZSwgSW5jLjES
+MBAGA1UEAxMJbXVzYmUuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQG11c2JlLmNv
+bYIJAMjw7QcLWCd6MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAGxk
+8xzIljeBDQWWVRr0NEALVSv3i09V4jAKkyEOfmZ8lKMKJi0atwbtjrXTzLnNYj+Q
+pyUbyY/8ItWvV7pnVxMiF9qcer7e9X4vw358GZuMVE/da1nWxz+CwzTm5oO30RzA
+antM9bISFFr9lJq69bDWOnCUi1IG8DSL3TxtlABso7S4vqiZ+sB33l6k1K4a/Njb
+QkU9UejKhKkVVZTsOrumfnOJ4MCmPfX8Y/AY2o670y5HnzpxerIYziCVzApPVrW7
+sKH0tuVGturMfQOKgstYe4/m9glBTeTLMkjD+6MJC2ONBD7GAiOO95gNl5M1fzJQ
+FEe5CJ7DCYl0GdmLXXw=
+-----END CERTIFICATE-----
diff --git a/libraries/auth/swekey/swekey.auth.lib.php b/libraries/auth/swekey/swekey.auth.lib.php
new file mode 100644
index 0000000000..a4203f45fe
--- /dev/null
+++ b/libraries/auth/swekey/swekey.auth.lib.php
@@ -0,0 +1,271 @@
+<?php
+
+function Swekey_auth_check()
+{
+ global $cfg;
+ $confFile = $cfg['Server']['auth_swekey_config'];
+
+ if (! isset($_SESSION['SWEKEY'])) {
+ $_SESSION['SWEKEY'] = array();
+ }
+
+ $_SESSION['SWEKEY']['ENABLED'] = (! empty($confFile) && file_exists($confFile));
+
+ // Load the swekey.conf file the first time
+ if ($_SESSION['SWEKEY']['ENABLED'] && empty($_SESSION['SWEKEY']['CONF_LOADED'])) {
+ $_SESSION['SWEKEY']['CONF_LOADED'] = true;
+ $_SESSION['SWEKEY']['VALID_SWEKEYS'] = array();
+ $valid_swekeys = split("\n",@file_get_contents($confFile));
+ foreach ($valid_swekeys as $line) {
+ if (ereg("^[0-9A-F]{32}:.+$", $line) != false)
+ {
+ $items = explode(":", $line);
+ if (count($items) == 2)
+ $_SESSION['SWEKEY']['VALID_SWEKEYS'][$items[0]] = trim($items[1]);
+ }
+ else if (ereg("^[A-Z_]+=.*$", $line) != false) {
+ $items = explode("=", $line);
+ $_SESSION['SWEKEY']['CONF_'.trim($items[0])] = trim($items[1]);
+ }
+ }
+
+ // Set default values for settings
+ if (! isset($_SESSION['SWEKEY']['CONF_SERVER_CHECK']))
+ $_SESSION['SWEKEY']['CONF_SERVER_CHECK'] = "";
+ if (! isset($_SESSION['SWEKEY']['CONF_SERVER_RNDTOKEN']))
+ $_SESSION['SWEKEY']['CONF_SERVER_RNDTOKEN'] = "";
+ if (! isset($_SESSION['SWEKEY']['CONF_SERVER_STATUS']))
+ $_SESSION['SWEKEY']['CONF_SERVER_STATUS'] = "";
+ if (! isset($_SESSION['SWEKEY']['CONF_CA_FILE']))
+ $_SESSION['SWEKEY']['CONF_CA_FILE'] = "";
+ if (! isset($_SESSION['SWEKEY']['CONF_ENABLE_TOKEN_CACHE']))
+ $_SESSION['SWEKEY']['CONF_ENABLE_TOKEN_CACHE'] = true;
+ if (! isset($_SESSION['SWEKEY']['CONF_DEBUG']))
+ $_SESSION['SWEKEY']['CONF_DEBUG'] = false;
+ }
+
+ // check if a web key has been authenticated
+ if ($_SESSION['SWEKEY']['ENABLED']) {
+ if (empty($_SESSION['SWEKEY']['AUTHENTICATED_SWEKEY']))
+ return false;
+ }
+
+ return true;
+}
+
+
+function Swekey_auth_error()
+{
+ if (! isset($_SESSION['SWEKEY']))
+ return null;
+
+ if (! $_SESSION['SWEKEY']['ENABLED'])
+ return null;
+
+ require_once './libraries/auth/swekey/authentication.inc.php';
+
+ ?>
+ <script>
+ function Swekey_GetValidKey()
+ {
+ var valids = "<?php
+ foreach ($_SESSION['SWEKEY']['VALID_SWEKEYS'] as $key => $value)
+ echo $key.',';
+ ?>";
+ var connected_keys = Swekey_ListKeyIds().split(",");
+ for (i in connected_keys)
+ if (connected_keys[i] != null && connected_keys[i].length == 32)
+ if (valids.indexOf(connected_keys[i]) >= 0)
+ return connected_keys[i];
+
+
+ if (connected_keys.length > 0)
+ if (connected_keys[0].length == 32)
+ return "unknown_key_" + connected_keys[0];
+
+ return "none";
+ }
+
+ var key = Swekey_GetValidKey();
+
+ function timedCheck()
+ {
+ if (key != Swekey_GetValidKey())
+ {
+ window.location.search = "?swekey_reset";
+ }
+ else
+ setTimeout("timedCheck()",1000);
+ }
+
+ setTimeout("timedCheck()",1000);
+ </script>
+ <?php
+
+ if (! empty($_SESSION['SWEKEY']['AUTHENTICATED_SWEKEY']))
+ return null;
+
+ if (count($_SESSION['SWEKEY']['VALID_SWEKEYS']) == 0)
+ return sprintf($GLOBALS['strSwekeyNoKeyId'], $GLOBALS['cfg']['Server']['auth_swekey_config']);
+
+ require_once "./libraries/auth/swekey/swekey.php";
+
+ Swekey_SetCheckServer($_SESSION['SWEKEY']['CONF_SERVER_CHECK']);
+ Swekey_SetRndTokenServer($_SESSION['SWEKEY']['CONF_SERVER_RNDTOKEN']);
+ Swekey_SetStatusServer($_SESSION['SWEKEY']['CONF_SERVER_STATUS']);
+ Swekey_EnableTokenCache($_SESSION['SWEKEY']['CONF_ENABLE_TOKEN_CACHE']);
+
+ $caFile = $_SESSION['SWEKEY']['CONF_CA_FILE'];
+ if (empty($caFile))
+ {
+ $caFile = __FILE__;
+ $pos = strrpos($caFile, '/');
+ if ($pos === false)
+ $pos = strrpos($caFile, '\\'); // windows
+ $caFile = substr($caFile, 0, $pos + 1).'musbe-ca.crt';
+// echo "\n<!-- $caFile -->\n";
+// if (file_exists($caFile))
+// echo "<!-- exists -->\n";
+ }
+
+ if (file_exists($caFile))
+ Swekey_SetCAFile($caFile);
+ else if (! empty($caFile) && (substr($_SESSION['SWEKEY']['CONF_SERVER_CHECK'], 0, 8) == "https://"))
+ return "Internal Error: CA File $caFile not found";
+
+ $result = null;
+ parse_str($_SERVER['QUERY_STRING']);
+ if (isset($swekey_id)) {
+ unset($_SESSION['SWEKEY']['AUTHENTICATED_SWEKEY']);
+ if (! isset($_SESSION['SWEKEY']['RND_TOKEN'])) {
+ unset($swekey_id);
+ }
+ else {
+ if (strlen($swekey_id) == 32) {
+ $res = Swekey_CheckOtp($swekey_id, $_SESSION['SWEKEY']['RND_TOKEN'], $swekey_otp);
+ unset($_SESSION['SWEKEY']['RND_TOKEN']);
+ if (! $res) {
+ $result = $GLOBALS['strSwekeyAuthFailed'] . ' (' . Swekey_GetLastError() . ')';
+ }
+ else {
+ $_SESSION['SWEKEY']['AUTHENTICATED_SWEKEY'] = $swekey_id;
+ $_SESSION['SWEKEY']['FORCE_USER'] = $_SESSION['SWEKEY']['VALID_SWEKEYS'][$swekey_id];
+ return null;
+ }
+ }
+ else {
+ $result = $GLOBALS['strSwekeyNoKey'];
+ if ($_SESSION['SWEKEY']['CONF_DEBUG'])
+ {
+ $result .= "<br>".$swekey_id;
+ }
+ unset($_SESSION['SWEKEY']['CONF_LOADED']); // reload the conf file
+ }
+ }
+ }
+ else
+ unset($_SESSION['SWEKEY']);
+
+ $_SESSION['SWEKEY']['RND_TOKEN'] = Swekey_GetFastRndToken();
+ if (strlen($_SESSION['SWEKEY']['RND_TOKEN']) != 64) {
+ $result = $GLOBALS['strSwekeyAuthFailed'] . ' (' . Swekey_GetLastError() . ')';
+ unset($_SESSION['SWEKEY']['CONF_LOADED']); // reload the conf file
+ }
+
+ if (! isset($swekey_id)) {
+ ?>
+ <script>
+ if (key.length != 32)
+ {
+ window.location.search="?swekey_id=" + key;
+ }
+ else
+ {
+ var url = "" + window.location;
+ if (url.indexOf("?") > 0)
+ url = url.substr(0, url.indexOf("?"));
+ Swekey_SetUnplugUrl(key, "pma_login", url + "?session_to_unset=<?php echo session_id();?>");
+ var otp = Swekey_GetOtp(key, <?php echo '"'.$_SESSION['SWEKEY']['RND_TOKEN'].'"';?>);
+ window.location.search="?swekey_id=" + key + "&swekey_otp=" + otp;
+ }
+ </script>
+ <?php
+ return $GLOBALS['strSwekeyAuthenticating'];
+ }
+
+ return $result;
+}
+
+
+function Swekey_login($input_name, $input_go)
+{
+ $swekeyErr = Swekey_auth_error();
+ if ($swekeyErr != null) {
+ PMA_Message::error($swekeyErr)->display();
+ if ($GLOBALS['error_handler']->hasDisplayErrors()) {
+ echo '<div>';
+ $GLOBALS['error_handler']->dispErrors();
+ echo '</div>';
+ }
+ }
+
+ if (isset($_SESSION['SWEKEY']) && $_SESSION['SWEKEY']['ENABLED']) {
+ echo '<script type="text/javascript">';
+ if (empty($_SESSION['SWEKEY']['FORCE_USER']))
+ echo 'var user = null;';
+ else
+ echo 'var user = "'.$_SESSION['SWEKEY']['FORCE_USER'].'";';
+
+ ?>
+ function open_swekey_site()
+ {
+ window.open("http://phpmyadmin.net/auth_key");
+ }
+
+ var input_username = document.getElementById("<?php echo $input_name; ?>");
+ var input_go = document.getElementById("<?php echo $input_go; ?>");
+ var swekey_status = document.createElement('img');
+ swekey_status.setAttribute('onClick', 'open_swekey_site()');
+ swekey_status.setAttribute('style', 'width:8px; height:16px; border:0px; vspace:0px; hspace:0px; frameborder:no');
+ if (user == null)
+ {
+ swekey_status.setAttribute('src', 'http://artwork.swekey.com/unplugged-8x16.png');
+ //swekey_status.setAttribute('title', 'No swekey plugged');
+ input_go.disabled = true;
+ }
+ else
+ {
+ swekey_status.setAttribute('src', 'http://artwork.swekey.com/plugged-8x16.png');
+ //swekey_status.setAttribute('title', 'swekey plugged');
+ input_username.value = user;
+ }
+ input_username.readOnly = true;
+
+ if (input_username.nextSibling == null)
+ input_username.parentNode.appendChild(swekey_status);
+ else
+ input_username.parentNode.insertBefore(swekey_status, input_username.nextSibling);
+
+ <?php
+ echo '</script>';
+ }
+}
+
+if (strstr($_SERVER['QUERY_STRING'],'session_to_unset') != false)
+{
+ parse_str($_SERVER['QUERY_STRING']);
+ session_write_close();
+ session_id($session_to_unset);
+ session_start();
+ $_SESSION = array();
+ session_write_close();
+ session_destroy();
+ exit;
+}
+
+if (isset($_GET['swekey_reset']))
+{
+ unset($_SESSION['SWEKEY']);
+}
+
+?>
diff --git a/libraries/auth/swekey/swekey.php b/libraries/auth/swekey/swekey.php
new file mode 100644
index 0000000000..eb23f73ad5
--- /dev/null
+++ b/libraries/auth/swekey/swekey.php
@@ -0,0 +1,499 @@
+<?php
+/**
+ * Library that provides common functions that are used to help integrating Swekey Authentication in a PHP web site
+ * Version 1.0
+ *
+ * History:
+ * 1.2 Use curl (widely installed) to query the server
+ * Fixed a possible tempfile race attack
+ * Random token cache can now be disabled
+ * 1.1 Added Swekey_HttpGet function that support faulty servers
+ * Support for custom servers
+ * 1.0 First release
+ *
+ */
+
+
+/**
+ * Errors codes
+ */
+define ("SWEKEY_ERR_INVALID_DEV_STATUS",901); // The satus of the device is not SWEKEY_STATUS_OK
+define ("SWEKEY_ERR_INTERNAL",902); // Should never occurd
+define ("SWEKEY_ERR_OUTDATED_RND_TOKEN",910); // You random token is too old
+define ("SWEKEY_ERR_INVALID_OTP",911); // The otp was not correct
+
+/**
+ * Those errors are considered as an attack and your site will be blacklisted during one minute
+ * if you receive one of those errors
+ */
+define ("SWEKEY_ERR_BADLY_ENCODED_REQUEST",920);
+define ("SWEKEY_ERR_INVALID_RND_TOKEN",921);
+define ("SWEKEY_ERR_DEV_NOT_FOUND",922);
+
+/**
+ * The last error of an operation is alway put in this global var
+ */
+
+global $gSwekeyLastError;
+$gSwekeyLastError = 0;
+
+global $gSwekeyLastResult;
+$gSwekeyLastResult = "<not set>";
+
+/**
+ * Servers addresses
+ * Use the Swekey_SetXxxServer($server) functions to set them
+ */
+
+global $gSwekeyCheckServer;
+if (! isset($gSwekeyCheckServer))
+ $gSwekeyCheckServer = 'http://auth-check.musbe.net';
+
+global $gSwekeyRndTokenServer;
+if (! isset($gSwekeyRndTokenServer))
+ $gSwekeyRndTokenServer = 'http://auth-rnd-gen.musbe.net';
+
+global $gSwekeyStatusServer;
+if (! isset($gSwekeyStatusServer))
+ $gSwekeyStatusServer = 'http://auth-status.musbe.net';
+
+global $gSwekeyCA;
+
+global $gSwekeyTokenCacheEnabled;
+if (! isset($gSwekeyTokenCacheEnabled))
+ $gSwekeyTokenCacheEnabled = true;
+
+/**
+ * Change the address of the Check server.
+ * If $server is empty the default value 'http://auth-check.musbe.net' will be used
+ *
+ * @param server The protocol and hostname to use
+ * @access public
+ */
+function Swekey_SetCheckServer($server)
+{
+ global $gSwekeyCheckServer;
+ if (empty($server))
+ $gSwekeyCheckServer = 'http://auth-check.musbe.net';
+ else
+ $gSwekeyCheckServer = $server;
+}
+
+/**
+ * Change the address of the Random Token Generator server.
+ * If $server is empty the default value 'http://auth-rnd-gen.musbe.net' will be used
+ *
+ * @param server The protocol and hostname to use
+ * @access public
+ */
+function Swekey_SetRndTokenServer($server)
+{
+ global $gSwekeyRndTokenServer;
+ if (empty($server))
+ $gSwekeyRndTokenServer = 'http://auth-rnd-gen.musbe.net';
+ else
+ $gSwekeyRndTokenServer = $server;
+}
+
+/**
+ * Change the address of the Satus server.
+ * If $server is empty the default value 'http://auth-status.musbe.net' will be used
+ *
+ * @param server The protocol and hostname to use
+ * @access public
+ */
+function Swekey_SetStatusServer($server)
+{
+ global $gSwekeyStatusServer;
+ if (empty($server))
+ $gSwekeyStatusServer = 'http://auth-status.musbe.net';
+ else
+ $gSwekeyStatusServer = $server;
+}
+
+/**
+ * Change the certificat file in case of the the severs use https instead of http
+ *
+ * @param cafile The path of the crt file to use
+ * @access public
+ */
+function Swekey_SetCAFile($cafile)
+{
+ global $gSwekeyCA;
+ $gSwekeyCA = $cafile;
+}
+
+/**
+ * Enable or disable the random token caching
+ * Because everybody has full access to the cache file, it can be a DOS vulnerability
+ * So disable it if you are running in a non secure enviromnement
+ *
+ * @param $enable
+ * @access public
+ */
+function Swekey_EnableTokenCache($enable)
+{
+ global $gSwekeyTokenCacheEnabled;
+ $gSwekeyTokenCacheEnabled = ! empty($enable);
+}
+
+
+/**
+ * Return the last error.
+ *
+ * @return The Last Error
+ * @access public
+ */
+function Swekey_GetLastError()
+{
+ global $gSwekeyLastError;
+ return $gSwekeyLastError;
+}
+
+/**
+ * Return the last result.
+ *
+ * @return The Last Error
+ * @access public
+ */
+function Swekey_GetLastResult()
+{
+ global $gSwekeyLastResult;
+ return $gSwekeyLastResult;
+}
+
+/**
+ * Send a synchronous request to the server.
+ * This function manages timeout then will not block if one of the server is down
+ *
+ * @param url The url to get
+ * @param response_code The response code
+ * @return The body of the response or "" in case of error
+ * @access private
+ */
+function Swekey_HttpGet($url, &$response_code)
+{
+ global $gSwekeyLastError;
+ $gSwekeyLastError = 0;
+ global $gSwekeyLastResult;
+ $gSwekeyLastResult = "<not set>";
+
+ // use curl if available
+ if (function_exists('curl_init'))
+ {
+ $sess = curl_init($url);
+ if (substr($url, 0, 8) == "https://")
+ {
+ global $gSwekeyCA;
+
+ if (! empty($gSwekeyCA))
+ {
+ if (file_exists($gSwekeyCA))
+ {
+ if (! curl_setopt($sess, CURLOPT_CAINFO, $gSwekeyCA))
+ error_log("SWEKEY_ERROR:Could not set CA file : ".curl_error($sess));
+ else
+ $caFileOk = true;
+ }
+ else
+ error_log("SWEKEY_ERROR:Could not find CA file $gSwekeyCA getting $url");
+ }
+
+ curl_setopt($sess, CURLOPT_SSL_VERIFYHOST, '2');
+ curl_setopt($sess, CURLOPT_SSL_VERIFYPEER, '2');
+ curl_setopt($sess, CURLOPT_CONNECTTIMEOUT, '20');
+ curl_setopt($sess, CURLOPT_TIMEOUT, '20');
+ }
+ else
+ {
+ curl_setopt($sess, CURLOPT_CONNECTTIMEOUT, '3');
+ curl_setopt($sess, CURLOPT_TIMEOUT, '5');
+ }
+
+ curl_setopt($sess, CURLOPT_RETURNTRANSFER, '1');
+ $res=curl_exec($sess);
+ $response_code = curl_getinfo($sess, CURLINFO_HTTP_CODE);
+ $curlerr = curl_error($sess);
+ curl_close($sess);
+
+ if ($response_code == 200)
+ {
+ $gSwekeyLastResult = $res;
+ return $res;
+ }
+
+ if (! empty($response_code))
+ {
+ $gSwekeyLastError = $response_code;
+ error_log("SWEKEY_ERROR:Error $gSwekeyLastError ($curlerr) getting $url");
+ return "";
+ }
+
+ $response_code = 408; // Request Timeout
+ $gSwekeyLastError = $response_code;
+ error_log("SWEKEY_ERROR:Error $curlerr getting $url");
+ return "";
+ }
+
+ // use pecl_http if available
+ if (class_exists('HttpRequest'))
+ {
+ // retry if one of the server is down
+ for ($num=1; $num <= 3; $num++ )
+ {
+ $r = new HttpRequest($url);
+ $options = array('timeout' => '3');
+
+ if (substr($url,0, 6) == "https:")
+ {
+ $sslOptions = array();
+ $sslOptions['verifypeer'] = true;
+ $sslOptions['verifyhost'] = true;
+
+ $capath = __FILE__;
+ $name = strrchr($capath, '/');
+ if (empty($name)) // windows
+ $name = strrchr($capath, '\\');
+ $capath = substr($capath, 0, strlen($capath) - strlen($name) + 1).'musbe-ca.crt';
+
+ if (! empty($gSwekeyCA))
+ $sslOptions['cainfo'] = $gSwekeyCA;
+
+ $options['ssl'] = $sslOptions;
+ }
+
+ $r->setOptions($options);
+
+ // try
+ {
+ $reply = $r->send();
+ $res = $reply->getBody();
+ $info = $r->getResponseInfo();
+ $response_code = $info['response_code'];
+ if ($response_code != 200)
+ {
+ $gSwekeyLastError = $response_code;
+ error_log("SWEKEY_ERROR:Error ".$gSwekeyLastError." getting ".$url);
+ return "";
+ }
+
+
+ $gSwekeyLastResult = $res;
+ return $res;
+ }
+ // catch (HttpException $e)
+ // {
+ // error_log("SWEKEY_WARNING:HttpException ".$e." getting ".$url);
+ // }
+ }
+
+ $response_code = 408; // Request Timeout
+ $gSwekeyLastError = $response_code;
+ error_log("SWEKEY_ERROR:Error ".$gSwekeyLastError." getting ".$url);
+ return "";
+ }
+
+ global $http_response_header;
+ $res = @file_get_contents($url);
+ $response_code = substr($http_response_header[0], 9, 3); //HTTP/1.0
+ if ($response_code == 200)
+ {
+ $gSwekeyLastResult = $res;
+ return $res;
+ }
+
+ $gSwekeyLastError = $response_code;
+ error_log("SWEKEY_ERROR:Error ".$response_code." getting ".$url);
+ return "";
+}
+
+/**
+ * Get a Random Token from a Token Server
+ * The RT is a 64 vhars hexadecimal value
+ * You should better use Swekey_GetFastRndToken() for performance
+ * @access public
+ */
+function Swekey_GetRndToken()
+{
+ global $gSwekeyRndTokenServer;
+ return Swekey_HttpGet($gSwekeyRndTokenServer.'/FULL-RND-TOKEN', $response_code);
+}
+
+/**
+ * Get a Half Random Token from a Token Server
+ * The RT is a 64 vhars hexadecimal value
+ * Use this value if you want to make your own Swekey_GetFastRndToken()
+ * @access public
+ */
+function Swekey_GetHalfRndToken()
+{
+ global $gSwekeyRndTokenServer;
+ return Swekey_HttpGet($gSwekeyRndTokenServer.'/HALF-RND-TOKEN', $response_code);
+}
+
+/**
+ * Get a Half Random Token
+ * The RT is a 64 vhars hexadecimal value
+ * This function get a new random token and reuse it.
+ * Token are refetched from the server only once every 30 seconds.
+ * You should always use this function to get half random token.
+ * @access public
+ */
+function Swekey_GetFastHalfRndToken()
+{
+ global $gSwekeyTokenCacheEnabled;
+
+ $res = "";
+ $cachefile = "";
+
+ // We check if we have a valid RT is the session
+ if (isset($_SESSION['rnd-token-date']))
+ if (time() - $_SESSION['rnd-token-date'] < 30)
+ $res = $_SESSION['rnd-token'];
+
+ // If not we try to get it from a temp file (PHP >= 5.2.1 only)
+ if (strlen($res) != 32 && $gSwekeyTokenCacheEnabled)
+ {
+ if (function_exists('sys_get_temp_dir'))
+ {
+ $tempdir = sys_get_temp_dir();
+ $cachefile = $tempdir."/swekey-rnd-token-".get_current_user();
+ $modif = filemtime($cachefile);
+ if ($modif != false)
+ if (time() - $modif < 30)
+ {
+ $res = @file_get_contents($cachefile);
+ if (strlen($res) != 32)
+ $res = "";
+ else
+ {
+ $_SESSION['rnd-token'] = $res;
+ $_SESSION['rnd-token-date'] = $modif;
+ }
+ }
+ }
+ }
+
+ // If we don't have a valid RT here we have to get it from the server
+ if (strlen($res) != 32)
+ {
+ $res = substr(Swekey_GetHalfRndToken(), 0, 32);
+ $_SESSION['rnd-token'] = $res;
+ $_SESSION['rnd-token-date'] = time();
+ if (! empty($cachefile))
+ {
+ // we unlink the file so no possible tempfile race attack (thanks Thijs)
+ unlink($cachefile);
+ $file = fopen($cachefile , "x");
+ if ($file != FALSE)
+ {
+ @fwrite($file, $res);
+ @fclose($file);
+ }
+ }
+ }
+
+ return $res."00000000000000000000000000000000";
+}
+
+/**
+ * Get a Random Token
+ * The RT is a 64 vhars hexadecimal value
+ * This function generates a unique random token for each call but call the
+ * server only once every 30 seconds.
+ * You should always use this function to get random token.
+ * @access public
+ */
+function Swekey_GetFastRndToken()
+{
+ $res = Swekey_GetFastHalfRndToken();
+ if (strlen($res) == 64)
+ return substr($res, 0, 32).strtoupper(md5("Musbe Authentication Key" + mt_rand() + date(DATE_ATOM)));
+
+ return "";
+}
+
+
+/**
+ * Checks that an OTP generated by a Swekey is valid
+ *
+ * @param id The id of the swekey
+ * @param rt The random token used to generate the otp
+ * @param otp The otp generated by the swekey
+ * @return true or false
+ * @access public
+ */
+function Swekey_CheckOtp($id, $rt, $otp)
+{
+ global $gSwekeyCheckServer;
+ $res = Swekey_HttpGet($gSwekeyCheckServer.'/CHECK-OTP/'.$id.'/'.$rt.'/'.$otp, $response_code);
+ return $response_code == 200 && $res == "OK";
+}
+
+/**
+ * Values that are associated with a key.
+ * The following values can be returned by the Swekey_GetStatus() function
+ */
+define ("SWEKEY_STATUS_OK",0);
+define ("SWEKEY_STATUS_NOT_FOUND",1); // The key does not exist in the db
+define ("SWEKEY_STATUS_INACTIVE",2); // The key has never been activated
+define ("SWEKEY_STATUS_LOST",3); // The user has lost his key
+define ("SWEKEY_STATUS_STOLEN",4); // The key was stolen
+define ("SWEKEY_STATUS_FEE_DUE",5); // The annual fee was not paid
+define ("SWEKEY_STATUS_OBSOLETE",6); // The hardware is no longer supported
+define ("SWEKEY_STATUS_UNKOWN",201); // We could not connect to the authentication server
+
+/**
+ * Values that are associated with a key.
+ * The Javascript Api can also return the following values
+ */
+define ("SWEKEY_STATUS_REPLACED",100); // This key has been replaced by a backup key
+define ("SWEKEY_STATUS_BACKUP_KEY",101); // This key is a backup key that is not activated yet
+define ("SWEKEY_STATUS_NOTPLUGGED",200); // This key is not plugged in the computer
+
+
+/**
+ * Return the text corresponding to the integer status of a key
+ *
+ * @param status The status
+ * @return The text corresponding to the status
+ * @access public
+ */
+function Swekey_GetStatusStr($status)
+{
+ switch($status)
+ {
+ case SWEKEY_STATUS_OK : return 'OK';
+ case SWEKEY_STATUS_NOT_FOUND : return 'Key does not exist in the db';
+ case SWEKEY_STATUS_INACTIVE : return 'Key not activated';
+ case SWEKEY_STATUS_LOST : return 'Key was lost';
+ case SWEKEY_STATUS_STOLEN : return 'Key was stolen';
+ case SWEKEY_STATUS_FEE_DUE : return 'The annual fee was not paid';
+ case SWEKEY_STATUS_OBSOLETE : return 'Key no longer supported';
+ case SWEKEY_STATUS_REPLACED : return 'This key has been replaced by a backup key';
+ case SWEKEY_STATUS_BACKUP_KEY : return 'This key is a backup key that is not activated yet';
+ case SWEKEY_STATUS_NOTPLUGGED : return 'This key is not plugged in the computer';
+ case SWEKEY_STATUS_UNKOWN : return 'Unknow Status, could not connect to the authentication server';
+ }
+ return 'unknown status '.$status;
+}
+
+/**
+ * If your web site requires a key to login you should check that the key
+ * is still valid (has not been lost or stolen) before requiring it.
+ * A key can be authenticated only if its status is SWEKEY_STATUS_OK
+ * @param id The id of the swekey
+ * @return The status of the swekey
+ * @access public
+ */
+function Swekey_GetStatus($id)
+{
+ global $gSwekeyStatusServer;
+ $res = Swekey_HttpGet($gSwekeyStatusServer.'/GET-STATUS/'.$id, $response_code);
+ if ($response_code == 200)
+ return intval($res);
+
+ return SWEKEY_STATUS_UNKOWN;
+}
+
+?>
diff --git a/libraries/blobstreaming.lib.php b/libraries/blobstreaming.lib.php
new file mode 100644
index 0000000000..d8616e9ff8
--- /dev/null
+++ b/libraries/blobstreaming.lib.php
@@ -0,0 +1,725 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @author Raj Kissu Rajandran
+ * @version 1.0
+ * @package BLOBStreaming
+ */
+
+/**
+ * checks whether the necessary plugins for BLOBStreaming exist
+ *
+ * @access public
+ * @uses PMA_Config::get()
+ * @uses PMA_Config::settings()
+ * @uses PMA_Config::set()
+ * @uses PMA_PluginsExist()
+ * @uses PMA_BS_SetVariables()
+ * @uses PMA_BS_GetVariables()
+ * @uses PMA_BS_SetFieldReferences()
+ * @return boolean
+*/
+function checkBLOBStreamingPlugins()
+{
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return FALSE;
+
+ // retrieve current server configuration
+ $serverCfg = $PMA_Config->get('Servers');
+ $serverCfg = $serverCfg[$GLOBALS['server']];
+
+ // return if unable to retrieve current server configuration
+ if (! $serverCfg)
+ return FALSE;
+
+ // if PHP extension in use is 'mysql', specify element 'PersistentConnections'
+ if ($serverCfg['extension'] == "mysql")
+ $serverCfg['PersistentConnections'] = $PMA_Config->settings['PersistentConnections'];
+
+ // if connection type is TCP, unload socket variable
+ if (strtolower($serverCfg['connect_type']) == "tcp")
+ $serverCfg['socket'] = "";
+
+ // define BS Plugin variables
+ $allPluginsExist = TRUE;
+
+ $PMA_Config->set('PBXT_NAME', 'pbxt');
+ $PMA_Config->set('PBMS_NAME', 'pbms');
+
+ $plugins[$PMA_Config->get('PBXT_NAME')]['Library'] = 'libpbxt.so';
+ $plugins[$PMA_Config->get('PBXT_NAME')]['Exists'] = FALSE;
+
+ $plugins[$PMA_Config->get('PBMS_NAME')]['Library'] = 'libpbms.so';
+ $plugins[$PMA_Config->get('PBMS_NAME')]['Exists'] = FALSE;
+
+ // retrieve state of BS plugins
+ PMA_PluginsExist($plugins);
+
+ foreach ($plugins as $plugin_key=>$plugin)
+ if (!$plugin['Exists'])
+ {
+ $allPluginsExist = FALSE;
+ break;
+ } // end if (!$plugin['Exists'])
+
+ // set variable indicating BS plugin existance
+ $PMA_Config->set('BLOBSTREAMING_PLUGINS_EXIST', $allPluginsExist);
+
+ // do the plugins exist?
+ if ($allPluginsExist)
+ {
+ // retrieve BS variables from PMA configuration
+ $bs_set_variables = array();
+
+ $bs_set_variables[$PMA_Config->get('PBMS_NAME') . '_garbage_threshold'] = (isset($serverCfg['bs_garbage_threshold'])) ? $server['bs_garbage_threshold'] : NULL;
+ $bs_set_variables[$PMA_Config->get('PBMS_NAME') . '_repository_threshold'] = (isset($serverCfg['bs_repository_threshold'])) ? $server['bs_repository_threshold'] : NULL;
+ $bs_set_variables[$PMA_Config->get('PBMS_NAME') . '_temp_blob_timeout'] = (isset($serverCfg['bs_temp_blob_timeout'])) ? $server['bs_temp_blob_timeout'] : NULL;
+ $bs_set_variables[$PMA_Config->get('PBMS_NAME') . '_temp_log_threshold'] = (isset($serverCfg['bs_temp_log_threshold'])) ? $server['bs_temp_log_threshold'] : NULL;
+
+ // set BS variables to PMA configuration defaults
+ PMA_BS_SetVariables($bs_set_variables);
+
+ // retrieve updated BS variables (configurable and unconfigurable)
+ $bs_variables = PMA_BS_GetVariables();
+
+ // if no BS variables exist, set plugin existance to false and return
+ if (count($bs_variables) <= 0)
+ {
+ $PMA_Config->set('BLOBSTREAMING_PLUGINS_EXIST', FALSE);
+ return FALSE;
+ } // end if (count($bs_variables) <= 0)
+
+ // switch on BS field references
+ if (strtolower($bs_variables[$PMA_Config->get('PBMS_NAME') . '_field_references']) == "off")
+ PMA_BS_SetFieldReferences('ON');
+
+ // get BS server port
+ $BS_PORT = $bs_variables[$PMA_Config->get('PBMS_NAME') . '_port'];
+
+ // if no BS server port exists, set plugin existance to false and return
+ if (!$BS_PORT)
+ {
+ $PMA_Config->set('BLOBSTREAMING_PLUGINS_EXIST', FALSE);
+ return FALSE;
+ } // end if (!$BS_PORT)
+
+ // add selected BS, CURL and fileinfo library variables to PMA configuration
+ $PMA_Config->set('BLOBSTREAMING_PORT', $BS_PORT);
+ $PMA_Config->set('BLOBSTREAMING_HOST', $serverCfg['host']);
+ $PMA_Config->set('BLOBSTREAMING_SERVER', $serverCfg['host'] . ':' . $BS_PORT);
+ $PMA_Config->set('CURL_EXISTS', FALSE);
+ $PMA_Config->set('FILEINFO_EXISTS', FALSE);
+
+ // check if CURL exists
+ if (function_exists("curl_init"))
+ {
+ // initialize curl handler
+ $curlHnd = curl_init();
+
+ // CURL exists, set necessary variable and close resource
+ if (!empty($curlHnd))
+ {
+ $PMA_Config->set('CURL_EXISTS', TRUE);
+ curl_close($curlHnd);
+ } // end if (!empty($curlHnd))
+ } // end if (function_exists("curl_init"))
+
+ // check if PECL's fileinfo library exist
+ $finfo = NULL;
+
+ if (function_exists("finfo_open"))
+ $finfo = finfo_open(FILEINFO_MIME);
+
+ // fileinfo library exists, set necessary variable and close resource
+ if (!empty($finfo))
+ {
+ $PMA_Config->set('FILEINFO_EXISTS', TRUE);
+ finfo_close($finfo);
+ } // end if (!empty($finfo))
+ } // end if ($allPluginsExist)
+ else
+ return FALSE;
+
+ $bs_tables = array();
+
+ // specify table structure for BS reference table
+ $bs_tables[$PMA_Config->get('PBMS_NAME') . '_reference'] = array();
+ $bs_tables[$PMA_Config->get('PBMS_NAME') . '_reference']['struct'] = <<<EOD
+ CREATE TABLE {$PMA_Config->get('PBMS_NAME')}_reference
+ (
+ Table_name CHAR(64) COMMENT 'The name of the referencing table',
+ Blob_id BIGINT COMMENT 'The BLOB reference number - part of the BLOB URL',
+ Column_name CHAR(64) COMMENT 'The column name of the referencing field',
+ Row_condition VARCHAR(255) COMMENT 'This condition identifies the row in the table',
+ Blob_url VARCHAR(200) COMMENT 'The BLOB URL for HTTP GET access',
+ Repository_id INT COMMENT 'The repository file number of the BLOB',
+ Repo_blob_offset BIGINT COMMENT 'The offset in the repository file',
+ Blob_size BIGINT COMMENT 'The size of the BLOB in bytes',
+ Deletion_time TIMESTAMP COMMENT 'The time the BLOB was deleted',
+ Remove_in INT COMMENT 'The number of seconds before the reference/BLOB is removed perminently',
+ Temp_log_id INT COMMENT 'Temporary log number of the referencing deletion entry',
+ Temp_log_offset BIGINT COMMENT 'Temporary log offset of the referencing deletion entry'
+ ) ENGINE=PBMS;
+EOD;
+
+ // specify table structure for BS repository table
+ $bs_tables[$PMA_Config->get('PBMS_NAME') . '_repository'] = array();
+ $bs_tables[$PMA_Config->get('PBMS_NAME') . '_repository']['struct'] = <<<EOD
+ CREATE TABLE {$PMA_Config->get('PBMS_NAME')}_repository
+ (
+ Repository_id INT COMMENT 'The repository file number',
+ Repo_blob_offset BIGINT COMMENT 'The offset of the BLOB in the repository file',
+ Blob_size BIGINT COMMENT 'The size of the BLOB in bytes',
+ Head_size SMALLINT UNSIGNED COMMENT 'The size of the BLOB header - proceeds the BLOB data',
+ Access_code INT COMMENT 'The 4-byte authorisation code required to access the BLOB - part of the BLOB URL',
+ Creation_time TIMESTAMP COMMENT 'The time the BLOB was created',
+ Last_ref_time TIMESTAMP COMMENT 'The last time the BLOB was referenced',
+ Last_access_time TIMESTAMP COMMENT 'The last time the BLOB was accessed (read)',
+ Content_type CHAR(128) COMMENT 'The content type of the BLOB - returned by HTTP GET calls',
+ Blob_data LONGBLOB COMMENT 'The data of this BLOB'
+ ) ENGINE=PBMS;
+EOD;
+
+ // specify table structure for BS custom content type table
+ $bs_tables[$PMA_Config->get('PBMS_NAME') . '_custom_content_type'] = array();
+ $bs_tables[$PMA_Config->get('PBMS_NAME') . '_custom_content_type']['struct'] = <<<EOD
+ CREATE TABLE {$PMA_Config->get('PBMS_NAME')}_custom_content_type
+ (
+ Blob_url VARCHAR(200) COMMENT 'The BLOB URL for HTTP GET access',
+ Content_type VARCHAR(255) COMMENT 'The custom MIME type for a given BLOB reference as specified by the user',
+
+ PRIMARY KEY(Blob_url)
+ );
+EOD;
+
+ // add BS tables to PMA configuration
+ $PMA_Config->set('BLOBSTREAMING_TABLES', $bs_tables);
+
+ return TRUE;
+}
+
+/**
+ * checks for databases that support BLOBStreaming
+ *
+ * @access public
+ * @uses PMA_GetDatabases()
+ * @uses PMA_TablesExist()
+ * @uses PMA_Config::set()
+*/
+function checkBLOBStreamableDatabases()
+{
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return;
+
+ // retrieve BS tables from PMA configuration
+ $session_bs_tables = $PMA_Config->get('BLOBSTREAMING_TABLES');
+
+ $bs_databases = array();
+ $bs_tables = array();
+
+ // return if BS tables do not exist
+ if (!$session_bs_tables)
+ return;
+
+ foreach ($session_bs_tables as $table_key=>$table)
+ {
+ $bs_tables[$table_key] = array();
+ $bs_tables[$table_key]['Exists'] = FALSE;
+ }
+
+ // retrieve MySQL databases
+ $databases = PMA_GetDatabases();
+
+ // check if BS tables exist for each database
+ foreach ($databases as $db_key=>$db_name)
+ {
+ $bs_databases[$db_name] = $bs_tables;
+
+ PMA_TablesExist($bs_databases[$db_name], $db_name);
+ }
+
+ // set BS databases in PMA configuration
+ $PMA_Config->set('BLOBSTREAMABLE_DATABASES', $bs_databases);
+}
+
+/**
+ * checks whether a set of plugins exist
+ *
+ * @access public
+ * @param array - a list of plugin names and accompanying library filenames to check for
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_assoc()
+*/
+function PMA_PluginsExist(&$plugins)
+{
+ if (PMA_MYSQL_INT_VERSION < 50109) {
+ return;
+ }
+ // run query to retrieve MySQL plugins
+ $query = "SHOW PLUGINS";
+ $result = PMA_DBI_query($query);
+
+ // while there are records to parse
+ while ($data = @PMA_DBI_fetch_assoc($result))
+ {
+ // reset plugin state
+ $state = TRUE;
+
+ // check if required plugins exist
+ foreach ($plugins as $plugin_key=>$plugin)
+ if (!$plugin['Exists'])
+ if (
+ strtolower($data['Library']) == strtolower($plugin['Library']) &&
+ $data['Status'] == "ACTIVE"
+ )
+ $plugins[$plugin_key]['Exists'] = TRUE;
+ else
+ if ($state)
+ $state = FALSE;
+
+ // break if all necessary plugins are found before all records are parsed
+ if ($state)
+ break;
+ } // end while ($data = @PMA_DBI_fetch_assoc($result))
+}
+
+/**
+ * checks whether a given set of tables exist in a given database
+ *
+ * @access public
+ * @param array - list of tables to look for
+ * @param string - name of database
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_assoc()
+ */
+function PMA_TablesExist(&$tables, $db_name)
+{
+ // select specified database
+ PMA_DBI_select_db($db_name);
+
+ // run query to retrieve tables in specified database
+ $query = "SHOW TABLES";
+ $result = PMA_DBI_query($query);
+
+ // while there are records to parse
+ while ($data = @PMA_DBI_fetch_assoc($result))
+ {
+ $state = TRUE;
+
+ // check if necessary tables exist
+ foreach ($tables as $table_key=>$table)
+ if (!$table['Exists'])
+ if ($data['Tables_in_' . $db_name] == $table_key)
+ $tables[$table_key]['Exists'] = TRUE;
+ else
+ if ($state)
+ $state = FALSE;
+
+ // break if necessary tables are found before all records are parsed
+ if ($state)
+ break;
+ } // end while ($data = @PMA_DBI_fetch_assoc($result))
+}
+
+/**
+ * returns a list of databases
+ *
+ * @access public
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_assoc()
+ * @return array - list of databases acquired via MySQL
+*/
+function PMA_GetDatabases()
+{
+ // run query to retrieve databases
+ $query = "SHOW DATABASES";
+ $result = PMA_DBI_query($query);
+
+ $databases = array();
+
+ // while there are records to parse
+ while ($data = @PMA_DBI_fetch_assoc($result))
+ $databases[] = $data['Database'];
+
+ // return list of databases
+ return $databases;
+}
+
+/**
+ * sets BLOBStreaming variables to a list of specified arguments
+ * @access public
+ * @uses PMA_DBI_query()
+ * @returns boolean - success of variables setup
+*/
+
+function PMA_BS_SetVariables($bs_variables)
+{
+ // if no variables exist in array, return false
+ if (empty($bs_variables) || count($bs_variables) == 0)
+ return FALSE;
+
+ // set BS variables to those specified in array
+ foreach ($bs_variables as $key=>$val)
+ if (!is_null($val) && strlen($val) > 0)
+ {
+ // set BS variable to specified value
+ $query = "SET GLOBAL $key=" . PMA_sqlAddSlashes($val);
+ $result = PMA_DBI_query($query);
+
+ // if query fails execution, return false
+ if (!$result)
+ return FALSE;
+ } // end if (!is_null($val) && strlen($val) > 0)
+
+ // return true on success
+ return TRUE;
+}
+
+/**
+ * returns a list of BLOBStreaming variables used by MySQL
+ *
+ * @access public
+ * @uses PMA_Config::get()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_assoc()
+ * @return array - list of BLOBStreaming variables
+*/
+function PMA_BS_GetVariables()
+{
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return NULL;
+
+ // run query to retrieve BS variables
+ $query = "SHOW VARIABLES LIKE '%" . $PMA_Config->get('PBMS_NAME') . "%'";
+ $result = PMA_DBI_query($query);
+
+ $BS_Variables = array();
+
+ // while there are records to retrieve
+ while ($data = @PMA_DBI_fetch_assoc($result))
+ $BS_Variables[$data['Variable_name']] = $data['Value'];
+
+ // return BS variables
+ return $BS_Variables;
+}
+
+/**
+ * sets the BLOBStreaming global field references to ON/OFF
+ *
+ * @access public
+ * @param string - ON or OFF
+ * @uses PMA_Config::get()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_query()
+ * @return boolean - success/failure of query execution
+*/
+function PMA_BS_SetFieldReferences($val)
+{
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return FALSE;
+
+ // set field references to value specified
+ $query = "SET GLOBAL " . $PMA_Config->get('PBMS_NAME') . "_field_references=" . PMA_sqlAddslashes($val);
+ $result = PMA_DBI_query($query);
+
+ // return success of query execution
+ if ($result)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+/**
+ * gets the SQL table definition for a given BLOBStreaming table
+ *
+ * @access public
+ * @param string - table name
+ * @uses PMA_Config::get()
+ * @return string - SQL table definition
+*/
+function PMA_BS_GetTableStruct($tbl_name)
+{
+ // retrieve table structures for BS tables
+ $bs_tables = $_SESSION['PMA_Config']->get('BLOBSTREAMING_TABLES');
+
+ // return if tables don't exist
+ if (!$bs_tables)
+ return;
+
+ // return if specified table doesn't exist in collection of BS tables
+ if (!isset($bs_tables[$tbl_name]))
+ return;
+
+ // return specified table's structure
+ return $bs_tables[$tbl_name]['struct'];
+}
+
+/**
+ * creates the BLOBStreaming tables for a given database
+ *
+ * @access public
+ * @param string - database name
+ * @uses PMA_Config::get()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_DBI_query()
+ * @uses PMA_BS_GetTableStruct()
+ * @return boolean - success/failure of transactional query execution
+*/
+function PMA_BS_CreateTables($db_name)
+{
+ // retrieve BS tables
+ $bs_tables = $_SESSION['PMA_Config']->get('BLOBSTREAMING_TABLES');
+
+ // select specified database
+ PMA_DBI_select_db($db_name);
+
+ // create necessary BS tables for specified database
+ foreach ($bs_tables as $table_key=>$table)
+ {
+ $result = PMA_DBI_query(PMA_BS_GetTableStruct($table_key));
+
+ // return false if query execution fails
+ if (!$result)
+ return FALSE;
+ }
+
+ // return true on success
+ return TRUE;
+}
+
+/**
+ * drops BLOBStreaming tables for a given database
+ *
+ * @access public
+ * @param string - database name
+ * @uses PMA_Config::get()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_query()
+ * @return boolean - success/failure of transactional query execution
+*/
+function PMA_BS_DropTables($db_name)
+{
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return FALSE;
+
+ // retrieve BS tables
+ $bs_tables = $PMA_Config->get('BLOBSTREAMING_TABLES');
+
+ // select specified database
+ PMA_DBI_select_db($db_name);
+
+ // drop BS tables
+ foreach ($bs_tables as $table_key=>$table)
+ {
+ $query = "DROP TABLE IF EXISTS " . PMA_backquote($table_key);
+ $result = PMA_DBI_query($query);
+
+ // return false if query execution fails
+ if (!$result)
+ return FALSE;
+ }
+
+ // return true on success
+ return TRUE;
+}
+
+/**
+ * returns the field name for a primary key of a given table in a given database
+ *
+ * @access public
+ * @param string - database name
+ * @param string - table name
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_assoc()
+ * @return string - field name for primary key
+*/
+function PMA_BS_GetPrimaryField($db_name, $tbl_name)
+{
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return FALSE;
+
+ // select specified database
+ PMA_DBI_select_db($db_name);
+
+ // retrieve table fields
+ $query = "SHOW FULL FIELDS FROM " . PMA_backquote($tbl_name);
+ $result = PMA_DBI_query($query);
+
+ // while there are records to parse
+ while ($data = PMA_DBI_fetch_assoc($result))
+ if ("PRI" == $data['Key'])
+ return $data['Field'];
+
+ // return NULL on no primary key
+ return NULL;
+}
+
+/**
+ * checks whether a BLOB reference exists in the BLOB repository
+ *
+ * @access public
+ * @param string - BLOB reference
+ * @param string - database name
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_backquote()
+ * @uses PMA_Config::get()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_query()
+ * @return boolean - existence of BLOB reference
+*/
+function PMA_BS_ReferenceExists($bs_reference, $db_name)
+{
+ $referenceExists = FALSE;
+
+ // return false on invalid BS reference
+ if (strlen ($bs_reference) < strlen ("~*$db_name/~") || "~*$db_name/~" != substr ($bs_reference, 0, strlen ($db_name) + 4))
+ return $referenceExists;
+
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return $referenceExists;
+
+ // select specified database
+ PMA_DBI_select_db($db_name);
+
+ // run query on BS reference retrieval
+ $query = "SELECT * FROM " . PMA_backquote($PMA_Config->get('PBMS_NAME') . "_reference") . " WHERE Blob_url='" . PMA_sqlAddslashes($bs_reference) . "'";
+ $result = PMA_DBI_query($query);
+
+ // if record exists
+ if ($data = @PMA_DBI_fetch_assoc($result))
+ $referenceExists = TRUE;
+
+ // return reference existance
+ return $referenceExists;
+}
+
+/**
+ * creates a HTTP link to a given blob reference for a given database
+ *
+ * @access public
+ * @param string - BLOB reference
+ * @param string - database name
+ * @uses PMA_Config::get()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_assoc()
+ * @return string - HTTP link or Error
+*/
+function PMA_BS_CreateReferenceLink($bs_reference, $db_name)
+{
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // return if unable to load PMA configuration
+ if (empty($PMA_Config))
+ return '';
+
+ // generate bs reference link
+ $bs_ref_link = 'http://' . $PMA_Config->get('BLOBSTREAMING_SERVER') . '/' . $bs_reference;
+
+ // select specified database
+ PMA_DBI_select_db($db_name);
+
+ $pbms_repo_bq = PMA_backquote($PMA_Config->get('PBMS_NAME') . "_repository");
+ $pbms_ref_bq = PMA_backquote($PMA_Config->get('PBMS_NAME') . "_reference");
+ $pbms_cust_content_bq = PMA_backquote($PMA_Config->get('PBMS_NAME') . "_custom_content_type");
+
+ // run query on determining specified BS reference
+ $query = "SELECT $pbms_repo_bq.Content_type, $pbms_cust_content_bq.Content_type AS Custom_type";
+ $query .= " FROM $pbms_repo_bq LEFT JOIN $pbms_ref_bq ON";
+ $query .= "$pbms_repo_bq.Repository_id=$pbms_ref_bq.Repository_id";
+ $query .= " AND $pbms_repo_bq.Blob_size=$pbms_ref_bq.Blob_size";
+ $query .= " AND $pbms_repo_bq.Repo_blob_offset=$pbms_ref_bq.Repo_blob_offset";
+ $query .= " LEFT JOIN $pbms_cust_content_bq ON $pbms_cust_content_bq.Blob_url=$pbms_ref_bq.Blob_url";
+ $query .= " WHERE $pbms_ref_bq.Blob_url='" . PMA_sqlAddslashes($bs_reference) . "'";
+
+ $result = PMA_DBI_query($query);
+
+ // if record exists
+ if ($data = @PMA_DBI_fetch_assoc($result))
+ {
+ // determine content-type for BS repository file (original or custom)
+ $is_custom_type = false;
+
+ if (isset($data['Custom_type']))
+ {
+ $content_type = $data['Custom_type'];
+ $is_custom_type = true;
+ }
+ else
+ $content_type = $data['Content_type'];
+
+ if (!$content_type)
+ $content_type = NULL;
+
+ $output = "<a href=\"#\" onclick=\"requestMIMETypeChange('" . urlencode($db_name) . "', '" . urlencode($GLOBALS['table']) . "', '" . urlencode($bs_reference) . "', '" . urlencode($content_type) . "')\">$content_type</a>";
+
+ // specify custom HTML for various content types
+ switch ($content_type)
+ {
+ // no content specified
+ case NULL:
+ $output = "NULL";
+ break;
+ // image content
+ case 'image/jpeg':
+ case 'image/png':
+ $output .= ' (<a href="' . $bs_ref_link . '" target="new">' . $GLOBALS['strViewImage'] . '</a>)';
+ break;
+ // audio content
+ case 'audio/mpeg':
+ $output .= ' (<a href="#" onclick="popupBSMedia(\'' . PMA_generate_common_url() . '\',\'' . urlencode($bs_reference) . '\', \'' . urlencode($content_type) . '\',' . ($is_custom_type ? 1 : 0) . ', 640, 120)">' . $GLOBALS['strPlayAudio']. '</a>)';
+ break;
+ // video content
+ case 'application/x-flash-video':
+ case 'video/mpeg':
+ $output .= ' (<a href="#" onclick="popupBSMedia(\'' . PMA_generate_common_url() . '\',\'' . urlencode($bs_reference) . '\', \'' . urlencode($content_type) . '\',' . ($is_custom_type ? 1 : 0) . ', 640, 480)">' . $GLOBALS['strViewVideo'] . '</a>)';
+ break;
+ // unsupported content. specify download
+ default:
+ $output .= ' (<a href="' . $bs_ref_link . '" target="new">' . $GLOBALS['strDownloadFile']. '</a>)';
+ }
+
+ // return HTML
+ return $output;
+ } // end if ($data = @PMA_DBI_fetch_assoc($result))
+
+ // return on error
+ return 'Error';
+}
+
+?>
diff --git a/libraries/blowfish.php b/libraries/blowfish.php
new file mode 100644
index 0000000000..e02ec37cd7
--- /dev/null
+++ b/libraries/blowfish.php
@@ -0,0 +1,522 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * The Cipher_blowfish:: class implements the Cipher interface enryption data
+ * using the Blowfish algorithm.
+ *
+ * $Horde: horde/lib/Cipher/blowfish.php,v 1.2.2.3 2003/01/03 13:23:22 jan Exp $
+ *
+ * Copyright 2002-2003 Mike Cochrane <mike@graftonhall.co.nz>
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @version $Id$
+ * @since Horde 2.2
+ * @package horde.cipher
+ */
+
+// Change for phpMyAdmin by lem9:
+//class Horde_Cipher_blowfish extends Horde_Cipher {
+class Horde_Cipher_blowfish
+{
+ /* Pi Array */
+ var $p = array(
+ 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,
+ 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,
+ 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,
+ 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,
+ 0x9216D5D9, 0x8979FB1B);
+
+ /* S Boxes */
+ var $s1 = array(
+ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,
+ 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,
+ 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,
+ 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,
+ 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,
+ 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,
+ 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,
+ 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,
+ 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,
+ 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,
+ 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,
+ 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,
+ 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,
+ 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,
+ 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,
+ 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,
+ 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,
+ 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,
+ 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,
+ 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,
+ 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,
+ 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,
+ 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,
+ 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,
+ 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,
+ 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,
+ 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,
+ 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,
+ 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,
+ 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,
+ 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,
+ 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,
+ 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,
+ 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,
+ 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,
+ 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,
+ 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,
+ 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,
+ 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,
+ 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,
+ 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,
+ 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,
+ 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,
+ 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,
+ 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,
+ 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,
+ 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,
+ 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,
+ 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,
+ 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,
+ 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,
+ 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,
+ 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,
+ 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,
+ 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,
+ 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,
+ 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,
+ 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,
+ 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,
+ 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,
+ 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,
+ 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,
+ 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,
+ 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A);
+ var $s2 = array(
+ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,
+ 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,
+ 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,
+ 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,
+ 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,
+ 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,
+ 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,
+ 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,
+ 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,
+ 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,
+ 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,
+ 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,
+ 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,
+ 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,
+ 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,
+ 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,
+ 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,
+ 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,
+ 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,
+ 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,
+ 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,
+ 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,
+ 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,
+ 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,
+ 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,
+ 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,
+ 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,
+ 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,
+ 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,
+ 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,
+ 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,
+ 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,
+ 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,
+ 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,
+ 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,
+ 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,
+ 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,
+ 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,
+ 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,
+ 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,
+ 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,
+ 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,
+ 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,
+ 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,
+ 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,
+ 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,
+ 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,
+ 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,
+ 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,
+ 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,
+ 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,
+ 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,
+ 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,
+ 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,
+ 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,
+ 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,
+ 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,
+ 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,
+ 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,
+ 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,
+ 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,
+ 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,
+ 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,
+ 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7);
+ var $s3 = array(
+ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,
+ 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,
+ 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,
+ 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,
+ 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,
+ 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,
+ 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,
+ 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,
+ 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,
+ 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,
+ 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,
+ 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,
+ 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,
+ 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,
+ 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,
+ 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,
+ 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,
+ 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,
+ 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,
+ 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,
+ 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,
+ 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,
+ 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,
+ 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,
+ 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,
+ 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,
+ 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,
+ 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,
+ 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,
+ 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,
+ 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,
+ 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,
+ 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,
+ 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,
+ 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,
+ 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,
+ 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,
+ 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,
+ 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,
+ 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,
+ 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,
+ 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,
+ 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,
+ 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,
+ 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,
+ 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,
+ 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,
+ 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,
+ 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,
+ 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,
+ 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,
+ 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,
+ 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,
+ 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,
+ 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,
+ 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,
+ 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,
+ 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,
+ 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,
+ 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,
+ 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,
+ 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,
+ 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,
+ 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0);
+ var $s4 = array(
+ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,
+ 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,
+ 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,
+ 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,
+ 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,
+ 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,
+ 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,
+ 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,
+ 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,
+ 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,
+ 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,
+ 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,
+ 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,
+ 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,
+ 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,
+ 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,
+ 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,
+ 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,
+ 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,
+ 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,
+ 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,
+ 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,
+ 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,
+ 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,
+ 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,
+ 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,
+ 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,
+ 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,
+ 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,
+ 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,
+ 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,
+ 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,
+ 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,
+ 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,
+ 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,
+ 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,
+ 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,
+ 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,
+ 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,
+ 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,
+ 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,
+ 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,
+ 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,
+ 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,
+ 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,
+ 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,
+ 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,
+ 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,
+ 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,
+ 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,
+ 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,
+ 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,
+ 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,
+ 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,
+ 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,
+ 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,
+ 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,
+ 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,
+ 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,
+ 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,
+ 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,
+ 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,
+ 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,
+ 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6);
+
+ /* The number of rounds to do */
+ var $_rounds = 16;
+
+ /**
+ * Set the key to be used for en/decryption
+ *
+ * @param String $key The key to use
+ */
+ function setKey($key)
+ {
+ $key = $this->_formatKey($key);
+ $keyPos = $keyXor = 0;
+
+ $iMax = count($this->p);
+ $keyLen = count($key);
+ for ($i = 0; $i < $iMax; $i++) {
+ for ($t = 0; $t < 4; $t++) {
+ $keyXor = ($keyXor << 8) | (($key[$keyPos]) & 0x0ff);
+ if (++$keyPos == $keyLen) {
+ $keyPos = 0;
+ }
+ }
+ $this->p[$i] = $this->p[$i] ^ $keyXor;
+ }
+
+ $encZero = array('L' => 0, 'R' => 0);
+ for ($i = 0; $i + 1 < $iMax; $i += 2) {
+ $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
+ $this->p[$i] = $encZero['L'];
+ $this->p[$i + 1] = $encZero['R'];
+ }
+
+ $iMax = count($this->s1);
+ for ($i = 0; $i < $iMax; $i += 2) {
+ $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
+ $this->s1[$i] = $encZero['L'];
+ $this->s1[$i + 1] = $encZero['R'];
+ }
+
+ $iMax = count($this->s2);
+ for ($i = 0; $i < $iMax; $i += 2) {
+ $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
+ $this->s2[$i] = $encZero['L'];
+ $this->s2[$i + 1] = $encZero['R'];
+ }
+
+ $iMax = count($this->s3);
+ for ($i = 0; $i < $iMax; $i += 2) {
+ $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
+ $this->s3[$i] = $encZero['L'];
+ $this->s3[$i + 1] = $encZero['R'];
+ }
+
+ $iMax = count($this->s4);
+ for ($i = 0; $i < $iMax; $i += 2) {
+ $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']);
+ $this->s4[$i] = $encZero['L'];
+ $this->s4[$i + 1] = $encZero['R'];
+ }
+
+ }
+
+ /**
+ * Encrypt a block on data.
+ *
+ * @param String $block The data to encrypt
+ * @param optional String $key The key to use
+ *
+ * @return String the encrypted output
+ */
+ function encryptBlock($block, $key = null)
+ {
+ if (!is_null($key)) {
+ $this->setKey($key);
+ }
+
+ list($L, $R) = array_values(unpack('N*', $block));
+ $parts = $this->_encryptBlock($L, $R);
+ return pack("NN", $parts['L'], $parts['R']);
+ }
+
+ /**
+ * Encrypt a block on data.
+ *
+ * @param String $L The data to encrypt.
+ * @param String $R The data to encrypt.
+ *
+ * @return String The encrypted output.
+ */
+ function _encryptBlock($L, $R)
+ {
+ $L ^= $this->p[0];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[1];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[2];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[3];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[4];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[5];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[6];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[7];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[8];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[9];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[10];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[11];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[12];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[13];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[14];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[15];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[16];
+ $R ^= $this->p[17];
+
+ return array('L' => $R, 'R' => $L);
+ }
+
+ /**
+ * Decrypt a block on data.
+ *
+ * @param String $block The data to decrypt
+ * @param optional String $key The key to use
+ *
+ * @return String the decrypted output
+ */
+ function decryptBlock($block, $key = null)
+ {
+ if (!is_null($key)) {
+ $this->setKey($key);
+ }
+
+// change for phpMyAdmin
+ $L = null;
+ $R = null;
+
+ $retarray = array_values(unpack('N*', $block));
+ if (isset($retarray[0])) {
+ $L = $retarray[0];
+ }
+ if (isset($retarray[1])) {
+ $R = $retarray[1];
+ }
+// end change for phpMyAdmin
+
+ $L ^= $this->p[17];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[16];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[15];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[14];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[13];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[12];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[11];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[10];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[9];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[8];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[7];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[6];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[5];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[4];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[3];
+ $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[2];
+ $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[1];
+
+ $decrypted = pack("NN", $R ^ $this->p[0], $L);
+ return $decrypted;
+ }
+
+ /**
+ * Converts a text key into an array.
+ *
+ * @return array The key.
+ */
+ function _formatKey($key)
+ {
+ return array_values(unpack('C*', $key));
+ }
+
+}
+
+// higher-level functions:
+/**
+ * Encryption using blowfish algorithm
+ *
+ * @param string original data
+ * @param string the secret
+ *
+ * @return string the encrypted result
+ *
+ * @access public
+ *
+ * @author lem9
+ */
+function PMA_blowfish_encrypt($data, $secret)
+{
+ $pma_cipher = new Horde_Cipher_blowfish;
+ $encrypt = '';
+
+ $mod = strlen($data) % 8;
+
+ if ($mod > 0) {
+ $data .= str_repeat("\0", 8 - $mod);
+ }
+
+ foreach (str_split($data, 8) as $chunk) {
+ $encrypt .= $pma_cipher->encryptBlock($chunk, $secret);
+ }
+ return base64_encode($encrypt);
+}
+
+/**
+ * Decryption using blowfish algorithm
+ *
+ * @param string encrypted data
+ * @param string the secret
+ *
+ * @return string original data
+ *
+ * @access public
+ *
+ * @author lem9
+ */
+function PMA_blowfish_decrypt($encdata, $secret)
+{
+ $pma_cipher = new Horde_Cipher_blowfish;
+ $decrypt = '';
+ $data = base64_decode($encdata);
+
+ foreach (str_split($data, 8) as $chunk) {
+ $decrypt .= $pma_cipher->decryptBlock($chunk, $secret);
+ }
+ return trim($decrypt);
+}
+
+?>
diff --git a/libraries/bookmark.lib.php b/libraries/bookmark.lib.php
new file mode 100644
index 0000000000..7d5e288271
--- /dev/null
+++ b/libraries/bookmark.lib.php
@@ -0,0 +1,190 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used with the bookmark feature
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/relation.lib.php';
+
+/**
+ * Defines the bookmark parameters for the current user
+ *
+ * @uses $GLOBALS['server']
+ * @uses PMA_getRelationsParam()
+ * @uses $GLOBALS['cfg']['Server']['user']
+ * @uses $GLOBALS['cfg']['Server']['pmadb']
+ * @uses $GLOBALS['cfg']['Server']['bookmarktable']
+ * @return array the bookmark parameters for the current user
+ * @access public
+ */
+function PMA_Bookmark_getParams()
+{
+ static $cfgBookmark = null;
+
+ if (null !== $cfgBookmark) {
+ return $cfgBookmark;
+ }
+
+ $cfgRelation = PMA_getRelationsParam();
+
+ if ($cfgRelation['bookmarkwork']) {
+ $cfgBookmark = array(
+ 'user' => $GLOBALS['cfg']['Server']['user'],
+ 'db' => $GLOBALS['cfg']['Server']['pmadb'],
+ 'table' => $GLOBALS['cfg']['Server']['bookmarktable'],
+ );
+ } else {
+ $cfgBookmark = false;
+ }
+
+ return $cfgBookmark;
+} // end of the 'PMA_Bookmark_getParams()' function
+
+
+/**
+ * Gets the list of bookmarks defined for the current database
+ *
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_Bookmark_getParams()
+ * @global resource the controluser db connection handle
+ *
+ * @param string the current database name
+ *
+ * @return array the bookmarks list (key as index, label as value)
+ *
+ * @access public
+ */
+function PMA_Bookmark_getList($db)
+{
+ global $controllink;
+
+ $cfgBookmark = PMA_Bookmark_getParams();
+
+ if (empty($cfgBookmark)) {
+ return array();
+ }
+
+ $query = 'SELECT label, id FROM '. PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
+ . ' WHERE dbase = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND (user = \'' . PMA_sqlAddslashes($cfgBookmark['user']) . '\''
+ . ' OR user = \'\')'
+ . ' ORDER BY label';
+ return PMA_DBI_fetch_result($query, 'id', 'label', $controllink, PMA_DBI_QUERY_STORE);
+} // end of the 'PMA_Bookmark_getList()' function
+
+
+/**
+ * Gets the sql command from a bookmark
+ *
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_fetch_value()
+ * @uses PMA_Bookmark_getParams()
+ * @global resource the controluser db connection handle
+ *
+ * @param string the current database name
+ * @param mixed the id of the bookmark to get
+ * @param string which field to look up the $id
+ * @param boolean TRUE: get all bookmarks regardless of the owning user
+ *
+ * @return string the sql query
+ *
+ * @access public
+ */
+function PMA_Bookmark_get($db, $id, $id_field = 'id', $action_bookmark_all = FALSE)
+{
+ global $controllink;
+
+ $cfgBookmark = PMA_Bookmark_getParams();
+
+ if (empty($cfgBookmark)) {
+ return '';
+ }
+
+ $query = 'SELECT query FROM ' . PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
+ . ' WHERE dbase = \'' . PMA_sqlAddslashes($db) . '\''
+ . ($action_bookmark_all? '' : ' AND (user = \'' . PMA_sqlAddslashes($cfgBookmark['user']) . '\''
+ . ' OR user = \'\')')
+ . ' AND ' . PMA_backquote($id_field) . ' = ' . $id;
+ return PMA_DBI_fetch_value($query, 0, 0, $controllink);
+} // end of the 'PMA_Bookmark_get()' function
+
+/**
+ * Adds a bookmark
+ *
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_query()
+ * @uses PMA_Bookmark_getParams()
+ * @global resource the controluser db connection handle
+ *
+ * @param array the properties of the bookmark to add; here,
+ * $fields['query'] is urlencoded
+ * @param boolean whether to make the bookmark available for all users
+ *
+ * @return boolean whether the INSERT succeeds or not
+ *
+ * @access public
+ */
+function PMA_Bookmark_save($fields, $all_users = false)
+{
+ global $controllink;
+
+ $cfgBookmark = PMA_Bookmark_getParams();
+
+ if (empty($cfgBookmark)) {
+ return false;
+ }
+
+ $query = 'INSERT INTO ' . PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
+ . ' (id, dbase, user, query, label) VALUES (NULL, \'' . PMA_sqlAddslashes($fields['dbase']) . '\', \'' . ($all_users ? '' : PMA_sqlAddslashes($fields['user'])) . '\', \'' . PMA_sqlAddslashes(urldecode($fields['query'])) . '\', \'' . PMA_sqlAddslashes($fields['label']) . '\')';
+ return PMA_DBI_query($query, $controllink);
+} // end of the 'PMA_Bookmark_save()' function
+
+
+/**
+ * Deletes a bookmark
+ *
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_Bookmark_getParams()
+ * @global resource the controluser db connection handle
+ *
+ * @param string the current database name
+ * @param integer the id of the bookmark to get
+ *
+ * @access public
+ */
+function PMA_Bookmark_delete($db, $id)
+{
+ global $controllink;
+
+ $cfgBookmark = PMA_Bookmark_getParams();
+
+ if (empty($cfgBookmark)) {
+ return false;
+ }
+
+ $query = 'DELETE FROM ' . PMA_backquote($cfgBookmark['db']) . '.' . PMA_backquote($cfgBookmark['table'])
+ . ' WHERE (user = \'' . PMA_sqlAddslashes($cfgBookmark['user']) . '\''
+ . ' OR user = \'\')'
+ . ' AND id = ' . $id;
+ return PMA_DBI_try_query($query, $controllink);
+} // end of the 'PMA_Bookmark_delete()' function
+
+
+/**
+ * Bookmark Support
+ */
+$GLOBALS['cfg']['Bookmark'] = PMA_Bookmark_getParams();
+
+?>
diff --git a/libraries/charset_conversion.lib.php b/libraries/charset_conversion.lib.php
new file mode 100644
index 0000000000..5dc0118725
--- /dev/null
+++ b/libraries/charset_conversion.lib.php
@@ -0,0 +1,237 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Charset conversion functions.
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Loads the recode or iconv extensions if any of it is not loaded yet
+ */
+if (isset($cfg['AllowAnywhereRecoding'])
+ && $cfg['AllowAnywhereRecoding']) {
+
+ if ($cfg['RecodingEngine'] == 'recode') {
+ if (!@extension_loaded('recode')) {
+ echo $strCantLoadRecodeIconv;
+ exit;
+ }
+ $PMA_recoding_engine = 'recode';
+ } elseif ($cfg['RecodingEngine'] == 'iconv') {
+ if (!@extension_loaded('iconv')) {
+ echo $strCantLoadRecodeIconv;
+ exit;
+ }
+ $PMA_recoding_engine = 'iconv';
+ } else {
+ if (@extension_loaded('iconv')) {
+ $PMA_recoding_engine = 'iconv';
+ } elseif (@extension_loaded('recode')) {
+ $PMA_recoding_engine = 'recode';
+ } else {
+ echo $strCantLoadRecodeIconv;
+ exit;
+ }
+ }
+} // end load recode/iconv extension
+
+define('PMA_CHARSET_NONE', 0);
+define('PMA_CHARSET_ICONV', 1);
+define('PMA_CHARSET_LIBICONV', 2);
+define('PMA_CHARSET_RECODE', 3);
+define('PMA_CHARSET_ICONV_AIX', 4);
+
+if (!isset($cfg['IconvExtraParams'])) {
+ $cfg['IconvExtraParams'] = '';
+}
+
+// Finally detect which function we will use:
+if (isset($cfg['AllowAnywhereRecoding'])
+ && $cfg['AllowAnywhereRecoding']) {
+
+ if (!isset($PMA_recoding_engine)) {
+ $PMA_recoding_engine = $cfg['RecodingEngine'];
+ }
+ if ($PMA_recoding_engine == 'iconv') {
+ if (@function_exists('iconv')) {
+ if ((@stristr(PHP_OS, 'AIX')) && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
+ $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_ICONV;
+ }
+ } elseif (@function_exists('libiconv')) {
+ $PMA_recoding_engine = PMA_CHARSET_LIBICONV;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_NONE;
+
+ if (!isset($GLOBALS['is_header_sent'])) {
+ include './libraries/header.inc.php';
+ }
+ echo $strCantUseRecodeIconv;
+ require_once './libraries/footer.inc.php';
+ exit();
+ }
+ } elseif ($PMA_recoding_engine == 'recode') {
+ if (@function_exists('recode_string')) {
+ $PMA_recoding_engine = PMA_CHARSET_RECODE;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_NONE;
+
+ require_once './libraries/header.inc.php';
+ echo $strCantUseRecodeIconv;
+ require_once './libraries/footer.inc.php';
+ exit;
+ }
+ } else {
+ if (@function_exists('iconv')) {
+ if ((@stristr(PHP_OS, 'AIX')) && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
+ $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_ICONV;
+ }
+ } elseif (@function_exists('libiconv')) {
+ $PMA_recoding_engine = PMA_CHARSET_LIBICONV;
+ } elseif (@function_exists('recode_string')) {
+ $PMA_recoding_engine = PMA_CHARSET_RECODE;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_NONE;
+
+ require_once './libraries/header.inc.php';
+ echo $strCantUseRecodeIconv;
+ require_once './libraries/footer.inc.php';
+ exit;
+ }
+ }
+} else {
+ $PMA_recoding_engine = PMA_CHARSET_NONE;
+}
+
+/* Load AIX iconv wrapper if needed */
+if ($PMA_recoding_engine == PMA_CHARSET_ICONV_AIX) {
+ require_once './libraries/iconv_wrapper.lib.php';
+}
+
+/**
+ * Converts encoding of text according to current settings.
+ *
+ * @param string what to convert
+ *
+ * @return string converted text
+ *
+ * @global array the configuration array
+ * @global boolean whether recoding is allowed or not
+ * @global string the current charset
+ * @global array the charset to convert to
+ *
+ * @access public
+ *
+ * @author nijel
+ */
+function PMA_convert_charset($what) {
+ global $cfg, $charset, $convcharset;
+
+ if (!(isset($cfg['AllowAnywhereRecoding']) && $cfg['AllowAnywhereRecoding'] )
+ || $convcharset == $charset) { // rabus: if input and output charset are the same, we don't have to do anything...
+ return $what;
+ } else {
+ switch ($GLOBALS['PMA_recoding_engine']) {
+ case PMA_CHARSET_RECODE:
+ return recode_string($charset . '..' . $convcharset, $what);
+ case PMA_CHARSET_ICONV:
+ return iconv($charset, $convcharset . $cfg['IconvExtraParams'], $what);
+ case PMA_CHARSET_ICONV_AIX:
+ return PMA_aix_iconv_wrapper($charset, $convcharset . $cfg['IconvExtraParams'], $what);
+ case PMA_CHARSET_LIBICONV:
+ return libiconv($charset, $convcharset . $GLOBALS['cfg']['IconvExtraParams'], $what);
+ default:
+ return $what;
+ }
+ }
+} // end of the "PMA_convert_charset()" function
+
+/**
+ * Converts encoding of text according to parameters with detected
+ * conversion function.
+ *
+ * @param string source charset
+ * @param string target charset
+ * @param string what to convert
+ *
+ * @return string converted text
+ *
+ * @access public
+ *
+ * @author nijel
+ */
+function PMA_convert_string($src_charset, $dest_charset, $what) {
+ if ($src_charset == $dest_charset) {
+ return $what;
+ }
+ switch ($GLOBALS['PMA_recoding_engine']) {
+ case PMA_CHARSET_RECODE:
+ return recode_string($src_charset . '..' . $dest_charset, $what);
+ case PMA_CHARSET_ICONV:
+ return iconv($src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $what);
+ case PMA_CHARSET_ICONV_AIX:
+ return PMA_aix_iconv_wrapper($src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $what);
+ case PMA_CHARSET_LIBICONV:
+ return libiconv($src_charset, $dest_charset, $what);
+ default:
+ return $what;
+ }
+} // end of the "PMA_convert_string()" function
+
+
+/**
+ * Converts encoding of file according to parameters with detected
+ * conversion function. The old file will be unlinked and new created and
+ * its file name is returned.
+ *
+ * @param string source charset
+ * @param string target charset
+ * @param string file to convert
+ *
+ * @return string new temporay file
+ *
+ * @access public
+ *
+ * @author nijel
+ */
+function PMA_convert_file($src_charset, $dest_charset, $file) {
+ switch ($GLOBALS['PMA_recoding_engine']) {
+ case PMA_CHARSET_RECODE:
+ case PMA_CHARSET_ICONV:
+ case PMA_CHARSET_LIBICONV:
+ $tmpfname = tempnam('', 'PMA_convert_file');
+ $fin = fopen($file, 'r');
+ $fout = fopen($tmpfname, 'w');
+ if ($GLOBALS['PMA_recoding_engine'] == PMA_CHARSET_RECODE) {
+ recode_file($src_charset . '..' . $dest_charset, $fin, $fout);
+ } else {
+ while (!feof($fin)) {
+ $line = fgets($fin, 4096);
+ if ($GLOBALS['PMA_recoding_engine'] == PMA_CHARSET_ICONV) {
+ $dist = iconv($src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $line);
+ } elseif ($GLOBALS['PMA_recoding_engine'] == PMA_CHARSET_ICONV_AIX) {
+ $dist = PMA_aix_iconv_wrapper($src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $line);
+ } else {
+ $dist = libiconv($src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $line);
+ }
+ fputs($fout, $dist);
+ } // end while
+ }
+ fclose($fin);
+ fclose($fout);
+ unlink($file);
+
+ return $tmpfname;
+ default:
+ return $file;
+ }
+} // end of the "PMA_convert_file()" function
+
+?>
diff --git a/libraries/check_user_privileges.lib.php b/libraries/check_user_privileges.lib.php
new file mode 100644
index 0000000000..42cd73a34c
--- /dev/null
+++ b/libraries/check_user_privileges.lib.php
@@ -0,0 +1,160 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Get user's global privileges and some db-specific privileges
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+$GLOBALS['is_superuser'] = PMA_isSuperuser();
+
+/**
+ * sets privilege information extracted from SHOW GRANTS result
+ *
+ * Detection for some CREATE privilege.
+ *
+ * Since MySQL 4.1.2, we can easily detect current user's grants using $userlink
+ * (no control user needed) and we don't have to try any other method for
+ * detection
+ *
+ * @todo fix to get really all privileges, not only explicitly defined for this user
+ * from MySQL manual: (http://dev.mysql.com/doc/refman/5.0/en/show-grants.html)
+ * SHOW GRANTS displays only the privileges granted explicitly to the named
+ * account. Other privileges might be available to the account, but they are not
+ * displayed. For example, if an anonymous account exists, the named account
+ * might be able to use its privileges, but SHOW GRANTS will not display them.
+ *
+ * @uses $_SESSION['is_create_db_priv'] for caching
+ * @uses $_SESSION['is_process_priv'] for caching
+ * @uses $_SESSION['is_reload_priv'] for caching
+ * @uses $_SESSION['db_to_create'] for caching
+ * @uses $_SESSION['dbs_where_create_table_allowed'] for caching
+ * @uses $GLOBALS['is_create_db_priv'] to set it
+ * @uses $GLOBALS['is_process_priv'] to set it
+ * @uses $GLOBALS['is_reload_priv'] to set it
+ * @uses $GLOBALS['db_to_create'] to set it
+ * @uses $GLOBALS['dbs_where_create_table_allowed'] to set it
+ * @uses $GLOBALS['server']
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_DBI_free_result()
+ * @uses PMA_DBI_getError()
+ * @uses PMA_unQuote()
+ * @uses PMA_backquote()
+ * @uses preg_match()
+ * @uses preg_replace()
+ * @uses substr()
+ * @uses strpos()
+ */
+function PMA_analyseShowGrant()
+{
+ if (PMA_cacheExists('is_create_db_priv', true)) {
+ $GLOBALS['is_create_db_priv'] = PMA_cacheGet('is_create_db_priv', true);
+ $GLOBALS['is_process_priv'] = PMA_cacheGet('is_process_priv', true);
+ $GLOBALS['is_reload_priv'] = PMA_cacheGet('is_reload_priv', true);
+ $GLOBALS['db_to_create'] = PMA_cacheGet('db_to_create', true);
+ $GLOBALS['dbs_where_create_table_allowed']
+ = PMA_cacheGet('dbs_where_create_table_allowed', true);
+ return;
+ }
+
+ // defaults
+ $GLOBALS['is_create_db_priv'] = false;
+ $GLOBALS['is_process_priv'] = true;
+ $GLOBALS['is_reload_priv'] = false;
+ $GLOBALS['db_to_create'] = '';
+ $GLOBALS['dbs_where_create_table_allowed'] = array();
+
+ $rs_usr = PMA_DBI_try_query('SHOW GRANTS');
+
+ if (! $rs_usr) {
+ return;
+ }
+
+ $re0 = '(^|(\\\\\\\\)+|[^\\\\])'; // non-escaped wildcards
+ $re1 = '(^|[^\\\\])(\\\)+'; // escaped wildcards
+
+ while ($row = PMA_DBI_fetch_row($rs_usr)) {
+ // extract db from GRANT ... ON *.* or GRANT ... ON db.*
+ $db_name_offset = strpos($row[0], ' ON ') + 4;
+ $show_grants_dbname = substr($row[0],
+ $db_name_offset,
+ strpos($row[0], '.', $db_name_offset) - $db_name_offset);
+ $show_grants_dbname = PMA_unQuote($show_grants_dbname, '`');
+
+ $show_grants_str = substr($row[0], 6, (strpos($row[0], ' ON ') - 6));
+ if ($show_grants_str == 'RELOAD') {
+ $GLOBALS['is_reload_priv'] = true;
+ }
+
+ /**
+ * @todo if we find CREATE VIEW but not CREATE, do not offer
+ * the create database dialog box
+ */
+ if ($show_grants_str == 'ALL'
+ || $show_grants_str == 'ALL PRIVILEGES'
+ || $show_grants_str == 'CREATE'
+ || strpos($show_grants_str, 'CREATE,') !== false) {
+ if ($show_grants_dbname == '*') {
+ // a global CREATE privilege
+ $GLOBALS['is_create_db_priv'] = true;
+ $GLOBALS['is_reload_priv'] = true;
+ $GLOBALS['db_to_create'] = '';
+ $GLOBALS['dbs_where_create_table_allowed'][] = '*';
+ // @todo we should not break here, cause GRANT ALL *.*
+ // could be revoked by a later rule like GRANT SELECT ON db.*
+ break;
+ } else {
+ // this array may contain wildcards
+ $GLOBALS['dbs_where_create_table_allowed'][] = $show_grants_dbname;
+
+ $dbname_to_test = PMA_backquote($show_grants_dbname);
+
+ if ($GLOBALS['is_create_db_priv']) {
+ // no need for any more tests if we already know this
+ continue;
+ }
+
+ if ((preg_match('/' . $re0 . '%|_/', $show_grants_dbname)
+ && ! preg_match('/\\\\%|\\\\_/', $show_grants_dbname))
+ // does this db exist?
+ || (! PMA_DBI_try_query('USE ' . preg_replace('/' . $re1 . '(%|_)/', '\\1\\3', $dbname_to_test))
+ && substr(PMA_DBI_getError(), 1, 4) != 1044)
+ ) {
+ if ($GLOBALS['cfg']['SuggestDBName']) {
+ $GLOBALS['db_to_create'] = preg_replace('/' . $re0 . '_/', '\\1?', $show_grants_dbname);
+ $GLOBALS['db_to_create'] = preg_replace('/' . $re0 . '%/', '\\1...', $GLOBALS['db_to_create']);
+ $GLOBALS['db_to_create'] = preg_replace('/' . $re1 . '(%|_)/', '\\1\\3', $GLOBALS['db_to_create']);
+ }
+ $GLOBALS['is_create_db_priv'] = true;
+
+ /**
+ * @todo collect $GLOBALS['db_to_create'] into an array, to display a
+ * drop-down in the "Create new database" dialog
+ */
+ // we don't break, we want all possible databases
+ //break;
+ } // end if
+ } // end elseif
+ } // end if
+ } // end while
+
+ PMA_DBI_free_result($rs_usr);
+
+ // must also PMA_cacheUnset() them in libraries/auth/cookie.auth.lib.php
+ PMA_cacheSet('is_create_db_priv', $GLOBALS['is_create_db_priv'], true);
+ PMA_cacheSet('is_process_priv', $GLOBALS['is_process_priv'], true);
+ PMA_cacheSet('is_reload_priv', $GLOBALS['is_reload_priv'], true);
+ PMA_cacheSet('db_to_create', $GLOBALS['db_to_create'], true);
+ PMA_cacheSet('dbs_where_create_table_allowed', $GLOBALS['dbs_where_create_table_allowed'], true);
+} // end function
+
+PMA_analyseShowGrant();
+
+?>
diff --git a/libraries/cleanup.lib.php b/libraries/cleanup.lib.php
new file mode 100644
index 0000000000..05ebe5d234
--- /dev/null
+++ b/libraries/cleanup.lib.php
@@ -0,0 +1,45 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Functions for cleanup of user input.
+ *
+ * @version $Id$
+ */
+
+/**
+ * Removes all variables from request except whitelisted ones.
+ *
+ * @param string list of variables to allow
+ * @return nothing
+ * @access public
+ * @author Michal Cihar (michal@cihar.com)
+ */
+function PMA_remove_request_vars(&$whitelist)
+{
+ // do not check only $_REQUEST because it could have been overwritten
+ // and use type casting because the variables could have become
+ // strings
+ $keys = array_keys(array_merge((array)$_REQUEST, (array)$_GET, (array)$_POST, (array)$_COOKIE));
+
+ foreach($keys as $key) {
+ if (! in_array($key, $whitelist)) {
+ unset($_REQUEST[$key], $_GET[$key], $_POST[$key], $GLOBALS[$key]);
+ } else {
+ // allowed stuff could be compromised so escape it
+ // we require it to be a string
+ if (isset($_REQUEST[$key]) && ! is_string($_REQUEST[$key])) {
+ unset($_REQUEST[$key]);
+ }
+ if (isset($_POST[$key]) && ! is_string($_POST[$key])) {
+ unset($_POST[$key]);
+ }
+ if (isset($_COOKIE[$key]) && ! is_string($_COOKIE[$key])) {
+ unset($_COOKIE[$key]);
+ }
+ if (isset($_GET[$key]) && ! is_string($_GET[$key])) {
+ unset($_GET[$key]);
+ }
+ }
+ }
+}
+?>
diff --git a/libraries/common.inc.php b/libraries/common.inc.php
new file mode 100644
index 0000000000..2d4c647752
--- /dev/null
+++ b/libraries/common.inc.php
@@ -0,0 +1,967 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Misc stuff and REQUIRED by ALL the scripts.
+ * MUST be included by every script
+ *
+ * Among other things, it contains the advanced authentication work.
+ *
+ * Order of sections for common.inc.php:
+ *
+ * the authentication libraries must be before the connection to db
+ *
+ * ... so the required order is:
+ *
+ * LABEL_variables_init
+ * - initialize some variables always needed
+ * LABEL_parsing_config_file
+ * - parsing of the configuration file
+ * LABEL_loading_language_file
+ * - loading language file
+ * LABEL_setup_servers
+ * - check and setup configured servers
+ * LABEL_theme_setup
+ * - setting up themes
+ *
+ * - load of MySQL extension (if necessary)
+ * - loading of an authentication library
+ * - db connection
+ * - authentication work
+ *
+ * @version $Id$
+ */
+
+/**
+ * the error handler
+ */
+require_once './libraries/Error_Handler.class.php';
+
+/**
+ * initialize the error handler
+ */
+$GLOBALS['error_handler'] = new PMA_Error_Handler();
+$cfg['Error_Handler']['display'] = TRUE;
+
+// at this point PMA_PHP_INT_VERSION is not yet defined
+if (version_compare(phpversion(), '6', 'lt')) {
+ /**
+ * Avoid object cloning errors
+ */
+ @ini_set('zend.ze1_compatibility_mode', false);
+
+ /**
+ * Avoid problems with magic_quotes_runtime
+ */
+ @ini_set('magic_quotes_runtime', false);
+}
+
+/**
+ * for verification in all procedural scripts under libraries
+ */
+define('PHPMYADMIN', true);
+
+/**
+ * core functions
+ */
+require_once './libraries/core.lib.php';
+
+/**
+ * Input sanitizing
+ */
+require_once './libraries/sanitizing.lib.php';
+
+/**
+ * the PMA_Theme class
+ * (this one is the first to produce a fatal error under PHP < 5)
+ * and let's put here the same minimum requirement as in our doc.
+ */
+if (version_compare(PHP_VERSION, '5.2.0') < 0 ) {
+ PMA_fatalError('strUpgrade', array('PHP', '5.2'));
+}
+
+require_once './libraries/Theme.class.php';
+
+/**
+ * the PMA_Theme_Manager class
+ */
+require_once './libraries/Theme_Manager.class.php';
+
+/**
+ * the PMA_Config class
+ */
+require_once './libraries/Config.class.php';
+
+/**
+ * the PMA_Table class
+ */
+require_once './libraries/Table.class.php';
+
+if (!defined('PMA_MINIMUM_COMMON')) {
+ /**
+ * common functions
+ */
+ require_once './libraries/common.lib.php';
+
+ /**
+ * Java script escaping.
+ */
+ require_once './libraries/js_escape.lib.php';
+
+ /**
+ * Include URL/hidden inputs generating.
+ */
+ require_once './libraries/url_generating.lib.php';
+}
+
+/******************************************************************************/
+/* start procedural code label_start_procedural */
+
+/**
+ * protect against possible exploits - there is no need to have so much variables
+ */
+if (count($_REQUEST) > 1000) {
+ die('possible exploit');
+}
+
+/**
+ * Check for numeric keys
+ * (if register_globals is on, numeric key can be found in $GLOBALS)
+ */
+foreach ($GLOBALS as $key => $dummy) {
+ if (is_numeric($key)) {
+ die('numeric key detected');
+ }
+}
+unset($dummy);
+
+/**
+ * PATH_INFO could be compromised if set, so remove it from PHP_SELF
+ * and provide a clean PHP_SELF here
+ */
+$PMA_PHP_SELF = PMA_getenv('PHP_SELF');
+$_PATH_INFO = PMA_getenv('PATH_INFO');
+if (! empty($_PATH_INFO) && ! empty($PMA_PHP_SELF)) {
+ $path_info_pos = strrpos($PMA_PHP_SELF, $_PATH_INFO);
+ if ($path_info_pos + strlen($_PATH_INFO) === strlen($PMA_PHP_SELF)) {
+ $PMA_PHP_SELF = substr($PMA_PHP_SELF, 0, $path_info_pos);
+ }
+}
+$PMA_PHP_SELF = htmlspecialchars($PMA_PHP_SELF);
+
+
+/**
+ * just to be sure there was no import (registering) before here
+ * we empty the global space (but avoid unsetting $variables_list
+ * and $key in the foreach(), we still need them!)
+ */
+$variables_whitelist = array (
+ 'GLOBALS',
+ '_SERVER',
+ '_GET',
+ '_POST',
+ '_REQUEST',
+ '_FILES',
+ '_ENV',
+ '_COOKIE',
+ '_SESSION',
+ 'error_handler',
+ 'PMA_PHP_SELF',
+ 'variables_whitelist',
+ 'key'
+);
+
+foreach (get_defined_vars() as $key => $value) {
+ if (! in_array($key, $variables_whitelist)) {
+ unset($$key);
+ }
+}
+unset($key, $value, $variables_whitelist);
+
+
+/**
+ * Subforms - some functions need to be called by form, cause of the limited URL
+ * length, but if this functions inside another form you cannot just open a new
+ * form - so phpMyAdmin uses 'arrays' inside this form
+ *
+ * <code>
+ * <form ...>
+ * ... main form elments ...
+ * <input type="hidden" name="subform[action1][id]" value="1" />
+ * ... other subform data ...
+ * <input type="submit" name="usesubform[action1]" value="do action1" />
+ * ... other subforms ...
+ * <input type="hidden" name="subform[actionX][id]" value="X" />
+ * ... other subform data ...
+ * <input type="submit" name="usesubform[actionX]" value="do actionX" />
+ * ... main form elments ...
+ * <input type="submit" name="main_action" value="submit form" />
+ * </form>
+ * </code
+ *
+ * so we now check if a subform is submitted
+ */
+$__redirect = null;
+if (isset($_POST['usesubform'])) {
+ // if a subform is present and should be used
+ // the rest of the form is deprecated
+ $subform_id = key($_POST['usesubform']);
+ $subform = $_POST['subform'][$subform_id];
+ $_POST = $subform;
+ $_REQUEST = $subform;
+ /**
+ * some subforms need another page than the main form, so we will just
+ * include this page at the end of this script - we use $__redirect to
+ * track this
+ */
+ if (isset($_POST['redirect'])
+ && $_POST['redirect'] != basename($PMA_PHP_SELF)) {
+ $__redirect = $_POST['redirect'];
+ unset($_POST['redirect']);
+ }
+ unset($subform_id, $subform);
+} else {
+ // Note: here we overwrite $_REQUEST so that it does not contain cookies,
+ // because another application for the same domain could have set
+ // a cookie (with a compatible path) that overrides a variable
+ // we expect from GET or POST.
+ // We'll refer to cookies explicitly with the $_COOKIE syntax.
+ $_REQUEST = array_merge($_GET, $_POST);
+}
+// end check if a subform is submitted
+
+// remove quotes added by php
+// (get_magic_quotes_gpc() is deprecated in PHP 5.3, but compare with 5.2.99
+// to be able to test with 5.3.0-dev)
+if (function_exists('get_magic_quotes_gpc') && -1 == version_compare(PHP_VERSION, '5.2.99') && get_magic_quotes_gpc()) {
+ PMA_arrayWalkRecursive($_GET, 'stripslashes', true);
+ PMA_arrayWalkRecursive($_POST, 'stripslashes', true);
+ PMA_arrayWalkRecursive($_COOKIE, 'stripslashes', true);
+ PMA_arrayWalkRecursive($_REQUEST, 'stripslashes', true);
+}
+
+/**
+ * clean cookies on upgrade
+ * when changing something related to PMA cookies, increment the cookie version
+ */
+$pma_cookie_version = 4;
+if (isset($_COOKIE)
+ && (isset($_COOKIE['pmaCookieVer'])
+ && $_COOKIE['pmaCookieVer'] < $pma_cookie_version)) {
+ // delete all cookies
+ foreach($_COOKIE as $cookie_name => $tmp) {
+ PMA_removeCookie($cookie_name);
+ }
+ $_COOKIE = array();
+ PMA_setCookie('pmaCookieVer', $pma_cookie_version);
+}
+
+/**
+ * include deprecated grab_globals only if required
+ */
+if (empty($__redirect) && !defined('PMA_NO_VARIABLES_IMPORT')) {
+ require './libraries/grab_globals.lib.php';
+}
+
+/**
+ * check timezone setting
+ * this could produce an E_STRICT - but only once,
+ * if not done here it will produce E_STRICT on every date/time function
+ *
+ * @todo need to decide how we should handle this (without @)
+ */
+date_default_timezone_set(@date_default_timezone_get());
+
+/**
+ * include session handling after the globals, to prevent overwriting
+ */
+require_once './libraries/session.inc.php';
+
+/**
+ * init some variables LABEL_variables_init
+ */
+
+/**
+ * holds parameters to be passed to next page
+ * @global array $GLOBALS['url_params']
+ */
+$GLOBALS['url_params'] = array();
+
+/**
+ * the whitelist for $GLOBALS['goto']
+ * @global array $goto_whitelist
+ */
+$goto_whitelist = array(
+ //'browse_foreigners.php',
+ //'calendar.php',
+ //'changelog.php',
+ //'chk_rel.php',
+ 'db_create.php',
+ 'db_datadict.php',
+ 'db_sql.php',
+ 'db_export.php',
+ 'db_importdocsql.php',
+ 'db_qbe.php',
+ 'db_structure.php',
+ 'db_import.php',
+ 'db_operations.php',
+ 'db_printview.php',
+ 'db_search.php',
+ //'Documentation.html',
+ //'error.php',
+ 'export.php',
+ 'import.php',
+ //'index.php',
+ //'navigation.php',
+ //'license.php',
+ 'main.php',
+ 'pdf_pages.php',
+ 'pdf_schema.php',
+ //'phpinfo.php',
+ 'querywindow.php',
+ //'readme.php',
+ 'server_binlog.php',
+ 'server_collations.php',
+ 'server_databases.php',
+ 'server_engines.php',
+ 'server_export.php',
+ 'server_import.php',
+ 'server_privileges.php',
+ 'server_processlist.php',
+ 'server_sql.php',
+ 'server_status.php',
+ 'server_variables.php',
+ 'sql.php',
+ 'tbl_addfield.php',
+ 'tbl_alter.php',
+ 'tbl_change.php',
+ 'tbl_create.php',
+ 'tbl_import.php',
+ 'tbl_indexes.php',
+ 'tbl_move_copy.php',
+ 'tbl_printview.php',
+ 'tbl_sql.php',
+ 'tbl_export.php',
+ 'tbl_operations.php',
+ 'tbl_structure.php',
+ 'tbl_relation.php',
+ 'tbl_replace.php',
+ 'tbl_row_action.php',
+ 'tbl_select.php',
+ //'themes.php',
+ 'transformation_overview.php',
+ 'transformation_wrapper.php',
+ 'translators.html',
+ 'user_password.php',
+);
+
+/**
+ * check $__redirect against whitelist
+ */
+if (! PMA_checkPageValidity($__redirect, $goto_whitelist)) {
+ $__redirect = null;
+}
+
+/**
+ * holds page that should be displayed
+ * @global string $GLOBALS['goto']
+ */
+$GLOBALS['goto'] = '';
+// Security fix: disallow accessing serious server files via "?goto="
+if (PMA_checkPageValidity($_REQUEST['goto'], $goto_whitelist)) {
+ $GLOBALS['goto'] = $_REQUEST['goto'];
+ $GLOBALS['url_params']['goto'] = $_REQUEST['goto'];
+} else {
+ unset($_REQUEST['goto'], $_GET['goto'], $_POST['goto'], $_COOKIE['goto']);
+}
+
+/**
+ * returning page
+ * @global string $GLOBALS['back']
+ */
+if (PMA_checkPageValidity($_REQUEST['back'], $goto_whitelist)) {
+ $GLOBALS['back'] = $_REQUEST['back'];
+} else {
+ unset($_REQUEST['back'], $_GET['back'], $_POST['back'], $_COOKIE['back']);
+}
+
+/**
+ * Check whether user supplied token is valid, if not remove any possibly
+ * dangerous stuff from request.
+ *
+ * remember that some objects in the session with session_start and __wakeup()
+ * could access this variables before we reach this point
+ * f.e. PMA_Config: fontsize
+ *
+ * @todo variables should be handled by their respective owners (objects)
+ * f.e. lang, server, convcharset, collation_connection in PMA_Config
+ */
+if (! PMA_isValid($_REQUEST['token']) || $_SESSION[' PMA_token '] != $_REQUEST['token']) {
+ /**
+ * List of parameters which are allowed from unsafe source
+ */
+ $allow_list = array(
+ /* needed for direct access, see FAQ 1.34
+ * also, server needed for cookie login screen (multi-server)
+ */
+ 'server', 'db', 'table', 'target',
+ /* Session ID */
+ 'phpMyAdmin',
+ /* Cookie preferences */
+ 'pma_lang', 'pma_charset', 'pma_collation_connection',
+ /* Possible login form */
+ 'pma_servername', 'pma_username', 'pma_password',
+ /* rajk - for playing blobstreamable media */
+ 'media_type', 'custom_type', 'bs_reference',
+ /* rajk - for changing BLOB repository file MIME type */
+ 'bs_db', 'bs_table', 'bs_ref', 'bs_new_mime_type'
+ );
+ /**
+ * Require cleanup functions
+ */
+ require_once './libraries/cleanup.lib.php';
+ /**
+ * Do actual cleanup
+ */
+ PMA_remove_request_vars($allow_list);
+
+}
+
+
+/**
+ * @global string $GLOBALS['convcharset']
+ * @see select_lang.lib.php
+ */
+if (isset($_REQUEST['convcharset'])) {
+ $GLOBALS['convcharset'] = strip_tags($_REQUEST['convcharset']);
+}
+
+/**
+ * current selected database
+ * @global string $GLOBALS['db']
+ */
+$GLOBALS['db'] = '';
+if (PMA_isValid($_REQUEST['db'])) {
+ // can we strip tags from this?
+ // only \ and / is not allowed in db names for MySQL
+ $GLOBALS['db'] = $_REQUEST['db'];
+ $GLOBALS['url_params']['db'] = $GLOBALS['db'];
+}
+
+/**
+ * current selected table
+ * @global string $GLOBALS['table']
+ */
+$GLOBALS['table'] = '';
+if (PMA_isValid($_REQUEST['table'])) {
+ // can we strip tags from this?
+ // only \ and / is not allowed in table names for MySQL
+ $GLOBALS['table'] = $_REQUEST['table'];
+ $GLOBALS['url_params']['table'] = $GLOBALS['table'];
+}
+
+/**
+ * SQL query to be executed
+ * @global string $GLOBALS['sql_query']
+ */
+$GLOBALS['sql_query'] = '';
+if (PMA_isValid($_REQUEST['sql_query'])) {
+ $GLOBALS['sql_query'] = $_REQUEST['sql_query'];
+}
+
+/**
+ * avoid problems in phpmyadmin.css.php in some cases
+ * @global string $js_frame
+ */
+$_REQUEST['js_frame'] = PMA_ifSetOr($_REQUEST['js_frame'], '');
+
+//$_REQUEST['set_theme'] // checked later in this file LABEL_theme_setup
+//$_REQUEST['server']; // checked later in this file
+//$_REQUEST['lang']; // checked by LABEL_loading_language_file
+
+
+/**
+ * holds name of JavaScript files to be included in HTML header
+ * @global array $js_include
+ */
+$GLOBALS['js_include'] = array();
+
+/**
+ * holds locale messages required by JavaScript function
+ * @global array $js_messages
+ */
+$GLOBALS['js_messages'] = array();
+
+/**
+ * JavaScript events that will be registered
+ * @global array $js_events
+ */
+$GLOBALS['js_events'] = array();
+
+/**
+ * footnotes to be displayed ot the page bottom
+ * @global array $footnotes
+ */
+$GLOBALS['footnotes'] = array();
+
+/******************************************************************************/
+/* parsing configuration file LABEL_parsing_config_file */
+
+/**
+ * We really need this one!
+ */
+if (! function_exists('preg_replace')) {
+ PMA_fatalError('strCantLoad', 'pcre');
+}
+
+/**
+ * @global PMA_Config $_SESSION['PMA_Config']
+ * force reading of config file, because we removed sensitive values
+ * in the previous iteration
+ */
+$_SESSION['PMA_Config'] = new PMA_Config('./config.inc.php');
+
+if (!defined('PMA_MINIMUM_COMMON')) {
+ $_SESSION['PMA_Config']->checkPmaAbsoluteUri();
+}
+
+/**
+ * BC - enable backward compatibility
+ * exports all configuration settings into $GLOBALS ($GLOBALS['cfg'])
+ */
+$_SESSION['PMA_Config']->enableBc();
+
+
+/**
+ * check HTTPS connection
+ */
+if ($_SESSION['PMA_Config']->get('ForceSSL')
+ && !$_SESSION['PMA_Config']->get('is_https')) {
+ PMA_sendHeaderLocation(
+ preg_replace('/^http/', 'https',
+ $_SESSION['PMA_Config']->get('PmaAbsoluteUri'))
+ . PMA_generate_common_url($_GET, 'text'));
+ exit;
+}
+
+
+/******************************************************************************/
+/* loading language file LABEL_loading_language_file */
+
+/**
+ * Added messages while developing:
+ */
+if (file_exists('./lang/added_messages.php')) {
+ include './lang/added_messages.php';
+}
+
+/**
+ * lang detection is done here
+ */
+require_once './libraries/select_lang.lib.php';
+
+/**
+ * check for errors occurred while loading configuration
+ * this check is done here after loading language files to present errors in locale
+ */
+if ($_SESSION['PMA_Config']->error_config_file) {
+ $error = $strConfigFileError
+ . '<br /><br />'
+ . ($_SESSION['PMA_Config']->getSource() == './config.inc.php' ?
+ '<a href="show_config_errors.php"'
+ .' target="_blank">' . $_SESSION['PMA_Config']->getSource() . '</a>'
+ :
+ '<a href="' . $_SESSION['PMA_Config']->getSource() . '"'
+ .' target="_blank">' . $_SESSION['PMA_Config']->getSource() . '</a>');
+ trigger_error($error, E_USER_ERROR);
+}
+if ($_SESSION['PMA_Config']->error_config_default_file) {
+ $error = sprintf($strConfigDefaultFileError,
+ $_SESSION['PMA_Config']->default_source);
+ trigger_error($error, E_USER_ERROR);
+}
+if ($_SESSION['PMA_Config']->error_pma_uri) {
+ trigger_error($strPmaUriError, E_USER_ERROR);
+}
+
+
+/******************************************************************************/
+/* setup servers LABEL_setup_servers */
+
+/**
+ * current server
+ * @global integer $GLOBALS['server']
+ */
+$GLOBALS['server'] = 0;
+
+/**
+ * Servers array fixups.
+ * $default_server comes from PMA_Config::enableBc()
+ * @todo merge into PMA_Config
+ */
+// Do we have some server?
+if (!isset($cfg['Servers']) || count($cfg['Servers']) == 0) {
+ // No server => create one with defaults
+ $cfg['Servers'] = array(1 => $default_server);
+} else {
+ // We have server(s) => apply default configuration
+ $new_servers = array();
+
+ foreach ($cfg['Servers'] as $server_index => $each_server) {
+
+ // Detect wrong configuration
+ if (!is_int($server_index) || $server_index < 1) {
+ trigger_error(sprintf($strInvalidServerIndex, $server_index), E_USER_ERROR);
+ }
+
+ $each_server = array_merge($default_server, $each_server);
+
+ // Don't use servers with no hostname
+ if ($each_server['connect_type'] == 'tcp' && empty($each_server['host'])) {
+ trigger_error(sprintf($strInvalidServerHostname, $server_index), E_USER_ERROR);
+ }
+
+ // Final solution to bug #582890
+ // If we are using a socket connection
+ // and there is nothing in the verbose server name
+ // or the host field, then generate a name for the server
+ // in the form of "Server 2", localized of course!
+ if ($each_server['connect_type'] == 'socket' && empty($each_server['host']) && empty($each_server['verbose'])) {
+ $each_server['verbose'] = $GLOBALS['strServer'] . $server_index;
+ }
+
+ $new_servers[$server_index] = $each_server;
+ }
+ $cfg['Servers'] = $new_servers;
+ unset($new_servers, $server_index, $each_server);
+}
+
+// Cleanup
+unset($default_server);
+
+
+/******************************************************************************/
+/* setup themes LABEL_theme_setup */
+
+if (isset($_REQUEST['custom_color_reset'])) {
+ unset($_SESSION['userconf']['custom_color']);
+ unset($_SESSION['userconf']['custom_color_rgb']);
+} elseif (isset($_REQUEST['custom_color'])) {
+ $_SESSION['userconf']['custom_color'] = $_REQUEST['custom_color'];
+ $_SESSION['userconf']['custom_color_rgb'] = $_REQUEST['custom_color_rgb'];
+}
+/**
+ * @global PMA_Theme_Manager $_SESSION['PMA_Theme_Manager']
+ */
+if (! isset($_SESSION['PMA_Theme_Manager'])) {
+ $_SESSION['PMA_Theme_Manager'] = new PMA_Theme_Manager;
+} else {
+ /**
+ * @todo move all __wakeup() functionality into session.inc.php
+ */
+ $_SESSION['PMA_Theme_Manager']->checkConfig();
+}
+
+// for the theme per server feature
+if (isset($_REQUEST['server']) && !isset($_REQUEST['set_theme'])) {
+ $GLOBALS['server'] = $_REQUEST['server'];
+ $tmp = $_SESSION['PMA_Theme_Manager']->getThemeCookie();
+ if (empty($tmp)) {
+ $tmp = $_SESSION['PMA_Theme_Manager']->theme_default;
+ }
+ $_SESSION['PMA_Theme_Manager']->setActiveTheme($tmp);
+ unset($tmp);
+}
+/**
+ * @todo move into PMA_Theme_Manager::__wakeup()
+ */
+if (isset($_REQUEST['set_theme'])) {
+ // if user selected a theme
+ $_SESSION['PMA_Theme_Manager']->setActiveTheme($_REQUEST['set_theme']);
+}
+
+/**
+ * the theme object
+ * @global PMA_Theme $_SESSION['PMA_Theme']
+ */
+$_SESSION['PMA_Theme'] = $_SESSION['PMA_Theme_Manager']->theme;
+
+// BC
+/**
+ * the active theme
+ * @global string $GLOBALS['theme']
+ */
+$GLOBALS['theme'] = $_SESSION['PMA_Theme']->getName();
+/**
+ * the theme path
+ * @global string $GLOBALS['pmaThemePath']
+ */
+$GLOBALS['pmaThemePath'] = $_SESSION['PMA_Theme']->getPath();
+/**
+ * the theme image path
+ * @global string $GLOBALS['pmaThemeImage']
+ */
+$GLOBALS['pmaThemeImage'] = $_SESSION['PMA_Theme']->getImgPath();
+
+/**
+ * load layout file if exists
+ */
+if (@file_exists($_SESSION['PMA_Theme']->getLayoutFile())) {
+ include $_SESSION['PMA_Theme']->getLayoutFile();
+ /**
+ * @todo remove if all themes are update use Navi instead of Left as frame name
+ */
+ if (! isset($GLOBALS['cfg']['NaviWidth'])
+ && isset($GLOBALS['cfg']['LeftWidth'])) {
+ $GLOBALS['cfg']['NaviWidth'] = $GLOBALS['cfg']['LeftWidth'];
+ }
+}
+
+if (! defined('PMA_MINIMUM_COMMON')) {
+ /**
+ * Character set conversion.
+ */
+ require_once './libraries/charset_conversion.lib.php';
+
+ /**
+ * String handling
+ */
+ require_once './libraries/string.lib.php';
+
+ /**
+ * Lookup server by name
+ * by Arnold - Helder Hosting
+ * (see FAQ 4.8)
+ */
+ if (! empty($_REQUEST['server']) && is_string($_REQUEST['server'])
+ && ! is_numeric($_REQUEST['server'])) {
+ foreach ($cfg['Servers'] as $i => $server) {
+ if ($server['host'] == $_REQUEST['server']) {
+ $_REQUEST['server'] = $i;
+ break;
+ }
+ }
+ if (is_string($_REQUEST['server'])) {
+ unset($_REQUEST['server']);
+ }
+ unset($i);
+ }
+
+ /**
+ * If no server is selected, make sure that $cfg['Server'] is empty (so
+ * that nothing will work), and skip server authentication.
+ * We do NOT exit here, but continue on without logging into any server.
+ * This way, the welcome page will still come up (with no server info) and
+ * present a choice of servers in the case that there are multiple servers
+ * and '$cfg['ServerDefault'] = 0' is set.
+ */
+
+ if (isset($_REQUEST['server']) && (is_string($_REQUEST['server']) || is_numeric($_REQUEST['server'])) && ! empty($_REQUEST['server']) && ! empty($cfg['Servers'][$_REQUEST['server']])) {
+ $GLOBALS['server'] = $_REQUEST['server'];
+ $cfg['Server'] = $cfg['Servers'][$GLOBALS['server']];
+ } else {
+ if (!empty($cfg['Servers'][$cfg['ServerDefault']])) {
+ $GLOBALS['server'] = $cfg['ServerDefault'];
+ $cfg['Server'] = $cfg['Servers'][$GLOBALS['server']];
+ } else {
+ $GLOBALS['server'] = 0;
+ $cfg['Server'] = array();
+ }
+ }
+ $GLOBALS['url_params']['server'] = $GLOBALS['server'];
+
+ /**
+ * Kanji encoding convert feature appended by Y.Kawada (2002/2/20)
+ */
+ if (function_exists('mb_convert_encoding')
+ && strpos($lang, 'ja-') !== false) {
+ require_once './libraries/kanji-encoding.lib.php';
+ /**
+ * enable multibyte string support
+ */
+ define('PMA_MULTIBYTE_ENCODING', 1);
+ } // end if
+
+ /**
+ * save some settings in cookies
+ * @todo should be done in PMA_Config
+ */
+ PMA_setCookie('pma_lang', $GLOBALS['lang']);
+ PMA_setCookie('pma_charset', $GLOBALS['convcharset']);
+ PMA_setCookie('pma_collation_connection', $GLOBALS['collation_connection']);
+
+ $_SESSION['PMA_Theme_Manager']->setThemeCookie();
+
+ if (! empty($cfg['Server'])) {
+
+ /**
+ * Loads the proper database interface for this server
+ */
+ require_once './libraries/database_interface.lib.php';
+
+ // Gets the authentication library that fits the $cfg['Server'] settings
+ // and run authentication
+
+ // to allow HTTP or http
+ $cfg['Server']['auth_type'] = strtolower($cfg['Server']['auth_type']);
+ if (! file_exists('./libraries/auth/' . $cfg['Server']['auth_type'] . '.auth.lib.php')) {
+ PMA_fatalError($strInvalidAuthMethod . ' ' . $cfg['Server']['auth_type']);
+ }
+ /**
+ * the required auth type plugin
+ */
+ require_once './libraries/auth/' . $cfg['Server']['auth_type'] . '.auth.lib.php';
+
+ if (!PMA_auth_check()) {
+ PMA_auth();
+ } else {
+ PMA_auth_set_user();
+ }
+
+ // Check IP-based Allow/Deny rules as soon as possible to reject the
+ // user
+ // Based on mod_access in Apache:
+ // http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/aaa/mod_access.c?rev=1.37&content-type=text/vnd.viewcvs-markup
+ // Look at: "static int check_dir_access(request_rec *r)"
+ // Robbat2 - May 10, 2002
+ if (isset($cfg['Server']['AllowDeny'])
+ && isset($cfg['Server']['AllowDeny']['order'])) {
+
+ /**
+ * ip based access library
+ */
+ require_once './libraries/ip_allow_deny.lib.php';
+
+ $allowDeny_forbidden = false; // default
+ if ($cfg['Server']['AllowDeny']['order'] == 'allow,deny') {
+ $allowDeny_forbidden = true;
+ if (PMA_allowDeny('allow')) {
+ $allowDeny_forbidden = false;
+ }
+ if (PMA_allowDeny('deny')) {
+ $allowDeny_forbidden = true;
+ }
+ } elseif ($cfg['Server']['AllowDeny']['order'] == 'deny,allow') {
+ if (PMA_allowDeny('deny')) {
+ $allowDeny_forbidden = true;
+ }
+ if (PMA_allowDeny('allow')) {
+ $allowDeny_forbidden = false;
+ }
+ } elseif ($cfg['Server']['AllowDeny']['order'] == 'explicit') {
+ if (PMA_allowDeny('allow')
+ && !PMA_allowDeny('deny')) {
+ $allowDeny_forbidden = false;
+ } else {
+ $allowDeny_forbidden = true;
+ }
+ } // end if ... elseif ... elseif
+
+ // Ejects the user if banished
+ if ($allowDeny_forbidden) {
+ PMA_auth_fails();
+ }
+ unset($allowDeny_forbidden); //Clean up after you!
+ } // end if
+
+ // is root allowed?
+ if (!$cfg['Server']['AllowRoot'] && $cfg['Server']['user'] == 'root') {
+ $allowDeny_forbidden = true;
+ PMA_auth_fails();
+ unset($allowDeny_forbidden); //Clean up after you!
+ }
+
+ // is root without password allowed?
+ if (!$cfg['Server']['AllowNoPasswordRoot'] && $cfg['Server']['user'] == 'root' && $cfg['Server']['password'] == '') {
+ $allowDeny_forbidden = true;
+ PMA_auth_fails();
+ unset($allowDeny_forbidden); //Clean up after you!
+ }
+
+ // Try to connect MySQL with the control user profile (will be used to
+ // get the privileges list for the current user but the true user link
+ // must be open after this one so it would be default one for all the
+ // scripts)
+ $controllink = false;
+ if ($cfg['Server']['controluser'] != '') {
+ $controllink = PMA_DBI_connect($cfg['Server']['controluser'],
+ $cfg['Server']['controlpass'], true);
+ }
+
+ // Connects to the server (validates user's login)
+ $userlink = PMA_DBI_connect($cfg['Server']['user'],
+ $cfg['Server']['password'], false);
+
+ if (! $controllink) {
+ $controllink = $userlink;
+ }
+
+ /**
+ * with phpMyAdmin 3 we support MySQL >=5
+ * but only production releases:
+ * - > 5.0.15
+ */
+ if (PMA_MYSQL_INT_VERSION < 50015) {
+ PMA_fatalError('strUpgrade', array('MySQL', '5.0.15'));
+ }
+
+ /**
+ * SQL Parser code
+ */
+ require_once './libraries/sqlparser.lib.php';
+
+ /**
+ * SQL Validator interface code
+ */
+ require_once './libraries/sqlvalidator.lib.php';
+
+ /**
+ * the PMA_List_Database class
+ */
+ require_once './libraries/PMA.php';
+ $pma = new PMA;
+ $pma->userlink = $userlink;
+ $pma->controllink = $controllink;
+
+ /**
+ * some resetting has to be done when switching servers
+ */
+ if (isset($_SESSION['userconf']['previous_server']) && $_SESSION['userconf']['previous_server'] != $GLOBALS['server']) {
+ unset($_SESSION['userconf']['navi_limit_offset']);
+ }
+ $_SESSION['userconf']['previous_server'] = $GLOBALS['server'];
+
+ } // end server connecting
+
+ /**
+ * check if profiling was requested and remember it
+ * (note: when $cfg['ServerDefault'] = 0, constant is not defined)
+ */
+ if (isset($_REQUEST['profiling']) && PMA_profilingSupported()) {
+ $_SESSION['profiling'] = true;
+ } elseif (isset($_REQUEST['profiling_form'])) {
+ // the checkbox was unchecked
+ unset($_SESSION['profiling']);
+ }
+
+ // rajk - library file for blobstreaming
+ require_once './libraries/blobstreaming.lib.php';
+
+ // rajk - checks for blobstreaming plugins and databases that support
+ // blobstreaming (by having the necessary tables for blobstreaming)
+ if (checkBLOBStreamingPlugins())
+ checkBLOBStreamableDatabases();
+} // end if !defined('PMA_MINIMUM_COMMON')
+
+// remove sensitive values from session
+$_SESSION['PMA_Config']->set('blowfish_secret', '');
+$_SESSION['PMA_Config']->set('Servers', '');
+$_SESSION['PMA_Config']->set('default_server', '');
+
+if (!empty($__redirect) && in_array($__redirect, $goto_whitelist)) {
+ /**
+ * include subform target page
+ */
+ require $__redirect;
+ exit();
+}
+?>
diff --git a/libraries/common.lib.php b/libraries/common.lib.php
new file mode 100644
index 0000000000..fe67a9f94d
--- /dev/null
+++ b/libraries/common.lib.php
@@ -0,0 +1,2664 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Misc functions used all over the scripts.
+ *
+ * @version $Id$
+ */
+
+/**
+ * Exponential expression / raise number into power
+ *
+ * @uses function_exists()
+ * @uses bcpow()
+ * @uses gmp_pow()
+ * @uses gmp_strval()
+ * @uses pow()
+ * @param number $base
+ * @param number $exp
+ * @param string pow function use, or false for auto-detect
+ * @return mixed string or float
+ */
+function PMA_pow($base, $exp, $use_function = false)
+{
+ static $pow_function = null;
+
+ if ($exp < 0) {
+ return false;
+ }
+
+ if (null == $pow_function) {
+ if (function_exists('bcpow')) {
+ // BCMath Arbitrary Precision Mathematics Function
+ $pow_function = 'bcpow';
+ } elseif (function_exists('gmp_pow')) {
+ // GMP Function
+ $pow_function = 'gmp_pow';
+ } else {
+ // PHP function
+ $pow_function = 'pow';
+ }
+ }
+
+ if (! $use_function) {
+ $use_function = $pow_function;
+ }
+
+ switch ($use_function) {
+ case 'bcpow' :
+ //bcscale(10);
+ $pow = bcpow($base, $exp);
+ break;
+ case 'gmp_pow' :
+ $pow = gmp_strval(gmp_pow($base, $exp));
+ break;
+ case 'pow' :
+ $base = (float) $base;
+ $exp = (int) $exp;
+ $pow = pow($base, $exp);
+ break;
+ default:
+ $pow = $use_function($base, $exp);
+ }
+
+ return $pow;
+}
+
+/**
+ * string PMA_getIcon(string $icon)
+ *
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['cfg']['PropertiesIconic']
+ * @uses htmlspecialchars()
+ * @param string $icon name of icon file
+ * @param string $alternate alternate text
+ * @param boolean $container include in container
+ * @param boolean $$force_text whether to force alternate text to be displayed
+ * @return html img tag
+ */
+function PMA_getIcon($icon, $alternate = '', $container = false, $force_text = false)
+{
+ $include_icon = false;
+ $include_text = false;
+ $include_box = false;
+ $alternate = htmlspecialchars($alternate);
+ $button = '';
+
+ if ($GLOBALS['cfg']['PropertiesIconic']) {
+ $include_icon = true;
+ }
+
+ if ($force_text
+ || ! (true === $GLOBALS['cfg']['PropertiesIconic'])
+ || ! $include_icon) {
+ // $cfg['PropertiesIconic'] is false or both
+ // OR we have no $include_icon
+ $include_text = true;
+ }
+
+ if ($include_text && $include_icon && $container) {
+ // we have icon, text and request for container
+ $include_box = true;
+ }
+
+ if ($include_box) {
+ $button .= '<div class="nowrap">';
+ }
+
+ if ($include_icon) {
+ $button .= '<img src="' . $GLOBALS['pmaThemeImage'] . $icon . '"'
+ . ' title="' . $alternate . '" alt="' . $alternate . '"'
+ . ' class="icon" width="16" height="16" />';
+ }
+
+ if ($include_icon && $include_text) {
+ $button .= ' ';
+ }
+
+ if ($include_text) {
+ $button .= $alternate;
+ }
+
+ if ($include_box) {
+ $button .= '</div>';
+ }
+
+ return $button;
+}
+
+/**
+ * Displays the maximum size for an upload
+ *
+ * @uses $GLOBALS['strMaximumSize']
+ * @uses PMA_formatByteDown()
+ * @uses sprintf()
+ * @param integer the size
+ *
+ * @return string the message
+ *
+ * @access public
+ */
+function PMA_displayMaximumUploadSize($max_upload_size)
+{
+ list($max_size, $max_unit) = PMA_formatByteDown($max_upload_size);
+ return '(' . sprintf($GLOBALS['strMaximumSize'], $max_size, $max_unit) . ')';
+}
+
+/**
+ * Generates a hidden field which should indicate to the browser
+ * the maximum size for upload
+ *
+ * @param integer the size
+ *
+ * @return string the INPUT field
+ *
+ * @access public
+ */
+ function PMA_generateHiddenMaxFileSize($max_size)
+ {
+ return '<input type="hidden" name="MAX_FILE_SIZE" value="' .$max_size . '" />';
+ }
+
+/**
+ * Add slashes before "'" and "\" characters so a value containing them can
+ * be used in a sql comparison.
+ *
+ * @uses str_replace()
+ * @param string the string to slash
+ * @param boolean whether the string will be used in a 'LIKE' clause
+ * (it then requires two more escaped sequences) or not
+ * @param boolean whether to treat cr/lfs as escape-worthy entities
+ * (converts \n to \\n, \r to \\r)
+ *
+ * @param boolean whether this function is used as part of the
+ * "Create PHP code" dialog
+ *
+ * @return string the slashed string
+ *
+ * @access public
+ */
+function PMA_sqlAddslashes($a_string = '', $is_like = false, $crlf = false, $php_code = false)
+{
+ if ($is_like) {
+ $a_string = str_replace('\\', '\\\\\\\\', $a_string);
+ } else {
+ $a_string = str_replace('\\', '\\\\', $a_string);
+ }
+
+ if ($crlf) {
+ $a_string = str_replace("\n", '\n', $a_string);
+ $a_string = str_replace("\r", '\r', $a_string);
+ $a_string = str_replace("\t", '\t', $a_string);
+ }
+
+ if ($php_code) {
+ $a_string = str_replace('\'', '\\\'', $a_string);
+ } else {
+ $a_string = str_replace('\'', '\'\'', $a_string);
+ }
+
+ return $a_string;
+} // end of the 'PMA_sqlAddslashes()' function
+
+
+/**
+ * Add slashes before "_" and "%" characters for using them in MySQL
+ * database, table and field names.
+ * Note: This function does not escape backslashes!
+ *
+ * @uses str_replace()
+ * @param string the string to escape
+ *
+ * @return string the escaped string
+ *
+ * @access public
+ */
+function PMA_escape_mysql_wildcards($name)
+{
+ $name = str_replace('_', '\\_', $name);
+ $name = str_replace('%', '\\%', $name);
+
+ return $name;
+} // end of the 'PMA_escape_mysql_wildcards()' function
+
+/**
+ * removes slashes before "_" and "%" characters
+ * Note: This function does not unescape backslashes!
+ *
+ * @uses str_replace()
+ * @param string $name the string to escape
+ * @return string the escaped string
+ * @access public
+ */
+function PMA_unescape_mysql_wildcards($name)
+{
+ $name = str_replace('\\_', '_', $name);
+ $name = str_replace('\\%', '%', $name);
+
+ return $name;
+} // end of the 'PMA_unescape_mysql_wildcards()' function
+
+/**
+ * removes quotes (',",`) from a quoted string
+ *
+ * checks if the sting is quoted and removes this quotes
+ *
+ * @uses str_replace()
+ * @uses substr()
+ * @param string $quoted_string string to remove quotes from
+ * @param string $quote type of quote to remove
+ * @return string unqoted string
+ */
+function PMA_unQuote($quoted_string, $quote = null)
+{
+ $quotes = array();
+
+ if (null === $quote) {
+ $quotes[] = '`';
+ $quotes[] = '"';
+ $quotes[] = "'";
+ } else {
+ $quotes[] = $quote;
+ }
+
+ foreach ($quotes as $quote) {
+ if (substr($quoted_string, 0, 1) === $quote
+ && substr($quoted_string, -1, 1) === $quote) {
+ $unquoted_string = substr($quoted_string, 1, -1);
+ // replace escaped quotes
+ $unquoted_string = str_replace($quote . $quote, $quote, $unquoted_string);
+ return $unquoted_string;
+ }
+ }
+
+ return $quoted_string;
+}
+
+/**
+ * format sql strings
+ *
+ * @todo move into PMA_Sql
+ * @uses PMA_SQP_isError()
+ * @uses PMA_SQP_formatHtml()
+ * @uses PMA_SQP_formatNone()
+ * @uses is_array()
+ * @param mixed pre-parsed SQL structure
+ *
+ * @return string the formatted sql
+ *
+ * @global array the configuration array
+ * @global boolean whether the current statement is a multiple one or not
+ *
+ * @access public
+ *
+ * @author Robin Johnson <robbat2@users.sourceforge.net>
+ */
+function PMA_formatSql($parsed_sql, $unparsed_sql = '')
+{
+ global $cfg;
+
+ // Check that we actually have a valid set of parsed data
+ // well, not quite
+ // first check for the SQL parser having hit an error
+ if (PMA_SQP_isError()) {
+ return $parsed_sql;
+ }
+ // then check for an array
+ if (!is_array($parsed_sql)) {
+ // We don't so just return the input directly
+ // This is intended to be used for when the SQL Parser is turned off
+ $formatted_sql = '<pre>' . "\n"
+ . (($cfg['SQP']['fmtType'] == 'none' && $unparsed_sql != '') ? $unparsed_sql : $parsed_sql) . "\n"
+ . '</pre>';
+ return $formatted_sql;
+ }
+
+ $formatted_sql = '';
+
+ switch ($cfg['SQP']['fmtType']) {
+ case 'none':
+ if ($unparsed_sql != '') {
+ $formatted_sql = "<pre>\n" . PMA_SQP_formatNone(array('raw' => $unparsed_sql)) . "\n</pre>";
+ } else {
+ $formatted_sql = PMA_SQP_formatNone($parsed_sql);
+ }
+ break;
+ case 'html':
+ $formatted_sql = PMA_SQP_formatHtml($parsed_sql, 'color');
+ break;
+ case 'text':
+ //$formatted_sql = PMA_SQP_formatText($parsed_sql);
+ $formatted_sql = PMA_SQP_formatHtml($parsed_sql, 'text');
+ break;
+ default:
+ break;
+ } // end switch
+
+ return $formatted_sql;
+} // end of the "PMA_formatSql()" function
+
+
+/**
+ * Displays a link to the official MySQL documentation
+ *
+ * @uses $cfg['MySQLManualType']
+ * @uses $cfg['MySQLManualBase']
+ * @uses $cfg['ReplaceHelpImg']
+ * @uses $GLOBALS['mysql_4_1_doc_lang']
+ * @uses $GLOBALS['mysql_5_1_doc_lang']
+ * @uses $GLOBALS['mysql_5_0_doc_lang']
+ * @uses $GLOBALS['strDocu']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses PMA_MYSQL_INT_VERSION
+ * @uses strtolower()
+ * @uses str_replace()
+ * @param string chapter of "HTML, one page per chapter" documentation
+ * @param string contains name of page/anchor that is being linked
+ * @param bool whether to use big icon (like in left frame)
+ * @param string anchor to page part
+ *
+ * @return string the html link
+ *
+ * @access public
+ */
+function PMA_showMySQLDocu($chapter, $link, $big_icon = false, $anchor = '')
+{
+ global $cfg;
+
+ if ($cfg['MySQLManualType'] == 'none' || empty($cfg['MySQLManualBase'])) {
+ return '';
+ }
+
+ // Fixup for newly used names:
+ $chapter = str_replace('_', '-', strtolower($chapter));
+ $link = str_replace('_', '-', strtolower($link));
+
+ switch ($cfg['MySQLManualType']) {
+ case 'chapters':
+ if (empty($chapter)) {
+ $chapter = 'index';
+ }
+ if (empty($anchor)) {
+ $anchor = $link;
+ }
+ $url = $cfg['MySQLManualBase'] . '/' . $chapter . '.html#' . $anchor;
+ break;
+ case 'big':
+ if (empty($anchor)) {
+ $anchor = $link;
+ }
+ $url = $cfg['MySQLManualBase'] . '#' . $anchor;
+ break;
+ case 'searchable':
+ if (empty($link)) {
+ $link = 'index';
+ }
+ $url = $cfg['MySQLManualBase'] . '/' . $link . '.html';
+ if (!empty($anchor)) {
+ $url .= '#' . $anchor;
+ }
+ break;
+ case 'viewable':
+ default:
+ if (empty($link)) {
+ $link = 'index';
+ }
+ $mysql = '5.0';
+ $lang = 'en';
+ if (defined('PMA_MYSQL_INT_VERSION')) {
+ if (PMA_MYSQL_INT_VERSION >= 50100) {
+ $mysql = '5.1';
+ if (!empty($GLOBALS['mysql_5_1_doc_lang'])) {
+ $lang = $GLOBALS['mysql_5_1_doc_lang'];
+ }
+ } elseif (PMA_MYSQL_INT_VERSION >= 50000) {
+ $mysql = '5.0';
+ if (!empty($GLOBALS['mysql_5_0_doc_lang'])) {
+ $lang = $GLOBALS['mysql_5_0_doc_lang'];
+ }
+ }
+ }
+ $url = $cfg['MySQLManualBase'] . '/' . $mysql . '/' . $lang . '/' . $link . '.html';
+ if (!empty($anchor)) {
+ $url .= '#' . $anchor;
+ }
+ break;
+ }
+
+ if ($big_icon) {
+ return '<a href="' . $url . '" target="mysql_doc"><img class="icon" src="' . $GLOBALS['pmaThemeImage'] . 'b_sqlhelp.png" width="16" height="16" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" /></a>';
+ } elseif ($GLOBALS['cfg']['ReplaceHelpImg']) {
+ return '<a href="' . $url . '" target="mysql_doc"><img class="icon" src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png" width="11" height="11" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" /></a>';
+ } else {
+ return '[<a href="' . $url . '" target="mysql_doc">' . $GLOBALS['strDocu'] . '</a>]';
+ }
+} // end of the 'PMA_showMySQLDocu()' function
+
+/**
+ * returns HTML for a footnote marker and add the messsage to the footnotes
+ *
+ * @uses $GLOBALS['footnotes']
+ * @param string the error message
+ * @return string html code for a footnote marker
+ * @access public
+ */
+function PMA_showHint($message, $bbcode = false, $type = 'notice')
+{
+ if ($message instanceof PMA_Message) {
+ $key = $message->getHash();
+ $type = $message->getLevel();
+ } else {
+ $key = md5($message);
+ }
+
+ if (! isset($GLOBALS['footnotes'][$key])) {
+ $nr = count($GLOBALS['footnotes']) + 1;
+ // this is the first instance of this message
+ $instance = 1;
+ $GLOBALS['footnotes'][$key] = array(
+ 'note' => $message,
+ 'type' => $type,
+ 'nr' => $nr,
+ 'instance' => $instance
+ );
+ } else {
+ $nr = $GLOBALS['footnotes'][$key]['nr'];
+ // another instance of this message (to ensure ids are unique)
+ $instance = ++$GLOBALS['footnotes'][$key]['instance'];
+ }
+
+ if ($bbcode) {
+ return '[sup]' . $nr . '[/sup]';
+ }
+
+ // footnotemarker used in js/tooltip.js
+ return '<sup class="footnotemarker" id="footnote_sup_' . $nr . '_' . $instance . '">' . $nr . '</sup>';
+}
+
+/**
+ * Displays a MySQL error message in the right frame.
+ *
+ * @uses footer.inc.php
+ * @uses header.inc.php
+ * @uses $GLOBALS['sql_query']
+ * @uses $GLOBALS['strError']
+ * @uses $GLOBALS['strSQLQuery']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['strEdit']
+ * @uses $GLOBALS['strMySQLSaid']
+ * @uses $GLOBALS['cfg']['PropertiesIconic']
+ * @uses $GLOBALS['cfg']['MaxCharactersInDisplayedSQL']
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_getError()
+ * @uses PMA_formatSql()
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_showMySQLDocu()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_SQP_isError()
+ * @uses PMA_SQP_parse()
+ * @uses PMA_SQP_getErrorString()
+ * @uses strtolower()
+ * @uses urlencode()
+ * @uses str_replace()
+ * @uses nl2br()
+ * @uses substr()
+ * @uses preg_replace()
+ * @uses preg_match()
+ * @uses explode()
+ * @uses implode()
+ * @uses is_array()
+ * @uses function_exists()
+ * @uses htmlspecialchars()
+ * @uses trim()
+ * @uses strstr()
+ * @param string the error message
+ * @param string the sql query that failed
+ * @param boolean whether to show a "modify" link or not
+ * @param string the "back" link url (full path is not required)
+ * @param boolean EXIT the page?
+ *
+ * @global string the curent table
+ * @global string the current db
+ *
+ * @access public
+ */
+function PMA_mysqlDie($error_message = '', $the_query = '',
+ $is_modify_link = true, $back_url = '', $exit = true)
+{
+ global $table, $db;
+
+ /**
+ * start http output, display html headers
+ */
+ require_once './libraries/header.inc.php';
+
+ if (!$error_message) {
+ $error_message = PMA_DBI_getError();
+ }
+ if (!$the_query && !empty($GLOBALS['sql_query'])) {
+ $the_query = $GLOBALS['sql_query'];
+ }
+
+ // --- Added to solve bug #641765
+ // Robbat2 - 12 January 2003, 9:46PM
+ // Revised, Robbat2 - 13 January 2003, 2:59PM
+ if (!function_exists('PMA_SQP_isError') || PMA_SQP_isError()) {
+ $formatted_sql = htmlspecialchars($the_query);
+ } elseif (empty($the_query) || trim($the_query) == '') {
+ $formatted_sql = '';
+ } else {
+ if (strlen($the_query) > $GLOBALS['cfg']['MaxCharactersInDisplayedSQL']) {
+ $formatted_sql = substr($the_query, 0, $GLOBALS['cfg']['MaxCharactersInDisplayedSQL']) . '[...]';
+ } else {
+ $formatted_sql = PMA_formatSql(PMA_SQP_parse($the_query), $the_query);
+ }
+ }
+ // ---
+ echo "\n" . '<!-- PMA-SQL-ERROR -->' . "\n";
+ echo ' <div class="error"><h1>' . $GLOBALS['strError'] . '</h1>' . "\n";
+ // if the config password is wrong, or the MySQL server does not
+ // respond, do not show the query that would reveal the
+ // username/password
+ if (!empty($the_query) && !strstr($the_query, 'connect')) {
+ // --- Added to solve bug #641765
+ // Robbat2 - 12 January 2003, 9:46PM
+ // Revised, Robbat2 - 13 January 2003, 2:59PM
+ if (function_exists('PMA_SQP_isError') && PMA_SQP_isError()) {
+ echo PMA_SQP_getErrorString() . "\n";
+ echo '<br />' . "\n";
+ }
+ // ---
+ // modified to show me the help on sql errors (Michael Keck)
+ echo ' <p><strong>' . $GLOBALS['strSQLQuery'] . ':</strong>' . "\n";
+ if (strstr(strtolower($formatted_sql), 'select')) { // please show me help to the error on select
+ echo PMA_showMySQLDocu('SQL-Syntax', 'SELECT');
+ }
+ if ($is_modify_link) {
+ $_url_params = array(
+ 'sql_query' => $the_query,
+ 'show_query' => 1,
+ );
+ if (strlen($table)) {
+ $_url_params['db'] = $db;
+ $_url_params['table'] = $table;
+ $doedit_goto = '<a href="tbl_sql.php?' . PMA_generate_common_url($_url_params) . '">';
+ } elseif (strlen($db)) {
+ $_url_params['db'] = $db;
+ $doedit_goto = '<a href="db_sql.php?' . PMA_generate_common_url($_url_params) . '">';
+ } else {
+ $doedit_goto = '<a href="server_sql.php?' . PMA_generate_common_url($_url_params) . '">';
+ }
+
+ echo $doedit_goto
+ . PMA_getIcon('b_edit.png', $GLOBALS['strEdit'])
+ . '</a>';
+ } // end if
+ echo ' </p>' . "\n"
+ .' <p>' . "\n"
+ .' ' . $formatted_sql . "\n"
+ .' </p>' . "\n";
+ } // end if
+
+ $tmp_mysql_error = ''; // for saving the original $error_message
+ if (!empty($error_message)) {
+ $tmp_mysql_error = strtolower($error_message); // save the original $error_message
+ $error_message = htmlspecialchars($error_message);
+ $error_message = preg_replace("@((\015\012)|(\015)|(\012)){3,}@", "\n\n", $error_message);
+ }
+ // modified to show me the help on error-returns (Michael Keck)
+ // (now error-messages-server)
+ echo '<p>' . "\n"
+ . ' <strong>' . $GLOBALS['strMySQLSaid'] . '</strong>'
+ . PMA_showMySQLDocu('Error-messages-server', 'Error-messages-server')
+ . "\n"
+ . '</p>' . "\n";
+
+ // The error message will be displayed within a CODE segment.
+ // To preserve original formatting, but allow wordwrapping, we do a couple of replacements
+
+ // Replace all non-single blanks with their HTML-counterpart
+ $error_message = str_replace(' ', '&nbsp;&nbsp;', $error_message);
+ // Replace TAB-characters with their HTML-counterpart
+ $error_message = str_replace("\t", '&nbsp;&nbsp;&nbsp;&nbsp;', $error_message);
+ // Replace linebreaks
+ $error_message = nl2br($error_message);
+
+ echo '<code>' . "\n"
+ . $error_message . "\n"
+ . '</code><br />' . "\n";
+ echo '</div>';
+
+ if ($exit) {
+ if (! empty($back_url)) {
+ if (strstr($back_url, '?')) {
+ $back_url .= '&amp;no_history=true';
+ } else {
+ $back_url .= '?no_history=true';
+ }
+ echo '<fieldset class="tblFooters">';
+ echo '[ <a href="' . $back_url . '">' . $GLOBALS['strBack'] . '</a> ]';
+ echo '</fieldset>' . "\n\n";
+ }
+ /**
+ * display footer and exit
+ */
+ require_once './libraries/footer.inc.php';
+ }
+} // end of the 'PMA_mysqlDie()' function
+
+/**
+ * Send HTTP header, taking IIS limits into account (600 seems ok)
+ *
+ * @uses PMA_IS_IIS
+ * @uses PMA_COMING_FROM_COOKIE_LOGIN
+ * @uses PMA_get_arg_separator()
+ * @uses SID
+ * @uses strlen()
+ * @uses strpos()
+ * @uses header()
+ * @uses session_write_close()
+ * @uses headers_sent()
+ * @uses function_exists()
+ * @uses debug_print_backtrace()
+ * @uses trigger_error()
+ * @uses defined()
+ * @param string $uri the header to send
+ * @return boolean always true
+ */
+function PMA_sendHeaderLocation($uri)
+{
+ if (PMA_IS_IIS && strlen($uri) > 600) {
+
+ echo '<html><head><title>- - -</title>' . "\n";
+ echo '<meta http-equiv="expires" content="0">' . "\n";
+ echo '<meta http-equiv="Pragma" content="no-cache">' . "\n";
+ echo '<meta http-equiv="Cache-Control" content="no-cache">' . "\n";
+ echo '<meta http-equiv="Refresh" content="0;url=' .$uri . '">' . "\n";
+ echo '<script type="text/javascript">' . "\n";
+ echo '//<![CDATA[' . "\n";
+ echo 'setTimeout("window.location = unescape(\'"' . $uri . '"\')", 2000);' . "\n";
+ echo '//]]>' . "\n";
+ echo '</script>' . "\n";
+ echo '</head>' . "\n";
+ echo '<body>' . "\n";
+ echo '<script type="text/javascript">' . "\n";
+ echo '//<![CDATA[' . "\n";
+ echo 'document.write(\'<p><a href="' . $uri . '">' . $GLOBALS['strGo'] . '</a></p>\');' . "\n";
+ echo '//]]>' . "\n";
+ echo '</script></body></html>' . "\n";
+
+ } else {
+ if (SID) {
+ if (strpos($uri, '?') === false) {
+ header('Location: ' . $uri . '?' . SID);
+ } else {
+ $separator = PMA_get_arg_separator();
+ header('Location: ' . $uri . $separator . SID);
+ }
+ } else {
+ session_write_close();
+ if (headers_sent()) {
+ if (function_exists('debug_print_backtrace')) {
+ echo '<pre>';
+ debug_print_backtrace();
+ echo '</pre>';
+ }
+ trigger_error('PMA_sendHeaderLocation called when headers are already sent!', E_USER_ERROR);
+ }
+ // bug #1523784: IE6 does not like 'Refresh: 0', it
+ // results in a blank page
+ // but we need it when coming from the cookie login panel)
+ if (PMA_IS_IIS && defined('PMA_COMING_FROM_COOKIE_LOGIN')) {
+ header('Refresh: 0; ' . $uri);
+ } else {
+ header('Location: ' . $uri);
+ }
+ }
+ }
+}
+
+/**
+ * returns array with tables of given db with extended information and grouped
+ *
+ * @uses $cfg['LeftFrameTableSeparator']
+ * @uses $cfg['LeftFrameTableLevel']
+ * @uses $cfg['ShowTooltipAliasTB']
+ * @uses $cfg['NaturalOrder']
+ * @uses PMA_backquote()
+ * @uses count()
+ * @uses array_merge
+ * @uses uksort()
+ * @uses strstr()
+ * @uses explode()
+ * @param string $db name of db
+ * @param string $tables name of tables
+ * @param integer $limit_offset list offset
+ * @param integer $limit_count max tables to return
+ * return array (recursive) grouped table list
+ */
+function PMA_getTableList($db, $tables = null, $limit_offset = 0, $limit_count = false)
+{
+ $sep = $GLOBALS['cfg']['LeftFrameTableSeparator'];
+
+ if (null === $tables) {
+ $tables = PMA_DBI_get_tables_full($db, false, false, null, $limit_offset, $limit_count);
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ uksort($tables, 'strnatcasecmp');
+ }
+ }
+
+ if (count($tables) < 1) {
+ return $tables;
+ }
+
+ $default = array(
+ 'Name' => '',
+ 'Rows' => 0,
+ 'Comment' => '',
+ 'disp_name' => '',
+ );
+
+ $table_groups = array();
+
+ // for blobstreaming - list of blobstreaming tables - rajk
+
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if PMA configuration exists
+ if (!empty($PMA_Config))
+ $session_bs_tables = $_SESSION['PMA_Config']->get('BLOBSTREAMING_TABLES');
+
+ foreach ($tables as $table_name => $table) {
+ // if BS tables exist
+ if (isset($session_bs_tables))
+ // compare table name to tables in list of blobstreaming tables
+ foreach ($session_bs_tables as $table_key=>$table_val)
+ // if table is in list, skip outer foreach loop
+ if ($table_name == $table_key)
+ continue 2;
+
+ // check for correct row count
+ if (null === $table['Rows']) {
+ // Do not check exact row count here,
+ // if row count is invalid possibly the table is defect
+ // and this would break left frame;
+ // but we can check row count if this is a view,
+ // since PMA_Table::countRecords() returns a limited row count
+ // in this case.
+
+ // set this because PMA_Table::countRecords() can use it
+ $tbl_is_view = PMA_Table::isView($db, $table['Name']);
+
+ if ($tbl_is_view) {
+ $table['Rows'] = PMA_Table::countRecords($db, $table['Name'],
+ $return = true);
+ }
+ }
+
+ // in $group we save the reference to the place in $table_groups
+ // where to store the table info
+ if ($GLOBALS['cfg']['LeftFrameDBTree']
+ && $sep && strstr($table_name, $sep))
+ {
+ $parts = explode($sep, $table_name);
+
+ $group =& $table_groups;
+ $i = 0;
+ $group_name_full = '';
+ while ($i < count($parts) - 1
+ && $i < $GLOBALS['cfg']['LeftFrameTableLevel']) {
+ $group_name = $parts[$i] . $sep;
+ $group_name_full .= $group_name;
+
+ if (!isset($group[$group_name])) {
+ $group[$group_name] = array();
+ $group[$group_name]['is' . $sep . 'group'] = true;
+ $group[$group_name]['tab' . $sep . 'count'] = 1;
+ $group[$group_name]['tab' . $sep . 'group'] = $group_name_full;
+ } elseif (!isset($group[$group_name]['is' . $sep . 'group'])) {
+ $table = $group[$group_name];
+ $group[$group_name] = array();
+ $group[$group_name][$group_name] = $table;
+ unset($table);
+ $group[$group_name]['is' . $sep . 'group'] = true;
+ $group[$group_name]['tab' . $sep . 'count'] = 1;
+ $group[$group_name]['tab' . $sep . 'group'] = $group_name_full;
+ } else {
+ $group[$group_name]['tab' . $sep . 'count']++;
+ }
+ $group =& $group[$group_name];
+ $i++;
+ }
+ } else {
+ if (!isset($table_groups[$table_name])) {
+ $table_groups[$table_name] = array();
+ }
+ $group =& $table_groups;
+ }
+
+
+ if ($GLOBALS['cfg']['ShowTooltipAliasTB']
+ && $GLOBALS['cfg']['ShowTooltipAliasTB'] !== 'nested') {
+ // switch tooltip and name
+ $table['Comment'] = $table['Name'];
+ $table['disp_name'] = $table['Comment'];
+ } else {
+ $table['disp_name'] = $table['Name'];
+ }
+
+ $group[$table_name] = array_merge($default, $table);
+ }
+
+ return $table_groups;
+}
+
+/* ----------------------- Set of misc functions ----------------------- */
+
+
+/**
+ * Adds backquotes on both sides of a database, table or field name.
+ * and escapes backquotes inside the name with another backquote
+ *
+ * example:
+ * <code>
+ * echo PMA_backquote('owner`s db'); // `owner``s db`
+ *
+ * </code>
+ *
+ * @uses PMA_backquote()
+ * @uses is_array()
+ * @uses strlen()
+ * @uses str_replace()
+ * @param mixed $a_name the database, table or field name to "backquote"
+ * or array of it
+ * @param boolean $do_it a flag to bypass this function (used by dump
+ * functions)
+ * @return mixed the "backquoted" database, table or field name if the
+ * current MySQL release is >= 3.23.6, the original one
+ * else
+ * @access public
+ */
+function PMA_backquote($a_name, $do_it = true)
+{
+ if (! $do_it) {
+ return $a_name;
+ }
+
+ if (is_array($a_name)) {
+ $result = array();
+ foreach ($a_name as $key => $val) {
+ $result[$key] = PMA_backquote($val);
+ }
+ return $result;
+ }
+
+ // '0' is also empty for php :-(
+ if (strlen($a_name) && $a_name !== '*') {
+ return '`' . str_replace('`', '``', $a_name) . '`';
+ } else {
+ return $a_name;
+ }
+} // end of the 'PMA_backquote()' function
+
+
+/**
+ * Defines the <CR><LF> value depending on the user OS.
+ *
+ * @uses PMA_USR_OS
+ * @return string the <CR><LF> value to use
+ *
+ * @access public
+ */
+function PMA_whichCrlf()
+{
+ $the_crlf = "\n";
+
+ // The 'PMA_USR_OS' constant is defined in "./libraries/Config.class.php"
+ // Win case
+ if (PMA_USR_OS == 'Win') {
+ $the_crlf = "\r\n";
+ }
+ // Others
+ else {
+ $the_crlf = "\n";
+ }
+
+ return $the_crlf;
+} // end of the 'PMA_whichCrlf()' function
+
+/**
+ * Reloads navigation if needed.
+ *
+ * @uses $GLOBALS['reload']
+ * @uses $GLOBALS['db']
+ * @uses PMA_generate_common_url()
+ * @global array configuration
+ *
+ * @access public
+ */
+function PMA_reloadNavigation()
+{
+ global $cfg;
+
+ // Reloads the navigation frame via JavaScript if required
+ if (isset($GLOBALS['reload']) && $GLOBALS['reload']) {
+ // one of the reasons for a reload is when a table is dropped
+ // in this case, get rid of the table limit offset, otherwise
+ // we have a problem when dropping a table on the last page
+ // and the offset becomes greater than the total number of tables
+ unset($_SESSION['userconf']['table_limit_offset']);
+ echo "\n";
+ $reload_url = './navigation.php?' . PMA_generate_common_url($GLOBALS['db'], '', '&');
+ ?>
+<script type="text/javascript">
+//<![CDATA[
+if (typeof(window.parent) != 'undefined'
+ && typeof(window.parent.frame_navigation) != 'undefined'
+ && window.parent.goTo) {
+ window.parent.goTo('<?php echo $reload_url; ?>');
+}
+//]]>
+</script>
+ <?php
+ unset($GLOBALS['reload']);
+ }
+}
+
+/**
+ * displays the message and the query
+ * usually the message is the result of the query executed
+ *
+ * @param string $message the message to display
+ * @param string $sql_query the query to display
+ * @param string $type the type (level) of the message
+ * @global array the configuration array
+ * @uses $cfg
+ * @access public
+ */
+function PMA_showMessage($message, $sql_query = null, $type = 'notice')
+{
+ global $cfg;
+
+ if (null === $sql_query) {
+ if (! empty($GLOBALS['display_query'])) {
+ $sql_query = $GLOBALS['display_query'];
+ } elseif ($cfg['SQP']['fmtType'] == 'none' && ! empty($GLOBALS['unparsed_sql'])) {
+ $sql_query = $GLOBALS['unparsed_sql'];
+ } elseif (! empty($GLOBALS['sql_query'])) {
+ $sql_query = $GLOBALS['sql_query'];
+ } else {
+ $sql_query = '';
+ }
+ }
+
+ // Corrects the tooltip text via JS if required
+ // @todo this is REALLY the wrong place to do this - very unexpected here
+ if (strlen($GLOBALS['table']) && $cfg['ShowTooltip']) {
+ $tooltip = PMA_Table::sGetToolTip($GLOBALS['db'], $GLOBALS['table']);
+ $uni_tbl = PMA_jsFormat($GLOBALS['db'] . '.' . $GLOBALS['table'], false);
+ echo "\n";
+ echo '<script type="text/javascript">' . "\n";
+ echo '//<![CDATA[' . "\n";
+ echo "if (window.parent.updateTableTitle) window.parent.updateTableTitle('" . $uni_tbl . "', '" . PMA_jsFormat($tooltip, false) . "');" . "\n";
+ echo '//]]>' . "\n";
+ echo '</script>' . "\n";
+ } // end if ... elseif
+
+ // Checks if the table needs to be repaired after a TRUNCATE query.
+ // @todo what about $GLOBALS['display_query']???
+ // @todo this is REALLY the wrong place to do this - very unexpected here
+ if (strlen($GLOBALS['table'])
+ && $GLOBALS['sql_query'] == 'TRUNCATE TABLE ' . PMA_backquote($GLOBALS['table'])) {
+ if (PMA_Table::sGetStatusInfo($GLOBALS['db'], $GLOBALS['table'], 'Index_length') > 1024) {
+ PMA_DBI_try_query('REPAIR TABLE ' . PMA_backquote($GLOBALS['table']));
+ }
+ }
+ unset($tbl_status);
+
+ echo '<div align="' . $GLOBALS['cell_align_left'] . '">' . "\n";
+
+ if ($message instanceof PMA_Message) {
+ $message->display();
+ $type = $message->getLevel();
+ } else {
+ echo '<div class="' . $type . '">';
+ echo PMA_sanitize($message);
+ if (isset($GLOBALS['special_message'])) {
+ echo PMA_sanitize($GLOBALS['special_message']);
+ unset($GLOBALS['special_message']);
+ }
+ echo '</div>';
+ }
+
+ if ($cfg['ShowSQL'] == true && ! empty($sql_query)) {
+ // Html format the query to be displayed
+ // If we want to show some sql code it is easiest to create it here
+ /* SQL-Parser-Analyzer */
+
+ if (! empty($GLOBALS['show_as_php'])) {
+ $new_line = '\\n"<br />' . "\n"
+ . '&nbsp;&nbsp;&nbsp;&nbsp;. "';
+ $query_base = htmlspecialchars(addslashes($sql_query));
+ $query_base = preg_replace('/((\015\012)|(\015)|(\012))/', $new_line, $query_base);
+ } else {
+ $query_base = $sql_query;
+ }
+
+ $query_too_big = false;
+
+ if (strlen($query_base) > $cfg['MaxCharactersInDisplayedSQL']) {
+ // when the query is large (for example an INSERT of binary
+ // data), the parser chokes; so avoid parsing the query
+ $query_too_big = true;
+ $shortened_query_base = nl2br(htmlspecialchars(substr($sql_query, 0, $cfg['MaxCharactersInDisplayedSQL']) . '[...]'));
+ } elseif (! empty($GLOBALS['parsed_sql'])
+ && $query_base == $GLOBALS['parsed_sql']['raw']) {
+ // (here, use "! empty" because when deleting a bookmark,
+ // $GLOBALS['parsed_sql'] is set but empty
+ $parsed_sql = $GLOBALS['parsed_sql'];
+ } else {
+ // Parse SQL if needed
+ $parsed_sql = PMA_SQP_parse($query_base);
+ }
+
+ // Analyze it
+ if (isset($parsed_sql)) {
+ $analyzed_display_query = PMA_SQP_analyze($parsed_sql);
+ // Here we append the LIMIT added for navigation, to
+ // enable its display. Adding it higher in the code
+ // to $sql_query would create a problem when
+ // using the Refresh or Edit links.
+
+ // Only append it on SELECTs.
+
+ /**
+ * @todo what would be the best to do when someone hits Refresh:
+ * use the current LIMITs ?
+ */
+
+ if (isset($analyzed_display_query[0]['queryflags']['select_from'])
+ && isset($GLOBALS['sql_limit_to_append'])) {
+ $query_base = $analyzed_display_query[0]['section_before_limit']
+ . "\n" . $GLOBALS['sql_limit_to_append']
+ . $analyzed_display_query[0]['section_after_limit'];
+ // Need to reparse query
+ $parsed_sql = PMA_SQP_parse($query_base);
+ }
+ }
+
+ if (! empty($GLOBALS['show_as_php'])) {
+ $query_base = '$sql = "' . $query_base;
+ } elseif (! empty($GLOBALS['validatequery'])) {
+ $query_base = PMA_validateSQL($query_base);
+ } elseif (isset($parsed_sql)) {
+ $query_base = PMA_formatSql($parsed_sql, $query_base);
+ }
+
+ // Prepares links that may be displayed to edit/explain the query
+ // (don't go to default pages, we must go to the page
+ // where the query box is available)
+
+ // Basic url query part
+ $url_params = array();
+ if (strlen($GLOBALS['db'])) {
+ $url_params['db'] = $GLOBALS['db'];
+ if (strlen($GLOBALS['table'])) {
+ $url_params['table'] = $GLOBALS['table'];
+ $edit_link = 'tbl_sql.php';
+ } else {
+ $edit_link = 'db_sql.php';
+ }
+ } else {
+ $edit_link = 'server_sql.php';
+ }
+
+ // Want to have the query explained (Mike Beck 2002-05-22)
+ // but only explain a SELECT (that has not been explained)
+ /* SQL-Parser-Analyzer */
+ $explain_link = '';
+ if (! empty($cfg['SQLQuery']['Explain']) && ! $query_too_big) {
+ $explain_params = $url_params;
+ // Detect if we are validating as well
+ // To preserve the validate uRL data
+ if (! empty($GLOBALS['validatequery'])) {
+ $explain_params['validatequery'] = 1;
+ }
+
+ if (preg_match('@^SELECT[[:space:]]+@i', $sql_query)) {
+ $explain_params['sql_query'] = 'EXPLAIN ' . $sql_query;
+ $_message = $GLOBALS['strExplain'];
+ } elseif (preg_match('@^EXPLAIN[[:space:]]+SELECT[[:space:]]+@i', $sql_query)) {
+ $explain_params['sql_query'] = substr($sql_query, 8);
+ $_message = $GLOBALS['strNoExplain'];
+ }
+ if (isset($explain_params['sql_query'])) {
+ $explain_link = 'import.php' . PMA_generate_common_url($explain_params);
+ $explain_link = ' [' . PMA_linkOrButton($explain_link, $_message) . ']';
+ }
+ } //show explain
+
+ $url_params['sql_query'] = $sql_query;
+ $url_params['show_query'] = 1;
+
+ if (! empty($cfg['SQLQuery']['Edit']) && ! $query_too_big) {
+ if ($cfg['EditInWindow'] == true) {
+ $onclick = 'window.parent.focus_querywindow(\'' . PMA_jsFormat($sql_query, false) . '\'); return false;';
+ } else {
+ $onclick = '';
+ }
+
+ $edit_link .= PMA_generate_common_url($url_params) . '#querybox';
+ $edit_link = ' [' . PMA_linkOrButton($edit_link, $GLOBALS['strEdit'], array('onclick' => $onclick)) . ']';
+ } else {
+ $edit_link = '';
+ }
+
+ $url_qpart = PMA_generate_common_url($url_params);
+
+ // Also we would like to get the SQL formed in some nice
+ // php-code (Mike Beck 2002-05-22)
+ if (! empty($cfg['SQLQuery']['ShowAsPHP']) && ! $query_too_big) {
+ $php_params = $url_params;
+
+ if (! empty($GLOBALS['show_as_php'])) {
+ $_message = $GLOBALS['strNoPhp'];
+ } else {
+ $php_params['show_as_php'] = 1;
+ $_message = $GLOBALS['strPhp'];
+ }
+
+ $php_link = 'import.php' . PMA_generate_common_url($php_params);
+ $php_link = ' [' . PMA_linkOrButton($php_link, $_message) . ']';
+
+ if (isset($GLOBALS['show_as_php'])) {
+ $runquery_link = 'import.php' . PMA_generate_common_url($url_params);
+ $php_link .= ' [' . PMA_linkOrButton($runquery_link, $GLOBALS['strRunQuery']) . ']';
+ }
+ } else {
+ $php_link = '';
+ } //show as php
+
+ // Refresh query
+ if (! empty($cfg['SQLQuery']['Refresh'])
+ && preg_match('@^(SELECT|SHOW)[[:space:]]+@i', $sql_query)) {
+ $refresh_link = 'import.php' . PMA_generate_common_url($url_params);
+ $refresh_link = ' [' . PMA_linkOrButton($refresh_link, $GLOBALS['strRefresh']) . ']';
+ } else {
+ $refresh_link = '';
+ } //show as php
+
+ if (! empty($cfg['SQLValidator']['use'])
+ && ! empty($cfg['SQLQuery']['Validate'])) {
+ $validate_params = $url_params;
+ if (!empty($GLOBALS['validatequery'])) {
+ $validate_message = $GLOBALS['strNoValidateSQL'] ;
+ } else {
+ $validate_params['validatequery'] = 1;
+ $validate_message = $GLOBALS['strValidateSQL'] ;
+ }
+
+ $validate_link = 'import.php' . PMA_generate_common_url($validate_params);
+ $validate_link = ' [' . PMA_linkOrButton($validate_link, $validate_message) . ']';
+ } else {
+ $validate_link = '';
+ } //validator
+
+ echo '<code class="sql">';
+ if ($query_too_big) {
+ echo $shortened_query_base;
+ } else {
+ echo $query_base;
+ }
+
+ //Clean up the end of the PHP
+ if (! empty($GLOBALS['show_as_php'])) {
+ echo '";';
+ }
+ echo '</code>';
+
+ echo '<div class="tools">';
+ // avoid displaying a Profiling checkbox that could
+ // be checked, which would reexecute an INSERT, for example
+ if (! empty($refresh_link)) {
+ PMA_profilingCheckbox($sql_query);
+ }
+ echo $edit_link . $explain_link . $php_link . $refresh_link . $validate_link;
+ echo '</div>';
+ }
+ echo '</div><br />' . "\n";
+} // end of the 'PMA_showMessage()' function
+
+/**
+ * Verifies if current MySQL server supports profiling
+ *
+ * @uses $_SESSION['profiling_supported'] for caching
+ * @uses $GLOBALS['server']
+ * @uses PMA_DBI_fetch_value()
+ * @uses PMA_MYSQL_INT_VERSION
+ * @uses defined()
+ * @access public
+ * @return boolean whether profiling is supported
+ *
+ * @author Marc Delisle
+ */
+function PMA_profilingSupported()
+{
+ if (! PMA_cacheExists('profiling_supported', true)) {
+ // 5.0.37 has profiling but for example, 5.1.20 does not
+ // (avoid a trip to the server for MySQL before 5.0.37)
+ // and do not set a constant as we might be switching servers
+ if (defined('PMA_MYSQL_INT_VERSION')
+ && PMA_MYSQL_INT_VERSION >= 50037
+ && PMA_DBI_fetch_value("SHOW VARIABLES LIKE 'profiling'")) {
+ PMA_cacheSet('profiling_supported', true, true);
+ } else {
+ PMA_cacheSet('profiling_supported', false, true);
+ }
+ }
+
+ return PMA_cacheGet('profiling_supported', true);
+}
+
+/**
+ * Displays a form with the Profiling checkbox
+ *
+ * @param string $sql_query
+ * @access public
+ *
+ * @author Marc Delisle
+ */
+function PMA_profilingCheckbox($sql_query)
+{
+ if (PMA_profilingSupported()) {
+ echo '<form action="sql.php" method="post">' . "\n";
+ echo PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table']);
+ echo '<input type="hidden" name="sql_query" value="' . htmlspecialchars($sql_query) . '" />' . "\n";
+ echo '<input type="hidden" name="profiling_form" value="1" />' . "\n";
+ PMA_generate_html_checkbox('profiling', $GLOBALS['strProfiling'], isset($_SESSION['profiling']), true);
+ echo '<noscript><input type="submit" value="' . $GLOBALS['strGo'] . '" /></noscript>' . "\n";
+ echo '</form>' . "\n";
+ }
+}
+
+/**
+ * Displays the results of SHOW PROFILE
+ *
+ * @param array the results
+ * @access public
+ *
+ * @author Marc Delisle
+ */
+function PMA_profilingResults($profiling_results)
+{
+ echo '<fieldset><legend>' . $GLOBALS['strProfiling'] . '</legend>' . "\n";
+ echo '<table>' . "\n";
+ echo ' <tr>' . "\n";
+ echo ' <th>' . $GLOBALS['strStatus'] . '</th>' . "\n";
+ echo ' <th>' . $GLOBALS['strTime'] . '</th>' . "\n";
+ echo ' </tr>' . "\n";
+
+ foreach($profiling_results as $one_result) {
+ echo ' <tr>' . "\n";
+ echo '<td>' . $one_result['Status'] . '</td>' . "\n";
+ echo '<td>' . $one_result['Duration'] . '</td>' . "\n";
+ }
+ echo '</table>' . "\n";
+ echo '</fieldset>' . "\n";
+}
+
+/**
+ * Formats $value to byte view
+ *
+ * @param double the value to format
+ * @param integer the sensitiveness
+ * @param integer the number of decimals to retain
+ *
+ * @return array the formatted value and its unit
+ *
+ * @access public
+ *
+ * @author staybyte
+ * @version 1.2 - 18 July 2002
+ */
+function PMA_formatByteDown($value, $limes = 6, $comma = 0)
+{
+ $dh = PMA_pow(10, $comma);
+ $li = PMA_pow(10, $limes);
+ $return_value = $value;
+ $unit = $GLOBALS['byteUnits'][0];
+
+ for ($d = 6, $ex = 15; $d >= 1; $d--, $ex-=3) {
+ if (isset($GLOBALS['byteUnits'][$d]) && $value >= $li * PMA_pow(10, $ex)) {
+ // use 1024.0 to avoid integer overflow on 64-bit machines
+ $value = round($value / (PMA_pow(1024, $d) / $dh)) /$dh;
+ $unit = $GLOBALS['byteUnits'][$d];
+ break 1;
+ } // end if
+ } // end for
+
+ if ($unit != $GLOBALS['byteUnits'][0]) {
+ // if the unit is not bytes (as represented in current language)
+ // reformat with max length of 5
+ // 4th parameter=true means do not reformat if value < 1
+ $return_value = PMA_formatNumber($value, 5, $comma, true);
+ } else {
+ // do not reformat, just handle the locale
+ $return_value = PMA_formatNumber($value, 0);
+ }
+
+ return array($return_value, $unit);
+} // end of the 'PMA_formatByteDown' function
+
+/**
+ * Formats $value to the given length and appends SI prefixes
+ * $comma is not substracted from the length
+ * with a $length of 0 no truncation occurs, number is only formated
+ * to the current locale
+ *
+ * examples:
+ * <code>
+ * echo PMA_formatNumber(123456789, 6); // 123,457 k
+ * echo PMA_formatNumber(-123456789, 4, 2); // -123.46 M
+ * echo PMA_formatNumber(-0.003, 6); // -3 m
+ * echo PMA_formatNumber(0.003, 3, 3); // 0.003
+ * echo PMA_formatNumber(0.00003, 3, 2); // 0.03 m
+ * echo PMA_formatNumber(0, 6); // 0
+ *
+ * </code>
+ * @param double $value the value to format
+ * @param integer $length the max length
+ * @param integer $comma the number of decimals to retain
+ * @param boolean $only_down do not reformat numbers below 1
+ *
+ * @return string the formatted value and its unit
+ *
+ * @access public
+ *
+ * @author staybyte, sebastian mendel
+ * @version 1.1.0 - 2005-10-27
+ */
+function PMA_formatNumber($value, $length = 3, $comma = 0, $only_down = false)
+{
+ //number_format is not multibyte safe, str_replace is safe
+ if ($length === 0) {
+ return str_replace(array(',', '.'),
+ array($GLOBALS['number_thousands_separator'], $GLOBALS['number_decimal_separator']),
+ number_format($value, $comma));
+ }
+
+ // this units needs no translation, ISO
+ $units = array(
+ -8 => 'y',
+ -7 => 'z',
+ -6 => 'a',
+ -5 => 'f',
+ -4 => 'p',
+ -3 => 'n',
+ -2 => '&micro;',
+ -1 => 'm',
+ 0 => ' ',
+ 1 => 'k',
+ 2 => 'M',
+ 3 => 'G',
+ 4 => 'T',
+ 5 => 'P',
+ 6 => 'E',
+ 7 => 'Z',
+ 8 => 'Y'
+ );
+
+ // we need at least 3 digits to be displayed
+ if (3 > $length + $comma) {
+ $length = 3 - $comma;
+ }
+
+ // check for negative value to retain sign
+ if ($value < 0) {
+ $sign = '-';
+ $value = abs($value);
+ } else {
+ $sign = '';
+ }
+
+ $dh = PMA_pow(10, $comma);
+ $li = PMA_pow(10, $length);
+ $unit = $units[0];
+
+ if ($value >= 1) {
+ for ($d = 8; $d >= 0; $d--) {
+ if (isset($units[$d]) && $value >= $li * PMA_pow(1000, $d-1)) {
+ $value = round($value / (PMA_pow(1000, $d) / $dh)) /$dh;
+ $unit = $units[$d];
+ break 1;
+ } // end if
+ } // end for
+ } elseif (!$only_down && (float) $value !== 0.0) {
+ for ($d = -8; $d <= 8; $d++) {
+ if (isset($units[$d]) && $value <= $li * PMA_pow(1000, $d-1)) {
+ $value = round($value / (PMA_pow(1000, $d) / $dh)) /$dh;
+ $unit = $units[$d];
+ break 1;
+ } // end if
+ } // end for
+ } // end if ($value >= 1) elseif (!$only_down && (float) $value !== 0.0)
+
+ //number_format is not multibyte safe, str_replace is safe
+ $value = str_replace(array(',', '.'),
+ array($GLOBALS['number_thousands_separator'], $GLOBALS['number_decimal_separator']),
+ number_format($value, $comma));
+
+ return $sign . $value . ' ' . $unit;
+} // end of the 'PMA_formatNumber' function
+
+/**
+ * Writes localised date
+ *
+ * @param string the current timestamp
+ *
+ * @return string the formatted date
+ *
+ * @access public
+ */
+function PMA_localisedDate($timestamp = -1, $format = '')
+{
+ global $datefmt, $month, $day_of_week;
+
+ if ($format == '') {
+ $format = $datefmt;
+ }
+
+ if ($timestamp == -1) {
+ $timestamp = time();
+ }
+
+ $date = preg_replace('@%[aA]@', $day_of_week[(int)strftime('%w', $timestamp)], $format);
+ $date = preg_replace('@%[bB]@', $month[(int)strftime('%m', $timestamp)-1], $date);
+
+ return strftime($date, $timestamp);
+} // end of the 'PMA_localisedDate()' function
+
+
+/**
+ * returns a tab for tabbed navigation.
+ * If the variables $link and $args ar left empty, an inactive tab is created
+ *
+ * @uses $GLOBALS['PMA_PHP_SELF']
+ * @uses $GLOBALS['strEmpty']
+ * @uses $GLOBALS['strDrop']
+ * @uses $GLOBALS['active_page']
+ * @uses $GLOBALS['url_query']
+ * @uses $cfg['MainPageIconic']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses PMA_generate_common_url()
+ * @uses E_USER_NOTICE
+ * @uses htmlentities()
+ * @uses urlencode()
+ * @uses sprintf()
+ * @uses trigger_error()
+ * @uses array_merge()
+ * @uses basename()
+ * @param array $tab array with all options
+ * @return string html code for one tab, a link if valid otherwise a span
+ * @access public
+ */
+function PMA_getTab($tab)
+{
+ // default values
+ $defaults = array(
+ 'text' => '',
+ 'class' => '',
+ 'active' => false,
+ 'link' => '',
+ 'sep' => '?',
+ 'attr' => '',
+ 'args' => '',
+ 'warning' => '',
+ 'fragment' => '',
+ );
+
+ $tab = array_merge($defaults, $tab);
+
+ // determine additionnal style-class
+ if (empty($tab['class'])) {
+ if ($tab['text'] == $GLOBALS['strEmpty']
+ || $tab['text'] == $GLOBALS['strDrop']) {
+ $tab['class'] = 'caution';
+ } elseif (! empty($tab['active'])
+ || PMA_isValid($GLOBALS['active_page'], 'identical', $tab['link'])) {
+ $tab['class'] = 'active';
+ } elseif (empty($GLOBALS['active_page'])
+ && basename($GLOBALS['PMA_PHP_SELF']) == $tab['link']
+ && empty($tab['warning'])) {
+ $tab['class'] = 'active';
+ }
+ }
+
+ if (!empty($tab['warning'])) {
+ $tab['class'] .= ' warning';
+ $tab['attr'] .= ' title="' . htmlspecialchars($tab['warning']) . '"';
+ }
+
+ // build the link
+ if (!empty($tab['link'])) {
+ $tab['link'] = htmlentities($tab['link']);
+ $tab['link'] = $tab['link'] . $tab['sep']
+ .(empty($GLOBALS['url_query']) ?
+ PMA_generate_common_url() : $GLOBALS['url_query']);
+ if (! empty($tab['args'])) {
+ foreach ($tab['args'] as $param => $value) {
+ $tab['link'] .= PMA_get_arg_separator('html') . urlencode($param) . '='
+ . urlencode($value);
+ }
+ }
+ }
+
+ if (! empty($tab['fragment'])) {
+ $tab['link'] .= $tab['fragment'];
+ }
+
+ // display icon, even if iconic is disabled but the link-text is missing
+ if (($GLOBALS['cfg']['MainPageIconic'] || empty($tab['text']))
+ && isset($tab['icon'])) {
+ // avoid generating an alt tag, because it only illustrates
+ // the text that follows and if browser does not display
+ // images, the text is duplicated
+ $image = '<img class="icon" src="' . htmlentities($GLOBALS['pmaThemeImage'])
+ .'%1$s" width="16" height="16" alt="" />%2$s';
+ $tab['text'] = sprintf($image, htmlentities($tab['icon']), $tab['text']);
+ }
+ // check to not display an empty link-text
+ elseif (empty($tab['text'])) {
+ $tab['text'] = '?';
+ trigger_error('empty linktext in function ' . __FUNCTION__ . '()',
+ E_USER_NOTICE);
+ }
+
+ $out = '<li' . ($tab['class'] == 'active' ? ' class="active"' : '') . '>';
+
+ if (!empty($tab['link'])) {
+ $out .= '<a class="tab' . htmlentities($tab['class']) . '"'
+ .' href="' . $tab['link'] . '" ' . $tab['attr'] . '>'
+ . $tab['text'] . '</a>';
+ } else {
+ $out .= '<span class="tab' . htmlentities($tab['class']) . '">'
+ . $tab['text'] . '</span>';
+ }
+
+ $out .= '</li>';
+ return $out;
+} // end of the 'PMA_getTab()' function
+
+/**
+ * returns html-code for a tab navigation
+ *
+ * @uses PMA_getTab()
+ * @uses htmlentities()
+ * @param array $tabs one element per tab
+ * @param string $tag_id id used for the html-tag
+ * @return string html-code for tab-navigation
+ */
+function PMA_getTabs($tabs, $tag_id = 'topmenu')
+{
+ $tab_navigation =
+ '<div id="' . htmlentities($tag_id) . 'container">' . "\n"
+ .'<ul id="' . htmlentities($tag_id) . '">' . "\n";
+
+ foreach ($tabs as $tab) {
+ $tab_navigation .= PMA_getTab($tab) . "\n";
+ }
+
+ $tab_navigation .=
+ '</ul>' . "\n"
+ .'<div class="clearfloat"></div>'
+ .'</div>' . "\n";
+
+ return $tab_navigation;
+}
+
+
+/**
+ * Displays a link, or a button if the link's URL is too large, to
+ * accommodate some browsers' limitations
+ *
+ * @param string the URL
+ * @param string the link message
+ * @param mixed $tag_params string: js confirmation
+ * array: additional tag params (f.e. style="")
+ * @param boolean $new_form we set this to false when we are already in
+ * a form, to avoid generating nested forms
+ *
+ * @return string the results to be echoed or saved in an array
+ */
+function PMA_linkOrButton($url, $message, $tag_params = array(),
+ $new_form = true, $strip_img = false, $target = '')
+{
+ if (! is_array($tag_params)) {
+ $tmp = $tag_params;
+ $tag_params = array();
+ if (!empty($tmp)) {
+ $tag_params['onclick'] = 'return confirmLink(this, \'' . $tmp . '\')';
+ }
+ unset($tmp);
+ }
+ if (! empty($target)) {
+ $tag_params['target'] = htmlentities($target);
+ }
+
+ $tag_params_strings = array();
+ foreach ($tag_params as $par_name => $par_value) {
+ // htmlspecialchars() only on non javascript
+ $par_value = substr($par_name, 0, 2) == 'on'
+ ? $par_value
+ : htmlspecialchars($par_value);
+ $tag_params_strings[] = $par_name . '="' . $par_value . '"';
+ }
+
+ // previously the limit was set to 2047, it seems 1000 is better
+ if (strlen($url) <= 1000) {
+ // no whitespace within an <a> else Safari will make it part of the link
+ $ret = "\n" . '<a href="' . $url . '" '
+ . implode(' ', $tag_params_strings) . '>'
+ . $message . '</a>' . "\n";
+ } else {
+ // no spaces (linebreaks) at all
+ // or after the hidden fields
+ // IE will display them all
+
+ // add class=link to submit button
+ if (empty($tag_params['class'])) {
+ $tag_params['class'] = 'link';
+ }
+
+ // decode encoded url separators
+ $separator = PMA_get_arg_separator();
+ // on most places separator is still hard coded ...
+ if ($separator !== '&') {
+ // ... so always replace & with $separator
+ $url = str_replace(htmlentities('&'), $separator, $url);
+ $url = str_replace('&', $separator, $url);
+ }
+ $url = str_replace(htmlentities($separator), $separator, $url);
+ // end decode
+
+ $url_parts = parse_url($url);
+ $query_parts = explode($separator, $url_parts['query']);
+ if ($new_form) {
+ $ret = '<form action="' . $url_parts['path'] . '" class="link"'
+ . ' method="post"' . $target . ' style="display: inline;">';
+ $subname_open = '';
+ $subname_close = '';
+ $submit_name = '';
+ } else {
+ $query_parts[] = 'redirect=' . $url_parts['path'];
+ if (empty($GLOBALS['subform_counter'])) {
+ $GLOBALS['subform_counter'] = 0;
+ }
+ $GLOBALS['subform_counter']++;
+ $ret = '';
+ $subname_open = 'subform[' . $GLOBALS['subform_counter'] . '][';
+ $subname_close = ']';
+ $submit_name = ' name="usesubform[' . $GLOBALS['subform_counter'] . ']"';
+ }
+ foreach ($query_parts as $query_pair) {
+ list($eachvar, $eachval) = explode('=', $query_pair);
+ $ret .= '<input type="hidden" name="' . $subname_open . $eachvar
+ . $subname_close . '" value="'
+ . htmlspecialchars(urldecode($eachval)) . '" />';
+ } // end while
+
+ if (stristr($message, '<img')) {
+ if ($strip_img) {
+ $message = trim(strip_tags($message));
+ $ret .= '<input type="submit"' . $submit_name . ' '
+ . implode(' ', $tag_params_strings)
+ . ' value="' . htmlspecialchars($message) . '" />';
+ } else {
+ $ret .= '<input type="image"' . $submit_name . ' '
+ . implode(' ', $tag_params_strings)
+ . ' src="' . preg_replace(
+ '/^.*\ssrc="([^"]*)".*$/si', '\1', $message) . '"'
+ . ' value="' . htmlspecialchars(
+ preg_replace('/^.*\salt="([^"]*)".*$/si', '\1',
+ $message))
+ . '" />';
+ }
+ } else {
+ $message = trim(strip_tags($message));
+ $ret .= '<input type="submit"' . $submit_name . ' '
+ . implode(' ', $tag_params_strings)
+ . ' value="' . htmlspecialchars($message) . '" />';
+ }
+ if ($new_form) {
+ $ret .= '</form>';
+ }
+ } // end if... else...
+
+ return $ret;
+} // end of the 'PMA_linkOrButton()' function
+
+
+/**
+ * Returns a given timespan value in a readable format.
+ *
+ * @uses $GLOBALS['timespanfmt']
+ * @uses sprintf()
+ * @uses floor()
+ * @param int the timespan
+ *
+ * @return string the formatted value
+ */
+function PMA_timespanFormat($seconds)
+{
+ $return_string = '';
+ $days = floor($seconds / 86400);
+ if ($days > 0) {
+ $seconds -= $days * 86400;
+ }
+ $hours = floor($seconds / 3600);
+ if ($days > 0 || $hours > 0) {
+ $seconds -= $hours * 3600;
+ }
+ $minutes = floor($seconds / 60);
+ if ($days > 0 || $hours > 0 || $minutes > 0) {
+ $seconds -= $minutes * 60;
+ }
+ return sprintf($GLOBALS['timespanfmt'], (string)$days, (string)$hours, (string)$minutes, (string)$seconds);
+}
+
+/**
+ * Takes a string and outputs each character on a line for itself. Used
+ * mainly for horizontalflipped display mode.
+ * Takes care of special html-characters.
+ * Fulfills todo-item
+ * http://sf.net/tracker/?func=detail&aid=544361&group_id=23067&atid=377411
+ *
+ * @todo add a multibyte safe function PMA_STR_split()
+ * @uses strlen
+ * @param string The string
+ * @param string The Separator (defaults to "<br />\n")
+ *
+ * @access public
+ * @author Garvin Hicking <me@supergarv.de>
+ * @return string The flipped string
+ */
+function PMA_flipstring($string, $Separator = "<br />\n")
+{
+ $format_string = '';
+ $charbuff = false;
+
+ for ($i = 0; $i < strlen($string); $i++) {
+ $char = $string{$i};
+ $append = false;
+
+ if ($char == '&') {
+ $format_string .= $charbuff;
+ $charbuff = $char;
+ $append = true;
+ } elseif (!empty($charbuff)) {
+ $charbuff .= $char;
+ } elseif ($char == ';' && !empty($charbuff)) {
+ $format_string .= $charbuff;
+ $charbuff = false;
+ $append = true;
+ } else {
+ $format_string .= $char;
+ $append = true;
+ }
+
+ if ($append && ($i != strlen($string))) {
+ $format_string .= $Separator;
+ }
+ }
+
+ return $format_string;
+}
+
+
+/**
+ * Function added to avoid path disclosures.
+ * Called by each script that needs parameters, it displays
+ * an error message and, by default, stops the execution.
+ *
+ * Not sure we could use a strMissingParameter message here,
+ * would have to check if the error message file is always available
+ *
+ * @todo localize error message
+ * @todo use PMA_fatalError() if $die === true?
+ * @uses PMA_getenv()
+ * @uses header_meta_style.inc.php
+ * @uses $GLOBALS['PMA_PHP_SELF']
+ * basename
+ * @param array The names of the parameters needed by the calling
+ * script.
+ * @param boolean Stop the execution?
+ * (Set this manually to false in the calling script
+ * until you know all needed parameters to check).
+ * @param boolean Whether to include this list in checking for special params.
+ * @global string path to current script
+ * @global boolean flag whether any special variable was required
+ *
+ * @access public
+ * @author Marc Delisle (lem9@users.sourceforge.net)
+ */
+function PMA_checkParameters($params, $die = true, $request = true)
+{
+ global $checked_special;
+
+ if (!isset($checked_special)) {
+ $checked_special = false;
+ }
+
+ $reported_script_name = basename($GLOBALS['PMA_PHP_SELF']);
+ $found_error = false;
+ $error_message = '';
+
+ foreach ($params as $param) {
+ if ($request && $param != 'db' && $param != 'table') {
+ $checked_special = true;
+ }
+
+ if (!isset($GLOBALS[$param])) {
+ $error_message .= $reported_script_name
+ . ': Missing parameter: ' . $param
+ . ' <a href="./Documentation.html#faqmissingparameters"'
+ . ' target="documentation"> (FAQ 2.8)</a><br />';
+ $found_error = true;
+ }
+ }
+ if ($found_error) {
+ /**
+ * display html meta tags
+ */
+ require_once './libraries/header_meta_style.inc.php';
+ echo '</head><body><p>' . $error_message . '</p></body></html>';
+ if ($die) {
+ exit();
+ }
+ }
+} // end function
+
+/**
+ * Function to generate unique condition for specified row.
+ *
+ * @uses $GLOBALS['analyzed_sql'][0]
+ * @uses PMA_DBI_field_flags()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses stristr()
+ * @uses bin2hex()
+ * @uses preg_replace()
+ * @param resource $handle current query result
+ * @param integer $fields_cnt number of fields
+ * @param array $fields_meta meta information about fields
+ * @param array $row current row
+ * @param boolean $force_unique generate condition only on pk or unique
+ *
+ * @access public
+ * @author Michal Cihar (michal@cihar.com) and others...
+ * @return string calculated condition
+ */
+function PMA_getUniqueCondition($handle, $fields_cnt, $fields_meta, $row, $force_unique=false)
+{
+ $primary_key = '';
+ $unique_key = '';
+ $nonprimary_condition = '';
+ $preferred_condition = '';
+
+ for ($i = 0; $i < $fields_cnt; ++$i) {
+ $condition = '';
+ $field_flags = PMA_DBI_field_flags($handle, $i);
+ $meta = $fields_meta[$i];
+
+ // do not use a column alias in a condition
+ if (! isset($meta->orgname) || ! strlen($meta->orgname)) {
+ $meta->orgname = $meta->name;
+
+ if (isset($GLOBALS['analyzed_sql'][0]['select_expr'])
+ && is_array($GLOBALS['analyzed_sql'][0]['select_expr'])) {
+ foreach ($GLOBALS['analyzed_sql'][0]['select_expr']
+ as $select_expr) {
+ // need (string) === (string)
+ // '' !== 0 but '' == 0
+ if ((string) $select_expr['alias'] === (string) $meta->name) {
+ $meta->orgname = $select_expr['column'];
+ break;
+ } // end if
+ } // end foreach
+ }
+ }
+
+ // Do not use a table alias in a condition.
+ // Test case is:
+ // select * from galerie x WHERE
+ //(select count(*) from galerie y where y.datum=x.datum)>1
+ //
+ // But orgtable is present only with mysqli extension so the
+ // fix is only for mysqli.
+ // Also, do not use the original table name if we are dealing with
+ // a view because this view might be updatable.
+ // (The isView() verification should not be costly in most cases
+ // because there is some caching in the function).
+ if (isset($meta->orgtable) && $meta->table != $meta->orgtable && ! PMA_Table::isView($GLOBALS['db'], $meta->table)) {
+ $meta->table = $meta->orgtable;
+ }
+
+ // to fix the bug where float fields (primary or not)
+ // can't be matched because of the imprecision of
+ // floating comparison, use CONCAT
+ // (also, the syntax "CONCAT(field) IS NULL"
+ // that we need on the next "if" will work)
+ if ($meta->type == 'real') {
+ $condition = ' CONCAT(' . PMA_backquote($meta->table) . '.'
+ . PMA_backquote($meta->orgname) . ') ';
+ } else {
+ $condition = ' ' . PMA_backquote($meta->table) . '.'
+ . PMA_backquote($meta->orgname) . ' ';
+ } // end if... else...
+
+ if (!isset($row[$i]) || is_null($row[$i])) {
+ $condition .= 'IS NULL AND';
+ } else {
+ // timestamp is numeric on some MySQL 4.1
+ if ($meta->numeric && $meta->type != 'timestamp') {
+ $condition .= '= ' . $row[$i] . ' AND';
+ } elseif (($meta->type == 'blob' || $meta->type == 'string')
+ // hexify only if this is a true not empty BLOB or a BINARY
+ && stristr($field_flags, 'BINARY')
+ && !empty($row[$i])) {
+ // do not waste memory building a too big condition
+ if (strlen($row[$i]) < 1000) {
+ // use a CAST if possible, to avoid problems
+ // if the field contains wildcard characters % or _
+ $condition .= '= CAST(0x' . bin2hex($row[$i])
+ . ' AS BINARY) AND';
+ } else {
+ // this blob won't be part of the final condition
+ $condition = '';
+ }
+ } else {
+ $condition .= '= \''
+ . PMA_sqlAddslashes($row[$i], false, true) . '\' AND';
+ }
+ }
+ if ($meta->primary_key > 0) {
+ $primary_key .= $condition;
+ } elseif ($meta->unique_key > 0) {
+ $unique_key .= $condition;
+ }
+ $nonprimary_condition .= $condition;
+ } // end for
+
+ // Correction University of Virginia 19991216:
+ // prefer primary or unique keys for condition,
+ // but use conjunction of all values if no primary key
+ if ($primary_key) {
+ $preferred_condition = $primary_key;
+ } elseif ($unique_key) {
+ $preferred_condition = $unique_key;
+ } elseif (! $force_unique) {
+ $preferred_condition = $nonprimary_condition;
+ }
+
+ return preg_replace('|\s?AND$|', '', $preferred_condition);
+} // end function
+
+/**
+ * Generate a button or image tag
+ *
+ * @uses PMA_USR_BROWSER_AGENT
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['cfg']['PropertiesIconic']
+ * @param string name of button element
+ * @param string class of button element
+ * @param string name of image element
+ * @param string text to display
+ * @param string image to display
+ *
+ * @access public
+ * @author Michal Cihar (michal@cihar.com)
+ */
+function PMA_buttonOrImage($button_name, $button_class, $image_name, $text,
+ $image)
+{
+ if (false === $GLOBALS['cfg']['PropertiesIconic']) {
+ echo ' <input type="submit" name="' . $button_name . '"'
+ .' value="' . htmlspecialchars($text) . '"'
+ .' title="' . htmlspecialchars($text) . '" />' . "\n";
+ return;
+ }
+
+ /* Opera has trouble with <input type="image"> */
+ /* IE has trouble with <button> */
+ if (PMA_USR_BROWSER_AGENT != 'IE') {
+ echo '<button class="' . $button_class . '" type="submit"'
+ .' name="' . $button_name . '" value="' . htmlspecialchars($text) . '"'
+ .' title="' . htmlspecialchars($text) . '">' . "\n"
+ . PMA_getIcon($image, $text)
+ .'</button>' . "\n";
+ } else {
+ echo '<input type="image" name="' . $image_name . '" value="'
+ . htmlspecialchars($text) . '" title="' . htmlspecialchars($text) . '" src="' . $GLOBALS['pmaThemeImage']
+ . $image . '" />'
+ . ($GLOBALS['cfg']['PropertiesIconic'] === 'both' ? '&nbsp;' . htmlspecialchars($text) : '') . "\n";
+ }
+} // end function
+
+/**
+ * Generate a pagination selector for browsing resultsets
+ *
+ * @todo $url is not javascript escaped!?
+ * @uses $GLOBALS['strPageNumber']
+ * @uses range()
+ * @param string URL for the JavaScript
+ * @param string Number of rows in the pagination set
+ * @param string current page number
+ * @param string number of total pages
+ * @param string If the number of pages is lower than this
+ * variable, no pages will be omitted in
+ * pagination
+ * @param string How many rows at the beginning should always
+ * be shown?
+ * @param string How many rows at the end should always
+ * be shown?
+ * @param string Percentage of calculation page offsets to
+ * hop to a next page
+ * @param string Near the current page, how many pages should
+ * be considered "nearby" and displayed as
+ * well?
+ * @param string The prompt to display (sometimes empty)
+ *
+ * @access public
+ * @author Garvin Hicking (pma@supergarv.de)
+ */
+function PMA_pageselector($url, $rows, $pageNow = 1, $nbTotalPage = 1,
+ $showAll = 200, $sliceStart = 5, $sliceEnd = 5, $percent = 20,
+ $range = 10, $prompt = '')
+{
+ $increment = floor($nbTotalPage / $percent);
+ $pageNowMinusRange = ($pageNow - $range);
+ $pageNowPlusRange = ($pageNow + $range);
+
+ $gotopage = $prompt
+ . ' <select name="pos" onchange="goToUrl(this, \''
+ . $url . '\');">' . "\n";
+ if ($nbTotalPage < $showAll) {
+ $pages = range(1, $nbTotalPage);
+ } else {
+ $pages = array();
+
+ // Always show first X pages
+ for ($i = 1; $i <= $sliceStart; $i++) {
+ $pages[] = $i;
+ }
+
+ // Always show last X pages
+ for ($i = $nbTotalPage - $sliceEnd; $i <= $nbTotalPage; $i++) {
+ $pages[] = $i;
+ }
+
+ // garvin: Based on the number of results we add the specified
+ // $percent percentage to each page number,
+ // so that we have a representing page number every now and then to
+ // immediately jump to specific pages.
+ // As soon as we get near our currently chosen page ($pageNow -
+ // $range), every page number will be shown.
+ $i = $sliceStart;
+ $x = $nbTotalPage - $sliceEnd;
+ $met_boundary = false;
+ while ($i <= $x) {
+ if ($i >= $pageNowMinusRange && $i <= $pageNowPlusRange) {
+ // If our pageselector comes near the current page, we use 1
+ // counter increments
+ $i++;
+ $met_boundary = true;
+ } else {
+ // We add the percentage increment to our current page to
+ // hop to the next one in range
+ $i += $increment;
+
+ // Make sure that we do not cross our boundaries.
+ if ($i > $pageNowMinusRange && ! $met_boundary) {
+ $i = $pageNowMinusRange;
+ }
+ }
+
+ if ($i > 0 && $i <= $x) {
+ $pages[] = $i;
+ }
+ }
+
+ // Since because of ellipsing of the current page some numbers may be double,
+ // we unify our array:
+ sort($pages);
+ $pages = array_unique($pages);
+ }
+
+ foreach ($pages as $i) {
+ if ($i == $pageNow) {
+ $selected = 'selected="selected" style="font-weight: bold"';
+ } else {
+ $selected = '';
+ }
+ $gotopage .= ' <option ' . $selected . ' value="' . (($i - 1) * $rows) . '">' . $i . '</option>' . "\n";
+ }
+
+ $gotopage .= ' </select><noscript><input type="submit" value="' . $GLOBALS['strGo'] . '" /></noscript>';
+
+ return $gotopage;
+} // end function
+
+
+/**
+ * Generate navigation for a list
+ *
+ * @todo use $pos from $_url_params
+ * @uses $GLOBALS['strPageNumber']
+ * @uses range()
+ * @param integer number of elements in the list
+ * @param integer current position in the list
+ * @param array url parameters
+ * @param string script name for form target
+ * @param string target frame
+ * @param integer maximum number of elements to display from the list
+ *
+ * @access public
+ */
+function PMA_listNavigator($count, $pos, $_url_params, $script, $frame, $max_count) {
+
+ if ($max_count < $count) {
+ echo 'frame_navigation' == $frame ? '<div id="navidbpageselector">' . "\n" : '';
+ echo $GLOBALS['strPageNumber'];
+ echo 'frame_navigation' == $frame ? '<br />' : ' ';
+
+ // Move to the beginning or to the previous page
+ if ($pos > 0) {
+ // loic1: patch #474210 from Gosha Sakovich - part 1
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ $caption1 = '&lt;&lt;';
+ $caption2 = ' &lt; ';
+ $title1 = ' title="' . $GLOBALS['strPos1'] . '"';
+ $title2 = ' title="' . $GLOBALS['strPrevious'] . '"';
+ } else {
+ $caption1 = $GLOBALS['strPos1'] . ' &lt;&lt;';
+ $caption2 = $GLOBALS['strPrevious'] . ' &lt;';
+ $title1 = '';
+ $title2 = '';
+ } // end if... else...
+ $_url_params['pos'] = 0;
+ echo '<a' . $title1 . ' href="' . $script
+ . PMA_generate_common_url($_url_params) . '" target="' . $frame . '">'
+ . $caption1 . '</a>';
+ $_url_params['pos'] = $pos - $max_count;
+ echo '<a' . $title2 . ' href="' . $script
+ . PMA_generate_common_url($_url_params) . '" target="' . $frame . '">'
+ . $caption2 . '</a>';
+ }
+
+ echo "\n", '<form action="./', basename($script), '" method="post" target="', $frame, '">', "\n";
+ echo PMA_generate_common_hidden_inputs($_url_params);
+ echo PMA_pageselector(
+ $script . PMA_generate_common_url($_url_params) . '&',
+ $max_count,
+ floor(($pos + 1) / $max_count) + 1,
+ ceil($count / $max_count));
+ echo '</form>';
+
+ if ($pos + $max_count < $count) {
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ $caption3 = ' &gt; ';
+ $caption4 = '&gt;&gt;';
+ $title3 = ' title="' . $GLOBALS['strNext'] . '"';
+ $title4 = ' title="' . $GLOBALS['strEnd'] . '"';
+ } else {
+ $caption3 = '&gt; ' . $GLOBALS['strNext'];
+ $caption4 = '&gt;&gt; ' . $GLOBALS['strEnd'];
+ $title3 = '';
+ $title4 = '';
+ } // end if... else...
+ $_url_params['pos'] = $pos + $max_count;
+ echo '<a' . $title3 . ' href="' . $script
+ . PMA_generate_common_url($_url_params) . '" target="' . $frame . '">'
+ . $caption3 . '</a>';
+ $_url_params['pos'] = floor($count / $max_count) * $max_count;
+ if ($_url_params['pos'] == $count) {
+ $_url_params['pos'] = $count - $max_count;
+ }
+ echo '<a' . $title4 . ' href="' . $script
+ . PMA_generate_common_url($_url_params) . '" target="' . $frame . '">'
+ . $caption4 . '</a>';
+ }
+ echo "\n";
+ if ('frame_navigation' == $frame) {
+ echo '</div>' . "\n";
+ }
+ }
+}
+
+/**
+ * replaces %u in given path with current user name
+ *
+ * example:
+ * <code>
+ * $user_dir = PMA_userDir('/var/pma_tmp/%u/'); // '/var/pma_tmp/root/'
+ *
+ * </code>
+ * @uses $cfg['Server']['user']
+ * @uses substr()
+ * @uses str_replace()
+ * @param string $dir with wildcard for user
+ * @return string per user directory
+ */
+function PMA_userDir($dir)
+{
+ // add trailing slash
+ if (substr($dir, -1) != '/') {
+ $dir .= '/';
+ }
+
+ return str_replace('%u', $GLOBALS['cfg']['Server']['user'], $dir);
+}
+
+/**
+ * returns html code for db link to default db page
+ *
+ * @uses $cfg['DefaultTabDatabase']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['strJumpToDB']
+ * @uses PMA_generate_common_url()
+ * @uses PMA_unescape_mysql_wildcards()
+ * @uses strlen()
+ * @uses sprintf()
+ * @uses htmlspecialchars()
+ * @param string $database
+ * @return string html link to default db page
+ */
+function PMA_getDbLink($database = null)
+{
+ if (!strlen($database)) {
+ if (!strlen($GLOBALS['db'])) {
+ return '';
+ }
+ $database = $GLOBALS['db'];
+ } else {
+ $database = PMA_unescape_mysql_wildcards($database);
+ }
+
+ return '<a href="' . $GLOBALS['cfg']['DefaultTabDatabase'] . '?' . PMA_generate_common_url($database) . '"'
+ .' title="' . sprintf($GLOBALS['strJumpToDB'], htmlspecialchars($database)) . '">'
+ .htmlspecialchars($database) . '</a>';
+}
+
+/**
+ * Displays a lightbulb hint explaining a known external bug
+ * that affects a functionality
+ *
+ * @uses PMA_MYSQL_INT_VERSION
+ * @uses $GLOBALS['strKnownExternalBug']
+ * @uses PMA_showHint()
+ * @uses sprintf()
+ * @param string $functionality localized message explaining the func.
+ * @param string $component 'mysql' (eventually, 'php')
+ * @param string $minimum_version of this component
+ * @param string $bugref bug reference for this component
+ */
+function PMA_externalBug($functionality, $component, $minimum_version, $bugref)
+{
+ if ($component == 'mysql' && PMA_MYSQL_INT_VERSION < $minimum_version) {
+ echo PMA_showHint(sprintf($GLOBALS['strKnownExternalBug'], $functionality, 'http://bugs.mysql.com/' . $bugref));
+ }
+}
+
+/**
+ * Generates and echoes an HTML checkbox
+ *
+ * @param string $html_field_name the checkbox HTML field
+ * @param string $label
+ * @param boolean $checked is it initially checked?
+ * @param boolean $onclick should it submit the form on click?
+ */
+function PMA_generate_html_checkbox($html_field_name, $label, $checked, $onclick) {
+
+ echo '<input type="checkbox" name="' . $html_field_name . '" id="' . $html_field_name . '"' . ($checked ? ' checked="checked"' : '') . ($onclick ? ' onclick="this.form.submit();"' : '') . ' /><label for="' . $html_field_name . '">' . $label . '</label>';
+}
+
+/**
+ * Generates and echoes a set of radio HTML fields
+ *
+ * @uses htmlspecialchars()
+ * @param string $html_field_name the radio HTML field
+ * @param array $choices the choices values and labels
+ * @param string $checked_choice the choice to check by default
+ * @param boolean $line_break whether to add an HTML line break after a choice
+ * @param boolean $escape_label whether to use htmlspecialchars() on label
+ * @param string $class enclose each choice with a div of this class
+ */
+function PMA_generate_html_radio($html_field_name, $choices, $checked_choice = '', $line_break = true, $escape_label = true, $class='') {
+ foreach ($choices as $choice_value => $choice_label) {
+ if (! empty($class)) {
+ echo '<div class="' . $class . '">';
+ }
+ $html_field_id = $html_field_name . '_' . $choice_value;
+ echo '<input type="radio" name="' . $html_field_name . '" id="' . $html_field_id . '" value="' . htmlspecialchars($choice_value) . '"';
+ if ($choice_value == $checked_choice) {
+ echo ' checked="checked"';
+ }
+ echo ' />' . "\n";
+ echo '<label for="' . $html_field_id . '">' . ($escape_label ? htmlspecialchars($choice_label) : $choice_label) . '</label>';
+ if ($line_break) {
+ echo '<br />';
+ }
+ if (! empty($class)) {
+ echo '</div>';
+ }
+ echo "\n";
+ }
+}
+
+/**
+ * Generates and echoes an HTML dropdown
+ *
+ * @uses htmlspecialchars()
+ * @param string $select_name
+ * @param array $choices the choices values
+ * @param string $active_choice the choice to select by default
+ * @todo support titles
+ */
+function PMA_generate_html_dropdown($select_name, $choices, $active_choice)
+{
+ $result = '<select name="' . htmlspecialchars($select_name) . '" id="' . htmlspecialchars($select_name) . '">"' . "\n";
+ foreach ($choices as $one_choice) {
+ $result .= '<option value="' . htmlspecialchars($one_choice) . '"';
+ if ($one_choice == $active_choice) {
+ $result .= ' selected="selected"';
+ }
+ $result .= '>' . htmlspecialchars($one_choice) . '</option>' . "\n";
+ }
+ $result .= '</select>' . "\n";
+ echo $result;
+}
+
+/**
+ * Generates a slider effect (Mootools)
+ * Takes care of generating the initial <div> and the link
+ * controlling the slider; you have to generate the </div> yourself
+ * after the sliding section.
+ *
+ * @uses $GLOBALS['cfg']['InitialSlidersState']
+ * @param string $id the id of the <div> on which to apply the effect
+ * @param string $message the message to show as a link
+ */
+function PMA_generate_slider_effect($id, $message)
+{
+ ?>
+<script type="text/javascript">
+// <![CDATA[
+window.addEvent('domready', function(){
+ var status = {
+ 'true': '- ',
+ 'false': '+ '
+ };
+
+ var anchor<?php echo $id; ?> = new Element('a', {
+ 'id': 'toggle_<?php echo $id; ?>',
+ 'href': '#',
+ 'events': {
+ 'click': function(){
+ mySlide<?php echo $id; ?>.toggle();
+ }
+ }
+ });
+
+ anchor<?php echo $id; ?>.appendText('<?php echo $message; ?>');
+ anchor<?php echo $id; ?>.injectBefore('<?php echo $id; ?>');
+
+ var slider_status<?php echo $id; ?> = new Element('span', {
+ 'id': 'slider_status_<?php echo $id; ?>'
+ });
+ slider_status<?php echo $id; ?>.appendText('<?php echo $GLOBALS['cfg']['InitialSlidersState'] == 'closed' ? '+' : '-';?> ');
+ slider_status<?php echo $id; ?>.injectBefore('toggle_<?php echo $id; ?>');
+
+ var mySlide<?php echo $id; ?> = new Fx.Slide('<?php echo $id; ?>');
+ <?php
+ if ($GLOBALS['cfg']['InitialSlidersState'] == 'closed') {
+ ?>
+ mySlide<?php echo $id; ?>.hide();
+ <?php
+ }
+ ?>
+ mySlide<?php echo $id; ?>.addEvent('complete', function() {
+ $('slider_status_<?php echo $id; ?>').set('html', status[mySlide<?php echo $id; ?>.open]);
+ });
+
+ $('<?php echo $id; ?>').style.display="block";
+});
+ document.write('<div id="<?php echo $id; ?>" <?php echo $GLOBALS['cfg']['InitialSlidersState'] == 'closed' ? ' style="display: none;"' : ''; ?>>');
+ //]]>
+ </script>
+ <noscript>
+ <div id="<?php echo $id; ?>">
+ </noscript>
+ <?php
+}
+
+/**
+ * Verifies if something is cached in the session
+ *
+ * @param unknown_type $var
+ * @param unknown_type $val
+ * @param unknown_type $server
+ * @return mixed
+ */
+function PMA_cacheExists($var, $server = 0)
+{
+ if (true === $server) {
+ $server = $GLOBALS['server'];
+ }
+ return isset($_SESSION['cache']['server_' . $server][$var]);
+}
+
+/**
+ * Gets cached information from the session
+ *
+ * @param unknown_type $var
+ * @param unknown_type $val
+ * @param unknown_type $server
+ * @return mixed
+ */
+function PMA_cacheGet($var, $server = 0)
+{
+ if (true === $server) {
+ $server = $GLOBALS['server'];
+ }
+ if (isset($_SESSION['cache']['server_' . $server][$var])) {
+ return $_SESSION['cache']['server_' . $server][$var];
+ } else {
+ return null;
+ }
+}
+
+/**
+ * Caches information in the session
+ *
+ * @param unknown_type $var
+ * @param unknown_type $val
+ * @param unknown_type $server
+ * @return mixed
+ */
+function PMA_cacheSet($var, $val = null, $server = 0)
+{
+ if (true === $server) {
+ $server = $GLOBALS['server'];
+ }
+ $_SESSION['cache']['server_' . $server][$var] = $val;
+}
+
+/**
+ * Removes cached information from the session
+ *
+ * @param unknown_type $var
+ * @param unknown_type $server
+ * @return mixed
+ */
+function PMA_cacheUnset($var, $server = 0)
+{
+ if (true === $server) {
+ $server = $GLOBALS['server'];
+ }
+ unset($_SESSION['cache']['server_' . $server][$var]);
+}
+
+/**
+ * Converts a bit value to printable format;
+ * in MySQL a BIT field can be from 1 to 64 bits so we need this
+ * function because in PHP, decbin() supports only 32 bits
+ *
+ * @uses ceil()
+ * @uses decbin()
+ * @uses ord()
+ * @uses substr()
+ * @uses sprintf()
+ * @param numeric $value coming from a BIT field
+ * @param integer $length
+ * @return string the printable value
+ */
+function PMA_printable_bit_value($value, $length) {
+ $printable = '';
+ for ($i = 0; $i < ceil($length / 8); $i++) {
+ $printable .= sprintf('%08d', decbin(ord(substr($value, $i, 1))));
+ }
+ $printable = substr($printable, -$length);
+ return $printable;
+}
+
+/**
+ * Extracts the various parts from a field type spec
+ *
+ * @uses strpos()
+ * @uses chop()
+ * @uses substr()
+ * @param string $fieldspec
+ * @return array associative array containing type, spec_in_brackets
+ * and possibly enum_set_values (another array)
+ * @author Marc Delisle
+ * @author Joshua Hogendorn
+ */
+function PMA_extractFieldSpec($fieldspec) {
+ $first_bracket_pos = strpos($fieldspec, '(');
+ if ($first_bracket_pos) {
+ $spec_in_brackets = chop(substr($fieldspec, $first_bracket_pos + 1, (strpos($fieldspec, ')') - $first_bracket_pos - 1)));
+ // convert to lowercase just to be sure
+ $type = strtolower(chop(substr($fieldspec, 0, $first_bracket_pos)));
+ } else {
+ $type = $fieldspec;
+ $spec_in_brackets = '';
+ }
+
+ if ('enum' == $type || 'set' == $type) {
+ // Define our working vars
+ $enum_set_values = array();
+ $working = "";
+ $in_string = false;
+ $index = 0;
+
+ // While there is another character to process
+ while (isset($fieldspec[$index])) {
+ // Grab the char to look at
+ $char = $fieldspec[$index];
+
+ // If it is a single quote, needs to be handled specially
+ if ($char == "'") {
+ // If we are not currently in a string, begin one
+ if (! $in_string) {
+ $in_string = true;
+ $working = "";
+ // Otherwise, it may be either an end of a string, or a 'double quote' which can be handled as-is
+ } else {
+ // Check out the next character (if possible)
+ $has_next = isset($fieldspec[$index + 1]);
+ $next = $has_next ? $fieldspec[$index + 1] : null;
+
+ // If we have reached the end of our 'working' string (because there are no more chars, or the next char is not another quote)
+ if (! $has_next || $next != "'") {
+ $enum_set_values[] = $working;
+ $in_string = false;
+
+ // Otherwise, this is a 'double quote', and can be added to the working string
+ } elseif ($next == "'") {
+ $working .= "'";
+ // Skip the next char; we already know what it is
+ $index++;
+ }
+ }
+ // escaping of a quote?
+ } elseif ('\\' == $char && isset($fieldspec[$index + 1]) && "'" == $fieldspec[$index + 1]) {
+ $working .= "'";
+ $index++;
+ // Otherwise, add it to our working string like normal
+ } else {
+ $working .= $char;
+ }
+ // Increment character index
+ $index++;
+ } // end while
+ } else {
+ $enum_set_values = array();
+ }
+
+ return array(
+ 'type' => $type,
+ 'spec_in_brackets' => $spec_in_brackets,
+ 'enum_set_values' => $enum_set_values
+ );
+}
+
+/**
+ * Verifies if this table's engine supports foreign keys
+ *
+ * @uses strtoupper()
+ * @param string $engine
+ * @return boolean
+ */
+function PMA_foreignkey_supported($engine) {
+ $engine = strtoupper($engine);
+ if ('INNODB' == $engine || 'PBXT' == $engine) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Replaces some characters by a displayable equivalent
+ *
+ * @uses str_replace()
+ * @param string $content
+ * @return string the content with characters replaced
+ */
+function PMA_replace_binary_contents($content) {
+ $result = str_replace("\x00", '\0', $content);
+ $result = str_replace("\x08", '\b', $result);
+ $result = str_replace("\x0a", '\n', $result);
+ $result = str_replace("\x0d", '\r', $result);
+ $result = str_replace("\x1a", '\Z', $result);
+ return $result;
+}
+
+/**
+ *
+ * If the first character given is \n (CR) we will add an extra \n
+ *
+ * @uses strpos()
+ * @return string with the chars replaced
+ */
+
+function PMA_duplicateFirstNewline($string){
+ $first_occurence = strpos($string, "\n");
+ if($first_occurence == 1){
+ $string = "\n".$string;
+ }
+ return $string;
+}
+
+?>
diff --git a/libraries/config.default.php b/libraries/config.default.php
new file mode 100644
index 0000000000..6f3befbfce
--- /dev/null
+++ b/libraries/config.default.php
@@ -0,0 +1,2811 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * <code>
+ * N N OOO !! DDDD OOO N N OOO TTTTT EEEE DDDD I TTTTT !!
+ * NN N O O !! D D O O NN N O O T E D D I T !!
+ * N N N O O !! D D O O N N N O O T EEEE D D I T !!
+ * N NN O O D D O O N NN O O T E D D I T
+ * N N OOO !! DDDD OOO N N OOO T EEEE DDDD I T !!
+ * </code>
+ *
+ * DO NOT EDIT THIS FILE, EDIT config.inc.php INSTEAD !!!
+ *
+ * phpMyAdmin default configuration, you can copy values from here to your
+ * config.inc.php
+ *
+ * All directives are explained in Documentation.html
+ *
+ * @version $Id$
+ */
+
+/**
+ * Your phpMyAdmin URL.
+ *
+ * Complete the variable below with the full URL ie
+ * http://www.your_web.net/path_to_your_phpMyAdmin_directory/
+ *
+ * It must contain characters that are valid for a URL, and the path is
+ * case sensitive on some Web servers, for example Unix-based servers.
+ *
+ * In most cases you can leave this variable empty, as the correct value
+ * will be detected automatically. However, we recommend that you do
+ * test to see that the auto-detection code works in your system. A good
+ * test is to browse a table, then edit a row and save it. There will be
+ * an error message if phpMyAdmin cannot auto-detect the correct value.
+ *
+ * @global string $cfg['PmaAbsoluteUri']
+ */
+$cfg['PmaAbsoluteUri'] = '';
+
+/**
+ * Disable the default warning that is displayed on the DB Details Structure page if
+ * any of the required Tables for the relation features could not be found
+ *
+ * @global boolean $cfg['PmaNoRelation_DisableWarning']
+ */
+$cfg['PmaNoRelation_DisableWarning'] = false;
+
+/**
+ * Disable the default warning that is displayed if Suhosin is detected
+ *
+ * @global boolean $cfg['SuhosinDisableWarning']
+ */
+$cfg['SuhosinDisableWarning'] = false;
+
+/**
+ * Allows phpMyAdmin to be included from a document located on
+ * another domain; setting this to true is a potential security hole
+ *
+ * @global boolean $cfg['AllowThirdPartyFraming']
+ */
+$cfg['AllowThirdPartyFraming'] = false;
+
+/**
+ * The 'cookie' auth_type uses blowfish algorithm to encrypt the password. If
+ * at least one server configuration uses 'cookie' auth_type, enter here a
+ * pass phrase that will be used by blowfish. The maximum length seems to be 46
+ * characters.
+ *
+ * @global string $cfg['blowfish_secret']
+ */
+$cfg['blowfish_secret'] = '';
+
+
+/*******************************************************************************
+ * Server(s) configuration
+ *
+ * The $cfg['Servers'] array starts with $cfg['Servers'][1]. Do not use
+ * $cfg['Servers'][0]. You can disable a server configuration entry by setting host
+ * to ''. If you want more than one server, just copy following section
+ * (including $i incrementation) several times. There is no need to define
+ * full server array, just define values you need to change.
+ *
+ * @global array $cfg['Servers']
+ */
+$cfg['Servers'] = array();
+
+$i = 1;
+
+/**
+ * MySQL hostname or IP address
+ *
+ * @global string $cfg['Servers'][$i]['host']
+ */
+$cfg['Servers'][$i]['host'] = 'localhost';
+
+/**
+ * MySQL port - leave blank for default port
+ *
+ * @global string $cfg['Servers'][$i]['port']
+ */
+$cfg['Servers'][$i]['port'] = '';
+
+/**
+ * Path to the socket - leave blank for default socket
+ *
+ * @global string $cfg['Servers'][$i]['socket']
+ */
+$cfg['Servers'][$i]['socket'] = '';
+
+/**
+ * Use SSL for connecting to MySQL server?
+ *
+ * @global boolean $cfg['Servers'][$i]['ssl']
+ */
+$cfg['Servers'][$i]['ssl'] = false;
+
+/**
+ * How to connect to MySQL server ('tcp' or 'socket')
+ *
+ * @global string $cfg['Servers'][$i]['connect_type']
+ */
+$cfg['Servers'][$i]['connect_type'] = 'tcp';
+
+/**
+ * The PHP MySQL extension to use ('mysql' or 'mysqli')
+ *
+ * @global string $cfg['Servers'][$i]['extension']
+ */
+$cfg['Servers'][$i]['extension'] = 'mysql';
+
+/* rajk - added for blobstreaming */
+$cfg['Servers'][$i]['bs_garbage_threshold'] = '';
+$cfg['Servers'][$i]['bs_repository_threshold'] = '';
+$cfg['Servers'][$i]['bs_temp_blob_timeout'] = '';
+$cfg['Servers'][$i]['bs_temp_log_threshold'] = '';
+
+/**
+ * Use compressed protocol for the MySQL connection (requires PHP >= 4.3.0)
+ *
+ * @global boolean $cfg['Servers'][$i]['compress']
+ */
+$cfg['Servers'][$i]['compress'] = false;
+
+/**
+ * MySQL control user settings (this user must have read-only
+ * access to the "mysql/user" and "mysql/db" tables). The controluser is also
+ * used for all relational features (pmadb)
+ *
+ * @global string $cfg['Servers'][$i]['controluser']
+ */
+$cfg['Servers'][$i]['controluser'] = '';
+
+/**
+ * MySQL control user settings (this user must have read-only
+ * access to the "mysql/user" and "mysql/db" tables). The controluser is also
+ * used for all relational features (pmadb)
+ *
+ * @global string $cfg['Servers'][$i]['controlpass']
+ */
+$cfg['Servers'][$i]['controlpass'] = '';
+
+/**
+ * Authentication method (valid choices: config, http, signon or cookie)
+ *
+ * @global string $cfg['Servers'][$i]['auth_type']
+ */
+$cfg['Servers'][$i]['auth_type'] = 'cookie';
+
+/**
+ * File containing Swekey ids and login names (see /contrib);
+ * leave empty to deactivate Swekey hardware authentication
+ *
+ * @global string $cfg['Servers'][$i]['auth_swekey_config']
+ */
+$cfg['Servers'][$i]['auth_swekey_config'] = '';
+
+/**
+ * MySQL user
+ *
+ * @global string $cfg['Servers'][$i]['user']
+ */
+$cfg['Servers'][$i]['user'] = 'root';
+
+/**
+ * MySQL password (only needed with 'config' auth_type)
+ *
+ * @global string $cfg['Servers'][$i]['password']
+ */
+$cfg['Servers'][$i]['password'] = '';
+
+/**
+ * Session to use for 'signon' authentication method
+ *
+ * @global string $cfg['Servers'][$i]['SignonSession']
+ */
+$cfg['Servers'][$i]['SignonSession'] = '';
+
+/**
+ * URL where to redirect user to login for 'signon' authentication method
+ *
+ * @global string $cfg['Servers'][$i]['SignonURL']
+ */
+$cfg['Servers'][$i]['SignonURL'] = '';
+
+/**
+ * URL where to redirect user after logout
+ *
+ * @global string $cfg['Servers'][$i]['LogoutURL']
+ */
+$cfg['Servers'][$i]['LogoutURL'] = '';
+
+/**
+ * Whether to try to connect without password
+ *
+ * @global boolean $cfg['Servers'][$i]['nopassword']
+ */
+$cfg['Servers'][$i]['nopassword'] = false;
+
+/**
+ * If set to a db-name, only this db is displayed in left frame
+ * It may also be an array of db-names, where sorting order is relevant.
+ *
+ * @global string $cfg['Servers'][$i]['only_db']
+ */
+$cfg['Servers'][$i]['only_db'] = '';
+
+/**
+ * Database name to be hidden from listings
+ *
+ * @global string $cfg['Servers'][$i]['hide_db']
+ */
+$cfg['Servers'][$i]['hide_db'] = '';
+
+/**
+ * Verbose name for this host - leave blank to show the hostname
+ * (for HTTP authentication, all non-US-ASCII characters will be stripped)
+ *
+ * @global string $cfg['Servers'][$i]['verbose']
+ */
+$cfg['Servers'][$i]['verbose'] = '';
+
+/**
+ * Database used for Relation, Bookmark and PDF Features
+ * (see scripts/create_tables.sql)
+ * - leave blank for no support
+ * DEFAULT: 'phpmyadmin'
+ *
+ * @global string $cfg['Servers'][$i]['pmadb']
+ */
+$cfg['Servers'][$i]['pmadb'] = '';
+
+/**
+ * Bookmark table
+ * - leave blank for no bookmark support
+ * DEFAULT: 'pma_bookmark'
+ *
+ * @global string $cfg['Servers'][$i]['bookmarktable']
+ */
+$cfg['Servers'][$i]['bookmarktable'] = '';
+
+/**
+ * table to describe the relation between links (see doc)
+ * - leave blank for no relation-links support
+ * DEFAULT: 'pma_relation'
+ *
+ * @global string $cfg['Servers'][$i]['relation']
+ */
+$cfg['Servers'][$i]['relation'] = '';
+
+/**
+ * table to describe the display fields
+ * - leave blank for no display fields support
+ * DEFAULT: 'pma_table_info'
+ *
+ * @global string $cfg['Servers'][$i]['table_info']
+ */
+$cfg['Servers'][$i]['table_info'] = '';
+
+/**
+ * table to describe the tables position for the PDF schema
+ * - leave blank for no PDF schema support
+ * DEFAULT: 'pma_table_coords'
+ *
+ * @global string $cfg['Servers'][$i]['table_coords']
+ */
+$cfg['Servers'][$i]['table_coords'] = '';
+
+/**
+ * table to describe pages of relationpdf
+ * - leave blank if you don't want to use this
+ * DEFAULT: 'pma_pdf_pages'
+ *
+ * @global string $cfg['Servers'][$i]['pdf_pages']
+ */
+$cfg['Servers'][$i]['pdf_pages'] = '';
+
+/**
+ * table to store column information
+ * - leave blank for no column comments/mime types
+ * DEFAULT: 'pma_column_info'
+ *
+ * @global string $cfg['Servers'][$i]['column_info']
+ */
+$cfg['Servers'][$i]['column_info'] = '';
+
+/**
+ * table to store SQL history
+ * - leave blank for no SQL query history
+ * DEFAULT: 'pma_history'
+ *
+ * @global string $cfg['Servers'][$i]['history']
+ */
+$cfg['Servers'][$i]['history'] = '';
+
+/**
+ * table to store the coordinates for Designer
+ * - leave blank for no Designer feature
+ * DEFAULT: 'pma_designer_coords'
+ *
+ * @global string $cfg['Servers'][$i]['designer_coords']
+ */
+$cfg['Servers'][$i]['designer_coords'] = '';
+
+/**
+ * set to false if you know that your pma_* tables are up to date.
+ * This prevents compatibility checks and thereby increases performance.
+ *
+ * @global boolean $cfg['Servers'][$i]['verbose_check']
+ */
+$cfg['Servers'][$i]['verbose_check'] = true;
+
+/**
+ * whether to allow root login
+ *
+ * @global boolean $cfg['Servers'][$i]['AllowRoot']
+ */
+$cfg['Servers'][$i]['AllowRoot'] = true;
+
+/**
+ * whether to allow login of root user with no password (MySQL default)
+ *
+ * @global boolean $cfg['Servers'][$i]['AllowNoPasswordRoot']
+ */
+$cfg['Servers'][$i]['AllowNoPasswordRoot'] = false;
+
+/**
+ * Host authentication order, leave blank to not use
+ *
+ * @global string $cfg['Servers'][$i]['AllowDeny']['order']
+ */
+$cfg['Servers'][$i]['AllowDeny']['order'] = '';
+
+/**
+ * Disable use of INFORMATION_SCHEMA
+ *
+ * @see http://sf.net/support/tracker.php?aid=1849494
+ * @see http://bugs.mysql.com/19588
+ * @global boolean $cfg['Servers'][$i]['DisableIS']
+ */
+$cfg['Servers'][$i]['DisableIS'] = true;
+
+/**
+ * Host authentication rules, leave blank for defaults
+ *
+ * @global array $cfg['Servers'][$i]['AllowDeny']['rules']
+ */
+$cfg['Servers'][$i]['AllowDeny']['rules'] = array();
+
+/**
+ * SQL command to fetch available databases
+ *
+ * by default most user will be fine with SHOW DATABASES,
+ * for servers with a huge amount of databases it is possible to
+ * define a command which executes faster but with less information
+ *
+ * especially when accessing database servers from ISPs changing this command
+ * can result in a great speed improvement
+ *
+ * false will disable fetching databases from the server, only databases in
+ * $cfg['Servers'][$i]['only_db'] will be displayed
+ *
+ * #user# will be replaced by current user
+ *
+ * examples:
+ * 'SHOW DATABASES'
+ * "SHOW DATABASES LIKE '#user#\_%'"
+ * 'SELECT DISTINCT TABLE_SCHEMA FROM information_schema.SCHEMA_PRIVILEGES'
+ * 'SELECT SCHEMA_NAME FROM information_schema.SCHEMATA'
+ * false
+ *
+ * @global array $cfg['Servers'][$i]['ShowDatabasesCommand']
+ */
+$cfg['Servers'][$i]['ShowDatabasesCommand'] = 'SHOW DATABASES';
+
+/**
+ * Whether to count tables when showing database list
+ *
+ * @global array $cfg['Servers'][$i]['CountTables']
+ */
+$cfg['Servers'][$i]['CountTables'] = true;
+
+/**
+ * Default server (0 = no default server)
+ *
+ * If you have more than one server configured, you can set $cfg['ServerDefault']
+ * to any one of them to auto-connect to that server when phpMyAdmin is started,
+ * or set it to 0 to be given a list of servers without logging in
+ * If you have only one server configured, $cfg['ServerDefault'] *MUST* be
+ * set to that server.
+ *
+ * @global integer $cfg['ServerDefault']
+ */
+$cfg['ServerDefault'] = 1;
+
+/*
+ * Other core phpMyAdmin settings
+ */
+/**
+ * maximum number of db's displayed in left frame and database list
+ *
+ * @global integer $cfg['MaxDbList']
+ */
+$cfg['MaxDbList'] = 100;
+
+/**
+ * maximum number of tables displayed in table list
+ *
+ * @global integer $cfg['MaxTableList']
+ */
+$cfg['MaxTableList'] = 250;
+
+/**
+ * maximum number of characters when a SQL query is displayed
+ *
+ * @global integer $cfg['MaxCharactersInDisplayedSQL']
+ */
+$cfg['MaxCharactersInDisplayedSQL'] = 1000;
+
+/**
+ * use GZIP output buffering if possible (true|false|'auto')
+ *
+ * @global string $cfg['OBGzip']
+ */
+$cfg['OBGzip'] = 'auto';
+
+/**
+ * use persistent connections to MySQL database
+ *
+ * @global boolean $cfg['PersistentConnections']
+ */
+$cfg['PersistentConnections'] = false;
+
+/**
+ * whether to force using HTTPS
+ *
+ * @global boolean $cfg['ForceSSL']
+ */
+$cfg['ForceSSL'] = false;
+
+/**
+ * maximum execution time in seconds (0 for no limit)
+ *
+ * @global integer $cfg['ExecTimeLimit']
+ */
+$cfg['ExecTimeLimit'] = 300;
+
+/**
+ * maximum allocated bytes (0 for no limit)
+ *
+ * @global integer $cfg['MemoryLimit']
+ */
+$cfg['MemoryLimit'] = 0;
+
+/**
+ * mark used tables, make possible to show locked tables (since MySQL 3.23.30)
+ *
+ * @global boolean $cfg['SkipLockedTables']
+ */
+$cfg['SkipLockedTables'] = false;
+
+/**
+ * show SQL queries as run
+ *
+ * @global boolean $cfg['ShowSQL']
+ */
+$cfg['ShowSQL'] = true;
+
+/**
+ * show a 'Drop database' link to normal users
+ *
+ * @global boolean $cfg['AllowUserDropDatabase']
+ */
+$cfg['AllowUserDropDatabase'] = false;
+
+/**
+ * confirm 'DROP TABLE' & 'DROP DATABASE'
+ *
+ * @global boolean $cfg['Confirm']
+ */
+$cfg['Confirm'] = true;
+
+/**
+ * recall previous login in cookie authentication mode or not
+ *
+ * @global boolean $cfg['LoginCookieRecall']
+ */
+$cfg['LoginCookieRecall'] = true;
+
+/**
+ * validity of cookie login (in seconds)
+ *
+ * @global integer $cfg['LoginCookieValidity']
+ */
+$cfg['LoginCookieValidity'] = 1800;
+
+/**
+ * how long login cookie should be stored (in seconds)
+ *
+ * @global integer $cfg['LoginCookieStore']
+ */
+$cfg['LoginCookieStore'] = 0;
+
+/**
+ * whether to delete all login cookies on logout
+ *
+ * @global boolean $cfg['LoginCookieDeleteAll']
+ */
+$cfg['LoginCookieDeleteAll'] = true;
+
+/**
+ * whether to enable the "database search" feature or not
+ *
+ * @global boolean $cfg['UseDbSearch']
+ */
+$cfg['UseDbSearch'] = true;
+
+/**
+ * if set to true, PMA continues computing multiple-statement queries
+ * even if one of the queries failed
+ *
+ * @global boolean $cfg['IgnoreMultiSubmitErrors']
+ */
+$cfg['IgnoreMultiSubmitErrors'] = false;
+
+/**
+ * if set to true, PMA will show the affected rows of EACH statement on
+ * multiple-statement queries. See the libraries/import.php file for
+ * hard coded defaults on how many queries a statement may contain!
+ *
+ * @global boolean $cfg['VerboseMultiSubmit']
+ */
+$cfg['VerboseMultiSubmit'] = true;
+
+/**
+ * allow login to any user entered server in cookie based authentication
+ *
+ * @global boolean $cfg['AllowArbitraryServer']
+ */
+$cfg['AllowArbitraryServer'] = false;
+
+
+/*******************************************************************************
+ * Error handler configuration
+ *
+ * this configures phpMyAdmins own error handler, it is used to avoid information
+ * dislcosure, gather errors for logging, reporting and displaying
+ *
+ * @global array $cfg['Error_Handler']
+ */
+$cfg['Error_Handler'] = array();
+
+/**
+ * whether to display errors or not
+ *
+ * this does not affect errors of type E_USER_*
+ *
+ * @global boolean $cfg['Error_Handler']['display']
+ */
+$cfg['Error_Handler']['display'] = false;
+
+/**
+ * where to log errors, false or empty to disable
+ *
+ * <code>
+ * // EXAMPLE log to std PHP error log
+ * $cfg['Error_Handler']['log'] = array(0);
+ * // EXAMPLE mail errors
+ * $cfg['Error_Handler']['log'] = array(1, 'admin@example.org');
+ * // EXAMPLE append to specific file
+ * $cfg['Error_Handler']['log'] = array(3, '/var/log/phpmyadmin_error.log');
+ * </code>
+ *
+ * @see http://php.net/error_log
+ * @global string $cfg['Error_Handler']['log']
+ */
+$cfg['Error_Handler']['log'] = false;
+
+/**
+ * gather all errors in session to be displayed on a error reporting page
+ * for viewing and/or sending to phpMyAdmin developer team
+ *
+ * @global boolean $cfg['Error_Handler']['gather']
+ */
+$cfg['Error_Handler']['gather'] = false;
+
+
+/*******************************************************************************
+ * Left frame setup
+ */
+
+/**
+ * use a select-based menu and display only the current tables in the left frame.
+ *
+ * @global boolean $cfg['LeftFrameLight']
+ */
+$cfg['LeftFrameLight'] = true;
+
+/**
+ * turn the select-based light menu into a tree
+ *
+ * @global boolean $cfg['LeftFrameDBTree']
+ */
+$cfg['LeftFrameDBTree'] = true;
+
+/**
+ * the separator to sub-tree the select-based light menu tree
+ *
+ * @global string $cfg['LeftFrameDBSeparator']
+ */
+$cfg['LeftFrameDBSeparator'] = '_';
+
+/**
+ * Which string will be used to generate table prefixes
+ * to split/nest tables into multiple categories
+ *
+ * @global string $cfg['LeftFrameTableSeparator']
+ */
+$cfg['LeftFrameTableSeparator']= '__';
+
+/**
+ * How many sublevels should be displayed when splitting up tables by the above Separator
+ *
+ * @global integer $cfg['LeftFrameTableLevel']
+ */
+$cfg['LeftFrameTableLevel'] = 1;
+
+/**
+ * display table comment as tooltip in left frame
+ *
+ * @global boolean $cfg['ShowTooltip']
+ */
+$cfg['ShowTooltip'] = true;
+
+/**
+ * if ShowToolTip is enabled, this defines that table/db comments
+ *
+ * @global boolean $cfg['ShowTooltipAliasDB']
+ */
+$cfg['ShowTooltipAliasDB'] = false;
+
+/**
+ * are shown (in the left menu and db_structure) instead of table/db names.
+ * Setting ShowTooltipAliasTB to 'nested' will only use the Aliases for nested
+ * descriptors, not the table itself.
+ *
+ * @global boolean $cfg['ShowTooltipAliasTB']
+ */
+$cfg['ShowTooltipAliasTB'] = false;
+
+/**
+ * display logo at top of left frame
+ *
+ * @global boolean $cfg['LeftDisplayLogo']
+ */
+$cfg['LeftDisplayLogo'] = true;
+
+/**
+ * where should logo link point to (can also contain an external URL)
+ *
+ * @global string $cfg['LeftLogoLink']
+ */
+$cfg['LeftLogoLink'] = 'main.php';
+
+/**
+ * whether to open the linked page in the main window ('main') or
+ * in a new window ('new')
+ *
+ * @global string $cfg['LeftLogoLinkWindow']
+ */
+$cfg['LeftLogoLinkWindow'] = 'main';
+
+/**
+ * display server choice at top of left frame
+ *
+ * @global boolean $cfg['LeftDisplayServers']
+ */
+$cfg['LeftDisplayServers'] = false;
+
+/**
+ * server choice as links
+ *
+ * @global boolean $cfg['DisplayServersList']
+ */
+$cfg['DisplayServersList'] = false;
+
+/**
+ * database choice in light as links
+ *
+ * @global boolean $cfg['DisplayDatabasesList']
+ */
+$cfg['DisplayDatabasesList'] = 'auto';
+
+/**
+ * target of the navigation panel quick access icon
+ *
+ * Possible values:
+ * 'tbl_structure.php' = fields list
+ * 'tbl_sql.php' = SQL form
+ * 'tbl_select.php' = search page
+ * 'tbl_change.php' = insert row page
+ * 'sql.php' = browse page
+ *
+ * @global string $cfg['LeftDefaultTabTable']
+ */
+$cfg['LeftDefaultTabTable'] = 'tbl_structure.php';
+
+
+/*******************************************************************************
+ * In the main frame, at startup...
+ */
+
+/**
+ * allow to display statistics and space usage in the pages about database
+ * details and table properties
+ *
+ * @global boolean $cfg['ShowStats']
+ */
+$cfg['ShowStats'] = true;
+
+/**
+ * show PHP info link
+ *
+ * @global boolean $cfg['ShowPhpInfo']
+ */
+$cfg['ShowPhpInfo'] = false;
+
+/**
+ * show MySQL server information
+ *
+ * @global boolean $cfg['ShowServerInfo']
+ */
+$cfg['ShowServerInfo'] = true;
+
+/**
+ * show change password link
+ *
+ * @global boolean $cfg['ShowChgPassword']
+ */
+$cfg['ShowChgPassword'] = true;
+
+/**
+ * show create database form
+ *
+ * @global boolean $cfg['ShowCreateDb']
+ */
+$cfg['ShowCreateDb'] = true;
+
+/**
+ * suggest a new DB name if possible (false = keep empty)
+ *
+ * @global boolean $cfg['SuggestDBName']
+ */
+$cfg['SuggestDBName'] = true;
+
+
+/*******************************************************************************
+ * In browse mode...
+ */
+
+/**
+ * Use icons instead of text for the navigation bar buttons
+ * and on right panel top menu (server db table) (true|false|'both')
+ *
+ * @global string $cfg['NavigationBarIconic']
+ */
+$cfg['NavigationBarIconic'] = 'both';
+
+/**
+ * allows to display all the rows
+ *
+ * @global boolean $cfg['ShowAll']
+ */
+$cfg['ShowAll'] = false;
+
+/**
+ * maximum number of rows to display
+ *
+ * @global integer $cfg['MaxRows']
+ */
+$cfg['MaxRows'] = 30;
+
+/**
+ * default for 'ORDER BY' clause (valid values are 'ASC', 'DESC' or 'SMART' -ie
+ * descending order for fields of type TIME, DATE, DATETIME & TIMESTAMP,
+ * ascending order else-)
+ *
+ * @global string $cfg['Order']
+ */
+$cfg['Order'] = 'ASC';
+
+
+/*******************************************************************************
+ * In edit mode...
+ */
+
+/**
+ * disallow editing of binary fields
+ * valid values are:
+ * false allow editing
+ * 'blob' allow editing except for BLOB fields
+ * 'all' disallow editing
+ *
+ * @global string $cfg['ProtectBinary']
+ */
+$cfg['ProtectBinary'] = 'blob';
+
+/**
+ * Display the function fields in edit/insert mode
+ *
+ * @global boolean $cfg['ShowFunctionFields']
+ */
+$cfg['ShowFunctionFields'] = true;
+
+/**
+ * Which editor should be used for CHAR/VARCHAR fields:
+ * input - allows limiting of input length
+ * textarea - allows newlines in fields
+ *
+ * @global string $cfg['CharEditing']
+ */
+$cfg['CharEditing'] = 'input';
+
+/**
+ * How many rows can be inserted at one time
+ *
+ * @global integer $cfg['InsertRows']
+ */
+$cfg['InsertRows'] = 2;
+
+/**
+ * Sort order for items in a foreign-key drop-down list.
+ * 'content' is the referenced data, 'id' is the key value.
+ *
+ * @global array $cfg['ForeignKeyDropdownOrder']
+ */
+$cfg['ForeignKeyDropdownOrder'] = array('content-id', 'id-content');
+
+/**
+ * A drop-down list will be used if fewer items are present
+ *
+ * @global integer $cfg['ForeignKeyMaxLimit']
+ */
+$cfg['ForeignKeyMaxLimit'] = 100;
+
+
+/*******************************************************************************
+ * For the export features...
+ */
+
+/**
+ * Allow for the use of zip compression (requires zip support to be enabled)
+ *
+ * @global boolean $cfg['ZipDump']
+ */
+$cfg['ZipDump'] = true;
+
+/**
+ * Allow for the use of gzip compression (requires zlib)
+ *
+ * @global boolean $cfg['GZipDump']
+ */
+$cfg['GZipDump'] = true;
+
+/**
+ * Allow for the use of bzip2 compression (requires bz2 extension)
+ *
+ * @global boolean $cfg['BZipDump']
+ */
+$cfg['BZipDump'] = true;
+
+/**
+ * Will compress gzip/bzip2 exports on the fly without the need for much memory.
+ * If you encounter problems with created gzip/bzip2 files disable this feature.
+ *
+ * @global boolean $cfg['CompressOnFly']
+ */
+$cfg['CompressOnFly'] = true;
+
+
+/*******************************************************************************
+ * Tabs display settings
+ */
+
+/**
+ * use graphically less intense menu tabs
+ *
+ * @global boolean $cfg['LightTabs']
+ */
+$cfg['LightTabs'] = false;
+
+/**
+ * Use icons instead of text for the table display of a database (true|false|'both')
+ *
+ * @global boolean $cfg['PropertiesIconic']
+ */
+$cfg['PropertiesIconic'] = true;
+
+/**
+ * How many columns should be used for table display of a database?
+ * (a value larger than 1 results in some information being hidden)
+ *
+ * @global integer $cfg['PropertiesNumColumns']
+ */
+$cfg['PropertiesNumColumns'] = 1;
+
+/**
+ * Possible values:
+ * 'main.php' = the welcome page
+ * (recommended for multiuser setups)
+ * 'server_databases.php' = list of databases
+ * 'server_status.php' = runtime information
+ * 'server_variables.php' = MySQL server variables
+ * 'server_privileges.php' = user management
+ * 'server_processlist.php' = process list
+ *
+ * @global string $cfg['DefaultTabServer']
+ */
+$cfg['DefaultTabServer'] = 'main.php';
+
+/**
+ * Possible values:
+ * 'db_structure.php' = tables list
+ * 'db_sql.php' = SQL form
+ * 'db_search.php' = search query
+ * 'db_operations.php' = operations on database
+ *
+ * @global string $cfg['DefaultTabDatabase']
+ */
+$cfg['DefaultTabDatabase'] = 'db_structure.php';
+
+/**
+ * Possible values:
+ * 'tbl_structure.php' = fields list
+ * 'tbl_sql.php' = SQL form
+ * 'tbl_select.php' = search page
+ * 'tbl_change.php' = insert row page
+ * 'sql.php' = browse page
+ *
+ * @global string $cfg['DefaultTabTable']
+ */
+$cfg['DefaultTabTable'] = 'sql.php';
+
+
+/*******************************************************************************
+ * Export defaults
+ */
+$cfg['Export'] = array();
+
+/**
+ * codegen/csv/excel/htmlexcel/htmlword/latex/ods/odt/pdf/sql/texytext/xls/xml/yaml
+ *
+ * @global string $cfg['Export']['format']
+ */
+$cfg['Export']['format'] = 'sql';
+
+/**
+ * none/zip/gzip/bzip2
+ *
+ * @global string $cfg['Export']['compression']
+ */
+$cfg['Export']['compression'] = 'none';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['asfile']
+ */
+$cfg['Export']['asfile'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['charset']
+ */
+$cfg['Export']['charset'] = '';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['onserver']
+ */
+$cfg['Export']['onserver'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['onserver_overwrite']
+ */
+$cfg['Export']['onserver_overwrite'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['remember_file_template']
+ */
+$cfg['Export']['remember_file_template'] = true;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['file_template_table']
+ */
+$cfg['Export']['file_template_table'] = '__TABLE__';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['file_template_database']
+ */
+$cfg['Export']['file_template_database'] = '__DB__';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['file_template_server']
+ */
+$cfg['Export']['file_template_server'] = '__SERVER__';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['ods_columns']
+ */
+$cfg['Export']['ods_columns'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['ods_null']
+ */
+$cfg['Export']['ods_null'] = 'NULL';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['odt_structure']
+ */
+$cfg['Export']['odt_structure'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['odt_data']
+ */
+$cfg['Export']['odt_data'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['odt_columns']
+ */
+$cfg['Export']['odt_columns'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['odt_relation']
+ */
+$cfg['Export']['odt_relation'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['odt_comments']
+ */
+$cfg['Export']['odt_comments'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['odt_mime']
+ */
+$cfg['Export']['odt_mime'] = true;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['odt_null']
+ */
+$cfg['Export']['odt_null'] = 'NULL';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['htmlexcel_columns']
+ */
+$cfg['Export']['htmlexcel_columns'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['htmlexcel_null']
+ */
+$cfg['Export']['htmlexcel_null'] = 'NULL';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['htmlword_structure']
+ */
+$cfg['Export']['htmlword_structure'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['htmlword_data']
+ */
+$cfg['Export']['htmlword_data'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['htmlword_columns']
+ */
+$cfg['Export']['htmlword_columns'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['htmlword_null']
+ */
+$cfg['Export']['htmlword_null'] = 'NULL';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['texytext_structure']
+ */
+$cfg['Export']['texytext_structure'] = TRUE;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['texytext_data']
+ */
+$cfg['Export']['texytext_data'] = TRUE;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['texytext_columns']
+ */
+$cfg['Export']['texytext_columns'] = FALSE;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['texytext_null']
+ */
+$cfg['Export']['texytext_null'] = 'NULL';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['xls_columns']
+ */
+$cfg['Export']['xls_columns'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['xls_null']
+ */
+$cfg['Export']['xls_null'] = 'NULL';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['csv_columns']
+ */
+$cfg['Export']['csv_columns'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['csv_null']
+ */
+$cfg['Export']['csv_null'] = 'NULL';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['csv_separator']
+ */
+$cfg['Export']['csv_separator'] = ';';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['csv_enclosed']
+ */
+$cfg['Export']['csv_enclosed'] = '"';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['csv_escaped']
+ */
+$cfg['Export']['csv_escaped'] = '\\';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['csv_terminated']
+ */
+$cfg['Export']['csv_terminated'] = 'AUTO';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['excel_columns']
+ */
+$cfg['Export']['excel_columns'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['excel_null']
+ */
+$cfg['Export']['excel_null'] = 'NULL';
+
+/**
+ * win/mac
+ *
+ * @global string $cfg['Export']['excel_edition']
+ */
+$cfg['Export']['excel_edition'] = 'win';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['latex_structure']
+ */
+$cfg['Export']['latex_structure'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['latex_data']
+ */
+$cfg['Export']['latex_data'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['latex_columns']
+ */
+$cfg['Export']['latex_columns'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['latex_relation']
+ */
+$cfg['Export']['latex_relation'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['latex_comments']
+ */
+$cfg['Export']['latex_comments'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['latex_mime']
+ */
+$cfg['Export']['latex_mime'] = true;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['latex_null']
+ */
+$cfg['Export']['latex_null'] = '\textit{NULL}';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['latex_caption']
+ */
+$cfg['Export']['latex_caption'] = true;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['latex_structure_caption']
+ */
+$cfg['Export']['latex_structure_caption'] = 'strLatexStructure';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['latex_structure_continued_caption']
+ */
+$cfg['Export']['latex_structure_continued_caption'] = 'strLatexStructure strLatexContinued';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['latex_data_caption']
+ */
+$cfg['Export']['latex_data_caption'] = 'strLatexContent';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['latex_data_continued_caption']
+ */
+$cfg['Export']['latex_data_continued_caption'] = 'strLatexContent strLatexContinued';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['latex_data_label']
+ */
+$cfg['Export']['latex_data_label'] = 'tab:__TABLE__-data';
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['latex_structure_label']
+ */
+$cfg['Export']['latex_structure_label'] = 'tab:__TABLE__-structure';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_structure']
+ */
+$cfg['Export']['sql_structure'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_data']
+ */
+$cfg['Export']['sql_data'] = true;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['sql_compatibility']
+ */
+$cfg['Export']['sql_compatibility'] = 'NONE';
+
+/**
+ * Whether to include comments in SQL export.
+ *
+ * @global string $cfg['Export']['sql_include_comments']
+ */
+$cfg['Export']['sql_include_comments'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_disable_fk']
+ */
+$cfg['Export']['sql_disable_fk'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_use_transaction']
+ */
+$cfg['Export']['sql_use_transaction'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_drop_database']
+ */
+$cfg['Export']['sql_drop_database'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_drop_table']
+ */
+$cfg['Export']['sql_drop_table'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_if_not_exists']
+ * true by default for correct behavior when dealing with exporting
+ * of VIEWs and the stand-in table
+ */
+$cfg['Export']['sql_if_not_exists'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_procedure_function']
+ */
+$cfg['Export']['sql_procedure_function'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_auto_increment']
+ */
+$cfg['Export']['sql_auto_increment'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_backquotes']
+ */
+$cfg['Export']['sql_backquotes'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_dates']
+ */
+$cfg['Export']['sql_dates'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_relation']
+ */
+$cfg['Export']['sql_relation'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_columns']
+ */
+$cfg['Export']['sql_columns'] = true;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_delayed']
+ */
+$cfg['Export']['sql_delayed'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_ignore']
+ */
+$cfg['Export']['sql_ignore'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_hex_for_blob']
+ */
+$cfg['Export']['sql_hex_for_blob'] = true;
+
+/**
+ * insert/update/replace
+ *
+ * @global string $cfg['Export']['sql_type']
+ */
+$cfg['Export']['sql_type'] = 'insert';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_extended']
+ */
+$cfg['Export']['sql_extended'] = true;
+
+/**
+ *
+ *
+ * @global integer $cfg['Export']['sql_max_query_size']
+ */
+$cfg['Export']['sql_max_query_size'] = 50000;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_comments']
+ */
+$cfg['Export']['sql_comments'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['sql_mime']
+ */
+$cfg['Export']['sql_mime'] = false;
+
+/**
+ * \n is replaced by new line
+ *
+ * @global string $cfg['Export']['sql_header_comment']
+ */
+$cfg['Export']['sql_header_comment'] = '';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['pdf_structure']
+ */
+$cfg['Export']['pdf_structure'] = false;
+
+/**
+ *
+ *
+ * @global boolean $cfg['Export']['pdf_data']
+ */
+$cfg['Export']['pdf_data'] = true;
+
+/**
+ *
+ *
+ * @global string $cfg['Export']['pdf_report_title']
+ */
+$cfg['Export']['pdf_report_title'] = '';
+
+
+/*******************************************************************************
+ * Import defaults
+ */
+$cfg['Import'] = array();
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['format']
+ */
+$cfg['Import']['format'] = 'sql';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Import']['allow_interrupt']
+ */
+$cfg['Import']['allow_interrupt'] = true;
+
+/**
+ *
+ *
+ * @global integer $cfg['Import']['skip_queries']
+ */
+$cfg['Import']['skip_queries'] = '0';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['sql_compatibility']
+ */
+$cfg['Import']['sql_compatibility'] = 'NONE';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Import']['csv_replace']
+ */
+$cfg['Import']['csv_replace'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['csv_terminated']
+ */
+$cfg['Import']['csv_terminated'] = ';';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['csv_enclosed']
+ */
+$cfg['Import']['csv_enclosed'] = '"';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['csv_escaped']
+ */
+$cfg['Import']['csv_escaped'] = '\\';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['csv_new_line']
+ */
+$cfg['Import']['csv_new_line'] = 'auto';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['csv_columns']
+ */
+$cfg['Import']['csv_columns'] = '';
+
+/**
+ *
+ *
+ * @global boolean $cfg['Import']['ldi_replace']
+ */
+$cfg['Import']['ldi_replace'] = false;
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['ldi_terminated']
+ */
+$cfg['Import']['ldi_terminated'] = ';';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['ldi_enclosed']
+ */
+$cfg['Import']['ldi_enclosed'] = '"';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['ldi_escaped']
+ */
+$cfg['Import']['ldi_escaped'] = '\\';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['ldi_new_line']
+ */
+$cfg['Import']['ldi_new_line'] = 'auto';
+
+/**
+ *
+ *
+ * @global string $cfg['Import']['ldi_columns']
+ */
+$cfg['Import']['ldi_columns'] = '';
+
+/**
+ * 'auto' for auto-detection, true or false for forcing
+ *
+ * @global string $cfg['Import']['ldi_local_option']
+ */
+$cfg['Import']['ldi_local_option'] = 'auto';
+
+/**
+ * Link to the official MySQL documentation.
+ * Be sure to include no trailing slash on the path.
+ * See http://dev.mysql.com/doc/ for more information
+ * about MySQL manuals and their types.
+ *
+ * @global string $cfg['MySQLManualBase']
+ */
+$cfg['MySQLManualBase'] = 'http://dev.mysql.com/doc/refman';
+
+/**
+ * Type of MySQL documentation:
+ * viewable - "viewable online", current one used on MySQL website
+ * searchable - "Searchable, with user comments"
+ * chapters - "HTML, one page per chapter"
+ * chapters_old - "HTML, one page per chapter", format used prior to MySQL 5.0 release
+ * big - "HTML, all on one page"
+ * old - old style used in phpMyAdmin 2.3.0 and sooner
+ * none - do not show documentation links
+ *
+ * @global string $cfg['MySQLManualType']
+ */
+$cfg['MySQLManualType'] = 'viewable';
+
+
+/*******************************************************************************
+ * PDF options
+ */
+
+/**
+ *
+ *
+ * @global array $cfg['PDFPageSizes']
+ */
+$cfg['PDFPageSizes'] = array('A3', 'A4', 'A5', 'letter', 'legal');
+
+/**
+ *
+ *
+ * @global string $cfg['PDFDefaultPageSize']
+ */
+$cfg['PDFDefaultPageSize'] = 'A4';
+
+
+/*******************************************************************************
+ * Language and character set conversion settings
+ */
+
+/**
+ * Default language to use, if not browser-defined or user-defined
+ *
+ * @global string $cfg['DefaultLang']
+ */
+$cfg['DefaultLang'] = 'en-utf-8';
+
+/**
+ * Default connection collation
+ *
+ * @global string $cfg['DefaultConnectionCollation']
+ */
+$cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
+
+/**
+ * Force: always use this language - must be defined in
+ * libraries/select_lang.lib.php
+ * $cfg['Lang'] = 'en-utf-8';
+ *
+ * Regular expression to limit listed languages, e.g. '^(cs|en)' for Czech and
+ * English only
+ *
+ * @global string $cfg['FilterLanguages']
+ */
+$cfg['FilterLanguages'] = '';
+
+/**
+ * Default character set to use for recoding of MySQL queries, does not take
+ * any effect when character sets recoding is switched off by
+ * $cfg['AllowAnywhereRecoding'] or in language file
+ * (see $cfg['AvailableCharsets'] to possible choices, you can add your own)
+ *
+ * @global string $cfg['DefaultCharset']
+ */
+$cfg['DefaultCharset'] = 'utf-8';
+
+/**
+ * Allow character set recoding of MySQL queries, must be also enabled in language
+ * file to make harder using other language files than Unicode.
+ * Default value is false to avoid problems on servers without the iconv
+ * extension
+ *
+ * @global boolean $cfg['AllowAnywhereRecoding']
+ */
+$cfg['AllowAnywhereRecoding'] = false;
+
+/**
+ * You can select here which functions will be used for character set conversion.
+ * Possible values are:
+ * auto - automatically use available one (first is tested iconv, then
+ * recode)
+ * iconv - use iconv or libiconv functions
+ * recode - use recode_string function
+ *
+ * @global string $cfg['RecodingEngine']
+ */
+$cfg['RecodingEngine'] = 'auto';
+
+/**
+ * Specify some parameters for iconv used in character set conversion. See iconv
+ * documentation for details:
+ * http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html
+ *
+ * @global string $cfg['IconvExtraParams']
+ */
+$cfg['IconvExtraParams'] = '//TRANSLIT';
+
+/**
+ * Available character sets for MySQL conversion. currently contains all which could
+ * be found in lang/* files and few more.
+ * Character sets will be shown in same order as here listed, so if you frequently
+ * use some of these move them to the top.
+ *
+ * @global array $cfg['AvailableCharsets']
+ */
+$cfg['AvailableCharsets'] = array(
+ 'iso-8859-1',
+ 'iso-8859-2',
+ 'iso-8859-3',
+ 'iso-8859-4',
+ 'iso-8859-5',
+ 'iso-8859-6',
+ 'iso-8859-7',
+ 'iso-8859-8',
+ 'iso-8859-9',
+ 'iso-8859-10',
+ 'iso-8859-11',
+ 'iso-8859-12',
+ 'iso-8859-13',
+ 'iso-8859-14',
+ 'iso-8859-15',
+ 'windows-1250',
+ 'windows-1251',
+ 'windows-1252',
+ 'windows-1256',
+ 'windows-1257',
+ 'koi8-r',
+ 'big5',
+ 'gb2312',
+ 'utf-16',
+ 'utf-8',
+ 'utf-7',
+ 'x-user-defined',
+ 'euc-jp',
+ 'ks_c_5601-1987',
+ 'tis-620',
+ 'SHIFT_JIS'
+);
+
+
+/*******************************************************************************
+ * Customization & design
+ *
+ * The graphical settings are now located in themes/theme-name/layout.inc.php
+ */
+
+/**
+ * enable the left panel pointer
+ * (used when LeftFrameLight is false)
+ * see also LeftPointerColor
+ * in layout.inc.php
+ *
+ * @global boolean $cfg['LeftPointerEnable']
+ */
+$cfg['LeftPointerEnable'] = true;
+
+/**
+ * enable the browse pointer
+ * see also BrowsePointerColor
+ * in layout.inc.php
+ *
+ * @global boolean $cfg['BrowsePointerEnable']
+ */
+$cfg['BrowsePointerEnable'] = true;
+
+/**
+ * enable the browse marker
+ * see also BrowseMarkerColor
+ * in layout.inc.php
+ *
+ * @global boolean $cfg['BrowseMarkerEnable']
+ */
+$cfg['BrowseMarkerEnable'] = true;
+
+/**
+ * textarea size (columns) in edit mode
+ * (this value will be emphasized (*2) for SQL
+ * query textareas and (*1.25) for query window)
+ *
+ * @global integer $cfg['TextareaCols']
+ */
+$cfg['TextareaCols'] = 40;
+
+/**
+ * textarea size (rows) in edit mode
+ *
+ * @global integer $cfg['TextareaRows']
+ */
+$cfg['TextareaRows'] = 7;
+
+/**
+ * double size of textarea size for LONGTEXT fields
+ *
+ * @global boolean $cfg['LongtextDoubleTextarea']
+ */
+$cfg['LongtextDoubleTextarea'] = true;
+
+/**
+ * auto-select when clicking in the textarea of the query-box
+ *
+ * @global boolean $cfg['TextareaAutoSelect']
+ */
+$cfg['TextareaAutoSelect'] = false;
+
+/**
+ * textarea size (columns) for CHAR/VARCHAR
+ *
+ * @global integer $cfg['CharTextareaCols']
+ */
+$cfg['CharTextareaCols'] = 40;
+
+/**
+ * textarea size (rows) for CHAR/VARCHAR
+ *
+ * @global integer $cfg['CharTextareaRows']
+ */
+$cfg['CharTextareaRows'] = 2;
+
+/**
+ * Enable Ctrl+Arrows moving between fields when editing?
+ *
+ * @global boolean $cfg['CtrlArrowsMoving']
+ */
+$cfg['CtrlArrowsMoving'] = true;
+
+/**
+ * Max field data length in browse mode for all non-numeric fields
+ *
+ * @global integer $cfg['LimitChars']
+ */
+$cfg['LimitChars'] = 50;
+
+/**
+ * show edit/delete links on left side of browse
+ * (or at the top with vertical browse)
+ *
+ * @global boolean $cfg['ModifyDeleteAtLeft']
+ */
+$cfg['ModifyDeleteAtLeft'] = true;
+
+/**
+ * show edit/delete links on right side of browse
+ * (or at the bottom with vertical browse)
+ *
+ * @global boolean $cfg['ModifyDeleteAtRight']
+ */
+$cfg['ModifyDeleteAtRight'] = false;
+
+/**
+ * default display direction (horizontal|vertical|horizontalflipped)
+ *
+ * @global string $cfg['DefaultDisplay']
+ */
+$cfg['DefaultDisplay'] = 'horizontal';
+
+/**
+ * default display direction for altering/creating columns (tbl_properties)
+ * (horizontal|vertical|<number>)
+ * number indicates maximal number for which vertical model is used
+ *
+ * @global integer $cfg['DefaultPropDisplay']
+ */
+$cfg['DefaultPropDisplay'] = 3;
+
+/**
+ * table-header rotation via faking or CSS? (css|fake)
+ * NOTE: CSS only works in IE browsers!
+ *
+ * @global string $cfg['HeaderFlipType']
+ */
+$cfg['HeaderFlipType'] = 'css';
+
+/**
+ * shows stored relation-comments in 'browse' mode.
+ *
+ * @global boolean $cfg['ShowBrowseComments']
+ */
+$cfg['ShowBrowseComments'] = true;
+
+/**
+ * shows stored relation-comments in 'table property' mode.
+ *
+ * @global boolean $cfg['ShowPropertyComments']
+ */
+$cfg['ShowPropertyComments']= true;
+
+/**
+ * repeat header names every X cells? (0 = deactivate)
+ *
+ * @global integer $cfg['RepeatCells']
+ */
+$cfg['RepeatCells'] = 100;
+
+/**
+ * Set to true if Edit link should open the query to edit in the query window
+ * (assuming JavaScript is enabled), and to false if we should edit in the right panel
+ *
+ * @global boolean $cfg['EditInWindow']
+ */
+$cfg['EditInWindow'] = true;
+
+/**
+ * Width of Query window
+ *
+ * @global integer $cfg['QueryWindowWidth']
+ */
+$cfg['QueryWindowWidth'] = 550;
+
+/**
+ * Height of Query window
+ *
+ * @global integer $cfg['QueryWindowHeight']
+ */
+$cfg['QueryWindowHeight'] = 310;
+
+/**
+ * Set to true if you want DB-based query history.If false, this utilizes
+ * JS-routines to display query history (lost by window close)
+ *
+ * @global boolean $cfg['QueryHistoryDB']
+ */
+$cfg['QueryHistoryDB'] = false;
+
+/**
+ * which tab to display in the querywindow on startup
+ * (sql|files|history|full)
+ *
+ * @global string $cfg['QueryWindowDefTab']
+ */
+$cfg['QueryWindowDefTab'] = 'sql';
+
+/**
+ * When using DB-based query history, how many entries should be kept?
+ *
+ * @global integer $cfg['QueryHistoryMax']
+ */
+$cfg['QueryHistoryMax'] = 25;
+
+/**
+ * Use MIME-Types (stored in column comments table) for
+ *
+ * @global boolean $cfg['BrowseMIME']
+ */
+$cfg['BrowseMIME'] = true;
+
+/**
+ * When approximate count < this, PMA will get exact count for table rows.
+ *
+ * @global integer $cfg['MaxExactCount']
+ */
+$cfg['MaxExactCount'] = 20000;
+
+/**
+ * Zero means that no row count is done for views; see the doc
+ *
+ * @global integer $cfg['MaxExactCountViews']
+ */
+$cfg['MaxExactCountViews'] = 0;
+
+/**
+ * Utilize DHTML/JS capabilities to allow WYSIWYG editing of
+ * the PDF page editor. Requires an IE6/Gecko based browser.
+ *
+ * @global boolean $cfg['WYSIWYG-PDF']
+ */
+$cfg['WYSIWYG-PDF'] = true;
+
+/**
+ * Sort table and database in natural order
+ *
+ * @global boolean $cfg['NaturalOrder']
+ */
+$cfg['NaturalOrder'] = true;
+
+/**
+ * Initial state for sliders
+ * (open | closed)
+ *
+ * @global string $cfg['InitialSlidersState']
+ */
+$cfg['InitialSlidersState'] = 'closed';
+
+
+
+//-----------------------------------------------------------------------------
+// custom-setup by mkkeck: 2004-05-04
+// some specials for new icons and scrolling
+/**
+ * @todo 2004-05-08 rabus: We need to rearrange these variables.
+ */
+
+
+/*******************************************************************************
+ * Window title settings
+ */
+
+/**
+ * title of browser window when a table is selected
+ *
+ * @global string $cfg['TitleTable']
+ */
+$cfg['TitleTable'] = '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@';
+
+/**
+ * title of browser window when a database is selected
+ *
+ * @global string $cfg['TitleDatabase']
+ */
+$cfg['TitleDatabase'] = '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@';
+
+/**
+ * title of browser window when a server is selected
+ *
+ * @global string $cfg['TitleServer']
+ */
+$cfg['TitleServer'] = '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@';
+
+/**
+ * title of browser window when nothing is selected
+ * @global string $cfg['TitleDefault']
+ */
+$cfg['TitleDefault'] = '@HTTP_HOST@ | @PHPMYADMIN@';
+
+/**
+ * show some icons for warning, error and information messages (true|false)?
+ *
+ * @global boolean $cfg['ErrorIconic']
+ */
+$cfg['ErrorIconic'] = true;
+
+/**
+ * show icons in list on main page and on menu tabs (true|false)?
+ *
+ * @global boolean $cfg['MainPageIconic']
+ */
+$cfg['MainPageIconic'] = true;
+
+/**
+ * show help button instead of strDocu (true|false)?
+ *
+ * @global boolean $cfg['ReplaceHelpImg']
+ */
+$cfg['ReplaceHelpImg'] = true;
+
+
+/*******************************************************************************
+ * theme manager
+ */
+
+/**
+ * using themes manager please set up here the path to 'themes' else leave empty
+ *
+ * @global string $cfg['ThemePath']
+ */
+$cfg['ThemePath'] = './themes';
+
+/**
+ * if you want to use selectable themes and if ThemesPath not empty
+ * set it to true, else set it to false (default is false);
+ *
+ * @global boolean $cfg['ThemeManager']
+ */
+$cfg['ThemeManager'] = true;
+
+/**
+ * set up default theme, if ThemePath not empty you can set up here an valid
+ * path to themes or 'original' for the original pma-theme
+ *
+ * @global string $cfg['ThemeDefault']
+ */
+$cfg['ThemeDefault'] = 'original';
+
+/**
+ * allow different theme for each configured server
+ *
+ * @global boolean $cfg['ThemePerServer']
+ */
+$cfg['ThemePerServer'] = false;
+
+
+/*******************************************************************************
+ *
+ */
+
+/**
+ * Default queries
+ * %d will be replaced by the database name.
+ * %t will be replaced by the table name.
+ * %f will be replaced by a list of field names.
+ * (%t and %f only applies to DefaultQueryTable)
+ *
+ * @global string $cfg['DefaultQueryTable']
+ */
+$cfg['DefaultQueryTable'] = 'SELECT * FROM %t WHERE 1';
+
+/**
+ * Default queries
+ * %d will be replaced by the database name.
+ * %t will be replaced by the table name.
+ * %f will be replaced by a list of field names.
+ * (%t and %f only applies to DefaultQueryTable)
+ *
+ * @global string $cfg['DefaultQueryDatabase']
+ */
+$cfg['DefaultQueryDatabase'] = '';
+
+
+/*******************************************************************************
+ * SQL Query box settings
+ * These are the links display in all of the SQL Query boxes
+ *
+ * @global array $cfg['SQLQuery']
+ */
+$cfg['SQLQuery'] = array();
+
+/**
+ * Edit link to change a query
+ *
+ * @global boolean $cfg['SQLQuery']['Edit']
+ */
+$cfg['SQLQuery']['Edit'] = true;
+
+/**
+ * EXPLAIN on SELECT queries
+ *
+ * @global boolean $cfg['SQLQuery']['Explain']
+ */
+$cfg['SQLQuery']['Explain'] = true;
+
+/**
+ * Wrap a query in PHP
+ *
+ * @global boolean $cfg['SQLQuery']['ShowAsPHP']
+ */
+$cfg['SQLQuery']['ShowAsPHP'] = true;
+
+/**
+ * Validate a query (see $cfg['SQLValidator'] as well)
+ *
+ * @global boolean $cfg['SQLQuery']['Validate']
+ */
+$cfg['SQLQuery']['Validate'] = false;
+
+/**
+ * Refresh the results page
+ *
+ * @global boolean $cfg['SQLQuery']['Refresh']
+ */
+$cfg['SQLQuery']['Refresh'] = true;
+
+
+/*******************************************************************************
+ * Web server upload/save/import directories
+ */
+
+/**
+ * Directory for uploaded files that can be executed by phpMyAdmin.
+ * For example './upload'. Leave empty for no upload directory support.
+ * Use %u for username inclusion.
+ *
+ * @global string $cfg['UploadDir']
+ */
+$cfg['UploadDir'] = '';
+
+/**
+ * Directory where phpMyAdmin can save exported data on server.
+ * For example './save'. Leave empty for no save directory support.
+ * Use %u for username inclusion.
+ *
+ * @global string $cfg['SaveDir']
+ */
+$cfg['SaveDir'] = '';
+
+/**
+ * Directory where phpMyAdmin can save temporary files.
+ * This is needed for MS Excel export, see documentation how to enable that.
+ *
+ * @global string $cfg['TempDir']
+ */
+$cfg['TempDir'] = '';
+
+
+/**
+ * Misc. settings
+ */
+
+/**
+ * Is GD >= 2 available? Set to yes/no/auto. 'auto' does auto-detection,
+ * which is the only safe way to determine GD version.
+ *
+ * @global string $cfg['GD2Available']
+ */
+$cfg['GD2Available'] = 'auto';
+
+/**
+ * List of trusted proxies for IP allow/deny
+ *
+ * @global array $cfg['TrustedProxies']
+ */
+$cfg['TrustedProxies'] = array();
+
+/**
+ * We normally check the permissions on the configuration file to ensure
+ * it's not world writable. However, phpMyAdmin could be installed on
+ * a NTFS filesystem mounted on a non-Windows server, in which case the
+ * permissions seems wrong but in fact cannot be detected. In this case
+ * a sysadmin would set the following to false.
+ */
+$cfg['CheckConfigurationPermissions'] = true;
+
+/*******************************************************************************
+ * SQL Parser Settings
+ *
+ * @global array $cfg['SQP']
+ */
+$cfg['SQP'] = array();
+
+/**
+ * Pretty-printing style to use on queries (html, text, none)
+ *
+ * @global string $cfg['SQP']['fmtType']
+ */
+$cfg['SQP']['fmtType'] = 'html';
+
+/**
+ * Amount to indent each level (floats are valid)
+ *
+ * @global integer $cfg['SQP']['fmtInd']
+ */
+$cfg['SQP']['fmtInd'] = '1';
+
+/**
+ * Units for indenting each level (CSS Types - {em, px, pt})
+ *
+ * @global string $cfg['SQP']['fmtIndUnit']
+ */
+$cfg['SQP']['fmtIndUnit'] = 'em';
+
+
+/*******************************************************************************
+ * If you wish to use the SQL Validator service, you should be aware of the
+ * following:
+ * All SQL statements are stored anonymously for statistical purposes.
+ * Mimer SQL Validator, Copyright 2002 Upright Database Technology.
+ * All rights reserved.
+ *
+ * @global array $cfg['SQLValidator']
+ */
+$cfg['SQLValidator'] = array();
+
+/**
+ * Make the SQL Validator available
+ *
+ * @global boolean $cfg['SQLValidator']['use']
+ */
+$cfg['SQLValidator']['use'] = false;
+
+/**
+ * If you have a custom username, specify it here (defaults to anonymous)
+ *
+ * @global string $cfg['SQLValidator']['username']
+ */
+$cfg['SQLValidator']['username'] = '';
+
+/**
+ * Password for username
+ *
+ * @global string $cfg['SQLValidator']['password']
+ */
+$cfg['SQLValidator']['password'] = '';
+
+
+/*******************************************************************************
+ * Developers ONLY!
+ *
+ * @global array $cfg['DBG']
+ */
+$cfg['DBG'] = array();
+
+/**
+ * Output executed queries and their execution times
+ *
+ * @global boolean $cfg['DBG']['enable']
+ */
+$cfg['DBG']['sql'] = false;
+
+/**
+ * Make the DBG stuff available
+ * To use the following, please install the DBG extension from http://dd.cron.ru/dbg/
+ *
+ * @global boolean $cfg['DBG']['enable']
+ */
+$cfg['DBG']['php'] = false;
+
+/**
+ * Produce profiling results of PHP
+ *
+ * @global boolean $cfg['DBG']['profile']['enable']
+ */
+$cfg['DBG']['profile']['enable'] = false;
+
+/**
+ * Threshold of long running code to display
+ * Anything below the threshold is not displayed
+ *
+ * @global float $cfg['DBG']['profile']['threshold']
+ */
+$cfg['DBG']['profile']['threshold'] = 0.5;
+
+
+/*******************************************************************************
+ * MySQL settings
+ */
+
+/**
+ * Column types;
+ * VARCHAR, TINYINT, TEXT and DATE are listed first, based on estimated popularity
+ *
+ * @global array $cfg['ColumnTypes']
+ */
+$cfg['ColumnTypes'] = array(
+ // most used
+ 'INT',
+ 'VARCHAR',
+ 'TEXT',
+ 'DATE',
+
+ // numeric
+ 'NUMERIC' => array(
+ 'TINYINT',
+ 'SMALLINT',
+ 'MEDIUMINT',
+ 'INT',
+ 'BIGINT',
+ '-',
+ 'DECIMAL',
+ 'FLOAT',
+ 'DOUBLE',
+ 'REAL',
+ '-',
+ 'BIT',
+ 'BOOL',
+ 'SERIAL',
+ ),
+
+
+ // Date/Time
+ 'DATE and TIME' => array(
+ 'DATE',
+ 'DATETIME',
+ 'TIMESTAMP',
+ 'TIME',
+ 'YEAR',
+ ),
+
+ // Text
+ 'STRING' => array(
+ 'CHAR',
+ 'VARCHAR',
+ '-',
+ 'TINYTEXT',
+ 'TEXT',
+ 'MEDIUMTEXT',
+ 'LONGTEXT',
+ '-',
+ 'BINARY',
+ 'VARBINARY',
+ '-',
+ 'TINYBLOB',
+ 'MEDIUMBLOB',
+ 'BLOB',
+ 'LONGBLOB',
+ '-',
+ 'ENUM',
+ 'SET',
+ ),
+
+ 'SPATIAL' => array(
+ 'GEOMETRY',
+ 'POINT',
+ 'LINESTRING',
+ 'POLYGON',
+ 'MULTIPOINT',
+ 'MULTILINESTRING',
+ 'MULTIPOLYGON',
+ 'GEOMETRYCOLLECTION',
+ ),
+);
+
+/**
+ * Attributes
+ *
+ * @global array $cfg['AttributeTypes']
+ */
+$cfg['AttributeTypes'] = array(
+ '',
+ 'BINARY',
+ 'UNSIGNED',
+ 'UNSIGNED ZEROFILL',
+ 'on update CURRENT_TIMESTAMP',
+);
+
+
+if ($cfg['ShowFunctionFields']) {
+ /**
+ * Available functions
+ *
+ * @global array $cfg['Functions']
+ */
+ $cfg['Functions'] = array(
+ 'ABS',
+ 'ACOS',
+ 'ASCII',
+ 'ASIN',
+ 'ATAN',
+ 'BIN',
+ 'BIT_COUNT',
+ 'BIT_LENGTH',
+ 'CEILING',
+ 'CHAR',
+ 'CHAR_LENGTH',
+ 'COMPRESS',
+ 'COS',
+ 'COT',
+ 'CRC32',
+ 'CURDATE',
+ 'CURRENT_USER',
+ 'CURTIME',
+ 'DATE',
+ 'DAYNAME',
+ 'DEGREES',
+ 'DES_DECRYPT',
+ 'DES_ENCRYPT',
+ 'ENCRYPT',
+ 'EXP',
+ 'FLOOR',
+ 'FROM_DAYS',
+ 'FROM_UNIXTIME',
+ 'HEX',
+ 'INET_ATON',
+ 'INET_NTOA',
+ 'LENGTH',
+ 'LN',
+ 'LOG',
+ 'LOG10',
+ 'LOG2',
+ 'LOWER',
+ 'MD5',
+ 'NOW',
+ 'OCT',
+ 'OLD_PASSWORD',
+ 'ORD',
+ 'PASSWORD',
+ 'RADIANS',
+ 'RAND',
+ 'REVERSE',
+ 'ROUND',
+ 'SEC_TO_TIME',
+ 'SHA1',
+ 'SOUNDEX',
+ 'SPACE',
+ 'SQRT',
+ 'STDDEV_POP',
+ 'STDDEV_SAMP',
+ 'TAN',
+ 'TIMESTAMP',
+ 'TIME_TO_SEC',
+ 'UNCOMPRESS',
+ 'UNHEX',
+ 'UNIX_TIMESTAMP',
+ 'UPPER',
+ 'USER',
+ 'UTC_DATE',
+ 'UTC_TIME',
+ 'UTC_TIMESTAMP',
+ 'UUID',
+ 'VAR_POP',
+ 'VAR_SAMP',
+ 'YEAR',
+ );
+
+ /**
+ * Which column types will be mapped to which Group?
+ *
+ * @global array $cfg['RestrictColumnTypes']
+ */
+ $cfg['RestrictColumnTypes'] = array(
+ 'TINYINT' => 'FUNC_NUMBER',
+ 'SMALLINT' => 'FUNC_NUMBER',
+ 'MEDIUMINT' => 'FUNC_NUMBER',
+ 'INT' => 'FUNC_NUMBER',
+ 'BIGINT' => 'FUNC_NUMBER',
+ 'DECIMAL' => 'FUNC_NUMBER',
+ 'FLOAT' => 'FUNC_NUMBER',
+ 'DOUBLE' => 'FUNC_NUMBER',
+ 'REAL' => 'FUNC_NUMBER',
+ 'BIT' => 'FUNC_NUMBER',
+ 'BOOL' => 'FUNC_NUMBER',
+ 'SERIAL' => 'FUNC_NUMBER',
+
+ 'DATE' => 'FUNC_DATE',
+ 'DATETIME' => 'FUNC_DATE',
+ 'TIMESTAMP' => 'FUNC_DATE',
+ 'TIME' => 'FUNC_DATE',
+ 'YEAR' => 'FUNC_DATE',
+
+ 'CHAR' => 'FUNC_CHAR',
+ 'VARCHAR' => 'FUNC_CHAR',
+ 'TINYTEXT' => 'FUNC_CHAR',
+ 'TEXT' => 'FUNC_CHAR',
+ 'MEDIUMTEXT' => 'FUNC_CHAR',
+ 'LONGTEXT' => 'FUNC_CHAR',
+ 'BINARY' => 'FUNC_CHAR',
+ 'VARBINARY' => 'FUNC_CHAR',
+ 'TINYBLOB' => 'FUNC_CHAR',
+ 'MEDIUMBLOB' => 'FUNC_CHAR',
+ 'BLOB' => 'FUNC_CHAR',
+ 'LONGBLOB' => 'FUNC_CHAR',
+ 'ENUM' => '',
+ 'SET' => '',
+
+ 'GEOMETRY' => 'FUNC_SPATIAL',
+ 'POINT' => 'FUNC_SPATIAL',
+ 'LINESTRING' => 'FUNC_SPATIAL',
+ 'POLYGON' => 'FUNC_SPATIAL',
+ 'MULTIPOINT' => 'FUNC_SPATIAL',
+ 'MULTILINESTRING' => 'FUNC_SPATIAL',
+ 'MULTIPOLYGON' => 'FUNC_SPATIAL',
+ 'GEOMETRYCOLLECTION' => 'FUNC_SPATIAL',
+
+ );
+
+ /**
+ * Map above defined groups to any function
+ *
+ * @global array $cfg['RestrictFunctions']
+ */
+ $cfg['RestrictFunctions'] = array(
+ 'FUNC_CHAR' => array(
+ 'BIN',
+ 'CHAR',
+ 'CURRENT_USER',
+ 'COMPRESS',
+ 'DAYNAME',
+ 'DES_DECRYPT',
+ 'DES_ENCRYPT',
+ 'ENCRYPT',
+ 'HEX',
+ 'INET_NTOA',
+ 'LOWER',
+ 'MD5',
+ 'OLD_PASSWORD',
+ 'PASSWORD',
+ 'REVERSE',
+ 'SHA1',
+ 'SOUNDEX',
+ 'SPACE',
+ 'UNCOMPRESS',
+ 'UNHEX',
+ 'UPPER',
+ 'USER',
+ 'UUID',
+ ),
+
+ 'FUNC_DATE' => array(
+ 'CURDATE',
+ 'CURTIME',
+ 'DATE',
+ 'FROM_DAYS',
+ 'FROM_UNIXTIME',
+ 'NOW',
+ 'SEC_TO_TIME',
+ 'TIMESTAMP',
+ 'UTC_DATE',
+ 'UTC_TIME',
+ 'UTC_TIMESTAMP',
+ 'YEAR',
+ ),
+
+ 'FUNC_NUMBER' => array(
+ 'ABS',
+ 'ACOS',
+ 'ASCII',
+ 'ASIN',
+ 'ATAN',
+ 'BIT_LENGTH',
+ 'BIT_COUNT',
+ 'CEILING',
+ 'CHAR_LENGTH',
+ 'COS',
+ 'COT',
+ 'CRC32',
+ 'DEGREES',
+ 'EXP',
+ 'FLOOR',
+ 'INET_ATON',
+ 'LENGTH',
+ 'LN',
+ 'LOG',
+ 'LOG2',
+ 'LOG10',
+ 'OCT',
+ 'ORD',
+ 'RADIANS',
+ 'RAND',
+ 'ROUND',
+ 'SQRT',
+ 'STDDEV_POP',
+ 'STDDEV_SAMP',
+ 'TAN',
+ 'TIME_TO_SEC',
+ 'UNIX_TIMESTAMP',
+ 'VAR_POP',
+ 'VAR_SAMP',
+ ),
+
+ 'FUNC_SPATIAL' => array(
+ 'GeomFromText',
+ 'GeomFromWKB',
+
+ 'GeomCollFromText',
+ 'LineFromText',
+ 'MLineFromText',
+ 'PointFromText',
+ 'MPointFromText',
+ 'PolyFromText',
+ 'MPolyFromText',
+
+ 'GeomCollFromWKB',
+ 'LineFromWKB',
+ 'MLineFromWKB',
+ 'PointFromWKB',
+ 'MPointFromWKB',
+ 'PolyFromWKB',
+ 'MPolyFromWKB',
+ ),
+ );
+
+ /**
+ * Default functions for above defined groups
+ *
+ * @global array $cfg['DefaultFunctions']
+ */
+ $cfg['DefaultFunctions'] = array(
+ 'FUNC_CHAR' => '',
+ 'FUNC_DATE' => '',
+ 'FUNC_NUMBER' => '',
+ 'first_timestamp' => 'NOW',
+ 'pk_char36' => 'UUID',
+ );
+
+
+} // end if
+
+/**
+ * Search operators
+ *
+ * @global array $cfg['NumOperators']
+ */
+$cfg['NumOperators'] = array(
+ '=',
+ '>',
+ '>=',
+ '<',
+ '<=',
+ '!=',
+ 'LIKE',
+ 'NOT LIKE',
+);
+
+/**
+ * Search operators
+ *
+ * @global array $cfg['TextOperators']
+ */
+$cfg['TextOperators'] = array(
+ 'LIKE',
+ 'LIKE %...%',
+ 'NOT LIKE',
+ '=',
+ '!=',
+ 'REGEXP',
+ 'NOT REGEXP',
+ "= ''",
+ "!= ''"
+);
+
+/**
+ * Search operators
+ *
+ * @global array $cfg['EnumOperators']
+ */
+$cfg['EnumOperators'] = array(
+ '=',
+ '!=',
+);
+
+/**
+ * Search operators
+ *
+ * @global array $cfg['SetOperators']
+ */
+$cfg['SetOperators'] = array(
+ 'IN',
+ 'NOT IN',
+);
+
+/**
+ * Search operators
+ *
+ * @global array $cfg['NullOperators']
+ */
+$cfg['NullOperators'] = array(
+ 'IS NULL',
+ 'IS NOT NULL',
+);
+
+/**
+ * Search operators
+ *
+ * @global array $cfg['UnaryOperators']
+ */
+$cfg['UnaryOperators'] = array(
+ 'IS NULL' => 1,
+ 'IS NOT NULL' => 1,
+ "= ''" => 1,
+ "!= ''" => 1
+);
+
+?>
diff --git a/libraries/core.lib.php b/libraries/core.lib.php
new file mode 100644
index 0000000000..76434822a4
--- /dev/null
+++ b/libraries/core.lib.php
@@ -0,0 +1,594 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Core functions used all over the scripts.
+ * This script is distinct from libraries/common.inc.php because this
+ * script is called from /test.
+ *
+ * @version $Id$
+ */
+
+/**
+ * checks given $var and returns it if valid, or $default of not valid
+ * given $var is also checked for type being 'similar' as $default
+ * or against any other type if $type is provided
+ *
+ * <code>
+ * // $_REQUEST['db'] not set
+ * echo PMA_ifSetOr($_REQUEST['db'], ''); // ''
+ * // $_REQUEST['sql_query'] not set
+ * echo PMA_ifSetOr($_REQUEST['sql_query']); // null
+ * // $cfg['ForceSSL'] not set
+ * echo PMA_ifSetOr($cfg['ForceSSL'], false, 'boolean'); // false
+ * echo PMA_ifSetOr($cfg['ForceSSL']); // null
+ * // $cfg['ForceSSL'] set to 1
+ * echo PMA_ifSetOr($cfg['ForceSSL'], false, 'boolean'); // false
+ * echo PMA_ifSetOr($cfg['ForceSSL'], false, 'similar'); // 1
+ * echo PMA_ifSetOr($cfg['ForceSSL'], false); // 1
+ * // $cfg['ForceSSL'] set to true
+ * echo PMA_ifSetOr($cfg['ForceSSL'], false, 'boolean'); // true
+ * </code>
+ *
+ * @todo create some testsuites
+ * @uses PMA_isValid()
+ * @see PMA_isValid()
+ * @param mixed $var param to check
+ * @param mixed $default default value
+ * @param mixed $type var type or array of values to check against $var
+ * @return mixed $var or $default
+ */
+function PMA_ifSetOr(&$var, $default = null, $type = 'similar')
+{
+ if (! PMA_isValid($var, $type, $default)) {
+ return $default;
+ }
+
+ return $var;
+}
+
+/**
+ * checks given $var against $type or $compare
+ *
+ * $type can be:
+ * - false : no type checking
+ * - 'scalar' : whether type of $var is integer, float, string or boolean
+ * - 'numeric' : whether type of $var is any number repesentation
+ * - 'length' : whether type of $var is scalar with a string length > 0
+ * - 'similar' : whether type of $var is similar to type of $compare
+ * - 'equal' : whether type of $var is identical to type of $compare
+ * - 'identical' : whether $var is identical to $compare, not only the type!
+ * - or any other valid PHP variable type
+ *
+ * <code>
+ * // $_REQUEST['doit'] = true;
+ * PMA_isValid($_REQUEST['doit'], 'identical', 'true'); // false
+ * // $_REQUEST['doit'] = 'true';
+ * PMA_isValid($_REQUEST['doit'], 'identical', 'true'); // true
+ * </code>
+ *
+ * NOTE: call-by-reference is used to not get NOTICE on undefined vars,
+ * but the var is not altered inside this function, also after checking a var
+ * this var exists nut is not set, example:
+ * <code>
+ * // $var is not set
+ * isset($var); // false
+ * functionCallByReference($var); // false
+ * isset($var); // true
+ * functionCallByReference($var); // true
+ * </code>
+ *
+ * to avoid this we set this var to null if not isset
+ *
+ * @todo create some testsuites
+ * @todo add some more var types like hex, bin, ...?
+ * @uses is_scalar()
+ * @uses is_numeric()
+ * @uses is_array()
+ * @uses in_array()
+ * @uses gettype()
+ * @uses strtolower()
+ * @see http://php.net/gettype
+ * @param mixed $var variable to check
+ * @param mixed $type var type or array of valid values to check against $var
+ * @param mixed $compare var to compare with $var
+ * @return boolean whether valid or not
+ */
+function PMA_isValid(&$var, $type = 'length', $compare = null)
+{
+ if (! isset($var)) {
+ // var is not even set
+ return false;
+ }
+
+ if ($type === false) {
+ // no vartype requested
+ return true;
+ }
+
+ if (is_array($type)) {
+ return in_array($var, $type);
+ }
+
+ // allow some aliaes of var types
+ $type = strtolower($type);
+ switch ($type) {
+ case 'identic' :
+ $type = 'identical';
+ break;
+ case 'len' :
+ $type = 'length';
+ break;
+ case 'bool' :
+ $type = 'boolean';
+ break;
+ case 'float' :
+ $type = 'double';
+ break;
+ case 'int' :
+ $type = 'integer';
+ break;
+ case 'null' :
+ $type = 'NULL';
+ break;
+ }
+
+ if ($type === 'identical') {
+ return $var === $compare;
+ }
+
+ // whether we should check against given $compare
+ if ($type === 'similar') {
+ switch (gettype($compare)) {
+ case 'string':
+ case 'boolean':
+ $type = 'scalar';
+ break;
+ case 'integer':
+ case 'double':
+ $type = 'numeric';
+ break;
+ default:
+ $type = gettype($compare);
+ }
+ } elseif ($type === 'equal') {
+ $type = gettype($compare);
+ }
+
+ // do the check
+ if ($type === 'length' || $type === 'scalar') {
+ $is_scalar = is_scalar($var);
+ if ($is_scalar && $type === 'length') {
+ return (bool) strlen($var);
+ }
+ return $is_scalar;
+ }
+
+ if ($type === 'numeric') {
+ return is_numeric($var);
+ }
+
+ if (gettype($var) === $type) {
+ return true;
+ }
+
+ return false;
+}
+
+/**
+ * Removes insecure parts in a path; used before include() or
+ * require() when a part of the path comes from an insecure source
+ * like a cookie or form.
+ *
+ * @param string The path to check
+ *
+ * @return string The secured path
+ *
+ * @access public
+ * @author Marc Delisle (lem9@users.sourceforge.net)
+ */
+function PMA_securePath($path)
+{
+ // change .. to .
+ $path = preg_replace('@\.\.*@', '.', $path);
+
+ return $path;
+} // end function
+
+/**
+ * displays the given error message on phpMyAdmin error page in foreign language,
+ * ends script execution and closes session
+ *
+ * loads language file if not loaded already
+ *
+ * @todo use detected argument separator (PMA_Config)
+ * @uses $GLOBALS['session_name']
+ * @uses $GLOBALS['text_dir']
+ * @uses $GLOBALS['strError']
+ * @uses $GLOBALS['available_languages']
+ * @uses $GLOBALS['lang']
+ * @uses PMA_removeCookie()
+ * @uses select_lang.lib.php
+ * @uses $_COOKIE
+ * @uses substr()
+ * @uses header()
+ * @uses http_build_query()
+ * @uses is_string()
+ * @uses sprintf()
+ * @uses vsprintf()
+ * @uses strtr()
+ * @uses defined()
+ * @param string $error_message the error message or named error message
+ * @param string|array $message_args arguments applied to $error_message
+ * @return exit
+ */
+function PMA_fatalError($error_message, $message_args = null)
+{
+ // it could happen PMA_fatalError() is called before language file is loaded
+ if (! isset($GLOBALS['available_languages'])) {
+ $GLOBALS['cfg'] = array(
+ 'DefaultLang' => 'en-utf-8',
+ 'AllowAnywhereRecoding' => false);
+
+ // Loads the language file
+ require_once './libraries/select_lang.lib.php';
+
+ if (isset($strError)) {
+ $GLOBALS['strError'] = $strError;
+ } else {
+ $GLOBALS['strError'] = 'Error';
+ }
+
+ // $text_dir is set in lang/language-utf-8.inc.php
+ if (isset($text_dir)) {
+ $GLOBALS['text_dir'] = $text_dir;
+ }
+ }
+
+ // $error_message could be a language string identifier: strString
+ if (substr($error_message, 0, 3) === 'str') {
+ if (isset($$error_message)) {
+ $error_message = $$error_message;
+ } elseif (isset($GLOBALS[$error_message])) {
+ $error_message = $GLOBALS[$error_message];
+ }
+ }
+
+ if (is_string($message_args)) {
+ $error_message = sprintf($error_message, $message_args);
+ } elseif (is_array($message_args)) {
+ $error_message = vsprintf($error_message, $message_args);
+ }
+ $error_message = strtr($error_message, array('<br />' => '[br]'));
+
+ // Displays the error message
+ // (do not use &amp; for parameters sent by header)
+ $query_params = array(
+ 'lang' => $GLOBALS['available_languages'][$GLOBALS['lang']][2],
+ 'dir' => $GLOBALS['text_dir'],
+ 'type' => $GLOBALS['strError'],
+ 'error' => $error_message,
+ );
+ header('Location: ' . (defined('PMA_SETUP') ? '../' : '') . 'error.php?'
+ . http_build_query($query_params, null, '&'));
+
+ // on fatal errors it cannot hurt to always delete the current session
+ if (isset($GLOBALS['session_name']) && isset($_COOKIE[$GLOBALS['session_name']])) {
+ PMA_removeCookie($GLOBALS['session_name']);
+ }
+
+ exit;
+}
+
+/**
+ * returns count of tables in given db
+ *
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_QUERY_STORE()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_free_result()
+ * @param string $db database to count tables for
+ * @return integer count of tables in $db
+ */
+function PMA_getTableCount($db)
+{
+ $tables = PMA_DBI_try_query(
+ 'SHOW TABLES FROM ' . PMA_backquote($db) . ';',
+ null, PMA_DBI_QUERY_STORE);
+ if ($tables) {
+ $num_tables = PMA_DBI_num_rows($tables);
+
+ // for blobstreaming - get blobstreaming tables
+ // for use in determining if a table here is a blobstreaming table - rajk
+
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if PMA configuration exists
+ if (!empty($PMA_Config))
+ {
+ // load BS tables
+ $session_bs_tables = $_SESSION['PMA_Config']->get('BLOBSTREAMING_TABLES');
+
+ // if BS tables exist
+ if (isset ($session_bs_tables))
+ while ($data = PMA_DBI_fetch_assoc($tables))
+ foreach ($session_bs_tables as $table_key=>$table_val)
+ // if the table is a blobstreaming table, reduce the table count
+ if ($data['Tables_in_' . $db] == $table_key)
+ {
+ if ($num_tables > 0)
+ $num_tables--;
+
+ break;
+ }
+ } // end if PMA configuration exists
+
+ PMA_DBI_free_result($tables);
+ } else {
+ $num_tables = 0;
+ }
+
+ return $num_tables;
+}
+
+/**
+ * Converts numbers like 10M into bytes
+ * Used with permission from Moodle (http://moodle.org) by Martin Dougiamas
+ * (renamed with PMA prefix to avoid double definition when embedded
+ * in Moodle)
+ *
+ * @uses each()
+ * @uses strlen()
+ * @uses substr()
+ * @param string $size
+ * @return integer $size
+ */
+function PMA_get_real_size($size = 0)
+{
+ if (! $size) {
+ return 0;
+ }
+
+ $scan['gb'] = 1073741824; //1024 * 1024 * 1024;
+ $scan['g'] = 1073741824; //1024 * 1024 * 1024;
+ $scan['mb'] = 1048576;
+ $scan['m'] = 1048576;
+ $scan['kb'] = 1024;
+ $scan['k'] = 1024;
+ $scan['b'] = 1;
+
+ foreach ($scan as $unit => $factor) {
+ if (strlen($size) > strlen($unit)
+ && strtolower(substr($size, strlen($size) - strlen($unit))) == $unit) {
+ return substr($size, 0, strlen($size) - strlen($unit)) * $factor;
+ }
+ }
+
+ return $size;
+} // end function PMA_get_real_size()
+
+/**
+ * merges array recursive like array_merge_recursive() but keyed-values are
+ * always overwritten.
+ *
+ * array PMA_array_merge_recursive(array $array1[, array $array2[, array ...]])
+ *
+ * @see http://php.net/array_merge
+ * @see http://php.net/array_merge_recursive
+ * @uses func_num_args()
+ * @uses func_get_arg()
+ * @uses is_array()
+ * @uses call_user_func_array()
+ * @param array array to merge
+ * @param array array to merge
+ * @param array ...
+ * @return array merged array
+ */
+function PMA_array_merge_recursive()
+{
+ switch(func_num_args()) {
+ case 0 :
+ return false;
+ break;
+ case 1 :
+ // when does that happen?
+ return func_get_arg(0);
+ break;
+ case 2 :
+ $args = func_get_args();
+ if (!is_array($args[0]) || !is_array($args[1])) {
+ return $args[1];
+ }
+ foreach ($args[1] as $key2 => $value2) {
+ if (isset($args[0][$key2]) && !is_int($key2)) {
+ $args[0][$key2] = PMA_array_merge_recursive($args[0][$key2],
+ $value2);
+ } else {
+ // we erase the parent array, otherwise we cannot override a directive that
+ // contains array elements, like this:
+ // (in config.default.php) $cfg['ForeignKeyDropdownOrder'] = array('id-content','content-id');
+ // (in config.inc.php) $cfg['ForeignKeyDropdownOrder'] = array('content-id');
+ if (is_int($key2) && $key2 == 0) {
+ unset($args[0]);
+ }
+ $args[0][$key2] = $value2;
+ }
+ }
+ return $args[0];
+ break;
+ default :
+ $args = func_get_args();
+ $args[1] = PMA_array_merge_recursive($args[0], $args[1]);
+ array_shift($args);
+ return call_user_func_array('PMA_array_merge_recursive', $args);
+ break;
+ }
+}
+
+/**
+ * calls $function vor every element in $array recursively
+ *
+ * this function is protected against deep recursion attack CVE-2006-1549,
+ * 1000 seems to be more than enough
+ *
+ * @see http://www.php-security.org/MOPB/MOPB-02-2007.html
+ * @see http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1549
+ *
+ * @uses PMA_arrayWalkRecursive()
+ * @uses is_array()
+ * @uses is_string()
+ * @param array $array array to walk
+ * @param string $function function to call for every array element
+ */
+function PMA_arrayWalkRecursive(&$array, $function, $apply_to_keys_also = false)
+{
+ static $recursive_counter = 0;
+ if (++$recursive_counter > 1000) {
+ die('possible deep recursion attack');
+ }
+ foreach ($array as $key => $value) {
+ if (is_array($value)) {
+ PMA_arrayWalkRecursive($array[$key], $function, $apply_to_keys_also);
+ } else {
+ $array[$key] = $function($value);
+ }
+
+ if ($apply_to_keys_also && is_string($key)) {
+ $new_key = $function($key);
+ if ($new_key != $key) {
+ $array[$new_key] = $array[$key];
+ unset($array[$key]);
+ }
+ }
+ }
+ $recursive_counter--;
+}
+
+/**
+ * boolean phpMyAdmin.PMA_checkPageValidity(string &$page, array $whitelist)
+ *
+ * checks given given $page against given $whitelist and returns true if valid
+ * it ignores optionaly query paramters in $page (script.php?ignored)
+ *
+ * @uses in_array()
+ * @uses urldecode()
+ * @uses substr()
+ * @uses strpos()
+ * @param string &$page page to check
+ * @param array $whitelist whitelist to check page against
+ * @return boolean whether $page is valid or not (in $whitelist or not)
+ */
+function PMA_checkPageValidity(&$page, $whitelist)
+{
+ if (! isset($page) || !is_string($page)) {
+ return false;
+ }
+
+ if (in_array($page, $whitelist)) {
+ return true;
+ } elseif (in_array(substr($page, 0, strpos($page . '?', '?')), $whitelist)) {
+ return true;
+ } else {
+ $_page = urldecode($page);
+ if (in_array(substr($_page, 0, strpos($_page . '?', '?')), $whitelist)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+/**
+ * trys to find the value for the given environment vriable name
+ *
+ * searchs in $_SERVER, $_ENV than trys getenv() and apache_getenv()
+ * in this order
+ *
+ * @uses $_SERVER
+ * @uses $_ENV
+ * @uses getenv()
+ * @uses function_exists()
+ * @uses apache_getenv()
+ * @param string $var_name variable name
+ * @return string value of $var or empty string
+ */
+function PMA_getenv($var_name) {
+ if (isset($_SERVER[$var_name])) {
+ return $_SERVER[$var_name];
+ } elseif (isset($_ENV[$var_name])) {
+ return $_ENV[$var_name];
+ } elseif (getenv($var_name)) {
+ return getenv($var_name);
+ } elseif (function_exists('apache_getenv')
+ && apache_getenv($var_name, true)) {
+ return apache_getenv($var_name, true);
+ }
+
+ return '';
+}
+
+/**
+ * removes cookie
+ *
+ * @uses PMA_Config::isHttps()
+ * @uses PMA_Config::getCookiePath()
+ * @uses setcookie()
+ * @uses time()
+ * @param string $cookie name of cookie to remove
+ * @return boolean result of setcookie()
+ */
+function PMA_removeCookie($cookie)
+{
+ return setcookie($cookie, '', time() - 3600,
+ PMA_Config::getCookiePath(), '', PMA_Config::isHttps());
+}
+
+/**
+ * sets cookie if value is different from current cokkie value,
+ * or removes if value is equal to default
+ *
+ * @uses PMA_Config::isHttps()
+ * @uses PMA_Config::getCookiePath()
+ * @uses $_COOKIE
+ * @uses PMA_removeCookie()
+ * @uses setcookie()
+ * @uses time()
+ * @param string $cookie name of cookie to remove
+ * @param mixed $value new cookie value
+ * @param string $default default value
+ * @param int $validity validity of cookie in seconds (default is one month)
+ * @param bool $httponlt whether cookie is only for HTTP (and not for scripts)
+ * @return boolean result of setcookie()
+ */
+function PMA_setCookie($cookie, $value, $default = null, $validity = null, $httponly = true)
+{
+ if ($validity == null) {
+ $validity = 2592000;
+ }
+ if (strlen($value) && null !== $default && $value === $default
+ && isset($_COOKIE[$cookie])) {
+ // remove cookie, default value is used
+ return PMA_removeCookie($cookie);
+ }
+
+ if (! strlen($value) && isset($_COOKIE[$cookie])) {
+ // remove cookie, value is empty
+ return PMA_removeCookie($cookie);
+ }
+
+ if (! isset($_COOKIE[$cookie]) || $_COOKIE[$cookie] !== $value) {
+ // set cookie with new value
+ /* Calculate cookie validity */
+ if ($validity == 0) {
+ $v = 0;
+ } else {
+ $v = time() + $validity;
+ }
+ return setcookie($cookie, $value, $v,
+ PMA_Config::getCookiePath(), '', PMA_Config::isHttps(), $httponly);
+ }
+
+ // cookie has already $value as value
+ return true;
+}
+?>
diff --git a/libraries/database_interface.lib.php b/libraries/database_interface.lib.php
new file mode 100644
index 0000000000..c568ba4e3a
--- /dev/null
+++ b/libraries/database_interface.lib.php
@@ -0,0 +1,1285 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Common Option Constants For DBI Functions
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+// PMA_DBI_try_query()
+define('PMA_DBI_QUERY_STORE', 1); // Force STORE_RESULT method, ignored by classic MySQL.
+define('PMA_DBI_QUERY_UNBUFFERED', 2); // Do not read whole query
+// PMA_DBI_get_variable()
+define('PMA_DBI_GETVAR_SESSION', 1);
+define('PMA_DBI_GETVAR_GLOBAL', 2);
+
+/**
+ * Checks one of the mysql extensions
+ *
+ * @param string $extension mysql extension to check
+ */
+function PMA_DBI_checkMysqlExtension($extension = 'mysql') {
+ if (! function_exists($extension . '_connect')) {
+ return false;
+ }
+
+ return true;
+}
+
+
+/**
+ * check for requested extension
+ */
+if (! PMA_DBI_checkMysqlExtension($GLOBALS['cfg']['Server']['extension'])) {
+
+ // if it fails try alternative extension ...
+ // and display an error ...
+
+ /**
+ * @todo add different messages for alternative extension
+ * and complete fail (no alternative extension too)
+ */
+ $error =
+ sprintf(PMA_sanitize($GLOBALS['strCantLoad']),
+ $GLOBALS['cfg']['Server']['extension'])
+ .' - <a href="./Documentation.html#faqmysql" target="documentation">'
+ .$GLOBALS['strDocu'] . '</a>';
+ trigger_error($error, E_USER_ERROR);
+
+ if ($GLOBALS['cfg']['Server']['extension'] === 'mysql') {
+ $alternativ_extension = 'mysqli';
+ } else {
+ $alternativ_extension = 'mysql';
+ }
+
+ if (! PMA_DBI_checkMysqlExtension($alternativ_extension)) {
+ // if alternative fails too ...
+ PMA_fatalError(
+ sprintf($GLOBALS['strCantLoad'],
+ $GLOBALS['cfg']['Server']['extension'])
+ . ' - [a@./Documentation.html#faqmysql@documentation]'
+ . $GLOBALS['strDocu'] . '[/a]');
+ }
+
+ $GLOBALS['cfg']['Server']['extension'] = $alternativ_extension;
+ unset($alternativ_extension);
+}
+
+/**
+ * Including The DBI Plugin
+ */
+require_once './libraries/dbi/' . $GLOBALS['cfg']['Server']['extension'] . '.dbi.lib.php';
+
+/**
+ * Common Functions
+ */
+function PMA_DBI_query($query, $link = null, $options = 0) {
+ $res = PMA_DBI_try_query($query, $link, $options)
+ or PMA_mysqlDie(PMA_DBI_getError($link), $query);
+ return $res;
+}
+
+/**
+ * converts charset of a mysql message, usually coming from mysql_error(),
+ * into PMA charset, usally UTF-8
+ * uses language to charset mapping from mysql/share/errmsg.txt
+ * and charset names to ISO charset from information_schema.CHARACTER_SETS
+ *
+ * @uses $GLOBALS['cfg']['IconvExtraParams']
+ * @uses $GLOBALS['charset'] as target charset
+ * @uses PMA_DBI_fetch_value() to get server_language
+ * @uses preg_match() to filter server_language
+ * @uses in_array()
+ * @uses function_exists() to check for a convert function
+ * @uses iconv() to convert message
+ * @uses libiconv() to convert message
+ * @uses recode_string() to convert message
+ * @uses mb_convert_encoding() to convert message
+ * @param string $message
+ * @return string $message
+ */
+function PMA_DBI_convert_message($message) {
+ // latin always last!
+ $encodings = array(
+ 'japanese' => 'EUC-JP', //'ujis',
+ 'japanese-sjis' => 'Shift-JIS', //'sjis',
+ 'korean' => 'EUC-KR', //'euckr',
+ 'russian' => 'KOI8-R', //'koi8r',
+ 'ukrainian' => 'KOI8-U', //'koi8u',
+ 'greek' => 'ISO-8859-7', //'greek',
+ 'serbian' => 'CP1250', //'cp1250',
+ 'estonian' => 'ISO-8859-13', //'latin7',
+ 'slovak' => 'ISO-8859-2', //'latin2',
+ 'czech' => 'ISO-8859-2', //'latin2',
+ 'hungarian' => 'ISO-8859-2', //'latin2',
+ 'polish' => 'ISO-8859-2', //'latin2',
+ 'romanian' => 'ISO-8859-2', //'latin2',
+ 'spanish' => 'CP1252', //'latin1',
+ 'swedish' => 'CP1252', //'latin1',
+ 'italian' => 'CP1252', //'latin1',
+ 'norwegian-ny' => 'CP1252', //'latin1',
+ 'norwegian' => 'CP1252', //'latin1',
+ 'portuguese' => 'CP1252', //'latin1',
+ 'danish' => 'CP1252', //'latin1',
+ 'dutch' => 'CP1252', //'latin1',
+ 'english' => 'CP1252', //'latin1',
+ 'french' => 'CP1252', //'latin1',
+ 'german' => 'CP1252', //'latin1',
+ );
+
+ if ($server_language = PMA_DBI_fetch_value('SHOW VARIABLES LIKE \'language\';', 0, 1)) {
+ $found = array();
+ if (preg_match('&(?:\\\|\\/)([^\\\\\/]*)(?:\\\|\\/)$&i', $server_language, $found)) {
+ $server_language = $found[1];
+ }
+ }
+
+ if (! empty($server_language) && isset($encodings[$server_language])) {
+ if (function_exists('iconv')) {
+ if ((@stristr(PHP_OS, 'AIX')) && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
+ require_once './libraries/iconv_wrapper.lib.php';
+ $message = PMA_aix_iconv_wrapper($encodings[$server_language],
+ $GLOBALS['charset'] . $GLOBALS['cfg']['IconvExtraParams'], $message);
+ } else {
+ $message = iconv($encodings[$server_language],
+ $GLOBALS['charset'] . $GLOBALS['cfg']['IconvExtraParams'], $message);
+ }
+ } elseif (function_exists('recode_string')) {
+ $message = recode_string($encodings[$server_language] . '..' . $GLOBALS['charset'],
+ $message);
+ } elseif (function_exists('libiconv')) {
+ $message = libiconv($encodings[$server_language], $GLOBALS['charset'], $message);
+ } elseif (function_exists('mb_convert_encoding')) {
+ // do not try unsupported charsets
+ if (! in_array($server_language, array('ukrainian', 'greek', 'serbian'))) {
+ $message = mb_convert_encoding($message, $GLOBALS['charset'],
+ $encodings[$server_language]);
+ }
+ }
+ } else {
+ /**
+ * @todo lang not found, try all, what TODO ?
+ */
+ }
+
+ return $message;
+}
+
+/**
+ * returns array with table names for given db
+ *
+ * @param string $database name of database
+ * @param mixed $link mysql link resource|object
+ * @return array tables names
+ */
+function PMA_DBI_get_tables($database, $link = null)
+{
+ return PMA_DBI_fetch_result('SHOW TABLES FROM ' . PMA_backquote($database) . ';',
+ null, 0, $link, PMA_DBI_QUERY_STORE);
+}
+
+/**
+ * usort comparison callback
+ *
+ * @param string $a first argument to sort
+ * @param string $b second argument to sort
+ *
+ * @return integer a value representing whether $a should be before $b in the
+ * sorted array or not
+ *
+ * @global string the column the array shall be sorted by
+ * @global string the sorting order ('ASC' or 'DESC')
+ *
+ * @access private
+ */
+function PMA_usort_comparison_callback($a, $b)
+{
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ $sorter = 'strnatcasecmp';
+ } else {
+ $sorter = 'strcasecmp';
+ }
+ // produces f.e.:
+ // return -1 * strnatcasecmp($a["SCHEMA_TABLES"], $b["SCHEMA_TABLES"])
+ return ($GLOBALS['callback_sort_order'] == 'ASC' ? 1 : -1) * $sorter($a[$GLOBALS['callback_sort_by']], $b[$GLOBALS['callback_sort_by']]);
+} // end of the 'PMA_usort_comparison_callback()' function
+
+/**
+ * returns array of all tables in given db or dbs
+ * this function expects unquoted names:
+ * RIGHT: my_database
+ * WRONG: `my_database`
+ * WRONG: my\_database
+ * if $tbl_is_group is true, $table is used as filter for table names
+ * if $tbl_is_group is 'comment, $table is used as filter for table comments
+ *
+ * <code>
+ * PMA_DBI_get_tables_full('my_database');
+ * PMA_DBI_get_tables_full('my_database', 'my_table'));
+ * PMA_DBI_get_tables_full('my_database', 'my_tables_', true));
+ * PMA_DBI_get_tables_full('my_database', 'my_tables_', 'comment'));
+ * </code>
+ *
+ * @todo move into PMA_Table
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_escape_mysql_wildcards()
+ * @uses PMA_backquote()
+ * @uses is_array()
+ * @uses addslashes()
+ * @uses strpos()
+ * @uses strtoupper()
+ * @param string $databases database
+ * @param string $table table
+ * @param boolean|string $tbl_is_group $table is a table group
+ * @param resource $link mysql link
+ * @param integer $limit_offset zero-based offset for the count
+ * @param boolean|integer $limit_count number of tables to return
+ * @return array list of tables in given db(s)
+ */
+function PMA_DBI_get_tables_full($database, $table = false,
+ $tbl_is_group = false, $link = null, $limit_offset = 0, $limit_count = false)
+{
+ require_once './libraries/Table.class.php';
+
+ if (true === $limit_count) {
+ $limit_count = $GLOBALS['cfg']['MaxTableList'];
+ }
+ // prepare and check parameters
+ if (! is_array($database)) {
+ $databases = array($database);
+ } else {
+ $databases = $database;
+ }
+
+ $tables = array();
+
+ if (! $GLOBALS['cfg']['Server']['DisableIS']) {
+ // get table information from information_schema
+ if ($table) {
+ if (true === $tbl_is_group) {
+ $sql_where_table = 'AND `TABLE_NAME` LIKE \''
+ . PMA_escape_mysql_wildcards(addslashes($table)) . '%\'';
+ } elseif ('comment' === $tbl_is_group) {
+ $sql_where_table = 'AND `TABLE_COMMENT` LIKE \''
+ . PMA_escape_mysql_wildcards(addslashes($table)) . '%\'';
+ } else {
+ $sql_where_table = 'AND `TABLE_NAME` = \'' . addslashes($table) . '\'';
+ }
+ } else {
+ $sql_where_table = '';
+ }
+
+ // for PMA bc:
+ // `SCHEMA_FIELD_NAME` AS `SHOW_TABLE_STATUS_FIELD_NAME`
+ //
+ // on non-Windows servers,
+ // added BINARY in the WHERE clause to force a case sensitive
+ // comparison (if we are looking for the db Aa we don't want
+ // to find the db aa)
+ $this_databases = array_map('PMA_sqlAddslashes', $databases);
+
+ $sql = '
+ SELECT *,
+ `TABLE_SCHEMA` AS `Db`,
+ `TABLE_NAME` AS `Name`,
+ `ENGINE` AS `Engine`,
+ `ENGINE` AS `Type`,
+ `VERSION` AS `Version`,
+ `ROW_FORMAT` AS `Row_format`,
+ `TABLE_ROWS` AS `Rows`,
+ `AVG_ROW_LENGTH` AS `Avg_row_length`,
+ `DATA_LENGTH` AS `Data_length`,
+ `MAX_DATA_LENGTH` AS `Max_data_length`,
+ `INDEX_LENGTH` AS `Index_length`,
+ `DATA_FREE` AS `Data_free`,
+ `AUTO_INCREMENT` AS `Auto_increment`,
+ `CREATE_TIME` AS `Create_time`,
+ `UPDATE_TIME` AS `Update_time`,
+ `CHECK_TIME` AS `Check_time`,
+ `TABLE_COLLATION` AS `Collation`,
+ `CHECKSUM` AS `Checksum`,
+ `CREATE_OPTIONS` AS `Create_options`,
+ `TABLE_COMMENT` AS `Comment`
+ FROM `information_schema`.`TABLES`
+ WHERE ' . (PMA_IS_WINDOWS ? '' : 'BINARY') . ' `TABLE_SCHEMA` IN (\'' . implode("', '", $this_databases) . '\')
+ ' . $sql_where_table;
+
+ if ($limit_count) {
+ $sql .= ' LIMIT ' . $limit_count . ' OFFSET ' . $limit_offset;
+ }
+ $tables = PMA_DBI_fetch_result($sql, array('TABLE_SCHEMA', 'TABLE_NAME'),
+ null, $link);
+ unset($sql_where_table, $sql);
+ }
+
+ // If permissions are wrong on even one database directory,
+ // information_schema does not return any table info for any database
+ // this is why we fall back to SHOW TABLE STATUS even for MySQL >= 50002
+ if (empty($tables)) {
+ foreach ($databases as $each_database) {
+ if (true === $tbl_is_group) {
+ $sql = 'SHOW TABLE STATUS FROM '
+ . PMA_backquote($each_database)
+ .' LIKE \'' . PMA_escape_mysql_wildcards(addslashes($table)) . '%\'';
+ } else {
+ $sql = 'SHOW TABLE STATUS FROM '
+ . PMA_backquote($each_database);
+ }
+
+ $each_tables = PMA_DBI_fetch_result($sql, 'Name', null, $link);
+
+ if ($limit_count) {
+ $each_tables = array_slice($each_tables, $limit_offset, $limit_count);
+ }
+
+ foreach ($each_tables as $table_name => $each_table) {
+ if ('comment' === $tbl_is_group
+ && 0 === strpos($each_table['Comment'], $table))
+ {
+ // remove table from list
+ unset($each_tables[$table_name]);
+ continue;
+ }
+
+ if (! isset($each_tables[$table_name]['Type'])
+ && isset($each_tables[$table_name]['Engine'])) {
+ // pma BC, same parts of PMA still uses 'Type'
+ $each_tables[$table_name]['Type']
+ =& $each_tables[$table_name]['Engine'];
+ } elseif (! isset($each_tables[$table_name]['Engine'])
+ && isset($each_tables[$table_name]['Type'])) {
+ // old MySQL reports Type, newer MySQL reports Engine
+ $each_tables[$table_name]['Engine']
+ =& $each_tables[$table_name]['Type'];
+ }
+
+ // MySQL forward compatibility
+ // so pma could use this array as if every server is of version >5.0
+ $each_tables[$table_name]['TABLE_SCHEMA'] = $each_database;
+ $each_tables[$table_name]['TABLE_NAME'] =& $each_tables[$table_name]['Name'];
+ $each_tables[$table_name]['ENGINE'] =& $each_tables[$table_name]['Engine'];
+ $each_tables[$table_name]['VERSION'] =& $each_tables[$table_name]['Version'];
+ $each_tables[$table_name]['ROW_FORMAT'] =& $each_tables[$table_name]['Row_format'];
+ $each_tables[$table_name]['TABLE_ROWS'] =& $each_tables[$table_name]['Rows'];
+ $each_tables[$table_name]['AVG_ROW_LENGTH'] =& $each_tables[$table_name]['Avg_row_length'];
+ $each_tables[$table_name]['DATA_LENGTH'] =& $each_tables[$table_name]['Data_length'];
+ $each_tables[$table_name]['MAX_DATA_LENGTH'] =& $each_tables[$table_name]['Max_data_length'];
+ $each_tables[$table_name]['INDEX_LENGTH'] =& $each_tables[$table_name]['Index_length'];
+ $each_tables[$table_name]['DATA_FREE'] =& $each_tables[$table_name]['Data_free'];
+ $each_tables[$table_name]['AUTO_INCREMENT'] =& $each_tables[$table_name]['Auto_increment'];
+ $each_tables[$table_name]['CREATE_TIME'] =& $each_tables[$table_name]['Create_time'];
+ $each_tables[$table_name]['UPDATE_TIME'] =& $each_tables[$table_name]['Update_time'];
+ $each_tables[$table_name]['CHECK_TIME'] =& $each_tables[$table_name]['Check_time'];
+ $each_tables[$table_name]['TABLE_COLLATION'] =& $each_tables[$table_name]['Collation'];
+ $each_tables[$table_name]['CHECKSUM'] =& $each_tables[$table_name]['Checksum'];
+ $each_tables[$table_name]['CREATE_OPTIONS'] =& $each_tables[$table_name]['Create_options'];
+ $each_tables[$table_name]['TABLE_COMMENT'] =& $each_tables[$table_name]['Comment'];
+
+ if (strtoupper($each_tables[$table_name]['Comment']) === 'VIEW') {
+ $each_tables[$table_name]['TABLE_TYPE'] = 'VIEW';
+ } else {
+ /**
+ * @todo difference between 'TEMPORARY' and 'BASE TABLE' but how to detect?
+ */
+ $each_tables[$table_name]['TABLE_TYPE'] = 'BASE TABLE';
+ }
+ }
+
+ $tables[$each_database] = $each_tables;
+ }
+ }
+
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ foreach ($tables as $key => $val) {
+ uksort($tables[$key], 'strnatcasecmp');
+ }
+ }
+
+ // cache table data
+ // so PMA_Table does not require to issue SHOW TABLE STATUS again
+ PMA_Table::$cache = $tables;
+
+ if (! is_array($database)) {
+ if (isset($tables[$database])) {
+ return $tables[$database];
+ } elseif (isset($tables[strtolower($database)])) {
+ // on windows with lower_case_table_names = 1
+ // MySQL returns
+ // with SHOW DATABASES or information_schema.SCHEMATA: `Test`
+ // but information_schema.TABLES gives `test`
+ // bug #1436171
+ // http://sf.net/support/tracker.php?aid=1436171
+ return $tables[strtolower($database)];
+ } else {
+ return $tables;
+ }
+ } else {
+ return $tables;
+ }
+}
+
+/**
+ * returns array with databases containing extended infos about them
+ *
+ * @todo move into PMA_List_Database?
+ * @param string $databases database
+ * @param boolean $force_stats retrieve stats also for MySQL < 5
+ * @param resource $link mysql link
+ * @param string $sort_by column to order by
+ * @param string $sort_order ASC or DESC
+ * @param integer $limit_offset starting offset for LIMIT
+ * @param bool|int $limit_count row count for LIMIT or true for $GLOBALS['cfg']['MaxDbList']
+ * @return array $databases
+ */
+function PMA_DBI_get_databases_full($database = null, $force_stats = false,
+ $link = null, $sort_by = 'SCHEMA_NAME', $sort_order = 'ASC',
+ $limit_offset = 0, $limit_count = false)
+{
+ $sort_order = strtoupper($sort_order);
+
+ if (true === $limit_count) {
+ $limit_count = $GLOBALS['cfg']['MaxDbList'];
+ }
+
+ // initialize to avoid errors when there are no databases
+ $databases = array();
+
+ $apply_limit_and_order_manual = true;
+
+ if (! $GLOBALS['cfg']['Server']['DisableIS']) {
+ /**
+ * if $GLOBALS['cfg']['NaturalOrder'] is enabled, we cannot use LIMIT
+ * cause MySQL does not support natural ordering, we have to do it afterward
+ */
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ $limit = '';
+ } else {
+ if ($limit_count) {
+ $limit = ' LIMIT ' . $limit_count . ' OFFSET ' . $limit_offset;
+ }
+
+ $apply_limit_and_order_manual = false;
+ }
+
+ // get table information from information_schema
+ if ($database) {
+ $sql_where_schema = 'WHERE `SCHEMA_NAME` LIKE \''
+ . addslashes($database) . '\'';
+ } else {
+ $sql_where_schema = '';
+ }
+
+ // for PMA bc:
+ // `SCHEMA_FIELD_NAME` AS `SHOW_TABLE_STATUS_FIELD_NAME`
+ $sql = '
+ SELECT `information_schema`.`SCHEMATA`.*';
+ if ($force_stats) {
+ $sql .= ',
+ COUNT(`information_schema`.`TABLES`.`TABLE_SCHEMA`)
+ AS `SCHEMA_TABLES`,
+ SUM(`information_schema`.`TABLES`.`TABLE_ROWS`)
+ AS `SCHEMA_TABLE_ROWS`,
+ SUM(`information_schema`.`TABLES`.`DATA_LENGTH`)
+ AS `SCHEMA_DATA_LENGTH`,
+ SUM(`information_schema`.`TABLES`.`MAX_DATA_LENGTH`)
+ AS `SCHEMA_MAX_DATA_LENGTH`,
+ SUM(`information_schema`.`TABLES`.`INDEX_LENGTH`)
+ AS `SCHEMA_INDEX_LENGTH`,
+ SUM(`information_schema`.`TABLES`.`DATA_LENGTH`
+ + `information_schema`.`TABLES`.`INDEX_LENGTH`)
+ AS `SCHEMA_LENGTH`,
+ SUM(`information_schema`.`TABLES`.`DATA_FREE`)
+ AS `SCHEMA_DATA_FREE`';
+ }
+ $sql .= '
+ FROM `information_schema`.`SCHEMATA`';
+ if ($force_stats) {
+ $sql .= '
+ LEFT JOIN `information_schema`.`TABLES`
+ ON BINARY `information_schema`.`TABLES`.`TABLE_SCHEMA`
+ = BINARY `information_schema`.`SCHEMATA`.`SCHEMA_NAME`';
+ }
+ $sql .= '
+ ' . $sql_where_schema . '
+ GROUP BY BINARY `information_schema`.`SCHEMATA`.`SCHEMA_NAME`
+ ORDER BY BINARY ' . PMA_backquote($sort_by) . ' ' . $sort_order
+ . $limit;
+ $databases = PMA_DBI_fetch_result($sql, 'SCHEMA_NAME', null, $link);
+
+ $mysql_error = PMA_DBI_getError($link);
+ if (! count($databases) && $GLOBALS['errno']) {
+ PMA_mysqlDie($mysql_error, $sql);
+ }
+
+ // display only databases also in official database list
+ // f.e. to apply hide_db and only_db
+ $drops = array_diff(array_keys($databases), $GLOBALS['pma']->databases);
+ if (count($drops)) {
+ foreach ($drops as $drop) {
+ unset($databases[$drop]);
+ }
+ unset($drop);
+ }
+ unset($sql_where_schema, $sql, $drops);
+ } else {
+ foreach ($GLOBALS['pma']->databases as $database_name) {
+ // MySQL forward compatibility
+ // so pma could use this array as if every server is of version >5.0
+ $databases[$database_name]['SCHEMA_NAME'] = $database_name;
+
+ if ($force_stats) {
+ require_once 'mysql_charsets.lib.php';
+
+ $databases[$database_name]['DEFAULT_COLLATION_NAME']
+ = PMA_getDbCollation($database_name);
+
+ // get additional info about tables
+ $databases[$database_name]['SCHEMA_TABLES'] = 0;
+ $databases[$database_name]['SCHEMA_TABLE_ROWS'] = 0;
+ $databases[$database_name]['SCHEMA_DATA_LENGTH'] = 0;
+ $databases[$database_name]['SCHEMA_MAX_DATA_LENGTH'] = 0;
+ $databases[$database_name]['SCHEMA_INDEX_LENGTH'] = 0;
+ $databases[$database_name]['SCHEMA_LENGTH'] = 0;
+ $databases[$database_name]['SCHEMA_DATA_FREE'] = 0;
+
+ $res = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_backquote($database_name) . ';');
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ $databases[$database_name]['SCHEMA_TABLES']++;
+ $databases[$database_name]['SCHEMA_TABLE_ROWS']
+ += $row['Rows'];
+ $databases[$database_name]['SCHEMA_DATA_LENGTH']
+ += $row['Data_length'];
+ $databases[$database_name]['SCHEMA_MAX_DATA_LENGTH']
+ += $row['Max_data_length'];
+ $databases[$database_name]['SCHEMA_INDEX_LENGTH']
+ += $row['Index_length'];
+ $databases[$database_name]['SCHEMA_DATA_FREE']
+ += $row['Data_free'];
+ $databases[$database_name]['SCHEMA_LENGTH']
+ += $row['Data_length'] + $row['Index_length'];
+ }
+ PMA_DBI_free_result($res);
+ unset($res);
+ }
+ }
+ }
+
+
+ /**
+ * apply limit and order manually now
+ * (caused by older MySQL < 5 or $GLOBALS['cfg']['NaturalOrder'])
+ */
+ if ($apply_limit_and_order_manual) {
+ $GLOBALS['callback_sort_order'] = $sort_order;
+ $GLOBALS['callback_sort_by'] = $sort_by;
+ usort($databases, 'PMA_usort_comparison_callback');
+ unset($GLOBALS['callback_sort_order'], $GLOBALS['callback_sort_by']);
+
+ /**
+ * now apply limit
+ */
+ if ($limit_count) {
+ $databases = array_slice($databases, $limit_offset, $limit_count);
+ }
+ }
+
+ return $databases;
+}
+
+/**
+ * returns detailed array with all columns for given table in database,
+ * or all tables/databases
+ *
+ * @param string $database name of database
+ * @param string $table name of table to retrieve columns from
+ * @param string $column name of specific column
+ * @param mixed $link mysql link resource
+ */
+function PMA_DBI_get_columns_full($database = null, $table = null,
+ $column = null, $link = null)
+{
+ $columns = array();
+
+ if (! $GLOBALS['cfg']['Server']['DisableIS']) {
+ $sql_wheres = array();
+ $array_keys = array();
+
+ // get columns information from information_schema
+ if (null !== $database) {
+ $sql_wheres[] = '`TABLE_SCHEMA` = \'' . addslashes($database) . '\' ';
+ } else {
+ $array_keys[] = 'TABLE_SCHEMA';
+ }
+ if (null !== $table) {
+ $sql_wheres[] = '`TABLE_NAME` = \'' . addslashes($table) . '\' ';
+ } else {
+ $array_keys[] = 'TABLE_NAME';
+ }
+ if (null !== $column) {
+ $sql_wheres[] = '`COLUMN_NAME` = \'' . addslashes($column) . '\' ';
+ } else {
+ $array_keys[] = 'COLUMN_NAME';
+ }
+
+ // for PMA bc:
+ // `[SCHEMA_FIELD_NAME]` AS `[SHOW_FULL_COLUMNS_FIELD_NAME]`
+ $sql = '
+ SELECT *,
+ `COLUMN_NAME` AS `Field`,
+ `COLUMN_TYPE` AS `Type`,
+ `COLLATION_NAME` AS `Collation`,
+ `IS_NULLABLE` AS `Null`,
+ `COLUMN_KEY` AS `Key`,
+ `COLUMN_DEFAULT` AS `Default`,
+ `EXTRA` AS `Extra`,
+ `PRIVILEGES` AS `Privileges`,
+ `COLUMN_COMMENT` AS `Comment`
+ FROM `information_schema`.`COLUMNS`';
+ if (count($sql_wheres)) {
+ $sql .= "\n" . ' WHERE ' . implode(' AND ', $sql_wheres);
+ }
+
+ $columns = PMA_DBI_fetch_result($sql, $array_keys, null, $link);
+ unset($sql_wheres, $sql);
+ } else {
+ if (null === $database) {
+ foreach ($GLOBALS['pma']->databases as $database) {
+ $columns[$database] = PMA_DBI_get_columns_full($database, null,
+ null, $link);
+ }
+ return $columns;
+ } elseif (null === $table) {
+ $tables = PMA_DBI_get_tables($database);
+ foreach ($tables as $table) {
+ $columns[$table] = PMA_DBI_get_columns_full(
+ $database, $table, null, $link);
+ }
+ return $columns;
+ }
+
+ $sql = 'SHOW FULL COLUMNS FROM '
+ . PMA_backquote($database) . '.' . PMA_backquote($table);
+ if (null !== $column) {
+ $sql .= " LIKE '" . $column . "'";
+ }
+
+ $columns = PMA_DBI_fetch_result($sql, 'Field', null, $link);
+
+ $ordinal_position = 1;
+ foreach ($columns as $column_name => $each_column) {
+
+ // MySQL forward compatibility
+ // so pma could use this array as if every server is of version >5.0
+ $columns[$column_name]['COLUMN_NAME'] =& $columns[$column_name]['Field'];
+ $columns[$column_name]['COLUMN_TYPE'] =& $columns[$column_name]['Type'];
+ $columns[$column_name]['COLLATION_NAME'] =& $columns[$column_name]['Collation'];
+ $columns[$column_name]['IS_NULLABLE'] =& $columns[$column_name]['Null'];
+ $columns[$column_name]['COLUMN_KEY'] =& $columns[$column_name]['Key'];
+ $columns[$column_name]['COLUMN_DEFAULT'] =& $columns[$column_name]['Default'];
+ $columns[$column_name]['EXTRA'] =& $columns[$column_name]['Extra'];
+ $columns[$column_name]['PRIVILEGES'] =& $columns[$column_name]['Privileges'];
+ $columns[$column_name]['COLUMN_COMMENT'] =& $columns[$column_name]['Comment'];
+
+ $columns[$column_name]['TABLE_CATALOG'] = null;
+ $columns[$column_name]['TABLE_SCHEMA'] = $database;
+ $columns[$column_name]['TABLE_NAME'] = $table;
+ $columns[$column_name]['ORDINAL_POSITION'] = $ordinal_position;
+ $columns[$column_name]['DATA_TYPE'] =
+ substr($columns[$column_name]['COLUMN_TYPE'], 0,
+ strpos($columns[$column_name]['COLUMN_TYPE'], '('));
+ /**
+ * @todo guess CHARACTER_MAXIMUM_LENGTH from COLUMN_TYPE
+ */
+ $columns[$column_name]['CHARACTER_MAXIMUM_LENGTH'] = null;
+ /**
+ * @todo guess CHARACTER_OCTET_LENGTH from CHARACTER_MAXIMUM_LENGTH
+ */
+ $columns[$column_name]['CHARACTER_OCTET_LENGTH'] = null;
+ $columns[$column_name]['NUMERIC_PRECISION'] = null;
+ $columns[$column_name]['NUMERIC_SCALE'] = null;
+ $columns[$column_name]['CHARACTER_SET_NAME'] =
+ substr($columns[$column_name]['COLLATION_NAME'], 0,
+ strpos($columns[$column_name]['COLLATION_NAME'], '_'));
+
+ $ordinal_position++;
+ }
+
+ if (null !== $column) {
+ reset($columns);
+ $columns = current($columns);
+ }
+ }
+
+ return $columns;
+}
+
+/**
+ * @todo should only return columns names, for more info use PMA_DBI_get_columns_full()
+ *
+ * @deprecated by PMA_DBI_get_columns() or PMA_DBI_get_columns_full()
+ * @param string $database name of database
+ * @param string $table name of table to retrieve columns from
+ * @param mixed $link mysql link resource
+ * @return array column info
+ */
+function PMA_DBI_get_fields($database, $table, $link = null)
+{
+ // here we use a try_query because when coming from
+ // tbl_create + tbl_properties.inc.php, the table does not exist
+ $fields = PMA_DBI_fetch_result(
+ 'SHOW FULL COLUMNS
+ FROM ' . PMA_backquote($database) . '.' . PMA_backquote($table),
+ null, null, $link);
+ if (! is_array($fields) || count($fields) < 1) {
+ return false;
+ }
+ return $fields;
+}
+
+/**
+ * array PMA_DBI_get_columns(string $database, string $table, bool $full = false, mysql db link $link = null)
+ *
+ * @param string $database name of database
+ * @param string $table name of table to retrieve columns from
+ * @param boolean $full whether to return full info or only column names
+ * @param mixed $link mysql link resource
+ * @return array column names
+ */
+function PMA_DBI_get_columns($database, $table, $full = false, $link = null)
+{
+ $fields = PMA_DBI_fetch_result(
+ 'SHOW ' . ($full ? 'FULL' : '') . ' COLUMNS
+ FROM ' . PMA_backquote($database) . '.' . PMA_backquote($table),
+ 'Field', ($full ? null : 'Field'), $link);
+ if (! is_array($fields) || count($fields) < 1) {
+ return false;
+ }
+ return $fields;
+}
+
+/**
+ * returns value of given mysql server variable
+ *
+ * @param string $var mysql server variable name
+ * @param int $type PMA_DBI_GETVAR_SESSION|PMA_DBI_GETVAR_GLOBAL
+ * @param mixed $link mysql link resource|object
+ * @return mixed value for mysql server variable
+ */
+function PMA_DBI_get_variable($var, $type = PMA_DBI_GETVAR_SESSION, $link = null)
+{
+ if ($link === null) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+
+ switch ($type) {
+ case PMA_DBI_GETVAR_SESSION:
+ $modifier = ' SESSION';
+ break;
+ case PMA_DBI_GETVAR_GLOBAL:
+ $modifier = ' GLOBAL';
+ break;
+ default:
+ $modifier = '';
+ }
+ return PMA_DBI_fetch_value(
+ 'SHOW' . $modifier . ' VARIABLES LIKE \'' . $var . '\';', 0, 1, $link);
+}
+
+/**
+ * @uses ./libraries/charset_conversion.lib.php
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_MYSQL_INT_VERSION to set it
+ * @uses PMA_MYSQL_STR_VERSION to set it
+ * @uses $_SESSION['PMA_MYSQL_INT_VERSION'] for caching
+ * @uses $_SESSION['PMA_MYSQL_STR_VERSION'] for caching
+ * @uses PMA_DBI_GETVAR_SESSION
+ * @uses PMA_DBI_fetch_value()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_get_variable()
+ * @uses $GLOBALS['collation_connection']
+ * @uses $GLOBALS['available_languages']
+ * @uses $GLOBALS['mysql_charset_map']
+ * @uses $GLOBALS['charset']
+ * @uses $GLOBALS['lang']
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['cfg']['Lang']
+ * @uses defined()
+ * @uses explode()
+ * @uses sprintf()
+ * @uses intval()
+ * @uses define()
+ * @uses defined()
+ * @uses substr()
+ * @uses count()
+ * @param mixed $link mysql link resource|object
+ * @param boolean $is_controluser
+ */
+function PMA_DBI_postConnect($link, $is_controluser = false)
+{
+ if (! defined('PMA_MYSQL_INT_VERSION')) {
+ if (PMA_cacheExists('PMA_MYSQL_INT_VERSION', true)) {
+ define('PMA_MYSQL_INT_VERSION', PMA_cacheGet('PMA_MYSQL_INT_VERSION', true));
+ define('PMA_MYSQL_STR_VERSION', PMA_cacheGet('PMA_MYSQL_STR_VERSION', true));
+ } else {
+ $mysql_version = PMA_DBI_fetch_value(
+ 'SELECT VERSION()', 0, 0, $link, PMA_DBI_QUERY_STORE);
+ if ($mysql_version) {
+ $match = explode('.', $mysql_version);
+ define('PMA_MYSQL_INT_VERSION',
+ (int) sprintf('%d%02d%02d', $match[0], $match[1],
+ intval($match[2])));
+ define('PMA_MYSQL_STR_VERSION', $mysql_version);
+ unset($mysql_version, $match);
+ } else {
+ define('PMA_MYSQL_INT_VERSION', 50015);
+ define('PMA_MYSQL_STR_VERSION', '5.00.15');
+ }
+ PMA_cacheSet('PMA_MYSQL_INT_VERSION', PMA_MYSQL_INT_VERSION, true);
+ PMA_cacheSet('PMA_MYSQL_STR_VERSION', PMA_MYSQL_STR_VERSION, true);
+ }
+ }
+
+ if (! empty($GLOBALS['collation_connection'])) {
+ $mysql_charset = explode('_', $GLOBALS['collation_connection']);
+ PMA_DBI_query("SET NAMES '" . $mysql_charset[0] . "' COLLATE '" . $GLOBALS['collation_connection'] . "';",
+ $link, PMA_DBI_QUERY_STORE);
+ } else {
+ PMA_DBI_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci';", $link, PMA_DBI_QUERY_STORE);
+ }
+}
+
+/**
+ * returns a single value from the given result or query,
+ * if the query or the result has more than one row or field
+ * the first field of the first row is returned
+ *
+ * <code>
+ * $sql = 'SELECT `name` FROM `user` WHERE `id` = 123';
+ * $user_name = PMA_DBI_fetch_value($sql);
+ * // produces
+ * // $user_name = 'John Doe'
+ * </code>
+ *
+ * @uses is_string()
+ * @uses is_int()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_free_result()
+ * @param string|mysql_result $result query or mysql result
+ * @param integer $row_number row to fetch the value from,
+ * starting at 0, with 0 beeing default
+ * @param integer|string $field field to fetch the value from,
+ * starting at 0, with 0 beeing default
+ * @param resource $link mysql link
+ * @param mixed $options
+ * @return mixed value of first field in first row from result
+ * or false if not found
+ */
+function PMA_DBI_fetch_value($result, $row_number = 0, $field = 0, $link = null, $options = 0) {
+ $value = false;
+
+ if (is_string($result)) {
+ $result = PMA_DBI_try_query($result, $link, $options | PMA_DBI_QUERY_STORE);
+ }
+
+ // return false if result is empty or false
+ // or requested row is larger than rows in result
+ if (PMA_DBI_num_rows($result) < ($row_number + 1)) {
+ return $value;
+ }
+
+ // if $field is an integer use non associative mysql fetch function
+ if (is_int($field)) {
+ $fetch_function = 'PMA_DBI_fetch_row';
+ } else {
+ $fetch_function = 'PMA_DBI_fetch_assoc';
+ }
+
+ // get requested row
+ for ($i = 0; $i <= $row_number; $i++) {
+ $row = $fetch_function($result);
+ }
+ PMA_DBI_free_result($result);
+
+ // return requested field
+ if (isset($row[$field])) {
+ $value = $row[$field];
+ }
+ unset($row);
+
+ return $value;
+}
+
+/**
+ * returns only the first row from the result
+ *
+ * <code>
+ * $sql = 'SELECT * FROM `user` WHERE `id` = 123';
+ * $user = PMA_DBI_fetch_single_row($sql);
+ * // produces
+ * // $user = array('id' => 123, 'name' => 'John Doe')
+ * </code>
+ *
+ * @uses is_string()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_fetch_array()
+ * @uses PMA_DBI_free_result()
+ * @param string|mysql_result $result query or mysql result
+ * @param string $type NUM|ASSOC|BOTH
+ * returned array should either numeric
+ * associativ or booth
+ * @param resource $link mysql link
+ * @param mixed $options
+ * @return array|boolean first row from result
+ * or false if result is empty
+ */
+function PMA_DBI_fetch_single_row($result, $type = 'ASSOC', $link = null, $options = 0) {
+ if (is_string($result)) {
+ $result = PMA_DBI_try_query($result, $link, $options | PMA_DBI_QUERY_STORE);
+ }
+
+ // return null if result is empty or false
+ if (! PMA_DBI_num_rows($result)) {
+ return false;
+ }
+
+ switch ($type) {
+ case 'NUM' :
+ $fetch_function = 'PMA_DBI_fetch_row';
+ break;
+ case 'ASSOC' :
+ $fetch_function = 'PMA_DBI_fetch_assoc';
+ break;
+ case 'BOTH' :
+ default :
+ $fetch_function = 'PMA_DBI_fetch_array';
+ break;
+ }
+
+ $row = $fetch_function($result);
+ PMA_DBI_free_result($result);
+ return $row;
+}
+
+/**
+ * returns all rows in the resultset in one array
+ *
+ * <code>
+ * $sql = 'SELECT * FROM `user`';
+ * $users = PMA_DBI_fetch_result($sql);
+ * // produces
+ * // $users[] = array('id' => 123, 'name' => 'John Doe')
+ *
+ * $sql = 'SELECT `id`, `name` FROM `user`';
+ * $users = PMA_DBI_fetch_result($sql, 'id');
+ * // produces
+ * // $users['123'] = array('id' => 123, 'name' => 'John Doe')
+ *
+ * $sql = 'SELECT `id`, `name` FROM `user`';
+ * $users = PMA_DBI_fetch_result($sql, 0);
+ * // produces
+ * // $users['123'] = array(0 => 123, 1 => 'John Doe')
+ *
+ * $sql = 'SELECT `id`, `name` FROM `user`';
+ * $users = PMA_DBI_fetch_result($sql, 'id', 'name');
+ * // or
+ * $users = PMA_DBI_fetch_result($sql, 0, 1);
+ * // produces
+ * // $users['123'] = 'John Doe'
+ *
+ * $sql = 'SELECT `name` FROM `user`';
+ * $users = PMA_DBI_fetch_result($sql);
+ * // produces
+ * // $users[] = 'John Doe'
+ *
+ * $sql = 'SELECT `group`, `name` FROM `user`'
+ * $users = PMA_DBI_fetch_result($sql, array('group', null), 'name');
+ * // produces
+ * // $users['admin'][] = 'John Doe'
+ *
+ * $sql = 'SELECT `group`, `name` FROM `user`'
+ * $users = PMA_DBI_fetch_result($sql, array('group', 'name'), 'id');
+ * // produces
+ * // $users['admin']['John Doe'] = '123'
+ * </code>
+ *
+ * @uses is_string()
+ * @uses is_int()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_num_fields()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_free_result()
+ * @param string|mysql_result $result query or mysql result
+ * @param string|integer $key field-name or offset
+ * used as key for array
+ * @param string|integer $value value-name or offset
+ * used as value for array
+ * @param resource $link mysql link
+ * @param mixed $options
+ * @return array resultrows or values indexed by $key
+ */
+function PMA_DBI_fetch_result($result, $key = null, $value = null,
+ $link = null, $options = 0)
+{
+ $resultrows = array();
+
+ if (is_string($result)) {
+ $result = PMA_DBI_try_query($result, $link, $options);
+ }
+
+ // return empty array if result is empty or false
+ if (! $result) {
+ return $resultrows;
+ }
+
+ $fetch_function = 'PMA_DBI_fetch_assoc';
+
+ // no nested array if only one field is in result
+ if (null === $key && 1 === PMA_DBI_num_fields($result)) {
+ $value = 0;
+ $fetch_function = 'PMA_DBI_fetch_row';
+ }
+
+ // if $key is an integer use non associative mysql fetch function
+ if (is_int($key)) {
+ $fetch_function = 'PMA_DBI_fetch_row';
+ }
+
+ if (null === $key && null === $value) {
+ while ($row = $fetch_function($result)) {
+ $resultrows[] = $row;
+ }
+ } elseif (null === $key) {
+ while ($row = $fetch_function($result)) {
+ $resultrows[] = $row[$value];
+ }
+ } elseif (null === $value) {
+ if (is_array($key)) {
+ while ($row = $fetch_function($result)) {
+ $result_target =& $resultrows;
+ foreach ($key as $key_index) {
+ if (null === $key_index) {
+ $result_target =& $result_target[];
+ continue;
+ }
+
+ if (! isset($result_target[$row[$key_index]])) {
+ $result_target[$row[$key_index]] = array();
+ }
+ $result_target =& $result_target[$row[$key_index]];
+ }
+ $result_target = $row;
+ }
+ } else {
+ while ($row = $fetch_function($result)) {
+ $resultrows[$row[$key]] = $row;
+ }
+ }
+ } else {
+ if (is_array($key)) {
+ while ($row = $fetch_function($result)) {
+ $result_target =& $resultrows;
+ foreach ($key as $key_index) {
+ if (null === $key_index) {
+ $result_target =& $result_target[];
+ continue;
+ }
+
+ if (! isset($result_target[$row[$key_index]])) {
+ $result_target[$row[$key_index]] = array();
+ }
+ $result_target =& $result_target[$row[$key_index]];
+ }
+ $result_target = $row[$value];
+ }
+ } else {
+ while ($row = $fetch_function($result)) {
+ $resultrows[$row[$key]] = $row[$value];
+ }
+ }
+ }
+
+ PMA_DBI_free_result($result);
+ return $resultrows;
+}
+
+/**
+ * return default table engine for given database
+ *
+ * @return string default table engine
+ */
+function PMA_DBI_get_default_engine()
+{
+ return PMA_DBI_fetch_value('SHOW VARIABLES LIKE \'storage_engine\';', 0, 1);
+}
+
+/**
+ * Get supported SQL compatibility modes
+ *
+ * @return array supported SQL compatibility modes
+ */
+function PMA_DBI_getCompatibilities()
+{
+ $compats = array('NONE');
+ $compats[] = 'ANSI';
+ $compats[] = 'DB2';
+ $compats[] = 'MAXDB';
+ $compats[] = 'MYSQL323';
+ $compats[] = 'MYSQL40';
+ $compats[] = 'MSSQL';
+ $compats[] = 'ORACLE';
+ // removed; in MySQL 5.0.33, this produces exports that
+ // can't be read by POSTGRESQL (see our bug #1596328)
+ //$compats[] = 'POSTGRESQL';
+ $compats[] = 'TRADITIONAL';
+
+ return $compats;
+}
+
+/**
+ * returns warnings for last query
+ *
+ * @uses $GLOBALS['userlink']
+ * @uses PMA_DBI_fetch_result()
+ * @param resource mysql link $link mysql link resource
+ * @return array warnings
+ */
+function PMA_DBI_get_warnings($link = null)
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return array();
+ }
+ }
+
+ return PMA_DBI_fetch_result('SHOW WARNINGS', null, null, $link);
+}
+
+/**
+ * returns true (int > 0) if current user is superuser
+ * otherwise 0
+ *
+ * @uses $_SESSION['is_superuser'] for caching
+ * @uses $GLOBALS['userlink']
+ * @uses $GLOBALS['server']
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_QUERY_STORE
+ * @return integer $is_superuser
+ */
+function PMA_isSuperuser()
+{
+ if (PMA_cacheExists('is_superuser', true)) {
+ return PMA_cacheGet('is_superuser', true);
+ }
+
+ // with mysql extension, when connection failed we don't have
+ // a $userlink
+ if (isset($GLOBALS['userlink'])) {
+ $r = (bool) PMA_DBI_try_query('SELECT COUNT(*) FROM mysql.user', $GLOBALS['userlink'], PMA_DBI_QUERY_STORE);
+ PMA_cacheSet('is_superuser', $r, true);
+ } else {
+ PMA_cacheSet('is_superuser', false, true);
+ }
+
+ return PMA_cacheGet('is_superuser', true);
+}
+
+/**
+ * returns an array of PROCEDURE or FUNCTION names for a db
+ *
+ * @uses PMA_DBI_free_result()
+ * @param string $db db name
+ * @param string $which PROCEDURE | FUNCTION
+ * @param resource $link mysql link
+ *
+ * @return array the procedure names or function names
+ */
+function PMA_DBI_get_procedures_or_functions($db, $which, $link = null)
+{
+ $shows = PMA_DBI_fetch_result('SHOW ' . $which . ' STATUS;', null, null, $link);
+ $result = array();
+ foreach ($shows as $one_show) {
+ if ($one_show['Db'] == $db && $one_show['Type'] == $which) {
+ $result[] = $one_show['Name'];
+ }
+ }
+ return($result);
+}
+
+/**
+ * returns the definition of a specific PROCEDURE, FUNCTION or EVENT
+ *
+ * @uses PMA_DBI_fetch_value()
+ * @param string $db db name
+ * @param string $which PROCEDURE | FUNCTION | EVENT
+ * @param string $name the procedure|function|event name
+ * @param resource $link mysql link
+ *
+ * @return string the definition
+ */
+function PMA_DBI_get_definition($db, $which, $name, $link = null)
+{
+ $returned_field = array(
+ 'PROCEDURE' => 'Create Procedure',
+ 'FUNCTION' => 'Create Function',
+ 'EVENT' => 'Create Event'
+ );
+ $query = 'SHOW CREATE ' . $which . ' ' . PMA_backquote($db) . '.' . PMA_backquote($name);
+ return(PMA_DBI_fetch_value($query, 0, $returned_field[$which]));
+}
+
+/**
+ * returns details about the TRIGGERs of a specific table
+ *
+ * @uses PMA_DBI_fetch_result()
+ * @param string $db db name
+ * @param string $table table name
+ *
+ * @return array information about triggers (may be empty)
+ */
+function PMA_DBI_get_triggers($db, $table)
+{
+ $result = array();
+
+ // Note: in http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html
+ // their example uses WHERE TRIGGER_SCHEMA='dbname' so let's use this
+ // instead of WHERE EVENT_OBJECT_SCHEMA='dbname'
+ $triggers = PMA_DBI_fetch_result("SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_MANIPULATION, ACTION_TIMING, ACTION_STATEMENT, EVENT_OBJECT_SCHEMA, EVENT_OBJECT_TABLE FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA= '" . PMA_sqlAddslashes($db,true) . "' and EVENT_OBJECT_TABLE = '" . PMA_sqlAddslashes($table, true) . "';");
+
+ if ($triggers) {
+ $delimiter = '//';
+ foreach ($triggers as $trigger) {
+ $one_result = array();
+ $one_result['name'] = $trigger['TRIGGER_NAME'];
+ $one_result['action_timing'] = $trigger['ACTION_TIMING'];
+ $one_result['event_manipulation'] = $trigger['EVENT_MANIPULATION'];
+
+ $one_result['full_trigger_name'] = PMA_backquote($trigger['TRIGGER_SCHEMA']) . '.' . PMA_backquote($trigger['TRIGGER_NAME']);
+ $one_result['drop'] = 'DROP TRIGGER IF EXISTS ' . $one_result['full_trigger_name'];
+ $one_result['create'] = 'CREATE TRIGGER ' . $one_result['full_trigger_name'] . ' ' . $trigger['ACTION_TIMING']. ' ' . $trigger['EVENT_MANIPULATION'] . ' ON ' . PMA_backquote($trigger['EVENT_OBJECT_SCHEMA']) . '.' . PMA_backquote($trigger['EVENT_OBJECT_TABLE']) . "\n" . ' FOR EACH ROW ' . $trigger['ACTION_STATEMENT'] . "\n" . $delimiter . "\n";
+
+ $result[] = $one_result;
+ }
+ }
+ return($result);
+}
+?>
diff --git a/libraries/db_common.inc.php b/libraries/db_common.inc.php
new file mode 100644
index 0000000000..b44c155947
--- /dev/null
+++ b/libraries/db_common.inc.php
@@ -0,0 +1,69 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/bookmark.lib.php';
+
+PMA_checkParameters(array('db'));
+
+$is_show_stats = $cfg['ShowStats'];
+
+if ($db == 'information_schema') {
+ $is_show_stats = false;
+ $db_is_information_schema = true;
+} else {
+ $db_is_information_schema = false;
+}
+
+/**
+ * Defines the urls to return to in case of error in a sql statement
+ */
+$err_url_0 = 'main.php?' . PMA_generate_common_url();
+$err_url = $cfg['DefaultTabDatabase'] . '?' . PMA_generate_common_url($db);
+
+
+/**
+ * Ensures the database exists (else move to the "parent" script) and displays
+ * headers
+ */
+if (!isset($is_db) || !$is_db) {
+ // Not a valid db name -> back to the welcome page
+ if (strlen($db)) {
+ $is_db = PMA_DBI_select_db($db);
+ }
+ if (! strlen($db) || !$is_db) {
+ PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . 'main.php?' . PMA_generate_common_url('', '', '&') . (isset($message) ? '&message=' . urlencode($message) : '') . '&reload=1');
+ exit;
+ }
+} // end if (ensures db exists)
+
+/**
+ * Changes database charset if requested by the user
+ */
+if (isset($submitcollation) && !empty($db_collation)) {
+ list($db_charset) = explode('_', $db_collation);
+ $sql_query = 'ALTER DATABASE ' . PMA_backquote($db) . ' DEFAULT' . PMA_generateCharsetQueryPart($db_collation);
+ $result = PMA_DBI_query($sql_query);
+ $message = PMA_Message::success();
+ unset($db_charset, $db_collation);
+}
+
+$GLOBALS['js_include'][] = 'functions.js';
+require_once './libraries/header.inc.php';
+
+/**
+ * Set parameters for links
+ */
+$url_query = PMA_generate_common_url($db);
+
+?>
diff --git a/libraries/db_events.inc.php b/libraries/db_events.inc.php
new file mode 100644
index 0000000000..4b8e40fbb1
--- /dev/null
+++ b/libraries/db_events.inc.php
@@ -0,0 +1,58 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+$url_query .= '&amp;goto=db_structure.php';
+
+$events = PMA_DBI_fetch_result('SELECT EVENT_NAME, EVENT_TYPE FROM information_schema.EVENTS WHERE EVENT_SCHEMA= \'' . PMA_sqlAddslashes($db,true) . '\';');
+
+if ($events) {
+ PMA_generate_slider_effect('events', $strEvents);
+ echo '<fieldset>' . "\n";
+ echo ' <legend>' . $strEvents . '</legend>' . "\n";
+ echo '<table border="0">';
+ echo sprintf('<tr>
+ <th>%s</th>
+ <th>&nbsp;</th>
+ <th>&nbsp;</th>
+ <th>%s</th>
+ </tr>',
+ $strName,
+ $strType);
+ $ct=0;
+ $delimiter = '//';
+ foreach ($events as $event) {
+
+ // information_schema (at least in MySQL 5.1.22) does not return
+ // the full CREATE EVENT statement in a way that could be useful for us
+ // so we rely on PMA_DBI_get_definition() which uses SHOW CREATE EVENT
+
+ $definition = 'DROP EVENT ' . PMA_backquote($event['EVENT_NAME']) . $delimiter . "\n"
+ . PMA_DBI_get_definition($db, 'EVENT', $event['EVENT_NAME'])
+ . "\n";
+
+ $sqlDrop = 'DROP EVENT ' . PMA_backquote($event['EVENT_NAME']);
+ echo sprintf('<tr class="%s">
+ <td><strong>%s</strong></td>
+ <td>%s</td>
+ <td>%s</td>
+ <td>%s</td>
+ </tr>',
+ ($ct%2 == 0) ? 'even' : 'odd',
+ $event['EVENT_NAME'],
+ ! empty($definition) ? PMA_linkOrButton('db_sql.php?' . $url_query . '&amp;sql_query=' . urlencode($definition) . '&amp;show_query=1&amp;delimiter=' . urlencode($delimiter), $titles['Structure']) : '&nbsp;',
+ '<a href="sql.php?' . $url_query . '&sql_query=' . urlencode($sqlDrop) . '" onclick="return confirmLink(this, \'' . PMA_jsFormat($sqlDrop, false) . '\')">' . $titles['Drop'] . '</a>',
+ $event['EVENT_TYPE']);
+ $ct++;
+ }
+ echo '</table>';
+ echo '</fieldset>' . "\n";
+ echo '</div>' . "\n";
+}
+?>
diff --git a/libraries/db_info.inc.php b/libraries/db_info.inc.php
new file mode 100644
index 0000000000..d76f0442ed
--- /dev/null
+++ b/libraries/db_info.inc.php
@@ -0,0 +1,252 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Gets the list of the table in the current db and informations about these
+ * tables if possible
+ *
+ * fills tooltip arrays and provides $tables, $num_tables, $is_show_stats
+ * and $db_is_information_schema
+ *
+ * staybyte: speedup view on locked tables - 11 June 2001
+ *
+ * @uses $cfg['ShowStats']
+ * @uses $cfg['ShowTooltip']
+ * @uses $cfg['ShowTooltipAliasTB']
+ * @uses $cfg['SkipLockedTables']
+ * @uses $GLOBALS['db']
+ * @uses PMA_fillTooltip()
+ * @uses PMA_checkParameters()
+ * @uses PMA_escape_mysql_wildcards()
+ * @uses PMA_DBI_query()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_free_result()
+ * @uses PMA_DBI_get_tables_full()
+ * @uses PMA_isValid()
+ * @uses preg_match()
+ * @uses preg_quote()
+ * @uses uksort()
+ * @uses strnatcasecmp()
+ * @uses count()
+ * @uses addslashes()
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * requirements
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * limits for table list
+ */
+if (! isset($_SESSION['userconf']['table_limit_offset']) || $_SESSION['userconf']['table_limit_offset_db'] != $db) {
+ $_SESSION['userconf']['table_limit_offset'] = 0;
+ $_SESSION['userconf']['table_limit_offset_db'] = $db;
+}
+if (isset($_REQUEST['pos'])) {
+ $_SESSION['userconf']['table_limit_offset'] = (int) $_REQUEST['pos'];
+}
+$pos = $_SESSION['userconf']['table_limit_offset'];
+
+/**
+ * fills given tooltip arrays
+ *
+ * @uses $cfg['ShowTooltipAliasTB']
+ * @uses $GLOBALS['strStatCreateTime']
+ * @uses PMA_localisedDate()
+ * @uses strtotime()
+ * @param array $tooltip_truename tooltip data
+ * @param array $tooltip_aliasname tooltip data
+ * @param array $table tabledata
+ */
+function PMA_fillTooltip(&$tooltip_truename, &$tooltip_aliasname, $table)
+{
+ if (empty($table['Comment'])) {
+ $table['Comment'] = $table['Name'];
+ } else {
+ // why?
+ $table['Comment'] .= ' ';
+ }
+
+ if ($GLOBALS['cfg']['ShowTooltipAliasTB']
+ && $GLOBALS['cfg']['ShowTooltipAliasTB'] != 'nested') {
+ $tooltip_truename[$table['Name']] = $table['Comment'];
+ $tooltip_aliasname[$table['Name']] = $table['Name'];
+ } else {
+ $tooltip_truename[$table['Name']] = $table['Name'];
+ $tooltip_aliasname[$table['Name']] = $table['Comment'];
+ }
+
+ if (isset($table['Create_time']) && !empty($table['Create_time'])) {
+ $tooltip_aliasname[$table['Name']] .= ', ' . $GLOBALS['strStatCreateTime']
+ . ': ' . PMA_localisedDate(strtotime($table['Create_time']));
+ }
+
+ if (! empty($table['Update_time'])) {
+ $tooltip_aliasname[$table['Name']] .= ', ' . $GLOBALS['strStatUpdateTime']
+ . ': ' . PMA_localisedDate(strtotime($table['Update_time']));
+ }
+
+ if (! empty($table['Check_time'])) {
+ $tooltip_aliasname[$table['Name']] .= ', ' . $GLOBALS['strStatCheckTime']
+ . ': ' . PMA_localisedDate(strtotime($table['Check_time']));
+ }
+}
+
+PMA_checkParameters(array('db'));
+
+/**
+ * @global bool whether to display extended stats
+ */
+$is_show_stats = $cfg['ShowStats'];
+
+/**
+ * @global bool whether selected db is information_schema
+ */
+$db_is_information_schema = false;
+
+if ($db == 'information_schema') {
+ $is_show_stats = false;
+ $db_is_information_schema = true;
+}
+
+/**
+ * @global array information about tables in db
+ */
+$tables = array();
+
+// When used in Nested table group mode, only show tables matching the given groupname
+if (PMA_isValid($tbl_group) && !$cfg['ShowTooltipAliasTB']) {
+ $tbl_group_sql = ' LIKE "' . PMA_escape_mysql_wildcards($tbl_group) . '%"';
+} else {
+ $tbl_group_sql = '';
+}
+
+if ($cfg['ShowTooltip']) {
+ $tooltip_truename = array();
+ $tooltip_aliasname = array();
+}
+
+// Special speedup for newer MySQL Versions (in 4.0 format changed)
+if (true === $cfg['SkipLockedTables']) {
+ $db_info_result = PMA_DBI_query('SHOW OPEN TABLES FROM ' . PMA_backquote($db) . ';');
+
+ // Blending out tables in use
+ if ($db_info_result && PMA_DBI_num_rows($db_info_result) > 0) {
+ while ($tmp = PMA_DBI_fetch_row($db_info_result)) {
+ // if in use memorize tablename
+ if (preg_match('@in_use=[1-9]+@i', $tmp[1])) {
+ $sot_cache[$tmp[0]] = true;
+ }
+ }
+ PMA_DBI_free_result($db_info_result);
+
+ if (isset($sot_cache)) {
+ $db_info_result = PMA_DBI_query(
+ 'SHOW TABLES FROM ' . PMA_backquote($db) . $tbl_group_sql . ';',
+ null, PMA_DBI_QUERY_STORE);
+ if ($db_info_result && PMA_DBI_num_rows($db_info_result) > 0) {
+ while ($tmp = PMA_DBI_fetch_row($db_info_result)) {
+ if (!isset($sot_cache[$tmp[0]])) {
+ $sts_result = PMA_DBI_query(
+ 'SHOW TABLE STATUS FROM ' . PMA_backquote($db)
+ . ' LIKE \'' . addslashes($tmp[0]) . '\';');
+ $sts_tmp = PMA_DBI_fetch_assoc($sts_result);
+ PMA_DBI_free_result($sts_result);
+ unset($sts_result);
+
+ if (!isset($sts_tmp['Type']) && isset($sts_tmp['Engine'])) {
+ $sts_tmp['Type'] =& $sts_tmp['Engine'];
+ }
+
+ if (!empty($tbl_group) && $cfg['ShowTooltipAliasTB']
+ && !preg_match('@' . preg_quote($tbl_group, '@') . '@i', $sts_tmp['Comment'])) {
+ continue;
+ }
+
+ if ($cfg['ShowTooltip']) {
+ PMA_fillTooltip($tooltip_truename, $tooltip_aliasname, $sts_tmp);
+ }
+
+ $tables[$sts_tmp['Name']] = $sts_tmp;
+ } else { // table in use
+ $tables[$tmp[0]] = array('Name' => $tmp[0]);
+ }
+ }
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ uksort($tables, 'strnatcasecmp');
+ }
+
+ $sot_ready = true;
+ } elseif ($db_info_result) {
+ PMA_DBI_free_result($db_info_result);
+ }
+ unset($sot_cache);
+ }
+ unset($tmp);
+ } elseif ($db_info_result) {
+ PMA_DBI_free_result($db_info_result);
+ }
+}
+
+if (! isset($sot_ready)) {
+ if (! empty($tbl_group) && ! $cfg['ShowTooltipAliasTB']) {
+ // only tables for selected group
+ $tables = PMA_DBI_get_tables_full($db, $tbl_group, true);
+ } elseif (! empty($tbl_group) && $cfg['ShowTooltipAliasTB']) {
+ // only tables for selected group,
+ // but grouping is done on comment ...
+ $tables = PMA_DBI_get_tables_full($db, $tbl_group, 'comment');
+ } else {
+ // all tables in db
+ // - get the total number of tables
+ // (needed for proper working of the MaxTableList feature)
+ $tables = PMA_DBI_get_tables($db);
+ $total_num_tables = count($tables);
+ if (isset($sub_part) && $sub_part == '_export') {
+ // (don't fetch only a subset if we are coming from db_export.php,
+ // because I think it's too risky to display only a subset of the
+ // table names when exporting a db)
+ /**
+ *
+ * @todo Page selector for table names?
+ */
+ $tables = PMA_DBI_get_tables_full($db, false, false, null, 0, false);
+ } else {
+ // fetch the details for a possible limited subset
+ $tables = PMA_DBI_get_tables_full($db, false, false, null, $pos, true);
+ }
+ }
+
+ if ($cfg['ShowTooltip']) {
+ foreach ($tables as $each_table) {
+ PMA_fillTooltip($tooltip_truename, $tooltip_aliasname, $each_table);
+ }
+ }
+}
+
+/**
+ * @global int count of tables in db
+ */
+$num_tables = count($tables);
+// (needed for proper working of the MaxTableList feature)
+if (! isset($total_num_tables)) {
+ $total_num_tables = $num_tables;
+}
+
+/**
+ * cleanup
+ */
+unset($each_table, $tbl_group_sql, $db_info_result);
+
+/**
+ * Displays top menu links
+ */
+require './libraries/db_links.inc.php';
+?>
diff --git a/libraries/db_links.inc.php b/libraries/db_links.inc.php
new file mode 100644
index 0000000000..725d358916
--- /dev/null
+++ b/libraries/db_links.inc.php
@@ -0,0 +1,141 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+require_once './libraries/relation.lib.php';
+/**
+ * Gets the relation settings
+ */
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * If coming from a Show MySQL link on the home page,
+ * put something in $sub_part
+ */
+if (empty($sub_part)) {
+ $sub_part = '_structure';
+}
+
+/**
+ * Checks for superuser privileges
+ */
+$is_superuser = PMA_isSuperuser();
+
+/**
+ * Prepares links
+ */
+// Drop link if allowed
+// rabus: Don't even try to drop information_schema. You won't be able to. Believe me. You won't.
+// nijel: Don't allow to easilly drop mysql database, RFE #1327514.
+if (($is_superuser || $GLOBALS['cfg']['AllowUserDropDatabase']) && ! $db_is_information_schema && ($db != 'mysql')) {
+ $tab_drop['link'] = 'sql.php';
+ $tab_drop['args']['sql_query'] = 'DROP DATABASE ' . PMA_backquote($db);
+ $tab_drop['args']['zero_rows'] = sprintf($GLOBALS['strDatabaseHasBeenDropped'], htmlspecialchars(PMA_backquote($db)));
+ $tab_drop['args']['goto'] = 'main.php';
+ $tab_drop['args']['back'] = 'db' . $sub_part . '.php';
+ $tab_drop['args']['reload'] = 1;
+ $tab_drop['args']['purge'] = 1;
+ $tab_drop['attr'] = 'onclick="return confirmLinkDropDB(this, \'DROP DATABASE ' . PMA_jsFormat($db) . '\')"';
+}
+
+/**
+ * export, search and qbe links if there is at least one table
+ */
+if ($num_tables == 0) {
+ $tab_qbe['warning'] = $strDbIsEmpty;
+ $tab_search['warning'] = $strDbIsEmpty;
+ $tab_export['warning'] = $strDbIsEmpty;
+}
+
+$tab_structure['link'] = 'db_structure.php';
+$tab_structure['text'] = $GLOBALS['strStructure'];
+$tab_structure['icon'] = 'b_props.png';
+
+$tab_sql['link'] = 'db_sql.php';
+$tab_sql['args']['db_query_force'] = 1;
+$tab_sql['text'] = $GLOBALS['strSQL'];
+$tab_sql['icon'] = 'b_sql.png';
+
+$tab_export['text'] = $GLOBALS['strExport'];
+$tab_export['icon'] = 'b_export.png';
+$tab_export['link'] = 'db_export.php';
+
+$tab_search['text'] = $GLOBALS['strSearch'];
+$tab_search['icon'] = 'b_search.png';
+$tab_search['link'] = 'db_search.php';
+
+$tab_qbe['text'] = $GLOBALS['strQBE'];
+$tab_qbe['icon'] = 's_db.png';
+$tab_qbe['link'] = 'db_qbe.php';
+
+if ($cfgRelation['designerwork']) {
+ $tab_designer['text'] = $GLOBALS['strDesigner'];
+ $tab_designer['icon'] = 'b_relations.png';
+ $tab_designer['link'] = 'pmd_general.php';
+}
+
+if (! $db_is_information_schema) {
+ $tab_import['link'] = 'db_import.php';
+ $tab_import['text'] = $GLOBALS['strImport'];
+ $tab_import['icon'] = 'b_import.png';
+ $tab_drop['text'] = $GLOBALS['strDrop'];
+ $tab_drop['icon'] = 'b_deltbl.png';
+ $tab_drop['class'] = 'caution';
+ $tab_operation['link'] = 'db_operations.php';
+ $tab_operation['text'] = $GLOBALS['strOperations'];
+ $tab_operation['icon'] = 'b_tblops.png';
+ if ($is_superuser) {
+ $tab_privileges['link'] = 'server_privileges.php';
+ $tab_privileges['args']['checkprivs'] = $db;
+ // stay on database view
+ $tab_privileges['args']['viewing_mode'] = 'db';
+ $tab_privileges['text'] = $GLOBALS['strPrivileges'];
+ $tab_privileges['icon'] = 's_rights.png';
+ }
+}
+
+/**
+ * Displays tab links
+ */
+$tabs = array();
+$tabs[] =& $tab_structure;
+$tabs[] =& $tab_sql;
+$tabs[] =& $tab_search;
+$tabs[] =& $tab_qbe;
+$tabs[] =& $tab_export;
+if (! $db_is_information_schema) {
+ $tabs[] =& $tab_import;
+ if ($cfgRelation['designerwork']) {
+ $tabs[] =& $tab_designer;
+ }
+ $tabs[] =& $tab_operation;
+ if ($is_superuser) {
+ $tabs[] =& $tab_privileges;
+ }
+ if ($is_superuser || $GLOBALS['cfg']['AllowUserDropDatabase']) {
+ $tabs[] =& $tab_drop;
+ }
+}
+
+echo PMA_getTabs($tabs);
+unset($tabs);
+
+/**
+ * Displays a message
+ */
+if (!empty($message)) {
+ PMA_showMessage($message);
+ unset($message);
+}
+?>
diff --git a/libraries/db_routines.inc.php b/libraries/db_routines.inc.php
new file mode 100644
index 0000000000..3d5b7cb79c
--- /dev/null
+++ b/libraries/db_routines.inc.php
@@ -0,0 +1,88 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @todo Support seeing the "results" of the called procedure or
+ * function. This needs further reseach because a procedure
+ * does not necessarily contain a SELECT statement that
+ * produces something to see. But it seems we could at least
+ * get the number of rows affected. We would have to
+ * use the CLIENT_MULTI_RESULTS flag to get the result set
+ * and also the call status. All this does not fit well with
+ * our current sql.php.
+ * Of course the interface would need a way to pass calling parameters.
+ * Also, support DEFINER (like we do in export).
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+$url_query .= '&amp;goto=db_structure.php';
+
+$routines = PMA_DBI_fetch_result('SELECT SPECIFIC_NAME,ROUTINE_NAME,ROUTINE_TYPE,DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA= \'' . PMA_sqlAddslashes($db,true) . '\';');
+
+if ($routines) {
+ PMA_generate_slider_effect('routines', $strRoutines);
+ echo '<fieldset>' . "\n";
+ echo ' <legend>' . $strRoutines . '</legend>' . "\n";
+ echo '<table border="0">';
+ echo sprintf('<tr>
+ <th>%s</th>
+ <th>&nbsp;</th>
+ <th>&nbsp;</th>
+ <th>%s</th>
+ <th>%s</th>
+ </tr>',
+ $strName,
+ $strType,
+ $strRoutineReturnType);
+ $ct=0;
+ $delimiter = '//';
+ foreach ($routines as $routine) {
+
+ // information_schema (at least in MySQL 5.0.45)
+ // does not return the routine parameters
+ // so we rely on PMA_DBI_get_definition() which
+ // uses SHOW CREATE
+
+ $definition = 'DROP ' . $routine['ROUTINE_TYPE'] . ' ' . PMA_backquote($routine['SPECIFIC_NAME']) . $delimiter . "\n"
+ . PMA_DBI_get_definition($db, $routine['ROUTINE_TYPE'], $routine['SPECIFIC_NAME'])
+ . "\n";
+
+ //if ($routine['ROUTINE_TYPE'] == 'PROCEDURE') {
+ // $sqlUseProc = 'CALL ' . $routine['SPECIFIC_NAME'] . '()';
+ //} else {
+ // $sqlUseProc = 'SELECT ' . $routine['SPECIFIC_NAME'] . '()';
+ /* this won't get us far: to really use the function
+ i'd need to know how many parameters the function needs and then create
+ something to ask for them. As i don't see this directly in
+ the table i am afraid that requires parsing the ROUTINE_DEFINITION
+ and i don't really need that now so i simply don't offer
+ a method for running the function*/
+ //}
+ if ($routine['ROUTINE_TYPE'] == 'PROCEDURE') {
+ $sqlDropProc = 'DROP PROCEDURE ' . PMA_backquote($routine['SPECIFIC_NAME']);
+ } else {
+ $sqlDropProc = 'DROP FUNCTION ' . PMA_backquote($routine['SPECIFIC_NAME']);
+ }
+ echo sprintf('<tr class="%s">
+ <td><strong>%s</strong></td>
+ <td>%s</td>
+ <td>%s</td>
+ <td>%s</td>
+ <td>%s</td>
+ </tr>',
+ ($ct%2 == 0) ? 'even' : 'odd',
+ $routine['ROUTINE_NAME'],
+ ! empty($definition) ? PMA_linkOrButton('db_sql.php?' . $url_query . '&amp;sql_query=' . urlencode($definition) . '&amp;show_query=1&amp;delimiter=' . urlencode($delimiter), $titles['Structure']) : '&nbsp;',
+ '<a href="sql.php?' . $url_query . '&amp;sql_query=' . urlencode($sqlDropProc) . '" onclick="return confirmLink(this, \'' . PMA_jsFormat($sqlDropProc, false) . '\')">' . $titles['Drop'] . '</a>',
+ $routine['ROUTINE_TYPE'],
+ $routine['DTD_IDENTIFIER']);
+ $ct++;
+ }
+ echo '</table>';
+ echo '</fieldset>' . "\n";
+ echo '</div>' . "\n";
+}
+?>
diff --git a/libraries/db_table_exists.lib.php b/libraries/db_table_exists.lib.php
new file mode 100644
index 0000000000..66c30e9ed3
--- /dev/null
+++ b/libraries/db_table_exists.lib.php
@@ -0,0 +1,102 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Ensure the database and the table exist (else move to the "parent" script)
+ * and display headers
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/Table.class.php';
+
+if (empty($is_db)) {
+ if (strlen($db)) {
+ $is_db = @PMA_DBI_select_db($db);
+ } else {
+ $is_db = false;
+ }
+
+ if (! $is_db) {
+ // not a valid db name -> back to the welcome page
+ if (! defined('IS_TRANSFORMATION_WRAPPER')) {
+ $url_params = array('reload' => 1);
+ if (isset($message)) {
+ $url_params['message'] = $message;
+ }
+ if (! empty($sql_query)) {
+ $url_params['sql_query'] = $sql_query;
+ }
+ if (isset($show_as_php)) {
+ $url_params['show_as_php'] = $show_as_php;
+ }
+ PMA_sendHeaderLocation(
+ $cfg['PmaAbsoluteUri'] . 'main.php'
+ . PMA_generate_common_url($url_params, '&'));
+ }
+ exit;
+ }
+} // end if (ensures db exists)
+
+if (empty($is_table) && !defined('PMA_SUBMIT_MULT')) {
+ // Not a valid table name -> back to the db_sql.php
+
+ if (strlen($table)) {
+ $is_table = isset(PMA_Table::$cache[$db][$table]);
+
+ if (! $is_table) {
+ $_result = PMA_DBI_try_query(
+ 'SHOW TABLES LIKE \'' . PMA_sqlAddslashes($table, true) . '\';',
+ null, PMA_DBI_QUERY_STORE);
+ $is_table = @PMA_DBI_num_rows($_result);
+ PMA_DBI_free_result($_result);
+ }
+ } else {
+ $is_table = false;
+ }
+
+ if (! $is_table) {
+ if (! defined('IS_TRANSFORMATION_WRAPPER')) {
+ if (strlen($table)) {
+ // SHOW TABLES doesn't show temporary tables, so try select
+ // (as it can happen just in case temporary table, it should be
+ // fast):
+
+ /**
+ * @todo should this check really only happen if IS_TRANSFORMATION_WRAPPER?
+ */
+ $_result = PMA_DBI_try_query(
+ 'SELECT COUNT(*) FROM `' . PMA_sqlAddslashes($table, true) . '`;',
+ null, PMA_DBI_QUERY_STORE);
+ $is_table = ($_result && @PMA_DBI_num_rows($_result));
+ PMA_DBI_free_result($_result);
+ }
+
+ if (! $is_table) {
+ $url_params = array('reload' => 1, 'db' => $db);
+ if (isset($message)) {
+ $url_params['message'] = $message;
+ }
+ if (! empty($sql_query)) {
+ $url_params['sql_query'] = $sql_query;
+ }
+ if (isset($display_query)) {
+ $url_params['display_query'] = $display_query;
+ }
+ PMA_sendHeaderLocation(
+ $cfg['PmaAbsoluteUri'] . 'db_sql.php'
+ . PMA_generate_common_url($url_params, '&'));
+ }
+ }
+
+ if (! $is_table) {
+ exit;
+ }
+ }
+} // end if (ensures table exists)
+?>
diff --git a/libraries/dbg/setup.php b/libraries/dbg/setup.php
new file mode 100644
index 0000000000..233172fe70
--- /dev/null
+++ b/libraries/dbg/setup.php
@@ -0,0 +1,31 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * checks for DBG extension
+ *
+ * allways use $GLOBALS here, as this script is included by footer.inc.hp
+ * which can also be included from inside a function
+ */
+if ($GLOBALS['cfg']['DBG']['php']) {
+ /**
+ * Loads the DBG extension if needed
+ */
+ if (! @extension_loaded('dbg') ) {
+ $message = PMA_Message::error('strCantLoad');
+ $message->addParam('DBG');
+ $message->addMessage('<a href="./Documentation.html#faqdbg" target="documentation">', false);
+ $message->addString('strDocu');
+ $message->addMessage('</a>', false);
+ $message->display();
+ } else {
+ $GLOBALS['DBG'] = true;
+ }
+}
+?>
diff --git a/libraries/dbi/mysql.dbi.lib.php b/libraries/dbi/mysql.dbi.lib.php
new file mode 100644
index 0000000000..92d9424b18
--- /dev/null
+++ b/libraries/dbi/mysql.dbi.lib.php
@@ -0,0 +1,394 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Interface to the classic MySQL extension
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * MySQL client API
+ */
+if (! defined('PMA_MYSQL_CLIENT_API')) {
+ $client_api = explode('.', mysql_get_client_info());
+ define('PMA_MYSQL_CLIENT_API', (int)sprintf('%d%02d%02d', $client_api[0], $client_api[1], intval($client_api[2])));
+ unset($client_api);
+}
+
+function PMA_DBI_real_connect($server, $user, $password, $client_flags)
+{
+ global $cfg;
+
+ if (empty($client_flags)) {
+ if ($cfg['PersistentConnections']) {
+ $link = @mysql_pconnect($server, $user, $password);
+ } else {
+ $link = @mysql_connect($server, $user, $password);
+ }
+ } else {
+ if ($cfg['PersistentConnections']) {
+ $link = @mysql_pconnect($server, $user, $password, $client_flags);
+ } else {
+ $link = @mysql_connect($server, $user, $password, false, $client_flags);
+ }
+ }
+
+ return $link;
+}
+
+function PMA_DBI_connect($user, $password, $is_controluser = false)
+{
+ global $cfg, $php_errormsg;
+
+ $server_port = (empty($cfg['Server']['port']))
+ ? ''
+ : ':' . $cfg['Server']['port'];
+
+ if (strtolower($cfg['Server']['connect_type']) == 'tcp') {
+ $cfg['Server']['socket'] = '';
+ }
+
+ $server_socket = (empty($cfg['Server']['socket']))
+ ? ''
+ : ':' . $cfg['Server']['socket'];
+
+ $client_flags = 0;
+
+ // always use CLIENT_LOCAL_FILES as defined in mysql_com.h
+ // for the case where the client library was not compiled
+ // with --enable-local-infile
+ $client_flags |= 128;
+
+ /* Optionally compress connection */
+ if (defined('MYSQL_CLIENT_COMPRESS') && $cfg['Server']['compress']) {
+ $client_flags |= MYSQL_CLIENT_COMPRESS;
+ }
+
+ /* Optionally enable SSL */
+ if (defined('MYSQL_CLIENT_SSL') && $cfg['Server']['ssl']) {
+ $client_flags |= MYSQL_CLIENT_SSL;
+ }
+
+ $link = PMA_DBI_real_connect($cfg['Server']['host'] . $server_port . $server_socket, $user, $password, empty($client_flags) ? NULL : $client_flags);
+
+ // Retry with empty password if we're allowed to
+ if (empty($link) && $cfg['Server']['nopassword'] && !$is_controluser) {
+ $link = PMA_DBI_real_connect($cfg['Server']['host'] . $server_port . $server_socket, $user, '', empty($client_flags) ? NULL : $client_flags);
+ }
+
+ if (empty($link)) {
+ if ($is_controluser) {
+ trigger_error($GLOBALS['strControluserFailed'], E_USER_WARNING);
+ return false;
+ }
+ PMA_auth_fails();
+ } // end if
+
+ PMA_DBI_postConnect($link, $is_controluser);
+
+ return $link;
+}
+
+/**
+ * select a db
+ *
+ * @param string $dbname name of db to select
+ * @param resource $link mysql link resource
+ * @return boolean success
+ */
+function PMA_DBI_select_db($dbname, $link = null)
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysql_select_db($dbname, $link);
+}
+
+/**
+ * runs a query and returns the result
+ *
+ * @param string $query query to run
+ * @param resource $link mysql link resource
+ * @param integer $options
+ * @return mixed
+ */
+function PMA_DBI_try_query($query, $link = null, $options = 0)
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+
+ if ($GLOBALS['cfg']['DBG']['sql']) {
+ $time = microtime(true);
+ }
+ if ($options == ($options | PMA_DBI_QUERY_STORE)) {
+ $r = mysql_query($query, $link);
+ } elseif ($options == ($options | PMA_DBI_QUERY_UNBUFFERED)) {
+ $r = mysql_unbuffered_query($query, $link);
+ } else {
+ $r = mysql_query($query, $link);
+ }
+
+ if ($GLOBALS['cfg']['DBG']['sql']) {
+ $time = microtime(true) - $time;
+
+ $hash = md5($query);
+
+ if (isset($_SESSION['debug']['queries'][$hash])) {
+ $_SESSION['debug']['queries'][$hash]['count']++;
+ } else {
+ $_SESSION['debug']['queries'][$hash] = array();
+ $_SESSION['debug']['queries'][$hash]['count'] = 1;
+ $_SESSION['debug']['queries'][$hash]['query'] = $query;
+ $_SESSION['debug']['queries'][$hash]['time'] = $time;
+ }
+
+ $trace = array();
+ foreach (debug_backtrace() as $trace_step) {
+ $trace[] = PMA_Error::relPath($trace_step['file']) . '#'
+ . $trace_step['line'] . ': '
+ . (isset($trace_step['class']) ? $trace_step['class'] : '')
+ //. (isset($trace_step['object']) ? get_class($trace_step['object']) : '')
+ . (isset($trace_step['type']) ? $trace_step['type'] : '')
+ . (isset($trace_step['function']) ? $trace_step['function'] : '')
+ . '('
+ . (isset($trace_step['params']) ? implode(', ', $trace_step['params']) : '')
+ . ')'
+ ;
+ }
+ $_SESSION['debug']['queries'][$hash]['trace'][] = $trace;
+ }
+
+ return $r;
+}
+
+function PMA_DBI_fetch_array($result)
+{
+ return mysql_fetch_array($result, MYSQL_BOTH);
+}
+
+function PMA_DBI_fetch_assoc($result) {
+ return mysql_fetch_array($result, MYSQL_ASSOC);
+}
+
+function PMA_DBI_fetch_row($result)
+{
+ return mysql_fetch_array($result, MYSQL_NUM);
+}
+
+/*
+ * Adjusts the result pointer to an arbitrary row in the result
+ *
+ * @uses mysql_data_seek()
+ * @param $result
+ * @param $offset
+ * @return boolean true on success, false on failure
+ */
+function PMA_DBI_data_seek($result, $offset)
+{
+ return mysql_data_seek($result, $offset);
+}
+
+/**
+ * Frees the memory associated with the results
+ *
+ * @param result $result,... one or more mysql result resources
+ */
+function PMA_DBI_free_result()
+{
+ foreach (func_get_args() as $result) {
+ if (is_resource($result)
+ && get_resource_type($result) === 'mysql result') {
+ mysql_free_result($result);
+ }
+ }
+}
+
+/**
+ * Returns a string representing the type of connection used
+ * @uses mysql_get_host_info()
+ * @uses $GLOBALS['userlink'] as default for $link
+ * @param resource $link mysql link
+ * @return string type of connection used
+ */
+function PMA_DBI_get_host_info($link = null)
+{
+ if (null === $link) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysql_get_host_info($link);
+}
+
+/**
+ * Returns the version of the MySQL protocol used
+ * @uses mysql_get_proto_info()
+ * @uses $GLOBALS['userlink'] as default for $link
+ * @param resource $link mysql link
+ * @return integer version of the MySQL protocol used
+ */
+function PMA_DBI_get_proto_info($link = null)
+{
+ if (null === $link) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysql_get_proto_info($link);
+}
+
+/**
+ * returns a string that represents the client library version
+ * @uses mysql_get_client_info()
+ * @return string MySQL client library version
+ */
+function PMA_DBI_get_client_info()
+{
+ return mysql_get_client_info();
+}
+
+/**
+ * returns last error message or false if no errors occured
+ *
+ * @uses PMA_DBI_convert_message()
+ * @uses $GLOBALS['errno']
+ * @uses $GLOBALS['userlink']
+ * @uses $GLOBALS['strServerNotResponding']
+ * @uses $GLOBALS['strSocketProblem']
+ * @uses mysql_errno()
+ * @uses mysql_error()
+ * @uses defined()
+ * @param resource $link mysql link
+ * @return string|boolean $error or false
+ */
+function PMA_DBI_getError($link = null)
+{
+ $GLOBALS['errno'] = 0;
+ if (null === $link && isset($GLOBALS['userlink'])) {
+ $link =& $GLOBALS['userlink'];
+
+// Do not stop now. On the initial connection, we don't have a $link,
+// we don't have a $GLOBALS['userlink'], but we can catch the error code
+// } else {
+// return false;
+ }
+
+ if (null !== $link && false !== $link) {
+ $error_number = mysql_errno($link);
+ $error_message = mysql_error($link);
+ } else {
+ $error_number = mysql_errno();
+ $error_message = mysql_error();
+ }
+ if (0 == $error_number) {
+ return false;
+ }
+
+ // keep the error number for further check after the call to PMA_DBI_getError()
+ $GLOBALS['errno'] = $error_number;
+
+ if (! empty($error_message)) {
+ $error_message = PMA_DBI_convert_message($error_message);
+ }
+
+ // Some errors messages cannot be obtained by mysql_error()
+ if ($error_number == 2002) {
+ $error = '#' . ((string) $error_number) . ' - ' . $GLOBALS['strServerNotResponding'] . ' ' . $GLOBALS['strSocketProblem'];
+ } elseif ($error_number == 2003) {
+ $error = '#' . ((string) $error_number) . ' - ' . $GLOBALS['strServerNotResponding'];
+ } else {
+ $error = '#' . ((string) $error_number) . ' - ' . $error_message;
+ }
+ return $error;
+}
+
+function PMA_DBI_num_rows($result)
+{
+ if (!is_bool($result)) {
+ return mysql_num_rows($result);
+ } else {
+ return 0;
+ }
+}
+
+function PMA_DBI_insert_id($link = null)
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ //$insert_id = mysql_insert_id($link);
+ // if the primary key is BIGINT we get an incorrect result
+ // (sometimes negative, sometimes positive)
+ // and in the present function we don't know if the PK is BIGINT
+ // so better play safe and use LAST_INSERT_ID()
+ //
+ // by the way, no problem with mysqli_insert_id()
+ return PMA_DBI_fetch_value('SELECT LAST_INSERT_ID();', 0, 0, $link);
+}
+
+function PMA_DBI_affected_rows($link = null)
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysql_affected_rows($link);
+}
+
+/**
+ * @todo add missing keys like in from mysqli_query (orgname, orgtable, flags, decimals)
+ */
+function PMA_DBI_get_fields_meta($result)
+{
+ $fields = array();
+ $num_fields = mysql_num_fields($result);
+ for ($i = 0; $i < $num_fields; $i++) {
+ $fields[] = mysql_fetch_field($result, $i);
+ }
+ return $fields;
+}
+
+function PMA_DBI_num_fields($result)
+{
+ return mysql_num_fields($result);
+}
+
+function PMA_DBI_field_len($result, $i)
+{
+ return mysql_field_len($result, $i);
+}
+
+function PMA_DBI_field_name($result, $i)
+{
+ return mysql_field_name($result, $i);
+}
+
+function PMA_DBI_field_flags($result, $i)
+{
+ return mysql_field_flags($result, $i);
+}
+
+?>
diff --git a/libraries/dbi/mysqli.dbi.lib.php b/libraries/dbi/mysqli.dbi.lib.php
new file mode 100644
index 0000000000..ec47b82e7f
--- /dev/null
+++ b/libraries/dbi/mysqli.dbi.lib.php
@@ -0,0 +1,622 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Interface to the improved MySQL extension (MySQLi)
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+// MySQL client API
+if (!defined('PMA_MYSQL_CLIENT_API')) {
+ $client_api = explode('.', mysqli_get_client_info());
+ define('PMA_MYSQL_CLIENT_API', (int)sprintf('%d%02d%02d', $client_api[0], $client_api[1], intval($client_api[2])));
+ unset($client_api);
+}
+
+/**
+ * some older mysql client libs are missing this constants ...
+ */
+if (! defined('MYSQLI_BINARY_FLAG')) {
+ define('MYSQLI_BINARY_FLAG', 128);
+}
+
+/**
+ * @see http://bugs.php.net/36007
+ */
+if (! defined('MYSQLI_TYPE_NEWDECIMAL')) {
+ define('MYSQLI_TYPE_NEWDECIMAL', 246);
+}
+if (! defined('MYSQLI_TYPE_BIT')) {
+ define('MYSQLI_TYPE_BIT', 16);
+}
+
+/**
+ * connects to the database server
+ *
+ * @uses $GLOBALS['cfg']['Server']
+ * @uses PMA_auth_fails()
+ * @uses PMA_DBI_postConnect()
+ * @uses MYSQLI_CLIENT_COMPRESS
+ * @uses MYSQLI_OPT_LOCAL_INFILE
+ * @uses strtolower()
+ * @uses mysqli_init()
+ * @uses mysqli_options()
+ * @uses mysqli_real_connect()
+ * @uses defined()
+ * @param string $user mysql user name
+ * @param string $password mysql user password
+ * @param boolean $is_controluser
+ * @return mixed false on error or a mysqli object on success
+ */
+function PMA_DBI_connect($user, $password, $is_controluser = false)
+{
+ $server_port = (empty($GLOBALS['cfg']['Server']['port']))
+ ? false
+ : (int) $GLOBALS['cfg']['Server']['port'];
+
+ if (strtolower($GLOBALS['cfg']['Server']['connect_type']) == 'tcp') {
+ $GLOBALS['cfg']['Server']['socket'] = '';
+ }
+
+ // NULL enables connection to the default socket
+ $server_socket = (empty($GLOBALS['cfg']['Server']['socket']))
+ ? null
+ : $GLOBALS['cfg']['Server']['socket'];
+
+ $link = mysqli_init();
+
+ mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, true);
+
+ $client_flags = 0;
+
+ /* Optionally compress connection */
+ if ($GLOBALS['cfg']['Server']['compress'] && defined('MYSQLI_CLIENT_COMPRESS')) {
+ $client_flags |= MYSQLI_CLIENT_COMPRESS;
+ }
+
+ /* Optionally enable SSL */
+ if ($GLOBALS['cfg']['Server']['ssl'] && defined('MYSQLI_CLIENT_SSL')) {
+ $client_flags |= MYSQLI_CLIENT_SSL;
+ }
+
+ $return_value = @mysqli_real_connect($link, $GLOBALS['cfg']['Server']['host'], $user, $password, false, $server_port, $server_socket, $client_flags);
+
+ // Retry with empty password if we're allowed to
+ if ($return_value == false && isset($cfg['Server']['nopassword']) && $cfg['Server']['nopassword'] && !$is_controluser) {
+ $return_value = @mysqli_real_connect($link, $GLOBALS['cfg']['Server']['host'], $user, '', false, $server_port, $server_socket, $client_flags);
+ }
+
+ if ($return_value == false) {
+ if ($is_controluser) {
+ trigger_error($GLOBALS['strControluserFailed'], E_USER_WARNING);
+ return false;
+ }
+ PMA_auth_fails();
+ } // end if
+
+ PMA_DBI_postConnect($link, $is_controluser);
+
+ return $link;
+}
+
+/**
+ * selects given database
+ *
+ * @uses $GLOBALS['userlink']
+ * @uses PMA_convert_charset()
+ * @uses mysqli_select_db()
+ * @param string $dbname database name to select
+ * @param object mysqli $link the mysqli object
+ * @return boolean true or false
+ */
+function PMA_DBI_select_db($dbname, $link = null)
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysqli_select_db($link, $dbname);
+}
+
+/**
+ * runs a query and returns the result
+ *
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_DBI_QUERY_UNBUFFERED
+ * @uses $GLOBALS['userlink']
+ * @uses PMA_convert_charset()
+ * @uses MYSQLI_STORE_RESULT
+ * @uses MYSQLI_USE_RESULT
+ * @uses mysqli_query()
+ * @uses defined()
+ * @param string $query query to execute
+ * @param object mysqli $link mysqli object
+ * @param integer $options
+ * @return mixed true, false or result object
+ */
+function PMA_DBI_try_query($query, $link = null, $options = 0)
+{
+ if ($options == ($options | PMA_DBI_QUERY_STORE)) {
+ $method = MYSQLI_STORE_RESULT;
+ } elseif ($options == ($options | PMA_DBI_QUERY_UNBUFFERED)) {
+ $method = MYSQLI_USE_RESULT;
+ } else {
+ $method = 0;
+ }
+
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+
+ if ($GLOBALS['cfg']['DBG']['sql']) {
+ $time = microtime(true);
+ }
+ $r = mysqli_query($link, $query, $method);
+ if ($GLOBALS['cfg']['DBG']['sql']) {
+ $time = microtime(true) - $time;
+
+ $hash = md5($query);
+
+ if (isset($_SESSION['debug']['queries'][$hash])) {
+ $_SESSION['debug']['queries'][$hash]['count']++;
+ } else {
+ $_SESSION['debug']['queries'][$hash] = array();
+ $_SESSION['debug']['queries'][$hash]['count'] = 1;
+ $_SESSION['debug']['queries'][$hash]['query'] = $query;
+ $_SESSION['debug']['queries'][$hash]['time'] = $time;
+ }
+
+ $trace = array();
+ foreach (debug_backtrace() as $trace_step) {
+ $trace[] = PMA_Error::relPath($trace_step['file']) . '#'
+ . $trace_step['line'] . ': '
+ . (isset($trace_step['class']) ? $trace_step['class'] : '')
+ //. (isset($trace_step['object']) ? get_class($trace_step['object']) : '')
+ . (isset($trace_step['type']) ? $trace_step['type'] : '')
+ . (isset($trace_step['function']) ? $trace_step['function'] : '')
+ . '('
+ . (isset($trace_step['params']) ? implode(', ', $trace_step['params']) : '')
+ . ')'
+ ;
+ }
+ $_SESSION['debug']['queries'][$hash]['trace'][] = $trace;
+ }
+
+ return $r;
+
+ // From the PHP manual:
+ // "note: returns true on success or false on failure. For SELECT,
+ // SHOW, DESCRIBE or EXPLAIN, mysqli_query() will return a result object"
+ // so, do not use the return value to feed mysqli_num_rows() if it's
+ // a boolean
+}
+
+/**
+ * returns array of rows with associative and numeric keys from $result
+ *
+ * @uses mysqli_fetch_array()
+ * @uses MYSQLI_BOTH
+ * @param object mysqli result $result
+ * @return array result rows
+ */
+function PMA_DBI_fetch_array($result)
+{
+ return mysqli_fetch_array($result, MYSQLI_BOTH);
+}
+
+/**
+ * returns array of rows with associative keys from $result
+ *
+ * @uses mysqli_fetch_array()
+ * @uses MYSQLI_ASSOC
+ * @param object mysqli result $result
+ * @return array result rows
+ */
+function PMA_DBI_fetch_assoc($result)
+{
+ return mysqli_fetch_array($result, MYSQLI_ASSOC);
+}
+
+/**
+ * returns array of rows with numeric keys from $result
+ *
+ * @uses mysqli_fetch_array()
+ * @uses MYSQLI_NUM
+ * @param object mysqli result $result
+ * @return array result rows
+ */
+function PMA_DBI_fetch_row($result)
+{
+ return mysqli_fetch_array($result, MYSQLI_NUM);
+}
+
+/*
+ * Adjusts the result pointer to an arbitrary row in the result
+ *
+ * @uses mysqli_data_seek()
+ * @param $result
+ * @param $offset
+ * @return boolean true on success, false on failure
+ */
+function PMA_DBI_data_seek($result, $offset)
+{
+ return mysqli_data_seek($result, $offset);
+}
+
+/**
+ * Frees the memory associated with the results
+ *
+ * @uses mysqli_result
+ * @uses func_get_args()
+ * @uses mysqli_free_result()
+ * @param result $result,... one or more mysql result resources
+ */
+function PMA_DBI_free_result()
+{
+ foreach (func_get_args() as $result) {
+ if ($result instanceof mysqli_result) {
+ mysqli_free_result($result);
+ }
+ }
+}
+
+/**
+ * Returns a string representing the type of connection used
+ * @uses mysqli_get_host_info()
+ * @uses $GLOBALS['userlink'] as default for $link
+ * @param resource $link mysql link
+ * @return string type of connection used
+ */
+function PMA_DBI_get_host_info($link = null)
+{
+ if (null === $link) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysqli_get_host_info($link);
+}
+
+/**
+ * Returns the version of the MySQL protocol used
+ * @uses mysqli_get_proto_info()
+ * @uses $GLOBALS['userlink'] as default for $link
+ * @param resource $link mysql link
+ * @return integer version of the MySQL protocol used
+ */
+function PMA_DBI_get_proto_info($link = null)
+{
+ if (null === $link) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysqli_get_proto_info($link);
+}
+
+/**
+ * returns a string that represents the client library version
+ * @uses mysqli_get_client_info()
+ * @return string MySQL client library version
+ */
+function PMA_DBI_get_client_info()
+{
+ return mysqli_get_client_info();
+}
+
+/**
+ * returns last error message or false if no errors occured
+ *
+ * @uses PMA_DBI_convert_message()
+ * @uses $GLOBALS['errno']
+ * @uses $GLOBALS['userlink']
+ * @uses $GLOBALS['strServerNotResponding']
+ * @uses $GLOBALS['strSocketProblem']
+ * @uses mysqli_errno()
+ * @uses mysqli_error()
+ * @uses mysqli_connect_errno()
+ * @uses mysqli_connect_error()
+ * @uses defined()
+ * @param resource $link mysql link
+ * @return string|boolean $error or false
+ */
+function PMA_DBI_getError($link = null)
+{
+ $GLOBALS['errno'] = 0;
+
+ if (null === $link && isset($GLOBALS['userlink'])) {
+ $link =& $GLOBALS['userlink'];
+ // Do not stop now. We still can get the error code
+ // with mysqli_connect_errno()
+// } else {
+// return false;
+ }
+
+ if (null !== $link) {
+ $error_number = mysqli_errno($link);
+ $error_message = mysqli_error($link);
+ } else {
+ $error_number = mysqli_connect_errno();
+ $error_message = mysqli_connect_error();
+ }
+ if (0 == $error_number) {
+ return false;
+ }
+
+ // keep the error number for further check after the call to PMA_DBI_getError()
+ $GLOBALS['errno'] = $error_number;
+
+ if (! empty($error_message)) {
+ $error_message = PMA_DBI_convert_message($error_message);
+ }
+
+ if ($error_number == 2002) {
+ $error = '#' . ((string) $error_number) . ' - ' . $GLOBALS['strServerNotResponding'] . ' ' . $GLOBALS['strSocketProblem'];
+ } else {
+ $error = '#' . ((string) $error_number) . ' - ' . $error_message;
+ }
+ return $error;
+}
+
+/**
+ *
+ * @param object mysqli result $result
+ */
+function PMA_DBI_num_rows($result)
+{
+ // see the note for PMA_DBI_try_query();
+ if (!is_bool($result)) {
+ return @mysqli_num_rows($result);
+ } else {
+ return 0;
+ }
+}
+
+/**
+ * returns last inserted auto_increment id for given $link or $GLOBALS['userlink']
+ *
+ * @uses $GLOBALS['userlink']
+ * @uses mysqli_insert_id()
+ * @param object mysqli $link the mysqli object
+ * @return string ineteger
+ */
+function PMA_DBI_insert_id($link = '')
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysqli_insert_id($link);
+}
+
+/**
+ * returns the number of rows affected by last query
+ *
+ * @uses $GLOBALS['userlink']
+ * @uses mysqli_affected_rows()
+ * @param object mysqli $link the mysqli object
+ * @return string integer
+ */
+function PMA_DBI_affected_rows($link = null)
+{
+ if (empty($link)) {
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
+ }
+ }
+ return mysqli_affected_rows($link);
+}
+
+/**
+ * returns metainfo for fields in $result
+ *
+ * @todo preserve orignal flags value
+ * @uses PMA_DBI_field_flags()
+ * @uses MYSQLI_TYPE_*
+ * @uses MYSQLI_MULTIPLE_KEY_FLAG
+ * @uses MYSQLI_PRI_KEY_FLAG
+ * @uses MYSQLI_UNIQUE_KEY_FLAG
+ * @uses MYSQLI_NOT_NULL_FLAG
+ * @uses MYSQLI_UNSIGNED_FLAG
+ * @uses MYSQLI_ZEROFILL_FLAG
+ * @uses MYSQLI_NUM_FLAG
+ * @uses MYSQLI_TYPE_BLOB
+ * @uses MYSQLI_BLOB_FLAG
+ * @uses defined()
+ * @uses mysqli_fetch_fields()
+ * @uses is_array()
+ * @param object mysqli result $result
+ * @return array meta info for fields in $result
+ */
+function PMA_DBI_get_fields_meta($result)
+{
+ // Build an associative array for a type look up
+ $typeAr = array();
+ $typeAr[MYSQLI_TYPE_DECIMAL] = 'real';
+ $typeAr[MYSQLI_TYPE_NEWDECIMAL] = 'real';
+ $typeAr[MYSQLI_TYPE_BIT] = 'int';
+ $typeAr[MYSQLI_TYPE_TINY] = 'int';
+ $typeAr[MYSQLI_TYPE_SHORT] = 'int';
+ $typeAr[MYSQLI_TYPE_LONG] = 'int';
+ $typeAr[MYSQLI_TYPE_FLOAT] = 'real';
+ $typeAr[MYSQLI_TYPE_DOUBLE] = 'real';
+ $typeAr[MYSQLI_TYPE_NULL] = 'null';
+ $typeAr[MYSQLI_TYPE_TIMESTAMP] = 'timestamp';
+ $typeAr[MYSQLI_TYPE_LONGLONG] = 'int';
+ $typeAr[MYSQLI_TYPE_INT24] = 'int';
+ $typeAr[MYSQLI_TYPE_DATE] = 'date';
+ $typeAr[MYSQLI_TYPE_TIME] = 'time';
+ $typeAr[MYSQLI_TYPE_DATETIME] = 'datetime';
+ $typeAr[MYSQLI_TYPE_YEAR] = 'year';
+ $typeAr[MYSQLI_TYPE_NEWDATE] = 'date';
+ $typeAr[MYSQLI_TYPE_ENUM] = 'unknown';
+ $typeAr[MYSQLI_TYPE_SET] = 'unknown';
+ $typeAr[MYSQLI_TYPE_TINY_BLOB] = 'blob';
+ $typeAr[MYSQLI_TYPE_MEDIUM_BLOB] = 'blob';
+ $typeAr[MYSQLI_TYPE_LONG_BLOB] = 'blob';
+ $typeAr[MYSQLI_TYPE_BLOB] = 'blob';
+ $typeAr[MYSQLI_TYPE_VAR_STRING] = 'string';
+ $typeAr[MYSQLI_TYPE_STRING] = 'string';
+ // MySQL returns MYSQLI_TYPE_STRING for CHAR
+ // and MYSQLI_TYPE_CHAR === MYSQLI_TYPE_TINY
+ // so this would override TINYINT and mark all TINYINT as string
+ // https://sf.net/tracker/?func=detail&aid=1532111&group_id=23067&atid=377408
+ //$typeAr[MYSQLI_TYPE_CHAR] = 'string';
+ $typeAr[MYSQLI_TYPE_GEOMETRY] = 'unknown';
+ $typeAr[MYSQLI_TYPE_BIT] = 'bit';
+
+ $fields = mysqli_fetch_fields($result);
+
+ // this happens sometimes (seen under MySQL 4.0.25)
+ if (!is_array($fields)) {
+ return false;
+ }
+
+ foreach ($fields as $k => $field) {
+ $fields[$k]->_type = $field->type;
+ $fields[$k]->type = $typeAr[$field->type];
+ $fields[$k]->_flags = $field->flags;
+ $fields[$k]->flags = PMA_DBI_field_flags($result, $k);
+
+ // Enhance the field objects for mysql-extension compatibilty
+ //$flags = explode(' ', $fields[$k]->flags);
+ //array_unshift($flags, 'dummy');
+ $fields[$k]->multiple_key
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_MULTIPLE_KEY_FLAG);
+ $fields[$k]->primary_key
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_PRI_KEY_FLAG);
+ $fields[$k]->unique_key
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_UNIQUE_KEY_FLAG);
+ $fields[$k]->not_null
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_NOT_NULL_FLAG);
+ $fields[$k]->unsigned
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_UNSIGNED_FLAG);
+ $fields[$k]->zerofill
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_ZEROFILL_FLAG);
+ $fields[$k]->numeric
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_NUM_FLAG);
+ $fields[$k]->blob
+ = (int) (bool) ($fields[$k]->_flags & MYSQLI_BLOB_FLAG);
+ }
+ return $fields;
+}
+
+/**
+ * return number of fields in given $result
+ *
+ * @param object mysqli result $result
+ * @return integer field count
+ */
+function PMA_DBI_num_fields($result)
+{
+ return mysqli_num_fields($result);
+}
+
+/**
+ * returns the length of the given field $i in $result
+ *
+ * @uses mysqli_fetch_field_direct()
+ * @param object mysqli result $result
+ * @param integer $i field
+ * @return integer length of field
+ */
+function PMA_DBI_field_len($result, $i)
+{
+ return mysqli_fetch_field_direct($result, $i)->length;
+}
+
+/**
+ * returns name of $i. field in $result
+ *
+ * @uses mysqli_fetch_field_direct()
+ * @param object mysqli result $result
+ * @param integer $i field
+ * @return string name of $i. field in $result
+ */
+function PMA_DBI_field_name($result, $i)
+{
+ return mysqli_fetch_field_direct($result, $i)->name;
+}
+
+/**
+ * returns concatenated string of human readable field flags
+ *
+ * @uses MYSQLI_UNIQUE_KEY_FLAG
+ * @uses MYSQLI_NUM_FLAG
+ * @uses MYSQLI_PART_KEY_FLAG
+ * @uses MYSQLI_TYPE_SET
+ * @uses MYSQLI_TIMESTAMP_FLAG
+ * @uses MYSQLI_AUTO_INCREMENT_FLAG
+ * @uses MYSQLI_TYPE_ENUM
+ * @uses MYSQLI_ZEROFILL_FLAG
+ * @uses MYSQLI_UNSIGNED_FLAG
+ * @uses MYSQLI_BLOB_FLAG
+ * @uses MYSQLI_MULTIPLE_KEY_FLAG
+ * @uses MYSQLI_UNIQUE_KEY_FLAG
+ * @uses MYSQLI_PRI_KEY_FLAG
+ * @uses MYSQLI_NOT_NULL_FLAG
+ * @uses MYSQLI_TYPE_BLOB
+ * @uses MYSQLI_TYPE_MEDIUM_BLOB
+ * @uses MYSQLI_TYPE_LONG_BLOB
+ * @uses MYSQLI_TYPE_VAR_STRING
+ * @uses MYSQLI_TYPE_STRING
+ * @uses mysqli_fetch_field_direct()
+ * @param object mysqli result $result
+ * @param integer $i field
+ * @return string field flags
+ */
+function PMA_DBI_field_flags($result, $i)
+{
+ // This is missing from PHP 5.2.5, see http://bugs.php.net/bug.php?id=44846
+ if (! defined('MYSQLI_ENUM_FLAG')) {
+ define('MYSQLI_ENUM_FLAG', 256); // see MySQL source include/mysql_com.h
+ }
+ $f = mysqli_fetch_field_direct($result, $i);
+ $type = $f->type;
+ $charsetnr = $f->charsetnr;
+ $f = $f->flags;
+ $flags = '';
+ if ($f & MYSQLI_UNIQUE_KEY_FLAG) { $flags .= 'unique ';}
+ if ($f & MYSQLI_NUM_FLAG) { $flags .= 'num ';}
+ if ($f & MYSQLI_PART_KEY_FLAG) { $flags .= 'part_key ';}
+ if ($f & MYSQLI_SET_FLAG) { $flags .= 'set ';}
+ if ($f & MYSQLI_TIMESTAMP_FLAG) { $flags .= 'timestamp ';}
+ if ($f & MYSQLI_AUTO_INCREMENT_FLAG) { $flags .= 'auto_increment ';}
+ if ($f & MYSQLI_ENUM_FLAG) { $flags .= 'enum ';}
+ // See http://dev.mysql.com/doc/refman/6.0/en/c-api-datatypes.html:
+ // to determine if a string is binary, we should not use MYSQLI_BINARY_FLAG
+ // but instead the charsetnr member of the MYSQL_FIELD
+ // structure. Watch out: some types like DATE returns 63 in charsetnr
+ // so we have to check also the type.
+ // Unfortunately there is no equivalent in the mysql extension.
+ if (($type == MYSQLI_TYPE_TINY_BLOB || $type == MYSQLI_TYPE_BLOB || $type == MYSQLI_TYPE_MEDIUM_BLOB || $type == MYSQLI_TYPE_LONG_BLOB || $type == MYSQLI_TYPE_VAR_STRING || $type == MYSQLI_TYPE_STRING) && 63 == $charsetnr) { $flags .= 'binary ';}
+ if ($f & MYSQLI_ZEROFILL_FLAG) { $flags .= 'zerofill ';}
+ if ($f & MYSQLI_UNSIGNED_FLAG) { $flags .= 'unsigned ';}
+ if ($f & MYSQLI_BLOB_FLAG) { $flags .= 'blob ';}
+ if ($f & MYSQLI_MULTIPLE_KEY_FLAG) { $flags .= 'multiple_key ';}
+ if ($f & MYSQLI_UNIQUE_KEY_FLAG) { $flags .= 'unique_key ';}
+ if ($f & MYSQLI_PRI_KEY_FLAG) { $flags .= 'primary_key ';}
+ if ($f & MYSQLI_NOT_NULL_FLAG) { $flags .= 'not_null ';}
+ return trim($flags);
+}
+
+?>
diff --git a/libraries/display_change_password.lib.php b/libraries/display_change_password.lib.php
new file mode 100644
index 0000000000..3ebff87f2d
--- /dev/null
+++ b/libraries/display_change_password.lib.php
@@ -0,0 +1,72 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays form for password change
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+// loic1: autocomplete feature of IE kills the "onchange" event handler and it
+// must be replaced by the "onpropertychange" one in this case
+$chg_evt_handler = (PMA_USR_BROWSER_AGENT == 'IE' && PMA_USR_BROWSER_VER >= 5)
+ ? 'onpropertychange'
+ : 'onchange';
+
+// Displays the form
+?>
+<form method="post" action="<?php echo $GLOBALS['PMA_PHP_SELF']; ?>" name="chgPassword" onsubmit="return checkPassword(this)">
+ <?php echo PMA_generate_common_hidden_inputs();
+ if (strpos($GLOBALS['PMA_PHP_SELF'], 'server_privileges') !== false) {
+ echo '<input type="hidden" name="username" value="' . htmlspecialchars($username) . '" />' . "\n"
+ . '<input type="hidden" name="hostname" value="' . htmlspecialchars($hostname) . '" />' . "\n";
+ }?>
+ <fieldset id="fieldset_change_password">
+ <legend><?php echo $GLOBALS['strChangePassword']; ?></legend>
+ <table class="data">
+ <tr class="odd noclick">
+ <td colspan="2">
+ <input type="radio" name="nopass" value="1" onclick="pma_pw.value = ''; pma_pw2.value = ''; this.checked = true" />
+ <?php echo $GLOBALS['strNoPassword'] . "\n"; ?>
+ </td>
+ </tr>
+ <tr class="even noclick">
+ <td>
+ <input type="radio" name="nopass" value="0" onclick="document.getElementById('pw_pma_pw').focus();" checked="checked " />
+ <?php echo $GLOBALS['strPassword']; ?>:&nbsp;
+ </td>
+ <td>
+ <input type="password" name="pma_pw" id="pw_pma_pw" size="10" class="textfield" <?php echo $chg_evt_handler; ?>="nopass[1].checked = true" />
+ &nbsp;&nbsp;
+ <?php echo $GLOBALS['strReType']; ?>:&nbsp;
+ <input type="password" name="pma_pw2" id="pw_pma_pw2" size="10" class="textfield" <?php echo $chg_evt_handler; ?>="nopass[1].checked = true" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?php echo $strPasswordHashing; ?>:
+ </td>
+ <td>
+ <input type="radio" name="pw_hash" id="radio_pw_hash_new" value="new" checked="checked" />
+ <label for="radio_pw_hash_new">
+ MySQL&nbsp;4.1+
+ </label>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <input type="radio" name="pw_hash" id="radio_pw_hash_old" value="old" />
+ <label for="radio_pw_hash_old">
+ <?php echo $strCompatibleHashing; ?>
+ </label>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ <fieldset id="fieldset_change_password_footer" class="tblFooters">
+ <input type="submit" name="change_pw" value="<?php echo($strGo); ?>" />
+ </fieldset>
+</form>
diff --git a/libraries/display_create_database.lib.php b/libraries/display_create_database.lib.php
new file mode 100644
index 0000000000..7bf4e613b9
--- /dev/null
+++ b/libraries/display_create_database.lib.php
@@ -0,0 +1,41 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays form for creating database (if user has privileges for that)
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/check_user_privileges.lib.php';
+
+if ($is_create_db_priv) {
+ // The user is allowed to create a db
+ ?>
+ <form method="post" action="db_create.php"><strong>
+ <?php echo '<label for="text_create_db">' . $strCreateNewDatabase . '</label>&nbsp;' . PMA_showMySQLDocu('SQL-Syntax', 'CREATE_DATABASE'); ?></strong><br />
+ <?php echo PMA_generate_common_hidden_inputs('', '', 5); ?>
+ <input type="hidden" name="reload" value="1" />
+ <input type="text" name="new_db" value="<?php echo $db_to_create; ?>" maxlength="64" class="textfield" id="text_create_db"/>
+ <?php
+ require_once './libraries/mysql_charsets.lib.php';
+ echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'db_collation', null, null, TRUE, 5);
+ ?>
+ <input type="submit" value="<?php echo $strCreate; ?>" id="buttonGo" />
+ </form>
+ <?php
+} else {
+ ?>
+ <!-- db creation no privileges message -->
+ <strong><?php echo $strCreateNewDatabase . ':&nbsp;' . PMA_showMySQLDocu('SQL-Syntax', 'CREATE_DATABASE'); ?></strong><br />
+ <?php
+ echo '<span class="noPrivileges">'
+ . ($cfg['ErrorIconic'] ? '<img src="' . $pmaThemeImage . 's_error2.png" width="11" height="11" hspace="2" border="0" align="middle" />' : '')
+ . '' . $strNoPrivileges .'</span>';
+} // end create db form or message
+?>
diff --git a/libraries/display_create_table.lib.php b/libraries/display_create_table.lib.php
new file mode 100644
index 0000000000..d76a70cf87
--- /dev/null
+++ b/libraries/display_create_table.lib.php
@@ -0,0 +1,64 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays form for creating a table (if user has privileges for that)
+ *
+ * for MySQL >= 4.1.0, we should be able to detect if user has a CREATE
+ * privilege by looking at SHOW GRANTS output;
+ * for < 4.1.0, it could be more difficult because the logic tries to
+ * detect the current host and it might be expressed in many ways; also
+ * on a shared server, the user might be unable to define a controluser
+ * that has the proper rights to the "mysql" db;
+ * so we give up and assume that user has the right to create a table
+ *
+ * Note: in this case we could even skip the following "foreach" logic
+ *
+ * Addendum, 2006-01-19: ok, I give up. We got some reports about servers
+ * where the hostname field in mysql.user is not the same as the one
+ * in mysql.db for a user. In this case, SHOW GRANTS does not return
+ * the db-specific privileges. And probably, those users are on a shared
+ * server, so can't set up a control user with rights to the "mysql" db.
+ * We cannot reliably detect the db-specific privileges, so no more
+ * warnings about the lack of privileges for CREATE TABLE. Tested
+ * on MySQL 5.0.18.
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/check_user_privileges.lib.php';
+
+$is_create_table_priv = true;
+
+?>
+<form method="post" action="tbl_create.php"
+ onsubmit="return (emptyFormElements(this, 'table') &amp;&amp; checkFormElementInRange(this, 'num_fields', '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidFieldCount']); ?>', 1))">
+<fieldset>
+ <legend>
+<?php
+if ($GLOBALS['cfg']['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_newtbl.png" width="16" height="16" alt="" />';
+}
+echo sprintf($strCreateNewTable, PMA_getDbLink());
+?>
+ </legend>
+ <?php echo PMA_generate_common_hidden_inputs($db); ?>
+ <div class="formelement">
+ <?php echo $strName; ?>:
+ <input type="text" name="table" maxlength="64" size="30" />
+ </div>
+ <div class="formelement">
+ <?php echo $strNumberOfFields; ?>:
+ <input type="text" name="num_fields" size="2" />
+ </div>
+ <div class="clearfloat"></div>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
diff --git a/libraries/display_export.lib.php b/libraries/display_export.lib.php
new file mode 100644
index 0000000000..0d7956df8c
--- /dev/null
+++ b/libraries/display_export.lib.php
@@ -0,0 +1,277 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/Table.class.php';
+
+// Get relations & co. status
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+
+require_once './libraries/file_listing.php';
+require_once './libraries/plugin_interface.lib.php';
+
+function PMA_exportCheckboxCheck($str) {
+ if (isset($GLOBALS['cfg']['Export'][$str]) && $GLOBALS['cfg']['Export'][$str]) {
+ echo ' checked="checked"';
+ }
+}
+
+function PMA_exportIsActive($what, $val) {
+ if (isset($GLOBALS['cfg']['Export'][$what]) && $GLOBALS['cfg']['Export'][$what] == $val) {
+ echo ' checked="checked"';
+ }
+}
+
+/* Scan for plugins */
+$export_list = PMA_getPlugins('./libraries/export/', array('export_type' => $export_type, 'single_table' => isset($single_table)));
+
+/* Fail if we didn't find any plugin */
+if (empty($export_list)) {
+ PMA_Message::error('strCanNotLoadExportPlugins')->display();
+ require './libraries/footer.inc.php';
+}
+?>
+
+<form method="post" action="export.php" name="dump">
+
+<?php
+if ($export_type == 'server') {
+ echo PMA_generate_common_hidden_inputs('', '', 1);
+} elseif ($export_type == 'database') {
+ echo PMA_generate_common_hidden_inputs($db, '', 1);
+} else {
+ echo PMA_generate_common_hidden_inputs($db, $table, 1);
+}
+
+// just to keep this value for possible next display of this form after saving on server
+if (isset($single_table)) {
+ echo '<input type="hidden" name="single_table" value="TRUE" />' . "\n";
+}
+
+echo '<input type="hidden" name="export_type" value="' . $export_type . '" />' . "\n";
+
+if (! empty($sql_query)) {
+ echo '<input type="hidden" name="sql_query" value="' . htmlspecialchars($sql_query) . '" />' . "\n";
+}
+echo PMA_pluginGetJavascript($export_list);
+?>
+<fieldset id="fieldsetexport">
+<legend><?php echo $export_page_title; ?></legend>
+
+<?php
+/*
+ * this table is needed to fix rendering in Opera <= 9 and Safari <= 2
+ * normaly just the two fieldset would have float: left
+ */
+?>
+<table><tr><td>
+
+<div id="div_container_exportoptions">
+<fieldset id="exportoptions">
+<legend><?php echo $strExport; ?></legend>
+
+ <?php if (! empty($multi_values)) { ?>
+ <div class="formelementrow">
+ <?php echo $multi_values; ?>
+ </div>
+ <?php } ?>
+<?php echo PMA_pluginGetChoice('Export', 'what', $export_list, 'format'); ?>
+</fieldset>
+</div>
+
+</td><td>
+
+<div id="div_container_sub_exportoptions">
+<?php echo PMA_pluginGetOptions('Export', $export_list); ?>
+</div>
+</td></tr></table>
+
+<script type="text/javascript">
+//<![CDATA[
+ init_options();
+//]]>
+</script>
+
+<?php if (strlen($table) && ! isset($num_tables)) { ?>
+ <div class="formelementrow">
+ <?php
+ echo sprintf($strDumpXRows,
+ '<input type="text" name="limit_to" size="5" value="'
+ . (isset($unlim_num_rows) ? $unlim_num_rows : PMA_Table::countRecords($db, $table, TRUE))
+ . '" onfocus="this.select()" />',
+ '<input type="text" name="limit_from" value="0" size="5"'
+ .' onfocus="this.select()" /> ');
+ ?>
+ </div>
+<?php } ?>
+</fieldset>
+
+<fieldset>
+ <legend>
+ <input type="checkbox" name="asfile" value="sendit"
+ id="checkbox_dump_asfile" <?php PMA_exportCheckboxCheck('asfile'); ?> />
+ <label for="checkbox_dump_asfile"><?php echo $strSend; ?></label>
+ </legend>
+
+ <?php if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { ?>
+ <input type="checkbox" name="onserver" value="saveit"
+ id="checkbox_dump_onserver"
+ onclick="document.getElementById('checkbox_dump_asfile').checked = true;"
+ <?php PMA_exportCheckboxCheck('onserver'); ?> />
+ <label for="checkbox_dump_onserver">
+ <?php echo sprintf($strSaveOnServer, htmlspecialchars(PMA_userDir($cfg['SaveDir']))); ?>
+ </label>,<br />
+ <input type="checkbox" name="onserverover" value="saveitover"
+ id="checkbox_dump_onserverover"
+ onclick="document.getElementById('checkbox_dump_onserver').checked = true;
+ document.getElementById('checkbox_dump_asfile').checked = true;"
+ <?php PMA_exportCheckboxCheck('onserver_overwrite'); ?> />
+ <label for="checkbox_dump_onserverover">
+ <?php echo $strOverwriteExisting; ?></label>
+ <br />
+ <?php } ?>
+
+ <label for="filename_template">
+ <?php
+ echo $strFileNameTemplate;
+
+ $trans = new PMA_Message;
+ $trans->addMessage('__SERVER__/');
+ $trans->addString('strFileNameTemplateDescriptionServer');
+ if ($export_type == 'database' || $export_type == 'table') {
+ $trans->addMessage('__DB__/');
+ $trans->addString('strFileNameTemplateDescriptionDatabase');
+ if ($export_type == 'table') {
+ $trans->addMessage('__TABLE__/');
+ $trans->addString('strFileNameTemplateDescriptionTable');
+ }
+ }
+
+ $message = new PMA_Message('strFileNameTemplateDescription');
+ $message->addParam('<a href="http://php.net/strftime" target="documentation" title="'
+ . $strDocu . '">', false);
+ $message->addParam('</a>', false);
+ $message->addParam($trans);
+
+ echo PMA_showHint($message);
+ ?>
+ </label>:
+ <input type="text" name="filename_template" id="filename_template"
+ <?php
+ echo ' value="';
+ if ($export_type == 'database') {
+ if (isset($_COOKIE) && !empty($_COOKIE['pma_db_filename_template'])) {
+ echo $_COOKIE['pma_db_filename_template'];
+ } else {
+ echo $GLOBALS['cfg']['Export']['file_template_database'];
+ }
+ } elseif ($export_type == 'table') {
+ if (isset($_COOKIE) && !empty($_COOKIE['pma_table_filename_template'])) {
+ echo $_COOKIE['pma_table_filename_template'];
+ } else {
+ echo $GLOBALS['cfg']['Export']['file_template_table'];
+ }
+ } else {
+ if (isset($_COOKIE) && !empty($_COOKIE['pma_server_filename_template'])) {
+ echo $_COOKIE['pma_server_filename_template'];
+ } else {
+ echo $GLOBALS['cfg']['Export']['file_template_server'];
+ }
+ }
+ echo '" />';
+ ?>
+
+ (
+ <input type="checkbox" name="remember_template"
+ id="checkbox_remember_template"
+ <?php PMA_exportCheckboxCheck('remember_file_template'); ?> />
+ <label for="checkbox_remember_template">
+ <?php echo $strFileNameTemplateRemember; ?></label>
+ )
+
+ <div class="formelementrow">
+ <?php
+ // charset of file
+ if ($cfg['AllowAnywhereRecoding']) {
+ echo ' <label for="select_charset_of_file">'
+ . $strCharsetOfFile . '</label>' . "\n";
+
+ reset($cfg['AvailableCharsets']);
+ echo '<select id="select_charset_of_file" name="charset_of_file" size="1">';
+ foreach ($cfg['AvailableCharsets'] as $temp_charset) {
+ echo '<option value="' . $temp_charset . '"';
+ if ((empty($cfg['Export']['charset']) && $temp_charset == $charset)
+ || $temp_charset == $cfg['Export']['charset']) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $temp_charset . '</option>';
+ } // end foreach
+ echo '</select>';
+ } // end if
+ ?>
+ </div>
+
+<?php
+// zip, gzip and bzip2 encode features
+$is_zip = ($cfg['ZipDump'] && @function_exists('gzcompress'));
+$is_gzip = ($cfg['GZipDump'] && @function_exists('gzencode'));
+$is_bzip = ($cfg['BZipDump'] && @function_exists('bzcompress'));
+
+if ($is_zip || $is_gzip || $is_bzip) { ?>
+ <div class="formelementrow">
+ <?php echo $strCompression; ?>:
+ <input type="radio" name="compression" value="none"
+ id="radio_compression_none"
+ onclick="document.getElementById('checkbox_dump_asfile').checked = true;"
+ <?php PMA_exportIsActive('compression', 'none'); ?> />
+ <label for="radio_compression_none"><?php echo $strNone; ?></label>
+ <?php
+ if ($is_zip) { ?>
+ <input type="radio" name="compression" value="zip"
+ id="radio_compression_zip"
+ onclick="document.getElementById('checkbox_dump_asfile').checked = true;"
+ <?php PMA_exportIsActive('compression', 'zip'); ?> />
+ <label for="radio_compression_zip"><?php echo $strZip; ?></label>
+ <?php } if ($is_gzip) { ?>
+ <input type="radio" name="compression" value="gzip"
+ id="radio_compression_gzip"
+ onclick="document.getElementById('checkbox_dump_asfile').checked = true;"
+ <?php PMA_exportIsActive('compression', 'gzip'); ?> />
+ <label for="radio_compression_gzip"><?php echo $strGzip; ?></label>
+ <?php } if ($is_bzip) { ?>
+ <input type="radio" name="compression" value="bzip"
+ id="radio_compression_bzip"
+ onclick="document.getElementById('checkbox_dump_asfile').checked = true;"
+ <?php PMA_exportIsActive('compression', 'bzip2'); ?> />
+ <label for="radio_compression_bzip"><?php echo $strBzip; ?></label>
+ <?php } ?>
+ </div>
+<?php } else { ?>
+ <input type="hidden" name="compression" value="none" />
+<?php } ?>
+</fieldset>
+
+<?php if (function_exists('PMA_set_enc_form')) { ?>
+<!-- Encoding setting form appended by Y.Kawada -->
+<!-- Japanese encoding setting -->
+<fieldset>
+<?php echo PMA_set_enc_form(' '); ?>
+</fieldset>
+<?php } ?>
+
+<fieldset class="tblFooters">
+<?php PMA_externalBug($GLOBALS['strSQLCompatibility'], 'mysql', '50027', '14515'); ?>
+ <input type="submit" value="<?php echo $strGo; ?>" id="buttonGo" />
+</fieldset>
+</form>
diff --git a/libraries/display_import.lib.php b/libraries/display_import.lib.php
new file mode 100644
index 0000000000..69d4194f29
--- /dev/null
+++ b/libraries/display_import.lib.php
@@ -0,0 +1,190 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/file_listing.php';
+require_once './libraries/plugin_interface.lib.php';
+
+/* Scan for plugins */
+$import_list = PMA_getPlugins('./libraries/import/', $import_type);
+
+/* Fail if we didn't find any plugin */
+if (empty($import_list)) {
+ PMA_Message::error('strCanNotLoadImportPlugins')->display();
+ require './libraries/footer.inc.php';
+}
+?>
+
+<form action="import.php" method="post" enctype="multipart/form-data" name="import">
+<?php
+if ($import_type == 'server') {
+ echo PMA_generate_common_hidden_inputs('', '', 1);
+} elseif ($import_type == 'database') {
+ echo PMA_generate_common_hidden_inputs($db, '', 1);
+} else {
+ echo PMA_generate_common_hidden_inputs($db, $table, 1);
+}
+echo ' <input type="hidden" name="import_type" value="' . $import_type . '" />';
+echo PMA_pluginGetJavascript($import_list);
+?>
+ <fieldset class="options">
+ <legend><?php echo $strFileToImport; ?></legend>
+
+<?php
+if ($GLOBALS['is_upload']) {
+ ?>
+ <div class="formelementrow">
+ <label for="input_import_file"><?php echo $strLocationTextfile; ?></label>
+ <input style="margin: 5px" type="file" name="import_file" id="input_import_file" onchange="match_file(this.value);" />
+ <?php
+ echo PMA_displayMaximumUploadSize($max_upload_size) . "\n";
+ // some browsers should respect this :)
+ echo PMA_generateHiddenMaxFileSize($max_upload_size) . "\n";
+ ?>
+ </div>
+ <?php
+} else {
+ PMA_Message::warning('strUploadsNotAllowed')->display();
+}
+if (!empty($cfg['UploadDir'])) {
+ $extensions = '';
+ foreach ($import_list as $key => $val) {
+ if (!empty($extensions)) {
+ $extensions .= '|';
+ }
+ $extensions .= $val['extension'];
+ }
+ $matcher = '@\.(' . $extensions . ')(\.(' . PMA_supportedDecompressions() . '))?$@';
+
+ $files = PMA_getFileSelectOptions(PMA_userDir($cfg['UploadDir']), $matcher, (isset($timeout_passed) && $timeout_passed && isset($local_import_file)) ? $local_import_file : '');
+ echo '<div class="formelementrow">' . "\n";
+ if ($files === FALSE) {
+ PMA_Message::error('strWebServerUploadDirectoryError')->display();
+ } elseif (!empty($files)) {
+ echo "\n";
+ echo ' <i>' . $strOr . '</i><br/><label for="select_local_import_file">' . $strWebServerUploadDirectory . '</label>&nbsp;: ' . "\n";
+ echo ' <select style="margin: 5px" size="1" name="local_import_file" onchange="match_file(this.value)" id="select_local_import_file">' . "\n";
+ echo ' <option value="">&nbsp;</option>' . "\n";
+ echo $files;
+ echo ' </select>' . "\n";
+ }
+ echo '</div>' . "\n";
+} // end if (web-server upload directory)
+
+// charset of file
+echo '<div class="formelementrow">' . "\n";
+if ($cfg['AllowAnywhereRecoding']) {
+ echo '<label for="charset_of_file">' . $strCharsetOfFile . '</label>';
+ reset($cfg['AvailableCharsets']);
+ echo '<select id="charset_of_file" name="charset_of_file" size="1">';
+ foreach ($cfg['AvailableCharsets'] as $temp_charset) {
+ echo '<option value="' . htmlentities($temp_charset) . '"';
+ if ($temp_charset == $charset) {
+ echo ' selected="selected"';
+ }
+ echo '>' . htmlentities($temp_charset) . '</option>';
+ }
+ echo ' </select><br />';
+} else {
+ echo '<label for="charset_of_file">' . $strCharsetOfFile . '</label>' . "\n";
+ echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET, 'charset_of_file', 'charset_of_file', 'utf8', FALSE);
+} // end if (recoding)
+echo '</div>' . "\n";
+
+// zip, gzip and bzip2 encode features
+$compressions = $strNone;
+
+if ($cfg['GZipDump'] && @function_exists('gzopen')) {
+ $compressions .= ', gzip';
+}
+if ($cfg['BZipDump'] && @function_exists('bzopen')) {
+ $compressions .= ', bzip2';
+}
+if ($cfg['ZipDump'] && @function_exists('zip_open')) {
+ $compressions .= ', zip';
+}
+
+// We don't have show anything about compression, when no supported
+if ($compressions != $strNone) {
+ echo '<div class="formelementrow">' . "\n";
+ printf($strCompressionWillBeDetected, $compressions);
+ echo '</div>' . "\n";
+}
+echo "\n";
+?>
+ </fieldset>
+ <fieldset class="options">
+ <legend><?php echo $strPartialImport; ?></legend>
+
+ <?php
+ if (isset($timeout_passed) && $timeout_passed) {
+ echo '<div class="formelementrow">' . "\n";
+ echo '<input type="hidden" name="skip" value="' . $offset . '" />';
+ echo sprintf($strTimeoutInfo, $offset) . '';
+ echo '</div>' . "\n";
+ }
+ ?>
+ <div class="formelementrow">
+ <input type="checkbox" name="allow_interrupt" value="yes"
+ id="checkbox_allow_interrupt" <?php echo PMA_pluginCheckboxCheck('Import', 'allow_interrupt'); ?>/>
+ <label for="checkbox_allow_interrupt"><?php echo $strAllowInterrupt; ?></label><br />
+ </div>
+
+ <?php
+ if (! (isset($timeout_passed) && $timeout_passed)) {
+ ?>
+ <div class="formelementrow">
+ <label for="text_skip_queries"><?php echo $strSkipQueries; ?></label>
+ <input type="text" name="skip_queries" value="<?php echo PMA_pluginGetDefault('Import', 'skip_queries');?>" id="text_skip_queries" />
+ </div>
+ <?php
+ } else {
+ // If timeout has passed,
+ // do not show the Skip dialog to avoid the risk of someone
+ // entering a value here that would interfere with "skip"
+ ?>
+ <input type="hidden" name="skip_queries" value="<?php echo PMA_pluginGetDefault('Import', 'skip_queries');?>" id="text_skip_queries" />
+ <?php
+ }
+ ?>
+ </fieldset>
+
+ <fieldset class="options">
+ <legend><?php echo $strImportFormat; ?></legend>
+<?php
+// Let's show format options now
+echo '<div style="float: left;">';
+echo PMA_pluginGetChoice('Import', 'format', $import_list);
+echo '</div>';
+
+echo '<div style="float: left;">';
+echo PMA_pluginGetOptions('Import', $import_list);
+echo '</div>';
+?>
+ <div class="clearfloat"></div>
+ </fieldset>
+<?php
+// Encoding setting form appended by Y.Kawada
+if (function_exists('PMA_set_enc_form')) {
+ echo PMA_set_enc_form(' ');
+}
+echo "\n";
+?>
+ <fieldset class="tblFooters">
+ <input type="submit" value="<?php echo $strGo; ?>" id="buttonGo" />
+ </fieldset>
+</form>
+<script type="text/javascript">
+//<![CDATA[
+ init_options();
+//]]>
+</script>
diff --git a/libraries/display_select_lang.lib.php b/libraries/display_select_lang.lib.php
new file mode 100644
index 0000000000..a7a1f84be6
--- /dev/null
+++ b/libraries/display_select_lang.lib.php
@@ -0,0 +1,110 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Code for displaying language selection
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Sorts available languages by their true english names
+ *
+ * @param array the array to be sorted
+ * @param mixed a required parameter
+ * @return the sorted array
+ * @access private
+ */
+function PMA_language_cmp(&$a, &$b) {
+ return (strcmp($a[1], $b[1]));
+} // end of the 'PMA_language_cmp()' function
+
+/**
+ * Displays for for language selection
+ *
+ * @access public
+ */
+function PMA_select_language($use_fieldset = FALSE, $show_doc = TRUE) {
+ global $cfg, $lang;
+ ?>
+
+<form method="post" action="index.php" target="_parent">
+ <?php
+ $_form_params = array(
+ 'db' => $GLOBALS['db'],
+ 'table' => $GLOBALS['table'],
+ );
+ echo PMA_generate_common_hidden_inputs($_form_params);
+
+ // For non-English, display "Language" with emphasis because it's
+ // not a proper word in the current language; we show it to help
+ // people recognize the dialog
+ $language_title = $GLOBALS['strLanguage']
+ . ($GLOBALS['strLanguage'] != 'Language' ? ' - <em>Language</em>' : '');
+ if ($show_doc) {
+ $language_title .= ' <a href="./translators.html" target="documentation">' .
+ ($cfg['ReplaceHelpImg']
+ ? '<img class="icon" src="' . $GLOBALS['pmaThemeImage'] . 'b_info.png" width="11" height="11" alt="Info" />'
+ : '(*)') . '</a>';
+ }
+ if ($use_fieldset) {
+ echo '<fieldset><legend xml:lang="en" dir="ltr">' . $language_title . '</legend>';
+ } else {
+ echo '<bdo xml:lang="en" dir="ltr">' . $language_title . ':</bdo>';
+ }
+ ?>
+
+ <select name="lang" onchange="this.form.submit();" xml:lang="en" dir="ltr">
+ <?php
+
+ uasort($GLOBALS['available_languages'], 'PMA_language_cmp');
+ foreach ($GLOBALS['available_languages'] as $id => $tmplang) {
+ $lang_name = ucfirst(substr(strrchr($tmplang[0], '|'), 1));
+
+ // Include native name if non empty
+ if (!empty($tmplang[3])) {
+ $lang_name = $tmplang[3] . ' - '
+ . $lang_name;
+ }
+
+ //Is current one active?
+ if ($lang == $id) {
+ $selected = ' selected="selected"';
+ } else {
+ $selected = '';
+ }
+
+ echo ' ';
+ echo '<option value="' . $id . '"' . $selected . '>' . $lang_name
+ . '</option>' . "\n";
+ }
+ ?>
+
+ </select>
+ <?php
+ if ($use_fieldset) {
+ echo '</fieldset>';
+ }
+ ?>
+
+ <noscript>
+ <?php
+ if ($use_fieldset) {
+ echo '<fieldset class="tblFooters">';
+ }
+ ?>
+
+ <input type="submit" value="Go" />
+ <?php
+ if ($use_fieldset) {
+ echo '</fieldset>';
+ }
+ ?>
+
+ </noscript>
+</form>
+ <?php
+} // End of function PMA_select_language
+?>
diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php
new file mode 100644
index 0000000000..806b49651c
--- /dev/null
+++ b/libraries/display_tbl.lib.php
@@ -0,0 +1,2307 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * library for displaying table with results from all sort of select queries
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/Table.class.php';
+require_once './libraries/Index.class.php';
+
+/**
+ * Defines the display mode to use for the results of a SQL query
+ *
+ * It uses a synthetic string that contains all the required informations.
+ * In this string:
+ * - the first two characters stand for the action to do while
+ * clicking on the "edit" link (e.g. 'ur' for update a row, 'nn' for no
+ * edit link...);
+ * - the next two characters stand for the action to do while
+ * clicking on the "delete" link (e.g. 'kp' for kill a process, 'nn' for
+ * no delete link...);
+ * - the next characters are boolean values (1/0) and respectively stand
+ * for sorting links, navigation bar, "insert a new row" link, the
+ * bookmark feature, the expand/collapse text/blob fields button and
+ * the "display printable view" option.
+ * Of course '0'/'1' means the feature won't/will be enabled.
+ *
+ * @param string the synthetic value for display_mode (see a few
+ * lines above for explanations)
+ * @param integer the total number of rows returned by the SQL query
+ * without any programmatically appended "LIMIT" clause
+ * (just a copy of $unlim_num_rows if it exists, else
+ * computed inside this function)
+ *
+ * @return array an array with explicit indexes for all the display
+ * elements
+ *
+ * @global string the database name
+ * @global string the table name
+ * @global integer the total number of rows returned by the SQL query
+ * without any programmatically appended "LIMIT" clause
+ * @global array the properties of the fields returned by the query
+ * @global string the URL to return to in case of error in a SQL
+ * statement
+ *
+ * @access private
+ *
+ * @see PMA_displayTable()
+ */
+function PMA_setDisplayMode(&$the_disp_mode, &$the_total)
+{
+ global $db, $table;
+ global $unlim_num_rows, $fields_meta;
+ global $err_url;
+
+ // 1. Initializes the $do_display array
+ $do_display = array();
+ $do_display['edit_lnk'] = $the_disp_mode[0] . $the_disp_mode[1];
+ $do_display['del_lnk'] = $the_disp_mode[2] . $the_disp_mode[3];
+ $do_display['sort_lnk'] = (string) $the_disp_mode[4];
+ $do_display['nav_bar'] = (string) $the_disp_mode[5];
+ $do_display['ins_row'] = (string) $the_disp_mode[6];
+ $do_display['bkm_form'] = (string) $the_disp_mode[7];
+ $do_display['text_btn'] = (string) $the_disp_mode[8];
+ $do_display['pview_lnk'] = (string) $the_disp_mode[9];
+
+ // 2. Display mode is not "false for all elements" -> updates the
+ // display mode
+ if ($the_disp_mode != 'nnnn000000') {
+ // 2.0 Print view -> set all elements to false!
+ if (isset($GLOBALS['printview']) && $GLOBALS['printview'] == '1') {
+ $do_display['edit_lnk'] = 'nn'; // no edit link
+ $do_display['del_lnk'] = 'nn'; // no delete link
+ $do_display['sort_lnk'] = (string) '0';
+ $do_display['nav_bar'] = (string) '0';
+ $do_display['ins_row'] = (string) '0';
+ $do_display['bkm_form'] = (string) '0';
+ $do_display['text_btn'] = (string) '0';
+ $do_display['pview_lnk'] = (string) '0';
+ }
+ // 2.1 Statement is a "SELECT COUNT", a
+ // "CHECK/ANALYZE/REPAIR/OPTIMIZE", an "EXPLAIN" one or
+ // contains a "PROC ANALYSE" part
+ elseif ($GLOBALS['is_count'] || $GLOBALS['is_analyse'] || $GLOBALS['is_maint'] || $GLOBALS['is_explain']) {
+ $do_display['edit_lnk'] = 'nn'; // no edit link
+ $do_display['del_lnk'] = 'nn'; // no delete link
+ $do_display['sort_lnk'] = (string) '0';
+ $do_display['nav_bar'] = (string) '0';
+ $do_display['ins_row'] = (string) '0';
+ $do_display['bkm_form'] = (string) '1';
+ if ($GLOBALS['is_maint']) {
+ $do_display['text_btn'] = (string) '1';
+ } else {
+ $do_display['text_btn'] = (string) '0';
+ }
+ $do_display['pview_lnk'] = (string) '1';
+ }
+ // 2.2 Statement is a "SHOW..."
+ elseif ($GLOBALS['is_show']) {
+ /**
+ * 2.2.1
+ * @todo defines edit/delete links depending on show statement
+ */
+ $tmp = preg_match('@^SHOW[[:space:]]+(VARIABLES|(FULL[[:space:]]+)?PROCESSLIST|STATUS|TABLE|GRANTS|CREATE|LOGS|DATABASES|FIELDS)@i', $GLOBALS['sql_query'], $which);
+ if (isset($which[1]) && strpos(' ' . strtoupper($which[1]), 'PROCESSLIST') > 0) {
+ $do_display['edit_lnk'] = 'nn'; // no edit link
+ $do_display['del_lnk'] = 'kp'; // "kill process" type edit link
+ } else {
+ // Default case -> no links
+ $do_display['edit_lnk'] = 'nn'; // no edit link
+ $do_display['del_lnk'] = 'nn'; // no delete link
+ }
+ // 2.2.2 Other settings
+ $do_display['sort_lnk'] = (string) '0';
+ $do_display['nav_bar'] = (string) '0';
+ $do_display['ins_row'] = (string) '0';
+ $do_display['bkm_form'] = (string) '1';
+ $do_display['text_btn'] = (string) '1';
+ $do_display['pview_lnk'] = (string) '1';
+ }
+ // 2.3 Other statements (ie "SELECT" ones) -> updates
+ // $do_display['edit_lnk'], $do_display['del_lnk'] and
+ // $do_display['text_btn'] (keeps other default values)
+ else {
+ $prev_table = $fields_meta[0]->table;
+ $do_display['text_btn'] = (string) '1';
+ for ($i = 0; $i < $GLOBALS['fields_cnt']; $i++) {
+ $is_link = ($do_display['edit_lnk'] != 'nn'
+ || $do_display['del_lnk'] != 'nn'
+ || $do_display['sort_lnk'] != '0'
+ || $do_display['ins_row'] != '0');
+ // 2.3.2 Displays edit/delete/sort/insert links?
+ if ($is_link
+ && ($fields_meta[$i]->table == '' || $fields_meta[$i]->table != $prev_table)) {
+ $do_display['edit_lnk'] = 'nn'; // don't display links
+ $do_display['del_lnk'] = 'nn';
+ /**
+ * @todo May be problematic with same fields names in two joined table.
+ */
+ // $do_display['sort_lnk'] = (string) '0';
+ $do_display['ins_row'] = (string) '0';
+ if ($do_display['text_btn'] == '1') {
+ break;
+ }
+ } // end if (2.3.2)
+ // 2.3.3 Always display print view link
+ $do_display['pview_lnk'] = (string) '1';
+ $prev_table = $fields_meta[$i]->table;
+ } // end for
+ } // end if..elseif...else (2.1 -> 2.3)
+ } // end if (2)
+
+ // 3. Gets the total number of rows if it is unknown
+ if (isset($unlim_num_rows) && $unlim_num_rows != '') {
+ $the_total = $unlim_num_rows;
+ } elseif (($do_display['nav_bar'] == '1' || $do_display['sort_lnk'] == '1')
+ && (strlen($db) && !empty($table))) {
+ $the_total = PMA_Table::countRecords($db, $table, true);
+ }
+
+ // 4. If navigation bar or sorting fields names URLs should be
+ // displayed but there is only one row, change these settings to
+ // false
+ if ($do_display['nav_bar'] == '1' || $do_display['sort_lnk'] == '1') {
+
+ // - Do not display sort links if less than 2 rows.
+ // - For a VIEW we (probably) did not count the number of rows
+ // so don't test this number here, it would remove the possibility
+ // of sorting VIEW results.
+ if (isset($unlim_num_rows) && $unlim_num_rows < 2 && ! PMA_Table::isView($db, $table)) {
+ // garvin: force display of navbar for vertical/horizontal display-choice.
+ // $do_display['nav_bar'] = (string) '0';
+ $do_display['sort_lnk'] = (string) '0';
+ }
+ } // end if (3)
+
+ // 5. Updates the synthetic var
+ $the_disp_mode = join('', $do_display);
+
+ return $do_display;
+} // end of the 'PMA_setDisplayMode()' function
+
+
+/**
+ * Displays a navigation bar to browse among the results of a SQL query
+ *
+ * @uses $_SESSION['userconf']['disp_direction']
+ * @uses $_SESSION['userconf']['repeat_cells']
+ * @uses $_SESSION['userconf']['max_rows']
+ * @uses $_SESSION['userconf']['pos']
+ * @param integer the offset for the "next" page
+ * @param integer the offset for the "previous" page
+ * @param string the URL-encoded query
+ *
+ * @global string $db the database name
+ * @global string $table the table name
+ * @global string $goto the URL to go back in case of errors
+ * @global integer $num_rows the total number of rows returned by the
+ * SQL query
+ * @global integer $unlim_num_rows the total number of rows returned by the
+ * SQL any programmatically appended "LIMIT" clause
+ * @global boolean $is_innodb whether its InnoDB or not
+ * @global array $showtable table definitions
+ *
+ * @access private
+ *
+ * @see PMA_displayTable()
+ */
+function PMA_displayTableNavigation($pos_next, $pos_prev, $sql_query)
+{
+ global $db, $table, $goto;
+ global $num_rows, $unlim_num_rows;
+ global $is_innodb;
+ global $showtable;
+
+ // here, using htmlentities() would cause problems if the query
+ // contains accented characters
+ $html_sql_query = htmlspecialchars($sql_query);
+
+ /**
+ * @todo move this to a central place
+ * @todo for other future table types
+ */
+ $is_innodb = (isset($showtable['Type']) && $showtable['Type'] == 'InnoDB');
+
+ ?>
+
+<!-- Navigation bar -->
+<table border="0" cellpadding="2" cellspacing="0">
+<tr>
+ <?php
+ // Move to the beginning or to the previous page
+ if ($_SESSION['userconf']['pos'] && $_SESSION['userconf']['max_rows'] != 'all') {
+ // loic1: patch #474210 from Gosha Sakovich - part 1
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ $caption1 = '&lt;&lt;';
+ $caption2 = ' &lt; ';
+ $title1 = ' title="' . $GLOBALS['strPos1'] . '"';
+ $title2 = ' title="' . $GLOBALS['strPrevious'] . '"';
+ } else {
+ $caption1 = $GLOBALS['strPos1'] . ' &lt;&lt;';
+ $caption2 = $GLOBALS['strPrevious'] . ' &lt;';
+ $title1 = '';
+ $title2 = '';
+ } // end if... else...
+ ?>
+<td>
+ <form action="sql.php" method="post">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="sql_query" value="<?php echo $html_sql_query; ?>" />
+ <input type="hidden" name="pos" value="0" />
+ <input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+ <input type="submit" name="navig" value="<?php echo $caption1; ?>"<?php echo $title1; ?> />
+ </form>
+</td>
+<td>
+ <form action="sql.php" method="post">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="sql_query" value="<?php echo $html_sql_query; ?>" />
+ <input type="hidden" name="pos" value="<?php echo $pos_prev; ?>" />
+ <input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+ <input type="submit" name="navig" value="<?php echo $caption2; ?>"<?php echo $title2; ?> />
+ </form>
+</td>
+ <?php
+ } // end move back
+ ?>
+<td>
+ &nbsp;&nbsp;&nbsp;
+</td>
+<td align="center">
+<?php // if displaying a VIEW, $unlim_num_rows could be zero because
+ // of $cfg['MaxExactCountViews']; in this case, avoid passing
+ // the 5th parameter to checkFormElementInRange()
+ // (this means we can't validate the upper limit ?>
+ <form action="sql.php" method="post"
+onsubmit="return (checkFormElementInRange(this, 'session_max_rows', '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidRowNumber']); ?>', 1) &amp;&amp; checkFormElementInRange(this, 'pos', '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidRowNumber']); ?>', 0<?php echo $unlim_num_rows > 0 ? ',' . $unlim_num_rows - 1 : ''; ?>))">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="sql_query" value="<?php echo $html_sql_query; ?>" />
+ <input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+ <input type="submit" name="navig" value="<?php echo $GLOBALS['strShow']; ?> :" />
+ <input type="text" name="session_max_rows" size="3" value="<?php echo (($_SESSION['userconf']['max_rows'] != 'all') ? $_SESSION['userconf']['max_rows'] : $GLOBALS['cfg']['MaxRows']); ?>" class="textfield" onfocus="this.select()" />
+ <?php echo $GLOBALS['strRowsFrom'] . "\n"; ?>
+ <input type="text" name="pos" size="6" value="<?php echo (($pos_next >= $unlim_num_rows) ? 0 : $pos_next); ?>" class="textfield" onfocus="this.select()" />
+ <br />
+ <?php
+ // Display mode (horizontal/vertical and repeat headers)
+ $param1 = ' <select name="disp_direction">' . "\n"
+ . ' <option value="horizontal"' . (($_SESSION['userconf']['disp_direction'] == 'horizontal') ? ' selected="selected"': '') . '>' . $GLOBALS['strRowsModeHorizontal'] . '</option>' . "\n"
+ . ' <option value="horizontalflipped"' . (($_SESSION['userconf']['disp_direction'] == 'horizontalflipped') ? ' selected="selected"': '') . '>' . $GLOBALS['strRowsModeFlippedHorizontal'] . '</option>' . "\n"
+ . ' <option value="vertical"' . (($_SESSION['userconf']['disp_direction'] == 'vertical') ? ' selected="selected"': '') . '>' . $GLOBALS['strRowsModeVertical'] . '</option>' . "\n"
+ . ' </select>' . "\n"
+ . ' ';
+ $param2 = ' <input type="text" size="3" name="repeat_cells" value="' . $_SESSION['userconf']['repeat_cells'] . '" class="textfield" />' . "\n"
+ . ' ';
+ echo ' ' . sprintf($GLOBALS['strRowsModeOptions'], "\n" . $param1, "\n" . $param2) . "\n";
+ ?>
+ </form>
+</td>
+<td>
+ &nbsp;&nbsp;&nbsp;
+</td>
+ <?php
+ // Move to the next page or to the last one
+ if (($_SESSION['userconf']['pos'] + $_SESSION['userconf']['max_rows'] < $unlim_num_rows) && $num_rows >= $_SESSION['userconf']['max_rows']
+ && $_SESSION['userconf']['max_rows'] != 'all') {
+ // loic1: patch #474210 from Gosha Sakovich - part 2
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ $caption3 = ' &gt; ';
+ $caption4 = '&gt;&gt;';
+ $title3 = ' title="' . $GLOBALS['strNext'] . '"';
+ $title4 = ' title="' . $GLOBALS['strEnd'] . '"';
+ } else {
+ $caption3 = '&gt; ' . $GLOBALS['strNext'];
+ $caption4 = '&gt;&gt; ' . $GLOBALS['strEnd'];
+ $title3 = '';
+ $title4 = '';
+ } // end if... else...
+ echo "\n";
+ ?>
+<td>
+ <form action="sql.php" method="post">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="sql_query" value="<?php echo $html_sql_query; ?>" />
+ <input type="hidden" name="pos" value="<?php echo $pos_next; ?>" />
+ <input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+ <input type="submit" name="navig" value="<?php echo $caption3; ?>"<?php echo $title3; ?> />
+ </form>
+</td>
+<td>
+ <form action="sql.php" method="post"
+ onsubmit="return <?php echo (($_SESSION['userconf']['pos'] + $_SESSION['userconf']['max_rows'] < $unlim_num_rows && $num_rows >= $_SESSION['userconf']['max_rows']) ? 'true' : 'false'); ?>">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="sql_query" value="<?php echo $html_sql_query; ?>" />
+ <input type="hidden" name="pos" value="<?php echo @((ceil($unlim_num_rows / $_SESSION['userconf']['max_rows'])- 1) * $_SESSION['userconf']['max_rows']); ?>" />
+ <?php
+ if ($is_innodb && $unlim_num_rows > $GLOBALS['cfg']['MaxExactCount']) {
+ echo '<input type="hidden" name="find_real_end" value="1" />' . "\n";
+ // no backquote around this message
+ $onclick = ' onclick="return confirmAction(\'' . PMA_jsFormat($GLOBALS['strLongOperation'], false) . '\')"';
+ }
+ ?>
+ <input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+ <input type="submit" name="navig" value="<?php echo $caption4; ?>"<?php echo $title4; ?> <?php echo (empty($onclick) ? '' : $onclick); ?>/>
+ </form>
+</td>
+ <?php
+ } // end move toward
+
+
+ //page redirection
+ // (unless we are showing all records)
+ if ('all' != $_SESSION['userconf']['max_rows']) { //if1
+ $pageNow = @floor($_SESSION['userconf']['pos'] / $_SESSION['userconf']['max_rows']) + 1;
+ $nbTotalPage = @ceil($unlim_num_rows / $_SESSION['userconf']['max_rows']);
+
+ if ($nbTotalPage > 1){ //if2
+ ?>
+ <td>
+ &nbsp;&nbsp;&nbsp;
+ </td>
+ <td>
+ <?php //<form> for keep the form alignment of button < and << ?>
+ <form action="none">
+ <?php
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sql_query' => $sql_query,
+ 'goto' => $goto,
+ );
+ echo PMA_pageselector(
+ 'sql.php' . PMA_generate_common_url($_url_params) . PMA_get_arg_separator('js'),
+ $_SESSION['userconf']['max_rows'],
+ $pageNow,
+ $nbTotalPage,
+ 200,
+ 5,
+ 5,
+ 20,
+ 10,
+ $GLOBALS['strPageNumber']
+ );
+ ?>
+ </form>
+ </td>
+ <?php
+ } //_if2
+ } //_if1
+
+ // Display the "Show all" button if allowed
+ if ($GLOBALS['cfg']['ShowAll'] && ($num_rows < $unlim_num_rows)) {
+ echo "\n";
+ ?>
+<td>
+ &nbsp;&nbsp;&nbsp;
+</td>
+<td>
+ <form action="sql.php" method="post">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="sql_query" value="<?php echo $html_sql_query; ?>" />
+ <input type="hidden" name="pos" value="0" />
+ <input type="hidden" name="session_max_rows" value="all" />
+ <input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+ <input type="submit" name="navig" value="<?php echo $GLOBALS['strShowAll']; ?>" />
+ </form>
+</td>
+ <?php
+ } // end show all
+ echo "\n";
+ ?>
+</tr>
+</table>
+
+ <?php
+} // end of the 'PMA_displayTableNavigation()' function
+
+
+/**
+ * Displays the headers of the results table
+ *
+ * @uses $_SESSION['userconf']['disp_direction']
+ * @uses $_SESSION['userconf']['repeat_cells']
+ * @uses $_SESSION['userconf']['max_rows']
+ * @uses $_SESSION['userconf']['display_text']
+ * @uses $_SESSION['userconf']['display_binary']
+ * @param array which elements to display
+ * @param array the list of fields properties
+ * @param integer the total number of fields returned by the SQL query
+ * @param array the analyzed query
+ *
+ * @return boolean always true
+ *
+ * @global string $db the database name
+ * @global string $table the table name
+ * @global string $goto the URL to go back in case of errors
+ * @global string $sql_query the SQL query
+ * @global integer $num_rows the total number of rows returned by the
+ * SQL query
+ * @global array $vertical_display informations used with vertical display
+ * mode
+ *
+ * @access private
+ *
+ * @see PMA_displayTable()
+ */
+function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $analyzed_sql = '', $sort_expression, $sort_expression_nodirection, $sort_direction)
+{
+ global $db, $table, $goto;
+ global $sql_query, $num_rows;
+ global $vertical_display, $highlight_columns;
+
+ if ($analyzed_sql == '') {
+ $analyzed_sql = array();
+ }
+
+ // can the result be sorted?
+ if ($is_display['sort_lnk'] == '1') {
+
+ // Just as fallback
+ $unsorted_sql_query = $sql_query;
+ if (isset($analyzed_sql[0]['unsorted_query'])) {
+ $unsorted_sql_query = $analyzed_sql[0]['unsorted_query'];
+ }
+ // Handles the case of multiple clicks on a column's header
+ // which would add many spaces before "ORDER BY" in the
+ // generated query.
+ $unsorted_sql_query = trim($unsorted_sql_query);
+
+ // sorting by indexes, only if it makes sense (only one table ref)
+ if (isset($analyzed_sql) && isset($analyzed_sql[0]) &&
+ isset($analyzed_sql[0]['querytype']) && $analyzed_sql[0]['querytype'] == 'SELECT' &&
+ isset($analyzed_sql[0]['table_ref']) && count($analyzed_sql[0]['table_ref']) == 1) {
+
+ // grab indexes data:
+ $indexes = PMA_Index::getFromTable($table, $db);
+
+ // do we have any index?
+ if ($indexes) {
+
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ $span = $fields_cnt;
+ if ($is_display['edit_lnk'] != 'nn') {
+ $span++;
+ }
+ if ($is_display['del_lnk'] != 'nn') {
+ $span++;
+ }
+ if ($is_display['del_lnk'] != 'kp' && $is_display['del_lnk'] != 'nn') {
+ $span++;
+ }
+ } else {
+ $span = $num_rows + floor($num_rows/$_SESSION['userconf']['repeat_cells']) + 1;
+ }
+
+ echo '<form action="sql.php" method="post">' . "\n";
+ echo PMA_generate_common_hidden_inputs($db, $table);
+ echo $GLOBALS['strSortByKey'] . ': <select name="sql_query" onchange="this.form.submit();">' . "\n";
+ $used_index = false;
+ $local_order = (isset($sort_expression) ? $sort_expression : '');
+ foreach ($indexes as $index) {
+ $asc_sort = '`' . implode('` ASC, `', array_keys($index->getColumns())) . '` ASC';
+ $desc_sort = '`' . implode('` DESC, `', array_keys($index->getColumns())) . '` DESC';
+ $used_index = $used_index || $local_order == $asc_sort || $local_order == $desc_sort;
+ echo '<option value="'
+ . htmlspecialchars($unsorted_sql_query . ' ORDER BY ' . $asc_sort)
+ . '"' . ($local_order == $asc_sort ? ' selected="selected"' : '')
+ . '>' . htmlspecialchars($index->getName()) . ' ('
+ . $GLOBALS['strAscending'] . ')</option>';
+ echo '<option value="'
+ . htmlspecialchars($unsorted_sql_query . ' ORDER BY ' . $desc_sort)
+ . '"' . ($local_order == $desc_sort ? ' selected="selected"' : '')
+ . '>' . htmlspecialchars($index->getName()) . ' ('
+ . $GLOBALS['strDescending'] . ')</option>';
+ }
+ echo '<option value="' . htmlspecialchars($unsorted_sql_query) . '"' . ($used_index ? '' : ' selected="selected"') . '>' . $GLOBALS['strNone'] . '</option>';
+ echo '</select>' . "\n";
+ echo '<noscript><input type="submit" value="' . $GLOBALS['strGo'] . '" /></noscript>';
+ echo '</form>' . "\n";
+ }
+ }
+ }
+
+
+ $vertical_display['emptypre'] = 0;
+ $vertical_display['emptyafter'] = 0;
+ $vertical_display['textbtn'] = '';
+
+ // Display options (if we are not in print view)
+ if (! (isset($GLOBALS['printview']) && $GLOBALS['printview'] == '1')) {
+ echo '<form method="post" action="sql.php" name="displayOptionsForm" id="displayOptionsForm">';
+ $url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sql_query' => $sql_query,
+ 'goto' => $goto,
+ 'display_options_form' => 1
+ );
+ echo PMA_generate_common_hidden_inputs($url_params);
+ echo '<br />';
+ PMA_generate_slider_effect('displayoptions',$GLOBALS['strOptions']);
+ echo '<fieldset>';
+
+ echo '<div class="formelement">';
+ $choices = array(
+ 'P' => $GLOBALS['strPartialText'],
+ 'F' => $GLOBALS['strFullText']
+ );
+ PMA_generate_html_radio('display_text', $choices, $_SESSION['userconf']['display_text']);
+ echo '</div>';
+
+ if ($GLOBALS['cfgRelation']['relwork']) {
+ echo '<div class="formelement">';
+ $choices = array(
+ 'K' => $GLOBALS['strRelationalKey'],
+ 'D' => $GLOBALS['strRelationalDisplayField']
+ );
+ PMA_generate_html_radio('relational_display', $choices, $_SESSION['userconf']['relational_display']);
+ echo '</div>';
+ }
+
+ echo '<div class="formelement">';
+ PMA_generate_html_checkbox('display_binary', $GLOBALS['strShow'] . ' BINARY', ! empty($_SESSION['userconf']['display_binary']), false);
+
+ PMA_generate_html_checkbox('display_blob', $GLOBALS['strShow'] . ' BLOB', ! empty($_SESSION['userconf']['display_blob']), false);
+ echo '</div>';
+
+ // I would have preferred to name this "display_transformation".
+ // This is the only way I found to be able to keep this setting sticky
+ // per SQL query, and at the same time have a default that displays
+ // the transformations.
+ echo '<div class="formelement">';
+ PMA_generate_html_checkbox('hide_transformation', $GLOBALS['strHide'] . ' ' . $GLOBALS['strMIME_transformation'], ! empty($_SESSION['userconf']['hide_transformation']), false);
+ echo '</div>';
+
+ echo '<div class="clearfloat"></div>';
+ echo '</fieldset>';
+
+ echo '<fieldset class="tblFooters">';
+ echo '<input type="submit" value="' . $GLOBALS['strGo'] . '" />';
+ echo '</fieldset>';
+ echo '</div>';
+ echo '</form>';
+ }
+
+ // Start of form for multi-rows edit/delete/export
+
+ if ($is_display['del_lnk'] == 'dr' || $is_display['del_lnk'] == 'kp') {
+ echo '<form method="post" action="tbl_row_action.php" name="rowsDeleteForm" id="rowsDeleteForm">' . "\n";
+ echo PMA_generate_common_hidden_inputs($db, $table, 1);
+ echo '<input type="hidden" name="goto" value="sql.php" />' . "\n";
+ }
+
+ echo '<table id="table_results" class="data">' . "\n";
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo '<thead><tr>' . "\n";
+ }
+
+ // 1. Displays the full/partial text button (part 1)...
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ $colspan = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn')
+ ? ' colspan="3"'
+ : '';
+ } else {
+ $rowspan = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn')
+ ? ' rowspan="3"'
+ : '';
+ }
+
+ // ... before the result table
+ if (($is_display['edit_lnk'] == 'nn' && $is_display['del_lnk'] == 'nn')
+ && $is_display['text_btn'] == '1') {
+ $vertical_display['emptypre'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 3 : 0;
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ ?>
+ <th colspan="<?php echo $fields_cnt; ?>"></th>
+</tr>
+<tr>
+ <?php
+ } // end horizontal/horizontalflipped mode
+ else {
+ ?>
+<tr>
+ <th colspan="<?php echo $num_rows + floor($num_rows/$_SESSION['userconf']['repeat_cells']) + 1; ?>"></th>
+</tr>
+ <?php
+ } // end vertical mode
+ }
+
+ // ... at the left column of the result table header if possible
+ // and required
+ elseif ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && $is_display['text_btn'] == '1') {
+ $vertical_display['emptypre'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 3 : 0;
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ ?>
+ <th <?php echo $colspan; ?>></th>
+ <?php
+ } // end horizontal/horizontalflipped mode
+ else {
+ $vertical_display['textbtn'] = ' <th ' . $rowspan . ' valign="middle">' . "\n"
+ . ' ' . "\n"
+ . ' </th>' . "\n";
+ } // end vertical mode
+ }
+
+ // ... elseif no button, displays empty(ies) col(s) if required
+ elseif ($GLOBALS['cfg']['ModifyDeleteAtLeft']
+ && ($is_display['edit_lnk'] != 'nn' || $is_display['del_lnk'] != 'nn')) {
+ $vertical_display['emptypre'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 3 : 0;
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ ?>
+ <td<?php echo $colspan; ?>></td>
+ <?php
+ } // end horizontal/horizontalfipped mode
+ else {
+ $vertical_display['textbtn'] = ' <td' . $rowspan . '></td>' . "\n";
+ } // end vertical mode
+ }
+
+ // 2. Displays the fields' name
+ // 2.0 If sorting links should be used, checks if the query is a "JOIN"
+ // statement (see 2.1.3)
+
+ // 2.0.1 Prepare Display column comments if enabled ($GLOBALS['cfg']['ShowBrowseComments']).
+ // Do not show comments, if using horizontalflipped mode, because of space usage
+ if ($GLOBALS['cfg']['ShowBrowseComments']
+ && $_SESSION['userconf']['disp_direction'] != 'horizontalflipped') {
+ $comments_map = array();
+ if (isset($analyzed_sql[0]) && is_array($analyzed_sql[0])) {
+ foreach ($analyzed_sql[0]['table_ref'] as $tbl) {
+ $tb = $tbl['table_true_name'];
+ $comments_map[$tb] = PMA_getComments($db, $tb);
+ unset($tb);
+ }
+ }
+ }
+
+ if ($GLOBALS['cfgRelation']['commwork'] && $GLOBALS['cfgRelation']['mimework'] && $GLOBALS['cfg']['BrowseMIME'] && ! $_SESSION['userconf']['hide_transformation']) {
+ require_once './libraries/transformations.lib.php';
+ $GLOBALS['mime_map'] = PMA_getMIME($db, $table);
+ }
+
+ if ($is_display['sort_lnk'] == '1') {
+ $select_expr = $analyzed_sql[0]['select_expr_clause'];
+ }
+
+ // garvin: See if we have to highlight any header fields of a WHERE query.
+ // Uses SQL-Parser results.
+ $highlight_columns = array();
+ if (isset($analyzed_sql) && isset($analyzed_sql[0]) &&
+ isset($analyzed_sql[0]['where_clause_identifiers'])) {
+
+ $wi = 0;
+ if (isset($analyzed_sql[0]['where_clause_identifiers']) && is_array($analyzed_sql[0]['where_clause_identifiers'])) {
+ foreach ($analyzed_sql[0]['where_clause_identifiers'] AS $wci_nr => $wci) {
+ $highlight_columns[$wci] = 'true';
+ }
+ }
+ }
+
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ // garvin: See if this column should get highlight because it's used in the
+ // where-query.
+ if (isset($highlight_columns[$fields_meta[$i]->name]) || isset($highlight_columns[PMA_backquote($fields_meta[$i]->name)])) {
+ $condition_field = true;
+ } else {
+ $condition_field = false;
+ }
+
+ // 2.0 Prepare comment-HTML-wrappers for each row, if defined/enabled.
+ if (isset($comments_map) &&
+ isset($comments_map[$fields_meta[$i]->table]) &&
+ isset($comments_map[$fields_meta[$i]->table][$fields_meta[$i]->name])) {
+ $comments = '<span class="tblcomment">' . htmlspecialchars($comments_map[$fields_meta[$i]->table][$fields_meta[$i]->name]) . '</span>';
+ } else {
+ $comments = '';
+ }
+
+ // 2.1 Results can be sorted
+ if ($is_display['sort_lnk'] == '1') {
+
+ // 2.1.1 Checks if the table name is required; it's the case
+ // for a query with a "JOIN" statement and if the column
+ // isn't aliased, or in queries like
+ // SELECT `1`.`master_field` , `2`.`master_field`
+ // FROM `PMA_relation` AS `1` , `PMA_relation` AS `2`
+
+ if (isset($fields_meta[$i]->table) && strlen($fields_meta[$i]->table)) {
+ $sort_tbl = PMA_backquote($fields_meta[$i]->table) . '.';
+ } else {
+ $sort_tbl = '';
+ }
+
+ // 2.1.2 Checks if the current column is used to sort the
+ // results
+ // the orgname member does not exist for all MySQL versions
+ // but if found, it's the one on which to sort
+ $name_to_use_in_sort = $fields_meta[$i]->name;
+ if (isset($fields_meta[$i]->orgname)) {
+ $name_to_use_in_sort = $fields_meta[$i]->orgname;
+ }
+ // $name_to_use_in_sort might contain a space due to
+ // formatting of function expressions like "COUNT(name )"
+ // so we remove the space in this situation
+ $name_to_use_in_sort = str_replace(' )', ')', $name_to_use_in_sort);
+
+ if (empty($sort_expression)) {
+ $is_in_sort = false;
+ } else {
+ // field name may be preceded by a space, or any number
+ // of characters followed by a dot (tablename.fieldname)
+ // so do a direct comparison
+ // for the sort expression (avoids problems with queries
+ // like "SELECT id, count(id)..." and clicking to sort
+ // on id or on count(id))
+ $is_in_sort = (str_replace('`', '', $sort_tbl) . $name_to_use_in_sort == str_replace('`', '', $sort_expression_nodirection) ? true : false);
+ }
+ // 2.1.3 Check the field name for a bracket.
+ // If it contains one, it's probably a function column
+ // like 'COUNT(`field`)'
+ if (strpos($name_to_use_in_sort, '(') !== false) {
+ $sort_order = ' ORDER BY ' . $name_to_use_in_sort . ' ';
+ } else {
+ $sort_order = ' ORDER BY ' . $sort_tbl . PMA_backquote($name_to_use_in_sort) . ' ';
+ }
+ unset($name_to_use_in_sort);
+
+ // 2.1.4 Do define the sorting URL
+ if (! $is_in_sort) {
+ // loic1: patch #455484 ("Smart" order)
+ $GLOBALS['cfg']['Order'] = strtoupper($GLOBALS['cfg']['Order']);
+ if ($GLOBALS['cfg']['Order'] === 'SMART') {
+ $sort_order .= (preg_match('@time|date@i', $fields_meta[$i]->type)) ? 'DESC' : 'ASC';
+ } else {
+ $sort_order .= $GLOBALS['cfg']['Order'];
+ }
+ $order_img = '';
+ } elseif ('DESC' == $sort_direction) {
+ $sort_order .= ' ASC';
+ $order_img = ' <img class="icon" src="' . $GLOBALS['pmaThemeImage'] . 's_desc.png" width="11" height="9" alt="'. $GLOBALS['strDescending'] . '" title="'. $GLOBALS['strDescending'] . '" id="soimg' . $i . '" />';
+ } else {
+ $sort_order .= ' DESC';
+ $order_img = ' <img class="icon" src="' . $GLOBALS['pmaThemeImage'] . 's_asc.png" width="11" height="9" alt="'. $GLOBALS['strAscending'] . '" title="'. $GLOBALS['strAscending'] . '" id="soimg' . $i . '" />';
+ }
+
+ if (preg_match('@(.*)([[:space:]](LIMIT (.*)|PROCEDURE (.*)|FOR UPDATE|LOCK IN SHARE MODE))@i', $unsorted_sql_query, $regs3)) {
+ $sorted_sql_query = $regs3[1] . $sort_order . $regs3[2];
+ } else {
+ $sorted_sql_query = $unsorted_sql_query . $sort_order;
+ }
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sql_query' => $sorted_sql_query,
+ );
+ $order_url = 'sql.php' . PMA_generate_common_url($_url_params);
+
+ // 2.1.5 Displays the sorting URL
+ // added 20004-06-09: Michael Keck <mail@michaelkeck.de>
+ // enable sort order swapping for image
+ $order_link_params = array();
+ if (isset($order_img) && $order_img!='') {
+ if (strstr($order_img, 'asc')) {
+ $order_link_params['onmouseover'] = 'if(document.getElementById(\'soimg' . $i . '\')){ document.getElementById(\'soimg' . $i . '\').src=\'' . $GLOBALS['pmaThemeImage'] . 's_desc.png\'; }';
+ $order_link_params['onmouseout'] = 'if(document.getElementById(\'soimg' . $i . '\')){ document.getElementById(\'soimg' . $i . '\').src=\'' . $GLOBALS['pmaThemeImage'] . 's_asc.png\'; }';
+ } elseif (strstr($order_img, 'desc')) {
+ $order_link_params['onmouseover'] = 'if(document.getElementById(\'soimg' . $i . '\')){ document.getElementById(\'soimg' . $i . '\').src=\'' . $GLOBALS['pmaThemeImage'] . 's_asc.png\'; }';
+ $order_link_params['onmouseout'] = 'if(document.getElementById(\'soimg' . $i . '\')){ document.getElementById(\'soimg' . $i . '\').src=\'' . $GLOBALS['pmaThemeImage'] . 's_desc.png\'; }';
+ }
+ }
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontalflipped'
+ && $GLOBALS['cfg']['HeaderFlipType'] == 'css') {
+ $order_link_params['style'] = 'direction: ltr; writing-mode: tb-rl;';
+ }
+ $order_link_params['title'] = $GLOBALS['strSort'];
+ $order_link_content = ($_SESSION['userconf']['disp_direction'] == 'horizontalflipped' && $GLOBALS['cfg']['HeaderFlipType'] == 'fake' ? PMA_flipstring(htmlspecialchars($fields_meta[$i]->name), "<br />\n") : htmlspecialchars($fields_meta[$i]->name));
+ $order_link = PMA_linkOrButton($order_url, $order_link_content . $order_img, $order_link_params, false, true);
+
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo '<th';
+ if ($condition_field) {
+ echo ' class="condition"';
+ }
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo ' valign="bottom"';
+ }
+ echo '>' . $order_link . $comments . '</th>';
+ }
+ $vertical_display['desc'][] = ' <th '
+ . ($condition_field ? ' class="condition"' : '') . '>' . "\n"
+ . $order_link . $comments . ' </th>' . "\n";
+ } // end if (2.1)
+
+ // 2.2 Results can't be sorted
+ else {
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo '<th';
+ if ($condition_field) {
+ echo ' class="condition"';
+ }
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo ' valign="bottom"';
+ }
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontalflipped'
+ && $GLOBALS['cfg']['HeaderFlipType'] == 'css') {
+ echo ' style="direction: ltr; writing-mode: tb-rl;"';
+ }
+ echo '>';
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontalflipped'
+ && $GLOBALS['cfg']['HeaderFlipType'] == 'fake') {
+ echo PMA_flipstring(htmlspecialchars($fields_meta[$i]->name), '<br />');
+ } else {
+ echo htmlspecialchars($fields_meta[$i]->name);
+ }
+ echo "\n" . $comments . '</th>';
+ }
+ $vertical_display['desc'][] = ' <th '
+ . ($condition_field ? ' class="condition"' : '') . '>' . "\n"
+ . ' ' . htmlspecialchars($fields_meta[$i]->name) . "\n"
+ . $comments . ' </th>';
+ } // end else (2.2)
+ } // end for
+
+ // 3. Displays the needed checkboxes at the right
+ // column of the result table header if possible and required...
+ if ($GLOBALS['cfg']['ModifyDeleteAtRight']
+ && ($is_display['edit_lnk'] != 'nn' || $is_display['del_lnk'] != 'nn')
+ && $is_display['text_btn'] == '1') {
+ $vertical_display['emptyafter'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 3 : 1;
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo "\n";
+ ?>
+<th <?php echo $colspan; ?>>
+</th>
+ <?php
+ } // end horizontal/horizontalflipped mode
+ else {
+ $vertical_display['textbtn'] = ' <th ' . $rowspan . ' valign="middle">' . "\n"
+ . ' ' . "\n"
+ . ' </th>' . "\n";
+ } // end vertical mode
+ }
+
+ // ... elseif no button, displays empty columns if required
+ // (unless coming from Browse mode print view)
+ elseif ($GLOBALS['cfg']['ModifyDeleteAtRight']
+ && ($is_display['edit_lnk'] == 'nn' && $is_display['del_lnk'] == 'nn')
+ && (!$GLOBALS['is_header_sent'])) {
+ $vertical_display['emptyafter'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 3 : 1;
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo "\n";
+ ?>
+<td<?php echo $colspan; ?>></td>
+ <?php
+ } // end horizontal/horizontalflipped mode
+ else {
+ $vertical_display['textbtn'] = ' <td' . $rowspan . '></td>' . "\n";
+ } // end vertical mode
+ }
+
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ ?>
+</tr>
+</thead>
+ <?php
+ }
+
+ return true;
+} // end of the 'PMA_displayTableHeaders()' function
+
+
+
+/**
+ * Displays the body of the results table
+ *
+ * @uses $_SESSION['userconf']['disp_direction']
+ * @uses $_SESSION['userconf']['repeat_cells']
+ * @uses $_SESSION['userconf']['max_rows']
+ * @uses $_SESSION['userconf']['display_text']
+ * @uses $_SESSION['userconf']['display_binary']
+ * @uses $_SESSION['userconf']['display_blob']
+ * @param integer the link id associated to the query which results have
+ * to be displayed
+ * @param array which elements to display
+ * @param array the list of relations
+ * @param array the analyzed query
+ *
+ * @return boolean always true
+ *
+ * @global string $db the database name
+ * @global string $table the table name
+ * @global string $goto the URL to go back in case of errors
+ * @global string $sql_query the SQL query
+ * @global array $fields_meta the list of fields properties
+ * @global integer $fields_cnt the total number of fields returned by
+ * the SQL query
+ * @global array $vertical_display informations used with vertical display
+ * mode
+ * @global array $highlight_columns column names to highlight
+ * @global array $row current row data
+ *
+ * @access private
+ *
+ * @see PMA_displayTable()
+ */
+function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
+ global $db, $table, $goto;
+ global $sql_query, $fields_meta, $fields_cnt;
+ global $vertical_display, $highlight_columns;
+ global $row; // mostly because of browser transformations, to make the row-data accessible in a plugin
+
+ $url_sql_query = $sql_query;
+
+ // query without conditions to shorten URLs when needed, 200 is just
+ // guess, it should depend on remaining URL length
+
+ if (isset($analyzed_sql) && isset($analyzed_sql[0]) &&
+ isset($analyzed_sql[0]['querytype']) && $analyzed_sql[0]['querytype'] == 'SELECT' &&
+ strlen($sql_query) > 200) {
+
+ $url_sql_query = 'SELECT ';
+ if (isset($analyzed_sql[0]['queryflags']['distinct'])) {
+ $url_sql_query .= ' DISTINCT ';
+ }
+ $url_sql_query .= $analyzed_sql[0]['select_expr_clause'];
+ if (!empty($analyzed_sql[0]['from_clause'])) {
+ $url_sql_query .= ' FROM ' . $analyzed_sql[0]['from_clause'];
+ }
+ }
+
+ if (!is_array($map)) {
+ $map = array();
+ }
+ $row_no = 0;
+ $vertical_display['edit'] = array();
+ $vertical_display['delete'] = array();
+ $vertical_display['data'] = array();
+ $vertical_display['row_delete'] = array();
+
+ // Correction University of Virginia 19991216 in the while below
+ // Previous code assumed that all tables have keys, specifically that
+ // the phpMyAdmin GUI should support row delete/edit only for such
+ // tables.
+ // Although always using keys is arguably the prescribed way of
+ // defining a relational table, it is not required. This will in
+ // particular be violated by the novice.
+ // We want to encourage phpMyAdmin usage by such novices. So the code
+ // below has been changed to conditionally work as before when the
+ // table being displayed has one or more keys; but to display
+ // delete/edit options correctly for tables without keys.
+
+ $odd_row = true;
+ while ($row = PMA_DBI_fetch_row($dt_result)) {
+ // lem9: "vertical display" mode stuff
+ if ($row_no != 0 && $_SESSION['userconf']['repeat_cells'] != 0 && !($row_no % $_SESSION['userconf']['repeat_cells'])
+ && ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped'))
+ {
+ echo '<tr>' . "\n";
+ if ($vertical_display['emptypre'] > 0) {
+ echo ' <th colspan="' . $vertical_display['emptypre'] . '">' . "\n"
+ .' &nbsp;</th>' . "\n";
+ }
+
+ foreach ($vertical_display['desc'] as $val) {
+ echo $val;
+ }
+
+ if ($vertical_display['emptyafter'] > 0) {
+ echo ' <th colspan="' . $vertical_display['emptyafter'] . '">' . "\n"
+ .' &nbsp;</th>' . "\n";
+ }
+ echo '</tr>' . "\n";
+ } // end if
+
+ $class = $odd_row ? 'odd' : 'even';
+ $odd_row = ! $odd_row;
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ // loic1: pointer code part
+ echo ' <tr class="' . $class . '">' . "\n";
+ $class = '';
+ }
+
+
+ // 1. Prepares the row (gets primary keys to use)
+ // 1.1 Results from a "SELECT" statement -> builds the
+ // "primary" key to use in links
+ /**
+ * @todo $unique_condition could be empty, for example a table
+ * with only one field and it's a BLOB; in this case,
+ * avoid to display the delete and edit links
+ */
+ $unique_condition = PMA_getUniqueCondition($dt_result, $fields_cnt, $fields_meta, $row);
+ $unique_condition_html = htmlspecialchars($unique_condition);
+
+ // 1.2 Defines the URLs for the modify/delete link(s)
+
+ if ($is_display['edit_lnk'] != 'nn' || $is_display['del_lnk'] != 'nn') {
+ // We need to copy the value or else the == 'both' check will always return true
+
+ if ($GLOBALS['cfg']['PropertiesIconic'] === 'both') {
+ $iconic_spacer = '<div class="nowrap">';
+ } else {
+ $iconic_spacer = '';
+ }
+
+ // 1.2.1 Modify link(s)
+ if ($is_display['edit_lnk'] == 'ur') { // update row case
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'primary_key' => $unique_condition,
+ 'sql_query' => $url_sql_query,
+ 'goto' => 'sql.php',
+ );
+ $edit_url = 'tbl_change.php' . PMA_generate_common_url($_url_params);
+
+ $edit_str = PMA_getIcon('b_edit.png', $GLOBALS['strEdit'], true);
+ } // end if (1.2.1)
+
+ if (isset($GLOBALS['cfg']['Bookmark']['table']) && isset($GLOBALS['cfg']['Bookmark']['db']) && $table == $GLOBALS['cfg']['Bookmark']['table'] && $db == $GLOBALS['cfg']['Bookmark']['db'] && isset($row[1]) && isset($row[0])) {
+ $_url_params = array(
+ 'db' => $row[1],
+ 'id_bookmark' => $row[0],
+ 'action_bookmark' => '0',
+ 'action_bookmark_all' => '1',
+ 'SQL' => $GLOBALS['strExecuteBookmarked'],
+ );
+ $bookmark_go = '<a href="import.php'
+ . PMA_generate_common_url($_url_params)
+ .' " title="' . $GLOBALS['strExecuteBookmarked'] . '">';
+
+ $bookmark_go .= PMA_getIcon('b_bookmark.png', $GLOBALS['strExecuteBookmarked'], true);
+
+ $bookmark_go .= '</a>';
+ } else {
+ $bookmark_go = '';
+ }
+
+ // 1.2.2 Delete/Kill link(s)
+ if ($is_display['del_lnk'] == 'dr') { // delete row case
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sql_query' => $url_sql_query,
+ 'zero_rows' => $GLOBALS['strDeleted'],
+ 'goto' => (empty($goto) ? 'tbl_sql.php' : $goto),
+ );
+ $lnk_goto = 'sql.php' . PMA_generate_common_url($_url_params, 'text');
+
+ $del_query = 'DELETE FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table)
+ . ' WHERE' . $unique_condition . ' LIMIT 1';
+
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sql_query' => $del_query,
+ 'zero_rows' => $GLOBALS['strDeleted'],
+ 'goto' => $lnk_goto,
+ );
+ $del_url = 'sql.php' . PMA_generate_common_url($_url_params);
+
+ $js_conf = 'DELETE FROM ' . PMA_jsFormat($db) . '.' . PMA_jsFormat($table)
+ . ' WHERE ' . trim(PMA_jsFormat($unique_condition, false))
+ . ' LIMIT 1';
+ $del_str = PMA_getIcon('b_drop.png', $GLOBALS['strDelete'], true);
+ } elseif ($is_display['del_lnk'] == 'kp') { // kill process case
+
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sql_query' => $url_sql_query,
+ 'goto' => 'main.php',
+ );
+ $lnk_goto = 'sql.php' . PMA_generate_common_url($_url_params, 'text');
+
+ $_url_params = array(
+ 'db' => 'mysql',
+ 'sql_query' => 'KILL ' . $row[0],
+ 'goto' => $lnk_goto,
+ );
+ $del_url = 'sql.php' . PMA_generate_common_url($_url_params);
+ $del_query = 'KILL ' . $row[0];
+ $js_conf = 'KILL ' . $row[0];
+ $del_str = PMA_getIcon('b_drop.png', $GLOBALS['strKill'], true);
+ } // end if (1.2.2)
+
+ // 1.3 Displays the links at left if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtLeft']
+ && ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped')) {
+ $doWriteModifyAt = 'left';
+ require './libraries/display_tbl_links.lib.php';
+ } // end if (1.3)
+ } // end if (1)
+
+ // 2. Displays the rows' values
+ for ($i = 0; $i < $fields_cnt; ++$i) {
+ $meta = $fields_meta[$i];
+ $pointer = $i;
+ // garvin: See if this column should get highlight because it's used in the
+ // where-query.
+ if (isset($highlight_columns) && (isset($highlight_columns[$meta->name]) || isset($highlight_columns[PMA_backquote($meta->name)]))) {
+ $condition_field = true;
+ } else {
+ $condition_field = false;
+ }
+
+ $mouse_events = '';
+ if ($_SESSION['userconf']['disp_direction'] == 'vertical' && (!isset($GLOBALS['printview']) || ($GLOBALS['printview'] != '1'))) {
+ if ($GLOBALS['cfg']['BrowsePointerEnable'] == true) {
+ $mouse_events .= ' onmouseover="setVerticalPointer(this, ' . $row_no . ', \'over\', \'odd\', \'even\', \'hover\', \'marked\');"'
+ . ' onmouseout="setVerticalPointer(this, ' . $row_no . ', \'out\', \'odd\', \'even\', \'hover\', \'marked\');" ';
+ }
+ if ($GLOBALS['cfg']['BrowseMarkerEnable'] == true) {
+ $mouse_events .= ' onmousedown="setVerticalPointer(this, ' . $row_no . ', \'click\', \'odd\', \'even\', \'hover\', \'marked\'); setCheckboxColumn(\'id_rows_to_delete' . $row_no . '\');" ';
+ } else {
+ $mouse_events .= ' onmousedown="setCheckboxColumn(\'id_rows_to_delete' . $row_no . '\');" ';
+ }
+ }// end if
+
+ // garvin: Wrap MIME-transformations. [MIME]
+ $default_function = 'default_function'; // default_function
+ $transform_function = $default_function;
+ $transform_options = array();
+
+ if ($GLOBALS['cfgRelation']['mimework'] && $GLOBALS['cfg']['BrowseMIME']) {
+
+ if (isset($GLOBALS['mime_map'][$meta->name]['mimetype']) && isset($GLOBALS['mime_map'][$meta->name]['transformation']) && !empty($GLOBALS['mime_map'][$meta->name]['transformation'])) {
+ $include_file = $GLOBALS['mime_map'][$meta->name]['transformation'];
+
+ if (file_exists('./libraries/transformations/' . $include_file)) {
+ $transformfunction_name = str_replace('.inc.php', '', $GLOBALS['mime_map'][$meta->name]['transformation']);
+
+ require_once './libraries/transformations/' . $include_file;
+
+ if (function_exists('PMA_transformation_' . $transformfunction_name)) {
+ $transform_function = 'PMA_transformation_' . $transformfunction_name;
+ $transform_options = PMA_transformation_getOptions((isset($GLOBALS['mime_map'][$meta->name]['transformation_options']) ? $GLOBALS['mime_map'][$meta->name]['transformation_options'] : ''));
+ $meta->mimetype = str_replace('_', '/', $GLOBALS['mime_map'][$meta->name]['mimetype']);
+ }
+ } // end if file_exists
+ } // end if transformation is set
+ } // end if mime/transformation works.
+
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'primary_key' => $unique_condition,
+ 'transform_key' => $meta->name,
+ );
+
+ if (! empty($sql_query)) {
+ $_url_params['sql_query'] = $url_sql_query;
+ }
+
+ $transform_options['wrapper_link'] = PMA_generate_common_url($_url_params);
+
+ // n u m e r i c
+ if ($meta->numeric == 1) {
+
+ // lem9: if two fields have the same name (this is possible
+ // with self-join queries, for example), using $meta->name
+ // will show both fields NULL even if only one is NULL,
+ // so use the $pointer
+
+ if (!isset($row[$i]) || is_null($row[$i])) {
+ $vertical_display['data'][$row_no][$i] = ' <td align="right"' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '"><i>NULL</i></td>' . "\n";
+ } elseif ($row[$i] != '') {
+
+ $nowrap = ' nowrap';
+ $where_comparison = ' = ' . $row[$i];
+
+ $vertical_display['data'][$row_no][$i] = '<td align="right"' . PMA_prepare_row_data($mouse_events, $class, $condition_field, $analyzed_sql, $meta, $map, $row[$i], $transform_function, $default_function, $nowrap, $where_comparison);
+ } else {
+ $vertical_display['data'][$row_no][$i] = ' <td align="right"' . $mouse_events . ' class="' . $class . ' nowrap' . ($condition_field ? ' condition' : '') . '">&nbsp;</td>' . "\n";
+ }
+
+ // b l o b
+
+ } elseif (stristr($meta->type, 'BLOB')) {
+ // loic1 : PMA_mysql_fetch_fields returns BLOB in place of
+ // TEXT fields type so we have to ensure it's really a BLOB
+ $field_flags = PMA_DBI_field_flags($dt_result, $i);
+ if (stristr($field_flags, 'BINARY')) {
+ // rajk - for blobstreaming
+
+ $bs_reference_exists = $allBSTablesExist = FALSE;
+
+ // load PMA configuration
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // if PMA configuration exists
+ if ($PMA_Config)
+ {
+ // load BS variables
+ $pluginsExist = $PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST');
+
+ // if BS plugins exist
+ if ($pluginsExist)
+ {
+ // load BS databases
+ $bs_tables = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+
+ // if BS db array and specified db string not empty and valid
+ if (!empty($bs_tables) && strlen($db) > 0)
+ {
+ $bs_tables = $bs_tables[$db];
+
+ if (isset($bs_tables))
+ {
+ $allBSTablesExist = TRUE;
+
+ // check if BS tables exist for given database
+ foreach ($bs_tables as $table_key=>$bs_tbl)
+ if (!$bs_tables[$table_key]['Exists'])
+ {
+ $allBSTablesExist = FALSE;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // if necessary BS tables exist
+ if ($allBSTablesExist)
+ $bs_reference_exists = PMA_BS_ReferenceExists($row[$i], $db);
+
+ // if valid BS reference exists
+ if ($bs_reference_exists)
+ $blobtext = PMA_BS_CreateReferenceLink($row[$i], $db);
+ else
+ $blobtext = PMA_handle_non_printable_contents('BLOB', (isset($row[$i]) ? $row[$i] : ''), $transform_function, $transform_options, $default_function, $meta);
+
+ $vertical_display['data'][$row_no][$i] = ' <td align="left"' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '">' . $blobtext . '</td>';
+ unset($blobtext);
+ } else {
+ if (!isset($row[$i]) || is_null($row[$i])) {
+ $vertical_display['data'][$row_no][$i] = ' <td' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '"><i>NULL</i></td>' . "\n";
+ } elseif ($row[$i] != '') {
+ // garvin: if a transform function for blob is set, none of these replacements will be made
+ if (PMA_strlen($row[$i]) > $GLOBALS['cfg']['LimitChars'] && $_SESSION['userconf']['display_text'] == 'P') {
+ $row[$i] = PMA_substr($row[$i], 0, $GLOBALS['cfg']['LimitChars']) . '...';
+ }
+ // loic1: displays all space characters, 4 space
+ // characters for tabulations and <cr>/<lf>
+ $row[$i] = ($default_function != $transform_function ? $transform_function($row[$i], $transform_options, $meta) : $default_function($row[$i], array(), $meta));
+
+ $vertical_display['data'][$row_no][$i] = ' <td' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '">' . $row[$i] . '</td>' . "\n";
+ } else {
+ $vertical_display['data'][$row_no][$i] = ' <td' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '">&nbsp;</td>' . "\n";
+ }
+ }
+ } else {
+ if (!isset($row[$i]) || is_null($row[$i])) {
+ $vertical_display['data'][$row_no][$i] = ' <td' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '"><i>NULL</i></td>' . "\n";
+ } elseif ($row[$i] != '') {
+ // loic1: support blanks in the key
+ $relation_id = $row[$i];
+
+ // nijel: Cut all fields to $GLOBALS['cfg']['LimitChars']
+ // lem9: (unless it's a link-type transformation)
+ if (PMA_strlen($row[$i]) > $GLOBALS['cfg']['LimitChars'] && $_SESSION['userconf']['display_text'] == 'P' && !strpos($transform_function, 'link') === true) {
+ $row[$i] = PMA_substr($row[$i], 0, $GLOBALS['cfg']['LimitChars']) . '...';
+ }
+
+ // loic1: displays special characters from binaries
+ $field_flags = PMA_DBI_field_flags($dt_result, $i);
+ if (isset($meta->_type) && $meta->_type === MYSQLI_TYPE_BIT) {
+ $row[$i] = PMA_printable_bit_value($row[$i], $meta->length);
+ } elseif (stristr($field_flags, 'BINARY') && $meta->type == 'string') {
+ if ($_SESSION['userconf']['display_binary'] || (isset($GLOBALS['is_analyse']) && $GLOBALS['is_analyse'])) {
+ // user asked to see the real contents of BINARY
+ // fields, or we detected a PROCEDURE ANALYSE in
+ // the query (results are reported as being
+ // binary strings)
+ $row[$i] = PMA_replace_binary_contents($row[$i]);
+ } else {
+ // we show the BINARY message and field's size
+ // (or maybe use a transformation)
+ $row[$i] = PMA_handle_non_printable_contents('BINARY', $row[$i], $transform_function, $transform_options, $default_function, $meta);
+ }
+ }
+
+ // garvin: transform functions may enable no-wrapping:
+ $function_nowrap = $transform_function . '_nowrap';
+ $bool_nowrap = (($default_function != $transform_function && function_exists($function_nowrap)) ? $function_nowrap($transform_options) : false);
+
+ // loic1: do not wrap if date field type
+ $nowrap = ((preg_match('@DATE|TIME@i', $meta->type) || $bool_nowrap) ? ' nowrap' : '');
+ $where_comparison = ' = \'' . PMA_sqlAddslashes($row[$i]) . '\'';
+ $vertical_display['data'][$row_no][$i] = '<td ' . PMA_prepare_row_data($mouse_events, $class, $condition_field, $analyzed_sql, $meta, $map, $row[$i], $transform_function, $default_function, $nowrap, $where_comparison);
+
+ } else {
+ $vertical_display['data'][$row_no][$i] = ' <td' . $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . '">&nbsp;</td>' . "\n";
+ }
+ }
+
+ // lem9: output stored cell
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ echo $vertical_display['data'][$row_no][$i];
+ }
+
+ if (isset($vertical_display['rowdata'][$i][$row_no])) {
+ $vertical_display['rowdata'][$i][$row_no] .= $vertical_display['data'][$row_no][$i];
+ } else {
+ $vertical_display['rowdata'][$i][$row_no] = $vertical_display['data'][$row_no][$i];
+ }
+ } // end for (2)
+
+ // 3. Displays the modify/delete links on the right if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtRight']
+ && ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped')) {
+ $doWriteModifyAt = 'right';
+ require './libraries/display_tbl_links.lib.php';
+ } // end if (3)
+
+ if ($_SESSION['userconf']['disp_direction'] == 'horizontal'
+ || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') {
+ ?>
+</tr>
+ <?php
+ } // end if
+
+ // 4. Gather links of del_urls and edit_urls in an array for later
+ // output
+ if (!isset($vertical_display['edit'][$row_no])) {
+ $vertical_display['edit'][$row_no] = '';
+ $vertical_display['delete'][$row_no] = '';
+ $vertical_display['row_delete'][$row_no] = '';
+ }
+
+ $column_style_vertical = '';
+ if ($GLOBALS['cfg']['BrowsePointerEnable'] == true) {
+ $column_style_vertical .= ' onmouseover="setVerticalPointer(this, ' . $row_no . ', \'over\', \'odd\', \'even\', \'hover\', \'marked\');"'
+ . ' onmouseout="setVerticalPointer(this, ' . $row_no . ', \'out\', \'odd\', \'even\', \'hover\', \'marked\');"';
+ }
+ $column_marker_vertical = '';
+ if ($GLOBALS['cfg']['BrowseMarkerEnable'] == true) {
+ $column_marker_vertical .= 'setVerticalPointer(this, ' . $row_no . ', \'click\', \'odd\', \'even\', \'hover\', \'marked\');';
+ }
+
+ if (!empty($del_url) && $is_display['del_lnk'] != 'kp') {
+ $vertical_display['row_delete'][$row_no] .= ' <td align="center" class="' . $class . '" ' . $column_style_vertical . '>' . "\n"
+ . ' <input type="checkbox" id="id_rows_to_delete' . $row_no . '[%_PMA_CHECKBOX_DIR_%]" name="rows_to_delete[' . $unique_condition_html . ']"'
+ . ' onclick="' . $column_marker_vertical . 'copyCheckboxesRange(\'rowsDeleteForm\', \'id_rows_to_delete' . $row_no . '\',\'[%_PMA_CHECKBOX_DIR_%]\');"'
+ . ' value="' . htmlspecialchars($del_query) . '" ' . (isset($GLOBALS['checkall']) ? 'checked="checked"' : '') . ' />' . "\n"
+ . ' </td>' . "\n";
+ } else {
+ unset($vertical_display['row_delete'][$row_no]);
+ }
+
+ if (isset($edit_url)) {
+ $vertical_display['edit'][$row_no] .= ' <td align="center" class="' . $class . '" ' . $column_style_vertical . '>' . "\n"
+ . PMA_linkOrButton($edit_url, $edit_str, array(), false)
+ . $bookmark_go
+ . ' </td>' . "\n";
+ } else {
+ unset($vertical_display['edit'][$row_no]);
+ }
+
+ if (isset($del_url)) {
+ $vertical_display['delete'][$row_no] .= ' <td align="center" class="' . $class . '" ' . $column_style_vertical . '>' . "\n"
+ . PMA_linkOrButton($del_url, $del_str, (isset($js_conf) ? $js_conf : ''), false)
+ . ' </td>' . "\n";
+ } else {
+ unset($vertical_display['delete'][$row_no]);
+ }
+
+ echo (($_SESSION['userconf']['disp_direction'] == 'horizontal' || $_SESSION['userconf']['disp_direction'] == 'horizontalflipped') ? "\n" : '');
+ $row_no++;
+ } // end while
+
+ return true;
+} // end of the 'PMA_displayTableBody()' function
+
+
+/**
+ * Do display the result table with the vertical direction mode.
+ * Credits for this feature goes to Garvin Hicking <hicking@faktor-e.de>.
+ *
+ * @return boolean always true
+ *
+ * @uses $_SESSION['userconf']['repeat_cells']
+ * @global array $vertical_display the information to display
+ *
+ * @access private
+ *
+ * @see PMA_displayTable()
+ */
+function PMA_displayVerticalTable()
+{
+ global $vertical_display;
+
+ // Displays "multi row delete" link at top if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
+ echo '<tr>' . "\n";
+ echo $vertical_display['textbtn'];
+ $foo_counter = 0;
+ foreach ($vertical_display['row_delete'] as $val) {
+ if (($foo_counter != 0) && ($_SESSION['userconf']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['userconf']['repeat_cells'])) {
+ echo '<th>&nbsp;</th>' . "\n";
+ }
+
+ echo str_replace('[%_PMA_CHECKBOX_DIR_%]', '', $val);
+ $foo_counter++;
+ } // end while
+ echo '</tr>' . "\n";
+ } // end if
+
+ // Displays "edit" link at top if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['edit']) && (count($vertical_display['edit']) > 0 || !empty($vertical_display['textbtn']))) {
+ echo '<tr>' . "\n";
+ if (!is_array($vertical_display['row_delete'])) {
+ echo $vertical_display['textbtn'];
+ }
+ $foo_counter = 0;
+ foreach ($vertical_display['edit'] as $val) {
+ if (($foo_counter != 0) && ($_SESSION['userconf']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['userconf']['repeat_cells'])) {
+ echo ' <th>&nbsp;</th>' . "\n";
+ }
+
+ echo $val;
+ $foo_counter++;
+ } // end while
+ echo '</tr>' . "\n";
+ } // end if
+
+ // Displays "delete" link at top if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['delete']) && (count($vertical_display['delete']) > 0 || !empty($vertical_display['textbtn']))) {
+ echo '<tr>' . "\n";
+ if (!is_array($vertical_display['edit']) && !is_array($vertical_display['row_delete'])) {
+ echo $vertical_display['textbtn'];
+ }
+ $foo_counter = 0;
+ foreach ($vertical_display['delete'] as $val) {
+ if (($foo_counter != 0) && ($_SESSION['userconf']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['userconf']['repeat_cells'])) {
+ echo '<th>&nbsp;</th>' . "\n";
+ }
+
+ echo $val;
+ $foo_counter++;
+ } // end while
+ echo '</tr>' . "\n";
+ } // end if
+
+ // Displays data
+ foreach ($vertical_display['desc'] AS $key => $val) {
+
+ echo '<tr>' . "\n";
+ echo $val;
+
+ $foo_counter = 0;
+ foreach ($vertical_display['rowdata'][$key] as $subval) {
+ if (($foo_counter != 0) && ($_SESSION['userconf']['repeat_cells'] != 0) and !($foo_counter % $_SESSION['userconf']['repeat_cells'])) {
+ echo $val;
+ }
+
+ echo $subval;
+ $foo_counter++;
+ } // end while
+
+ echo '</tr>' . "\n";
+ } // end while
+
+ // Displays "multi row delete" link at bottom if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtRight'] && is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
+ echo '<tr>' . "\n";
+ echo $vertical_display['textbtn'];
+ $foo_counter = 0;
+ foreach ($vertical_display['row_delete'] as $val) {
+ if (($foo_counter != 0) && ($_SESSION['userconf']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['userconf']['repeat_cells'])) {
+ echo '<th>&nbsp;</th>' . "\n";
+ }
+
+ echo str_replace('[%_PMA_CHECKBOX_DIR_%]', 'r', $val);
+ $foo_counter++;
+ } // end while
+ echo '</tr>' . "\n";
+ } // end if
+
+ // Displays "edit" link at bottom if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtRight'] && is_array($vertical_display['edit']) && (count($vertical_display['edit']) > 0 || !empty($vertical_display['textbtn']))) {
+ echo '<tr>' . "\n";
+ if (!is_array($vertical_display['row_delete'])) {
+ echo $vertical_display['textbtn'];
+ }
+ $foo_counter = 0;
+ foreach ($vertical_display['edit'] as $val) {
+ if (($foo_counter != 0) && ($_SESSION['userconf']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['userconf']['repeat_cells'])) {
+ echo '<th>&nbsp;</th>' . "\n";
+ }
+
+ echo $val;
+ $foo_counter++;
+ } // end while
+ echo '</tr>' . "\n";
+ } // end if
+
+ // Displays "delete" link at bottom if required
+ if ($GLOBALS['cfg']['ModifyDeleteAtRight'] && is_array($vertical_display['delete']) && (count($vertical_display['delete']) > 0 || !empty($vertical_display['textbtn']))) {
+ echo '<tr>' . "\n";
+ if (!is_array($vertical_display['edit']) && !is_array($vertical_display['row_delete'])) {
+ echo $vertical_display['textbtn'];
+ }
+ $foo_counter = 0;
+ foreach ($vertical_display['delete'] as $val) {
+ if (($foo_counter != 0) && ($_SESSION['userconf']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['userconf']['repeat_cells'])) {
+ echo '<th>&nbsp;</th>' . "\n";
+ }
+
+ echo $val;
+ $foo_counter++;
+ } // end while
+ echo '</tr>' . "\n";
+ }
+
+ return true;
+} // end of the 'PMA_displayVerticalTable' function
+
+/**
+ *
+ * @uses $_SESSION['userconf']['disp_direction']
+ * @uses $_REQUEST['disp_direction']
+ * @uses $GLOBALS['cfg']['DefaultDisplay']
+ * @uses $_SESSION['userconf']['repeat_cells']
+ * @uses $_REQUEST['repeat_cells']
+ * @uses $GLOBALS['cfg']['RepeatCells']
+ * @uses $_SESSION['userconf']['max_rows']
+ * @uses $_REQUEST['session_max_rows']
+ * @uses $GLOBALS['cfg']['MaxRows']
+ * @uses $_SESSION['userconf']['pos']
+ * @uses $_REQUEST['pos']
+ * @uses $_SESSION['userconf']['display_text']
+ * @uses $_REQUEST['display_text']
+ * @uses $_SESSION['userconf']['relational_display']
+ * @uses $_REQUEST['relational_display']
+ * @uses $_SESSION['userconf']['display_binary']
+ * @uses $_REQUEST['display_binary']
+ * @uses $_SESSION['userconf']['display_blob']
+ * @uses $_REQUEST['display_blob']
+ * @uses PMA_isValid()
+ * @uses $GLOBALS['sql_query']
+ * @todo make maximum remembered queries configurable
+ * @todo move/split into SQL class!?
+ * @todo currently this is called twice unnecessary
+ * @todo ignore LIMIT and ORDER in query!?
+ */
+function PMA_displayTable_checkConfigParams()
+{
+ $sql_key = md5($GLOBALS['sql_query']);
+
+ $_SESSION['userconf']['query'][$sql_key]['sql'] = $GLOBALS['sql_query'];
+
+ if (PMA_isValid($_REQUEST['disp_direction'], array('horizontal', 'vertical', 'horizontalflipped'))) {
+ $_SESSION['userconf']['query'][$sql_key]['disp_direction'] = $_REQUEST['disp_direction'];
+ unset($_REQUEST['disp_direction']);
+ } elseif (empty($_SESSION['userconf']['query'][$sql_key]['disp_direction'])) {
+ $_SESSION['userconf']['query'][$sql_key]['disp_direction'] = $GLOBALS['cfg']['DefaultDisplay'];
+ }
+
+ if (PMA_isValid($_REQUEST['repeat_cells'], 'numeric')) {
+ $_SESSION['userconf']['query'][$sql_key]['repeat_cells'] = $_REQUEST['repeat_cells'];
+ unset($_REQUEST['repeat_cells']);
+ } elseif (empty($_SESSION['userconf']['query'][$sql_key]['repeat_cells'])) {
+ $_SESSION['userconf']['query'][$sql_key]['repeat_cells'] = $GLOBALS['cfg']['RepeatCells'];
+ }
+
+ if (PMA_isValid($_REQUEST['session_max_rows'], 'numeric') || $_REQUEST['session_max_rows'] == 'all') {
+ $_SESSION['userconf']['query'][$sql_key]['max_rows'] = $_REQUEST['session_max_rows'];
+ unset($_REQUEST['session_max_rows']);
+ } elseif (empty($_SESSION['userconf']['query'][$sql_key]['max_rows'])) {
+ $_SESSION['userconf']['query'][$sql_key]['max_rows'] = $GLOBALS['cfg']['MaxRows'];
+ }
+
+ if (PMA_isValid($_REQUEST['pos'], 'numeric')) {
+ $_SESSION['userconf']['query'][$sql_key]['pos'] = $_REQUEST['pos'];
+ unset($_REQUEST['pos']);
+ } elseif (empty($_SESSION['userconf']['query'][$sql_key]['pos'])) {
+ $_SESSION['userconf']['query'][$sql_key]['pos'] = 0;
+ }
+
+ if (PMA_isValid($_REQUEST['display_text'], array('P', 'F'))) {
+ $_SESSION['userconf']['query'][$sql_key]['display_text'] = $_REQUEST['display_text'];
+ unset($_REQUEST['display_text']);
+ } elseif (empty($_SESSION['userconf']['query'][$sql_key]['display_text'])) {
+ $_SESSION['userconf']['query'][$sql_key]['display_text'] = 'P';
+ }
+
+ if (PMA_isValid($_REQUEST['relational_display'], array('K', 'D'))) {
+ $_SESSION['userconf']['query'][$sql_key]['relational_display'] = $_REQUEST['relational_display'];
+ unset($_REQUEST['relational_display']);
+ } elseif (empty($_SESSION['userconf']['query'][$sql_key]['relational_display'])) {
+ $_SESSION['userconf']['query'][$sql_key]['relational_display'] = 'K';
+ }
+
+ if (isset($_REQUEST['display_binary'])) {
+ $_SESSION['userconf']['query'][$sql_key]['display_binary'] = true;
+ unset($_REQUEST['display_binary']);
+ } elseif (isset($_REQUEST['display_options_form'])) {
+ // we know that the checkbox was unchecked
+ unset($_SESSION['userconf']['query'][$sql_key]['display_binary']);
+ }
+
+ if (isset($_REQUEST['display_blob'])) {
+ $_SESSION['userconf']['query'][$sql_key]['display_blob'] = true;
+ unset($_REQUEST['display_blob']);
+ } elseif (isset($_REQUEST['display_options_form'])) {
+ // we know that the checkbox was unchecked
+ unset($_SESSION['userconf']['query'][$sql_key]['display_blob']);
+ }
+
+ if (isset($_REQUEST['hide_transformation'])) {
+ $_SESSION['userconf']['query'][$sql_key]['hide_transformation'] = true;
+ unset($_REQUEST['hide_transformation']);
+ } elseif (isset($_REQUEST['display_options_form'])) {
+ // we know that the checkbox was unchecked
+ unset($_SESSION['userconf']['query'][$sql_key]['hide_transformation']);
+ }
+
+ // move current query to the last position, to be removed last
+ // so only least executed query will be removed if maximum remembered queries
+ // limit is reached
+ $tmp = $_SESSION['userconf']['query'][$sql_key];
+ unset($_SESSION['userconf']['query'][$sql_key]);
+ $_SESSION['userconf']['query'][$sql_key] = $tmp;
+
+ // do not exceed a maximum number of queries to remember
+ if (count($_SESSION['userconf']['query']) > 10) {
+ array_shift($_SESSION['userconf']['query']);
+ //echo 'deleting one element ...';
+ }
+
+ // populate query configuration
+ $_SESSION['userconf']['display_text'] = $_SESSION['userconf']['query'][$sql_key]['display_text'];
+ $_SESSION['userconf']['relational_display'] = $_SESSION['userconf']['query'][$sql_key]['relational_display'];
+ $_SESSION['userconf']['display_binary'] = isset($_SESSION['userconf']['query'][$sql_key]['display_binary']) ? true : false;
+ $_SESSION['userconf']['display_blob'] = isset($_SESSION['userconf']['query'][$sql_key]['display_blob']) ? true : false;
+ $_SESSION['userconf']['hide_transformation'] = isset($_SESSION['userconf']['query'][$sql_key]['hide_transformation']) ? true : false;
+ $_SESSION['userconf']['pos'] = $_SESSION['userconf']['query'][$sql_key]['pos'];
+ $_SESSION['userconf']['max_rows'] = $_SESSION['userconf']['query'][$sql_key]['max_rows'];
+ $_SESSION['userconf']['repeat_cells'] = $_SESSION['userconf']['query'][$sql_key]['repeat_cells'];
+ $_SESSION['userconf']['disp_direction'] = $_SESSION['userconf']['query'][$sql_key]['disp_direction'];
+
+ /*
+ * debugging
+ echo '<pre>';
+ var_dump($_SESSION['userconf']);
+ echo '</pre>';
+ */
+}
+
+/**
+ * Displays a table of results returned by a SQL query.
+ * This function is called by the "sql.php" script.
+ *
+ * @param integer the link id associated to the query which results have
+ * to be displayed
+ * @param array the display mode
+ * @param array the analyzed query
+ *
+ * @uses $_SESSION['userconf']['pos']
+ * @global string $db the database name
+ * @global string $table the table name
+ * @global string $goto the URL to go back in case of errors
+ * @global string $sql_query the current SQL query
+ * @global integer $num_rows the total number of rows returned by the
+ * SQL query
+ * @global integer $unlim_num_rows the total number of rows returned by the
+ * SQL query without any programmatically
+ * appended "LIMIT" clause
+ * @global array $fields_meta the list of fields properties
+ * @global integer $fields_cnt the total number of fields returned by
+ * the SQL query
+ * @global array $vertical_display informations used with vertical display
+ * mode
+ * @global array $highlight_columns column names to highlight
+ * @global array $cfgRelation the relation settings
+ *
+ * @access private
+ *
+ * @see PMA_showMessage(), PMA_setDisplayMode(),
+ * PMA_displayTableNavigation(), PMA_displayTableHeaders(),
+ * PMA_displayTableBody(), PMA_displayResultsOperations()
+ */
+function PMA_displayTable(&$dt_result, &$the_disp_mode, $analyzed_sql)
+{
+ global $db, $table, $goto;
+ global $sql_query, $num_rows, $unlim_num_rows, $fields_meta, $fields_cnt;
+ global $vertical_display, $highlight_columns;
+ global $cfgRelation;
+ global $showtable;
+
+ // why was this called here? (already called from sql.php)
+ //PMA_displayTable_checkConfigParams();
+
+ /**
+ * @todo move this to a central place
+ * @todo for other future table types
+ */
+ $is_innodb = (isset($showtable['Type']) && $showtable['Type'] == 'InnoDB');
+
+ if ($is_innodb
+ && ! isset($analyzed_sql[0]['queryflags']['union'])
+ && ! isset($analyzed_sql[0]['table_ref'][1]['table_name'])
+ && (empty($analyzed_sql[0]['where_clause'])
+ || $analyzed_sql[0]['where_clause'] == '1 ')) {
+ // "j u s t b r o w s i n g"
+ $pre_count = '~';
+ $after_count = PMA_showHint(PMA_sanitize($GLOBALS['strApproximateCount']), true);
+ } else {
+ $pre_count = '';
+ $after_count = '';
+ }
+
+ // 1. ----- Prepares the work -----
+
+ // 1.1 Gets the informations about which functionalities should be
+ // displayed
+ $total = '';
+ $is_display = PMA_setDisplayMode($the_disp_mode, $total);
+
+ // 1.2 Defines offsets for the next and previous pages
+ if ($is_display['nav_bar'] == '1') {
+ if ($_SESSION['userconf']['max_rows'] == 'all') {
+ $pos_next = 0;
+ $pos_prev = 0;
+ } else {
+ $pos_next = $_SESSION['userconf']['pos'] + $_SESSION['userconf']['max_rows'];
+ $pos_prev = $_SESSION['userconf']['pos'] - $_SESSION['userconf']['max_rows'];
+ if ($pos_prev < 0) {
+ $pos_prev = 0;
+ }
+ }
+ } // end if
+
+ // 1.3 Find the sort expression
+
+ // we need $sort_expression and $sort_expression_nodirection
+ // even if there are many table references
+ if (! empty($analyzed_sql[0]['order_by_clause'])) {
+ $sort_expression = trim(str_replace(' ', ' ', $analyzed_sql[0]['order_by_clause']));
+ /**
+ * Get rid of ASC|DESC
+ */
+ preg_match('@(.*)([[:space:]]*(ASC|DESC))@si', $sort_expression, $matches);
+ $sort_expression_nodirection = isset($matches[1]) ? trim($matches[1]) : $sort_expression;
+ $sort_direction = isset($matches[2]) ? trim($matches[2]) : '';
+ unset($matches);
+ } else {
+ $sort_expression = $sort_expression_nodirection = $sort_direction = '';
+ }
+
+ // 1.4 Prepares display of first and last value of the sorted column
+
+ if (! empty($sort_expression_nodirection)) {
+ list($sort_table, $sort_column) = explode('.', $sort_expression_nodirection);
+ $sort_table = PMA_unQuote($sort_table);
+ $sort_column = PMA_unQuote($sort_column);
+ // find the sorted column index in row result
+ // (this might be a multi-table query)
+ $sorted_column_index = false;
+ foreach($fields_meta as $key => $meta) {
+ if ($meta->table == $sort_table && $meta->name == $sort_column) {
+ $sorted_column_index = $key;
+ break;
+ }
+ }
+ if ($sorted_column_index !== false) {
+ // fetch first row of the result set
+ $row = PMA_DBI_fetch_row($dt_result);
+ $column_for_first_row = $row[$sorted_column_index];
+ // fetch last row of the result set
+ PMA_DBI_data_seek($dt_result, $num_rows - 1);
+ $row = PMA_DBI_fetch_row($dt_result);
+ $column_for_last_row = $row[$sorted_column_index];
+ // reset to first row for the loop in PMA_displayTableBody()
+ PMA_DBI_data_seek($dt_result, 0);
+ // we could also use here $sort_expression_nodirection
+ $sorted_column_message = ' [' . htmlspecialchars($sort_column) . ': <strong>' . htmlspecialchars($column_for_first_row) . ' - ' . htmlspecialchars($column_for_last_row) . '</strong>]';
+ unset($row, $column_for_first_row, $column_for_last_row);
+ }
+ unset($sorted_column_index, $sort_table, $sort_column);
+ }
+
+ // 2. ----- Displays the top of the page -----
+
+ // 2.1 Displays a messages with position informations
+ if ($is_display['nav_bar'] == '1' && isset($pos_next)) {
+ if (isset($unlim_num_rows) && $unlim_num_rows != $total) {
+ $selectstring = ', ' . $unlim_num_rows . ' ' . $GLOBALS['strSelectNumRows'];
+ } else {
+ $selectstring = '';
+ }
+ $last_shown_rec = ($_SESSION['userconf']['max_rows'] == 'all' || $pos_next > $total)
+ ? $total - 1
+ : $pos_next - 1;
+
+ if (PMA_Table::isView($db, $table)
+ && $total == $GLOBALS['cfg']['MaxExactCountViews']) {
+ $message = PMA_Message::notice('strViewHasAtLeast');
+ $message->addParam('[a@./Documentation.html#cfg_MaxExactCount@_blank]');
+ $message->addParam('[/a]');
+ $message_view_warning = PMA_showHint($message);
+ } else {
+ $message_view_warning = false;
+ }
+
+ $message = PMA_Message::success('strShowingRecords');
+ $message->addMessage($_SESSION['userconf']['pos']);
+ if ($message_view_warning) {
+ $message->addMessage('...', ' - ');
+ $message->addMessage($message_view_warning);
+ $message->addMessage('(');
+ } else {
+ $message->addMessage($last_shown_rec, ' - ');
+ $message->addMessage($pre_count . PMA_formatNumber($total, 0) . $after_count, ' (');
+ $message->addString('strTotal');
+ $message->addMessage($selectstring, '');
+ $message->addMessage(', ', '');
+ }
+
+ $messagge_qt = PMA_Message::notice('strQueryTime');
+ $messagge_qt->addParam($GLOBALS['querytime']);
+
+ $message->addMessage($messagge_qt, '');
+ $message->addMessage(')', '');
+
+ $message->addMessage(isset($sorted_column_message) ? $sorted_column_message : '', '');
+
+ PMA_showMessage($message, $sql_query, 'success');
+
+ } elseif (!isset($GLOBALS['printview']) || $GLOBALS['printview'] != '1') {
+ PMA_showMessage($GLOBALS['strSuccess'], $sql_query, 'success');
+ }
+
+ // 2.3 Displays the navigation bars
+ if (! strlen($table)) {
+ if (isset($analyzed_sql[0]['query_type'])
+ && $analyzed_sql[0]['query_type'] == 'SELECT') {
+ // table does not always contain a real table name,
+ // for example in MySQL 5.0.x, the query SHOW STATUS
+ // returns STATUS as a table name
+ $table = $fields_meta[0]->table;
+ } else {
+ $table = '';
+ }
+ }
+
+ if ($is_display['nav_bar'] == '1') {
+ PMA_displayTableNavigation($pos_next, $pos_prev, $sql_query);
+ echo "\n";
+ } elseif (!isset($GLOBALS['printview']) || $GLOBALS['printview'] != '1') {
+ echo "\n" . '<br /><br />' . "\n";
+ }
+
+ // 2b ----- Get field references from Database -----
+ // (see the 'relation' configuration variable)
+ // loic1, 2002-03-02: extended to php3
+
+ // initialize map
+ $map = array();
+
+ // find tables
+ $target=array();
+ if (isset($analyzed_sql[0]['table_ref']) && is_array($analyzed_sql[0]['table_ref'])) {
+ foreach ($analyzed_sql[0]['table_ref'] AS $table_ref_position => $table_ref) {
+ $target[] = $analyzed_sql[0]['table_ref'][$table_ref_position]['table_true_name'];
+ }
+ }
+ $tabs = '(\'' . join('\',\'', $target) . '\')';
+
+ if ($cfgRelation['displaywork']) {
+ if (! strlen($table)) {
+ $exist_rel = false;
+ } else {
+ $exist_rel = PMA_getForeigners($db, $table, '', 'both');
+ if ($exist_rel) {
+ foreach ($exist_rel AS $master_field => $rel) {
+ $display_field = PMA_getDisplayField($rel['foreign_db'], $rel['foreign_table']);
+ $map[$master_field] = array($rel['foreign_table'],
+ $rel['foreign_field'],
+ $display_field,
+ $rel['foreign_db']);
+ } // end while
+ } // end if
+ } // end if
+ } // end if
+ // end 2b
+
+ // 3. ----- Displays the results table -----
+ PMA_displayTableHeaders($is_display, $fields_meta, $fields_cnt, $analyzed_sql, $sort_expression, $sort_expression_nodirection, $sort_direction);
+ $url_query = '';
+ echo '<tbody>' . "\n";
+ PMA_displayTableBody($dt_result, $is_display, $map, $analyzed_sql);
+ // vertical output case
+ if ($_SESSION['userconf']['disp_direction'] == 'vertical') {
+ PMA_displayVerticalTable();
+ } // end if
+ unset($vertical_display);
+ echo '</tbody>' . "\n";
+ ?>
+</table>
+
+ <?php
+ // 4. ----- Displays the link for multi-fields delete
+
+ if ($is_display['del_lnk'] == 'dr' && $is_display['del_lnk'] != 'kp') {
+
+ $delete_text = $is_display['del_lnk'] == 'dr' ? $GLOBALS['strDelete'] : $GLOBALS['strKill'];
+
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sql_query' => $sql_query,
+ 'goto' => $goto,
+ );
+ $uncheckall_url = 'sql.php' . PMA_generate_common_url($_url_params);
+
+ $_url_params['checkall'] = '1';
+ $checkall_url = 'sql.php' . PMA_generate_common_url($_url_params);
+
+ if ($_SESSION['userconf']['disp_direction'] == 'vertical') {
+ $checkall_params['onclick'] = 'if (setCheckboxes(\'rowsDeleteForm\', true)) return false;';
+ $uncheckall_params['onclick'] = 'if (setCheckboxes(\'rowsDeleteForm\', false)) return false;';
+ } else {
+ $checkall_params['onclick'] = 'if (markAllRows(\'rowsDeleteForm\')) return false;';
+ $uncheckall_params['onclick'] = 'if (unMarkAllRows(\'rowsDeleteForm\')) return false;';
+ }
+ $checkall_link = PMA_linkOrButton($checkall_url, $GLOBALS['strCheckAll'], $checkall_params, false);
+ $uncheckall_link = PMA_linkOrButton($uncheckall_url, $GLOBALS['strUncheckAll'], $uncheckall_params, false);
+ if ($_SESSION['userconf']['disp_direction'] != 'vertical') {
+ echo '<img class="selectallarrow" width="38" height="22"'
+ .' src="' . $GLOBALS['pmaThemeImage'] . 'arrow_' . $GLOBALS['text_dir'] . '.png' . '"'
+ .' alt="' . $GLOBALS['strWithChecked'] . '" />';
+ }
+ echo $checkall_link . "\n"
+ .' / ' . "\n"
+ .$uncheckall_link . "\n"
+ .'<i>' . $GLOBALS['strWithChecked'] . '</i>' . "\n";
+
+ PMA_buttonOrImage('submit_mult', 'mult_submit',
+ 'submit_mult_change', $GLOBALS['strChange'], 'b_edit.png');
+ PMA_buttonOrImage('submit_mult', 'mult_submit',
+ 'submit_mult_delete', $delete_text, 'b_drop.png');
+ if ($analyzed_sql[0]['querytype'] == 'SELECT') {
+ PMA_buttonOrImage('submit_mult', 'mult_submit',
+ 'submit_mult_export', $GLOBALS['strExport'],
+ 'b_tblexport.png');
+ }
+ echo "\n";
+
+ echo '<input type="hidden" name="sql_query"'
+ .' value="' . htmlspecialchars($sql_query) . '" />' . "\n";
+ echo '<input type="hidden" name="url_query"'
+ .' value="' . $GLOBALS['url_query'] . '" />' . "\n";
+ echo '</form>' . "\n";
+ }
+
+ // 5. ----- Displays the navigation bar at the bottom if required -----
+
+ if ($is_display['nav_bar'] == '1') {
+ echo '<br />' . "\n";
+ PMA_displayTableNavigation($pos_next, $pos_prev, $sql_query);
+ } elseif (!isset($GLOBALS['printview']) || $GLOBALS['printview'] != '1') {
+ echo "\n" . '<br /><br />' . "\n";
+ }
+
+ // 6. ----- Displays "Query results operations"
+ if (!isset($GLOBALS['printview']) || $GLOBALS['printview'] != '1') {
+ PMA_displayResultsOperations($the_disp_mode, $analyzed_sql);
+ }
+} // end of the 'PMA_displayTable()' function
+
+function default_function($buffer) {
+ $buffer = htmlspecialchars($buffer);
+ $buffer = str_replace("\011", ' &nbsp;&nbsp;&nbsp;',
+ str_replace(' ', ' &nbsp;', $buffer));
+ $buffer = preg_replace("@((\015\012)|(\015)|(\012))@", '<br />', $buffer);
+
+ return $buffer;
+}
+
+/**
+ * Displays operations that are available on results.
+ *
+ * @param array the display mode
+ * @param array the analyzed query
+ *
+ * @uses $_SESSION['userconf']['pos']
+ * @uses $_SESSION['userconf']['display_text']
+ * @global string $db the database name
+ * @global string $table the table name
+ * @global string $sql_query the current SQL query
+ * @global integer $unlim_num_rows the total number of rows returned by the
+ * SQL query without any programmatically
+ * appended "LIMIT" clause
+ *
+ * @access private
+ *
+ * @see PMA_showMessage(), PMA_setDisplayMode(),
+ * PMA_displayTableNavigation(), PMA_displayTableHeaders(),
+ * PMA_displayTableBody(), PMA_displayResultsOperations()
+ */
+function PMA_displayResultsOperations($the_disp_mode, $analyzed_sql) {
+ global $db, $table, $sql_query, $unlim_num_rows;
+
+ $header_shown = FALSE;
+ $header = '<fieldset><legend>' . $GLOBALS['strQueryResultsOperations'] . '</legend>';
+
+ if ($the_disp_mode[6] == '1' || $the_disp_mode[9] == '1') {
+ // Displays "printable view" link if required
+ if ($the_disp_mode[9] == '1') {
+
+ if (!$header_shown) {
+ echo $header;
+ $header_shown = TRUE;
+ }
+
+ $_url_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'printview' => '1',
+ 'sql_query' => $sql_query,
+ );
+ $url_query = PMA_generate_common_url($_url_params);
+
+ echo PMA_linkOrButton(
+ 'sql.php' . $url_query,
+ PMA_getIcon('b_print.png', $GLOBALS['strPrintView'], false, true),
+ '', true, true, 'print_view') . "\n";
+
+ if ($_SESSION['userconf']['display_text']) {
+ $_url_params['display_text'] = 'F';
+ echo PMA_linkOrButton(
+ 'sql.php' . PMA_generate_common_url($_url_params),
+ PMA_getIcon('b_print.png', $GLOBALS['strPrintViewFull'], false, true),
+ '', true, true, 'print_view') . "\n";
+ unset($_url_params['display_text']);
+ }
+ } // end displays "printable view"
+ }
+
+ // Export link
+ // (the url_query has extra parameters that won't be used to export)
+ // (the single_table parameter is used in display_export.lib.php
+ // to hide the SQL and the structure export dialogs)
+ // If the parser found a PROCEDURE clause
+ // (most probably PROCEDURE ANALYSE()) it makes no sense to
+ // display the Export link).
+ if (isset($analyzed_sql[0]) && $analyzed_sql[0]['querytype'] == 'SELECT' && !isset($printview) && ! isset($analyzed_sql[0]['queryflags']['procedure'])) {
+ if (isset($analyzed_sql[0]['table_ref'][0]['table_true_name']) && !isset($analyzed_sql[0]['table_ref'][1]['table_true_name'])) {
+ $_url_params['single_table'] = 'true';
+ }
+ if (!$header_shown) {
+ echo $header;
+ $header_shown = TRUE;
+ }
+ $_url_params['unlim_num_rows'] = $unlim_num_rows;
+ echo PMA_linkOrButton(
+ 'tbl_export.php' . PMA_generate_common_url($_url_params),
+ PMA_getIcon('b_tblexport.png', $GLOBALS['strExport'], false, true),
+ '', true, true, '') . "\n";
+ }
+
+ // CREATE VIEW
+ /**
+ *
+ * @todo detect privileges to create a view
+ * (but see 2006-01-19 note in display_create_table.lib.php,
+ * I think we cannot detect db-specific privileges reliably)
+ * Note: we don't display a Create view link if we found a PROCEDURE clause
+ */
+ if (!$header_shown) {
+ echo $header;
+ $header_shown = TRUE;
+ }
+ if (! isset($analyzed_sql[0]['queryflags']['procedure'])) {
+ echo PMA_linkOrButton(
+ 'view_create.php' . $url_query,
+ PMA_getIcon('b_views.png', 'CREATE VIEW', false, true),
+ '', true, true, '') . "\n";
+ }
+ if ($header_shown) {
+ echo '</fieldset><br />';
+ }
+}
+
+/**
+ * Verifies what to do with non-printable contents (binary or BLOB)
+ * in Browse mode.
+ *
+ * @uses is_null()
+ * @uses isset()
+ * @uses strlen()
+ * @uses PMA_formatByteDown()
+ * @uses strpos()
+ * @uses str_replace()
+ * @param string $category BLOB|BINARY
+ * @param string $content the binary content
+ * @param string $transform_function
+ * @param string $transform_options
+ * @param string $default_function
+ * @param object $meta the meta-information about this field
+ * @return mixed string or float
+ */
+function PMA_handle_non_printable_contents($category, $content, $transform_function, $transform_options, $default_function, $meta) {
+ $result = '[' . $category;
+ if (is_null($content)) {
+ $result .= ' - NULL';
+ $size = 0;
+ } elseif (isset($content)) {
+ $size = strlen($content);
+ $display_size = PMA_formatByteDown($size, 3, 1);
+ $result .= ' - '. $display_size[0] . $display_size[1];
+ }
+ $result .= ']';
+
+ if (strpos($transform_function, 'octetstream')) {
+ $result = $content;
+ }
+ if ($size > 0) {
+ if ($default_function != $transform_function) {
+ $result = $transform_function($result, $transform_options, $meta);
+ } else {
+ $result = $default_function($result, array(), $meta);
+ if (stristr($meta->type, 'BLOB') && $_SESSION['userconf']['display_blob']) {
+ // in this case, restart from the original $content
+ $result = PMA_replace_binary_contents($content);
+ }
+ }
+ }
+ return($result);
+}
+
+/**
+ * Prepares the displayable content of a data cell in Browse mode,
+ * taking into account foreign key description field and transformations
+ *
+ * @uses is_array()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_row()
+ * @uses $GLOBALS['strLinkNotFound']
+ * @uses PMA_DBI_free_result()
+ * @uses $GLOBALS['printview']
+ * @uses htmlspecialchars()
+ * @uses PMA_generate_common_url()
+ * @param string $mouse_events
+ * @param string $class
+ * @param string $condition_field
+ * @param string $analyzed_sql
+ * @param object $meta the meta-information about this field
+ * @param string $map
+ * @param string $data
+ * @param string $transform_function
+ * @param string $default_function
+ * @param string $nowrap
+ * @param string $where_comparison
+ * @return string formatted data
+ */
+function PMA_prepare_row_data($mouse_events, $class, $condition_field, $analyzed_sql, $meta, $map, $data, $transform_function, $default_function, $nowrap, $where_comparison) {
+
+ // continue the <td> tag started before calling this function:
+ $result = $mouse_events . ' class="' . $class . ($condition_field ? ' condition' : '') . $nowrap . '">';
+
+ if (isset($analyzed_sql[0]['select_expr']) && is_array($analyzed_sql[0]['select_expr'])) {
+ foreach ($analyzed_sql[0]['select_expr'] AS $select_expr_position => $select_expr) {
+ $alias = $analyzed_sql[0]['select_expr'][$select_expr_position]['alias'];
+ if (isset($alias) && strlen($alias)) {
+ $true_column = $analyzed_sql[0]['select_expr'][$select_expr_position]['column'];
+ if ($alias == $meta->name) {
+ // this change in the parameter does not matter
+ // outside of the function
+ $meta->name = $true_column;
+ } // end if
+ } // end if
+ } // end foreach
+ } // end if
+
+ if (isset($map[$meta->name])) {
+ // Field to display from the foreign table?
+ if (isset($map[$meta->name][2]) && strlen($map[$meta->name][2])) {
+ $dispsql = 'SELECT ' . PMA_backquote($map[$meta->name][2])
+ . ' FROM ' . PMA_backquote($map[$meta->name][3])
+ . '.' . PMA_backquote($map[$meta->name][0])
+ . ' WHERE ' . PMA_backquote($map[$meta->name][1])
+ . $where_comparison;
+ $dispresult = PMA_DBI_try_query($dispsql, null, PMA_DBI_QUERY_STORE);
+ if ($dispresult && PMA_DBI_num_rows($dispresult) > 0) {
+ list($dispval) = PMA_DBI_fetch_row($dispresult, 0);
+ } else {
+ $dispval = $GLOBALS['strLinkNotFound'];
+ }
+ @PMA_DBI_free_result($dispresult);
+ } else {
+ $dispval = '';
+ } // end if... else...
+
+ if (isset($GLOBALS['printview']) && $GLOBALS['printview'] == '1') {
+ $result .= ($transform_function != $default_function ? $transform_function($data, $transform_options, $meta) : $transform_function($data, array(), $meta)) . ' <code>[-&gt;' . $dispval . ']</code>';
+ } else {
+
+ if ('K' == $_SESSION['userconf']['relational_display']) {
+ // user chose "relational key" in the display options, so
+ // the title contains the display field
+ $title = (! empty($dispval))? ' title="' . htmlspecialchars($dispval) . '"' : '';
+ } else {
+ $title = ' title="' . htmlspecialchars($data) . '"';
+ }
+
+ $_url_params = array(
+ 'db' => $map[$meta->name][3],
+ 'table' => $map[$meta->name][0],
+ 'pos' => '0',
+ 'sql_query' => 'SELECT * FROM '
+ . PMA_backquote($map[$meta->name][3]) . '.' . PMA_backquote($map[$meta->name][0])
+ . ' WHERE ' . PMA_backquote($map[$meta->name][1])
+ . $where_comparison,
+ );
+ $result .= '<a href="sql.php' . PMA_generate_common_url($_url_params)
+ . '"' . $title . '>';
+
+ if ($transform_function != $default_function) {
+ // always apply a transformation on the real data,
+ // not on the display field
+ $result .= $transform_function($data, $transform_options, $meta);
+ } else {
+ if ('D' == $_SESSION['userconf']['relational_display']) {
+ // user chose "relational display field" in the
+ // display options, so show display field in the cell
+ $result .= $transform_function($dispval, array(), $meta);
+ } else {
+ // otherwise display data in the cell
+ $result .= $transform_function($data, array(), $meta);
+ }
+ }
+ $result .= '</a>';
+ }
+ } else {
+ $result .= ($transform_function != $default_function ? $transform_function($data, $transform_options, $meta) : $transform_function($data, array(), $meta));
+ }
+ $result .= '</td>' . "\n";
+
+ return $result;
+}
+?>
diff --git a/libraries/display_tbl_links.lib.php b/libraries/display_tbl_links.lib.php
new file mode 100644
index 0000000000..9888b37e30
--- /dev/null
+++ b/libraries/display_tbl_links.lib.php
@@ -0,0 +1,59 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * modified 2004-05-08 by Michael Keck <mail_at_michaelkeck_dot_de>
+ * - bugfix for select all checkboxes
+ * - copy right to left (or left to right) if user click on a check box
+ * - reversed the right modify links: 1. drop, 2. edit, 3. checkbox
+ * - also changes made in js/functions.js
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if ($doWriteModifyAt == 'left') {
+
+ if (!empty($del_url) && $is_display['del_lnk'] != 'kp') {
+ echo ' <td align="center">' . "\n"
+ . ' <input type="checkbox" id="id_rows_to_delete' . $row_no . '" name="rows_to_delete[' . $unique_condition_html . ']"'
+ . ' onclick="copyCheckboxesRange(\'rowsDeleteForm\', \'id_rows_to_delete' . $row_no . '\',\'l\');"'
+ . ' value="' . htmlspecialchars($del_query) . '" ' . (isset($GLOBALS['checkall']) ? 'checked="checked"' : '') . ' />' . "\n"
+ . ' </td>' . "\n";
+ }
+ if (!empty($edit_url)) {
+ echo ' <td align="center">' . "\n"
+ . PMA_linkOrButton($edit_url, $edit_str, '', FALSE)
+ . $bookmark_go
+ . ' </td>' . "\n";
+ }
+ if (!empty($del_url)) {
+ echo ' <td align="center">' . "\n"
+ . PMA_linkOrButton($del_url, $del_str, (isset($js_conf) ? $js_conf : ''), FALSE)
+ . ' </td>' . "\n";
+ }
+} elseif ($doWriteModifyAt == 'right') {
+ if (!empty($del_url)) {
+ echo ' <td align="center">' . "\n"
+ . PMA_linkOrButton($del_url, $del_str, (isset($js_conf) ? $js_conf : ''), FALSE)
+ . ' </td>' . "\n";
+ }
+ if (!empty($edit_url)) {
+ echo ' <td align="center">' . "\n"
+ . PMA_linkOrButton($edit_url, $edit_str, '', FALSE)
+ . $bookmark_go
+ . ' </td>' . "\n";
+ }
+ if (!empty($del_url) && $is_display['del_lnk'] != 'kp') {
+ echo ' <td align="center">' . "\n"
+ . ' <input type="checkbox" id="id_rows_to_delete' . $row_no . 'r" name="rows_to_delete[' . $unique_condition_html . ']"'
+ . ' onclick="copyCheckboxesRange(\'rowsDeleteForm\', \'id_rows_to_delete' . $row_no . '\',\'r\');"'
+ . ' value="' . htmlspecialchars($del_query) . '" ' . (isset($GLOBALS['checkall']) ? 'checked="checked"' : '') . ' />' . "\n"
+ . ' </td>' . "\n";
+ }
+}
+?>
diff --git a/libraries/engines/bdb.lib.php b/libraries/engines/bdb.lib.php
new file mode 100644
index 0000000000..2b37e1b228
--- /dev/null
+++ b/libraries/engines/bdb.lib.php
@@ -0,0 +1,75 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+class PMA_StorageEngine_bdb extends PMA_StorageEngine
+{
+ /**
+ * @return array variable names
+ */
+ function getVariables()
+ {
+ return array(
+ 'version_bdb' => array(
+ 'title' => $GLOBALS['strVersionInformation'],
+ ),
+ 'bdb_cache_size' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'bdb_home' => array(
+ ),
+ 'bdb_log_buffer_size' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'bdb_logdir' => array(
+ ),
+ 'bdb_max_lock' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'bdb_shared_data' => array(
+ ),
+ 'bdb_tmpdir' => array(
+ ),
+ 'bdb_data_direct' => array(
+ ),
+ 'bdb_lock_detect' => array(
+ ),
+ 'bdb_log_direct' => array(
+ ),
+ 'bdb_no_recover' => array(
+ ),
+ 'bdb_no_sync' => array(
+ ),
+ 'skip_sync_bdb_logs' => array(
+ ),
+ 'sync_bdb_logs' => array(
+ ),
+ );
+ }
+
+ /**
+ * @return string LIKE pattern
+ */
+ function getVariablesLikePattern()
+ {
+ return '%bdb%';
+ }
+
+ /**
+ * returns string with filename for the MySQL helppage
+ * about this storage engne
+ *
+ * @return string mysql helppage filename
+ */
+ function getMysqlHelpPage()
+ {
+ return 'bdb';
+ }
+}
+
+?>
diff --git a/libraries/engines/berkeleydb.lib.php b/libraries/engines/berkeleydb.lib.php
new file mode 100644
index 0000000000..5608622458
--- /dev/null
+++ b/libraries/engines/berkeleydb.lib.php
@@ -0,0 +1,16 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+include_once './libraries/engines/bdb.lib.php';
+
+class PMA_StorageEngine_berkeleydb extends PMA_StorageEngine_bdb
+{
+}
+
+?>
diff --git a/libraries/engines/binlog.lib.php b/libraries/engines/binlog.lib.php
new file mode 100644
index 0000000000..e08f0436a4
--- /dev/null
+++ b/libraries/engines/binlog.lib.php
@@ -0,0 +1,24 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+class PMA_StorageEngine_binlog extends PMA_StorageEngine
+{
+ /**
+ * returns string with filename for the MySQL helppage
+ * about this storage engne
+ *
+ * @return string mysql helppage filename
+ */
+ function getMysqlHelpPage()
+ {
+ return 'binary-log';
+ }
+}
+
+?>
diff --git a/libraries/engines/innobase.lib.php b/libraries/engines/innobase.lib.php
new file mode 100644
index 0000000000..69139b2bed
--- /dev/null
+++ b/libraries/engines/innobase.lib.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+include_once './libraries/engines/innodb.lib.php';
+
+/**
+ *
+ */
+class PMA_StorageEngine_innobase extends PMA_StorageEngine_innodb {}
+
+?>
diff --git a/libraries/engines/innodb.lib.php b/libraries/engines/innodb.lib.php
new file mode 100644
index 0000000000..729751274b
--- /dev/null
+++ b/libraries/engines/innodb.lib.php
@@ -0,0 +1,336 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+class PMA_StorageEngine_innodb extends PMA_StorageEngine
+{
+ /**
+ * @uses $GLOBALS['strInnoDBDataHomeDir']
+ * @uses $GLOBALS['strInnoDBDataHomeDirDesc']
+ * @uses $GLOBALS['strInnoDBDataFilePath']
+ * @uses $GLOBALS['strInnoDBAutoextendIncrement']
+ * @uses $GLOBALS['strInnoDBAutoextendIncrementDesc']
+ * @uses $GLOBALS['strInnoDBBufferPoolSize']
+ * @uses $GLOBALS['strInnoDBBufferPoolSizeDesc']
+ * @uses PMA_ENGINE_DETAILS_TYPE_NUMERIC
+ * @uses PMA_ENGINE_DETAILS_TYPE_SIZE
+ * @return array
+ */
+ function getVariables()
+ {
+ return array(
+ 'innodb_data_home_dir' => array(
+ 'title' => $GLOBALS['strInnoDBDataHomeDir'],
+ 'desc' => $GLOBALS['strInnoDBDataHomeDirDesc'],
+ ),
+ 'innodb_data_file_path' => array(
+ 'title' => $GLOBALS['strInnoDBDataFilePath'],
+ ),
+ 'innodb_autoextend_increment' => array(
+ 'title' => $GLOBALS['strInnoDBAutoextendIncrement'],
+ 'desc' => $GLOBALS['strInnoDBAutoextendIncrementDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_buffer_pool_size' => array(
+ 'title' => $GLOBALS['strInnoDBBufferPoolSize'],
+ 'desc' => $GLOBALS['strInnoDBBufferPoolSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'innodb_additional_mem_pool_size' => array(
+ 'title' => 'innodb_additional_mem_pool_size',
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'innodb_buffer_pool_awe_mem_mb' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'innodb_checksums' => array(
+ ),
+ 'innodb_commit_concurrency' => array(
+ ),
+ 'innodb_concurrency_tickets' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_doublewrite' => array(
+ ),
+ 'innodb_fast_shutdown' => array(
+ ),
+ 'innodb_file_io_threads' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_file_per_table' => array(
+ ),
+ 'innodb_flush_log_at_trx_commit' => array(
+ ),
+ 'innodb_flush_method' => array(
+ ),
+ 'innodb_force_recovery' => array(
+ ),
+ 'innodb_lock_wait_timeout' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_locks_unsafe_for_binlog' => array(
+ ),
+ 'innodb_log_arch_dir' => array(
+ ),
+ 'innodb_log_archive' => array(
+ ),
+ 'innodb_log_buffer_size' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'innodb_log_file_size' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'innodb_log_files_in_group' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_log_group_home_dir' => array(
+ ),
+ 'innodb_max_dirty_pages_pct' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_max_purge_lag' => array(
+ ),
+ 'innodb_mirrored_log_groups' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_open_files' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_support_xa' => array(
+ ),
+ 'innodb_sync_spin_loops' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_table_locks' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_thread_concurrency' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'innodb_thread_sleep_delay' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ );
+ }
+
+ /**
+ * @return string SQL query LIKE pattern
+ */
+ function getVariablesLikePattern()
+ {
+ return 'innodb\\_%';
+ }
+
+ /**
+ * @uses $this->support
+ * @uses PMA_ENGINE_SUPPORT_YES
+ * @uses $GLOBALS['strBufferPool']
+ * @uses $GLOBALS['strInnodbStat']
+ * @return array detail pages
+ */
+ function getInfoPages()
+ {
+ if ($this->support < PMA_ENGINE_SUPPORT_YES) {
+ return array();
+ }
+ $pages = array();
+ $pages['Bufferpool'] = $GLOBALS['strBufferPool'];
+ $pages['Status'] = $GLOBALS['strInnodbStat'];
+ return $pages;
+ }
+
+ /**
+ * returns html tables with stats over inno db buffer pool
+ *
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_formatNumber()
+ * @uses PMA_formatByteDown()
+ * @uses $GLOBALS['strBufferPoolUsage']
+ * @uses $GLOBALS['strTotalUC']
+ * @uses $GLOBALS['strInnoDBPages']
+ * @uses $GLOBALS['strFreePages']
+ * @uses $GLOBALS['strDirtyPages']
+ * @uses $GLOBALS['strDataPages']
+ * @uses $GLOBALS['strPagesToBeFlushed']
+ * @uses $GLOBALS['strBusyPages']
+ * @uses $GLOBALS['strLatchedPages']
+ * @uses $GLOBALS['strBufferPoolActivity']
+ * @uses $GLOBALS['strReadRequests']
+ * @uses $GLOBALS['strWriteRequests']
+ * @uses $GLOBALS['strBufferReadMisses']
+ * @uses $GLOBALS['strBufferWriteWaits']
+ * @uses $GLOBALS['strBufferReadMissesInPercent']
+ * @uses $GLOBALS['strBufferWriteWaitsInPercent']
+ * @uses join()
+ * @uses htmlspecialchars()
+ * @uses PMA_formatNumber()
+ * @return string html table with stats
+ */
+ function getPageBufferpool()
+ {
+ // rabus: The following query is only possible because we know
+ // that we are on MySQL 5 here (checked above)!
+ // side note: I love MySQL 5 for this. :-)
+ $sql = '
+ SHOW STATUS
+ WHERE Variable_name LIKE \'Innodb\\_buffer\\_pool\\_%\'
+ OR Variable_name = \'Innodb_page_size\';';
+ $status = PMA_DBI_fetch_result($sql, 0, 1);
+
+ $output = '<table class="data" id="table_innodb_bufferpool_usage">' . "\n"
+ . ' <caption class="tblHeaders">' . "\n"
+ . ' ' . $GLOBALS['strBufferPoolUsage'] . "\n"
+ . ' </caption>' . "\n"
+ . ' <tfoot>' . "\n"
+ . ' <tr>' . "\n"
+ . ' <th colspan="2">' . "\n"
+ . ' ' . $GLOBALS['strTotalUC'] . "\n"
+ . ' : ' . PMA_formatNumber(
+ $status['Innodb_buffer_pool_pages_total'], 0)
+ . '&nbsp;' . $GLOBALS['strInnoDBPages']
+ . ' / '
+ . join('&nbsp;',
+ PMA_formatByteDown($status['Innodb_buffer_pool_pages_total'] * $status['Innodb_page_size'])) . "\n"
+ . ' </th>' . "\n"
+ . ' </tr>' . "\n"
+ . ' </tfoot>' . "\n"
+ . ' <tbody>' . "\n"
+ . ' <tr class="odd">' . "\n"
+ . ' <th>' . $GLOBALS['strFreePages'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_pages_free'], 0)
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="even">' . "\n"
+ . ' <th>' . $GLOBALS['strDirtyPages'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_pages_dirty'], 0)
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="odd">' . "\n"
+ . ' <th>' . $GLOBALS['strDataPages'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_pages_data'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="even">' . "\n"
+ . ' <th>' . $GLOBALS['strPagesToBeFlushed'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_pages_flushed'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="odd">' . "\n"
+ . ' <th>' . $GLOBALS['strBusyPages'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_pages_misc'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="even">' . "\n"
+ . ' <th>' . $GLOBALS['strLatchedPages'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_pages_latched'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' </tbody>' . "\n"
+ . '</table>' . "\n\n"
+ . '<table class="data" id="table_innodb_bufferpool_activity">' . "\n"
+ . ' <caption class="tblHeaders">' . "\n"
+ . ' ' . $GLOBALS['strBufferPoolActivity'] . "\n"
+ . ' </caption>' . "\n"
+ . ' <tbody>' . "\n"
+ . ' <tr class="odd">' . "\n"
+ . ' <th>' . $GLOBALS['strReadRequests'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_read_requests'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="even">' . "\n"
+ . ' <th>' . $GLOBALS['strWriteRequests'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_write_requests'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="odd">' . "\n"
+ . ' <th>' . $GLOBALS['strBufferReadMisses'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_reads'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="even">' . "\n"
+ . ' <th>' . $GLOBALS['strBufferWriteWaits'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . PMA_formatNumber($status['Innodb_buffer_pool_wait_free'], 0) . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="odd">' . "\n"
+ . ' <th>' . $GLOBALS['strBufferReadMissesInPercent'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . ($status['Innodb_buffer_pool_read_requests'] == 0
+ ? '---'
+ : htmlspecialchars(PMA_formatNumber($status['Innodb_buffer_pool_reads'] * 100 / $status['Innodb_buffer_pool_read_requests'], 3, 2)) . ' %') . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' <tr class="even">' . "\n"
+ . ' <th>' . $GLOBALS['strBufferWriteWaitsInPercent'] . '</th>' . "\n"
+ . ' <td class="value">'
+ . ($status['Innodb_buffer_pool_write_requests'] == 0
+ ? '---'
+ : htmlspecialchars(PMA_formatNumber($status['Innodb_buffer_pool_wait_free'] * 100 / $status['Innodb_buffer_pool_write_requests'], 3, 2)) . ' %') . "\n"
+ . '</td>' . "\n"
+ . ' </tr>' . "\n"
+ . ' </tbody>' . "\n"
+ . '</table>' . "\n";
+ return $output;
+ }
+
+ /**
+ * returns InnoDB status
+ *
+ * @uses htmlspecialchars()
+ * @uses PMA_DBI_fetch_value()
+ * @return string result of SHOW INNODB STATUS inside pre tags
+ */
+ function getPageStatus()
+ {
+ return '<pre id="pre_innodb_status">' . "\n"
+ . htmlspecialchars(PMA_DBI_fetch_value('SHOW INNODB STATUS;')) . "\n"
+ . '</pre>' . "\n";
+ }
+
+ /**
+ * returns content for page $id
+ *
+ * @uses $this->getInfoPages()
+ * @uses array_key_exists()
+ * @param string $id page id
+ * @return string html output
+ */
+ function getPage($id)
+ {
+ if (! array_key_exists($id, $this->getInfoPages())) {
+ return false;
+ }
+
+ $id = 'getPage' . $id;
+
+ return $this->$id();
+ }
+
+ /**
+ * returns string with filename for the MySQL helppage
+ * about this storage engne
+ *
+ * @return string mysql helppage filename
+ */
+ function getMysqlHelpPage()
+ {
+ return 'innodb';
+ }
+}
+
+?>
diff --git a/libraries/engines/memory.lib.php b/libraries/engines/memory.lib.php
new file mode 100644
index 0000000000..a826a3881b
--- /dev/null
+++ b/libraries/engines/memory.lib.php
@@ -0,0 +1,27 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ * the MEMORY (HEAP) storage engine
+ */
+class PMA_StorageEngine_memory extends PMA_StorageEngine
+{
+ /**
+ * returns array with variable names dedicated to MyISAM storage engine
+ *
+ * @return array variable names
+ */
+ function getVariables()
+ {
+ return array(
+ 'max_heap_table_size' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ );
+ }
+}
+
+?>
diff --git a/libraries/engines/merge.lib.php b/libraries/engines/merge.lib.php
new file mode 100644
index 0000000000..0a1d709681
--- /dev/null
+++ b/libraries/engines/merge.lib.php
@@ -0,0 +1,14 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+class PMA_StorageEngine_merge extends PMA_StorageEngine
+{
+}
+
+?>
diff --git a/libraries/engines/mrg_myisam.lib.php b/libraries/engines/mrg_myisam.lib.php
new file mode 100644
index 0000000000..695a6afd43
--- /dev/null
+++ b/libraries/engines/mrg_myisam.lib.php
@@ -0,0 +1,29 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+include_once './libraries/engines/merge.lib.php';
+
+/**
+ *
+ */
+class PMA_StorageEngine_mrg_myisam extends PMA_StorageEngine_merge
+{
+ /**
+ * returns string with filename for the MySQL helppage
+ * about this storage engne
+ *
+ * @return string mysql helppage filename
+ */
+ function getMysqlHelpPage()
+ {
+ return 'merge';
+ }
+}
+
+?>
diff --git a/libraries/engines/myisam.lib.php b/libraries/engines/myisam.lib.php
new file mode 100644
index 0000000000..8ec7a60a4f
--- /dev/null
+++ b/libraries/engines/myisam.lib.php
@@ -0,0 +1,62 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ * the MyISAM storage engine
+ */
+class PMA_StorageEngine_myisam extends PMA_StorageEngine
+{
+ /**
+ * returns array with variable names dedicated to MyISAM storage engine
+ *
+ * @return array variable names
+ */
+ function getVariables()
+ {
+ return array(
+ 'myisam_data_pointer_size' => array(
+ 'title' => $GLOBALS['strMyISAMDataPointerSize'],
+ 'desc' => $GLOBALS['strMyISAMDataPointerSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'myisam_recover_options' => array(
+ 'title' => $GLOBALS['strMyISAMRecoverOptions'],
+ 'desc' => $GLOBALS['strMyISAMRecoverOptionsDesc'],
+ ),
+ 'myisam_max_sort_file_size' => array(
+ 'title' => $GLOBALS['strMyISAMMaxSortFileSize'],
+ 'desc' => $GLOBALS['strMyISAMMaxSortFileSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'myisam_max_extra_sort_file_size' => array(
+ 'title' => $GLOBALS['strMyISAMMaxExtraSortFileSize'],
+ 'desc' => $GLOBALS['strMyISAMMaxExtraSortFileSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'myisam_repair_threads' => array(
+ 'title' => $GLOBALS['strMyISAMRepairThreads'],
+ 'desc' => $GLOBALS['strMyISAMRepairThreadsDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC,
+ ),
+ 'myisam_sort_buffer_size' => array(
+ 'title' => $GLOBALS['strMyISAMSortBufferSize'],
+ 'desc' => $GLOBALS['strMyISAMSortBufferSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'myisam_stats_method' => array(
+ ),
+ 'delay_key_write' => array(
+ ),
+ 'bulk_insert_buffer_size' => array(
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE,
+ ),
+ 'skip_external_locking' => array(
+ ),
+ );
+ }
+}
+
+?>
diff --git a/libraries/engines/ndbcluster.lib.php b/libraries/engines/ndbcluster.lib.php
new file mode 100644
index 0000000000..59ea133d7e
--- /dev/null
+++ b/libraries/engines/ndbcluster.lib.php
@@ -0,0 +1,43 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+class PMA_StorageEngine_ndbcluster extends PMA_StorageEngine
+{
+ /**
+ * @return array
+ */
+ function getVariables()
+ {
+ return array(
+ 'ndb_connectstring' => array(
+ ),
+ );
+ }
+
+ /**
+ * @return string SQL query LIKE pattern
+ */
+ function getVariablesLikePattern()
+ {
+ return 'ndb\\_%';
+ }
+
+ /**
+ * returns string with filename for the MySQL helppage
+ * about this storage engne
+ *
+ * @return string mysql helppage filename
+ */
+ function getMysqlHelpPage()
+ {
+ return 'ndbcluster';
+ }
+}
+
+?>
diff --git a/libraries/engines/pbxt.lib.php b/libraries/engines/pbxt.lib.php
new file mode 100644
index 0000000000..66e5c7b4a3
--- /dev/null
+++ b/libraries/engines/pbxt.lib.php
@@ -0,0 +1,84 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+
+/**
+ * the MyISAM storage engine
+ */
+class PMA_StorageEngine_pbxt extends PMA_StorageEngine
+{
+ /**
+ * returns array with variable names dedicated to PBXT storage engine
+ *
+ * @return array variable names
+ */
+ function getVariables()
+ {
+ return array(
+ 'pbxt_index_cache_size' => array(
+ 'title' => $GLOBALS['strPBXTIndexCacheSize'],
+ 'desc' => $GLOBALS['strPBXTIndexCacheSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_record_cache_size' => array(
+ 'title' => $GLOBALS['strPBXTRecordCacheSize'],
+ 'desc' => $GLOBALS['strPBXTRecordCacheSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_log_cache_size' => array(
+ 'title' => $GLOBALS['strPBXTLogCacheSize'],
+ 'desc' => $GLOBALS['strPBXTLogCacheSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_log_file_threshold' => array(
+ 'title' => $GLOBALS['strPBXTLogFileThreshold'],
+ 'desc' => $GLOBALS['strPBXTLogFileThresholdDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_transaction_buffer_size' => array(
+ 'title' => $GLOBALS['strPBXTTransactionBufferSize'],
+ 'desc' => $GLOBALS['strPBXTTransactionBufferSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_checkpoint_frequency' => array(
+ 'title' => $GLOBALS['strPBXTCheckpointFrequency'],
+ 'desc' => $GLOBALS['strPBXTCheckpointFrequencyDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_data_log_threshold' => array(
+ 'title' => $GLOBALS['strPBXTDataLogThreshold'],
+ 'desc' => $GLOBALS['strPBXTDataLogThresholdDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_garbage_threshold' => array(
+ 'title' => $GLOBALS['strPBXTGarbageThreshold'],
+ 'desc' => $GLOBALS['strPBXTGarbageThresholdDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC
+ ),
+ 'pbxt_log_buffer_size' => array(
+ 'title' => $GLOBALS['strPBXTLogBufferSize'],
+ 'desc' => $GLOBALS['strPBXTLogBufferSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_data_file_grow_size' => array(
+ 'title' => $GLOBALS['strPBXTDataFileGrowSize'],
+ 'desc' => $GLOBALS['strPBXTDataFileGrowSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_row_file_grow_size' => array(
+ 'title' => $GLOBALS['strPBXTRowFileGrowSize'],
+ 'desc' => $GLOBALS['strPBXTRowFileGrowSizeDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE
+ ),
+ 'pbxt_log_file_count' => array(
+ 'title' => $GLOBALS['strPBXTLogFileCount'],
+ 'desc' => $GLOBALS['strPBXTLogFileCountDesc'],
+ 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC
+ ),
+ );
+ }
+}
+
+?>
diff --git a/libraries/export/codegen.php b/libraries/export/codegen.php
new file mode 100644
index 0000000000..7a48739604
--- /dev/null
+++ b/libraries/export/codegen.php
@@ -0,0 +1,305 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build NHibernate dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+// this gets executed twice so avoid a notice
+if (! defined('CG_FORMAT_NHIBERNATE_CS')) {
+ define("CG_FORMAT_NHIBERNATE_CS", "NHibernate C# DO");
+ define("CG_FORMAT_NHIBERNATE_XML", "NHibernate XML");
+
+ define("CG_HANDLER_NHIBERNATE_CS_BODY", "handleNHibernateCSBody");
+ define("CG_HANDLER_NHIBERNATE_XML_BODY", "handleNHibernateXMLBody");
+}
+
+$CG_FORMATS = array(CG_FORMAT_NHIBERNATE_CS, CG_FORMAT_NHIBERNATE_XML);
+$CG_HANDLERS = array(CG_HANDLER_NHIBERNATE_CS_BODY, CG_HANDLER_NHIBERNATE_XML_BODY);
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['codegen'] = array(
+ 'text' => 'CodeGen',
+ 'extension' => 'cs',
+ 'mime_type' => 'text/cs',
+ 'options' => array(
+ array('type' => 'hidden', 'name' => 'data'),
+ array('type' => 'select', 'name' => 'format', 'text' => 'strFormat', 'values' => $CG_FORMATS),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Set of functions used to build exports of tables
+ */
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter()
+{
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader()
+{
+ return TRUE;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in NHibernate format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ global $CG_FORMATS, $CG_HANDLERS;
+ $format = cgGetOption("format");
+ $index = array_search($format, $CG_FORMATS);
+ if ($index >= 0)
+ return PMA_exportOutputHandler($CG_HANDLERS[$index]($db, $table, $crlf));
+ return PMA_exportOutputHandler(sprintf("%s is not supported.", $format));
+}
+
+class TableProperty
+{
+ public $name;
+ public $type;
+ public $nullable;
+ public $key;
+ public $defaultValue;
+ public $ext;
+ function __construct($row)
+ {
+ $this->name = trim($row[0]);
+ $this->type = trim($row[1]);
+ $this->nullable = trim($row[2]);
+ $this->key = trim($row[3]);
+ $this->defaultValue = trim($row[4]);
+ $this->ext = trim($row[5]);
+ }
+ function getPureType()
+ {
+ $pos=strpos($this->type, "(");
+ if ($pos > 0)
+ return substr($this->type, 0, $pos);
+ return $this->type;
+ }
+ function isNotNull()
+ {
+ return $this->nullable == "NO" ? "true" : "false";
+ }
+ function isUnique()
+ {
+ return $this->key == "PRI" || $this->key == "UNI" ? "true" : "false";
+ }
+ function getDotNetPrimitiveType()
+ {
+ if (strpos($this->type, "int") === 0) return "int";
+ if (strpos($this->type, "long") === 0) return "long";
+ if (strpos($this->type, "char") === 0) return "string";
+ if (strpos($this->type, "varchar") === 0) return "string";
+ if (strpos($this->type, "text") === 0) return "string";
+ if (strpos($this->type, "longtext") === 0) return "string";
+ if (strpos($this->type, "tinyint") === 0) return "bool";
+ if (strpos($this->type, "datetime") === 0) return "DateTime";
+ return "unknown";
+ }
+ function getDotNetObjectType()
+ {
+ if (strpos($this->type, "int") === 0) return "Int32";
+ if (strpos($this->type, "long") === 0) return "Long";
+ if (strpos($this->type, "char") === 0) return "String";
+ if (strpos($this->type, "varchar") === 0) return "String";
+ if (strpos($this->type, "text") === 0) return "String";
+ if (strpos($this->type, "longtext") === 0) return "String";
+ if (strpos($this->type, "tinyint") === 0) return "Boolean";
+ if (strpos($this->type, "datetime") === 0) return "DateTime";
+ return "Unknown";
+ }
+ function getIndexName()
+ {
+ if (strlen($this->key)>0)
+ return "index=\"" . $this->name . "\"";
+ return "";
+ }
+ function isPK()
+ {
+ return $this->key=="PRI";
+ }
+ function format($pattern)
+ {
+ $text=$pattern;
+ $text=str_replace("#name#", $this->name, $text);
+ $text=str_replace("#type#", $this->getPureType(), $text);
+ $text=str_replace("#notNull#", $this->isNotNull(), $text);
+ $text=str_replace("#unique#", $this->isUnique(), $text);
+ $text=str_replace("#ucfirstName#", ucfirst($this->name), $text);
+ $text=str_replace("#dotNetPrimitiveType#", $this->getDotNetPrimitiveType(), $text);
+ $text=str_replace("#dotNetObjectType#", $this->getDotNetObjectType(), $text);
+ $text=str_replace("#indexName#", $this->getIndexName(), $text);
+ return $text;
+ }
+}
+
+ function handleNHibernateCSBody($db, $table, $crlf)
+ {
+ $lines=array();
+ $result=PMA_DBI_query(sprintf("DESC %s.%s", PMA_backquote($db), PMA_backquote($table)));
+ if ($result)
+ {
+ $tableProperties=array();
+ while ($row = PMA_DBI_fetch_row($result))
+ $tableProperties[] = new TableProperty($row);
+ $lines[] = "using System;";
+ $lines[] = "using System.Collections;";
+ $lines[] = "using System.Collections.Generic;";
+ $lines[] = "using System.Text;";
+ $lines[] = "namespace ".ucfirst($db);
+ $lines[] = "{";
+ $lines[] = " #region ".ucfirst($table);
+ $lines[] = " public class ".ucfirst($table);
+ $lines[] = " {";
+ $lines[] = " #region Member Variables";
+ foreach ($tableProperties as $tablePropertie)
+ $lines[] = $tablePropertie->format(" protected #dotNetPrimitiveType# _#name#;");
+ $lines[] = " #endregion";
+ $lines[] = " #region Constructors";
+ $lines[] = " public ".ucfirst($table)."() { }";
+ $temp = array();
+ foreach ($tableProperties as $tablePropertie)
+ if (! $tablePropertie->isPK())
+ $temp[] = $tablePropertie->format("#dotNetPrimitiveType# #name#");
+ $lines[] = " public ".ucfirst($table)."(".implode(", ", $temp).")";
+ $lines[] = " {";
+ foreach ($tableProperties as $tablePropertie)
+ if (! $tablePropertie->isPK())
+ $lines[] = $tablePropertie->format(" this._#name#=#name#;");
+ $lines[] = " }";
+ $lines[] = " #endregion";
+ $lines[] = " #region Public Properties";
+ foreach ($tableProperties as $tablePropertie)
+ $lines[] = $tablePropertie->format(" public virtual #dotNetPrimitiveType# _#ucfirstName#\n {\n get {return _#name#;}\n set {_#name#=value;}\n }");
+ $lines[] = " #endregion";
+ $lines[] = " }";
+ $lines[] = " #endregion";
+ $lines[] = "}";
+ PMA_DBI_free_result($result);
+ }
+ return implode("\n", $lines);
+ }
+
+ function handleNHibernateXMLBody($db, $table, $crlf)
+ {
+ $lines=array();
+ $lines[] = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
+ $lines[] = "<hibernate-mapping xmlns=\"urn:nhibernate-mapping-2.2\" namespace=\"".ucfirst($db)."\" assembly=\"".ucfirst($db)."\">";
+ $lines[] = " <class name=\"".ucfirst($table)."\" table=\"".$table."\">";
+ $result = PMA_DBI_query(sprintf("DESC %s.%s", PMA_backquote($db), PMA_backquote($table)));
+ if ($result)
+ {
+ $tableProperties = array();
+ while ($row = PMA_DBI_fetch_row($result))
+ $tableProperties[] = new TableProperty($row);
+ foreach ($tableProperties as $tablePropertie)
+ {
+ if ($tablePropertie->isPK())
+ $lines[] = $tablePropertie->format(" <id name=\"#ucfirstName#\" type=\"#dotNetObjectType#\" unsaved-value=\"0\">\n <column name=\"#name#\" sql-type=\"#type#\" not-null=\"#notNull#\" unique=\"#unique#\" index=\"PRIMARY\"/>\n <generator class=\"native\" />\n </id>");
+ else
+ $lines[] = $tablePropertie->format(" <property name=\"#ucfirstName#\" type=\"#dotNetObjectType#\">\n <column name=\"#name#\" sql-type=\"#type#\" not-null=\"#notNull#\" #indexName#/>\n </property>");
+ }
+ PMA_DBI_free_result($result);
+ }
+ $lines[]=" </class>";
+ $lines[]="</hibernate-mapping>";
+ return implode("\n", $lines);
+ }
+
+ function cgGetOption($optionName)
+ {
+ global $what;
+ return $GLOBALS[$what . "_" . $optionName];
+ }
+}
+?>
diff --git a/libraries/export/csv.php b/libraries/export/csv.php
new file mode 100644
index 0000000000..b1b6b22367
--- /dev/null
+++ b/libraries/export/csv.php
@@ -0,0 +1,217 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Set of functions used to build CSV dumps of tables
+ */
+
+if (isset($plugin_list)) {
+ $plugin_list['csv'] = array(
+ 'text' => 'strStrucCSV',
+ 'extension' => 'csv',
+ 'mime_type' => 'text/comma-separated-values',
+ 'options' => array(
+ array('type' => 'text', 'name' => 'separator', 'text' => 'strFieldsTerminatedBy'),
+ array('type' => 'text', 'name' => 'enclosed', 'text' => 'strFieldsEnclosedBy'),
+ array('type' => 'text', 'name' => 'escaped', 'text' => 'strFieldsEscapedBy'),
+ array('type' => 'text', 'name' => 'terminated', 'text' => 'strLinesTerminatedBy'),
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames'),
+ array('type' => 'hidden', 'name' => 'data'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ global $what;
+ global $csv_terminated;
+ global $csv_separator;
+ global $csv_enclosed;
+ global $csv_escaped;
+
+ // Here we just prepare some values for export
+ if ($what == 'excel') {
+ $csv_terminated = "\015\012";
+ $csv_separator = isset($GLOBALS['excel_edition']) && $GLOBALS['excel_edition'] == 'mac' ? ';' : ',';
+ $csv_enclosed = '"';
+ $csv_escaped = '"';
+ if (isset($GLOBALS['excel_columns'])) {
+ $GLOBALS['csv_columns'] = 'yes';
+ }
+ } else {
+ if (empty($csv_terminated) || strtolower($csv_terminated) == 'auto') {
+ $csv_terminated = $GLOBALS['crlf'];
+ } else {
+ $csv_terminated = str_replace('\\r', "\015", $csv_terminated);
+ $csv_terminated = str_replace('\\n', "\012", $csv_terminated);
+ $csv_terminated = str_replace('\\t', "\011", $csv_terminated);
+ } // end if
+ $csv_separator = str_replace('\\t', "\011", $csv_separator);
+ }
+ return TRUE;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+ global $what;
+ global $csv_terminated;
+ global $csv_separator;
+ global $csv_enclosed;
+ global $csv_escaped;
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS['csv_columns'])) {
+ $schema_insert = '';
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ if ($csv_enclosed == '') {
+ $schema_insert .= stripslashes(PMA_DBI_field_name($result, $i));
+ } else {
+ $schema_insert .= $csv_enclosed
+ . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, stripslashes(PMA_DBI_field_name($result, $i)))
+ . $csv_enclosed;
+ }
+ $schema_insert .= $csv_separator;
+ } // end for
+ $schema_insert =trim(substr($schema_insert, 0, -1));
+ if (!PMA_exportOutputHandler($schema_insert . $csv_terminated)) {
+ return FALSE;
+ }
+ } // end if
+
+ // Format the data
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $schema_insert = '';
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $schema_insert .= $GLOBALS[$what . '_null'];
+ } elseif ($row[$j] == '0' || $row[$j] != '') {
+ // loic1 : always enclose fields
+ if ($what == 'excel') {
+ $row[$j] = ereg_replace("\015(\012)?", "\012", $row[$j]);
+ }
+ if ($csv_enclosed == '') {
+ $schema_insert .= $row[$j];
+ } else {
+ // also double the escape string if found in the data
+ if ('csv' == $what) {
+ $schema_insert .= $csv_enclosed
+ . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, str_replace($csv_escaped, $csv_escaped . $csv_escaped, $row[$j]))
+ . $csv_enclosed;
+ } else {
+ // for excel, avoid a problem when a field contains
+ // double quotes
+ $schema_insert .= $csv_enclosed
+ . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j])
+ . $csv_enclosed;
+ }
+ }
+ } else {
+ $schema_insert .= '';
+ }
+ if ($j < $fields_cnt-1) {
+ $schema_insert .= $csv_separator;
+ }
+ } // end for
+
+ if (!PMA_exportOutputHandler($schema_insert . $csv_terminated)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ return TRUE;
+} // end of the 'PMA_getTableCsv()' function
+
+}
+?>
diff --git a/libraries/export/excel.php b/libraries/export/excel.php
new file mode 100644
index 0000000000..5df0b3fe39
--- /dev/null
+++ b/libraries/export/excel.php
@@ -0,0 +1,32 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build CSV dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['excel'] = array(
+ 'text' => 'strStrucExcelCSV',
+ 'extension' => 'csv',
+ 'mime_type' => 'text/comma-separated-values',
+ 'options' => array(
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames'),
+ array('type' => 'select', 'name' => 'edition', 'values' => array('win' => 'Windows', 'mac' => 'Excel 2003 / Macintosh'), 'text' => 'strExcelEdition'),
+ array('type' => 'hidden', 'name' => 'data'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+ /* Everything rest is coded in csv plugin */
+ require './libraries/export/csv.php';
+}
+?>
diff --git a/libraries/export/htmlexcel.php b/libraries/export/htmlexcel.php
new file mode 100644
index 0000000000..47ddc36b81
--- /dev/null
+++ b/libraries/export/htmlexcel.php
@@ -0,0 +1,195 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build CSV dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['htmlexcel'] = array(
+ 'text' => 'strHTMLExcel',
+ 'extension' => 'xls',
+ 'mime_type' => 'application/vnd.ms-excel',
+ 'force_file' => true,
+ 'options' => array(
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames'),
+ array('type' => 'hidden', 'name' => 'data'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ if (!PMA_exportOutputHandler('
+</table>
+</div>
+</body>
+</html>
+')) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ global $charset, $charset_of_file;
+ if (!PMA_exportOutputHandler('
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:x="urn:schemas-microsoft-com:office:excel"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-type" content="text/html;charset=' . (isset($charset_of_file) ? $charset_of_file : $charset) .'" />
+<style id="Classeur1_16681_Styles">
+</style>
+
+</head>
+<body>
+
+<div id="Classeur1_16681" align=center x:publishsource="Excel">
+
+<table x:str border=0 cellpadding=0 cellspacing=0 width=100% style="border-collapse: collapse">
+')) {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+ global $what;
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS[$what . '_columns'])) {
+ $schema_insert = '<tr>';
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ $schema_insert .= '<td class=xl2216681 nowrap><b>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</b></td>';
+ } // end for
+ $schema_insert .= '</tr>';
+ if (!PMA_exportOutputHandler($schema_insert)) {
+ return FALSE;
+ }
+ } // end if
+
+ $fields_meta = PMA_DBI_get_fields_meta($result);
+
+ // Format the data
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $schema_insert = '<tr>';
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $value = $GLOBALS[$what . '_null'];
+ } elseif ($row[$j] == '0' || $row[$j] != '') {
+ $value = $row[$j];
+ } else {
+ $value = '';
+ }
+ $schema_insert .= '<td class=xl2216681 nowrap';
+ if ('1' == $fields_meta[$j]->numeric) {
+ $schema_insert .= ' x:num ';
+ }
+ $schema_insert .= '>' . htmlspecialchars($value) . '</td>';
+ } // end for
+ $schema_insert .= '</tr>';
+ if (!PMA_exportOutputHandler($schema_insert)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ return TRUE;
+}
+
+}
+?>
diff --git a/libraries/export/htmlword.php b/libraries/export/htmlword.php
new file mode 100644
index 0000000000..064ed81fb7
--- /dev/null
+++ b/libraries/export/htmlword.php
@@ -0,0 +1,348 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build CSV dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['htmlword'] = array(
+ 'text' => 'strHTMLWord',
+ 'extension' => 'doc',
+ 'mime_type' => 'application/vnd.ms-word',
+ 'force_file' => true,
+ 'options' => array(
+ array('type' => 'bool', 'name' => 'structure', 'text' => 'strStructure', 'force' => 'data'),
+ array('type' => 'bgroup', 'name' => 'data', 'text' => 'strData', 'force' => 'structure'),
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames'),
+ array('type' => 'egroup'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ return PMA_exportOutputHandler('</body></html>');
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ global $charset, $charset_of_file;
+ return PMA_exportOutputHandler('<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:x="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-type" content="text/html;charset=' . (isset($charset_of_file) ? $charset_of_file : $charset) .'" />
+</head>
+<body>');
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ return PMA_exportOutputHandler('<h1>' . $GLOBALS['strDatabase'] . ' ' . $db . '</h1>');
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ global $what;
+
+ if (!PMA_exportOutputHandler('<h2>' . $GLOBALS['strDumpingData'] . ' ' . $table . '</h2>')) {
+ return FALSE;
+ }
+ if (!PMA_exportOutputHandler('<table class="width100" cellspacing="1">')) {
+ return FALSE;
+ }
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS['htmlword_columns'])) {
+ $schema_insert = '<tr class="print-category">';
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ $schema_insert .= '<td class="print"><b>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</b></td>';
+ } // end for
+ $schema_insert .= '</tr>';
+ if (!PMA_exportOutputHandler($schema_insert)) {
+ return FALSE;
+ }
+ } // end if
+
+ // Format the data
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $schema_insert = '<tr class="print-category">';
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $value = $GLOBALS[$what . '_null'];
+ } elseif ($row[$j] == '0' || $row[$j] != '') {
+ $value = $row[$j];
+ } else {
+ $value = '';
+ }
+ $schema_insert .= '<td class="print">' . htmlspecialchars($value) . '</td>';
+ } // end for
+ $schema_insert .= '</tr>';
+ if (!PMA_exportOutputHandler($schema_insert)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+ if (!PMA_exportOutputHandler('</table>')) {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $dummy)
+{
+ global $cfgRelation;
+
+ if (!PMA_exportOutputHandler('<h2>' . $GLOBALS['strTableStructure'] . ' ' .$table . '</h2>')) {
+ return FALSE;
+ }
+
+ /**
+ * Get the unique keys in the table
+ */
+ $keys_query = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+ $keys_result = PMA_DBI_query($keys_query);
+ $unique_keys = array();
+ while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+ if ($key['Non_unique'] == 0) {
+ $unique_keys[] = $key['Column_name'];
+ }
+ }
+ PMA_DBI_free_result($keys_result);
+
+ /**
+ * Gets fields properties
+ */
+ PMA_DBI_select_db($db);
+ $local_query = 'SHOW FIELDS FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+ $result = PMA_DBI_query($local_query);
+ $fields_cnt = PMA_DBI_num_rows($result);
+
+ // Check if we can use Relations (Mike Beck)
+ if ($do_relation && !empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if ($res_rel && count($res_rel) > 0) {
+ $have_rel = TRUE;
+ } else {
+ $have_rel = FALSE;
+ }
+ } else {
+ $have_rel = FALSE;
+ } // end if
+
+ /**
+ * Displays the table structure
+ */
+ if (!PMA_exportOutputHandler('<table class="width100" cellspacing="1">')) {
+ return FALSE;
+ }
+
+ $columns_cnt = 4;
+ if ($do_relation && $have_rel) {
+ $columns_cnt++;
+ }
+ if ($do_comments && $cfgRelation['commwork']) {
+ $columns_cnt++;
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $columns_cnt++;
+ }
+
+ $schema_insert = '<tr class="print-category">';
+ $schema_insert .= '<th class="print">' . htmlspecialchars($GLOBALS['strField']) . '</th>';
+ $schema_insert .= '<td class="print"><b>' . htmlspecialchars($GLOBALS['strType']) . '</b></td>';
+ $schema_insert .= '<td class="print"><b>' . htmlspecialchars($GLOBALS['strNull']) . '</b></td>';
+ $schema_insert .= '<td class="print"><b>' . htmlspecialchars($GLOBALS['strDefault']) . '</b></td>';
+ if ($do_relation && $have_rel) {
+ $schema_insert .= '<td class="print"><b>' . htmlspecialchars($GLOBALS['strLinksTo']) . '</b></td>';
+ }
+ if ($do_comments) {
+ $schema_insert .= '<td class="print"><b>' . htmlspecialchars($GLOBALS['strComments']) . '</b></td>';
+ $comments = PMA_getComments($db, $table);
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $schema_insert .= '<td class="print"><b>' . htmlspecialchars('MIME') . '</b></td>';
+ $mime_map = PMA_getMIME($db, $table, true);
+ }
+ $schema_insert .= '</tr>';
+
+ if (!PMA_exportOutputHandler($schema_insert)) {
+ return FALSE;
+ }
+
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+
+ $schema_insert = '<tr class="print-category">';
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ if (eregi('^(set|enum)\((.+)\)$', $type, $tmp)) {
+ $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type_nowrap = ' nowrap="nowrap"';
+ $type = eregi_replace('BINARY', '', $type);
+ $type = eregi_replace('ZEROFILL', '', $type);
+ $type = eregi_replace('UNSIGNED', '', $type);
+ if (empty($type)) {
+ $type = '&nbsp;';
+ }
+
+ $binary = eregi('BINARY', $row['Type']);
+ $unsigned = eregi('UNSIGNED', $row['Type']);
+ $zerofill = eregi('ZEROFILL', $row['Type']);
+ }
+ $strAttribute = '&nbsp;';
+ if ($binary) {
+ $strAttribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $strAttribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $strAttribute = 'UNSIGNED ZEROFILL';
+ }
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != '') {
+ $row['Default'] = 'NULL';
+ }
+ } else {
+ $row['Default'] = $row['Default'];
+ }
+
+ $fmt_pre = '';
+ $fmt_post = '';
+ if (in_array($row['Field'], $unique_keys)) {
+ $fmt_pre = '<b>' . $fmt_pre;
+ $fmt_post = $fmt_post . '</b>';
+ }
+ if ($row['Key']=='PRI') {
+ $fmt_pre = '<i>' . $fmt_pre;
+ $fmt_post = $fmt_post . '</i>';
+ }
+ $schema_insert .= '<td class="print">' . $fmt_pre . htmlspecialchars($row['Field']) . $fmt_post . '</td>';
+ $schema_insert .= '<td class="print">' . htmlspecialchars($type) . '</td>';
+ $schema_insert .= '<td class="print">' . htmlspecialchars($row['Null'] == '' ? $GLOBALS['strNo'] : $GLOBALS['strYes']) . '</td>';
+ $schema_insert .= '<td class="print">' . htmlspecialchars(isset($row['Default']) ? $row['Default'] : '') . '</td>';
+
+ $field_name = $row['Field'];
+
+ if ($do_relation && $have_rel) {
+ $schema_insert .= '<td class="print">' . (isset($res_rel[$field_name]) ? htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') : '') . '</td>';
+ }
+ if ($do_comments && $cfgRelation['commwork']) {
+ $schema_insert .= '<td class="print">' . (isset($comments[$field_name]) ? htmlspecialchars($comments[$field_name]) : '') . '</td>';
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $schema_insert .= '<td class="print">' . (isset($mime_map[$field_name]) ? htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) : '') . '</td>';
+ }
+
+ $schema_insert .= '</tr>';
+
+ if (!PMA_exportOutputHandler($schema_insert)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ return PMA_exportOutputHandler('</table>');
+}
+
+}
+?>
diff --git a/libraries/export/latex.php b/libraries/export/latex.php
new file mode 100644
index 0000000000..f410d36760
--- /dev/null
+++ b/libraries/export/latex.php
@@ -0,0 +1,471 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $hide_structure = false;
+ if ($plugin_param['export_type'] == 'table' && !$plugin_param['single_table']) {
+ $hide_structure = true;
+ }
+ $plugin_list['latex'] = array(
+ 'text' => 'strLaTeX',
+ 'extension' => 'tex',
+ 'mime_type' => 'application/x-tex',
+ 'options' => array(
+ array('type' => 'bool', 'name' => 'caption', 'text' => 'strLatexIncludeCaption'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+ /* Structure options */
+ if (!$hide_structure) {
+ $plugin_list['latex']['options'][] =
+ array('type' => 'bgroup', 'name' => 'structure', 'text' => 'strStructure', 'force' => 'data');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'text', 'name' => 'structure_caption', 'text' => 'strLatexCaption');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'text', 'name' => 'structure_continued_caption', 'text' => 'strLatexContinuedCaption');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'text', 'name' => 'structure_label', 'text' => 'strLatexLabel');
+ if (!empty($GLOBALS['cfgRelation']['relation'])) {
+ $plugin_list['latex']['options'][] =
+ array('type' => 'bool', 'name' => 'relation', 'text' => 'strRelations');
+ }
+ $plugin_list['latex']['options'][] =
+ array('type' => 'bool', 'name' => 'comments', 'text' => 'strComments');
+ if (!empty($GLOBALS['cfgRelation']['mimework'])) {
+ $plugin_list['latex']['options'][] =
+ array('type' => 'bool', 'name' => 'mime', 'text' => 'strMIME_MIMEtype');
+ }
+ $plugin_list['latex']['options'][] =
+ array('type' => 'egroup');
+ }
+ /* Data */
+ $plugin_list['latex']['options'][] =
+ array('type' => 'bgroup', 'name' => 'data', 'text' => 'strData', 'force' => 'structure');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'text', 'name' => 'data_caption', 'text' => 'strLatexCaption');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'text', 'name' => 'data_continued_caption', 'text' => 'strLatexContinuedCaption');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'text', 'name' => 'data_label', 'text' => 'strLatexLabel');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy');
+ $plugin_list['latex']['options'][] =
+ array('type' => 'egroup');
+} else {
+
+/**
+ * Escapes some special characters for use in TeX/LaTeX
+ *
+ * @param string the string to convert
+ *
+ * @return string the converted string with escape codes
+ *
+ * @access private
+ */
+function PMA_texEscape($string) {
+ $escape = array('$', '%', '{', '}', '&', '#', '_', '^');
+ $cnt_escape = count($escape);
+ for ($k=0; $k < $cnt_escape; $k++) {
+ $string = str_replace($escape[$k], '\\' . $escape[$k], $string);
+ }
+ return $string;
+}
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return PMA_exportOutputHandler('% ' . $text . $GLOBALS['crlf']);
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ global $crlf;
+ global $cfg;
+
+ $head = '% phpMyAdmin LaTeX Dump' . $crlf
+ . '% version ' . PMA_VERSION . $crlf
+ . '% http://www.phpmyadmin.net' . $crlf
+ . '%' . $crlf
+ . '% ' . $GLOBALS['strHost'] . ': ' . $cfg['Server']['host'];
+ if (!empty($cfg['Server']['port'])) {
+ $head .= ':' . $cfg['Server']['port'];
+ }
+ $head .= $crlf
+ . '% ' . $GLOBALS['strGenTime'] . ': ' . PMA_localisedDate() . $crlf
+ . '% ' . $GLOBALS['strServerVersion'] . ': ' . substr(PMA_MYSQL_INT_VERSION, 0, 1) . '.' . (int) substr(PMA_MYSQL_INT_VERSION, 1, 2) . '.' . (int) substr(PMA_MYSQL_INT_VERSION, 3) . $crlf
+ . '% ' . $GLOBALS['strPHPVersion'] . ': ' . phpversion() . $crlf;
+ return PMA_exportOutputHandler($head);
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ global $crlf;
+ $head = '% ' . $crlf
+ . '% ' . $GLOBALS['strDatabase'] . ': ' . (isset($GLOBALS['use_backquotes']) ? PMA_backquote($db) : '\'' . $db . '\''). $crlf
+ . '% ' . $crlf;
+ return PMA_exportOutputHandler($head);
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in LaTeX table/sideways table environment
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+ $result = PMA_DBI_try_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+
+ $columns_cnt = PMA_DBI_num_fields($result);
+ for ($i = 0; $i < $columns_cnt; $i++) {
+ $columns[$i] = PMA_DBI_field_name($result, $i);
+ }
+ unset($i);
+
+ $buffer = $crlf . '%' . $crlf . '% ' . $GLOBALS['strData'] . ': ' . $table . $crlf . '%' . $crlf
+ . ' \\begin{longtable}{|';
+
+ for ($index=0;$index<$columns_cnt;$index++) {
+ $buffer .= 'l|';
+ }
+ $buffer .= '} ' . $crlf ;
+
+ $buffer .= ' \\hline \\endhead \\hline \\endfoot \\hline ' . $crlf;
+ if (isset($GLOBALS['latex_caption'])) {
+ $buffer .= ' \\caption{' . str_replace('__TABLE__', PMA_texEscape($table), $GLOBALS['latex_data_caption'])
+ . '} \\label{' . str_replace('__TABLE__', $table, $GLOBALS['latex_data_label']) . '} \\\\';
+ }
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+
+ // show column names
+ if (isset($GLOBALS['latex_columns'])) {
+ $buffer = '\\hline ';
+ for ($i = 0; $i < $columns_cnt; $i++) {
+ $buffer .= '\\multicolumn{1}{|c|}{\\textbf{' . PMA_texEscape(stripslashes($columns[$i])) . '}} & ';
+ }
+
+ $buffer = substr($buffer, 0, -2) . '\\\\ \\hline \hline ';
+ if (!PMA_exportOutputHandler($buffer . ' \\endfirsthead ' . $crlf)) {
+ return FALSE;
+ }
+ if (isset($GLOBALS['latex_caption'])) {
+ if (!PMA_exportOutputHandler('\\caption{' . str_replace('__TABLE__', PMA_texEscape($table), $GLOBALS['latex_data_continued_caption']) . '} \\\\ ')) return FALSE;
+ }
+ if (!PMA_exportOutputHandler($buffer . '\\endhead \\endfoot' . $crlf)) {
+ return FALSE;
+ }
+ } else {
+ if (!PMA_exportOutputHandler('\\\\ \hline')) {
+ return FALSE;
+ }
+ }
+
+ // print the whole table
+ while ($record = PMA_DBI_fetch_assoc($result)) {
+
+ $buffer = '';
+ // print each row
+ for ($i = 0; $i < $columns_cnt; $i++) {
+ if (isset($record[$columns[$i]])
+ && (! function_exists('is_null') || !is_null($record[$columns[$i]]))) {
+ $column_value = PMA_texEscape(stripslashes($record[$columns[$i]]));
+ } else {
+ $column_value = $GLOBALS['latex_null'];
+ }
+
+ // last column ... no need for & character
+ if ($i == ($columns_cnt - 1)) {
+ $buffer .= $column_value;
+ } else {
+ $buffer .= $column_value . " & ";
+ }
+ }
+ $buffer .= ' \\\\ \\hline ' . $crlf;
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+ }
+
+ $buffer = ' \\end{longtable}' . $crlf;
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+
+ PMA_DBI_free_result($result);
+ return TRUE;
+
+} // end getTableLaTeX
+
+/**
+ * Returns $table's structure as LaTeX
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param boolean whether to include relation comments
+ * @param boolean whether to include column comments
+ * @param boolean whether to include mime comments
+ * @param string future feature: support view dependencies
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+ // @@@ $strTableStructure
+function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $dummy)
+{
+ global $cfgRelation;
+
+ /**
+ * Get the unique keys in the table
+ */
+ $keys_query = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+ $keys_result = PMA_DBI_query($keys_query);
+ $unique_keys = array();
+ while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+ if ($key['Non_unique'] == 0) {
+ $unique_keys[] = $key['Column_name'];
+ }
+ }
+ PMA_DBI_free_result($keys_result);
+
+ /**
+ * Gets fields properties
+ */
+ PMA_DBI_select_db($db);
+ $local_query = 'SHOW FIELDS FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+ $result = PMA_DBI_query($local_query);
+ $fields_cnt = PMA_DBI_num_rows($result);
+
+ // Check if we can use Relations (Mike Beck)
+ if ($do_relation && !empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if ($res_rel && count($res_rel) > 0) {
+ $have_rel = TRUE;
+ } else {
+ $have_rel = FALSE;
+ }
+ } else {
+ $have_rel = FALSE;
+ } // end if
+
+ /**
+ * Displays the table structure
+ */
+ $buffer = $crlf . '%' . $crlf . '% ' . $GLOBALS['strStructure'] . ': ' . $table . $crlf . '%' . $crlf
+ . ' \\begin{longtable}{';
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+
+ $columns_cnt = 4;
+ $alignment = '|l|c|c|c|';
+ if ($do_relation && $have_rel) {
+ $columns_cnt++;
+ $alignment .= 'l|';
+ }
+ if ($do_comments) {
+ $columns_cnt++;
+ $alignment .= 'l|';
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $columns_cnt++;
+ $alignment .='l|';
+ }
+ $buffer = $alignment . '} ' . $crlf ;
+
+ $header = ' \\hline ';
+ $header .= '\\multicolumn{1}{|c|}{\\textbf{' . $GLOBALS['strField'] . '}} & \\multicolumn{1}{|c|}{\\textbf{' . $GLOBALS['strType'] . '}} & \\multicolumn{1}{|c|}{\\textbf{' . $GLOBALS['strNull'] . '}} & \\multicolumn{1}{|c|}{\\textbf{' . $GLOBALS['strDefault'] . '}}';
+ if ($do_relation && $have_rel) {
+ $header .= ' & \\multicolumn{1}{|c|}{\\textbf{' . $GLOBALS['strLinksTo'] . '}}';
+ }
+ if ($do_comments) {
+ $header .= ' & \\multicolumn{1}{|c|}{\\textbf{' . $GLOBALS['strComments'] . '}}';
+ $comments = PMA_getComments($db, $table);
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $header .= ' & \\multicolumn{1}{|c|}{\\textbf{MIME}}';
+ $mime_map = PMA_getMIME($db, $table, true);
+ }
+
+ $local_buffer = PMA_texEscape($table);
+
+ // Table caption for first page and label
+ if (isset($GLOBALS['latex_caption'])) {
+ $buffer .= ' \\caption{'. str_replace('__TABLE__', PMA_texEscape($table), $GLOBALS['latex_structure_caption'])
+ . '} \\label{' . str_replace('__TABLE__', $table, $GLOBALS['latex_structure_label'])
+ . '} \\\\' . $crlf;
+ }
+ $buffer .= $header . ' \\\\ \\hline \\hline' . $crlf . '\\endfirsthead' . $crlf;
+ // Table caption on next pages
+ if (isset($GLOBALS['latex_caption'])) {
+ $buffer .= ' \\caption{'. str_replace('__TABLE__', PMA_texEscape($table), $GLOBALS['latex_structure_continued_caption'])
+ . '} \\\\ ' . $crlf;
+ }
+ $buffer .= $header . ' \\\\ \\hline \\hline \\endhead \\endfoot ' . $crlf;
+
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ if (eregi('^(set|enum)\((.+)\)$', $type, $tmp)) {
+ $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type_nowrap = ' nowrap="nowrap"';
+ $type = eregi_replace('BINARY', '', $type);
+ $type = eregi_replace('ZEROFILL', '', $type);
+ $type = eregi_replace('UNSIGNED', '', $type);
+ if (empty($type)) {
+ $type = '&nbsp;';
+ }
+
+ $binary = eregi('BINARY', $row['Type']);
+ $unsigned = eregi('UNSIGNED', $row['Type']);
+ $zerofill = eregi('ZEROFILL', $row['Type']);
+ }
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != '') {
+ $row['Default'] = 'NULL';
+ }
+ } else {
+ $row['Default'] = $row['Default'];
+ }
+
+ $field_name = $row['Field'];
+
+ $local_buffer = $field_name . "\000" . $type . "\000" . (($row['Null'] == '') ? $GLOBALS['strNo'] : $GLOBALS['strYes']) . "\000" . (isset($row['Default']) ? $row['Default'] : '');
+
+ if ($do_relation && $have_rel) {
+ $local_buffer .= "\000";
+ if (isset($res_rel[$field_name])) {
+ $local_buffer .= $res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')';
+ }
+ }
+ if ($do_comments && $cfgRelation['commwork']) {
+ $local_buffer .= "\000";
+ if (isset($comments[$field_name])) {
+ $local_buffer .= $comments[$field_name];
+ }
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $local_buffer .= "\000";
+ if (isset($mime_map[$field_name])) {
+ $local_buffer .= str_replace('_', '/', $mime_map[$field_name]['mimetype']);
+ }
+ }
+ $local_buffer = PMA_texEscape($local_buffer);
+ if ($row['Key']=='PRI') {
+ $pos=strpos($local_buffer, "\000");
+ $local_buffer = '\\textit{' . substr($local_buffer, 0, $pos) . '}' . substr($local_buffer, $pos);
+ }
+ if (in_array($field_name, $unique_keys)) {
+ $pos=strpos($local_buffer, "\000");
+ $local_buffer = '\\textbf{' . substr($local_buffer, 0, $pos) . '}' . substr($local_buffer, $pos);
+ }
+ $buffer = str_replace("\000", ' & ', $local_buffer);
+ $buffer .= ' \\\\ \\hline ' . $crlf;
+
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ $buffer = ' \\end{longtable}' . $crlf;
+ return PMA_exportOutputHandler($buffer);
+} // end of the 'PMA_exportStructure' function
+
+} // end else
+?>
diff --git a/libraries/export/ods.php b/libraries/export/ods.php
new file mode 100644
index 0000000000..51cf28eca7
--- /dev/null
+++ b/libraries/export/ods.php
@@ -0,0 +1,187 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build CSV dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['ods'] = array(
+ 'text' => 'strOpenDocumentSpreadsheet',
+ 'extension' => 'ods',
+ 'mime_type' => 'application/vnd.oasis.opendocument.spreadsheet',
+ 'force_file' => true,
+ 'options' => array(
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames'),
+ array('type' => 'hidden', 'name' => 'data'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+$GLOBALS['ods_buffer'] = '';
+require_once './libraries/opendocument.lib.php';
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ $GLOBALS['ods_buffer'] .= '</office:spreadsheet>'
+ . '</office:body>'
+ . '</office:document-content>';
+ if (!PMA_exportOutputHandler(PMA_createOpenDocument('application/vnd.oasis.opendocument.spreadsheet', $GLOBALS['ods_buffer']))) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ $GLOBALS['ods_buffer'] .= '<?xml version="1.0" encoding="' . $GLOBALS['charset'] . '"?' . '>'
+ . '<office:document-content '. $GLOBALS['OpenDocumentNS'] . 'office:version="1.0">'
+ . '<office:body>'
+ . '<office:spreadsheet>';
+ return TRUE;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+ global $what;
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+ $fields_meta = PMA_DBI_get_fields_meta($result);
+ $field_flags = array();
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ $field_flags[$j] = PMA_DBI_field_flags($result, $j);
+ }
+
+ $GLOBALS['ods_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '">';
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS[$what . '_columns'])) {
+ $GLOBALS['ods_buffer'] .= '<table:table-row>';
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</text:p>'
+ . '</table:table-cell>';
+ } // end for
+ $GLOBALS['ods_buffer'] .= '</table:table-row>';
+ } // end if
+
+ // Format the data
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $GLOBALS['ods_buffer'] .= '<table:table-row>';
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS[$what . '_null']) . '</text:p>'
+ . '</table:table-cell>';
+ // ignore BLOB
+ } elseif (stristr($field_flags[$j], 'BINARY')
+ && $fields_meta[$j]->blob) {
+ $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p></text:p>'
+ . '</table:table-cell>';
+ } elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type != 'timestamp' && ! $fields_meta[$j]->blob) {
+ $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="float" office:value="' . $row[$j] . '" >'
+ . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+ . '</table:table-cell>';
+ } else {
+ $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+ . '</table:table-cell>';
+ }
+ } // end for
+ $GLOBALS['ods_buffer'] .= '</table:table-row>';
+ } // end while
+ PMA_DBI_free_result($result);
+
+ $GLOBALS['ods_buffer'] .= '</table:table>';
+
+ return TRUE;
+}
+
+}
+?>
diff --git a/libraries/export/odt.php b/libraries/export/odt.php
new file mode 100644
index 0000000000..16620051a2
--- /dev/null
+++ b/libraries/export/odt.php
@@ -0,0 +1,411 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build CSV dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $hide_structure = false;
+ if ($plugin_param['export_type'] == 'table' && !$plugin_param['single_table']) {
+ $hide_structure = true;
+ }
+ $plugin_list['odt'] = array(
+ 'text' => 'strOpenDocumentText',
+ 'extension' => 'odt',
+ 'mime_type' => 'application/vnd.oasis.opendocument.text',
+ 'force_file' => true,
+ 'options' => array(), /* Filled later */
+ 'options_text' => 'strOptions',
+ );
+ /* Structure options */
+ if (!$hide_structure) {
+ $plugin_list['odt']['options'][] =
+ array('type' => 'bgroup', 'name' => 'structure', 'text' => 'strStructure', 'force' => 'data');
+ if (!empty($GLOBALS['cfgRelation']['relation'])) {
+ $plugin_list['odt']['options'][] =
+ array('type' => 'bool', 'name' => 'relation', 'text' => 'strRelations');
+ }
+ $plugin_list['odt']['options'][] =
+ array('type' => 'bool', 'name' => 'comments', 'text' => 'strComments');
+ if (!empty($GLOBALS['cfgRelation']['mimework'])) {
+ $plugin_list['odt']['options'][] =
+ array('type' => 'bool', 'name' => 'mime', 'text' => 'strMIME_MIMEtype');
+ }
+ $plugin_list['odt']['options'][] =
+ array('type' => 'egroup');
+ }
+ /* Data */
+ $plugin_list['odt']['options'][] =
+ array('type' => 'bgroup', 'name' => 'data', 'text' => 'strData', 'force' => 'structure');
+ $plugin_list['odt']['options'][] =
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames');
+ $plugin_list['odt']['options'][] =
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy');
+ $plugin_list['odt']['options'][] =
+ array('type' => 'egroup');
+} else {
+
+$GLOBALS['odt_buffer'] = '';
+require_once './libraries/opendocument.lib.php';
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ $GLOBALS['odt_buffer'] .= '</office:text>'
+ . '</office:body>'
+ . '</office:document-content>';
+ if (!PMA_exportOutputHandler(PMA_createOpenDocument('application/vnd.oasis.opendocument.text', $GLOBALS['odt_buffer']))) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ $GLOBALS['odt_buffer'] .= '<?xml version="1.0" encoding="' . $GLOBALS['charset'] . '"?' . '>'
+ . '<office:document-content '. $GLOBALS['OpenDocumentNS'] . 'office:version="1.0">'
+ . '<office:body>'
+ . '<office:text>';
+ return TRUE;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="1" text:style-name="Heading_1" text:is-list-header="true">' . htmlspecialchars($GLOBALS['strDatabase'] . ' ' . $db) . '</text:h>';
+ return TRUE;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+ global $what;
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+ $fields_meta = PMA_DBI_get_fields_meta($result);
+ $field_flags = array();
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ $field_flags[$j] = PMA_DBI_field_flags($result, $j);
+ }
+
+ $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="2" text:style-name="Heading_2" text:is-list-header="true">' . htmlspecialchars($GLOBALS['strDumpingData'] . ' ' . $table) . '</text:h>';
+ $GLOBALS['odt_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '_structure">';
+ $GLOBALS['odt_buffer'] .= '<table:table-column table:number-columns-repeated="' . $fields_cnt . '"/>';
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS[$what . '_columns'])) {
+ $GLOBALS['odt_buffer'] .= '<table:table-row>';
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</text:p>'
+ . '</table:table-cell>';
+ } // end for
+ $GLOBALS['odt_buffer'] .= '</table:table-row>';
+ } // end if
+
+ // Format the data
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $GLOBALS['odt_buffer'] .= '<table:table-row>';
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS[$what . '_null']) . '</text:p>'
+ . '</table:table-cell>';
+ // ignore BLOB
+ } elseif (stristr($field_flags[$j], 'BINARY')
+ && $fields_meta[$j]->blob) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p></text:p>'
+ . '</table:table-cell>';
+ } elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type != 'timestamp' && ! $fields_meta[$j]->blob) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="float" office:value="' . $row[$j] . '" >'
+ . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+ . '</table:table-cell>';
+ } else {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+ . '</table:table-cell>';
+ }
+ } // end for
+ $GLOBALS['odt_buffer'] .= '</table:table-row>';
+ } // end while
+ PMA_DBI_free_result($result);
+
+ $GLOBALS['odt_buffer'] .= '</table:table>';
+
+ return TRUE;
+}
+
+/**
+ * Returns $table's structure as Open Document Text
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param boolean whether to include relation comments
+ * @param boolean whether to include column comments
+ * @param boolean whether to include mime comments
+ * @param string future feature: support view dependencies
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+ // @@@ $strTableStructure
+function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $dummy)
+{
+ global $cfgRelation;
+
+ /* Heading */
+ $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="2" text:style-name="Heading_2" text:is-list-header="true">' . htmlspecialchars($GLOBALS['strTableStructure'] . ' ' . $table) . '</text:h>';
+
+ /**
+ * Get the unique keys in the table
+ */
+ $keys_query = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+ $keys_result = PMA_DBI_query($keys_query);
+ $unique_keys = array();
+ while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+ if ($key['Non_unique'] == 0) {
+ $unique_keys[] = $key['Column_name'];
+ }
+ }
+ PMA_DBI_free_result($keys_result);
+
+ /**
+ * Gets fields properties
+ */
+ PMA_DBI_select_db($db);
+ $local_query = 'SHOW FIELDS FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+ $result = PMA_DBI_query($local_query);
+ $fields_cnt = PMA_DBI_num_rows($result);
+
+ // Check if we can use Relations (Mike Beck)
+ if ($do_relation && !empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if ($res_rel && count($res_rel) > 0) {
+ $have_rel = TRUE;
+ } else {
+ $have_rel = FALSE;
+ }
+ } else {
+ $have_rel = FALSE;
+ } // end if
+
+ /**
+ * Displays the table structure
+ */
+ $GLOBALS['odt_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '_data">';
+ $columns_cnt = 4;
+ if ($do_relation && $have_rel) {
+ $columns_cnt++;
+ }
+ if ($do_comments) {
+ $columns_cnt++;
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $columns_cnt++;
+ }
+ $GLOBALS['odt_buffer'] .= '<table:table-column table:number-columns-repeated="' . $columns_cnt . '"/>';
+ /* Header */
+ $GLOBALS['odt_buffer'] .= '<table:table-row>';
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS['strField']) . '</text:p>'
+ . '</table:table-cell>';
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS['strType']) . '</text:p>'
+ . '</table:table-cell>';
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS['strNull']) . '</text:p>'
+ . '</table:table-cell>';
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS['strDefault']) . '</text:p>'
+ . '</table:table-cell>';
+ if ($do_relation && $have_rel) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS['strLinksTo']) . '</text:p>'
+ . '</table:table-cell>';
+ }
+ if ($do_comments) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS['strComments']) . '</text:p>'
+ . '</table:table-cell>';
+ $comments = PMA_getComments($db, $table);
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($GLOBALS['strMIME_MIMEtype']) . '</text:p>'
+ . '</table:table-cell>';
+ $mime_map = PMA_getMIME($db, $table, true);
+ }
+ $GLOBALS['odt_buffer'] .= '</table:table-row>';
+
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+
+ $GLOBALS['odt_buffer'] .= '<table:table-row>';
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($row['Field']) . '</text:p>'
+ . '</table:table-cell>';
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ $field_name = $row['Field'];
+ $type = $row['Type'];
+ if (eregi('^(set|enum)\((.+)\)$', $type, $tmp)) {
+ $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type_nowrap = ' nowrap="nowrap"';
+ $type = eregi_replace('BINARY', '', $type);
+ $type = eregi_replace('ZEROFILL', '', $type);
+ $type = eregi_replace('UNSIGNED', '', $type);
+ if (empty($type)) {
+ $type = '&nbsp;';
+ }
+
+ $binary = eregi('BINARY', $row['Type']);
+ $unsigned = eregi('UNSIGNED', $row['Type']);
+ $zerofill = eregi('ZEROFILL', $row['Type']);
+ }
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($type) . '</text:p>'
+ . '</table:table-cell>';
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != '') {
+ $row['Default'] = 'NULL';
+ } else {
+ $row['Default'] = '';
+ }
+ } else {
+ $row['Default'] = $row['Default'];
+ }
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars(($row['Null'] == '') ? $GLOBALS['strNo'] : $GLOBALS['strYes']) . '</text:p>'
+ . '</table:table-cell>';
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($row['Default']) . '</text:p>'
+ . '</table:table-cell>';
+
+ if ($do_relation && $have_rel) {
+ if (isset($res_rel[$field_name])) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') . '</text:p>'
+ . '</table:table-cell>';
+ }
+ }
+ if ($do_comments) {
+ if (isset($comments[$field_name])) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars($comments[$field_name]) . '</text:p>'
+ . '</table:table-cell>';
+ } else {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p></text:p>'
+ . '</table:table-cell>';
+ }
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ if (isset($mime_map[$field_name])) {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p>' . htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) . '</text:p>'
+ . '</table:table-cell>';
+ } else {
+ $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+ . '<text:p></text:p>'
+ . '</table:table-cell>';
+ }
+ }
+ $GLOBALS['odt_buffer'] .= '</table:table-row>';
+ } // end while
+ PMA_DBI_free_result($result);
+
+ $GLOBALS['odt_buffer'] .= '</table:table>';
+ return TRUE;
+} // end of the 'PMA_exportStructure' function
+
+} // end else
+?>
diff --git a/libraries/export/pdf.php b/libraries/export/pdf.php
new file mode 100644
index 0000000000..fad6041d3f
--- /dev/null
+++ b/libraries/export/pdf.php
@@ -0,0 +1,477 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Produce a PDF report (export) from a query
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['pdf'] = array(
+ 'text' => 'strPDF',
+ 'extension' => 'pdf',
+ 'mime_type' => 'application/pdf',
+ 'force_file' => true,
+ 'options' => array(
+ array('type' => 'message_only', 'name' => 'explanation', 'text' => 'strPDFReportExplanation'),
+ array('type' => 'text', 'name' => 'report_title', 'text' => 'strPDFReportTitle'),
+ array('type' => 'hidden', 'name' => 'data'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Font used in PDF.
+ *
+ * @todo Make this configuratble (at least Sans/Serif).
+ */
+define('PMA_PDF_FONT', 'DejaVuSans');
+require_once './libraries/tcpdf/tcpdf.php';
+
+// Adapted from a LGPL script by Philip Clarke
+
+class PMA_PDF extends TCPDF
+{
+ var $tablewidths;
+ var $headerset;
+ var $footerset;
+
+ // added because tcpdf for PHP 5 has a protected $buffer
+ public function getBuffer()
+ {
+ return $this->buffer;
+ }
+
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ // overloading of a tcpdf function:
+ function _beginpage($orientation)
+ {
+ $this->page++;
+ // solved the problem of overwriting a page, if it already exists
+ if (!isset($this->pages[$this->page])) {
+ $this->pages[$this->page] = '';
+ }
+ $this->state = 2;
+ $this->x = $this->lMargin;
+ $this->y = $this->tMargin;
+ $this->lasth = 0;
+ $this->FontFamily = '';
+
+ //Page orientation
+ if (!$orientation) {
+ $orientation = $this->DefOrientation;
+ } else {
+ $orientation = strtoupper($orientation{0});
+ if ($orientation != $this->DefOrientation) {
+ $this->OrientationChanges[$this->page] = true;
+ }
+ }
+ if ($orientation != $this->CurOrientation) {
+ //Change orientation
+ if ($orientation == 'P') {
+ $this->wPt = $this->fwPt;
+ $this->hPt = $this->fhPt;
+ $this->w = $this->fw;
+ $this->h = $this->fh;
+ } else {
+ $this->wPt = $this->fhPt;
+ $this->hPt = $this->fwPt;
+ $this->w = $this->fh;
+ $this->h = $this->fw;
+ }
+ $this->PageBreakTrigger = $this->h - $this->bMargin;
+ $this->CurOrientation = $orientation;
+ }
+ }
+
+ function Header()
+ {
+ global $maxY;
+
+ // Check if header for this page already exists
+ if (!isset($this->headerset[$this->page])) {
+ $fullwidth = 0;
+ foreach ($this->tablewidths as $width) {
+ $fullwidth += $width;
+ }
+ $this->SetY(($this->tMargin) - ($this->FontSizePt/$this->k)*2);
+ $this->cellFontSize = $this->FontSizePt ;
+ $this->SetFont(PMA_PDF_FONT, '', ($this->titleFontSize ? $this->titleFontSize : $this->FontSizePt));
+ $this->Cell(0, $this->FontSizePt, $this->titleText, 0, 1, 'C');
+ $l = ($this->lMargin);
+ $this->SetFont(PMA_PDF_FONT, '', $this->cellFontSize);
+ foreach ($this->colTitles as $col => $txt) {
+ $this->SetXY($l, ($this->tMargin));
+ $this->MultiCell($this->tablewidths[$col], $this->FontSizePt, $txt);
+ $l += $this->tablewidths[$col] ;
+ $maxY = ($maxY < $this->getY()) ? $this->getY() : $maxY ;
+ }
+ $this->SetXY($this->lMargin, $this->tMargin);
+ $this->setFillColor(200, 200, 200);
+ $l = ($this->lMargin);
+ foreach ($this->colTitles as $col => $txt) {
+ $this->SetXY($l, $this->tMargin);
+ $this->cell($this->tablewidths[$col], $maxY-($this->tMargin), '', 1, 0, 'L', 1);
+ $this->SetXY($l, $this->tMargin);
+ $this->MultiCell($this->tablewidths[$col], $this->FontSizePt, $txt, 0, 'C');
+ $l += $this->tablewidths[$col];
+ }
+ $this->setFillColor(255, 255, 255);
+ // set headerset
+ $this->headerset[$this->page] = 1;
+ }
+
+ $this->SetY($maxY);
+ }
+
+ function Footer()
+ {
+ // Check if footer for this page already exists
+ if (!isset($this->footerset[$this->page])) {
+ $this->SetY(-15);
+ //Page number
+ $this->Cell(0, 10, $GLOBALS['strPageNumber'] .' '.$this->PageNo() .'/{nb}', 'T', 0, 'C');
+
+ // set footerset
+ $this->footerset[$this->page] = 1;
+ }
+ }
+
+ function morepagestable($lineheight=8)
+ {
+ // some things to set and 'remember'
+ $l = $this->lMargin;
+ $startheight = $h = $this->GetY();
+ $startpage = $currpage = $this->page;
+
+ // calculate the whole width
+ $fullwidth = 0;
+ foreach ($this->tablewidths as $width) {
+ $fullwidth += $width;
+ }
+
+ // Now let's start to write the table
+ $row = 0;
+ $tmpheight = array();
+ $maxpage = 0;
+
+ while ($data = PMA_DBI_fetch_row($this->results)) {
+ $this->page = $currpage;
+ // write the horizontal borders
+ $this->Line($l, $h, $fullwidth+$l, $h);
+ // write the content and remember the height of the highest col
+ foreach ($data as $col => $txt) {
+ $this->page = $currpage;
+ $this->SetXY($l, $h);
+ if ($this->tablewidths[$col] > 0) {
+ $this->MultiCell($this->tablewidths[$col], $lineheight, $txt, 0, $this->colAlign[$col]);
+ $l += $this->tablewidths[$col];
+ }
+
+ if (!isset($tmpheight[$row.'-'.$this->page])) {
+ $tmpheight[$row.'-'.$this->page] = 0;
+ }
+ if ($tmpheight[$row.'-'.$this->page] < $this->GetY()) {
+ $tmpheight[$row.'-'.$this->page] = $this->GetY();
+ }
+ if ($this->page > $maxpage) {
+ $maxpage = $this->page;
+ }
+ unset($data[$col]);
+ }
+
+ // get the height we were in the last used page
+ $h = $tmpheight[$row.'-'.$maxpage];
+ // set the "pointer" to the left margin
+ $l = $this->lMargin;
+ // set the $currpage to the last page
+ $currpage = $maxpage;
+ unset($data[$row]);
+ $row++;
+ }
+ // draw the borders
+ // we start adding a horizontal line on the last page
+ $this->page = $maxpage;
+ $this->Line($l, $h, $fullwidth+$l, $h);
+ // now we start at the top of the document and walk down
+ for ($i = $startpage; $i <= $maxpage; $i++) {
+ $this->page = $i;
+ $l = $this->lMargin;
+ $t = ($i == $startpage) ? $startheight : $this->tMargin;
+ $lh = ($i == $maxpage) ? $h : $this->h-$this->bMargin;
+ $this->Line($l, $t, $l, $lh);
+ foreach ($this->tablewidths as $width) {
+ $l += $width;
+ $this->Line($l, $t, $l, $lh);
+ }
+ }
+ // set it to the last page, if not it'll cause some problems
+ $this->page = $maxpage;
+ }
+
+
+ function mysql_report($query, $attr = array())
+ {
+ foreach ($attr as $key => $val){
+ $this->$key = $val ;
+ }
+
+ /**
+ * Pass 1 for column widths
+ */
+ $this->results = PMA_DBI_query($query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $this->numFields = PMA_DBI_num_fields($this->results);
+ $this->fields = PMA_DBI_get_fields_meta($this->results);
+
+ // if column widths not set
+ if (!isset($this->tablewidths)){
+
+ // sColWidth = starting col width (an average size width)
+ $availableWidth = $this->w - $this->lMargin - $this->rMargin;
+ $this->sColWidth = $availableWidth / $this->numFields;
+ $totalTitleWidth = 0;
+
+ // loop through results header and set initial col widths/ titles/ alignment
+ // if a col title is less than the starting col width, reduce that column size
+ for ($i = 0; $i < $this->numFields; $i++){
+ $stringWidth = $this->getstringwidth($this->fields[$i]->name) + 6 ;
+ // save the real title's width
+ $titleWidth[$i] = $stringWidth;
+ $totalTitleWidth += $stringWidth;
+
+ // set any column titles less than the start width to the column title width
+ if ($stringWidth < $this->sColWidth){
+ $colFits[$i] = $stringWidth ;
+ }
+ $this->colTitles[$i] = $this->fields[$i]->name;
+ $this->display_column[$i] = true;
+
+ switch ($this->fields[$i]->type){
+ case 'int':
+ $this->colAlign[$i] = 'R';
+ break;
+ case 'blob':
+ case 'tinyblob':
+ case 'mediumblob':
+ case 'longblob':
+ /**
+ * @todo do not deactivate completely the display
+ * but show the field's name and [BLOB]
+ */
+ if (stristr($this->fields[$i]->flags, 'BINARY')) {
+ $this->display_column[$i] = false;
+ unset($this->colTitles[$i]);
+ }
+ $this->colAlign[$i] = 'L';
+ break;
+ default:
+ $this->colAlign[$i] = 'L';
+ }
+ }
+
+ // title width verification
+ if ($totalTitleWidth > $availableWidth) {
+ $adjustingMode = true;
+ } else {
+ $adjustingMode = false;
+ // we have enough space for all the titles at their
+ // original width so use the true title's width
+ foreach ($titleWidth as $key => $val) {
+ $colFits[$key] = $val;
+ }
+ }
+
+ // loop through the data; any column whose contents
+ // is greater than the column size is resized
+ /**
+ * @todo force here a LIMIT to avoid reading all rows
+ */
+ while ($row = PMA_DBI_fetch_row($this->results)) {
+ foreach ($colFits as $key => $val) {
+ $stringWidth = $this->getstringwidth($row[$key]) + 6 ;
+ if ($adjustingMode && ($stringWidth > $this->sColWidth)) {
+ // any column whose data's width is bigger than the start width is now discarded
+ unset($colFits[$key]);
+ } else {
+ // if data's width is bigger than the current column width,
+ // enlarge the column (but avoid enlarging it if the
+ // data's width is very big)
+ if ($stringWidth > $val && $stringWidth < ($this->sColWidth * 3)) {
+ $colFits[$key] = $stringWidth ;
+ }
+ }
+ }
+ }
+
+ $totAlreadyFitted = 0;
+ foreach ($colFits as $key => $val){
+ // set fitted columns to smallest size
+ $this->tablewidths[$key] = $val;
+ // to work out how much (if any) space has been freed up
+ $totAlreadyFitted += $val;
+ }
+
+ if ($adjustingMode) {
+ $surplus = (sizeof($colFits) * $this->sColWidth) - $totAlreadyFitted;
+ $surplusToAdd = $surplus / ($this->numFields - sizeof($colFits));
+ } else {
+ $surplusToAdd = 0;
+ }
+
+ for ($i=0; $i < $this->numFields; $i++) {
+ if (!in_array($i, array_keys($colFits))) {
+ $this->tablewidths[$i] = $this->sColWidth + $surplusToAdd;
+ }
+ if ($this->display_column[$i] == false) {
+ $this->tablewidths[$i] = 0;
+ }
+ }
+
+ ksort($this->tablewidths);
+ }
+ PMA_DBI_free_result($this->results);
+
+ // Pass 2
+
+ $this->results = PMA_DBI_query($query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $this->Open();
+ $this->setY($this->tMargin);
+ $this->AddPage();
+ $this->morepagestable($this->FontSizePt);
+ PMA_DBI_free_result($this->results);
+
+ } // end of mysql_report function
+
+} // end of PMA_PDF class
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter()
+{
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader()
+{
+ return TRUE;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in PDF format
+ *
+ * @todo user-defined page orientation, paper size
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ global $what;
+ global $pdf_report_title;
+
+ $pdf = new PMA_PDF('L', 'pt', 'A3');
+
+ $pdf->AddFont('DejaVuSans', '', 'dejavusans.php');
+ $pdf->AddFont('DejaVuSans', 'B', 'dejavusans-bold.php');
+ $pdf->AddFont('DejaVuSerif', '', 'dejavuserif.php');
+ $pdf->AddFont('DejaVuSerif', 'B', 'dejavuserif-bold.php');
+ $pdf->SetFont(PMA_PDF_FONT, '', 11.5);
+ $pdf->AliasNbPages();
+ $attr=array('titleFontSize' => 18, 'titleText' => $pdf_report_title);
+ $pdf->mysql_report($sql_query, $attr);
+
+ // instead of $pdf->Output():
+ if ($pdf->getState() < 3) {
+ $pdf->Close();
+ }
+ if (!PMA_exportOutputHandler($pdf->getBuffer())) {
+ return FALSE;
+ }
+
+ return TRUE;
+} // end of the 'PMA_exportData()' function
+}
+?>
diff --git a/libraries/export/sql.php b/libraries/export/sql.php
new file mode 100644
index 0000000000..0780db2020
--- /dev/null
+++ b/libraries/export/sql.php
@@ -0,0 +1,1013 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build SQL dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $hide_sql = false;
+ $hide_structure = false;
+ if ($plugin_param['export_type'] == 'table' && !$plugin_param['single_table']) {
+ $hide_structure = true;
+ $hide_sql = true;
+ }
+ if (!$hide_sql) {
+ $plugin_list['sql'] = array(
+ 'text' => 'strSQL',
+ 'extension' => 'sql',
+ 'mime_type' => 'text/x-sql',
+ 'options' => array(
+ array('type' => 'text', 'name' => 'header_comment', 'text' => 'strAddHeaderComment'),
+ array('type' => 'bool', 'name' => 'include_comments', 'text' => 'strComments'),
+ array('type' => 'bool', 'name' => 'use_transaction', 'text' => 'strEncloseInTransaction'),
+ array('type' => 'bool', 'name' => 'disable_fk', 'text' => 'strDisableForeignChecks'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+ $compats = PMA_DBI_getCompatibilities();
+ if (count($compats) > 0) {
+ $values = array();
+ foreach($compats as $val) {
+ $values[$val] = $val;
+ }
+ $plugin_list['sql']['options'][] =
+ array('type' => 'select', 'name' => 'compatibility', 'text' => 'strSQLCompatibility', 'values' => $values, 'doc' => array('manual_MySQL_Database_Administration', 'Server_SQL_mode'));
+ unset($values);
+ }
+
+ /* Server export options */
+ if ($plugin_param['export_type'] == 'server') {
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bgroup', 'text' => 'strDatabaseExportOptions');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'drop_database', 'text' => sprintf($GLOBALS['strAddClause'], 'DROP DATABASE'));
+ $plugin_list['sql']['options'][] =
+ array('type' => 'egroup');
+ }
+
+ /* Structure options */
+ if (!$hide_structure) {
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bgroup', 'name' => 'structure', 'text' => 'strStructure', 'force' => 'data');
+ if ($plugin_param['export_type'] == 'table') {
+ if (PMA_Table::isView($GLOBALS['db'], $GLOBALS['table'])) {
+ $drop_clause = 'DROP VIEW';
+ } else {
+ $drop_clause = 'DROP TABLE';
+ }
+ } else {
+ $drop_clause = 'DROP TABLE / VIEW / PROCEDURE / FUNCTION';
+ if (PMA_MYSQL_INT_VERSION > 50100) {
+ $drop_clause .= ' / EVENT';
+ }
+ }
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'drop_table', 'text' => sprintf($GLOBALS['strAddClause'], $drop_clause));
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'if_not_exists', 'text' => sprintf($GLOBALS['strAddClause'], 'IF NOT EXISTS'));
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'auto_increment', 'text' => 'strAddAutoIncrement');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'backquotes', 'text' => 'strUseBackquotes');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'procedure_function', 'text' => sprintf($GLOBALS['strAddClause'], 'CREATE PROCEDURE / FUNCTION' . (PMA_MYSQL_INT_VERSION > 50100 ? ' / EVENT' : '')));
+
+ /* MIME stuff etc. */
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bgroup', 'text' => 'strAddIntoComments');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'dates', 'text' => 'strCreationDates');
+ if (!empty($GLOBALS['cfgRelation']['relation'])) {
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'relation', 'text' => 'strRelations');
+ }
+ if (!empty($GLOBALS['cfgRelation']['mimework'])) {
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'mime', 'text' => 'strMIME_MIMEtype');
+ }
+ $plugin_list['sql']['options'][] =
+ array('type' => 'egroup');
+
+ $plugin_list['sql']['options'][] =
+ array('type' => 'egroup');
+ }
+
+ /* Data */
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bgroup', 'name' => 'data', 'text' => 'strData', 'force' => 'structure');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strCompleteInserts', 'doc' => array('programs', 'mysqldump', 'option_mysqldump_complete-insert-option'));
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'extended', 'text' => 'strExtendedInserts', 'doc' => array('programs', 'mysqldump', 'option_mysqldump_extended-insert-option'));
+ $plugin_list['sql']['options'][] =
+ array('type' => 'text', 'name' => 'max_query_size', 'text' => 'strMaximalQueryLength');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'delayed', 'text' => 'strDelayedInserts');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'ignore', 'text' => 'strIgnoreInserts');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'bool', 'name' => 'hex_for_blob', 'text' => 'strHexForBLOB');
+ $plugin_list['sql']['options'][] =
+ array('type' => 'select', 'name' => 'type', 'text' => 'strSQLExportType', 'values' => array('INSERT' => 'INSERT', 'UPDATE' => 'UPDATE', 'REPLACE' => 'REPLACE'));
+ $plugin_list['sql']['options'][] =
+ array('type' => 'egroup');
+ }
+} else {
+
+/**
+ * Avoids undefined variables, use NULL so isset() returns false
+ */
+if (! isset($sql_backquotes)) {
+ $sql_backquotes = null;
+}
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return string The formatted comment
+ */
+function PMA_exportComment($text = '')
+{
+ if ($GLOBALS['sql_include_comments']) {
+ // see http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-comments.html
+ return '--' . (empty($text) ? '' : ' ') . $text . $GLOBALS['crlf'];
+ } else {
+ return '';
+ }
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter()
+{
+ global $crlf;
+ global $mysql_charset_map;
+
+ $foot = '';
+
+ if (isset($GLOBALS['sql_disable_fk'])) {
+ $foot .= $crlf . 'SET FOREIGN_KEY_CHECKS=1;' . $crlf;
+ }
+
+ if (isset($GLOBALS['sql_use_transaction'])) {
+ $foot .= $crlf . 'COMMIT;' . $crlf;
+ }
+
+ // restore connection settings
+ // (not set if $cfg['AllowAnywhereRecoding'] is false)
+ $charset_of_file = isset($GLOBALS['charset_of_file']) ? $GLOBALS['charset_of_file'] : '';
+ if (!empty($GLOBALS['asfile']) && isset($mysql_charset_map[$charset_of_file])) {
+ $foot .= $crlf
+ . '/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;' . $crlf
+ . '/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;' . $crlf
+ . '/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;' . $crlf;
+ }
+
+ return PMA_exportOutputHandler($foot);
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader()
+{
+ global $crlf;
+ global $cfg;
+ global $mysql_charset_map;
+
+ if (isset($GLOBALS['sql_compatibility'])) {
+ $tmp_compat = $GLOBALS['sql_compatibility'];
+ if ($tmp_compat == 'NONE') {
+ $tmp_compat = '';
+ }
+ PMA_DBI_try_query('SET SQL_MODE="' . $tmp_compat . '"');
+ unset($tmp_compat);
+ }
+ $head = PMA_exportComment('phpMyAdmin SQL Dump')
+ . PMA_exportComment('version ' . PMA_VERSION)
+ . PMA_exportComment('http://www.phpmyadmin.net')
+ . PMA_exportComment();
+ $head .= empty($cfg['Server']['port']) ? PMA_exportComment($GLOBALS['strHost'] . ': ' . $cfg['Server']['host']) : PMA_exportComment($GLOBALS['strHost'] . ': ' . $cfg['Server']['host'] . ':' . $cfg['Server']['port']);
+ $head .= PMA_exportComment($GLOBALS['strGenTime']
+ . ': ' . PMA_localisedDate())
+ . PMA_exportComment($GLOBALS['strServerVersion'] . ': ' . substr(PMA_MYSQL_INT_VERSION, 0, 1) . '.' . (int) substr(PMA_MYSQL_INT_VERSION, 1, 2) . '.' . (int) substr(PMA_MYSQL_INT_VERSION, 3))
+ . PMA_exportComment($GLOBALS['strPHPVersion'] . ': ' . phpversion());
+
+ if (isset($GLOBALS['sql_header_comment']) && !empty($GLOBALS['sql_header_comment'])) {
+ // '\n' is not a newline (like "\n" would be), it's the characters
+ // backslash and n, as explained on the export interface
+ $lines = explode('\n', $GLOBALS['sql_header_comment']);
+ $head .= PMA_exportComment();
+ foreach($lines as $one_line) {
+ $head .= PMA_exportComment($one_line);
+ }
+ $head .= PMA_exportComment();
+ }
+
+ if (isset($GLOBALS['sql_disable_fk'])) {
+ $head .= $crlf . 'SET FOREIGN_KEY_CHECKS=0;' . $crlf;
+ }
+
+ /* We want exported AUTO_INCREMENT fields to have still same value, do this only for recent MySQL exports */
+ if (!isset($GLOBALS['sql_compatibility']) || $GLOBALS['sql_compatibility'] == 'NONE') {
+ $head .= $crlf . 'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";' . $crlf;
+ }
+
+ if (isset($GLOBALS['sql_use_transaction'])) {
+ $head .= $crlf .'SET AUTOCOMMIT=0;' . $crlf
+ . 'START TRANSACTION;' . $crlf;
+ }
+
+ $head .= $crlf;
+
+ if (! empty($GLOBALS['asfile'])) {
+ // we are saving as file, therefore we provide charset information
+ // so that a utility like the mysql client can interpret
+ // the file correctly
+ if (isset($GLOBALS['charset_of_file']) && isset($mysql_charset_map[$GLOBALS['charset_of_file']])) {
+ // $cfg['AllowAnywhereRecoding'] was true so we got a charset from
+ // the export dialog
+ $set_names = $mysql_charset_map[$GLOBALS['charset_of_file']];
+ } else {
+ // by default we use the connection charset
+ $set_names = $mysql_charset_map[$GLOBALS['charset']];
+ }
+ $head .= $crlf
+ . '/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;' . $crlf
+ . '/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;' . $crlf
+ . '/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;' . $crlf
+ . '/*!40101 SET NAMES ' . $set_names . ' */;' . $crlf . $crlf;
+ }
+
+ return PMA_exportOutputHandler($head);
+}
+
+/**
+ * Outputs CREATE DATABASE database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db)
+{
+ global $crlf;
+ if (isset($GLOBALS['sql_drop_database'])) {
+ if (!PMA_exportOutputHandler('DROP DATABASE ' . (isset($GLOBALS['sql_backquotes']) ? PMA_backquote($db) : $db) . ';' . $crlf)) {
+ return FALSE;
+ }
+ }
+ $create_query = 'CREATE DATABASE ' . (isset($GLOBALS['sql_backquotes']) ? PMA_backquote($db) : $db);
+ $collation = PMA_getDbCollation($db);
+ if (strpos($collation, '_')) {
+ $create_query .= ' DEFAULT CHARACTER SET ' . substr($collation, 0, strpos($collation, '_')) . ' COLLATE ' . $collation;
+ } else {
+ $create_query .= ' DEFAULT CHARACTER SET ' . $collation;
+ }
+ $create_query .= ';' . $crlf;
+ if (!PMA_exportOutputHandler($create_query)) {
+ return FALSE;
+ }
+ if (isset($GLOBALS['sql_backquotes']) && isset($GLOBALS['sql_compatibility']) && $GLOBALS['sql_compatibility'] == 'NONE') {
+ return PMA_exportOutputHandler('USE ' . PMA_backquote($db) . ';' . $crlf);
+ }
+ return PMA_exportOutputHandler('USE ' . $db . ';' . $crlf);
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db)
+{
+ $head = PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strDatabase'] . ': ' . (isset($GLOBALS['sql_backquotes']) ? PMA_backquote($db) : '\'' . $db . '\''))
+ . PMA_exportComment();
+ return PMA_exportOutputHandler($head);
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db)
+{
+ global $crlf;
+
+ $result = TRUE;
+ if (isset($GLOBALS['sql_constraints'])) {
+ $result = PMA_exportOutputHandler($GLOBALS['sql_constraints']);
+ unset($GLOBALS['sql_constraints']);
+ }
+
+ if (isset($GLOBALS['sql_structure']) && isset($GLOBALS['sql_procedure_function'])) {
+ $text = '';
+ $delimiter = '$$';
+
+ $procedure_names = PMA_DBI_get_procedures_or_functions($db, 'PROCEDURE');
+ $function_names = PMA_DBI_get_procedures_or_functions($db, 'FUNCTION');
+
+ if (PMA_MYSQL_INT_VERSION > 50100) {
+ $event_names = PMA_DBI_fetch_result('SELECT EVENT_NAME FROM information_schema.EVENTS WHERE EVENT_SCHEMA= \'' . PMA_sqlAddslashes($db,true) . '\';');
+ } else {
+ $event_names = array();
+ }
+
+ if ($procedure_names || $function_names || $event_names) {
+ $text .= $crlf
+ . 'DELIMITER ' . $delimiter . $crlf;
+ }
+
+ if ($procedure_names) {
+ $text .=
+ PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strProcedures'])
+ . PMA_exportComment();
+
+ foreach($procedure_names as $procedure_name) {
+ if (! empty($GLOBALS['sql_drop_table'])) {
+ $text .= 'DROP PROCEDURE IF EXISTS ' . PMA_backquote($procedure_name) . $delimiter . $crlf;
+ }
+ $text .= PMA_DBI_get_definition($db, 'PROCEDURE', $procedure_name) . $delimiter . $crlf . $crlf;
+ }
+ }
+
+ if ($function_names) {
+ $text .=
+ PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strFunctions'])
+ . PMA_exportComment();
+
+ foreach($function_names as $function_name) {
+ if (! empty($GLOBALS['sql_drop_table'])) {
+ $text .= 'DROP FUNCTION IF EXISTS ' . PMA_backquote($function_name) . $delimiter . $crlf;
+ }
+ $text .= PMA_DBI_get_definition($db, 'FUNCTION', $function_name) . $delimiter . $crlf . $crlf;
+ }
+ }
+
+ if ($event_names) {
+ $text .=
+ PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strEvents'])
+ . PMA_exportComment();
+
+ foreach($event_names as $event_name) {
+ if (! empty($GLOBALS['sql_drop_table'])) {
+ $text .= 'DROP EVENT ' . PMA_backquote($event_name) . $delimiter . $crlf;
+ }
+ $text .= PMA_DBI_get_definition($db, 'EVENT', $event_name) . $delimiter . $crlf . $crlf;
+ }
+ }
+ if ($procedure_names || $function_names || $event_names) {
+ $text .= 'DELIMITER ;' . $crlf;
+ }
+
+ if (! empty($text)) {
+ $result = PMA_exportOutputHandler($text);
+ }
+ }
+ return $result;
+}
+
+
+/**
+ * Returns a stand-in CREATE definition to resolve view dependencies
+ *
+ * @param string the database name
+ * @param string the vew name
+ * @param string the end of line sequence
+ *
+ * @return string resulting definition
+ *
+ * @access public
+ */
+function PMA_getTableDefStandIn($db, $view, $crlf) {
+ $create_query = '';
+ if (! empty($GLOBALS['sql_drop_table'])) {
+ $create_query .= 'DROP VIEW IF EXISTS ' . PMA_backquote($view) . ';' . $crlf;
+ }
+
+ $create_query .= 'CREATE TABLE ';
+
+ if (isset($GLOBALS['sql_if_not_exists']) && $GLOBALS['sql_if_not_exists']) {
+ $create_query .= 'IF NOT EXISTS ';
+ }
+ $create_query .= PMA_backquote($view) . ' (' . $crlf;
+ $tmp = array();
+ $columns = PMA_DBI_get_columns_full($db, $view);
+ foreach($columns as $column_name => $definition) {
+ $tmp[] = PMA_backquote($column_name) . ' ' . $definition['Type'] . $crlf;
+ }
+ $create_query .= implode(',', $tmp) . ');';
+ return($create_query);
+}
+
+/**
+ * Returns $table's CREATE definition
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param boolean whether to include creation/update/check dates
+ * @param boolean whether to add semicolon and end-of-line at the end
+ *
+ * @return string resulting schema
+ *
+ * @global boolean whether to add 'drop' statements or not
+ * @global boolean whether to use backquotes to allow the use of special
+ * characters in database, table and fields names or not
+ *
+ * @access public
+ */
+function PMA_getTableDef($db, $table, $crlf, $error_url, $show_dates = false, $add_semicolon = true)
+{
+ global $sql_drop_table;
+ global $sql_backquotes;
+ global $cfgRelation;
+ global $sql_constraints;
+ global $sql_constraints_query; // just the text of the query
+
+ $schema_create = '';
+ $auto_increment = '';
+ $new_crlf = $crlf;
+
+ // need to use PMA_DBI_QUERY_STORE with PMA_DBI_num_rows() in mysqli
+ $result = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_backquote($db) . ' LIKE \'' . PMA_sqlAddslashes($table) . '\'', null, PMA_DBI_QUERY_STORE);
+ if ($result != FALSE) {
+ if (PMA_DBI_num_rows($result) > 0) {
+ $tmpres = PMA_DBI_fetch_assoc($result);
+ // Here we optionally add the AUTO_INCREMENT next value,
+ // but starting with MySQL 5.0.24, the clause is already included
+ // in SHOW CREATE TABLE so we'll remove it below
+ if (isset($GLOBALS['sql_auto_increment']) && !empty($tmpres['Auto_increment'])) {
+ $auto_increment .= ' AUTO_INCREMENT=' . $tmpres['Auto_increment'] . ' ';
+ }
+
+ if ($show_dates && isset($tmpres['Create_time']) && !empty($tmpres['Create_time'])) {
+ $schema_create .= PMA_exportComment($GLOBALS['strStatCreateTime'] . ': ' . PMA_localisedDate(strtotime($tmpres['Create_time'])));
+ $new_crlf = PMA_exportComment() . $crlf;
+ }
+
+ if ($show_dates && isset($tmpres['Update_time']) && !empty($tmpres['Update_time'])) {
+ $schema_create .= PMA_exportComment($GLOBALS['strStatUpdateTime'] . ': ' . PMA_localisedDate(strtotime($tmpres['Update_time'])));
+ $new_crlf = PMA_exportComment() . $crlf;
+ }
+
+ if ($show_dates && isset($tmpres['Check_time']) && !empty($tmpres['Check_time'])) {
+ $schema_create .= PMA_exportComment($GLOBALS['strStatCheckTime'] . ': ' . PMA_localisedDate(strtotime($tmpres['Check_time'])));
+ $new_crlf = PMA_exportComment() . $crlf;
+ }
+ }
+ PMA_DBI_free_result($result);
+ }
+
+ $schema_create .= $new_crlf;
+
+ // no need to generate a DROP VIEW here, it was done earlier
+ if (! empty($sql_drop_table) && ! PMA_Table::isView($db,$table)) {
+ $schema_create .= 'DROP TABLE IF EXISTS ' . PMA_backquote($table, $sql_backquotes) . ';' . $crlf;
+ }
+
+ // Steve Alberty's patch for complete table dump,
+ // Whether to quote table and fields names or not
+ if ($sql_backquotes) {
+ PMA_DBI_query('SET SQL_QUOTE_SHOW_CREATE = 1');
+ } else {
+ PMA_DBI_query('SET SQL_QUOTE_SHOW_CREATE = 0');
+ }
+
+ // I don't see the reason why this unbuffered query could cause problems,
+ // because SHOW CREATE TABLE returns only one row, and we free the
+ // results below. Nonetheless, we got 2 user reports about this
+ // (see bug 1562533) so I remove the unbuffered mode.
+ //$result = PMA_DBI_query('SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table), null, PMA_DBI_QUERY_UNBUFFERED);
+ //
+ // Note: SHOW CREATE TABLE, at least in MySQL 5.1.23, does not
+ // produce a displayable result for the default value of a BIT
+ // field, nor does the mysqldump command. See MySQL bug 35796
+ $result = PMA_DBI_try_query('SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table));
+ // an error can happen, for example the table is crashed
+ $tmp_error = PMA_DBI_getError();
+ if ($tmp_error) {
+ return PMA_exportComment($GLOBALS['strInUse'] . '(' . $tmp_error . ')');
+ }
+
+ if ($result != FALSE && ($row = PMA_DBI_fetch_row($result))) {
+ $create_query = $row[1];
+ unset($row);
+
+ // Convert end of line chars to one that we want (note that MySQL doesn't return query it will accept in all cases)
+ if (strpos($create_query, "(\r\n ")) {
+ $create_query = str_replace("\r\n", $crlf, $create_query);
+ } elseif (strpos($create_query, "(\n ")) {
+ $create_query = str_replace("\n", $crlf, $create_query);
+ } elseif (strpos($create_query, "(\r ")) {
+ $create_query = str_replace("\r", $crlf, $create_query);
+ }
+
+ // Should we use IF NOT EXISTS?
+ if (isset($GLOBALS['sql_if_not_exists'])) {
+ $create_query = preg_replace('/^CREATE TABLE/', 'CREATE TABLE IF NOT EXISTS', $create_query);
+ }
+
+ // are there any constraints to cut out?
+ if (preg_match('@CONSTRAINT|FOREIGN[\s]+KEY@', $create_query)) {
+
+ // Split the query into lines, so we can easily handle it. We know lines are separated by $crlf (done few lines above).
+ $sql_lines = explode($crlf, $create_query);
+ $sql_count = count($sql_lines);
+
+ // lets find first line with constraints
+ for ($i = 0; $i < $sql_count; $i++) {
+ if (preg_match('@^[\s]*(CONSTRAINT|FOREIGN[\s]+KEY)@', $sql_lines[$i])) {
+ break;
+ }
+ }
+
+ // If we really found a constraint
+ if ($i != $sql_count) {
+
+ // remove , from the end of create statement
+ $sql_lines[$i - 1] = preg_replace('@,$@', '', $sql_lines[$i - 1]);
+
+ // prepare variable for constraints
+ if (!isset($sql_constraints)) {
+ if (isset($GLOBALS['no_constraints_comments'])) {
+ $sql_constraints = '';
+ } else {
+ $sql_constraints = $crlf
+ . PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strConstraintsForDumped'])
+ . PMA_exportComment();
+ }
+ }
+
+ // comments for current table
+ if (!isset($GLOBALS['no_constraints_comments'])) {
+ $sql_constraints .= $crlf
+ . PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strConstraintsForTable'] . ' ' . PMA_backquote($table))
+ . PMA_exportComment();
+ }
+
+ // let's do the work
+ $sql_constraints_query .= 'ALTER TABLE ' . PMA_backquote($table) . $crlf;
+ $sql_constraints .= 'ALTER TABLE ' . PMA_backquote($table) . $crlf;
+
+ $first = TRUE;
+ for ($j = $i; $j < $sql_count; $j++) {
+ if (preg_match('@CONSTRAINT|FOREIGN[\s]+KEY@', $sql_lines[$j])) {
+ if (!$first) {
+ $sql_constraints .= $crlf;
+ }
+ if (strpos($sql_lines[$j], 'CONSTRAINT') === FALSE) {
+ $str_tmp = preg_replace('/(FOREIGN[\s]+KEY)/', 'ADD \1', $sql_lines[$j]);
+ $sql_constraints_query .= $str_tmp;
+ $sql_constraints .= $str_tmp;
+ } else {
+ $str_tmp = preg_replace('/(CONSTRAINT)/', 'ADD \1', $sql_lines[$j]);
+ $sql_constraints_query .= $str_tmp;
+ $sql_constraints .= $str_tmp;
+ }
+ $first = FALSE;
+ } else {
+ break;
+ }
+ }
+ $sql_constraints .= ';' . $crlf;
+ $sql_constraints_query .= ';';
+
+ $create_query = implode($crlf, array_slice($sql_lines, 0, $i)) . $crlf . implode($crlf, array_slice($sql_lines, $j, $sql_count - 1));
+ unset($sql_lines);
+ }
+ }
+ $schema_create .= $create_query;
+ }
+
+ // remove a possible "AUTO_INCREMENT = value" clause
+ // that could be there starting with MySQL 5.0.24
+ $schema_create = preg_replace('/AUTO_INCREMENT\s*=\s*([0-9])+/', '', $schema_create);
+
+ $schema_create .= $auto_increment;
+
+ PMA_DBI_free_result($result);
+ return $schema_create . ($add_semicolon ? ';' . $crlf : '');
+} // end of the 'PMA_getTableDef()' function
+
+
+/**
+ * Returns $table's comments, relations etc.
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param boolean whether to include relation comments
+ * @param boolean whether to include mime comments
+ *
+ * @return string resulting comments
+ *
+ * @access public
+ */
+function PMA_getTableComments($db, $table, $crlf, $do_relation = false, $do_mime = false)
+{
+ global $cfgRelation;
+ global $sql_backquotes;
+ global $sql_constraints;
+
+ $schema_create = '';
+
+ // Check if we can use Relations (Mike Beck)
+ if ($do_relation && !empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if ($res_rel && count($res_rel) > 0) {
+ $have_rel = TRUE;
+ } else {
+ $have_rel = FALSE;
+ }
+ } else {
+ $have_rel = FALSE;
+ } // end if
+
+ if ($do_mime && $cfgRelation['mimework']) {
+ if (!($mime_map = PMA_getMIME($db, $table, true))) {
+ unset($mime_map);
+ }
+ }
+
+ if (isset($mime_map) && count($mime_map) > 0) {
+ $schema_create .= $crlf
+ . PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strMIMETypesForTable']. ' ' . PMA_backquote($table, $sql_backquotes) . ':');
+ @reset($mime_map);
+ foreach ($mime_map AS $mime_field => $mime) {
+ $schema_create .= PMA_exportComment(' ' . PMA_backquote($mime_field, $sql_backquotes))
+ . PMA_exportComment(' ' . PMA_backquote($mime['mimetype'], $sql_backquotes));
+ }
+ $schema_create .= PMA_exportComment();
+ }
+
+ if ($have_rel) {
+ $schema_create .= $crlf
+ . PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strRelationsForTable']. ' ' . PMA_backquote($table, $sql_backquotes) . ':');
+ foreach ($res_rel AS $rel_field => $rel) {
+ $schema_create .= PMA_exportComment(' ' . PMA_backquote($rel_field, $sql_backquotes))
+ . PMA_exportComment(' ' . PMA_backquote($rel['foreign_table'], $sql_backquotes)
+ . ' -> ' . PMA_backquote($rel['foreign_field'], $sql_backquotes));
+ }
+ $schema_create .= PMA_exportComment();
+ }
+
+ return $schema_create;
+
+} // end of the 'PMA_getTableComments()' function
+
+/**
+ * Outputs table's structure
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param boolean whether to include relation comments
+ * @param boolean whether to include the pmadb-style column comments
+ * as comments in the structure; this is deprecated
+ * but the parameter is left here because export.php
+ * calls PMA_exportStructure() also for other export
+ * types which use this parameter
+ * @param boolean whether to include mime comments
+ * @param string 'stand_in', 'create_table', 'create_view'
+ * @param string 'server', 'database', 'table'
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportStructure($db, $table, $crlf, $error_url, $relation = FALSE, $comments = FALSE, $mime = FALSE, $dates = FALSE, $export_mode, $export_type)
+{
+ $formatted_table_name = (isset($GLOBALS['sql_backquotes']))
+ ? PMA_backquote($table)
+ : '\'' . $table . '\'';
+ $dump = $crlf
+ . PMA_exportComment(str_repeat('-', 56))
+ . $crlf
+ . PMA_exportComment();
+
+ switch($export_mode) {
+ case 'create_table':
+ $dump .= PMA_exportComment($GLOBALS['strTableStructure'] . ' ' . $formatted_table_name)
+ . PMA_exportComment();
+ $dump .= PMA_getTableDef($db, $table, $crlf, $error_url, $dates);
+ $triggers = PMA_DBI_get_triggers($db, $table);
+ if ($triggers) {
+ $dump .= $crlf
+ . PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strTriggers'] . ' ' . $formatted_table_name)
+ . PMA_exportComment();
+ $delimiter = '//';
+ foreach ($triggers as $trigger) {
+ $dump .= $trigger['drop'] . ';' . $crlf;
+ $dump .= 'DELIMITER ' . $delimiter . $crlf;
+ $dump .= $trigger['create'];
+ $dump .= 'DELIMITER ;' . $crlf;
+ }
+ }
+ break;
+ case 'create_view':
+ $dump .= PMA_exportComment($GLOBALS['strStructureForView'] . ' ' . $formatted_table_name)
+ . PMA_exportComment();
+ // delete the stand-in table previously created (if any)
+ if ($export_type != 'table') {
+ $dump .= 'DROP TABLE IF EXISTS ' . PMA_backquote($table) . ';' . $crlf;
+ }
+ $dump .= PMA_getTableDef($db, $table, $crlf, $error_url, $dates);
+ break;
+ case 'stand_in':
+ $dump .= PMA_exportComment($GLOBALS['strStandInStructureForView'] . ' ' . $formatted_table_name)
+ . PMA_exportComment();
+ // export a stand-in definition to resolve view dependencies
+ $dump .= PMA_getTableDefStandIn($db, $table, $crlf);
+ } // end switch
+
+ $dump .= PMA_getTableComments($db, $table, $crlf, $relation, $mime);
+ // this one is built by PMA_getTableDef() to use in table copy/move
+ // but not in the case of export
+ unset($GLOBALS['sql_constraints_query']);
+
+ return PMA_exportOutputHandler($dump);
+}
+
+/**
+ * Dispatches between the versions of 'getTableContent' to use depending
+ * on the php version
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @global boolean whether to use backquotes to allow the use of special
+ * characters in database, table and fields names or not
+ * @global integer the number of records
+ * @global integer the current record position
+ *
+ * @access public
+ *
+ * @see PMA_getTableContentFast(), PMA_getTableContentOld()
+ *
+ * @author staybyte
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ global $sql_backquotes;
+ global $rows_cnt;
+ global $current_row;
+
+ $formatted_table_name = (isset($GLOBALS['sql_backquotes']))
+ ? PMA_backquote($table)
+ : '\'' . $table . '\'';
+
+ // Do not export data for a VIEW
+ // (For a VIEW, this is called only when exporting a single VIEW)
+ if (PMA_Table::isView($db, $table)) {
+ $head = $crlf
+ . PMA_exportComment()
+ . PMA_exportComment('VIEW ' . ' ' . $formatted_table_name)
+ . PMA_exportComment($GLOBALS['strData'] . ': ' . $GLOBALS['strNone'])
+ . PMA_exportComment()
+ . $crlf;
+
+ if (! PMA_exportOutputHandler($head)) {
+ return FALSE;
+ }
+ return true;
+ }
+
+ // it's not a VIEW
+ $head = $crlf
+ . PMA_exportComment()
+ . PMA_exportComment($GLOBALS['strDumpingData'] . ' ' . $formatted_table_name)
+ . PMA_exportComment()
+ . $crlf;
+
+ if (! PMA_exportOutputHandler($head)) {
+ return FALSE;
+ }
+
+ $buffer = '';
+
+ // analyze the query to get the true column names, not the aliases
+ // (this fixes an undefined index, also if Complete inserts
+ // are used, we did not get the true column name in case of aliases)
+ $analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($sql_query));
+
+ $result = PMA_DBI_try_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ // a possible error: the table has crashed
+ $tmp_error = PMA_DBI_getError();
+ if ($tmp_error) {
+ return PMA_exportOutputHandler(PMA_exportComment($GLOBALS['strInUse'] . ' (' . $tmp_error . ')'));
+ }
+
+ if ($result != FALSE) {
+ $fields_cnt = PMA_DBI_num_fields($result);
+
+ // Get field information
+ $fields_meta = PMA_DBI_get_fields_meta($result);
+ $field_flags = array();
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ $field_flags[$j] = PMA_DBI_field_flags($result, $j);
+ }
+
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (isset($analyzed_sql[0]['select_expr'][$j]['column'])) {
+ $field_set[$j] = PMA_backquote($analyzed_sql[0]['select_expr'][$j]['column'], $sql_backquotes);
+ } else {
+ $field_set[$j] = PMA_backquote($fields_meta[$j]->name, $sql_backquotes);
+ }
+ }
+
+ if (isset($GLOBALS['sql_type']) && $GLOBALS['sql_type'] == 'UPDATE') {
+ // update
+ $schema_insert = 'UPDATE ';
+ if (isset($GLOBALS['sql_ignore'])) {
+ $schema_insert .= 'IGNORE ';
+ }
+ // avoid EOL blank
+ $schema_insert .= PMA_backquote($table, $sql_backquotes) . ' SET';
+ } else {
+ // insert or replace
+ if (isset($GLOBALS['sql_type']) && $GLOBALS['sql_type'] == 'REPLACE') {
+ $sql_command = 'REPLACE';
+ } else {
+ $sql_command = 'INSERT';
+ }
+
+ // delayed inserts?
+ if (isset($GLOBALS['sql_delayed'])) {
+ $insert_delayed = ' DELAYED';
+ } else {
+ $insert_delayed = '';
+ }
+
+ // insert ignore?
+ if (isset($GLOBALS['sql_type']) && $GLOBALS['sql_type'] == 'INSERT' && isset($GLOBALS['sql_ignore'])) {
+ $insert_delayed .= ' IGNORE';
+ }
+
+ // scheme for inserting fields
+ if (isset($GLOBALS['sql_columns'])) {
+ $fields = implode(', ', $field_set);
+ $schema_insert = $sql_command . $insert_delayed .' INTO ' . PMA_backquote($table, $sql_backquotes)
+ // avoid EOL blank
+ . ' (' . $fields . ') VALUES';
+ } else {
+ $schema_insert = $sql_command . $insert_delayed .' INTO ' . PMA_backquote($table, $sql_backquotes)
+ . ' VALUES';
+ }
+ }
+
+ $search = array("\x00", "\x0a", "\x0d", "\x1a"); //\x08\\x09, not required
+ $replace = array('\0', '\n', '\r', '\Z');
+ $current_row = 0;
+ $query_size = 0;
+ if (isset($GLOBALS['sql_extended']) && (!isset($GLOBALS['sql_type']) || $GLOBALS['sql_type'] != 'UPDATE')) {
+ $separator = ',';
+ $schema_insert .= $crlf;
+ } else {
+ $separator = ';';
+ }
+
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $current_row++;
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ // NULL
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $values[] = 'NULL';
+ // a number
+ // timestamp is numeric on some MySQL 4.1, BLOBs are sometimes numeric
+ } elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type != 'timestamp'
+ && ! $fields_meta[$j]->blob) {
+ $values[] = $row[$j];
+ // a true BLOB
+ // - mysqldump only generates hex data when the --hex-blob
+ // option is used, for fields having the binary attribute
+ // no hex is generated
+ // - a TEXT field returns type blob but a real blob
+ // returns also the 'binary' flag
+ } elseif (stristr($field_flags[$j], 'BINARY')
+ && $fields_meta[$j]->blob
+ && isset($GLOBALS['sql_hex_for_blob'])) {
+ // empty blobs need to be different, but '0' is also empty :-(
+ if (empty($row[$j]) && $row[$j] != '0') {
+ $values[] = '\'\'';
+ } else {
+ $values[] = '0x' . bin2hex($row[$j]);
+ }
+ // detection of 'bit' works only on mysqli extension
+ } elseif ($fields_meta[$j]->type == 'bit') {
+ $values[] = "b'" . PMA_sqlAddslashes(PMA_printable_bit_value($row[$j], $fields_meta[$j]->length)) . "'";
+ // something else -> treat as a string
+ } else {
+ $values[] = '\'' . str_replace($search, $replace, PMA_sqlAddslashes($row[$j])) . '\'';
+ } // end if
+ } // end for
+
+ // should we make update?
+ if (isset($GLOBALS['sql_type']) && $GLOBALS['sql_type'] == 'UPDATE') {
+
+ $insert_line = $schema_insert;
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ if (0 == $i) {
+ $insert_line .= ' ';
+ }
+ if ($i > 0) {
+ // avoid EOL blank
+ $insert_line .= ',';
+ }
+ $insert_line .= $field_set[$i] . ' = ' . $values[$i];
+ }
+
+ $insert_line .= ' WHERE ' . PMA_getUniqueCondition($result, $fields_cnt, $fields_meta, $row);
+
+ } else {
+
+ // Extended inserts case
+ if (isset($GLOBALS['sql_extended'])) {
+ if ($current_row == 1) {
+ $insert_line = $schema_insert . '(' . implode(', ', $values) . ')';
+ } else {
+ $insert_line = '(' . implode(', ', $values) . ')';
+ if (isset($GLOBALS['sql_max_query_size']) && $GLOBALS['sql_max_query_size'] > 0 && $query_size + strlen($insert_line) > $GLOBALS['sql_max_query_size']) {
+ if (!PMA_exportOutputHandler(';' . $crlf)) {
+ return FALSE;
+ }
+ $query_size = 0;
+ $current_row = 1;
+ $insert_line = $schema_insert . $insert_line;
+ }
+ }
+ $query_size += strlen($insert_line);
+ }
+ // Other inserts case
+ else {
+ $insert_line = $schema_insert . '(' . implode(', ', $values) . ')';
+ }
+ }
+ unset($values);
+
+ if (!PMA_exportOutputHandler(($current_row == 1 ? '' : $separator . $crlf) . $insert_line)) {
+ return FALSE;
+ }
+
+ } // end while
+ if ($current_row > 0) {
+ if (!PMA_exportOutputHandler(';' . $crlf)) {
+ return FALSE;
+ }
+ }
+ } // end if ($result != FALSE)
+ PMA_DBI_free_result($result);
+
+ return TRUE;
+} // end of the 'PMA_exportData()' function
+}
+?>
diff --git a/libraries/export/texytext.php b/libraries/export/texytext.php
new file mode 100644
index 0000000000..6db4d71f58
--- /dev/null
+++ b/libraries/export/texytext.php
@@ -0,0 +1,336 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Sample export to Texy! text.
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['texytext'] = array(
+ 'text' => 'strTexyText',
+ 'extension' => 'txt',
+ 'mime_type' => 'text/plain',
+ 'options' => array(
+ array('type' => 'bool',
+ 'name' => 'structure',
+ 'text' => 'strStructure',
+ 'force' => 'data'),
+ array('type' => 'bgroup',
+ 'name' => 'data',
+ 'text' => 'strData',
+ 'force' => 'structure'),
+ array('type' => 'text',
+ 'name' => 'null',
+ 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool',
+ 'name' => 'columns',
+ 'text' => 'strPutColNames'),
+ array('type' => 'egroup'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ return true;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ return true;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ return PMA_exportOutputHandler('===' . $GLOBALS['strDatabase'] . ' ' . $db . "\n\n");
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ global $what;
+
+ if (!PMA_exportOutputHandler('== ' . $GLOBALS['strDumpingData'] . ' ' . $table . "\n\n")) {
+ return FALSE;
+ }
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS[$what . '_columns'])) {
+ $text_output = "|------\n";
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ $text_output .= '|' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i)));
+ } // end for
+ $text_output .= "\n|------\n";
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+ } // end if
+
+ // Format the data
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $text_output = '';
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $value = $GLOBALS[$what . '_null'];
+ } elseif ($row[$j] == '0' || $row[$j] != '') {
+ $value = $row[$j];
+ } else {
+ $value = ' ';
+ }
+ $text_output .= '|' . htmlspecialchars($value);
+ } // end for
+ $text_output .= "\n";
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ return TRUE;
+}
+
+function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $dummy)
+{
+ global $cfgRelation;
+
+ if (!PMA_exportOutputHandler('== ' . $GLOBALS['strTableStructure'] . ' ' .$table . "\n\n")) {
+ return FALSE;
+ }
+
+ /**
+ * Get the unique keys in the table
+ */
+ $keys_query = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+ $keys_result = PMA_DBI_query($keys_query);
+ $unique_keys = array();
+ while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+ if ($key['Non_unique'] == 0) {
+ $unique_keys[] = $key['Column_name'];
+ }
+ }
+ PMA_DBI_free_result($keys_result);
+
+ /**
+ * Gets fields properties
+ */
+ PMA_DBI_select_db($db);
+ $local_query = 'SHOW FIELDS FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+ $result = PMA_DBI_query($local_query);
+ $fields_cnt = PMA_DBI_num_rows($result);
+
+ // Check if we can use Relations (Mike Beck)
+ if ($do_relation && !empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if ($res_rel && count($res_rel) > 0) {
+ $have_rel = TRUE;
+ } else {
+ $have_rel = FALSE;
+ }
+ } else {
+ $have_rel = FALSE;
+ } // end if
+
+ /**
+ * Displays the table structure
+ */
+
+ $columns_cnt = 4;
+ if ($do_relation && $have_rel) {
+ $columns_cnt++;
+ }
+ if ($do_comments && $cfgRelation['commwork']) {
+ $columns_cnt++;
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $columns_cnt++;
+ }
+
+ $text_output = "|------\n";
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strField']);
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strType']);
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strNull']);
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strDefault']);
+ if ($do_relation && $have_rel) {
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strLinksTo']);
+ }
+ if ($do_comments) {
+ $text_output .= '|' . htmlspecialchars($GLOBALS['strComments']);
+ $comments = PMA_getComments($db, $table);
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $text_output .= '|' . htmlspecialchars('MIME');
+ $mime_map = PMA_getMIME($db, $table, true);
+ }
+ $text_output .= "\n|------\n";
+
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+
+ $text_output = '';
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ if (eregi('^(set|enum)\((.+)\)$', $type, $tmp)) {
+ $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type_nowrap = ' nowrap="nowrap"';
+ $type = eregi_replace('BINARY', '', $type);
+ $type = eregi_replace('ZEROFILL', '', $type);
+ $type = eregi_replace('UNSIGNED', '', $type);
+ if (empty($type)) {
+ $type = '&nbsp;';
+ }
+
+ $binary = eregi('BINARY', $row['Type']);
+ $unsigned = eregi('UNSIGNED', $row['Type']);
+ $zerofill = eregi('ZEROFILL', $row['Type']);
+ }
+ $strAttribute = '&nbsp;';
+ if ($binary) {
+ $strAttribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $strAttribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $strAttribute = 'UNSIGNED ZEROFILL';
+ }
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != '') {
+ $row['Default'] = 'NULL';
+ }
+ } else {
+ $row['Default'] = $row['Default'];
+ }
+
+ $fmt_pre = '';
+ $fmt_post = '';
+ if (in_array($row['Field'], $unique_keys)) {
+ $fmt_pre = '**' . $fmt_pre;
+ $fmt_post = $fmt_post . '**';
+ }
+ if ($row['Key']=='PRI') {
+ $fmt_pre = '//' . $fmt_pre;
+ $fmt_post = $fmt_post . '//';
+ }
+ $text_output .= '|' . $fmt_pre . htmlspecialchars($row['Field']) . $fmt_post;
+ $text_output .= '|' . htmlspecialchars($type);
+ $text_output .= '|' . htmlspecialchars($row['Null'] == '' ? $GLOBALS['strNo'] : $GLOBALS['strYes']);
+ $text_output .= '|' . htmlspecialchars(isset($row['Default']) ? $row['Default'] : '');
+
+ $field_name = $row['Field'];
+
+ if ($do_relation && $have_rel) {
+ $text_output .= '|' . (isset($res_rel[$field_name]) ? htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') : '');
+ }
+ if ($do_comments && $cfgRelation['commwork']) {
+ $text_output .= '|' . (isset($comments[$field_name]) ? htmlspecialchars($comments[$field_name]) : '');
+ }
+ if ($do_mime && $cfgRelation['mimework']) {
+ $text_output .= '|' . (isset($mime_map[$field_name]) ? htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) : '');
+ }
+
+ $text_output .= "\n";
+
+ if (!PMA_exportOutputHandler($text_output)) {
+ return FALSE;
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+
+ return true;
+}
+
+}
+?>
diff --git a/libraries/export/xls.php b/libraries/export/xls.php
new file mode 100644
index 0000000000..7f7ef27e69
--- /dev/null
+++ b/libraries/export/xls.php
@@ -0,0 +1,218 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build XLS dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+// Check if we have native MS Excel export using PEAR class Spreadsheet_Excel_Writer
+if (!empty($GLOBALS['cfg']['TempDir'])) {
+ @include_once 'Spreadsheet/Excel/Writer.php';
+ if (class_exists('Spreadsheet_Excel_Writer')) {
+ $xls = TRUE;
+ } else {
+ $xls = FALSE;
+ }
+} else {
+ $xls = FALSE;
+}
+
+if ($xls) {
+
+ if (isset($plugin_list)) {
+ $plugin_list['xls'] = array(
+ 'text' => 'strStrucNativeExcel',
+ 'extension' => 'xls',
+ 'mime_type' => 'application/vnd.ms-excel',
+ 'force_file' => true,
+ 'options' => array(
+ array('type' => 'text', 'name' => 'null', 'text' => 'strReplaceNULLBy'),
+ array('type' => 'bool', 'name' => 'columns', 'text' => 'strPutColNames'),
+ array('type' => 'hidden', 'name' => 'data'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+ } else {
+
+/**
+ * Set of functions used to build MS Excel dumps of tables
+ */
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter()
+{
+ global $workbook;
+ global $tmp_filename;
+
+ $res = $workbook->close();
+ if (PEAR::isError($res)) {
+ echo $res->getMessage();
+ return FALSE;
+ }
+ if (!PMA_exportOutputHandler(file_get_contents($tmp_filename))) {
+ return FALSE;
+ }
+ unlink($tmp_filename);
+
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader()
+{
+ global $workbook;
+ global $tmp_filename;
+
+ if (empty($GLOBALS['cfg']['TempDir'])) {
+ return FALSE;
+ }
+ $tmp_filename = tempnam(realpath($GLOBALS['cfg']['TempDir']), 'pma_xls_');
+ $workbook = new Spreadsheet_Excel_Writer($tmp_filename);
+
+ return TRUE;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db)
+{
+ return TRUE;
+}
+
+/**
+ * Outputs the content of a table in CSV format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ global $what;
+ global $workbook;
+
+ $workbook->setTempDir(realpath($GLOBALS['cfg']['TempDir']));
+
+ // Gets the data from the database
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+ $fields_cnt = PMA_DBI_num_fields($result);
+
+ $row = PMA_DBI_fetch_row($result);
+ for ($sheetIndex = 0; ; $sheetIndex++) {
+ // Maximum sheet name length is 31 chars - leave 2 for numeric index
+ $sheetName = substr($table, 0, 29) . ($sheetIndex > 0 ? $sheetIndex : '');
+ $worksheet =& $workbook->addWorksheet($sheetName);
+ $rowIndex = 0;
+
+ // If required, get fields name at the first line
+ if (isset($GLOBALS['xls_columns']) && $GLOBALS['xls_columns']) {
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ $worksheet->write(0, $i, stripslashes(PMA_DBI_field_name($result, $i)));
+ } // end for
+ $worksheet->repeatRows($rowIndex);
+ $worksheet->freezePanes(array($rowIndex + 1, 0, $rowIndex + 1, 0));
+ $rowIndex++;
+ } // end if
+
+ // Format the data (max 65536 rows per worksheet)
+ while ($rowIndex < 65536 && $row) {
+ set_time_limit(0);
+ for ($j = 0; $j < $fields_cnt; $j++) {
+ if (!isset($row[$j]) || is_null($row[$j])) {
+ $worksheet->write($rowIndex, $j, $GLOBALS['xls_null']);
+ } elseif ($row[$j] == '0' || $row[$j] != '') {
+ /**
+ * @todo we should somehow handle character set here!
+ */
+ $worksheet->write($rowIndex, $j, $row[$j]);
+ } else {
+ $worksheet->write($rowIndex, $j, '');
+ }
+ } // end for
+ $rowIndex++;
+ $row = PMA_DBI_fetch_row($result);
+ } // end while
+ if (!$row) {
+ break;
+ }
+ } // end for
+ PMA_DBI_free_result($result);
+
+ return TRUE;
+}
+
+ }
+}
+?>
diff --git a/libraries/export/xml.php b/libraries/export/xml.php
new file mode 100644
index 0000000000..bc99eb0063
--- /dev/null
+++ b/libraries/export/xml.php
@@ -0,0 +1,180 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build XML dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (strlen($GLOBALS['db'])) { /* Can't do server export */
+
+if (isset($plugin_list)) {
+ $plugin_list['xml'] = array(
+ 'text' => 'strXML',
+ 'extension' => 'xml',
+ 'mime_type' => 'text/xml',
+ 'options' => array(
+ array('type' => 'hidden', 'name' => 'data'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text) {
+ return PMA_exportOutputHandler('<!-- ' . $text . ' -->' . $GLOBALS['crlf']);
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter() {
+ return TRUE;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader() {
+ global $crlf;
+ global $cfg;
+
+ if ($GLOBALS['output_charset_conversion']) {
+ $charset = $GLOBALS['charset_of_file'];
+ } else {
+ $charset = $GLOBALS['charset'];
+ }
+
+ $head = '<?xml version="1.0" encoding="' . $charset . '" ?>' . $crlf
+ . '<!--' . $crlf
+ . '-' . $crlf
+ . '- phpMyAdmin XML Dump' . $crlf
+ . '- version ' . PMA_VERSION . $crlf
+ . '- http://www.phpmyadmin.net' . $crlf
+ . '-' . $crlf
+ . '- ' . $GLOBALS['strHost'] . ': ' . $cfg['Server']['host'];
+ if (!empty($cfg['Server']['port'])) {
+ $head .= ':' . $cfg['Server']['port'];
+ }
+ $head .= $crlf
+ . '- ' . $GLOBALS['strGenTime'] . ': ' . PMA_localisedDate() . $crlf
+ . '- ' . $GLOBALS['strServerVersion'] . ': ' . substr(PMA_MYSQL_INT_VERSION, 0, 1) . '.' . (int) substr(PMA_MYSQL_INT_VERSION, 1, 2) . '.' . (int) substr(PMA_MYSQL_INT_VERSION, 3) . $crlf
+ . '- ' . $GLOBALS['strPHPVersion'] . ': ' . phpversion() . $crlf
+ . '-->' . $crlf . $crlf;
+ return PMA_exportOutputHandler($head);
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db) {
+ global $crlf;
+ $head = '<!--' . $crlf
+ . '- ' . $GLOBALS['strDatabase'] . ': ' . (isset($GLOBALS['use_backquotes']) ? PMA_backquote($db) : '\'' . $db . '\''). $crlf
+ . '-->' . $crlf
+ . '<' . $db . '>' . $crlf;
+ return PMA_exportOutputHandler($head);
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db) {
+ global $crlf;
+ return PMA_exportOutputHandler('</' . $db . '>' . $crlf);
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db) {
+ return TRUE;
+}
+
+
+/**
+ * Outputs the content of a table
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+
+ $columns_cnt = PMA_DBI_num_fields($result);
+ for ($i = 0; $i < $columns_cnt; $i++) {
+ $columns[$i] = stripslashes(PMA_DBI_field_name($result, $i));
+ }
+ unset($i);
+
+ $buffer = ' <!-- ' . $GLOBALS['strTable'] . ' ' . $table . ' -->' . $crlf;
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+
+ while ($record = PMA_DBI_fetch_row($result)) {
+ $buffer = ' <' . $table . '>' . $crlf;
+ for ($i = 0; $i < $columns_cnt; $i++) {
+ if (isset($record[$i]) && !is_null($record[$i])) {
+ $buffer .= ' <' . $columns[$i] . '>' . htmlspecialchars($record[$i])
+ . '</' . $columns[$i] . '>' . $crlf;
+ }
+ }
+ $buffer .= ' </' . $table . '>' . $crlf;
+
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+ }
+ PMA_DBI_free_result($result);
+
+ return TRUE;
+} // end of the 'PMA_getTableXML()' function
+}
+}
+?>
diff --git a/libraries/export/yaml.php b/libraries/export/yaml.php
new file mode 100644
index 0000000000..a44ceecb05
--- /dev/null
+++ b/libraries/export/yaml.php
@@ -0,0 +1,176 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used to build YAML dumps of tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['yaml'] = array(
+ 'text' => 'YAML',
+ 'extension' => 'yml',
+ 'mime_type' => 'text/yaml',
+ 'force_file' => true,
+ 'options' => array(
+ array(
+ 'type' => 'hidden',
+ 'name' => 'data',
+ ),
+ ),
+ 'options_text' => 'strOptions',
+ );
+} else {
+
+/**
+ * Set of functions used to build exports of tables
+ */
+
+/**
+ * Outputs comment
+ *
+ * @param string Text of comment
+ *
+ * @return bool Whether it suceeded
+ */
+function PMA_exportComment($text)
+{
+ PMA_exportOutputHandler('# ' . $text . $GLOBALS['crlf']);
+ return true;
+}
+
+/**
+ * Outputs export footer
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportFooter()
+{
+ PMA_exportOutputHandler('...' . $GLOBALS['crlf']);
+ return true;
+}
+
+/**
+ * Outputs export header
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportHeader()
+{
+ PMA_exportOutputHandler('%YAML 1.1' . $GLOBALS['crlf'] . '---' . $GLOBALS['crlf']);
+ return true;
+}
+
+/**
+ * Outputs database header
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBHeader($db)
+{
+ return true;
+}
+
+/**
+ * Outputs database footer
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBFooter($db)
+{
+ return true;
+}
+
+/**
+ * Outputs create database database
+ *
+ * @param string Database name
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportDBCreate($db)
+{
+ return true;
+}
+
+/**
+ * Outputs the content of a table in YAML format
+ *
+ * @param string the database name
+ * @param string the table name
+ * @param string the end of line sequence
+ * @param string the url to go back in case of error
+ * @param string SQL query for obtaining data
+ *
+ * @return bool Whether it suceeded
+ *
+ * @access public
+ */
+function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+{
+ $result = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+
+ $columns_cnt = PMA_DBI_num_fields($result);
+ for ($i = 0; $i < $columns_cnt; $i++) {
+ $columns[$i] = stripslashes(PMA_DBI_field_name($result, $i));
+ }
+ unset($i);
+
+ $buffer = '';
+ while ($record = PMA_DBI_fetch_row($result)) {
+ $buffer = '-' . $crlf;
+ for ($i = 0; $i < $columns_cnt; $i++) {
+ if (! isset($record[$i])) {
+ continue;
+ }
+
+ $column = $columns[$i];
+
+ if (is_null($record[$i])) {
+ $buffer .= ' ' . $column . ': null' . $crlf;
+ continue;
+ }
+
+ if (is_numeric($record[$i])) {
+ $buffer .= ' ' . $column . ': ' . $record[$i] . $crlf;
+ continue;
+ }
+
+ $record[$i] = preg_replace('/\r\n|\r|\n/', $crlf.' ', $record[$i]);
+ if (strstr($record[$i], $crlf))
+ $record[$i] = '|-' . $crlf . ' '.$record[$i];
+
+ $buffer .= ' ' . $column . ': ' . $record[$i] . $crlf;
+ }
+
+ if (!PMA_exportOutputHandler($buffer)) {
+ return FALSE;
+ }
+ }
+ PMA_DBI_free_result($result);
+
+ return true;
+}
+
+}
+?>
diff --git a/libraries/file_listing.php b/libraries/file_listing.php
new file mode 100644
index 0000000000..8f6c0a6cda
--- /dev/null
+++ b/libraries/file_listing.php
@@ -0,0 +1,95 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Functions for listing directories
+ *
+ * @todo rename to file_listing.lib.php
+ * @version $Id$
+ */
+
+/**
+ * Returns array of filtered file names
+ *
+ * @param string directory to list
+ * @param string regular expression to match files
+ * @returns array sorted file list on success, FALSE on failure
+ */
+function PMA_getDirContent($dir, $expression = '')
+{
+ if (file_exists($dir) && $handle = @opendir($dir)) {
+ $result = array();
+ if (substr($dir, -1) != '/') {
+ $dir .= '/';
+ }
+ while ($file = @readdir($handle)) {
+ // for PHP < 5.2.4, is_file() gives a warning when using open_basedir
+ // and verifying '..' or '.'
+ if ('.' != $file && '..' != $file && is_file($dir . $file) && ($expression == '' || preg_match($expression, $file))) {
+ $result[] = $file;
+ }
+ }
+ @closedir($handle);
+ asort($result);
+ return $result;
+ } else {
+ return FALSE;
+ }
+}
+
+/**
+ * Returns options of filtered file names
+ *
+ * @param string directory to list
+ * @param string regullar expression to match files
+ * @param string currently active choice
+ * @returns array sorted file list on success, FALSE on failure
+ */
+function PMA_getFileSelectOptions($dir, $extensions = '', $active = '')
+{
+ $list = PMA_getDirContent($dir, $extensions);
+ if ($list === FALSE) {
+ return FALSE;
+ }
+ $result = '';
+ foreach ($list as $key => $val) {
+ $result .= '<option value="'. htmlspecialchars($val) . '"';
+ if ($val == $active) {
+ $result .= ' selected="selected"';
+ }
+ $result .= '>' . htmlspecialchars($val) . '</option>' . "\n";
+ }
+ return $result;
+}
+
+/**
+ * Get currently supported decompressions.
+ *
+ * @returns string | separated list of extensions usable in PMA_getDirContent
+ */
+function PMA_supportedDecompressions()
+{
+ global $cfg;
+
+ $compressions = '';
+
+ if ($cfg['GZipDump'] && @function_exists('gzopen')) {
+ if (!empty($compressions)) {
+ $compressions .= '|';
+ }
+ $compressions .= 'gz';
+ }
+ if ($cfg['BZipDump'] && @function_exists('bzopen')) {
+ if (!empty($compressions)) {
+ $compressions .= '|';
+ }
+ $compressions .= 'bz2';
+ }
+ if ($cfg['ZipDump'] && @function_exists('gzinflate')) {
+ if (!empty($compressions)) {
+ $compressions .= '|';
+ }
+ $compressions .= 'zip';
+ }
+
+ return $compressions;
+}
diff --git a/libraries/footer.inc.php b/libraries/footer.inc.php
new file mode 100644
index 0000000000..09036b5770
--- /dev/null
+++ b/libraries/footer.inc.php
@@ -0,0 +1,221 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * finishes HTML output
+ *
+ * updates javascript variables in index.php for correct working with querywindow
+ * and navigation frame refreshing
+ *
+ * send buffered data if buffered
+ *
+ * WARNING: This script has to be included at the very end of your code because
+ * it will stop the script execution!
+ *
+ * always use $GLOBALS, as this script is also included by functions
+ *
+ * @uses $_REQUEST['no_history']
+ * @uses $GLOBALS['lang']
+ * @uses $GLOBALS['collation_connection']
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['error_message']
+ * @uses $GLOBALS['reload']
+ * @uses $GLOBALS['sql_query']
+ * @uses $GLOBALS['focus_querywindow']
+ * @uses $GLOBALS['checked_special']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['controllink'] to close it
+ * @uses $GLOBALS['userlink'] to close it
+ * @uses $cfg['Server']['user']
+ * @uses $cfg['NavigationBarIconic']
+ * @uses $cfg['DBG']['enable']
+ * @uses $cfg['DBG']['profile']['enable']
+ * @uses $GLOBALS['strOpenNewWindow']
+ * @uses $cfg['MaxCharactersInDisplayedSQL']
+ * @uses PMA_isValid()
+ * @uses PMA_setHistory()
+ * @uses PMA_ifSetOr()
+ * @uses PMA_escapeJsString()
+ * @uses PMA_getenv()
+ * @uses PMA_generate_common_url()
+ * @uses basename()
+ * @uses file_exists()
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * for PMA_setHistory()
+ */
+require_once './libraries/relation.lib.php';
+
+if (! PMA_isValid($_REQUEST['no_history']) && empty($GLOBALS['error_message'])
+ && ! empty($GLOBALS['sql_query'])) {
+ PMA_setHistory(PMA_ifSetOr($GLOBALS['db'], ''),
+ PMA_ifSetOr($GLOBALS['table'], ''),
+ $GLOBALS['cfg']['Server']['user'],
+ $GLOBALS['sql_query']);
+}
+
+if ($GLOBALS['error_handler']->hasDisplayErrors()) {
+ echo '<div>';
+ $GLOBALS['error_handler']->dispErrors();
+ echo '</div>';
+}
+
+if (count($GLOBALS['footnotes'])) {
+ echo '<div class="notice">';
+ foreach ($GLOBALS['footnotes'] as $footnote) {
+ echo '<span id="footnote_' . $footnote['nr'] . '"><sup>'
+ . $footnote['nr'] . '</sup> ' . $footnote['note'] . '</span><br />';
+ }
+ echo '</div>';
+}
+
+if (! empty($_SESSION['debug'])) {
+ $sum_time = 0;
+ $sum_exec = 0;
+ foreach ($_SESSION['debug']['queries'] as $query) {
+ $sum_time += $query['count'] * $query['time'];
+ $sum_exec += $query['count'];
+ }
+
+ echo '<div>';
+ echo count($_SESSION['debug']['queries']) . ' queries executed'
+ . $sum_exec . ' times in ' . $sum_time . ' seconds';
+ echo '<pre>';
+ print_r($_SESSION['debug']);
+ echo '</pre>';
+ echo '</div>';
+ $_SESSION['debug'] = array();
+}
+
+?>
+<script type="text/javascript">
+//<![CDATA[
+<?php
+if (empty($GLOBALS['error_message'])) {
+ ?>
+// updates current settings
+if (window.parent.setAll) {
+ window.parent.setAll('<?php
+ echo PMA_escapeJsString($GLOBALS['lang']) . "', '";
+ echo PMA_escapeJsString($GLOBALS['collation_connection']) . "', '";
+ echo PMA_escapeJsString($GLOBALS['server']) . "', '";
+ echo PMA_escapeJsString(PMA_ifSetOr($GLOBALS['db'], '')) . "', '";
+ echo PMA_escapeJsString(PMA_ifSetOr($GLOBALS['table'], '')) . "', '";
+ echo PMA_escapeJsString($_SESSION[' PMA_token ']);?>');
+}
+ <?php
+ if (! empty($GLOBALS['reload'])) {
+ ?>
+// refresh navigation frame content
+if (window.parent.refreshNavigation) {
+ window.parent.refreshNavigation();
+}
+ <?php
+ }
+ ?>
+// set current db, table and sql query in the querywindow
+if (window.parent.reload_querywindow) {
+ window.parent.reload_querywindow(
+ '<?php echo PMA_escapeJsString(PMA_ifSetOr($GLOBALS['db'], '')) ?>',
+ '<?php echo PMA_escapeJsString(PMA_ifSetOr($GLOBALS['table'], '')) ?>',
+ '<?php echo strlen($GLOBALS['sql_query']) > $GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] ? PMA_escapeJsString($GLOBALS['sql_query']) : ''; ?>');
+}
+ <?php
+}
+
+if (! empty($GLOBALS['focus_querywindow'])) {
+ ?>
+// set focus to the querywindow
+if (parent.querywindow && !parent.querywindow.closed && parent.querywindow.location) {
+ self.focus();
+}
+ <?php
+}
+?>
+
+if (window.parent.frame_content) {
+ // reset content frame name, as querywindow needs to set a unique name
+ // before submitting form data, and navigation frame needs the original name
+ if (typeof(window.parent.frame_content.name) != 'undefined'
+ && window.parent.frame_content.name != 'frame_content') {
+ window.parent.frame_content.name = 'frame_content';
+ }
+ if (typeof(window.parent.frame_content.id) != 'undefined'
+ && window.parent.frame_content.id != 'frame_content') {
+ window.parent.frame_content.id = 'frame_content';
+ }
+ //window.parent.frame_content.setAttribute('name', 'frame_content');
+ //window.parent.frame_content.setAttribute('id', 'frame_content');
+}
+//]]>
+</script>
+<?php
+
+// Link to itself to replicate windows including frameset
+if (!isset($GLOBALS['checked_special'])) {
+ $GLOBALS['checked_special'] = false;
+}
+
+if (PMA_getenv('SCRIPT_NAME') && empty($_POST) && !$GLOBALS['checked_special']) {
+ echo '<div id="selflink" class="print_ignore">' . "\n";
+ $url_params['target'] = basename(PMA_getenv('SCRIPT_NAME'));
+ echo '<a href="index.php' . PMA_generate_common_url($url_params) . '"'
+ . ' title="' . $GLOBALS['strOpenNewWindow'] . '" target="_blank">';
+ /*
+ echo '<a href="index.php?target=' . basename(PMA_getenv('SCRIPT_NAME'));
+ $url = PMA_generate_common_url($GLOBALS['db'], $GLOBALS['table']);
+ if (!empty($url)) {
+ echo '&amp;' . $url;
+ }
+ echo '" target="_blank">';
+ */
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ echo '<img class="icon" src="'. $GLOBALS['pmaThemeImage'] . 'window-new.png"'
+ . ' alt="' . $GLOBALS['strOpenNewWindow'] . '" />';
+ }
+ if ($GLOBALS['cfg']['NavigationBarIconic'] !== true) {
+ echo $GLOBALS['strOpenNewWindow'];
+ }
+ echo '</a>' . "\n";
+ echo '</div>' . "\n";
+}
+
+// Include possible custom footers
+if (file_exists('./config.footer.inc.php')) {
+ require './config.footer.inc.php';
+}
+
+
+/**
+ * Generates profiling data if requested
+ */
+
+// profiling deactivated due to licensing issues
+if (! empty($GLOBALS['cfg']['DBG']['php'])
+ && ! empty($GLOBALS['cfg']['DBG']['profile']['enable'])) {
+ //run the basic setup code first
+ require_once './libraries/dbg/setup.php';
+ //if the setup ran fine, then do the profiling
+ /*
+ if (! empty($GLOBALS['DBG'])) {
+ require_once './libraries/dbg/profiling.php';
+ dbg_dump_profiling_results();
+ }
+ */
+}
+
+?>
+</body>
+</html>
+<?php
+/**
+ * Stops the script execution
+ */
+exit;
+?>
diff --git a/libraries/grab_globals.lib.php b/libraries/grab_globals.lib.php
new file mode 100644
index 0000000000..72a63e56b2
--- /dev/null
+++ b/libraries/grab_globals.lib.php
@@ -0,0 +1,123 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * This library grabs the names and values of the variables sent or posted to a
+ * script in $_GET, $_POST and $_FILES superglobals and sets simple globals
+ * variables from them. It does the same work for $HTTP_ACCEPT_LANGUAGE and
+ * $HTTP_AUTHORIZATION.
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * copy values from one array to another, usually from a superglobal into $GLOBALS
+ *
+ * @uses $GLOBALS['_import_blacklist']
+ * @uses preg_replace()
+ * @uses array_keys()
+ * @uses array_unique()
+ * @uses stripslashes()
+ * @param array $array values from
+ * @param array $target values to
+ * @param boolean $sanitize prevent importing key names in $_import_blacklist
+ */
+function PMA_recursive_extract($array, &$target, $sanitize = true)
+{
+ if (! is_array($array)) {
+ return false;
+ }
+
+ if ($sanitize) {
+ $valid_variables = preg_replace($GLOBALS['_import_blacklist'], '',
+ array_keys($array));
+ $valid_variables = array_unique($valid_variables);
+ } else {
+ $valid_variables = array_keys($array);
+ }
+
+ foreach ($valid_variables as $key) {
+
+ if (strlen($key) === 0) {
+ continue;
+ }
+
+ if (is_array($array[$key])) {
+ // there could be a variable coming from a cookie of
+ // another application, with the same name as this array
+ unset($target[$key]);
+
+ PMA_recursive_extract($array[$key], $target[$key], false);
+ } else {
+ $target[$key] = $array[$key];
+ }
+ }
+ return true;
+}
+
+
+/**
+ * @var array $_import_blacklist variable names that should NEVER be imported
+ * from superglobals
+ */
+$_import_blacklist = array(
+ '/^cfg$/i', // PMA configuration
+ '/^server$/i', // selected server
+ '/^db$/i', // page to display
+ '/^table$/i', // page to display
+ '/^goto$/i', // page to display
+ '/^back$/i', // the page go back
+ '/^lang$/i', // selected language
+ '/^convcharset$/i', // PMA convert charset
+ '/^collation_connection$/i', //
+ '/^set_theme$/i', //
+ '/^sql_query$/i', // the query to be executed
+ '/^GLOBALS$/i', // the global scope
+ '/^str.*$/i', // PMA localized strings
+ '/^error_handler.*$/i', // the error handler
+ '/^_.*$/i', // PMA does not use variables starting with _ from extern
+ '/^.*\s+.*$/i', // no whitespaces anywhere
+ '/^[0-9]+.*$/i', // numeric variable names
+ //'/^PMA_.*$/i', // other PMA variables
+);
+
+if (! empty($_GET)) {
+ PMA_recursive_extract($_GET, $GLOBALS);
+}
+
+if (! empty($_POST)) {
+ PMA_recursive_extract($_POST, $GLOBALS);
+}
+
+if (! empty($_FILES)) {
+ $_valid_variables = preg_replace($GLOBALS['_import_blacklist'], '', array_keys($_FILES));
+ foreach ($_valid_variables as $name) {
+ if (strlen($name) != 0) {
+ $$name = $_FILES[$name]['tmp_name'];
+ ${$name . '_name'} = $_FILES[$name]['name'];
+ }
+ }
+ unset($name, $value);
+}
+
+/**
+ * globalize some environment variables
+ */
+$server_vars = array('HTTP_ACCEPT_LANGUAGE', 'HTTP_AUTHORIZATION');
+foreach ($server_vars as $current) {
+ // it's not important HOW we detect html tags
+ // it's more important to prevent XSS
+ // so it's not important if we result in an invalid string,
+ // it's even better than a XSS capable string
+ if (PMA_getenv($current) && false === strpos(PMA_getenv($current), '<')) {
+ $$current = PMA_getenv($current);
+ // already imported by register_globals?
+ } elseif (! isset($$current) || false !== strpos($$current, '<')) {
+ $$current = '';
+ }
+}
+unset($server_vars, $current, $_import_blacklist);
+
+?>
diff --git a/libraries/header.inc.php b/libraries/header.inc.php
new file mode 100644
index 0000000000..52dc941939
--- /dev/null
+++ b/libraries/header.inc.php
@@ -0,0 +1,165 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+if (empty($GLOBALS['is_header_sent'])) {
+
+ /**
+ * Gets a core script and starts output buffering work
+ */
+ require_once './libraries/common.inc.php';
+ require_once './libraries/ob.lib.php';
+ PMA_outBufferPre();
+
+ // garvin: For re-usability, moved http-headers and stylesheets
+ // to a seperate file. It can now be included by header.inc.php,
+ // querywindow.php.
+
+ require_once './libraries/header_http.inc.php';
+ require_once './libraries/header_meta_style.inc.php';
+ require_once './libraries/header_scripts.inc.php';
+ ?>
+ <meta name="OBGZip" content="<?php echo ($GLOBALS['cfg']['OBGzip'] ? 'true' : 'false'); ?>" />
+ <?php /* remove vertical scroll bar bug in ie */ ?>
+ <!--[if IE 6]>
+ <style type="text/css">
+ /* <![CDATA[ */
+ html {
+ overflow-y: scroll;
+ }
+ /* ]]> */
+ </style>
+ <![endif]-->
+</head>
+
+<body>
+ <?php
+
+ // Include possible custom headers
+ if (file_exists('./config.header.inc.php')) {
+ require './config.header.inc.php';
+ }
+
+
+ // message of "Cookies required" displayed for auth_type http or config
+ // note: here, the decoration won't work because without cookies,
+ // our standard CSS is not operational
+ if (empty($_COOKIE)) {
+ PMA_Message::notice('strCookiesRequired')->display();
+ }
+
+ if (!defined('PMA_DISPLAY_HEADING')) {
+ define('PMA_DISPLAY_HEADING', 1);
+ }
+
+ /**
+ * Display heading if needed. Design can be set in css file.
+ */
+
+ if (PMA_DISPLAY_HEADING && $GLOBALS['server'] > 0) {
+ $server_info = (!empty($GLOBALS['cfg']['Server']['verbose'])
+ ? $GLOBALS['cfg']['Server']['verbose']
+ : $GLOBALS['cfg']['Server']['host'] . (empty($GLOBALS['cfg']['Server']['port'])
+ ? ''
+ : ':' . $GLOBALS['cfg']['Server']['port']
+ )
+ );
+ $item = '<a href="%1$s?%2$s" class="item">';
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ $separator = ' <span class="separator"><img class="icon" src="' . $GLOBALS['pmaThemeImage'] . 'item_ltr.png" width="5" height="9" alt="-" /></span>' . "\n";
+ $item .= ' <img class="icon" src="' . $GLOBALS['pmaThemeImage'] . '%5$s" width="16" height="16" alt="" /> ' . "\n";
+ } else {
+ $separator = ' <span class="separator"> - </span>' . "\n";
+ }
+
+ if ($GLOBALS['cfg']['NavigationBarIconic'] !== true) {
+ $item .= '%4$s: ';
+ }
+ $item .= '%3$s</a>' . "\n";
+
+ echo '<div id="serverinfo">' . "\n";
+ printf($item,
+ $GLOBALS['cfg']['DefaultTabServer'],
+ PMA_generate_common_url(),
+ htmlspecialchars($server_info),
+ $GLOBALS['strServer'],
+ 's_host.png');
+
+ if (strlen($GLOBALS['db'])) {
+
+ echo $separator;
+ printf($item,
+ $GLOBALS['cfg']['DefaultTabDatabase'],
+ PMA_generate_common_url($GLOBALS['db']),
+ htmlspecialchars($GLOBALS['db']),
+ $GLOBALS['strDatabase'],
+ 's_db.png');
+
+ if (strlen($GLOBALS['table'])) {
+ require_once './libraries/tbl_info.inc.php';
+
+ echo $separator;
+ printf($item,
+ $GLOBALS['cfg']['DefaultTabTable'],
+ PMA_generate_common_url($GLOBALS['db'], $GLOBALS['table']),
+ str_replace(' ', '&nbsp;', htmlspecialchars($GLOBALS['table'])),
+ (isset($GLOBALS['tbl_is_view']) && $GLOBALS['tbl_is_view'] ? $GLOBALS['strView'] : $GLOBALS['strTable']),
+ (isset($GLOBALS['tbl_is_view']) && $GLOBALS['tbl_is_view'] ? 'b_views' : 's_tbl') . '.png');
+
+ /**
+ * Displays table comment
+ * @uses $show_comment from libraries/tbl_info.inc.php
+ * @uses $GLOBALS['avoid_show_comment'] from tbl_relation.php
+ */
+ if (!empty($show_comment) && !isset($GLOBALS['avoid_show_comment'])) {
+ if (strstr($show_comment, '; InnoDB free')) {
+ $show_comment = preg_replace('@; InnoDB free:.*?$@', '', $show_comment);
+ }
+ echo '<span class="table_comment" id="span_table_comment">'
+ .'&quot;' . htmlspecialchars($show_comment)
+ .'&quot;</span>' . "\n";
+ } // end if
+ } else {
+ // no table selected, display database comment if present
+ /**
+ * Settings for relations stuff
+ */
+ require_once './libraries/relation.lib.php';
+ $cfgRelation = PMA_getRelationsParam();
+
+ // Get additional information about tables for tooltip is done
+ // in libraries/db_info.inc.php only once
+ if ($cfgRelation['commwork']) {
+ $comment = PMA_getDbComment($GLOBALS['db']);
+ /**
+ * Displays table comment
+ */
+ if (! empty($comment)) {
+ echo '<span class="table_comment"'
+ . ' id="span_table_comment">&quot;'
+ . htmlspecialchars($comment)
+ . '&quot;</span>' . "\n";
+ } // end if
+ }
+ }
+ }
+ echo '</div>';
+
+ }
+ /**
+ * Sets a variable to remember headers have been sent
+ */
+ $GLOBALS['is_header_sent'] = true;
+}
+?>
diff --git a/libraries/header_http.inc.php b/libraries/header_http.inc.php
new file mode 100644
index 0000000000..a75c3488ec
--- /dev/null
+++ b/libraries/header_http.inc.php
@@ -0,0 +1,30 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
+ die("GLOBALS overwrite attempt");
+}
+
+/**
+ * Sends http headers
+ */
+$GLOBALS['now'] = gmdate('D, d M Y H:i:s') . ' GMT';
+header('Expires: ' . $GLOBALS['now']); // rfc2616 - Section 14.21
+header('Last-Modified: ' . $GLOBALS['now']);
+header('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
+header('Pragma: no-cache'); // HTTP/1.0
+if (!defined('IS_TRANSFORMATION_WRAPPER')) {
+ // Define the charset to be used
+ header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
+}
+?>
diff --git a/libraries/header_meta_style.inc.php b/libraries/header_meta_style.inc.php
new file mode 100644
index 0000000000..96183fce2e
--- /dev/null
+++ b/libraries/header_meta_style.inc.php
@@ -0,0 +1,55 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
+ die("GLOBALS overwrite attempt");
+}
+
+/**
+ * Sends the beginning of the html page then returns to the calling script
+ */
+// Defines the cell alignment values depending on text direction
+if ($GLOBALS['text_dir'] == 'ltr') {
+ $GLOBALS['cell_align_left'] = 'left';
+ $GLOBALS['cell_align_right'] = 'right';
+} else {
+ $GLOBALS['cell_align_left'] = 'right';
+ $GLOBALS['cell_align_right'] = 'left';
+}
+// removes the bug with the horizontal scrollbar in IE (it's allways shown, if need it or not)
+// xml declaration moves IE into quirks mode, making much trouble with CSS
+/* echo '<?xml version="1.0" encoding="' . $GLOBALS['charset'] . '"?>'; */
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $GLOBALS['available_languages'][$GLOBALS['lang']][2]; ?>" lang="<?php echo $GLOBALS['available_languages'][$GLOBALS['lang']][2]; ?>" dir="<?php echo $GLOBALS['text_dir']; ?>">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $GLOBALS['charset']; ?>" />
+ <link rel="icon" href="./favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+ <title><?php
+ if (!empty($page_title)) {
+ echo htmlspecialchars($page_title);
+ } else {
+ echo 'phpMyAdmin';
+ }
+?></title>
+ <link rel="stylesheet" type="text/css" href="<?php echo defined('PMA_PATH_TO_BASEDIR') ? PMA_PATH_TO_BASEDIR : ''; ?>phpmyadmin.css.php?<?php echo PMA_generate_common_url(); ?>&amp;js_frame=<?php echo isset($print_view) ? 'print' : 'right'; ?>&amp;nocache=<?php echo $_SESSION['PMA_Config']->getThemeUniqueValue(); ?>" />
+<?php if (defined('PMA_MOORAINBOW')) { ?>
+ <link rel="stylesheet" type="text/css" href="js/mooRainbow/mooRainbow.css" />
+<?php
+ }
+?>
+ <link rel="stylesheet" type="text/css" href="<?php echo defined('PMA_PATH_TO_BASEDIR') ? PMA_PATH_TO_BASEDIR : ''; ?>print.css" media="print" />
+ <meta name="robots" content="noindex,nofollow" />
diff --git a/libraries/header_printview.inc.php b/libraries/header_printview.inc.php
new file mode 100644
index 0000000000..04e03960fc
--- /dev/null
+++ b/libraries/header_printview.inc.php
@@ -0,0 +1,74 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Gets a core script and starts output buffering work
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/ob.lib.php';
+PMA_outBufferPre();
+
+// Check parameters
+
+PMA_checkParameters(array('db', 'full_sql_query'));
+
+
+// garvin: For re-usability, moved http-headers
+// to a seperate file. It can now be included by libraries/header.inc.php,
+// querywindow.php.
+
+require_once './libraries/header_http.inc.php';
+
+/**
+ * Sends the beginning of the html page then returns to the calling script
+ */
+// Defines the cell alignment values depending on text direction
+if ($text_dir == 'ltr') {
+ $cell_align_left = 'left';
+ $cell_align_right = 'right';
+} else {
+ $cell_align_left = 'right';
+ $cell_align_right = 'left';
+}
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $available_languages[$lang][2]; ?>" lang="<?php echo $available_languages[$lang][2]; ?>" dir="<?php echo $text_dir; ?>">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset; ?>" />
+<link rel="icon" href="./favicon.ico" type="image/x-icon" />
+<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+<title><?php echo $strSQLResult; ?> - phpMyAdmin <?php echo PMA_VERSION ?></title>
+<link rel="stylesheet" type="text/css" href="phpmyadmin.css.php?<?php echo PMA_generate_common_url('', ''); ?>&amp;js_frame=print&amp;nocache=<?php echo $_SESSION['PMA_Config']->getThemeUniqueValue(); ?>" />
+</style>
+</head>
+
+<body bgcolor="#ffffff">
+<h1><?php echo $strSQLResult; ?></h1>
+<p>
+ <strong><?php echo $strHost; ?>:</strong> <?php echo $cfg['Server']['verbose'] ? $cfg['Server']['verbose'] : $cfg['Server']['host'] . ((!empty($cfg['Server']['port'])) ? ':' . $cfg['Server']['port'] : ''); ?><br />
+ <strong><?php echo $strDatabase; ?>:</strong> <?php echo htmlspecialchars($db); ?><br />
+ <strong><?php echo $strGenTime; ?>:</strong> <?php echo PMA_localisedDate(); ?><br />
+ <strong><?php echo $strGenBy; ?>:</strong> phpMyAdmin&nbsp;<?php echo PMA_VERSION; ?>&nbsp;/ MySQL&nbsp;<?php echo PMA_MYSQL_STR_VERSION; ?><br />
+ <strong><?php echo $strSQLQuery; ?>:</strong> <?php echo htmlspecialchars($full_sql_query); ?>;
+ <?php if (isset($num_rows)) { ?><br />
+ <strong><?php echo $strRows; ?>:</strong> <?php echo $num_rows; ?>
+ <?php } ?>
+</p>
+
+
+<?php
+
+/**
+ * Sets a variable to remember headers have been sent
+ */
+$is_header_sent = TRUE;
+?>
diff --git a/libraries/header_scripts.inc.php b/libraries/header_scripts.inc.php
new file mode 100644
index 0000000000..8ed8b534af
--- /dev/null
+++ b/libraries/header_scripts.inc.php
@@ -0,0 +1,139 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id: header.inc.php 10719 2007-10-04 15:03:44Z cybot_tm $
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+
+// Cross-framing protection
+if ( false === $GLOBALS['cfg']['AllowThirdPartyFraming']) {
+?>
+<script type="text/javascript">
+try {
+ // can't access this if on a different domain
+ var topdomain = top.document.domain;
+ // double-check just for sure
+ if (topdomain != self.document.domain) {
+ alert("Redirecting...");
+ top.location.replace(self.document.URL.substring(0, self.document.URL.lastIndexOf("/")+1));
+ }
+}
+catch(e) {
+ alert("Redirecting... (error: " + e);
+ top.location.replace(self.document.URL.substring(0, self.document.URL.lastIndexOf("/")+1));
+}
+</script>
+<?php
+}
+// generate title
+$title = str_replace(
+ array(
+ '@HTTP_HOST@',
+ '@SERVER@',
+ '@VERBOSE@',
+ '@VSERVER@',
+ '@DATABASE@',
+ '@TABLE@',
+ '@PHPMYADMIN@',
+ ),
+ array(
+ PMA_getenv('HTTP_HOST') ? PMA_getenv('HTTP_HOST') : '',
+ isset($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['Server']['host'] : '',
+ isset($GLOBALS['cfg']['Server']['verbose']) ? $GLOBALS['cfg']['Server']['verbose'] : '',
+ !empty($GLOBALS['cfg']['Server']['verbose']) ? $GLOBALS['cfg']['Server']['verbose'] : (isset($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['Server']['host'] : ''),
+ $GLOBALS['db'],
+ $GLOBALS['table'],
+ 'phpMyAdmin ' . PMA_VERSION,
+ ),
+ !empty($GLOBALS['table']) ? $GLOBALS['cfg']['TitleTable'] :
+ (!empty($GLOBALS['db']) ? $GLOBALS['cfg']['TitleDatabase'] :
+ (!empty($GLOBALS['cfg']['Server']['host']) ? $GLOBALS['cfg']['TitleServer'] :
+ $GLOBALS['cfg']['TitleDefault']))
+ );
+// here, the function does not exist with this configuration: $cfg['ServerDefault'] = 0;
+$is_superuser = function_exists('PMA_isSuperuser') && PMA_isSuperuser();
+
+if (in_array('functions.js', $GLOBALS['js_include'])) {
+ $GLOBALS['js_messages']['strFormEmpty'] = $GLOBALS['strFormEmpty'];
+ $GLOBALS['js_messages']['strNotNumber'] = $GLOBALS['strNotNumber'];
+
+ if (!$is_superuser && !$GLOBALS['cfg']['AllowUserDropDatabase']) {
+ $GLOBALS['js_messages']['strNoDropDatabases'] = $GLOBALS['strNoDropDatabases'];
+ } else {
+ $GLOBALS['js_messages']['strNoDropDatabases'] = '';
+ }
+
+ if ($GLOBALS['cfg']['Confirm']) {
+ $GLOBALS['js_messages']['strDoYouReally'] = $GLOBALS['strDoYouReally'];
+ $GLOBALS['js_messages']['strDropDatabaseStrongWarning'] = $GLOBALS['strDropDatabaseStrongWarning'];
+
+ // rajk - for blobstreaming
+ $GLOBALS['js_messages']['strBLOBRepositoryDisableStrongWarning'] = $GLOBALS['strBLOBRepositoryDisableStrongWarning'];
+ $GLOBALS['js_messages']['strBLOBRepositoryDisableAreYouSure'] = sprintf($GLOBALS['strBLOBRepositoryDisableAreYouSure'], $GLOBALS['db']);
+ } else {
+ $GLOBALS['js_messages']['strDoYouReally'] = '';
+ $GLOBALS['js_messages']['strDropDatabaseStrongWarning'] = '';
+
+ // rajk - for blobstreaming
+ $GLOBALS['js_messages']['strBLOBRepositoryDisableStrongWarning'] = '';
+ $GLOBALS['js_messages']['strBLOBRepositoryDisableAreYouSure'] = '';
+ }
+} elseif (in_array('indexes.js', $GLOBALS['js_include'])) {
+ $GLOBALS['js_messages']['strFormEmpty'] = $GLOBALS['strFormEmpty'];
+ $GLOBALS['js_messages']['strNotNumber'] = $GLOBALS['strNotNumber'];
+}
+
+if (in_array('server_privileges.js', $GLOBALS['js_include'])) {
+ $GLOBALS['js_messages']['strHostEmpty'] = $GLOBALS['strHostEmpty'];
+ $GLOBALS['js_messages']['strUserEmpty'] = $GLOBALS['strUserEmpty'];
+ $GLOBALS['js_messages']['strPasswordEmpty'] = $GLOBALS['strPasswordEmpty'];
+ $GLOBALS['js_messages']['strPasswordNotSame'] = $GLOBALS['strPasswordNotSame'];
+}
+
+$GLOBALS['js_include'][] = 'tooltip.js';
+
+$GLOBALS['js_events'][] = array(
+ 'object' => 'window',
+ 'event' => 'load',
+ 'function' => 'PMA_TT_init',
+);
+
+foreach ($GLOBALS['js_include'] as $js_script_file) {
+ echo '<script src="./js/' . $js_script_file . '" type="text/javascript"></script>' . "\n";
+}
+?>
+<script type="text/javascript">
+// <![CDATA[
+// Updates the title of the frameset if possible (ns4 does not allow this)
+if (typeof(parent.document) != 'undefined' && typeof(parent.document) != 'unknown'
+ && typeof(parent.document.title) == 'string') {
+ parent.document.title = '<?php echo PMA_sanitize(PMA_escapeJsString($title)); ?>';
+}
+
+var PMA_messages = new Array();
+<?php
+foreach ($GLOBALS['js_messages'] as $name => $js_message) {
+ echo "PMA_messages['" . $name . "'] = '" . PMA_escapeJsString($js_message) . "';\n";
+}
+
+foreach ($GLOBALS['js_events'] as $js_event) {
+ echo "window.parent.addEvent(" . $js_event['object'] . ", '" . $js_event['event'] . "', "
+ . $js_event['function'] . ");\n";
+}
+?>
+// ]]>
+</script>
+<?php
+// Reloads the navigation frame via JavaScript if required
+PMA_reloadNavigation();
+
+?>
diff --git a/libraries/iconv_wrapper.lib.php b/libraries/iconv_wrapper.lib.php
new file mode 100644
index 0000000000..26566e7286
--- /dev/null
+++ b/libraries/iconv_wrapper.lib.php
@@ -0,0 +1,86 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+# GNU iconv code set to IBM AIX libiconv code set table
+# Keys of this table should be in lowercase, and searches should be performed using lowercase!
+$gnu_iconv_to_aix_iconv_codepage_map = array (
+ // "iso-8859-[1-9]" --> "ISO8859-[1-9]" according to http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf2/setlocale.htm
+ 'iso-8859-1' => 'ISO8859-1',
+ 'iso-8859-2' => 'ISO8859-2',
+ 'iso-8859-3' => 'ISO8859-3',
+ 'iso-8859-4' => 'ISO8859-4',
+ 'iso-8859-5' => 'ISO8859-5',
+ 'iso-8859-6' => 'ISO8859-6',
+ 'iso-8859-7' => 'ISO8859-7',
+ 'iso-8859-8' => 'ISO8859-8',
+ 'iso-8859-9' => 'ISO8859-9',
+
+ // "big5" --> "IBM-eucTW" according to http://kadesh.cepba.upc.es/mancpp/classref/ref/ITranscoder_DSC.htm
+ 'big5' => 'IBM-eucTW',
+
+ // Other mappings corresponding to the phpMyAdmin dropdown box when using the AllowAnywhereRecoding feature
+ 'euc-jp' => 'IBM-eucJP',
+ 'koi8-r' => 'IBM-eucKR',
+ 'ks_c_5601-1987' => 'KSC5601.1987-0',
+ 'tis-620' => 'TIS-620',
+ 'utf-8' => 'UTF-8'
+);
+
+/**
+ * Wrapper around IBM AIX iconv(), whose character set naming differs
+ * from the GNU version of iconv().
+ *
+ * @param string input character set
+ * @param string output character set
+ * @param string the string to convert
+ *
+ * @return mixed converted string or FALSE on failure
+ *
+ * @access public
+ *
+ * @author bwiberg Björn Wiberg <Bjorn.Wiberg@its.uu.se>
+ */
+function PMA_aix_iconv_wrapper($in_charset, $out_charset, $str) {
+
+ global $gnu_iconv_to_aix_iconv_codepage_map;
+
+ // Check for transliteration argument at the end of output character set name
+ $translit_search = strpos(strtolower($out_charset), '//translit');
+ $using_translit = (!($translit_search === FALSE));
+
+ // Extract "plain" output character set name (without any transliteration argument)
+ $out_charset_plain = ($using_translit ? substr($out_charset, 0, $translit_search) : $out_charset);
+
+ // Transform name of input character set (if found)
+ if (array_key_exists(strtolower($in_charset), $gnu_iconv_to_aix_iconv_codepage_map)) {
+ $in_charset = $gnu_iconv_to_aix_iconv_codepage_map[strtolower($in_charset)];
+ }
+
+ // Transform name of "plain" output character set (if found)
+ if (array_key_exists(strtolower($out_charset_plain), $gnu_iconv_to_aix_iconv_codepage_map)) {
+ $out_charset_plain = $gnu_iconv_to_aix_iconv_codepage_map[strtolower($out_charset_plain)];
+ }
+
+ // Add transliteration argument again (exactly as specified by user) if used
+ // Build the output character set name that we will use
+ $out_charset = ($using_translit ? $out_charset_plain . substr($out_charset, $translit_search) : $out_charset_plain);
+
+ // NOTE: Transliteration not supported; we will use the "plain" output character set name
+ $out_charset = $out_charset_plain;
+
+ // Call iconv() with the possibly modified parameters
+ $result = iconv($in_charset, $out_charset, $str);
+ return $result;
+} // end of the "PMA_aix_iconv_wrapper()" function
+
+?>
diff --git a/libraries/import.lib.php b/libraries/import.lib.php
new file mode 100644
index 0000000000..7d9a102323
--- /dev/null
+++ b/libraries/import.lib.php
@@ -0,0 +1,301 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Library that provides common import functions that are used by import plugins
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * We need to know something about user
+ */
+require_once './libraries/check_user_privileges.lib.php';
+
+/**
+ * We do this check, DROP DATABASE does not need to be confirmed elsewhere
+ */
+define('PMA_CHK_DROP', 1);
+
+/**
+ * Check whether timeout is getting close
+ *
+ * @return boolean true if timeout is close
+ * @access public
+ */
+function PMA_checkTimeout()
+{
+ global $timestamp, $maximum_time, $timeout_passed;
+ if ($maximum_time == 0) {
+ return FALSE;
+ } elseif ($timeout_passed) {
+ return TRUE;
+ /* 5 in next row might be too much */
+ } elseif ((time() - $timestamp) > ($maximum_time - 5)) {
+ $timeout_passed = TRUE;
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
+
+/**
+ * Detects what compression filse uses
+ *
+ * @param string filename to check
+ * @return string MIME type of compression, none for none
+ * @access public
+ */
+function PMA_detectCompression($filepath)
+{
+ $file = @fopen($filepath, 'rb');
+ if (!$file) {
+ return FALSE;
+ }
+ $test = fread($file, 4);
+ $len = strlen($test);
+ fclose($file);
+ if ($len >= 2 && $test[0] == chr(31) && $test[1] == chr(139)) {
+ return 'application/gzip';
+ }
+ if ($len >= 3 && substr($test, 0, 3) == 'BZh') {
+ return 'application/bzip2';
+ }
+ if ($len >= 4 && $test == "PK\003\004") {
+ return 'application/zip';
+ }
+ return 'none';
+}
+
+/**
+ * Runs query inside import buffer. This is needed to allow displaying
+ * of last SELECT, SHOW or HANDLER results and similar nice stuff.
+ *
+ * @uses $GLOBALS['finished'] read and write
+ * @param string query to run
+ * @param string query to display, this might be commented
+ * @param bool whether to use control user for queries
+ * @access public
+ */
+function PMA_importRunQuery($sql = '', $full = '', $controluser = false)
+{
+ global $import_run_buffer, $go_sql, $complete_query, $display_query,
+ $sql_query, $my_die, $error, $reload,
+ $skip_queries, $executed_queries, $max_sql_len, $read_multiply,
+ $cfg, $sql_query_disabled, $db, $run_query, $is_superuser;
+ $read_multiply = 1;
+ if (isset($import_run_buffer)) {
+ // Should we skip something?
+ if ($skip_queries > 0) {
+ $skip_queries--;
+ } else {
+ if (!empty($import_run_buffer['sql']) && trim($import_run_buffer['sql']) != '') {
+ $max_sql_len = max($max_sql_len, strlen($import_run_buffer['sql']));
+ if (!$sql_query_disabled) {
+ $sql_query .= $import_run_buffer['full'];
+ }
+ if (!$cfg['AllowUserDropDatabase']
+ && !$is_superuser
+ && preg_match('@^[[:space:]]*DROP[[:space:]]+(IF EXISTS[[:space:]]+)?DATABASE @i', $import_run_buffer['sql'])) {
+ $GLOBALS['message'] = PMA_Message::error('strNoDropDatabases');
+ $error = TRUE;
+ } else {
+ $executed_queries++;
+ if ($run_query && $GLOBALS['finished'] && empty($sql) && !$error && (
+ (!empty($import_run_buffer['sql']) && preg_match('/^[\s]*(SELECT|SHOW|HANDLER)/i', $import_run_buffer['sql'])) ||
+ ($executed_queries == 1)
+ )) {
+ $go_sql = TRUE;
+ if (!$sql_query_disabled) {
+ $complete_query = $sql_query;
+ $display_query = $sql_query;
+ } else {
+ $complete_query = '';
+ $display_query = '';
+ }
+ $sql_query = $import_run_buffer['sql'];
+ } elseif ($run_query) {
+ if ($controluser) {
+ $result = PMA_query_as_cu($import_run_buffer['sql']);
+ } else {
+ $result = PMA_DBI_try_query($import_run_buffer['sql']);
+ }
+ $msg = '# ';
+ if ($result === FALSE) { // execution failed
+ if (!isset($my_die)) {
+ $my_die = array();
+ }
+ $my_die[] = array('sql' => $import_run_buffer['full'], 'error' => PMA_DBI_getError());
+
+ if ($cfg['VerboseMultiSubmit']) {
+ $msg .= $GLOBALS['strError'];
+ }
+
+ if (!$cfg['IgnoreMultiSubmitErrors']) {
+ $error = TRUE;
+ return;
+ }
+ } elseif ($cfg['VerboseMultiSubmit']) {
+ $a_num_rows = (int)@PMA_DBI_num_rows($result);
+ $a_aff_rows = (int)@PMA_DBI_affected_rows();
+ if ($a_num_rows > 0) {
+ $msg .= $GLOBALS['strRows'] . ': ' . $a_num_rows;
+ } elseif ($a_aff_rows > 0) {
+ $a_rows =
+ $msg .= sprintf($GLOBALS['strRowsAffected'], $a_aff_rows);
+ } else {
+ $msg .= $GLOBALS['strEmptyResultSet'];
+ }
+ }
+ if (!$sql_query_disabled) {
+ $sql_query .= $msg . "\n";
+ }
+
+ // If a 'USE <db>' SQL-clause was found and the query succeeded, set our current $db to the new one
+ if ($result != FALSE && preg_match('@^[\s]*USE[[:space:]]*([\S]+)@i', $import_run_buffer['sql'], $match)) {
+ $db = trim($match[1]);
+ $db = trim($db,';'); // for example, USE abc;
+ $reload = TRUE;
+ }
+
+ if ($result != FALSE && preg_match('@^[\s]*(DROP|CREATE)[\s]+(IF EXISTS[[:space:]]+)?(TABLE|DATABASE)[[:space:]]+(.+)@im', $import_run_buffer['sql'])) {
+ $reload = TRUE;
+ }
+ } // end run query
+ } // end if not DROP DATABASE
+ } // end non empty query
+ elseif (!empty($import_run_buffer['full'])) {
+ if ($go_sql) {
+ $complete_query .= $import_run_buffer['full'];
+ $display_query .= $import_run_buffer['full'];
+ } else {
+ if (!$sql_query_disabled) {
+ $sql_query .= $import_run_buffer['full'];
+ }
+ }
+ }
+ // check length of query unless we decided to pass it to sql.php
+ // (if $run_query is false, we are just displaying so show
+ // the complete query in the textarea)
+ if (! $go_sql && $run_query) {
+ if ($cfg['VerboseMultiSubmit'] && ! empty($sql_query)) {
+ if (strlen($sql_query) > 50000 || $executed_queries > 50 || $max_sql_len > 1000) {
+ $sql_query = '';
+ $sql_query_disabled = TRUE;
+ }
+ } else {
+ if (strlen($sql_query) > 10000 || $executed_queries > 10 || $max_sql_len > 500) {
+ $sql_query = '';
+ $sql_query_disabled = TRUE;
+ }
+ }
+ }
+ } // end do query (no skip)
+ } // end buffer exists
+
+ // Do we have something to push into buffer?
+ if (!empty($sql) || !empty($full)) {
+ $import_run_buffer = array('sql' => $sql, 'full' => $full);
+ } else {
+ unset($GLOBALS['import_run_buffer']);
+ }
+}
+
+
+/**
+ * Returns next part of imported file/buffer
+ *
+ * @uses $GLOBALS['offset'] read and write
+ * @uses $GLOBALS['import_file'] read only
+ * @uses $GLOBALS['import_text'] read and write
+ * @uses $GLOBALS['finished'] read and write
+ * @uses $GLOBALS['read_limit'] read only
+ * @param integer size of buffer to read (this is maximal size
+ * function will return)
+ * @return string part of file/buffer
+ * @access public
+ */
+function PMA_importGetNextChunk($size = 32768)
+{
+ global $compression, $import_handle, $charset_conversion, $charset_of_file,
+ $charset, $read_multiply;
+
+ // Add some progression while reading large amount of data
+ if ($read_multiply <= 8) {
+ $size *= $read_multiply;
+ } else {
+ $size *= 8;
+ }
+ $read_multiply++;
+
+ // We can not read too much
+ if ($size > $GLOBALS['read_limit']) {
+ $size = $GLOBALS['read_limit'];
+ }
+
+ if (PMA_checkTimeout()) {
+ return FALSE;
+ }
+ if ($GLOBALS['finished']) {
+ return TRUE;
+ }
+
+ if ($GLOBALS['import_file'] == 'none') {
+ // Well this is not yet supported and tested, but should return content of textarea
+ if (strlen($GLOBALS['import_text']) < $size) {
+ $GLOBALS['finished'] = TRUE;
+ return $GLOBALS['import_text'];
+ } else {
+ $r = substr($GLOBALS['import_text'], 0, $size);
+ $GLOBALS['offset'] += $size;
+ $GLOBALS['import_text'] = substr($GLOBALS['import_text'], $size);
+ return $r;
+ }
+ }
+
+ switch ($compression) {
+ case 'application/bzip2':
+ $result = bzread($import_handle, $size);
+ $GLOBALS['finished'] = feof($import_handle);
+ break;
+ case 'application/gzip':
+ $result = gzread($import_handle, $size);
+ $GLOBALS['finished'] = feof($import_handle);
+ break;
+ case 'application/zip':
+ $result = substr($GLOBALS['import_text'], 0, $size);
+ $GLOBALS['import_text'] = substr($GLOBALS['import_text'], $size);
+ $GLOBALS['finished'] = empty($GLOBALS['import_text']);
+ break;
+ case 'none':
+ $result = fread($import_handle, $size);
+ $GLOBALS['finished'] = feof($import_handle);
+ break;
+ }
+ $GLOBALS['offset'] += $size;
+
+ if ($charset_conversion) {
+ return PMA_convert_string($charset_of_file, $charset, $result);
+ } else {
+ /**
+ * Skip possible byte order marks (I do not think we need more
+ * charsets, but feel free to add more, you can use wikipedia for
+ * reference: <http://en.wikipedia.org/wiki/Byte_Order_Mark>)
+ *
+ * @todo BOM could be used for charset autodetection
+ */
+ if ($GLOBALS['offset'] == $size) {
+ // UTF-8
+ if (strncmp($result, "\xEF\xBB\xBF", 3) == 0) {
+ $result = substr($result, 3);
+ // UTF-16 BE, LE
+ } elseif (strncmp($result, "\xFE\xFF", 2) == 0 || strncmp($result, "\xFF\xFE", 2) == 0) {
+ $result = substr($result, 2);
+ }
+ }
+ return $result;
+ }
+}
+?>
diff --git a/libraries/import/README b/libraries/import/README
new file mode 100644
index 0000000000..890a5da4a9
--- /dev/null
+++ b/libraries/import/README
@@ -0,0 +1,42 @@
+This directory holds import plugins for phpMyAdmin. Plugin should
+basically look like following code. Official plugins need to have str*
+messages with their definition in language files, if you build some
+plugins for your use, you can use directly texts in plugin.
+
+<?php
+/* $Id$ */
+// vim: expandtab sw=4 ts=4 sts=4 ft=php:
+
+/* Demo import plugin for phpMyAdmin */
+
+if (isset($plugin_list)) {
+ $plugin_list['name'] = array( // set name of your plugin
+ 'text' => 'strName', // text to be displayed as choice
+ 'extension' => '', // extension this plugin can handle
+ 'options' => array( // array of options for your plugin (optional)
+ array('type' => '', 'name' => '', 'text' => ''), // type: bool or text, name: form element name, text: description in GUI, size: size of text element (optional). len: maximal size of input (optional)
+ ),
+ 'options_text' => 'strNameImportOptions', // text to describe plugin options (must be set if options are used)
+ );
+} else {
+/* We do not define function when plugin is just queried for information above */
+ $buffer = '';
+ while (!($finished && $i >= $len) && !$error && !$timeout_passed) {
+ $data = PMA_importGetNextChunk();
+ if ($data === FALSE) {
+ // subtract data we didn't handle yet and stop processing
+ $offset -= strlen($buffer);
+ break;
+ } elseif ($data === TRUE) {
+ // Handle rest of buffer
+ } else {
+ // Append new data to buffer
+ $buffer .= $data;
+ }
+ // PARSE $buffer here, post sql queries using:
+ PMA_importRunQuery($sql, $verbose_sql_with_comments);
+ } // End of import loop
+ // Commit any possible data in buffers
+ PMA_importRunQuery();
+}
+?>
diff --git a/libraries/import/csv.php b/libraries/import/csv.php
new file mode 100644
index 0000000000..5c958e05ec
--- /dev/null
+++ b/libraries/import/csv.php
@@ -0,0 +1,323 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * CSV import plugin for phpMyAdmin
+ *
+ * @todo add an option for handling NULL values
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if ($plugin_param !== 'table') {
+ return;
+}
+
+if (isset($plugin_list)) {
+ $plugin_list['csv'] = array(
+ 'text' => 'strCSV',
+ 'extension' => 'csv',
+ 'options' => array(
+ array('type' => 'bool', 'name' => 'replace', 'text' => 'strReplaceTable'),
+ array('type' => 'bool', 'name' => 'ignore', 'text' => 'strIgnoreDuplicates'),
+ array('type' => 'text', 'name' => 'terminated', 'text' => 'strFieldsTerminatedBy', 'size' => 2, 'len' => 2),
+ array('type' => 'text', 'name' => 'enclosed', 'text' => 'strFieldsEnclosedBy', 'size' => 2, 'len' => 2),
+ array('type' => 'text', 'name' => 'escaped', 'text' => 'strFieldsEscapedBy', 'size' => 2, 'len' => 2),
+ array('type' => 'text', 'name' => 'new_line', 'text' => 'strLinesTerminatedBy', 'size' => 2),
+ array('type' => 'text', 'name' => 'columns', 'text' => 'strColumnNames'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+ /* We do not define function when plugin is just queried for information above */
+ return;
+}
+
+$replacements = array(
+ '\\n' => "\n",
+ '\\t' => "\t",
+ '\\r' => "\r",
+ );
+$csv_terminated = strtr($csv_terminated, $replacements);
+$csv_enclosed = strtr($csv_enclosed, $replacements);
+$csv_escaped = strtr($csv_escaped, $replacements);
+$csv_new_line = strtr($csv_new_line, $replacements);
+
+if (strlen($csv_terminated) != 1) {
+ $message = PMA_Message::error('strInvalidCSVParameter');
+ $message->addParam('strFieldsTerminatedBy', false);
+ $error = TRUE;
+ // The default dialog of MS Excel when generating a CSV produces a
+ // semi-colon-separated file with no chance of specifying the
+ // enclosing character. Thus, users who want to import this file
+ // tend to remove the enclosing character on the Import dialog.
+ // I could not find a test case where having no enclosing characters
+ // confuses this script.
+ // But the parser won't work correctly with strings so we allow just
+ // one character.
+} elseif (strlen($csv_enclosed) > 1) {
+ $message = PMA_Message::error('strInvalidCSVParameter');
+ $message->addParam('strFieldsEnclosedBy', false);
+ $error = TRUE;
+} elseif (strlen($csv_escaped) != 1) {
+ $message = PMA_Message::error('strInvalidCSVParameter');
+ $message->addParam('strFieldsEscapedBy', false);
+ $error = TRUE;
+} elseif (strlen($csv_new_line) != 1 && $csv_new_line != 'auto') {
+ $message = PMA_Message::error('strInvalidCSVParameter');
+ $message->addParam('strLinesTerminatedBy', false);
+ $error = TRUE;
+}
+
+$buffer = '';
+if (isset($csv_replace)) {
+ $sql_template = 'REPLACE';
+} else {
+ $sql_template = 'INSERT';
+ if (isset($csv_ignore)) {
+ $sql_template .= ' IGNORE';
+ }
+}
+$sql_template .= ' INTO ' . PMA_backquote($table);
+
+$tmp_fields = PMA_DBI_get_fields($db, $table);
+
+if (empty($csv_columns)) {
+ $fields = $tmp_fields;
+} else {
+ $sql_template .= ' (';
+ $fields = array();
+ $tmp = split(',( ?)', $csv_columns);
+ foreach ($tmp as $key => $val) {
+ if (count($fields) > 0) {
+ $sql_template .= ', ';
+ }
+ $val = trim($val);
+ $found = FALSE;
+ foreach ($tmp_fields as $id => $field) {
+ if ($field['Field'] == $val) {
+ $found = TRUE;
+ break;
+ }
+ }
+ if (!$found) {
+ $message = PMA_Message::error('strInvalidColumn');
+ $message->addParam($val);
+ $error = TRUE;
+ break;
+ }
+ $fields[] = $field;
+ $sql_template .= PMA_backquote($val);
+ }
+ $sql_template .= ') ';
+}
+
+$required_fields = count($fields);
+
+$sql_template .= ' VALUES (';
+
+// Defaults for parser
+$i = 0;
+$len = 0;
+$line = 1;
+$lasti = -1;
+$values = array();
+$csv_finish = FALSE;
+
+while (!($finished && $i >= $len) && !$error && !$timeout_passed) {
+ $data = PMA_importGetNextChunk();
+ if ($data === FALSE) {
+ // subtract data we didn't handle yet and stop processing
+ $offset -= strlen($buffer);
+ break;
+ } elseif ($data === TRUE) {
+ // Handle rest of buffer
+ } else {
+ // Append new data to buffer
+ $buffer .= $data;
+ unset($data);
+ // Do not parse string when we're not at the end and don't have new line inside
+ if (($csv_new_line == 'auto' && strpos($buffer, "\r") === FALSE && strpos($buffer, "\n") === FALSE)
+ || ($csv_new_line != 'auto' && strpos($buffer, $csv_new_line) === FALSE)) {
+ continue;
+ }
+ }
+
+ // Current length of our buffer
+ $len = strlen($buffer);
+ // Currently parsed char
+ $ch = $buffer[$i];
+ while ($i < $len) {
+ // Deadlock protection
+ if ($lasti == $i && $lastlen == $len) {
+ $message = PMA_Message::error('strInvalidCSVFormat');
+ $message->addParam($line);
+ $error = TRUE;
+ break;
+ }
+ $lasti = $i;
+ $lastlen = $len;
+
+ // This can happen with auto EOL and \r at the end of buffer
+ if (!$csv_finish) {
+ // Grab empty field
+ if ($ch == $csv_terminated) {
+ if ($i == $len - 1) {
+ break;
+ }
+ $values[] = '';
+ $i++;
+ $ch = $buffer[$i];
+ continue;
+ }
+
+ // Grab one field
+ $fallbacki = $i;
+ if ($ch == $csv_enclosed) {
+ if ($i == $len - 1) {
+ break;
+ }
+ $need_end = TRUE;
+ $i++;
+ $ch = $buffer[$i];
+ } else {
+ $need_end = FALSE;
+ }
+ $fail = FALSE;
+ $value = '';
+ while (($need_end && $ch != $csv_enclosed)
+ || (!$need_end && !($ch == $csv_terminated
+ || $ch == $csv_new_line || ($csv_new_line == 'auto'
+ && ($ch == "\r" || $ch == "\n"))))) {
+ if ($ch == $csv_escaped) {
+ if ($i == $len - 1) {
+ $fail = TRUE;
+ break;
+ }
+ $i++;
+ $ch = $buffer[$i];
+ }
+ $value .= $ch;
+ if ($i == $len - 1) {
+ if (!$finished) {
+ $fail = TRUE;
+ }
+ break;
+ }
+ $i++;
+ $ch = $buffer[$i];
+ }
+
+ // unquoted NULL string
+ if (false === $need_end && $value === 'NULL') {
+ $value = null;
+ }
+
+ if ($fail) {
+ $i = $fallbacki;
+ $ch = $buffer[$i];
+ break;
+ }
+ // Need to strip trailing enclosing char?
+ if ($need_end && $ch == $csv_enclosed) {
+ if ($finished && $i == $len - 1) {
+ $ch = NULL;
+ } elseif ($i == $len - 1) {
+ $i = $fallbacki;
+ $ch = $buffer[$i];
+ break;
+ } else {
+ $i++;
+ $ch = $buffer[$i];
+ }
+ }
+ // Are we at the end?
+ if ($ch == $csv_new_line || ($csv_new_line == 'auto' && ($ch == "\r" || $ch == "\n")) || ($finished && $i == $len - 1)) {
+ $csv_finish = TRUE;
+ }
+ // Go to next char
+ if ($ch == $csv_terminated) {
+ if ($i == $len - 1) {
+ $i = $fallbacki;
+ $ch = $buffer[$i];
+ break;
+ }
+ $i++;
+ $ch = $buffer[$i];
+ }
+ // If everything went okay, store value
+ $values[] = $value;
+ }
+
+ // End of line
+ if ($csv_finish || $ch == $csv_new_line || ($csv_new_line == 'auto' && ($ch == "\r" || $ch == "\n"))) {
+ if ($csv_new_line == 'auto' && $ch == "\r") { // Handle "\r\n"
+ if ($i >= ($len - 2) && !$finished) {
+ break; // We need more data to decide new line
+ }
+ if ($buffer[$i + 1] == "\n") {
+ $i++;
+ }
+ }
+ // We didn't parse value till the end of line, so there was empty one
+ if (!$csv_finish) {
+ $values[] = '';
+ }
+ // Do we have correct count of values?
+ if (count($values) != $required_fields) {
+
+ // Hack for excel
+ if ($values[count($values) - 1] == ';') {
+ unset($values[count($values) - 1]);
+ } else {
+ $message = PMA_Message::error('strInvalidCSVFieldCount');
+ $message->addParam($line);
+ $error = TRUE;
+ break;
+ }
+ }
+
+ $first = TRUE;
+ $sql = $sql_template;
+ foreach ($values as $key => $val) {
+ if (!$first) {
+ $sql .= ', ';
+ }
+ if ($val === null) {
+ $sql .= 'NULL';
+ } else {
+ $sql .= '\'' . addslashes($val) . '\'';
+ }
+
+ $first = FALSE;
+ }
+ $sql .= ')';
+
+ /**
+ * @todo maybe we could add original line to verbose SQL in comment
+ */
+ PMA_importRunQuery($sql, $sql);
+ $line++;
+ $csv_finish = FALSE;
+ $values = array();
+ $buffer = substr($buffer, $i + 1);
+ $len = strlen($buffer);
+ $i = 0;
+ $lasti = -1;
+ $ch = $buffer[0];
+ }
+ } // End of parser loop
+} // End of import loop
+
+// Commit any possible data in buffers
+PMA_importRunQuery();
+
+if (count($values) != 0 && !$error) {
+ $message = PMA_Message::error('$strInvalidCSVFormat');
+ $message->addParam($line);
+ $error = TRUE;
+}
+?>
diff --git a/libraries/import/docsql.php b/libraries/import/docsql.php
new file mode 100644
index 0000000000..5c051f6f91
--- /dev/null
+++ b/libraries/import/docsql.php
@@ -0,0 +1,91 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * DocSQL import plugin for phpMyAdmin
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * We need relations enabled and we work only on database
+ */
+if ($plugin_param !== 'database' || $GLOBALS['num_tables'] < 1
+ || ! $cfgRelation['relwork'] || ! $cfgRelation['commwork']) {
+ return;
+}
+
+if (isset($plugin_list)) {
+ $plugin_list['docsql'] = array( // set name of your plugin
+ 'text' => 'strDocSQL', // text to be displayed as choice
+ 'extension' => '', // extension this plugin can handle
+ 'options' => array( // array of options for your plugin (optional)
+ array('type' => 'text', 'name' => 'table', 'text' => 'strTableName'),
+ ),
+ 'options_text' => 'strOptions', // text to describe plugin options (must be set if options are used)
+ );
+ /* We do not define function when plugin is just queried for information above */
+ return;
+}
+
+$tab = $_POST['docsql_table'];
+$buffer = '';
+/* Read whole buffer, we except it is small enough */
+while (!$finished && !$error && !$timeout_passed) {
+ $data = PMA_importGetNextChunk();
+ if ($data === FALSE) {
+ // subtract data we didn't handle yet and stop processing
+ break;
+ } elseif ($data === TRUE) {
+ // nothing to read
+ break;
+ } else {
+ // Append new data to buffer
+ $buffer .= $data;
+ }
+} // End of import loop
+/* Process the data */
+if ($data === TRUE && !$error && !$timeout_passed) {
+ $buffer = str_replace("\r\n", "\n", $buffer);
+ $buffer = str_replace("\r", "\n", $buffer);
+ $lines = explode("\n", $buffer);
+ foreach ($lines AS $lkey => $line) {
+ //echo '<p>' . $line . '</p>';
+ $inf = explode('|', $line);
+ if (!empty($inf[1]) && strlen(trim($inf[1])) > 0) {
+ $qry = '
+ INSERT INTO
+ ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info']) . '
+ (db_name, table_name, column_name, ' . PMA_backquote('comment') . ')
+ VALUES (
+ \'' . PMA_sqlAddslashes($GLOBALS['db']) . '\',
+ \'' . PMA_sqlAddslashes(trim($tab)) . '\',
+ \'' . PMA_sqlAddslashes(trim($inf[0])) . '\',
+ \'' . PMA_sqlAddslashes(trim($inf[1])) . '\')';
+ PMA_importRunQuery($qry, $qry . '-- ' . htmlspecialchars($tab) . '.' . htmlspecialchars($inf[0]), true);
+ } // end inf[1] exists
+ if (!empty($inf[2]) && strlen(trim($inf[2])) > 0) {
+ $for = explode('->', $inf[2]);
+ $qry = '
+ INSERT INTO
+ ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation']) . '
+ (master_db, master_table, master_field, foreign_db, foreign_table, foreign_field)
+ VALUES (
+ \'' . PMA_sqlAddslashes($GLOBALS['db']) . '\',
+ \'' . PMA_sqlAddslashes(trim($tab)) . '\',
+ \'' . PMA_sqlAddslashes(trim($inf[0])) . '\',
+ \'' . PMA_sqlAddslashes($GLOBALS['db']) . '\',
+ \'' . PMA_sqlAddslashes(trim($for[0])) . '\',
+ \'' . PMA_sqlAddslashes(trim($for[1])) . '\')';
+ PMA_importRunQuery($qry, $qry . '-- ' . htmlspecialchars($tab) . '.' . htmlspecialchars($inf[0]) . '(' . htmlspecialchars($inf[2]) . ')', true);
+ } // end inf[2] exists
+ } // End lines loop
+} // End import
+// Commit any possible data in buffers
+PMA_importRunQuery();
+?>
diff --git a/libraries/import/ldi.php b/libraries/import/ldi.php
new file mode 100644
index 0000000000..5931da4f39
--- /dev/null
+++ b/libraries/import/ldi.php
@@ -0,0 +1,106 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * CSV import plugin for phpMyAdmin
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if ($plugin_param !== 'table') {
+ return;
+}
+
+if (isset($plugin_list)) {
+ if ($GLOBALS['cfg']['Import']['ldi_local_option'] == 'auto') {
+ $GLOBALS['cfg']['Import']['ldi_local_option'] = FALSE;
+
+ $result = PMA_DBI_try_query('SHOW VARIABLES LIKE \'local\\_infile\';');
+ if ($result != FALSE && PMA_DBI_num_rows($result) > 0) {
+ $tmp = PMA_DBI_fetch_row($result);
+ if ($tmp[1] == 'ON') {
+ $GLOBALS['cfg']['Import']['ldi_local_option'] = TRUE;
+ }
+ }
+ PMA_DBI_free_result($result);
+ unset($result);
+ }
+ $plugin_list['ldi'] = array(
+ 'text' => 'strLDI',
+ 'extension' => 'ldi', // This is nonsense, however we want to default to our parser for csv
+ 'options' => array(
+ array('type' => 'bool', 'name' => 'replace', 'text' => 'strReplaceTable'),
+ array('type' => 'bool', 'name' => 'ignore', 'text' => 'strIgnoreDuplicates'),
+ array('type' => 'text', 'name' => 'terminated', 'text' => 'strFieldsTerminatedBy', 'size' => 2, 'len' => 2),
+ array('type' => 'text', 'name' => 'enclosed', 'text' => 'strFieldsEnclosedBy', 'size' => 2, 'len' => 2),
+ array('type' => 'text', 'name' => 'escaped', 'text' => 'strFieldsEscapedBy', 'size' => 2, 'len' => 2),
+ array('type' => 'text', 'name' => 'new_line', 'text' => 'strLinesTerminatedBy', 'size' => 2),
+ array('type' => 'text', 'name' => 'columns', 'text' => 'strColumnNames'),
+ array('type' => 'bool', 'name' => 'local_option', 'text' => 'strLDILocal'),
+ ),
+ 'options_text' => 'strOptions',
+ );
+ /* We do not define function when plugin is just queried for information above */
+ return;
+}
+
+if ($import_file == 'none' || $compression != 'none' || $charset_conversion) {
+ // We handle only some kind of data!
+ $message = PMA_Message::error('strInvalidLDIImport');
+ $error = TRUE;
+ return;
+}
+
+$sql = 'LOAD DATA';
+if (isset($ldi_local_option)) {
+ $sql .= ' LOCAL';
+}
+$sql .= ' INFILE \'' . PMA_sqlAddslashes($import_file) . '\'';
+if (isset($ldi_replace)) {
+ $sql .= ' REPLACE';
+} elseif (isset($ldi_ignore)) {
+ $sql .= ' IGNORE';
+}
+$sql .= ' INTO TABLE ' . PMA_backquote($table);
+
+if (strlen($ldi_terminated) > 0) {
+ $sql .= ' FIELDS TERMINATED BY \'' . $ldi_terminated . '\'';
+}
+if (strlen($ldi_enclosed) > 0) {
+ $sql .= ' ENCLOSED BY \'' . PMA_sqlAddslashes($ldi_enclosed) . '\'';
+}
+if (strlen($ldi_escaped) > 0) {
+ $sql .= ' ESCAPED BY \'' . PMA_sqlAddslashes($ldi_escaped) . '\'';
+}
+if (strlen($ldi_new_line) > 0){
+ if ($ldi_new_line == 'auto') {
+ $ldi_new_line = PMA_whichCrlf() == "\n" ? '\n' : '\r\n';
+ }
+ $sql .= ' LINES TERMINATED BY \'' . $ldi_new_line . '\'';
+}
+if ($skip_queries > 0) {
+ $sql .= ' IGNORE ' . $skip_queries . ' LINES';
+ $skip_queries = 0;
+}
+if (strlen($ldi_columns) > 0) {
+ $sql .= ' (';
+ $tmp = split(',( ?)', $ldi_columns);
+ $cnt_tmp = count($tmp);
+ for ($i = 0; $i < $cnt_tmp; $i++) {
+ if ($i > 0) {
+ $sql .= ', ';
+ }
+ $sql .= PMA_backquote(trim($tmp[$i]));
+ } // end for
+ $sql .= ')';
+}
+
+PMA_importRunQuery($sql, $sql);
+PMA_importRunQuery();
+$finished = TRUE;
+?>
diff --git a/libraries/import/sql.php b/libraries/import/sql.php
new file mode 100644
index 0000000000..6a6e76e357
--- /dev/null
+++ b/libraries/import/sql.php
@@ -0,0 +1,287 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * SQL import plugin for phpMyAdmin
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (isset($plugin_list)) {
+ $plugin_list['sql'] = array(
+ 'text' => 'strSQL',
+ 'extension' => 'sql',
+ 'options_text' => 'strOptions',
+ );
+ $compats = PMA_DBI_getCompatibilities();
+ if (count($compats) > 0) {
+ $values = array();
+ foreach($compats as $val) {
+ $values[$val] = $val;
+ }
+ $plugin_list['sql']['options'] = array(
+ array(
+ 'type' => 'select',
+ 'name' => 'compatibility',
+ 'text' => 'strSQLCompatibility',
+ 'values' => $values,
+ 'doc' => array(
+ 'manual_MySQL_Database_Administration',
+ 'Server_SQL_mode',
+ ),
+ ),
+ );
+ }
+
+ /* We do not define function when plugin is just queried for information above */
+ return;
+}
+
+$buffer = '';
+// Defaults for parser
+$sql = '';
+$start_pos = 0;
+$i = 0;
+$len= 0;
+$big_value = 2147483647;
+
+if (isset($_POST['sql_delimiter'])) {
+ $sql_delimiter = $_POST['sql_delimiter'];
+} else {
+ $sql_delimiter = ';';
+}
+
+// Handle compatibility option
+if (isset($_REQUEST['sql_compatibility'])) {
+ PMA_DBI_try_query('SET SQL_MODE="' . $_REQUEST['sql_compatibility'] . '"');
+}
+
+/**
+ * will be set in PMA_importGetNextChunk()
+ *
+ * @global boolean $GLOBALS['finished']
+ */
+$GLOBALS['finished'] = false;
+
+while (!($GLOBALS['finished'] && $i >= $len) && !$error && !$timeout_passed) {
+ $data = PMA_importGetNextChunk();
+ if ($data === FALSE) {
+ // subtract data we didn't handle yet and stop processing
+ $offset -= strlen($buffer);
+ break;
+ } elseif ($data === TRUE) {
+ // Handle rest of buffer
+ } else {
+ // Append new data to buffer
+ $buffer .= $data;
+ // free memory
+ unset($data);
+ // Do not parse string when we're not at the end and don't have ; inside
+ if ((strpos($buffer, $sql_delimiter, $i) === FALSE) && !$GLOBALS['finished']) {
+ continue;
+ }
+ }
+ // Current length of our buffer
+ $len = strlen($buffer);
+
+ // Grab some SQL queries out of it
+ while ($i < $len) {
+ $found_delimiter = false;
+ // Find first interesting character
+ $old_i = $i;
+ // this is about 7 times faster that looking for each sequence i
+ // one by one with strpos()
+ if (preg_match('/(\'|"|#|-- |\/\*|`|(?i)DELIMITER)/', $buffer, $matches, PREG_OFFSET_CAPTURE, $i)) {
+ // in $matches, index 0 contains the match for the complete
+ // expression but we don't use it
+ $first_position = $matches[1][1];
+ } else {
+ $first_position = $big_value;
+ }
+ /**
+ * @todo we should not look for a delimiter that might be
+ * inside quotes (or even double-quotes)
+ */
+ // the cost of doing this one with preg_match() would be too high
+ $first_sql_delimiter = strpos($buffer, $sql_delimiter, $i);
+ if ($first_sql_delimiter === FALSE) {
+ $first_sql_delimiter = $big_value;
+ } else {
+ $found_delimiter = true;
+ }
+
+ // set $i to the position of the first quote, comment.start or delimiter found
+ $i = min($first_position, $first_sql_delimiter);
+
+ if ($i == $big_value) {
+ // none of the above was found in the string
+
+ $i = $old_i;
+ if (!$GLOBALS['finished']) {
+ break;
+ }
+ // at the end there might be some whitespace...
+ if (trim($buffer) == '') {
+ $buffer = '';
+ $len = 0;
+ break;
+ }
+ // We hit end of query, go there!
+ $i = strlen($buffer) - 1;
+ }
+
+ // Grab current character
+ $ch = $buffer[$i];
+
+ // Quotes
+ if (strpos('\'"`', $ch) !== FALSE) {
+ $quote = $ch;
+ $endq = FALSE;
+ while (!$endq) {
+ // Find next quote
+ $pos = strpos($buffer, $quote, $i + 1);
+ // No quote? Too short string
+ if ($pos === FALSE) {
+ // We hit end of string => unclosed quote, but we handle it as end of query
+ if ($GLOBALS['finished']) {
+ $endq = TRUE;
+ $i = $len - 1;
+ }
+ $found_delimiter = false;
+ break;
+ }
+ // Was not the quote escaped?
+ $j = $pos - 1;
+ while ($buffer[$j] == '\\') $j--;
+ // Even count means it was not escaped
+ $endq = (((($pos - 1) - $j) % 2) == 0);
+ // Skip the string
+ $i = $pos;
+
+ if ($first_sql_delimiter < $pos) {
+ $found_delimiter = false;
+ }
+ }
+ if (!$endq) {
+ break;
+ }
+ $i++;
+ // Aren't we at the end?
+ if ($GLOBALS['finished'] && $i == $len) {
+ $i--;
+ } else {
+ continue;
+ }
+ }
+
+ // Not enough data to decide
+ if ((($i == ($len - 1) && ($ch == '-' || $ch == '/'))
+ || ($i == ($len - 2) && (($ch == '-' && $buffer[$i + 1] == '-')
+ || ($ch == '/' && $buffer[$i + 1] == '*')))) && !$GLOBALS['finished']) {
+ break;
+ }
+
+ // Comments
+ if ($ch == '#'
+ || ($i < ($len - 1) && $ch == '-' && $buffer[$i + 1] == '-'
+ && (($i < ($len - 2) && $buffer[$i + 2] <= ' ')
+ || ($i == ($len - 1) && $GLOBALS['finished'])))
+ || ($i < ($len - 1) && $ch == '/' && $buffer[$i + 1] == '*')
+ ) {
+ // Copy current string to SQL
+ if ($start_pos != $i) {
+ $sql .= substr($buffer, $start_pos, $i - $start_pos);
+ }
+ // Skip the rest
+ $j = $i;
+ $i = strpos($buffer, $ch == '/' ? '*/' : "\n", $i);
+ // didn't we hit end of string?
+ if ($i === FALSE) {
+ if ($GLOBALS['finished']) {
+ $i = $len - 1;
+ } else {
+ break;
+ }
+ }
+ // Skip *
+ if ($ch == '/') {
+ // Check for MySQL conditional comments and include them as-is
+ if ($buffer[$j + 2] == '!') {
+ $comment = substr($buffer, $j + 3, $i - $j - 3);
+ if (preg_match('/^[0-9]{5}/', $comment, $version)) {
+ if ($version[0] <= PMA_MYSQL_INT_VERSION) {
+ $sql .= substr($comment, 5);
+ }
+ } else {
+ $sql .= $comment;
+ }
+ }
+ $i++;
+ }
+ // Skip last char
+ $i++;
+ // Next query part will start here
+ $start_pos = $i;
+ // Aren't we at the end?
+ if ($i == $len) {
+ $i--;
+ } else {
+ continue;
+ }
+ }
+ // Change delimiter, if redefined, and skip it (don't send to server!)
+ if (strtoupper(substr($buffer, $i, 9)) == "DELIMITER"
+ && ($buffer[$i + 9] <= ' ')
+ && ($i < $len - 11)
+ && strpos($buffer, "\n", $i + 11) !== FALSE) {
+ $new_line_pos = strpos($buffer, "\n", $i + 10);
+ $sql_delimiter = substr($buffer, $i + 10, $new_line_pos - $i - 10);
+ $i = $new_line_pos + 1;
+ // Next query part will start here
+ $start_pos = $i;
+ continue;
+ }
+
+ // End of SQL
+ if ($found_delimiter || ($GLOBALS['finished'] && ($i == $len - 1))) {
+ $tmp_sql = $sql;
+ if ($start_pos < $len) {
+ $length_to_grab = $i - $start_pos;
+
+ if (! $found_delimiter) {
+ $length_to_grab++;
+ }
+ $tmp_sql .= substr($buffer, $start_pos, $length_to_grab);
+ unset($length_to_grab);
+ }
+ // Do not try to execute empty SQL
+ if (! preg_match('/^([\s]*;)*$/', trim($tmp_sql))) {
+ $sql = $tmp_sql;
+ PMA_importRunQuery($sql, substr($buffer, 0, $i + strlen($sql_delimiter)));
+ $buffer = substr($buffer, $i + strlen($sql_delimiter));
+ // Reset parser:
+ $len = strlen($buffer);
+ $sql = '';
+ $i = 0;
+ $start_pos = 0;
+ // Any chance we will get a complete query?
+ //if ((strpos($buffer, ';') === FALSE) && !$GLOBALS['finished']) {
+ if ((strpos($buffer, $sql_delimiter) === FALSE) && !$GLOBALS['finished']) {
+ break;
+ }
+ } else {
+ $i++;
+ $start_pos = $i;
+ }
+ }
+ } // End of parser loop
+} // End of import loop
+// Commit any possible data in buffers
+PMA_importRunQuery('', substr($buffer, 0, $len));
+PMA_importRunQuery();
+?>
diff --git a/libraries/information_schema_relations.lib.php b/libraries/information_schema_relations.lib.php
new file mode 100644
index 0000000000..8255360bf3
--- /dev/null
+++ b/libraries/information_schema_relations.lib.php
@@ -0,0 +1,135 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+$GLOBALS['information_schema_relations'] = array(
+ 'CHARACTER_SETS' => array(
+ 'DEFAULT_COLLATE_NAME' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'COLLATIONS',
+ 'foreign_field' => 'COLLATION_NAME'
+ )
+ ),
+ 'COLLATIONS' => array(
+ 'CHARACTER_SET_NAME' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'CHARACTER_SETS',
+ 'foreign_field' => 'CHARACTER_SET_NAME'
+ )
+ ),
+ 'COLLATION_CHARACTER_SET_APPLICABILITY' => array(
+ 'CHARACTER_SET_NAME' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'CHARACTER_SETS',
+ 'foreign_field' => 'CHARACTER_SET_NAME'
+ ),
+ 'COLLATION_NAME' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'COLLATIONS',
+ 'foreign_field' => 'COLLATION_NAME'
+ )
+ ),
+ 'COLUMNS' => array(
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ ),
+ 'CHARACTER_SET_NAME' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'CHARACTER_SETS',
+ 'foreign_field' => 'CHARACTER_SET_NAME'
+ ),
+ 'COLLATION_NAME' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'COLLATIONS',
+ 'foreign_field' => 'COLLATION_NAME'
+ )
+ ),
+ 'COLUMN_PRIVILEGES' => array(
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ )
+ ),
+ 'KEY_COLUMN_USAGE' => array(
+ 'CONSTRAINT_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ ),
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ )
+ ),
+ 'ROUTINES' => array(
+ 'ROUTINE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ )
+ ),
+ 'SCHEMATA' => array(
+ 'DEFAULT_CHARACTER_SET_NAME' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'CHARACTER_SETS',
+ 'foreign_field' => 'CHARACTER_SET_NAME'
+ )
+ ),
+ 'SCHEMA_PRIVILEGES' => array(
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ )
+ ),
+ 'TABLES' => array(
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ ),
+ 'TABLE_COLLATION' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'COLLATIONS',
+ 'foreign_field' => 'COLLATION_NAME'
+ )
+ ),
+ 'TABLE_CONSTRAINTS' => array(
+ 'CONSTRAINT_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ ),
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ )
+ ),
+ 'TABLE_PRIVILEGES' => array(
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ )
+ ),
+ 'VIEWS' => array(
+ 'TABLE_SCHEMA' => array(
+ 'foreign_db' => 'information_schema',
+ 'foreign_table' => 'SCHEMATA',
+ 'foreign_field' => 'SCHEMA_NAME'
+ )
+ )
+);
+
+?>
diff --git a/libraries/ip_allow_deny.lib.php b/libraries/ip_allow_deny.lib.php
new file mode 100644
index 0000000000..2f03b2601a
--- /dev/null
+++ b/libraries/ip_allow_deny.lib.php
@@ -0,0 +1,189 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * This library is used with the server IP allow/deny host authentication
+ * feature
+ *
+ * @version $Id$
+ */
+
+
+/**
+ * Gets the "true" IP address of the current user
+ *
+ * @return string the ip of the user
+ *
+ * @access private
+ */
+function PMA_getIp()
+{
+ /* Get the address of user */
+ if (!empty($_SERVER['REMOTE_ADDR'])) {
+ $direct_ip = $_SERVER['REMOTE_ADDR'];
+ } else {
+ /* We do not know remote IP */
+ return false;
+ }
+
+ /* Do we trust this IP as a proxy? If yes we will use it's header. */
+ if (isset($GLOBALS['cfg']['TrustedProxies'][$direct_ip])) {
+ $proxy_ip = PMA_getenv($GLOBALS['cfg']['TrustedProxies'][$direct_ip]);
+ // the $ checks that the header contains only one IP address
+ $is_ip = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}$|', $proxy_ip, $regs);
+ if ($is_ip && (count($regs) > 0)) {
+ // True IP behind a proxy
+ return $regs[0];
+ }
+ }
+
+ /* Return true IP */
+ return $direct_ip;
+} // end of the 'PMA_getIp()' function
+
+
+/**
+ * Based on IP Pattern Matcher
+ * Originally by J.Adams <jna@retina.net>
+ * Found on <http://www.php.net/manual/en/function.ip2long.php>
+ * Modified by Robbat2 <robbat2@users.sourceforge.net>
+ *
+ * Matches:
+ * xxx.xxx.xxx.xxx (exact)
+ * xxx.xxx.xxx.[yyy-zzz] (range)
+ * xxx.xxx.xxx.xxx/nn (CIDR)
+ *
+ * Does not match:
+ * xxx.xxx.xxx.xx[yyy-zzz] (range, partial octets not supported)
+ *
+ * @param string string of IP range to match
+ * @param string string of IP to test against range
+ *
+ * @return boolean always true
+ *
+ * @access public
+ */
+function PMA_ipMaskTest($testRange, $ipToTest)
+{
+ $result = true;
+
+ if (preg_match('|([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/([0-9]+)|', $testRange, $regs)) {
+ // performs a mask match
+ $ipl = ip2long($ipToTest);
+ $rangel = ip2long($regs[1] . '.' . $regs[2] . '.' . $regs[3] . '.' . $regs[4]);
+
+ $maskl = 0;
+
+ for ($i = 0; $i < 31; $i++) {
+ if ($i < $regs[5] - 1) {
+ $maskl = $maskl + PMA_pow(2, (30 - $i));
+ } // end if
+ } // end for
+
+ if (($maskl & $rangel) == ($maskl & $ipl)) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ // range based
+ $maskocts = explode('.', $testRange);
+ $ipocts = explode('.', $ipToTest);
+
+ // perform a range match
+ for ($i = 0; $i < 4; $i++) {
+ if (preg_match('|\[([0-9]+)\-([0-9]+)\]|', $maskocts[$i], $regs)) {
+ if (($ipocts[$i] > $regs[2])
+ || ($ipocts[$i] < $regs[1])) {
+ $result = false;
+ } // end if
+ } else {
+ if ($maskocts[$i] <> $ipocts[$i]) {
+ $result = false;
+ } // end if
+ } // end if/else
+ } //end for
+ } //end if/else
+
+ return $result;
+} // end of the "PMA_IPMaskTest()" function
+
+
+/**
+ * Runs through IP Allow/Deny rules the use of it below for more information
+ *
+ * @param string 'allow' | 'deny' type of rule to match
+ *
+ * @return bool Matched a rule ?
+ *
+ * @access public
+ *
+ * @see PMA_getIp()
+ */
+function PMA_allowDeny($type)
+{
+ global $cfg;
+
+ // Grabs true IP of the user and returns if it can't be found
+ $remote_ip = PMA_getIp();
+ if (empty($remote_ip)) {
+ return false;
+ }
+
+ // copy username
+ $username = $cfg['Server']['user'];
+
+ // copy rule database
+ $rules = $cfg['Server']['AllowDeny']['rules'];
+
+ // lookup table for some name shortcuts
+ $shortcuts = array(
+ 'all' => '0.0.0.0/0',
+ 'localhost' => '127.0.0.1/8'
+ );
+
+ // Provide some useful shortcuts if server gives us address:
+ if (PMA_getenv('SERVER_ADDR')) {
+ $shortcuts['localnetA'] = PMA_getenv('SERVER_ADDR') . '/8';
+ $shortcuts['localnetB'] = PMA_getenv('SERVER_ADDR') . '/16';
+ $shortcuts['localnetC'] = PMA_getenv('SERVER_ADDR') . '/24';
+ }
+
+ foreach ($rules as $rule) {
+ // extract rule data
+ $rule_data = explode(' ', $rule);
+
+ // check for rule type
+ if ($rule_data[0] != $type) {
+ continue;
+ }
+
+ // check for username
+ if (($rule_data[1] != '%') //wildcarded first
+ && ($rule_data[1] != $username)) {
+ continue;
+ }
+
+ // check if the config file has the full string with an extra
+ // 'from' in it and if it does, just discard it
+ if ($rule_data[2] == 'from') {
+ $rule_data[2] = $rule_data[3];
+ }
+
+ // Handle shortcuts with above array
+ if (isset($shortcuts[$rule_data[2]])) {
+ $rule_data[2] = $shortcuts[$rule_data[2]];
+ }
+
+ // Add code for host lookups here
+ // Excluded for the moment
+
+ // Do the actual matching now
+ if (PMA_ipMaskTest($rule_data[2], $remote_ip)) {
+ return true;
+ }
+ } // end while
+
+ return false;
+} // end of the "PMA_AllowDeny()" function
+
+?>
diff --git a/libraries/js_escape.lib.php b/libraries/js_escape.lib.php
new file mode 100644
index 0000000000..754d95f2c0
--- /dev/null
+++ b/libraries/js_escape.lib.php
@@ -0,0 +1,68 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Javascript escaping functions.
+ *
+ * @author Michal Čihař <michal@cihar.com>
+ * @package phpMyAdmin
+ *
+ * @version $Id$
+ */
+
+/**
+ * Format a string so it can be a string inside JavaScript code inside an
+ * eventhandler (onclick, onchange, on..., ).
+ * This function is used to displays a javascript confirmation box for
+ * "DROP/DELETE/ALTER" queries.
+ *
+ * @uses PMA_escapeJsString()
+ * @uses PMA_backquote()
+ * @uses is_string()
+ * @uses htmlspecialchars()
+ * @uses str_replace()
+ * @param string $a_string the string to format
+ * @param boolean $add_backquotes whether to add backquotes to the string or not
+ *
+ * @return string the formatted string
+ *
+ * @access public
+ */
+function PMA_jsFormat($a_string = '', $add_backquotes = true)
+{
+ if (is_string($a_string)) {
+ $a_string = htmlspecialchars($a_string);
+ $a_string = PMA_escapeJsString($a_string);
+ /**
+ * @todo what is this good for?
+ */
+ $a_string = str_replace('#', '\\#', $a_string);
+ }
+
+ return (($add_backquotes) ? PMA_backquote($a_string) : $a_string);
+} // end of the 'PMA_jsFormat()' function
+
+/**
+ * escapes a string to be inserted as string a JavaScript block
+ * enclosed by <![CDATA[ ... ]]>
+ * this requires only to escape ' with \' and end of script block
+ *
+ * We also remove NUL byte as some browsers (namely MSIE) ignore it and
+ * inserting it anywhere inside </script would allow to bypass this check.
+ *
+ * @uses strtr()
+ * @uses preg_replace()
+ * @param string $string the string to be escaped
+ * @return string the escaped string
+ */
+function PMA_escapeJsString($string)
+{
+ return preg_replace('@</script@i', '</\' + \'script',
+ strtr($string, array(
+ "\000" => '',
+ '\\' => '\\\\',
+ '\'' => '\\\'',
+ "\n" => '\n',
+ "\r" => '\r')));
+}
+
+?>
diff --git a/libraries/kanji-encoding.lib.php b/libraries/kanji-encoding.lib.php
new file mode 100644
index 0000000000..f9e58b2660
--- /dev/null
+++ b/libraries/kanji-encoding.lib.php
@@ -0,0 +1,151 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions for kanji-encoding convert (available only with japanese
+ * language)
+ *
+ * PHP4 configure requirements:
+ * --enable-mbstring --enable-mbstr-enc-trans --enable-mbregex
+ *
+ * 2002/2/22 - by Yukihiro Kawada <kawada@den.fujifilm.co.jp>
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Gets the php internal encoding codes and sets the available encoding
+ * codes list
+ * 2002/1/4 by Y.Kawada
+ *
+ * @global string the current encoding code
+ * @global string the available encoding codes list
+ *
+ * @return boolean always true
+ */
+function PMA_internal_enc_check() {
+ global $internal_enc, $enc_list;
+
+ $internal_enc = mb_internal_encoding();
+ if ($internal_enc == 'EUC-JP') {
+ $enc_list = 'ASCII,EUC-JP,SJIS,JIS';
+ } else {
+ $enc_list = 'ASCII,SJIS,EUC-JP,JIS';
+ }
+
+ return TRUE;
+} // end of the 'PMA_internal_enc_check' function
+
+
+/**
+ * Reverses SJIS & EUC-JP position in the encoding codes list
+ * 2002/1/4 by Y.Kawada
+ *
+ * @global string the available encoding codes list
+ *
+ * @return boolean always true
+ */
+function PMA_change_enc_order() {
+ global $enc_list;
+
+ $p = explode(',', $enc_list);
+ if ($p[1] == 'EUC-JP') {
+ $enc_list = 'ASCII,SJIS,EUC-JP,JIS';
+ } else {
+ $enc_list = 'ASCII,EUC-JP,SJIS,JIS';
+ }
+
+ return TRUE;
+} // end of the 'PMA_change_enc_order' function
+
+
+/**
+ * Kanji string encoding convert
+ * 2002/1/4 by Y.Kawada
+ *
+ * @param string the string to convert
+ * @param string the destinasion encoding code
+ * @param string set 'kana' convert to JIS-X208-kana
+ *
+ * @global string the available encoding codes list
+ *
+ * @return string the converted string
+ */
+function PMA_kanji_str_conv($str, $enc, $kana) {
+ global $enc_list;
+
+ if ($enc == '' && $kana == '') {
+ return $str;
+ }
+ $nw = mb_detect_encoding($str, $enc_list);
+
+ if ($kana == 'kana') {
+ $dist = mb_convert_kana($str, 'KV', $nw);
+ $str = $dist;
+ }
+ if ($nw != $enc && $enc != '') {
+ $dist = mb_convert_encoding($str, $enc, $nw);
+ } else {
+ $dist = $str;
+ }
+ return $dist;
+} // end of the 'PMA_kanji_str_conv' function
+
+
+/**
+ * Kanji file encoding convert
+ * 2002/1/4 by Y.Kawada
+ *
+ * @param string the name of the file to convert
+ * @param string the destinasion encoding code
+ * @param string set 'kana' convert to JIS-X208-kana
+ *
+ * @return string the name of the converted file
+ */
+function PMA_kanji_file_conv($file, $enc, $kana) {
+ if ($enc == '' && $kana == '') {
+ return $file;
+ }
+
+ $tmpfname = tempnam('', $enc);
+ $fpd = fopen($tmpfname, 'wb');
+ $fps = fopen($file, 'r');
+ PMA_change_enc_order();
+ while (!feof($fps)) {
+ $line = fgets($fps, 4096);
+ $dist = PMA_kanji_str_conv($line, $enc, $kana);
+ fputs($fpd, $dist);
+ } // end while
+ PMA_change_enc_order();
+ fclose($fps);
+ fclose($fpd);
+ unlink($file);
+
+ return $tmpfname;
+} // end of the 'PMA_kanji_file_conv' function
+
+
+/**
+ * Defines radio form fields to switch between encoding modes
+ * 2002/1/4 by Y.Kawada
+ *
+ * @param string spaces character to prepend the output with
+ *
+ * @return string xhtml code for the radio controls
+ */
+function PMA_set_enc_form($spaces) {
+ return "\n"
+ . $spaces . '<input type="radio" name="knjenc" value="" checked="checked" />non' . "\n"
+ . $spaces . '<input type="radio" name="knjenc" value="EUC-JP" />EUC' . "\n"
+ . $spaces . '<input type="radio" name="knjenc" value="SJIS" />SJIS' . "\n"
+ . $spaces . '&nbsp;' . $GLOBALS['strEncto'] . '<br />' . "\n"
+ . $spaces . '<input type="checkbox" name="xkana" value="kana" />' . "\n"
+ . $spaces . '&nbsp;' . $GLOBALS['strXkana'] . '<br />' . "\n";
+} // end of the 'PMA_set_enc_form' function
+
+
+PMA_internal_enc_check();
+
+?>
diff --git a/libraries/mult_submits.inc.php b/libraries/mult_submits.inc.php
new file mode 100644
index 0000000000..89bb4f6ac0
--- /dev/null
+++ b/libraries/mult_submits.inc.php
@@ -0,0 +1,431 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Prepares the work and runs some other scripts if required
+ */
+if (! empty($submit_mult)
+ && $submit_mult != $strWithChecked
+ && (! empty($selected_db)
+ || ! empty($selected_tbl)
+ || ! empty($selected_fld)
+ || ! empty($rows_to_delete))) {
+ define('PMA_SUBMIT_MULT', 1);
+ if (isset($selected_db) && !empty($selected_db)) {
+ // coming from server database view - do something with selected databases
+ $selected = $selected_db;
+ $what = 'drop_db';
+ } elseif (isset($selected_tbl) && !empty($selected_tbl)) {
+ // coming from database structure view - do something with selected tables
+ if ($submit_mult == $strPrintView) {
+ require './tbl_printview.php';
+ } else {
+ $selected = $selected_tbl;
+ switch ($submit_mult) {
+ case 'drop_db':
+ $what = 'drop_db';
+ break;
+ case $strDrop:
+ $what = 'drop_tbl';
+ break;
+ case $strEmpty:
+ $what = 'empty_tbl';
+ break;
+ case $strCheckTable:
+ unset($submit_mult);
+ $query_type = 'check_tbl';
+ $mult_btn = $strYes;
+ break;
+ case $strOptimizeTable:
+ unset($submit_mult);
+ $query_type = 'optimize_tbl';
+ $mult_btn = $strYes;
+ break;
+ case $strRepairTable:
+ unset($submit_mult);
+ $query_type = 'repair_tbl';
+ $mult_btn = $strYes;
+ break;
+ case $strAnalyzeTable:
+ unset($submit_mult);
+ $query_type = 'analyze_tbl';
+ $mult_btn = $strYes;
+ break;
+ } // end switch
+ }
+ } elseif (isset($selected_fld) && !empty($selected_fld)) {
+ // coming from table structure view - do something with selected columns/fileds
+ $selected = $selected_fld;
+ switch ($submit_mult) {
+ case $strDrop:
+ $what = 'drop_fld';
+ break;
+ case $strPrimary:
+ // Gets table primary key
+ PMA_DBI_select_db($db);
+ $result = PMA_DBI_query('SHOW KEYS FROM ' . PMA_backquote($table) . ';');
+ $primary = '';
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ // Backups the list of primary keys
+ if ($row['Key_name'] == 'PRIMARY') {
+ $primary .= $row['Column_name'] . ', ';
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+ if (empty($primary)) {
+ // no primary key, so we can safely create new
+ unset($submit_mult);
+ $query_type = 'primary_fld';
+ $mult_btn = $strYes;
+ } else {
+ // primary key exists, so lets as user
+ $what = 'primary_fld';
+ }
+ break;
+ case $strIndex:
+ unset($submit_mult);
+ $query_type = 'index_fld';
+ $mult_btn = $strYes;
+ break;
+ case $strUnique:
+ unset($submit_mult);
+ $query_type = 'unique_fld';
+ $mult_btn = $strYes;
+ break;
+ case $strIdxFulltext:
+ unset($submit_mult);
+ $query_type = 'fulltext_fld';
+ $mult_btn = $strYes;
+ break;
+ case $strChange:
+ require './tbl_alter.php';
+ break;
+ case $strBrowse:
+ // this should already be handled by tbl_structure.php
+ }
+ } else {
+ // coming from borwsing - do something with selected rows
+ $what = 'row_delete';
+ $selected = $rows_to_delete;
+ }
+} // end if
+
+
+/**
+ * Displays the confirmation form if required
+ */
+if (!empty($submit_mult) && !empty($what)) {
+ $GLOBALS['js_include'][] = 'functions.js';
+ unset($message);
+
+ require_once './libraries/header.inc.php';
+ if (strlen($table)) {
+ require './libraries/tbl_common.php';
+ $url_query .= '&amp;goto=tbl_sql.php&amp;back=tbl_sql.php';
+ require './libraries/tbl_info.inc.php';
+ require_once './libraries/tbl_links.inc.php';
+ } elseif (strlen($db)) {
+ require './libraries/db_common.inc.php';
+ require './libraries/db_info.inc.php';
+ } else {
+ require_once './libraries/server_common.inc.php';
+ require_once './libraries/server_links.inc.php';
+ }
+
+ // Builds the query
+ $full_query = '';
+ if ($what == 'drop_tbl') {
+ $full_query_views = '';
+ }
+ $selected_cnt = count($selected);
+ $i = 0;
+ foreach ($selected AS $idx => $sval) {
+ switch ($what) {
+ case 'row_delete':
+ $full_query .= htmlspecialchars($sval)
+ . ';<br />';
+ break;
+ case 'drop_db':
+ $full_query .= 'DROP DATABASE '
+ . PMA_backquote(htmlspecialchars($sval))
+ . ';<br />';
+ $reload = 1;
+ break;
+
+ case 'drop_tbl':
+ $current = $sval;
+ if (!empty($views) && in_array($current, $views)) {
+ $full_query_views .= (empty($full_query_views) ? 'DROP VIEW ' : ', ')
+ . PMA_backquote(htmlspecialchars($current));
+ } else {
+ $full_query .= (empty($full_query) ? 'DROP TABLE ' : ', ')
+ . PMA_backquote(htmlspecialchars($current));
+ }
+ break;
+
+ case 'empty_tbl':
+ $full_query .= 'TRUNCATE ';
+ $full_query .= PMA_backquote(htmlspecialchars($sval))
+ . ';<br />';
+ break;
+
+ case 'primary_fld':
+ if ($full_query == '') {
+ $full_query .= 'ALTER TABLE '
+ . PMA_backquote(htmlspecialchars($table))
+ . '<br />&nbsp;&nbsp;DROP PRIMARY KEY,'
+ . '<br />&nbsp;&nbsp; ADD PRIMARY KEY('
+ . '<br />&nbsp;&nbsp;&nbsp;&nbsp; '
+ . PMA_backquote(htmlspecialchars($sval))
+ . ',';
+ } else {
+ $full_query .= '<br />&nbsp;&nbsp;&nbsp;&nbsp; '
+ . PMA_backquote(htmlspecialchars($sval))
+ . ',';
+ }
+ if ($i == $selected_cnt-1) {
+ $full_query = preg_replace('@,$@', ');<br />', $full_query);
+ }
+ break;
+
+ case 'drop_fld':
+ if ($full_query == '') {
+ $full_query .= 'ALTER TABLE '
+ . PMA_backquote(htmlspecialchars($table));
+ }
+ $full_query .= '<br />&nbsp;&nbsp;DROP '
+ . PMA_backquote(htmlspecialchars($sval))
+ . ',';
+ if ($i == $selected_cnt - 1) {
+ $full_query = preg_replace('@,$@', ';<br />', $full_query);
+ }
+ break;
+ } // end switch
+ $i++;
+ }
+ if ($what == 'drop_tbl') {
+ if (!empty($full_query)) {
+ $full_query .= ';<br />' . "\n";
+ }
+ if (!empty($full_query_views)) {
+ $full_query .= $full_query_views . ';<br />' . "\n";
+ }
+ unset($full_query_views);
+ }
+
+ // Displays the confirmation form
+ $_url_params = array(
+ 'query_type' => $what,
+ 'reload' => (! empty($reload) ? 1 : 0),
+ );
+ if (strpos(' ' . $action, 'db_') == 1) {
+ $_url_params['db']= $db;
+ } elseif (strpos(' ' . $action, 'tbl_') == 1 || $what == 'row_delete') {
+ $_url_params['db']= $db;
+ $_url_params['table']= $table;
+ }
+ foreach ($selected as $idx => $sval) {
+ $_url_params['selected'][] = $sval;
+ }
+ if ($what == 'drop_tbl' && !empty($views)) {
+ foreach ($views as $current) {
+ $_url_params['views'][] = $current;
+ }
+ }
+ if ($what == 'row_delete') {
+ $_url_params['original_sql_query'] = $original_sql_query;
+ $_url_params['original_url_query'] = $original_url_query;
+ }
+ ?>
+<form action="<?php echo $action; ?>" method="post">
+ <?php
+ echo PMA_generate_common_hidden_inputs($_url_params);
+ ?>
+<fieldset class="confirmation">
+ <legend><?php echo ($what == 'drop_db' ? $strDropDatabaseStrongWarning . '&nbsp;' : '') . $strDoYouReally; ?>:</legend>
+ <tt><?php echo $full_query; ?></tt>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="mult_btn" value="<?php echo $strYes; ?>" id="buttonYes" />
+ <input type="submit" name="mult_btn" value="<?php echo $strNo; ?>" id="buttonNo" />
+</fieldset>
+ <?php
+ require_once './libraries/footer.inc.php';
+} // end if
+
+
+/**
+ * Executes the query - dropping rows, columns/fields, tables or dbs
+ */
+elseif ($mult_btn == $strYes) {
+
+ if ($query_type == 'drop_db' || $query_type == 'drop_tbl' || $query_type == 'drop_fld') {
+ require_once './libraries/relation_cleanup.lib.php';
+ }
+
+ $sql_query = '';
+ if ($query_type == 'drop_tbl') {
+ $sql_query_views = '';
+ }
+ $selected_cnt = count($selected);
+ $run_parts = FALSE; // whether to run query after each pass
+ $use_sql = FALSE; // whether to include sql.php at the end (to display results)
+
+ if ($query_type == 'primary_fld') {
+ // Gets table primary key
+ PMA_DBI_select_db($db);
+ $result = PMA_DBI_query('SHOW KEYS FROM ' . PMA_backquote($table) . ';');
+ $primary = '';
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ // Backups the list of primary keys
+ if ($row['Key_name'] == 'PRIMARY') {
+ $primary .= $row['Column_name'] . ', ';
+ }
+ } // end while
+ PMA_DBI_free_result($result);
+ }
+
+ $rebuild_database_list = false;
+
+ for ($i = 0; $i < $selected_cnt; $i++) {
+ switch ($query_type) {
+ case 'row_delete':
+ $a_query = $selected[$i];
+ $run_parts = TRUE;
+ break;
+
+ case 'drop_db':
+ PMA_relationsCleanupDatabase($selected[$i]);
+ $a_query = 'DROP DATABASE '
+ . PMA_backquote($selected[$i]);
+ $reload = 1;
+ $run_parts = TRUE;
+ $rebuild_database_list = true;
+ break;
+
+ case 'drop_tbl':
+ PMA_relationsCleanupTable($db, $selected[$i]);
+ $current = $selected[$i];
+ if (!empty($views) && in_array($current, $views)) {
+ $sql_query_views .= (empty($sql_query_views) ? 'DROP VIEW ' : ', ')
+ . PMA_backquote($current);
+ } else {
+ $sql_query .= (empty($sql_query) ? 'DROP TABLE ' : ', ')
+ . PMA_backquote($current);
+ }
+ $reload = 1;
+ break;
+
+ case 'check_tbl':
+ $sql_query .= (empty($sql_query) ? 'CHECK TABLE ' : ', ')
+ . PMA_backquote($selected[$i]);
+ $use_sql = TRUE;
+ break;
+
+ case 'optimize_tbl':
+ $sql_query .= (empty($sql_query) ? 'OPTIMIZE TABLE ' : ', ')
+ . PMA_backquote($selected[$i]);
+ $use_sql = TRUE;
+ break;
+
+ case 'analyze_tbl':
+ $sql_query .= (empty($sql_query) ? 'ANALYZE TABLE ' : ', ')
+ . PMA_backquote($selected[$i]);
+ $use_sql = TRUE;
+ break;
+
+ case 'repair_tbl':
+ $sql_query .= (empty($sql_query) ? 'REPAIR TABLE ' : ', ')
+ . PMA_backquote($selected[$i]);
+ $use_sql = TRUE;
+ break;
+
+ case 'empty_tbl':
+ $a_query = 'TRUNCATE ';
+ $a_query .= PMA_backquote(htmlspecialchars($selected[$i]));
+ $run_parts = TRUE;
+ break;
+
+ case 'drop_fld':
+ PMA_relationsCleanupColumn($db, $table, $selected[$i]);
+ $sql_query .= (empty($sql_query) ? 'ALTER TABLE ' . PMA_backquote($table) : ',')
+ . ' DROP ' . PMA_backquote($selected[$i])
+ . (($i == $selected_cnt-1) ? ';' : '');
+ break;
+
+ case 'primary_fld':
+ $sql_query .= (empty($sql_query) ? 'ALTER TABLE ' . PMA_backquote($table) . (empty($primary) ? '' : ' DROP PRIMARY KEY,') . ' ADD PRIMARY KEY( ' : ', ')
+ . PMA_backquote($selected[$i])
+ . (($i == $selected_cnt-1) ? ');' : '');
+ break;
+
+ case 'index_fld':
+ $sql_query .= (empty($sql_query) ? 'ALTER TABLE ' . PMA_backquote($table) . ' ADD INDEX( ' : ', ')
+ . PMA_backquote($selected[$i])
+ . (($i == $selected_cnt-1) ? ');' : '');
+ break;
+
+ case 'unique_fld':
+ $sql_query .= (empty($sql_query) ? 'ALTER TABLE ' . PMA_backquote($table) . ' ADD UNIQUE( ' : ', ')
+ . PMA_backquote($selected[$i])
+ . (($i == $selected_cnt-1) ? ');' : '');
+ break;
+
+ case 'fulltext_fld':
+ $sql_query .= (empty($sql_query) ? 'ALTER TABLE ' . PMA_backquote($table) . ' ADD FULLTEXT( ' : ', ')
+ . PMA_backquote($selected[$i])
+ . (($i == $selected_cnt-1) ? ');' : '');
+ break;
+ } // end switch
+
+ // All "DROP TABLE", "DROP FIELD", "OPTIMIZE TABLE" and "REPAIR TABLE"
+ // statements will be run at once below
+ if ($run_parts) {
+ $sql_query .= $a_query . ';' . "\n";
+ if ($query_type != 'drop_db') {
+ PMA_DBI_select_db($db);
+ }
+ $result = PMA_DBI_query($a_query);
+ } // end if
+ } // end for
+
+ if ($query_type == 'drop_tbl') {
+ if (!empty($sql_query)) {
+ $sql_query .= ';';
+ } elseif (!empty($sql_query_views)) {
+ $sql_query = $sql_query_views . ';';
+ unset($sql_query_views);
+ }
+ }
+
+ if ($use_sql) {
+ require './sql.php';
+ } elseif (!$run_parts) {
+ PMA_DBI_select_db($db);
+ $result = PMA_DBI_try_query($sql_query);
+ if ($result && !empty($sql_query_views)) {
+ $sql_query .= ' ' . $sql_query_views . ';';
+ $result = PMA_DBI_try_query($sql_query_views);
+ unset($sql_query_views);
+ }
+
+ if (! $result) {
+ $message = PMA_Message::error(PMA_DBI_getError());
+ }
+ }
+ if ($rebuild_database_list) {
+ // avoid a problem with the database list navigator
+ // when dropping a db from server_databases
+ $GLOBALS['pma']->databases->build();
+ }
+} else {
+ $message = PMA_Message::success('strNoModification');
+}
+?>
diff --git a/libraries/mysql_charsets.lib.php b/libraries/mysql_charsets.lib.php
new file mode 100644
index 0000000000..518b92a4f5
--- /dev/null
+++ b/libraries/mysql_charsets.lib.php
@@ -0,0 +1,418 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+
+if (! PMA_cacheExists('mysql_charsets_count', true)) {
+ $res = PMA_DBI_query('SHOW CHARACTER SET;');
+
+ $mysql_charsets = array();
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ $mysql_charsets[] = $row['Charset'];
+ // never used
+ //$mysql_charsets_maxlen[$row['Charset']] = $row['Maxlen'];
+ $mysql_charsets_descriptions[$row['Charset']] = $row['Description'];
+ }
+ PMA_DBI_free_result($res);
+
+ $mysql_charsets_count = count($mysql_charsets);
+ sort($mysql_charsets, SORT_STRING);
+
+ $mysql_collations = array_flip($mysql_charsets);
+ $mysql_default_collations = $mysql_collations_flat = $mysql_charsets_available = $mysql_collations_available = array();
+
+ $res = PMA_DBI_query('SHOW COLLATION;');
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ if (!is_array($mysql_collations[$row['Charset']])) {
+ $mysql_collations[$row['Charset']] = array($row['Collation']);
+ } else {
+ $mysql_collations[$row['Charset']][] = $row['Collation'];
+ }
+ $mysql_collations_flat[] = $row['Collation'];
+ if ((isset($row['D']) && $row['D'] == 'Y') || (isset($row['Default']) && $row['Default'] == 'Yes')) {
+ $mysql_default_collations[$row['Charset']] = $row['Collation'];
+ }
+ //$mysql_collations_available[$row['Collation']] = !isset($row['Compiled']) || $row['Compiled'] == 'Yes';
+ $mysql_collations_available[$row['Collation']] = TRUE;
+ $mysql_charsets_available[$row['Charset']] =
+ !empty($mysql_charsets_available[$row['Charset']])
+ || !empty($mysql_collations_available[$row['Collation']]);
+ }
+ PMA_DBI_free_result($res);
+ unset($res, $row);
+
+ $mysql_collations_count = count($mysql_collations_flat);
+ sort($mysql_collations_flat, SORT_STRING);
+ foreach ($mysql_collations AS $key => $value) {
+ sort($mysql_collations[$key], SORT_STRING);
+ reset($mysql_collations[$key]);
+ }
+ unset($key, $value);
+
+ PMA_cacheSet('mysql_charsets', $GLOBALS['mysql_charsets'], true);
+ PMA_cacheSet('mysql_charsets_descriptions', $GLOBALS['mysql_charsets_descriptions'], true);
+ PMA_cacheSet('mysql_charsets_count', $GLOBALS['mysql_charsets_count'], true);
+ PMA_cacheSet('mysql_charsets_available', $GLOBALS['mysql_charsets_available'], true);
+ PMA_cacheSet('mysql_collations', $GLOBALS['mysql_collations'], true);
+ PMA_cacheSet('mysql_default_collations', $GLOBALS['mysql_default_collations'], true);
+ PMA_cacheSet('mysql_collations_flat', $GLOBALS['mysql_collations_flat'], true);
+ PMA_cacheSet('mysql_collations_count', $GLOBALS['mysql_collations_count'], true);
+ PMA_cacheSet('mysql_collations_available', $GLOBALS['mysql_collations_available'], true);
+} else {
+ $GLOBALS['mysql_charsets'] = PMA_cacheGet('mysql_charsets', true);
+ $GLOBALS['mysql_charsets_descriptions'] = PMA_cacheGet('mysql_charsets_descriptions', true);
+ $GLOBALS['mysql_charsets_count'] = PMA_cacheGet('mysql_charsets_count', true);
+ $GLOBALS['mysql_charsets_available'] = PMA_cacheGet('mysql_charsets_available', true);
+ $GLOBALS['mysql_collations'] = PMA_cacheGet('mysql_collations', true);
+ $GLOBALS['mysql_default_collations'] = PMA_cacheGet('mysql_default_collations', true);
+ $GLOBALS['mysql_collations_flat'] = PMA_cacheGet('mysql_collations_flat', true);
+ $GLOBALS['mysql_collations_count'] = PMA_cacheGet('mysql_collations_count', true);
+ $GLOBALS['mysql_collations_available'] = PMA_cacheGet('mysql_collations_available', true);
+}
+
+define('PMA_CSDROPDOWN_COLLATION', 0);
+define('PMA_CSDROPDOWN_CHARSET', 1);
+
+function PMA_generateCharsetDropdownBox($type = PMA_CSDROPDOWN_COLLATION,
+ $name = null, $id = null, $default = null, $label = TRUE, $indent = 0,
+ $submitOnChange = FALSE, $displayUnavailable = FALSE)
+{
+ global $mysql_charsets, $mysql_charsets_descriptions,
+ $mysql_charsets_available, $mysql_collations, $mysql_collations_available;
+
+ if (empty($name)) {
+ if ($type == PMA_CSDROPDOWN_COLLATION) {
+ $name = 'collation';
+ } else {
+ $name = 'character_set';
+ }
+ }
+
+ $return_str = '<select xml:lang="en" dir="ltr" name="'
+ . htmlspecialchars($name) . '"'
+ . (empty($id) ? '' : ' id="' . htmlspecialchars($id) . '"')
+ . ($submitOnChange ? ' onchange="this.form.submit();"' : '') . '>' . "\n";
+ if ($label) {
+ $return_str .= '<option value="">'
+ . ($type == PMA_CSDROPDOWN_COLLATION ? $GLOBALS['strCollation'] : $GLOBALS['strCharset'])
+ . '</option>' . "\n";
+ }
+ $return_str .= '<option value=""></option>' . "\n";
+ foreach ($mysql_charsets as $current_charset) {
+ if (!$mysql_charsets_available[$current_charset]) {
+ continue;
+ }
+ $current_cs_descr =
+ empty($mysql_charsets_descriptions[$current_charset])
+ ? $current_charset
+ : $mysql_charsets_descriptions[$current_charset];
+
+ if ($type == PMA_CSDROPDOWN_COLLATION) {
+ $return_str .= '<optgroup label="' . $current_charset
+ . '" title="' . $current_cs_descr . '">' . "\n";
+ foreach ($mysql_collations[$current_charset] as $current_collation) {
+ if (!$mysql_collations_available[$current_collation]) {
+ continue;
+ }
+ $return_str .= '<option value="' . $current_collation
+ . '" title="' . PMA_getCollationDescr($current_collation) . '"'
+ . ($default == $current_collation ? ' selected="selected"' : '') . '>'
+ . $current_collation . '</option>' . "\n";
+ }
+ $return_str .= '</optgroup>' . "\n";
+ } else {
+ $return_str .= '<option value="' . $current_charset
+ . '" title="' . $current_cs_descr . '"'
+ . ($default == $current_charset ? ' selected="selected"' : '') . '>'
+ . $current_charset . '</option>' . "\n";
+ }
+ }
+ $return_str .= '</select>' . "\n";
+
+ return $return_str;
+}
+
+function PMA_generateCharsetQueryPart($collation) {
+ list($charset) = explode('_', $collation);
+ return ' CHARACTER SET ' . $charset . ($charset == $collation ? '' : ' COLLATE ' . $collation);
+}
+
+/**
+ * returns collation of given db
+ *
+ * @uses PMA_DBI_fetch_value()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_sqlAddSlashes()
+ * @uses $GLOBALS['db']
+ * @param string $db name of db
+ * @return string collation of $db
+ */
+function PMA_getDbCollation($db) {
+ if ($db == 'information_schema') {
+ // We don't have to check the collation of the virtual
+ // information_schema database: We know it!
+ return 'utf8_general_ci';
+ }
+
+ return PMA_DBI_fetch_value('SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = \'' . PMA_sqlAddSlashes($db) . '\' LIMIT 1;');
+}
+
+/**
+ * returns default server collation from show variables
+ *
+ * @uses PMA_DBI_fetch_value()
+ * @return string $server_collation
+ */
+function PMA_getServerCollation() {
+ return PMA_DBI_fetch_value(
+ 'SHOW VARIABLES LIKE \'collation_server\'', 0, 1);
+}
+
+/**
+ * returns description for given collation
+ *
+ * @uses is_array()
+ * @uses explode()
+ * @uses count()
+ * @uses $GLOBALS['str[Languages|Sorting]']
+ *
+ * @param string $collation MySQL collation string
+ * @return string collation description
+ */
+function PMA_getCollationDescr($collation) {
+ static $collation_cache;
+
+ if (!is_array($collation_cache)) {
+ $collation_cache = array();
+ } elseif (isset($collation_cache[$collation])) {
+ return $collation_cache[$collation];
+ }
+
+ if ($collation == 'binary') {
+ return $GLOBALS['strBinary'];
+ }
+ $parts = explode('_', $collation);
+ if (count($parts) == 1) {
+ $parts[1] = 'general';
+ } elseif ($parts[1] == 'ci' || $parts[1] == 'cs') {
+ $parts[2] = $parts[1];
+ $parts[1] = 'general';
+ }
+ $descr = '';
+ switch ($parts[1]) {
+ case 'bulgarian':
+ $descr = $GLOBALS['strBulgarian'];
+ break;
+ case 'chinese':
+ if ($parts[0] == 'gb2312' || $parts[0] == 'gbk') {
+ $descr = $GLOBALS['strSimplifiedChinese'];
+ } elseif ($parts[0] == 'big5') {
+ $descr = $GLOBALS['strTraditionalChinese'];
+ }
+ break;
+ case 'ci':
+ $descr = $GLOBALS['strCaseInsensitive'];
+ break;
+ case 'cs':
+ $descr = $GLOBALS['strCaseSensitive'];
+ break;
+ case 'croatian':
+ $descr = $GLOBALS['strCroatian'];
+ break;
+ case 'czech':
+ $descr = $GLOBALS['strCzech'];
+ break;
+ case 'danish':
+ $descr = $GLOBALS['strDanish'];
+ break;
+ case 'english':
+ $descr = $GLOBALS['strEnglish'];
+ break;
+ case 'esperanto':
+ $descr = $GLOBALS['strEsperanto'];
+ break;
+ case 'estonian':
+ $descr = $GLOBALS['strEstonian'];
+ break;
+ case 'german1':
+ $descr = $GLOBALS['strGerman'] . ' (' . $GLOBALS['strDictionary'] . ')';
+ break;
+ case 'german2':
+ $descr = $GLOBALS['strGerman'] . ' (' . $GLOBALS['strPhoneBook'] . ')';
+ break;
+ case 'hungarian':
+ $descr = $GLOBALS['strHungarian'];
+ break;
+ case 'icelandic':
+ $descr = $GLOBALS['strIcelandic'];
+ break;
+ case 'japanese':
+ $descr = $GLOBALS['strJapanese'];
+ break;
+ case 'latvian':
+ $descr = $GLOBALS['strLatvian'];
+ break;
+ case 'lithuanian':
+ $descr = $GLOBALS['strLithuanian'];
+ break;
+ case 'korean':
+ $descr = $GLOBALS['strKorean'];
+ break;
+ case 'persian':
+ $descr = $GLOBALS['strPersian'];
+ break;
+ case 'polish':
+ $descr = $GLOBALS['strPolish'];
+ break;
+ case 'roman':
+ $descr = $GLOBALS['strWestEuropean'];
+ break;
+ case 'romanian':
+ $descr = $GLOBALS['strRomanian'];
+ break;
+ case 'slovak':
+ $descr = $GLOBALS['strSlovak'];
+ break;
+ case 'slovenian':
+ $descr = $GLOBALS['strSlovenian'];
+ break;
+ case 'spanish':
+ $descr = $GLOBALS['strSpanish'];
+ break;
+ case 'spanish2':
+ $descr = $GLOBALS['strTraditionalSpanish'];
+ break;
+ case 'swedish':
+ $descr = $GLOBALS['strSwedish'];
+ break;
+ case 'thai':
+ $descr = $GLOBALS['strThai'];
+ break;
+ case 'turkish':
+ $descr = $GLOBALS['strTurkish'];
+ break;
+ case 'ukrainian':
+ $descr = $GLOBALS['strUkrainian'];
+ break;
+ case 'unicode':
+ $descr = $GLOBALS['strUnicode'] . ' (' . $GLOBALS['strMultilingual'] . ')';
+ break;
+ case 'bin':
+ $is_bin = TRUE;
+ case 'general':
+ switch ($parts[0]) {
+ // Unicode charsets
+ case 'ucs2':
+ case 'utf8':
+ $descr = $GLOBALS['strUnicode'] . ' (' . $GLOBALS['strMultilingual'] . ')';
+ break;
+ // West European charsets
+ case 'ascii':
+ case 'cp850':
+ case 'dec8':
+ case 'hp8':
+ case 'latin1':
+ case 'macroman':
+ $descr = $GLOBALS['strWestEuropean'] . ' (' . $GLOBALS['strMultilingual'] . ')';
+ break;
+ // Central European charsets
+ case 'cp1250':
+ case 'cp852':
+ case 'latin2':
+ case 'macce':
+ $descr = $GLOBALS['strCentralEuropean'] . ' (' . $GLOBALS['strMultilingual'] . ')';
+ break;
+ // Russian charsets
+ case 'cp866':
+ case 'koi8r':
+ $descr = $GLOBALS['strRussian'];
+ break;
+ // Simplified Chinese charsets
+ case 'gb2312':
+ case 'gbk':
+ $descr = $GLOBALS['strSimplifiedChinese'];
+ break;
+ // Japanese charsets
+ case 'sjis':
+ case 'ujis':
+ case 'cp932':
+ case 'eucjpms':
+ $descr = $GLOBALS['strJapanese'];
+ break;
+ // Baltic charsets
+ case 'cp1257':
+ case 'latin7':
+ $descr = $GLOBALS['strBaltic'] . ' (' . $GLOBALS['strMultilingual'] . ')';
+ break;
+ // Other
+ case 'armscii8':
+ case 'armscii':
+ $descr = $GLOBALS['strArmenian'];
+ break;
+ case 'big5':
+ $descr = $GLOBALS['strTraditionalChinese'];
+ break;
+ case 'cp1251':
+ $descr = $GLOBALS['strCyrillic'] . ' (' . $GLOBALS['strMultilingual'] . ')';
+ break;
+ case 'cp1256':
+ $descr = $GLOBALS['strArabic'];
+ break;
+ case 'euckr':
+ $descr = $GLOBALS['strKorean'];
+ break;
+ case 'hebrew':
+ $descr = $GLOBALS['strHebrew'];
+ break;
+ case 'geostd8':
+ $descr = $GLOBALS['strGeorgian'];
+ break;
+ case 'greek':
+ $descr = $GLOBALS['strGreek'];
+ break;
+ case 'keybcs2':
+ $descr = $GLOBALS['strCzechSlovak'];
+ break;
+ case 'koi8u':
+ $descr = $GLOBALS['strUkrainian'];
+ break;
+ case 'latin5':
+ $descr = $GLOBALS['strTurkish'];
+ break;
+ case 'swe7':
+ $descr = $GLOBALS['strSwedish'];
+ break;
+ case 'tis620':
+ $descr = $GLOBALS['strThai'];
+ break;
+ default:
+ $descr = $GLOBALS['strUnknown'];
+ break;
+ }
+ if (!empty($is_bin)) {
+ $descr .= ', ' . $GLOBALS['strBinary'];
+ }
+ break;
+ default: $descr = $GLOBALS['strUnknown'];
+ }
+ if (!empty($parts[2])) {
+ if ($parts[2] == 'ci') {
+ $descr .= ', ' . $GLOBALS['strCaseInsensitive'];
+ } elseif ($parts[2] == 'cs') {
+ $descr .= ', ' . $GLOBALS['strCaseSensitive'];
+ }
+ }
+
+ $collation_cache[$collation] = $descr;
+ return $descr;
+}
+?>
diff --git a/libraries/navigation_header.inc.php b/libraries/navigation_header.inc.php
new file mode 100644
index 0000000000..fbe649ce9f
--- /dev/null
+++ b/libraries/navigation_header.inc.php
@@ -0,0 +1,108 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * displays the pma logo, links and db and server selection in left frame
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+if (empty($query_url)) {
+ // avoid putting here $db because it could display a db name
+ // to which the next user does not have access
+ $query_url = PMA_generate_common_url();
+}
+
+// display Logo, depending on $GLOBALS['cfg']['LeftDisplayLogo']
+if ($GLOBALS['cfg']['LeftDisplayLogo']) {
+ $logo = 'phpMyAdmin';
+ if (@file_exists($GLOBALS['pmaThemeImage'] . 'logo_left.png')) {
+ $logo = '<img src="' . $GLOBALS['pmaThemeImage'] . 'logo_left.png" '
+ .'alt="' . $logo . '" id="imgpmalogo" />';
+ } elseif (@file_exists($GLOBALS['pmaThemeImage'] . 'pma_logo2.png')) {
+ $logo = '<img src="' . $GLOBALS['pmaThemeImage'] . 'pma_logo2.png" '
+ .'alt="' . $logo . '" id="imgpmalogo" />';
+ }
+
+ echo '<div id="pmalogo">' . "\n"
+ .'<a href="' . $GLOBALS['cfg']['LeftLogoLink'];
+ switch ($GLOBALS['cfg']['LeftLogoLinkWindow']) {
+ case 'new':
+ echo '" target="_blank"';
+ break;
+ case 'main':
+ // do not add our parameters for an external link
+ if (substr(strtolower($GLOBALS['cfg']['LeftLogoLink']), 0, 4) !== 'http') {
+ echo '?' . $query_url . '" target="frame_content"';
+ } else {
+ echo '"';
+ }
+ }
+ echo '>' . $logo . '</a>' . "\n"
+ .'</div>' . "\n";
+} // end of display logo
+?>
+<div id="leftframelinks">
+<?php
+ echo '<a href="main.php?' . $query_url . '"'
+ .' title="' . $strHome . '">'
+ .($GLOBALS['cfg']['MainPageIconic']
+ ? '<img class="icon" src="' . $pmaThemeImage . 'b_home.png" width="16" '
+ .' height="16" alt="' . $strHome . '" />'
+ : $strHome)
+ .'</a>' . "\n";
+ // if we have chosen server
+ if ($server != 0) {
+ // Logout for advanced authentication
+ if ($GLOBALS['cfg']['Server']['auth_type'] != 'config') {
+ echo ($GLOBALS['cfg']['MainPageIconic'] ? '' : ' - ');
+ echo '<a href="index.php?' . $query_url . '&amp;old_usr='
+ .urlencode($PHP_AUTH_USER) . '" target="_parent"'
+ .' title="' . $strLogout . '" >'
+ .($GLOBALS['cfg']['MainPageIconic']
+ ? '<img class="icon" src="' . $pmaThemeImage . 's_loggoff.png" '
+ .' width="16" height="16" alt="' . $strLogout . '" />'
+ : $strLogout)
+ .'</a>' . "\n";
+ } // end if ($GLOBALS['cfg']['Server']['auth_type'] != 'config'
+
+ $anchor = 'querywindow.php?' . PMA_generate_common_url($db, $table);
+
+ if ($GLOBALS['cfg']['MainPageIconic']) {
+ $query_frame_link_text =
+ '<img class="icon" src="' . $pmaThemeImage . 'b_selboard.png"'
+ .' width="16" height="16" alt="' . $strQueryFrame . '" />';
+ } else {
+ echo '<br />' . "\n";
+ $query_frame_link_text = $strQueryFrame;
+ }
+ echo '<a href="' . $anchor . '&amp;no_js=true"'
+ .' title="' . $strQueryFrame . '"';
+ echo ' onclick="javascript:if (window.parent.open_querywindow()) return false;"';
+ echo '>' . $query_frame_link_text . '</a>' . "\n";
+ } // end if ($server != 0)
+
+if ($GLOBALS['cfg']['MainPageIconic']) {
+ echo ' <a href="Documentation.html" target="documentation"'
+ .' title="' . $strPmaDocumentation . '" >'
+ .'<img class="icon" src="' . $pmaThemeImage . 'b_docs.png" width="16" height="16"'
+ .' alt="' . $strPmaDocumentation . '" /></a>' . "\n";
+ echo ' ' . PMA_showMySQLDocu('', '', TRUE) . "\n";
+}
+echo '</div>' . "\n";
+
+/**
+ * Displays the MySQL servers choice form
+ */
+if ($GLOBALS['cfg']['LeftDisplayServers'] && (count($GLOBALS['cfg']['Servers']) > 1 || $server == 0 && count($GLOBALS['cfg']['Servers']) == 1)) {
+ echo '<div id="serverinfo">';
+ include './libraries/select_server.lib.php';
+ PMA_select_server(true, true);
+ echo '</div><br />';
+} // end if LeftDisplayServers
+?>
diff --git a/libraries/ob.lib.php b/libraries/ob.lib.php
new file mode 100644
index 0000000000..0c970f830d
--- /dev/null
+++ b/libraries/ob.lib.php
@@ -0,0 +1,107 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Output buffer functions for phpMyAdmin
+ *
+ * Copyright 2001 Jeremy Brand <jeremy@nirvani.net>
+ * http://www.jeremybrand.com/Jeremy/Brand/Jeremy_Brand.html
+ *
+ * Check for all the needed functions for output buffering
+ * Make some wrappers for the top and bottoms of our files.
+ *
+ * @version $Id$
+ */
+
+/**
+ * This function be used eventually to support more modes. It is needed
+ * because both header and footer functions must know what each other is
+ * doing.
+ *
+ * @uses $cfg['OBGzip']
+ * @uses function_exists()
+ * @uses ini_get()
+ * @uses ob_get_level()
+ * @staticvar integer remember last calculated value
+ * @return integer the output buffer mode
+ */
+function PMA_outBufferModeGet()
+{
+ static $mode = null;
+
+ if (null !== $mode) {
+ return $mode;
+ }
+
+ $mode = 0;
+
+ if ($GLOBALS['cfg']['OBGzip'] && function_exists('ob_start')) {
+ if (ini_get('output_handler') == 'ob_gzhandler') {
+ // If a user sets the output_handler in php.ini to ob_gzhandler, then
+ // any right frame file in phpMyAdmin will not be handled properly by
+ // the browser. My fix was to check the ini file within the
+ // PMA_outBufferModeGet() function.
+ //
+ // (Patch by Garth Gillespie, modified by Marc Delisle)
+ $mode = 0;
+ } elseif (function_exists('ob_get_level') && ob_get_level() > 0) {
+ // If output buffering is enabled in php.ini it's not possible to
+ // add the ob_gzhandler without a warning message from php 4.3.0.
+ // Being better safe than sorry, check for any existing output handler
+ // instead of just checking the 'output_buffering' setting.
+ $mode = 0;
+ } else {
+ $mode = 1;
+ }
+ }
+
+ // Zero (0) is no mode or in other words output buffering is OFF.
+ // Follow 2^0, 2^1, 2^2, 2^3 type values for the modes.
+ // Usefull if we ever decide to combine modes. Then a bitmask field of
+ // the sum of all modes will be the natural choice.
+
+ return $mode;
+} // end of the 'PMA_outBufferModeGet()' function
+
+
+/**
+ * This function will need to run at the top of all pages if output
+ * output buffering is turned on. It also needs to be passed $mode from
+ * the PMA_outBufferModeGet() function or it will be useless.
+ *
+ * @uses PMA_outBufferModeGet()
+ * @uses PMA_outBufferPost() to register it as shutdown function
+ * @uses ob_start()
+ * @uses header() to send X-ob_mode:
+ * @uses register_shutdown_function() to register PMA_outBufferPost()
+ */
+function PMA_outBufferPre()
+{
+ if ($mode = PMA_outBufferModeGet()) {
+ ob_start('ob_gzhandler');
+ }
+
+ header('X-ob_mode: ' . $mode);
+
+ register_shutdown_function('PMA_outBufferPost');
+} // end of the 'PMA_outBufferPre()' function
+
+
+/**
+ * This function will need to run at the bottom of all pages if output
+ * buffering is turned on. It also needs to be passed $mode from the
+ * PMA_outBufferModeGet() function or it will be useless.
+ *
+ * @uses PMA_outBufferModeGet()
+ * @uses ob_flush()
+ * @uses flush()
+ */
+function PMA_outBufferPost()
+{
+ if (ob_get_status() && PMA_outBufferModeGet()) {
+ ob_flush();
+ } else {
+ flush();
+ }
+} // end of the 'PMA_outBufferPost()' function
+
+?>
diff --git a/libraries/opendocument.lib.php b/libraries/opendocument.lib.php
new file mode 100644
index 0000000000..dfa27ffc88
--- /dev/null
+++ b/libraries/opendocument.lib.php
@@ -0,0 +1,103 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Simple interface for creating OASIS OpenDocument files.
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/zip.lib.php';
+
+$GLOBALS['OpenDocumentNS'] = 'xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" '
+ . 'xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" '
+ . 'xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" '
+ . 'xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" '
+ . 'xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" ';
+
+/**
+ * Minimalistic creator of OASIS OpenDocument
+ *
+ * @param string desired MIME type
+ * @param string document content
+ *
+ * @return string OASIS OpenDocument data
+ *
+ * @access public
+ */
+function PMA_createOpenDocument($mime, $data) {
+ $zipfile = new zipfile();
+ $zipfile -> addFile($mime, 'mimetype');
+ $zipfile -> addFile($data, 'content.xml');
+ $zipfile -> addFile('<?xml version="1.0" encoding="UTF-8"?'. '>'
+ . '<office:document-meta '
+ . 'xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" '
+ . 'xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" '
+ . 'office:version="1.0">'
+ . '<office:meta>'
+ . '<meta:generator>phpMyAdmin ' . PMA_VERSION . '</meta:generator>'
+ . '<meta:initial-creator>phpMyAdmin ' . PMA_VERSION . '</meta:initial-creator>'
+ . '<meta:creation-date>' . strftime('%Y-%m-%dT%H:%M:%S') . '</meta:creation-date>'
+ . '</office:meta>'
+ . '</office:document-meta>'
+ , 'meta.xml');
+ $zipfile -> addFile('<?xml version="1.0" encoding="UTF-8"?' . '>'
+ . '<office:document-styles '. $GLOBALS['OpenDocumentNS'] . 'office:version="1.0">'
+ . '<office:font-face-decls>'
+ . '<style:font-face style:name="Arial Unicode MS" svg:font-family="\'Arial Unicode MS\'" style:font-pitch="variable"/>'
+ . '<style:font-face style:name="DejaVu Sans1" svg:font-family="\'DejaVu Sans\'" style:font-pitch="variable"/>'
+ . '<style:font-face style:name="HG Mincho Light J" svg:font-family="\'HG Mincho Light J\'" style:font-pitch="variable"/>'
+ . '<style:font-face style:name="DejaVu Serif" svg:font-family="\'DejaVu Serif\'" style:font-family-generic="roman" style:font-pitch="variable"/>'
+ . '<style:font-face style:name="Thorndale" svg:font-family="Thorndale" style:font-family-generic="roman" style:font-pitch="variable"/>'
+ . '<style:font-face style:name="DejaVu Sans" svg:font-family="\'DejaVu Sans\'" style:font-family-generic="swiss" style:font-pitch="variable"/>'
+ . '</office:font-face-decls>'
+ . '<office:styles>'
+ . '<style:default-style style:family="paragraph">'
+ . '<style:paragraph-properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="0.4925in" style:writing-mode="page"/>'
+ . '<style:text-properties style:use-window-font-color="true" style:font-name="DejaVu Serif" fo:font-size="12pt" fo:language="en" fo:country="US" style:font-name-asian="DejaVu Sans1" style:font-size-asian="12pt" style:language-asian="none" style:country-asian="none" style:font-name-complex="DejaVu Sans1" style:font-size-complex="12pt" style:language-complex="none" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>'
+ . '</style:default-style>'
+ . '<style:style style:name="Standard" style:family="paragraph" style:class="text"/>'
+ . '<style:style style:name="Text_body" style:display-name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">'
+ . '<style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.0835in"/>'
+ . '</style:style>'
+ . '<style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text_body" style:class="text">'
+ . '<style:paragraph-properties fo:margin-top="0.1665in" fo:margin-bottom="0.0835in" fo:keep-with-next="always"/>'
+ . '<style:text-properties style:font-name="DejaVu Sans" fo:font-size="14pt" style:font-name-asian="DejaVu Sans1" style:font-size-asian="14pt" style:font-name-complex="DejaVu Sans1" style:font-size-complex="14pt"/>'
+ . '</style:style>'
+ . '<style:style style:name="Heading_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_body" style:class="text" style:default-outline-level="1">'
+ . '<style:text-properties style:font-name="Thorndale" fo:font-size="24pt" fo:font-weight="bold" style:font-name-asian="HG Mincho Light J" style:font-size-asian="24pt" style:font-weight-asian="bold" style:font-name-complex="Arial Unicode MS" style:font-size-complex="24pt" style:font-weight-complex="bold"/>'
+ . '</style:style>'
+ . '<style:style style:name="Heading_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_body" style:class="text" style:default-outline-level="2">'
+ . '<style:text-properties style:font-name="DejaVu Serif" fo:font-size="18pt" fo:font-weight="bold" style:font-name-asian="DejaVu Sans1" style:font-size-asian="18pt" style:font-weight-asian="bold" style:font-name-complex="DejaVu Sans1" style:font-size-complex="18pt" style:font-weight-complex="bold"/>'
+ . '</style:style>'
+ . '</office:styles>'
+ . '<office:automatic-styles>'
+ . '<style:page-layout style:name="pm1">'
+ . '<style:page-layout-properties fo:page-width="8.2673in" fo:page-height="11.6925in" style:num-format="1" style:print-orientation="portrait" fo:margin-top="1in" fo:margin-bottom="1in" fo:margin-left="1.25in" fo:margin-right="1.25in" style:writing-mode="lr-tb" style:footnote-max-height="0in">'
+ . '<style:footnote-sep style:width="0.0071in" style:distance-before-sep="0.0398in" style:distance-after-sep="0.0398in" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>'
+ . '</style:page-layout-properties>'
+ . '<style:header-style/>'
+ . '<style:footer-style/>'
+ . '</style:page-layout>'
+ . '</office:automatic-styles>'
+ . '<office:master-styles>'
+ . '<style:master-page style:name="Standard" style:page-layout-name="pm1"/>'
+ . '</office:master-styles>'
+ . '</office:document-styles>'
+ , 'styles.xml');
+ $zipfile -> addFile('<?xml version="1.0" encoding="UTF-8"?' . '>'
+ . '<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">'
+ . '<manifest:file-entry manifest:media-type="' . $mime . '" manifest:full-path="/"/>'
+ . '<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>'
+ . '<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>'
+ . '<manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>'
+ . '</manifest:manifest>'
+ , 'META-INF/manifest.xml');
+ return $zipfile -> file();
+}
+?>
diff --git a/libraries/parse_analyze.lib.php b/libraries/parse_analyze.lib.php
new file mode 100644
index 0000000000..ad05fb0d38
--- /dev/null
+++ b/libraries/parse_analyze.lib.php
@@ -0,0 +1,59 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+$GLOBALS['unparsed_sql'] = $sql_query;
+$parsed_sql = PMA_SQP_parse($sql_query);
+$analyzed_sql = PMA_SQP_analyze($parsed_sql);
+
+// lem9: for bug 780516: now that we use case insensitive preg_match
+// or flags from the analyser, do not put back the reformatted query
+// into $sql_query, to make this kind of query work without
+// capitalizing keywords:
+//
+// CREATE TABLE SG_Persons (
+// id int(10) unsigned NOT NULL auto_increment,
+// first varchar(64) NOT NULL default '',
+// PRIMARY KEY (`id`)
+// )
+
+// check for a real SELECT ... FROM
+$is_select = isset($analyzed_sql[0]['queryflags']['select_from']);
+
+// If the query is a Select, extract the db and table names and modify
+// $db and $table, to have correct page headers, links and left frame.
+// db and table name may be enclosed with backquotes, db is optionnal,
+// query may contain aliases.
+
+/**
+ * @todo if there are more than one table name in the Select:
+ * - do not extract the first table name
+ * - do not show a table name in the page header
+ * - do not display the sub-pages links)
+ */
+if ($is_select) {
+ $prev_db = $db;
+ if (isset($analyzed_sql[0]['table_ref'][0]['table_true_name'])) {
+ $table = $analyzed_sql[0]['table_ref'][0]['table_true_name'];
+ }
+ if (isset($analyzed_sql[0]['table_ref'][0]['db'])
+ && strlen($analyzed_sql[0]['table_ref'][0]['db'])) {
+ $db = $analyzed_sql[0]['table_ref'][0]['db'];
+ } else {
+ $db = $prev_db;
+ }
+ // Nijel: don't change reload, if we already decided to reload in import
+ if (empty($reload)) {
+ $reload = ($db == $prev_db) ? 0 : 1;
+ }
+}
+?>
diff --git a/libraries/plugin_interface.lib.php b/libraries/plugin_interface.lib.php
new file mode 100644
index 0000000000..144dc6fbb1
--- /dev/null
+++ b/libraries/plugin_interface.lib.php
@@ -0,0 +1,377 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Generic plugin interface.
+ *
+ * @version $Id$
+ */
+
+/**
+ * array PMA_getPlugins(string $plugins_dir, mixed $plugin_param)
+ *
+ * Reads all plugin information from directory $plugins_dir.
+ *
+ * @uses ksort()
+ * @uses opendir()
+ * @uses readdir()
+ * @uses is_file()
+ * @uses eregi()
+ * @param string $plugins_dir directrory with plugins
+ * @param mixed $plugin_param parameter to plugin by which they can decide whether they can work
+ * @return array list of plugins
+ */
+function PMA_getPlugins($plugins_dir, $plugin_param)
+{
+ /* Scan for plugins */
+ $plugin_list = array();
+ if ($handle = @opendir($plugins_dir)) {
+ $is_first = 0;
+ while ($file = @readdir($handle)) {
+ // In some situations, Mac OS creates a new file for each file
+ // (for example ._csv.php) so the following regexp
+ // matches a file which does not start with a dot but ends
+ // with ".php"
+ if (is_file($plugins_dir . $file) && preg_match('@^[^\.](.)*\.php$@i', $file)) {
+ include $plugins_dir . $file;
+ }
+ }
+ }
+ ksort($plugin_list);
+ return $plugin_list;
+}
+
+/**
+ * string PMA_getString(string $name)
+ *
+ * returns locale string for $name or $name if no locale is found
+ *
+ * @uses $GLOBALS
+ * @param string $name for local string
+ * @return string locale string for $name
+ */
+function PMA_getString($name)
+{
+ return isset($GLOBALS[$name]) ? $GLOBALS[$name] : $name;
+}
+
+/**
+ * string PMA_pluginCheckboxCheck(string $section, string $opt)
+ *
+ * returns html input tag option 'checked' if plugin $opt should be set by config or request
+ *
+ * @uses $_REQUEST
+ * @uses $GLOBALS['cfg']
+ * @uses $GLOBALS['timeout_passed']
+ * @param string $section name of config section in
+ * $GLOBALS['cfg'][$section] for plugin
+ * @param string $opt name of option
+ * @return string hmtl input tag option 'checked'
+ */
+function PMA_pluginCheckboxCheck($section, $opt)
+{
+ if ((isset($GLOBALS['timeout_passed']) && $GLOBALS['timeout_passed'] && isset($_REQUEST[$opt])) ||
+ (isset($GLOBALS['cfg'][$section][$opt]) && $GLOBALS['cfg'][$section][$opt])) {
+ return ' checked="checked"';
+ }
+ return '';
+}
+
+/**
+ * string PMA_pluginGetDefault(string $section, string $opt)
+ *
+ * returns default value for option $opt
+ *
+ * @uses htmlspecialchars()
+ * @uses $_REQUEST
+ * @uses $GLOBALS['cfg']
+ * @uses $GLOBALS['timeout_passed']
+ * @param string $section name of config section in
+ * $GLOBALS['cfg'][$section] for plugin
+ * @param string $opt name of option
+ * @return string default value for option $opt
+ */
+function PMA_pluginGetDefault($section, $opt)
+{
+ if (isset($GLOBALS['timeout_passed']) && $GLOBALS['timeout_passed'] && isset($_REQUEST[$opt])) {
+ return htmlspecialchars($_REQUEST[$opt]);
+ } elseif (isset($GLOBALS['cfg'][$section][$opt])) {
+ $matches = array();
+ /* Possibly replace localised texts */
+ if (preg_match_all('/(str[A-Z][A-Za-z0-9]*)/', $GLOBALS['cfg'][$section][$opt], $matches)) {
+ $val = $GLOBALS['cfg'][$section][$opt];
+ foreach($matches[0] as $match) {
+ if (isset($GLOBALS[$match])) {
+ $val = str_replace($match, $GLOBALS[$match], $val);
+ }
+ }
+ return htmlspecialchars($val);
+ } else {
+ return htmlspecialchars($GLOBALS['cfg'][$section][$opt]);
+ }
+ }
+ return '';
+}
+
+/**
+ * string PMA_pluginIsActive(string $section, string $opt, string $val)
+ *
+ * returns html input tag option 'checked' if option $opt should be set by config or request
+ *
+ * @uses $_REQUEST
+ * @uses $GLOBALS['cfg']
+ * @uses $GLOBALS['timeout_passed']
+ * @param string $section name of config section in
+ * $GLOBALS['cfg'][$section] for plugin
+ * @param string $opt name of option
+ * @param string $val value of option to check against
+ * @return string html input tag option 'checked'
+ */
+function PMA_pluginIsActive($section, $opt, $val)
+{
+ if (! empty($GLOBALS['timeout_passed']) && isset($_REQUEST[$opt])) {
+ if ($_REQUEST[$opt] == $val) {
+ return ' checked="checked"';
+ }
+ } elseif (isset($GLOBALS['cfg'][$section][$opt]) && $GLOBALS['cfg'][$section][$opt] == $val) {
+ return ' checked="checked"';
+ }
+ return '';
+}
+
+/**
+ * string PMA_pluginGetChoice(string $section, string $name, array &$list, string $cfgname)
+ *
+ * returns html radio form element for plugin choice
+ *
+ * @uses PMA_pluginIsActive()
+ * @uses PMA_getString()
+ * @param string $section name of config section in
+ * $GLOBALS['cfg'][$section] for plugin
+ * @param string $name name of radio element
+ * @param array &$list array with plugin configuration defined in plugin file
+ * @param string $cfgname name of config value, if none same as $name
+ * @return string html input radio tag
+ */
+function PMA_pluginGetChoice($section, $name, &$list, $cfgname = NULL)
+{
+ if (!isset($cfgname)) {
+ $cfgname = $name;
+ }
+ $ret = '';
+ foreach ($list as $plugin_name => $val) {
+ $ret .= '<!-- ' . $plugin_name . ' -->' . "\n";
+ $ret .= '<input type="radio" name="' . $name . '" value="' . $plugin_name . '"'
+ . ' id="radio_plugin_' . $plugin_name . '"'
+ . ' onclick="if(this.checked) { hide_them_all();';
+ if (isset($val['force_file'])) {
+ $ret .= 'document.getElementById(\'checkbox_dump_asfile\').checked = true;';
+ }
+ $ret .= ' document.getElementById(\'' . $plugin_name . '_options\').style.display = \'block\'; };'
+ .' return true"'
+ . PMA_pluginIsActive($section, $cfgname, $plugin_name) . '/>' . "\n";
+ $ret .= '<label for="radio_plugin_' . $plugin_name . '">'
+ . PMA_getString($val['text']) . '</label>' . "\n";
+ $ret .= '<br /><br />' . "\n";
+ }
+ return $ret;
+}
+
+/**
+ * string PMA_pluginGetOneOption(string $section, string $plugin_name, string $id, array &$opt)
+ *
+ * returns single option in a table row
+ *
+ * @uses PMA_getString()
+ * @uses PMA_pluginCheckboxCheck()
+ * @uses PMA_pluginGetDefault()
+ * @param string $section name of config section in
+ * $GLOBALS['cfg'][$section] for plugin
+ * @param string $plugin_name unique plugin name
+ * @param string $id option id
+ * @param array &$opt plugin option details
+ * @return string table row with option
+ */
+function PMA_pluginGetOneOption($section, $plugin_name, $id, &$opt)
+{
+ $ret = "\n";
+ if ($opt['type'] == 'bool') {
+ $ret .= '<div class="formelementrow">' . "\n";
+ $ret .= '<input type="checkbox" name="' . $plugin_name . '_' . $opt['name'] . '"'
+ . ' value="something" id="checkbox_' . $plugin_name . '_' . $opt['name'] . '"'
+ . ' ' . PMA_pluginCheckboxCheck($section, $plugin_name . '_' . $opt['name']);
+ if (isset($opt['force'])) {
+ /* Same code is also few lines lower, update both if needed */
+ $ret .= ' onclick="if (!this.checked &amp;&amp; '
+ . '(!document.getElementById(\'checkbox_' . $plugin_name . '_' .$opt['force'] . '\') '
+ . '|| !document.getElementById(\'checkbox_' . $plugin_name . '_' .$opt['force'] . '\').checked)) '
+ . 'return false; else return true;"';
+ }
+ $ret .= ' />';
+ $ret .= '<label for="checkbox_' . $plugin_name . '_' . $opt['name'] . '">'
+ . PMA_getString($opt['text']) . '</label>';
+ $ret .= '</div>' . "\n";
+ } elseif ($opt['type'] == 'text') {
+ $ret .= '<div class="formelementrow">' . "\n";
+ $ret .= '<label for="text_' . $plugin_name . '_' . $opt['name'] . '" class="desc">'
+ . PMA_getString($opt['text']) . '</label>';
+ $ret .= '<input type="text" name="' . $plugin_name . '_' . $opt['name'] . '"'
+ . ' value="' . PMA_pluginGetDefault($section, $plugin_name . '_' . $opt['name']) . '"'
+ . ' id="text_' . $plugin_name . '_' . $opt['name'] . '"'
+ . (isset($opt['size']) ? ' size="' . $opt['size'] . '"' : '')
+ . (isset($opt['len']) ? ' maxlength="' . $opt['len'] . '"' : '') . ' />';
+ $ret .= '</div>' . "\n";
+ } elseif ($opt['type'] == 'message_only') {
+ $ret .= '<div class="formelementrow">' . "\n";
+ $ret .= '<p class="desc">' . PMA_getString($opt['text']) . '</p>';
+ $ret .= '</div>' . "\n";
+ } elseif ($opt['type'] == 'select') {
+ $ret .= '<div class="formelementrow">' . "\n";
+ $ret .= '<label for="select_' . $plugin_name . '_' . $opt['name'] . '" class="desc">'
+ . PMA_getString($opt['text']) . '</label>';
+ $ret .= '<select name="' . $plugin_name . '_' . $opt['name'] . '"'
+ . ' id="select_' . $plugin_name . '_' . $opt['name'] . '">';
+ $default = PMA_pluginGetDefault($section, $plugin_name . '_' . $opt['name']);
+ foreach($opt['values'] as $key => $val) {
+ $ret .= '<option value="' . $key . '"';
+ if ($key == $default) {
+ $ret .= ' selected="selected"';
+ }
+ $ret .= '>' . PMA_getString($val) . '</option>';
+ }
+ $ret .= '</select>';
+ $ret .= '</div>' . "\n";
+ } elseif ($opt['type'] == 'hidden') {
+ $ret .= '<input type="hidden" name="' . $plugin_name . '_' . $opt['name'] . '"'
+ . ' value="' . PMA_pluginGetDefault($section, $plugin_name . '_' . $opt['name']) . '"' . ' />';
+ } elseif ($opt['type'] == 'bgroup') {
+ $ret .= '<fieldset><legend>';
+ /* No checkbox without name */
+ if (!empty($opt['name'])) {
+ $ret .= '<input type="checkbox" name="' . $plugin_name . '_' . $opt['name'] . '"'
+ . ' value="something" id="checkbox_' . $plugin_name . '_' . $opt['name'] . '"'
+ . ' ' . PMA_pluginCheckboxCheck($section, $plugin_name . '_' . $opt['name']);
+ if (isset($opt['force'])) {
+ /* Same code is also few lines higher, update both if needed */
+ $ret .= ' onclick="if (!this.checked &amp;&amp; '
+ . '(!document.getElementById(\'checkbox_' . $plugin_name . '_' .$opt['force'] . '\') '
+ . '|| !document.getElementById(\'checkbox_' . $plugin_name . '_' .$opt['force'] . '\').checked)) '
+ . 'return false; else return true;"';
+ }
+ $ret .= ' />';
+ $ret .= '<label for="checkbox_' . $plugin_name . '_' . $opt['name'] . '">'
+ . PMA_getString($opt['text']) . '</label>';
+ } else {
+ $ret .= PMA_getString($opt['text']);
+ }
+ $ret .= '</legend>';
+ } elseif ($opt['type'] == 'egroup') {
+ $ret .= '</fieldset>';
+ } else {
+ /* This should be seen only by plugin writers, so I do not thing this
+ * needs translation. */
+ $ret .= 'UNKNOWN OPTION ' . $opt['type'] . ' IN IMPORT PLUGIN ' . $plugin_name . '!';
+ }
+ if (isset($opt['doc'])) {
+ if (count($opt['doc']) == 3) {
+ $ret .= PMA_showMySQLDocu($opt['doc'][0], $opt['doc'][1], false, $opt['doc'][2]);
+ } else {
+ $ret .= PMA_showMySQLDocu($opt['doc'][0], $opt['doc'][1]);
+ }
+ }
+ $ret .= "\n";
+ return $ret;
+}
+
+/**
+ * string PMA_pluginGetOptions(string $section, array &$list)
+ *
+ * return html fieldset with editable options for plugin
+ *
+ * @uses PMA_getString()
+ * @uses PMA_pluginGetOneOption()
+ * @param string $section name of config section in $GLOBALS['cfg'][$section]
+ * @param array &$list array with plugin configuration defined in plugin file
+ * @return string html fieldset with plugin options
+ */
+function PMA_pluginGetOptions($section, &$list)
+{
+ $ret = '';
+ // Options for plugins that support them
+ foreach ($list as $plugin_name => $val) {
+ $ret .= '<fieldset id="' . $plugin_name . '_options" class="options">';
+ $ret .= '<legend>' . PMA_getString($val['options_text']) . '</legend>';
+ $count = 0;
+ if (isset($val['options']) && count($val['options']) > 0) {
+ foreach ($val['options'] as $id => $opt) {
+ if ($opt['type'] != 'hidden') $count++;
+ $ret .= PMA_pluginGetOneOption($section, $plugin_name, $id, $opt);
+ }
+ }
+ if ($count == 0) {
+ $ret .= $GLOBALS['strNoOptions'];
+ }
+ $ret .= '</fieldset>';
+ }
+ return $ret;
+}
+
+/**
+ * string PMA_pluginGetJavascript(array &$list)
+ *
+ * return html/javascript code which is needed for handling plugin stuff
+ *
+ * @param array &$list array with plugin configuration defined in plugin file
+ * @return string html fieldset with plugin options
+ */
+function PMA_pluginGetJavascript(&$list) {
+ $ret = '
+ <script type="text/javascript">
+ //<![CDATA[
+ function hide_them_all() {
+ ';
+ foreach ($list as $plugin_name => $val) {
+ $ret .= 'document.getElementById("' . $plugin_name . '_options").style.display = "none";' . "\n";
+ }
+ $ret .= '
+ }
+
+ function init_options() {
+ hide_them_all();
+ ';
+ foreach ($list as $plugin_name => $val) {
+ $ret .= 'if (document.getElementById("radio_plugin_' . $plugin_name . '").checked) {' . "\n";
+ if (isset($val['force_file'])) {
+ $ret .= 'document.getElementById(\'checkbox_dump_asfile\').checked = true;' . "\n";
+ }
+ $ret .= 'document.getElementById("' . $plugin_name . '_options").style.display = "block";' . "\n";
+ $ret .= ' } else ' . "\n";
+ }
+ $ret .= '
+ {
+ ;
+ }
+ }
+
+ function match_file(fname) {
+ farr = fname.toLowerCase().split(".");
+ if (farr.length != 0) {
+ len = farr.length
+ if (farr[len - 1] == "gz" || farr[len - 1] == "bz2" || farr[len -1] == "zip") len--;
+ switch (farr[len - 1]) {
+ ';
+ foreach ($list as $plugin_name => $val) {
+ $ret .= 'case "' . $val['extension'] . '" :';
+ $ret .= 'document.getElementById("radio_plugin_' . $plugin_name . '").checked = true;';
+ $ret .= 'init_options();';
+ $ret .= 'break;' . "\n";
+ }
+ $ret .='
+ }
+ }
+ }
+ //]]>
+ </script>
+ ';
+ return $ret;
+}
+?>
diff --git a/libraries/relation.lib.php b/libraries/relation.lib.php
new file mode 100644
index 0000000000..50a9b4137d
--- /dev/null
+++ b/libraries/relation.lib.php
@@ -0,0 +1,1167 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used with the relation and pdf feature
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/Table.class.php';
+
+/**
+ * Executes a query as controluser if possible, otherwise as normal user
+ *
+ * @param string the query to execute
+ * @param boolean whether to display SQL error messages or not
+ *
+ * @return integer the result set, or false if no result set
+ *
+ * @access public
+ *
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ */
+function PMA_query_as_cu($sql, $show_error = true, $options = 0)
+{
+ if ($show_error) {
+ $result = PMA_DBI_query($sql, $GLOBALS['controllink'], $options);
+ } else {
+ $result = @PMA_DBI_try_query($sql, $GLOBALS['controllink'], $options);
+ } // end if... else...
+
+ if ($result) {
+ return $result;
+ } else {
+ return false;
+ }
+} // end of the "PMA_query_as_cu()" function
+
+/**
+ * @uses $_SESSION['relation' . $GLOBALS['server']] for caching
+ * @uses $GLOBALS['cfgRelation'] to set it
+ * @uses $GLOBALS['server'] to ensure we are using server-specific pmadb
+ * @uses PMA__getRelationsParam()
+ * @uses PMA_printRelationsParamDiagnostic()
+ * @param bool $verbose whether to print diagnostic info
+ * @return array $cfgRelation
+ */
+function PMA_getRelationsParam($verbose = false)
+{
+ if (empty($_SESSION['relation' . $GLOBALS['server']])) {
+ $_SESSION['relation' . $GLOBALS['server']] = PMA__getRelationsParam();
+ }
+
+ if ($verbose) {
+ PMA_printRelationsParamDiagnostic($_SESSION['relation' . $GLOBALS['server']]);
+ }
+
+ // just for BC
+ $GLOBALS['cfgRelation'] = $_SESSION['relation' . $GLOBALS['server']];
+
+ return $_SESSION['relation' . $GLOBALS['server']];
+}
+
+/**
+ * prints out diagnostic info for pma relation feature
+ *
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['controllink']
+ * @uses $GLOBALS['strNotOK']
+ * @uses $GLOBALS['strDocu']
+ * @uses $GLOBALS['strGeneralRelationFeat']
+ * @uses $GLOBALS['strDisabled']
+ * @uses $GLOBALS['strEnabled']
+ * @uses $GLOBALS['strDisplayFeat']
+ * @uses $GLOBALS['strCreatePdfFeat']
+ * @uses $GLOBALS['strColComFeat']
+ * @uses $GLOBALS['strBookmarkQuery']
+ * @uses $GLOBALS['strUpdComTab']
+ * @uses $GLOBALS['strQuerySQLHistory']
+ * @uses $GLOBALS['strDesigner']
+ * @uses $cfg['Server']['pmadb']
+ * @uses sprintf()
+ * @uses PMA_printDiagMessageForFeature()
+ * @uses PMA_printDiagMessageForParameter()
+ * @param array $cfgRelation
+ */
+function PMA_printRelationsParamDiagnostic($cfgRelation)
+{
+ $messages['error'] = '<font color="red"><strong>' . $GLOBALS['strNotOK']
+ . '</strong></font> [ <a href="Documentation.html#%s" target="documentation">'
+ . $GLOBALS['strDocu'] . '</a> ]';
+
+ $messages['ok'] = '<font color="green"><strong>' . $GLOBALS['strOK'] . '</strong></font>';
+ $messages['enabled'] = '<font color="green">' . $GLOBALS['strEnabled'] . '</font>';
+ $messages['disabled'] = '<font color="red">' . $GLOBALS['strDisabled'] . '</font>';
+
+ if (false === $GLOBALS['cfg']['Server']['pmadb']) {
+ echo 'PMA Database ... '
+ . sprintf($messages['error'], 'pmadb')
+ . '<br />' . "\n"
+ . $GLOBALS['strGeneralRelationFeat']
+ . ' <font color="green">' . $GLOBALS['strDisabled']
+ . '</font>' . "\n";
+ return;
+ }
+
+ echo '<table>' . "\n";
+
+ PMA_printDiagMessageForParameter('pmadb', $GLOBALS['cfg']['Server']['pmadb'], $messages, 'pmadb');
+
+ PMA_printDiagMessageForParameter('relation', isset($cfgRelation['relation']), $messages, 'relation');
+
+ PMA_printDiagMessageForFeature('strGeneralRelationFeat', 'relwork', $messages);
+
+ PMA_printDiagMessageForParameter('table_info', isset($cfgRelation['displaywork']), $messages, 'table_info');
+
+ PMA_printDiagMessageForFeature('strDisplayFeat', 'displaywork', $messages);
+
+ PMA_printDiagMessageForParameter('table_coords', isset($cfgRelation['table_coords']), $messages, 'table_coords');
+
+ PMA_printDiagMessageForParameter('pdf_pages', isset($cfgRelation['pdf_pages']), $messages, 'table_coords');
+
+ PMA_printDiagMessageForFeature('strCreatePdfFeat', 'pdfwork', $messages);
+
+ PMA_printDiagMessageForParameter('column_info', isset($cfgRelation['column_info']), $messages, 'col_com');
+
+ PMA_printDiagMessageForFeature('strColComFeat', 'commwork', $messages, false);
+
+ PMA_printDiagMessageForFeature('strBookmarkQuery', 'bookmarkwork', $messages, false);
+
+ PMA_printDiagMessageForFeature('strMIME_transformation', 'mimework', $messages);
+
+ if ($cfgRelation['commwork'] && ! $cfgRelation['mimework']) {
+ echo '<tr><td colspan=2 align="left">' . $GLOBALS['strUpdComTab'] . '</td></tr>' . "\n";
+ }
+
+ PMA_printDiagMessageForParameter('history', isset($cfgRelation['history']), $messages, 'history');
+
+ PMA_printDiagMessageForFeature('strQuerySQLHistory', 'historywork', $messages);
+
+ PMA_printDiagMessageForParameter('designer_coords', isset($cfgRelation['designer_coords']), $messages, 'designer_coords');
+
+ PMA_printDiagMessageForFeature('strDesigner', 'designerwork', $messages);
+
+ echo '</table>' . "\n";
+}
+
+/**
+ * prints out one diagnostic message for a feature
+ *
+ * @param string feature name in a message string
+ * @param string the $GLOBALS['cfgRelation'] parameter to check
+ * @param array utility messages
+ * @param boolean whether to skip a line after the message
+ */
+function PMA_printDiagMessageForFeature($feature_name, $relation_parameter, $messages, $skip_line=true)
+{
+ echo ' <tr><td colspan=2 align="right">' . $GLOBALS[$feature_name] . ': '
+ . ($GLOBALS['cfgRelation'][$relation_parameter] ? $messages['enabled'] : $messages['disabled'])
+ . '</td></tr>' . "\n";
+ if ($skip_line) {
+ echo ' <tr><td>&nbsp;</td></tr>' . "\n";
+ }
+}
+
+/**
+ * prints out one diagnostic message for a configuration parameter
+ *
+ * @param string config parameter name to display
+ * @param boolean whether this parameter is set
+ * @param array utility messages
+ * @param string anchor in Documentation.html
+ */
+function PMA_printDiagMessageForParameter($parameter, $relation_parameter_set, $messages, $doc_anchor)
+{
+ echo ' <tr><th align="left">';
+ echo '$cfg[\'Servers\'][$i][\'' . $parameter . '\'] ... </th><td align="right">';
+ echo ($relation_parameter_set ? $messages['ok'] : sprintf($messages['error'], $doc_anchor)) . '</td></tr>' . "\n";
+}
+
+
+/**
+ * Defines the relation parameters for the current user
+ * just a copy of the functions used for relations ;-)
+ * but added some stuff to check what will work
+ *
+ * @uses $cfg['Server']['user']
+ * @uses $cfg['Server']['pmadb']
+ * @uses $cfg['Server']['verbose_check']
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['controllink']
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_backquote()
+ * @uses PMA_query_as_cu()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_DBI_free_result()
+ * @access protected
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ * @return array the relation parameters for the current user
+ */
+function PMA__getRelationsParam()
+{
+ $cfgRelation = array();
+ $cfgRelation['relwork'] = false;
+ $cfgRelation['displaywork'] = false;
+ $cfgRelation['bookmarkwork']= false;
+ $cfgRelation['pdfwork'] = false;
+ $cfgRelation['commwork'] = false;
+ $cfgRelation['mimework'] = false;
+ $cfgRelation['historywork'] = false;
+ $cfgRelation['designerwork'] = false;
+ $cfgRelation['allworks'] = false;
+ $cfgRelation['user'] = null;
+ $cfgRelation['db'] = null;
+
+ if ($GLOBALS['server'] == 0 || empty($GLOBALS['cfg']['Server']['pmadb'])
+ || ! PMA_DBI_select_db($GLOBALS['cfg']['Server']['pmadb'], $GLOBALS['controllink'])) {
+ // No server selected -> no bookmark table
+ // we return the array with the falses in it,
+ // to avoid some 'Unitialized string offset' errors later
+ $GLOBALS['cfg']['Server']['pmadb'] = false;
+ return $cfgRelation;
+ }
+
+
+ $cfgRelation['user'] = $GLOBALS['cfg']['Server']['user'];
+ $cfgRelation['db'] = $GLOBALS['cfg']['Server']['pmadb'];
+
+ // Now I just check if all tables that i need are present so I can for
+ // example enable relations but not pdf...
+ // I was thinking of checking if they have all required columns but I
+ // fear it might be too slow
+
+ $tab_query = 'SHOW TABLES FROM ' . PMA_backquote($GLOBALS['cfg']['Server']['pmadb']);
+ $tab_rs = PMA_query_as_cu($tab_query, false, PMA_DBI_QUERY_STORE);
+
+ if (! $tab_rs) {
+ // query failed ... ?
+ //$GLOBALS['cfg']['Server']['pmadb'] = false;
+ return $cfgRelation;
+ }
+
+ while ($curr_table = @PMA_DBI_fetch_row($tab_rs)) {
+ if ($curr_table[0] == $GLOBALS['cfg']['Server']['bookmarktable']) {
+ $cfgRelation['bookmark'] = $curr_table[0];
+ } elseif ($curr_table[0] == $GLOBALS['cfg']['Server']['relation']) {
+ $cfgRelation['relation'] = $curr_table[0];
+ } elseif ($curr_table[0] == $GLOBALS['cfg']['Server']['table_info']) {
+ $cfgRelation['table_info'] = $curr_table[0];
+ } elseif ($curr_table[0] == $GLOBALS['cfg']['Server']['table_coords']) {
+ $cfgRelation['table_coords'] = $curr_table[0];
+ } elseif ($curr_table[0] == $GLOBALS['cfg']['Server']['designer_coords']) {
+ $cfgRelation['designer_coords'] = $curr_table[0];
+ } elseif ($curr_table[0] == $GLOBALS['cfg']['Server']['column_info']) {
+ $cfgRelation['column_info'] = $curr_table[0];
+ } elseif ($curr_table[0] == $GLOBALS['cfg']['Server']['pdf_pages']) {
+ $cfgRelation['pdf_pages'] = $curr_table[0];
+ } elseif ($curr_table[0] == $GLOBALS['cfg']['Server']['history']) {
+ $cfgRelation['history'] = $curr_table[0];
+ }
+ } // end while
+ PMA_DBI_free_result($tab_rs);
+
+ if (isset($cfgRelation['relation'])) {
+ $cfgRelation['relwork'] = true;
+ if (isset($cfgRelation['table_info'])) {
+ $cfgRelation['displaywork'] = true;
+ }
+ }
+ if (isset($cfgRelation['table_coords']) && isset($cfgRelation['pdf_pages'])) {
+ $cfgRelation['pdfwork'] = true;
+ }
+ if (isset($cfgRelation['column_info'])) {
+ $cfgRelation['commwork'] = true;
+
+ if ($GLOBALS['cfg']['Server']['verbose_check']) {
+ $mime_query = 'SHOW FIELDS FROM '
+ . PMA_backquote($cfgRelation['db']) . '.'
+ . PMA_backquote($cfgRelation['column_info']);
+ $mime_rs = PMA_query_as_cu($mime_query, false);
+
+ $mime_field_mimetype = false;
+ $mime_field_transformation = false;
+ $mime_field_transformation_options = false;
+ while ($curr_mime_field = @PMA_DBI_fetch_row($mime_rs)) {
+ if ($curr_mime_field[0] == 'mimetype') {
+ $mime_field_mimetype = true;
+ } elseif ($curr_mime_field[0] == 'transformation') {
+ $mime_field_transformation = true;
+ } elseif ($curr_mime_field[0] == 'transformation_options') {
+ $mime_field_transformation_options = true;
+ }
+ }
+ PMA_DBI_free_result($mime_rs);
+
+ if ($mime_field_mimetype
+ && $mime_field_transformation
+ && $mime_field_transformation_options) {
+ $cfgRelation['mimework'] = true;
+ }
+ } else {
+ $cfgRelation['mimework'] = true;
+ }
+ }
+
+ if (isset($cfgRelation['history'])) {
+ $cfgRelation['historywork'] = true;
+ }
+
+ // we do not absolutely need that the internal relations or the PDF
+ // schema feature be activated
+ if (isset($cfgRelation['designer_coords'])) {
+ $cfgRelation['designerwork'] = true;
+ }
+
+ if (isset($cfgRelation['bookmark'])) {
+ $cfgRelation['bookmarkwork'] = true;
+ }
+
+ if ($cfgRelation['relwork'] && $cfgRelation['displaywork']
+ && $cfgRelation['pdfwork'] && $cfgRelation['commwork']
+ && $cfgRelation['mimework'] && $cfgRelation['historywork']
+ && $cfgRelation['bookmarkwork'] && $cfgRelation['designerwork']) {
+ $cfgRelation['allworks'] = true;
+ }
+
+ return $cfgRelation;
+} // end of the 'PMA_getRelationsParam()' function
+
+/**
+ * Gets all Relations to foreign tables for a given table or
+ * optionally a given column in a table
+ *
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ * @author Marc Delisle
+ * @access public
+ * @uses $GLOBALS['controllink']
+ * @uses $GLOBALS['information_schema_relations']
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_DBI_fetch_value()
+ * @uses PMA_SQP_analyze()
+ * @uses PMA_SQP_parse()
+ * @uses count()
+ * @uses strlen()
+ * @param string $db the name of the db to check for
+ * @param string $table the name of the table to check for
+ * @param string $column the name of the column to check for
+ * @param string $source the source for foreign key information
+ * @return array db,table,column
+ */
+function PMA_getForeigners($db, $table, $column = '', $source = 'both')
+{
+ $cfgRelation = PMA_getRelationsParam();
+ $foreign = array();
+
+ if ($cfgRelation['relwork'] && ($source == 'both' || $source == 'internal')) {
+ $rel_query = '
+ SELECT `master_field`,
+ `foreign_db`,
+ `foreign_table`,
+ `foreign_field`
+ FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation']) . '
+ WHERE `master_db` = \'' . PMA_sqlAddslashes($db) . '\'
+ AND `master_table` = \'' . PMA_sqlAddslashes($table) . '\' ';
+ if (strlen($column)) {
+ $rel_query .= ' AND `master_field` = \'' . PMA_sqlAddslashes($column) . '\'';
+ }
+ $foreign = PMA_DBI_fetch_result($rel_query, 'master_field', null, $GLOBALS['controllink']);
+ }
+
+ if (($source == 'both' || $source == 'foreign') && strlen($table)) {
+ $show_create_table_query = 'SHOW CREATE TABLE '
+ . PMA_backquote($db) . '.' . PMA_backquote($table);
+ $show_create_table = PMA_DBI_fetch_value($show_create_table_query, 0, 1);
+ $analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
+
+ foreach ($analyzed_sql[0]['foreign_keys'] as $one_key) {
+ // The analyzer may return more than one column name in the
+ // index list or the ref_index_list; if this happens,
+ // the current logic just discards the whole index; having
+ // more than one index field is currently unsupported (see FAQ 3.6)
+ if (count($one_key['index_list']) == 1) {
+ foreach ($one_key['index_list'] as $i => $field) {
+ // If a foreign key is defined in the 'internal' source (pmadb)
+ // and as a native foreign key, we won't get it twice
+ // if $source='both' because we use $field as key
+
+ // The parser looks for a CONSTRAINT clause just before
+ // the FOREIGN KEY clause. It finds it (as output from
+ // SHOW CREATE TABLE) in MySQL 4.0.13, but not in older
+ // versions like 3.23.58.
+ // In those cases, the FOREIGN KEY parsing will put numbers
+ // like -1, 0, 1... instead of the constraint number.
+
+ if (isset($one_key['constraint'])) {
+ $foreign[$field]['constraint'] = $one_key['constraint'];
+ }
+
+ if (isset($one_key['ref_db_name'])) {
+ $foreign[$field]['foreign_db'] = $one_key['ref_db_name'];
+ } else {
+ $foreign[$field]['foreign_db'] = $db;
+ }
+ $foreign[$field]['foreign_table'] = $one_key['ref_table_name'];
+ $foreign[$field]['foreign_field'] = $one_key['ref_index_list'][$i];
+ if (isset($one_key['on_delete'])) {
+ $foreign[$field]['on_delete'] = $one_key['on_delete'];
+ }
+ if (isset($one_key['on_update'])) {
+ $foreign[$field]['on_update'] = $one_key['on_update'];
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Emulating relations for some information_schema tables
+ */
+ if ($db == 'information_schema'
+ && ($source == 'internal' || $source == 'both')) {
+ require_once './libraries/information_schema_relations.lib.php';
+
+ if (isset($GLOBALS['information_schema_relations'][$table])) {
+ foreach ($GLOBALS['information_schema_relations'][$table] as $field => $relations) {
+ if ((! strlen($column) || $column == $field)
+ && (! isset($foreign[$field]) || ! strlen($foreign[$field]))) {
+ $foreign[$field] = $relations;
+ }
+ }
+ }
+ }
+
+ return $foreign;
+} // end of the 'PMA_getForeigners()' function
+
+/**
+ * Gets the display field of a table
+ *
+ * @access public
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ * @uses $GLOBALS['controllink']
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_fetch_single_row()
+ * @uses trim()
+ * @param string $db the name of the db to check for
+ * @param string $table the name of the table to check for
+ * @return string field name
+ */
+function PMA_getDisplayField($db, $table)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ /**
+ * Try to fetch the display field from DB.
+ */
+ if ($cfgRelation['displaywork']) {
+ $disp_query = '
+ SELECT `display_field`
+ FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_info']) . '
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($table) . '\'';
+
+ $row = PMA_DBI_fetch_single_row($disp_query, 'ASSOC', $GLOBALS['controllink']);
+ if (isset($row['display_field'])) {
+ return $row['display_field'];
+ }
+ }
+
+ /**
+ * Emulating the display field for some information_schema tables.
+ */
+ if ($db == 'information_schema') {
+ switch ($table) {
+ case 'CHARACTER_SETS': return 'DESCRIPTION';
+ case 'TABLES': return 'TABLE_COMMENT';
+ }
+ }
+
+ /**
+ * No Luck...
+ */
+ return false;
+
+} // end of the 'PMA_getDisplayField()' function
+
+/**
+ * Gets the comments for all rows of a table or the db itself
+ *
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ * @author lem9
+ * @access public
+ * @uses PMA_DBI_get_fields()
+ * @uses PMA_getDbComment()
+ * @param string the name of the db to check for
+ * @param string the name of the table to check for
+ * @return array [field_name] = comment
+ */
+function PMA_getComments($db, $table = '')
+{
+ $comments = array();
+
+ if ($table != '') {
+ // MySQL native column comments
+ $fields = PMA_DBI_get_fields($db, $table);
+ if ($fields) {
+ foreach ($fields as $key => $field) {
+ if (! empty($field['Comment'])) {
+ $comments[$field['Field']] = $field['Comment'];
+ }
+ }
+ }
+ } else {
+ $comments[] = PMA_getDbComment($db);
+ }
+
+ return $comments;
+} // end of the 'PMA_getComments()' function
+
+/**
+ * Gets the comment for a db
+ *
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ * @author lem9
+ * @access public
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_free_result()
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @uses strlen()
+ * @param string the name of the db to check for
+ * @return string comment
+ */
+function PMA_getDbComment($db)
+{
+ $cfgRelation = PMA_getRelationsParam();
+ $comment = '';
+
+ if ($cfgRelation['commwork']) {
+ // pmadb internal db comment
+ $com_qry = "
+ SELECT `comment`
+ FROM " . PMA_backquote($cfgRelation['db']) . "." . PMA_backquote($cfgRelation['column_info']) . "
+ WHERE db_name = '" . PMA_sqlAddslashes($db) . "'
+ AND table_name = ''
+ AND column_name = '(db_comment)'";
+ $com_rs = PMA_query_as_cu($com_qry, true, PMA_DBI_QUERY_STORE);
+
+ if ($com_rs && PMA_DBI_num_rows($com_rs) > 0) {
+ $row = PMA_DBI_fetch_assoc($com_rs);
+ $comment = $row['comment'];
+ }
+ PMA_DBI_free_result($com_rs);
+ }
+
+ return $comment;
+} // end of the 'PMA_getDbComment()' function
+
+/**
+ * Gets the comment for a db
+ *
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ * @author lem9
+ * @access public
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_free_result()
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @uses strlen()
+ * @param string the name of the db to check for
+ * @return string comment
+ */
+function PMA_getDbComments()
+{
+ $cfgRelation = PMA_getRelationsParam();
+ $comments = array();
+
+ if ($cfgRelation['commwork']) {
+ // pmadb internal db comment
+ $com_qry = "
+ SELECT `db_name`, `comment`
+ FROM " . PMA_backquote($cfgRelation['db']) . "." . PMA_backquote($cfgRelation['column_info']) . "
+ WHERE `column_name` = '(db_comment)'";
+ $com_rs = PMA_query_as_cu($com_qry, true, PMA_DBI_QUERY_STORE);
+
+ if ($com_rs && PMA_DBI_num_rows($com_rs) > 0) {
+ while ($row = PMA_DBI_fetch_assoc($com_rs)) {
+ $comments[$row['db_name']] = $row['comment'];
+ }
+ }
+ PMA_DBI_free_result($com_rs);
+ }
+
+ return $comments;
+} // end of the 'PMA_getDbComments()' function
+
+/**
+ * Set a database comment to a certain value.
+ *
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @uses strlen()
+ * @access public
+ * @param string $db the name of the db
+ * @param string $comment the value of the column
+ * @return boolean true, if comment-query was made.
+ */
+function PMA_setDbComment($db, $comment = '')
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if (! $cfgRelation['commwork']) {
+ return false;
+ }
+
+ if (strlen($comment)) {
+ $upd_query = "
+ INSERT INTO
+ " . PMA_backquote($cfgRelation['db']) . "." . PMA_backquote($cfgRelation['column_info']) . "
+ (`db_name`, `table_name`, `column_name`, `comment`)
+ VALUES (
+ '" . PMA_sqlAddslashes($db) . "',
+ '',
+ '(db_comment)',
+ '" . PMA_sqlAddslashes($comment) . "')
+ ON DUPLICATE KEY UPDATE
+ `comment` = '" . PMA_sqlAddslashes($comment) . "'";
+ } else {
+ $upd_query = '
+ DELETE FROM
+ ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info']) . '
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($db) . '\'
+ AND `table_name` = \'\'
+ AND `column_name` = \'(db_comment)\'';
+ }
+
+ if (isset($upd_query)){
+ return PMA_query_as_cu($upd_query);
+ }
+
+ return false;
+} // end of 'PMA_setDbComment()' function
+
+/**
+ * Set a SQL history entry
+ *
+ * @uses $_SESSION['sql_history']
+ * @uses $cfg['QueryHistoryMax']
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_query_as_cu()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses count()
+ * @uses md5()
+ * @uses array_shift()
+ * @param string $db the name of the db
+ * @param string $table the name of the table
+ * @param string $username the username
+ * @param string $sqlquery the sql query
+ * @access public
+ */
+function PMA_setHistory($db, $table, $username, $sqlquery)
+{
+ if (strlen($sqlquery) > $GLOBALS['cfg']['MaxCharactersInDisplayedSQL']) {
+ return;
+ }
+
+ $cfgRelation = PMA_getRelationsParam();
+
+ if (! isset($_SESSION['sql_history'])) {
+ $_SESSION['sql_history'] = array();
+ }
+
+ $key = md5($sqlquery . $db . $table);
+
+ if (isset($_SESSION['sql_history'][$key])) {
+ unset($_SESSION['sql_history'][$key]);
+ }
+
+ $_SESSION['sql_history'][$key] = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'sqlquery' => $sqlquery,
+ );
+
+ if (count($_SESSION['sql_history']) > $GLOBALS['cfg']['QueryHistoryMax']) {
+ // history should not exceed a maximum count
+ array_shift($_SESSION['sql_history']);
+ }
+
+ if (! $cfgRelation['historywork']) {
+ return;
+ }
+
+ PMA_query_as_cu('
+ INSERT INTO
+ ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['history']) . '
+ (`username`,
+ `db`,
+ `table`,
+ `timevalue`,
+ `sqlquery`)
+ VALUES
+ (\'' . PMA_sqlAddslashes($username) . '\',
+ \'' . PMA_sqlAddslashes($db) . '\',
+ \'' . PMA_sqlAddslashes($table) . '\',
+ NOW(),
+ \'' . PMA_sqlAddslashes($sqlquery) . '\')');
+} // end of 'PMA_setHistory()' function
+
+/**
+ * Gets a SQL history entry
+ *
+ * @uses $_SESSION['sql_history']
+ * @uses $GLOBALS['controllink']
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_fetch_result()
+ * @uses array_reverse()
+ * @param string $username the username
+ * @return array list of history items
+ * @access public
+ */
+function PMA_getHistory($username)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if (isset($_SESSION['sql_history'])) {
+ return array_reverse($_SESSION['sql_history']);
+ }
+
+ if (! $cfgRelation['historywork']) {
+ return false;
+ }
+
+ $hist_query = '
+ SELECT `db`,
+ `table`,
+ `sqlquery`
+ FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['history']) . '
+ WHERE `username` = \'' . PMA_sqlAddslashes($username) . '\'
+ ORDER BY `id` DESC';
+
+ return PMA_DBI_fetch_result($hist_query, null, null, $GLOBALS['controllink']);
+} // end of 'PMA_getHistory()' function
+
+/**
+ * purges SQL history
+ *
+ * deletes entries that exceeds $cfg['QueryHistoryMax'], oldest first, for the
+ * given user
+ *
+ * @uses $cfg['QueryHistoryMax']
+ * @uses $cfg['QueryHistoryDB']
+ * @uses $GLOBALS['controllink']
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddSlashes()
+ * @uses PMA_query_as_cu()
+ * @uses PMA_DBI_fetch_value()
+ * @param string $username the username
+ * @access public
+ */
+function PMA_purgeHistory($username)
+{
+ $cfgRelation = PMA_getRelationsParam();
+ if (! $GLOBALS['cfg']['QueryHistoryDB'] || ! $cfgRelation['historywork']) {
+ return;
+ }
+
+ if (! $cfgRelation['historywork']) {
+ return;
+ }
+
+ $search_query = '
+ SELECT `timevalue`
+ FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['history']) . '
+ WHERE `username` = \'' . PMA_sqlAddSlashes($username) . '\'
+ ORDER BY `timevalue` DESC
+ LIMIT ' . $GLOBALS['cfg']['QueryHistoryMax'] . ', 1';
+
+ if ($max_time = PMA_DBI_fetch_value($search_query, 0, 0, $GLOBALS['controllink'])) {
+ PMA_query_as_cu('
+ DELETE FROM
+ ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['history']) . '
+ WHERE `username` = \'' . PMA_sqlAddSlashes($username) . '\'
+ AND `timevalue` <= \'' . $max_time . '\'');
+ }
+} // end of 'PMA_purgeHistory()' function
+
+/**
+ * Prepares the dropdown for one mode
+ *
+ * @uses $cfg['LimitChars']
+ * @uses $cfg['NaturalOrder']
+ * @uses PMA_strlen()
+ * @uses htmlspecialchars()
+ * @uses substr()
+ * @uses uksort()
+ * @uses ksort()
+ * @uses natcasesort()
+ * @uses asort()
+ * @param array $foreign the keys and values for foreigns
+ * @param string $data the current data of the dropdown
+ * @param string $mode the needed mode
+ *
+ * @return array the <option value=""><option>s
+ *
+ * @access protected
+ */
+function PMA__foreignDropdownBuild($foreign, $data, $mode)
+{
+ $reloptions = array();
+
+ if ($mode == 'id-content') {
+ // sort for id-content
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ uksort($foreign, 'strnatcasecmp');
+ } else {
+ ksort($foreign);
+ }
+ } elseif ($mode == 'content-id') {
+ // sort for content-id
+ if ($GLOBALS['cfg']['NaturalOrder']) {
+ natcasesort($foreign);
+ } else {
+ asort($foreign);
+ }
+ }
+
+ foreach ($foreign as $key => $value) {
+
+ if (PMA_strlen($value) <= $GLOBALS['cfg']['LimitChars']) {
+ $vtitle = '';
+ $value = htmlspecialchars($value);
+ } else {
+ $vtitle = htmlspecialchars($value);
+ $value = htmlspecialchars(substr($value, 0, $GLOBALS['cfg']['LimitChars']) . '...');
+ }
+
+ $reloption = ' <option value="' . htmlspecialchars($key) . '"';
+ if ($vtitle != '') {
+ $reloption .= ' title="' . $vtitle . '"';
+ }
+
+ if ((string) $key == (string) $data) {
+ $reloption .= ' selected="selected"';
+ }
+
+ if ($mode == 'content-id') {
+ $reloptions[] = $reloption . '>' . $value . '&nbsp;-&nbsp;' . htmlspecialchars($key) . '</option>' . "\n";
+ } else {
+ $reloptions[] = $reloption . '>' . htmlspecialchars($key) . '&nbsp;-&nbsp;' . $value . '</option>' . "\n";
+ }
+ } // end foreach
+
+ return $reloptions;
+} // end of 'PMA__foreignDropdownBuild' function
+
+/**
+ * Outputs dropdown with values of foreign fields
+ *
+ * @uses $cfg['ForeignKeyMaxLimit']
+ * @uses $cfg['ForeignKeyDropdownOrder']
+ * @uses PMA__foreignDropdownBuild()
+ * @uses PMA_isValid()
+ * @uses implode()
+ * @param array array of the displayed row
+ * @param string the foreign field
+ * @param string the foreign field to display
+ * @param string the current data of the dropdown (field in row)
+ * @return string the <option value=""><option>s
+ * @access public
+ */
+function PMA_foreignDropdown($disp_row, $foreign_field, $foreign_display, $data,
+ $max = null)
+{
+ if (null === $max) {
+ $max = $GLOBALS['cfg']['ForeignKeyMaxLimit'];
+ }
+
+ $foreign = array();
+
+ // collect the data
+ foreach ($disp_row as $relrow) {
+ $key = $relrow[$foreign_field];
+
+ // if the display field has been defined for this foreign table
+ if ($foreign_display) {
+ $value = $relrow[$foreign_display];
+ } else {
+ $value = '';
+ } // end if ($foreign_display)
+
+ $foreign[$key] = $value;
+ } // end foreach
+
+ // put the dropdown sections in correct order
+ $top = array();
+ $bot = array();
+ if (PMA_isValid($GLOBALS['cfg']['ForeignKeyDropdownOrder'], 'array')) {
+ if (PMA_isValid($GLOBALS['cfg']['ForeignKeyDropdownOrder'][0])) {
+ $top = PMA__foreignDropdownBuild($foreign, $data,
+ $GLOBALS['cfg']['ForeignKeyDropdownOrder'][0]);
+ }
+ if (PMA_isValid($GLOBALS['cfg']['ForeignKeyDropdownOrder'][1])) {
+ $bot = PMA__foreignDropdownBuild($foreign, $data,
+ $GLOBALS['cfg']['ForeignKeyDropdownOrder'][1]);
+ }
+ } else {
+ $top = PMA__foreignDropdownBuild($foreign, $data, 'id-content');
+ $bot = PMA__foreignDropdownBuild($foreign, $data, 'content-id');
+ }
+
+ // beginning of dropdown
+ $ret = '<option value="">&nbsp;</option>' . "\n";
+
+ $top_count = count($top);
+ if ($max == -1 || $top_count < $max) {
+ $ret .= implode('', $top);
+ if ($top_count > 0) {
+ $ret .= ' <option value="">&nbsp;</option>' . "\n";
+ $ret .= ' <option value="">&nbsp;</option>' . "\n";
+ }
+ }
+ $ret .= implode('', $bot);
+
+ return $ret;
+} // end of 'PMA_foreignDropdown()' function
+
+/**
+ * Gets foreign keys in preparation for a drop-down selector
+ * Thanks to <markus@noga.de>
+ *
+ * @uses PMA_Table::countRecords()
+ * @uses PMA_backquote()
+ * @uses PMA_getDisplayField()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_fetch_value()
+ * @uses PMA_DBI_free_result()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_assoc()
+ * @param array array of the foreign keys
+ * @param string the foreign field name
+ * @param bool whether to override the total
+ * @param string a possible filter
+ * @param string a possible LIMIT clause
+ * @return array data about the foreign keys
+ * @access public
+ */
+
+function PMA_getForeignData($foreigners, $field, $override_total, $foreign_filter, $foreign_limit)
+{
+ // we always show the foreign field in the drop-down; if a display
+ // field is defined, we show it besides the foreign field
+ $foreign_link = false;
+ if ($foreigners && isset($foreigners[$field])) {
+ $foreigner = $foreigners[$field];
+ $foreign_db = $foreigner['foreign_db'];
+ $foreign_table = $foreigner['foreign_table'];
+ $foreign_field = $foreigner['foreign_field'];
+
+ // Count number of rows in the foreign table. Currently we do
+ // not use a drop-down if more than 200 rows in the foreign table,
+ // for speed reasons and because we need a better interface for this.
+ //
+ // We could also do the SELECT anyway, with a LIMIT, and ensure that
+ // the current value of the field is one of the choices.
+
+ $the_total = PMA_Table::countRecords($foreign_db, $foreign_table, TRUE);
+
+ if ($override_total == true || $the_total < $GLOBALS['cfg']['ForeignKeyMaxLimit']) {
+ // foreign_display can be FALSE if no display field defined:
+ $foreign_display = PMA_getDisplayField($foreign_db, $foreign_table);
+
+ $f_query_main = 'SELECT ' . PMA_backquote($foreign_field)
+ . (($foreign_display == FALSE) ? '' : ', ' . PMA_backquote($foreign_display));
+ $f_query_from = ' FROM ' . PMA_backquote($foreign_db) . '.' . PMA_backquote($foreign_table);
+ $f_query_filter = empty($foreign_filter) ? '' : ' WHERE ' . PMA_backquote($foreign_field)
+ . ' LIKE "%' . PMA_sqlAddslashes($foreign_filter, TRUE) . '%"'
+ . (($foreign_display == FALSE) ? '' : ' OR ' . PMA_backquote($foreign_display)
+ . ' LIKE "%' . PMA_sqlAddslashes($foreign_filter, TRUE) . '%"'
+ );
+ $f_query_order = ($foreign_display == FALSE) ? '' :' ORDER BY ' . PMA_backquote($foreign_table) . '.' . PMA_backquote($foreign_display);
+ $f_query_limit = isset($foreign_limit) ? $foreign_limit : '';
+
+ if (!empty($foreign_filter)) {
+ $res = PMA_DBI_query('SELECT COUNT(*)' . $f_query_from . $f_query_filter);
+ if ($res) {
+ $the_total = PMA_DBI_fetch_value($res);
+ @PMA_DBI_free_result($res);
+ } else {
+ $the_total = 0;
+ }
+ }
+
+ $disp = PMA_DBI_query($f_query_main . $f_query_from . $f_query_filter . $f_query_order . $f_query_limit);
+ if ($disp && PMA_DBI_num_rows($disp) > 0) {
+ // If a resultset has been created, pre-cache it in the $disp_row array
+ // This helps us from not needing to use mysql_data_seek by accessing a pre-cached
+ // PHP array. Usually those resultsets are not that big, so a performance hit should
+ // not be expected.
+ $disp_row = array();
+ while ($single_disp_row = @PMA_DBI_fetch_assoc($disp)) {
+ $disp_row[] = $single_disp_row;
+ }
+ @PMA_DBI_free_result($disp);
+ }
+ } else {
+ $disp_row = null;
+ $foreign_link = true;
+ }
+ } // end if $foreigners
+
+ $foreignData['foreign_link'] = $foreign_link;
+ $foreignData['the_total'] = isset($the_total) ? $the_total : null;
+ $foreignData['foreign_display'] = isset($foreign_display) ? $foreign_display : null;
+ $foreignData['disp_row'] = isset($disp_row) ? $disp_row : null;
+ $foreignData['foreign_field'] = isset($foreign_field) ? $foreign_field : null;
+ return $foreignData;
+} // end of 'PMA_getForeignData()' function
+
+/**
+ * Finds all related tables
+ *
+ * @uses $GLOBALS['controllink']
+ * @uses $GLOBALS['cfgRelation']
+ * @uses $GLOBALS['db']
+ * @param string whether to go from master to foreign or vice versa
+ * @return boolean always TRUE
+ * @global array $tab_left the list of tables that we still couldn't connect
+ * @global array $tab_know the list of allready connected tables
+ * @global string $fromclause
+ *
+ * @access private
+ */
+function PMA_getRelatives($from)
+{
+ global $tab_left, $tab_know, $fromclause;
+
+ if ($from == 'master') {
+ $to = 'foreign';
+ } else {
+ $to = 'master';
+ }
+ $in_know = '(\'' . implode('\', \'', $tab_know) . '\')';
+ $in_left = '(\'' . implode('\', \'', $tab_left) . '\')';
+
+ $rel_query = 'SELECT *'
+ . ' FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db'])
+ . '.' . PMA_backquote($GLOBALS['cfgRelation']['relation'])
+ . ' WHERE ' . $from . '_db = \'' . PMA_sqlAddslashes($GLOBALS['db']) . '\''
+ . ' AND ' . $to . '_db = \'' . PMA_sqlAddslashes($GLOBALS['db']) . '\''
+ . ' AND ' . $from . '_table IN ' . $in_know
+ . ' AND ' . $to . '_table IN ' . $in_left;
+ $relations = @PMA_DBI_query($rel_query, $GLOBALS['controllink']);
+ while ($row = PMA_DBI_fetch_assoc($relations)) {
+ $found_table = $row[$to . '_table'];
+ if (isset($tab_left[$found_table])) {
+ $fromclause
+ .= "\n" . ' LEFT JOIN '
+ . PMA_backquote($GLOBALS['db']) . '.' . PMA_backquote($row[$to . '_table']) . ' ON '
+ . PMA_backquote($row[$from . '_table']) . '.'
+ . PMA_backquote($row[$from . '_field']) . ' = '
+ . PMA_backquote($row[$to . '_table']) . '.'
+ . PMA_backquote($row[$to . '_field']) . ' ';
+ $tab_know[$found_table] = $found_table;
+ unset($tab_left[$found_table]);
+ }
+ } // end while
+
+ return true;
+} // end of the "PMA_getRelatives()" function
+
+/**
+ * Rename a field in relation tables
+ *
+ * usually called after a field in a table was renamed in tbl_alter.php
+ *
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @param string $db
+ * @param string $table
+ * @param string $field
+ * @param string $new_name
+ */
+function PMA_REL_renameField($db, $table, $field, $new_name)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if ($cfgRelation['displaywork']) {
+ $table_query = 'UPDATE ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' SET display_field = \'' . PMA_sqlAddslashes($new_name) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND display_field = \'' . PMA_sqlAddslashes($field) . '\'';
+ PMA_query_as_cu($table_query);
+ }
+
+ if ($cfgRelation['relwork']) {
+ $table_query = 'UPDATE ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' SET master_field = \'' . PMA_sqlAddslashes($new_name) . '\''
+ . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND master_field = \'' . PMA_sqlAddslashes($field) . '\'';
+ PMA_query_as_cu($table_query);
+
+ $table_query = 'UPDATE ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' SET foreign_field = \'' . PMA_sqlAddslashes($new_name) . '\''
+ . ' WHERE foreign_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND foreign_table = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND foreign_field = \'' . PMA_sqlAddslashes($field) . '\'';
+ PMA_query_as_cu($table_query);
+ } // end if relwork
+}
+
+/**
+ * Create a PDF page
+ *
+ * @uses $GLOBALS['strNoDescription']
+ * @uses PMA_backquote()
+ * @uses $GLOBALS['cfgRelation']['db']
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @uses PMA_DBI_insert_id()
+ * @uses $GLOBALS['controllink']
+ * @param string $newpage
+ * @param array $cfgRelation
+ * @param string $db
+ * @param string $query_default_option
+ * @return string $pdf_page_number
+ */
+function PMA_REL_create_page($newpage, $cfgRelation, $db, $query_default_option) {
+ if (! isset($newpage) || $newpage == '') {
+ $newpage = $GLOBALS['strNoDescription'];
+ }
+ $ins_query = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages'])
+ . ' (db_name, page_descr)'
+ . ' VALUES (\'' . PMA_sqlAddslashes($db) . '\', \'' . PMA_sqlAddslashes($newpage) . '\')';
+ PMA_query_as_cu($ins_query, FALSE, $query_default_option);
+ return PMA_DBI_insert_id(isset($GLOBALS['controllink']) ? $GLOBALS['controllink'] : '');
+}
+?>
diff --git a/libraries/relation_cleanup.lib.php b/libraries/relation_cleanup.lib.php
new file mode 100644
index 0000000000..391fd6af7d
--- /dev/null
+++ b/libraries/relation_cleanup.lib.php
@@ -0,0 +1,176 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used for cleaning up phpMyAdmin tables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/relation.lib.php';
+
+/**
+ * Cleanu column related relation stuff
+ *
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @param string $db
+ * @param string $table
+ * @param string $column
+ */
+function PMA_relationsCleanupColumn($db, $table, $column)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if ($cfgRelation['commwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND column_name = \'' . PMA_sqlAddslashes($column) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['displaywork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND display_field = \'' . PMA_sqlAddslashes($column) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['relwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND master_field = \'' . PMA_sqlAddslashes($column) . '\'';
+ PMA_query_as_cu($remove_query);
+
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE foreign_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND foreign_table = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND foreign_field = \'' . PMA_sqlAddslashes($column) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+}
+
+/**
+ * Cleanup table related relation stuff
+ *
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @param string $db
+ * @param string $table
+ */
+function PMA_relationsCleanupTable($db, $table)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if ($cfgRelation['commwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['displaywork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['pdfwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['designerwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['designer_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['relwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\'';
+ PMA_query_as_cu($remove_query);
+
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE foreign_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND foreign_table = \'' . PMA_sqlAddslashes($table) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+}
+
+/**
+ * Cleanup database related relation stuff
+ *
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @param string $db
+ */
+function PMA_relationsCleanupDatabase($db)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if ($cfgRelation['commwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['bookmarkwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['bookmark'])
+ . ' WHERE dbase = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['displaywork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['pdfwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['designerwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['designer_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+
+ if ($cfgRelation['relwork']) {
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+
+ $remove_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE foreign_db = \'' . PMA_sqlAddslashes($db) . '\'';
+ PMA_query_as_cu($remove_query);
+ }
+}
+
+?>
diff --git a/libraries/sanitizing.lib.php b/libraries/sanitizing.lib.php
new file mode 100644
index 0000000000..858ce487a1
--- /dev/null
+++ b/libraries/sanitizing.lib.php
@@ -0,0 +1,71 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * This is in a separate script because it's called from a number of scripts
+ */
+
+/**
+ * Sanitizes $message, taking into account our special codes
+ * for formatting
+ *
+ * @uses preg_replace()
+ * @uses strtr()
+ * @param string the message
+ *
+ * @return string the sanitized message
+ *
+ * @access public
+ */
+function PMA_sanitize($message)
+{
+ $replace_pairs = array(
+ '<' => '&lt;',
+ '>' => '&gt;',
+ '[i]' => '<em>', // deprecated by em
+ '[/i]' => '</em>', // deprecated by em
+ '[em]' => '<em>',
+ '[/em]' => '</em>',
+ '[b]' => '<strong>', // deprecated by strong
+ '[/b]' => '</strong>', // deprecated by strong
+ '[strong]' => '<strong>',
+ '[/strong]' => '</strong>',
+ '[tt]' => '<code>', // deprecated by CODE or KBD
+ '[/tt]' => '</code>', // deprecated by CODE or KBD
+ '[code]' => '<code>',
+ '[/code]' => '</code>',
+ '[kbd]' => '<kbd>',
+ '[/kbd]' => '</kbd>',
+ '[br]' => '<br />',
+ '[/a]' => '</a>',
+ '[sup]' => '<sup>',
+ '[/sup]' => '</sup>',
+ );
+ $message = strtr($message, $replace_pairs);
+
+ $pattern = '/\[a@([^"@]*)@([^]"]*)\]/';
+
+ if (preg_match_all($pattern, $message, $founds, PREG_SET_ORDER)) {
+ $valid_links = array(
+ 'http', // default http:// links (and https://)
+ './Do', // ./Documentation
+ );
+
+ foreach ($founds as $found) {
+ // only http... and ./Do... allowed
+ if (! in_array(substr($found[1], 0, 4), $valid_links)) {
+ return $message;
+ }
+ // a-z and _ allowed in target
+ if (! empty($found[2]) && preg_match('/[^a-z_]+/i', $found[2])) {
+ return $message;
+ }
+ }
+
+ $message = preg_replace($pattern, '<a href="\1" target="\2">', $message);
+ }
+
+ return $message;
+}
+?>
diff --git a/libraries/select_lang.lib.php b/libraries/select_lang.lib.php
new file mode 100644
index 0000000000..243c1d3ece
--- /dev/null
+++ b/libraries/select_lang.lib.php
@@ -0,0 +1,401 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * phpMyAdmin Language Loading File
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * tries to find the language to use
+ *
+ * @uses $GLOBALS['cfg']['lang']
+ * @uses $GLOBALS['cfg']['DefaultLang']
+ * @uses $GLOBALS['lang_failed_cfg']
+ * @uses $GLOBALS['lang_failed_cookie']
+ * @uses $GLOBALS['lang_failed_request']
+ * @uses $GLOBALS['convcharset'] to set it if not set
+ * @uses $_REQUEST['lang']
+ * @uses $_COOKIE['pma_lang']
+ * @uses $_SERVER['HTTP_ACCEPT_LANGUAGE']
+ * @uses $_SERVER['HTTP_USER_AGENT']
+ * @uses PMA_langSet()
+ * @uses PMA_langDetect()
+ * @uses explode()
+ * @return bool success if valid lang is found, otherwise false
+ */
+function PMA_langCheck()
+{
+ // check forced language
+ if (! empty($GLOBALS['cfg']['Lang'])) {
+ if (PMA_langSet($GLOBALS['cfg']['Lang'])) {
+ return true;
+ } else {
+ $GLOBALS['lang_failed_cfg'] = $GLOBALS['cfg']['Lang'];
+ }
+ }
+
+ // Don't use REQUEST in following code as it might be confused by cookies with same name
+ // check user requested language (POST)
+ if (! empty($_POST['lang'])) {
+ if (PMA_langSet($_POST['lang'])) {
+ return true;
+ } elseif (!is_string($_POST['lang'])) {
+ /* Faked request, don't care on localisation */
+ $GLOBALS['lang_failed_request'] = 'Yes';
+ } else {
+ $GLOBALS['lang_failed_request'] = $_POST['lang'];
+ }
+ }
+
+ // check user requested language (GET)
+ if (! empty($_GET['lang'])) {
+ if (PMA_langSet($_GET['lang'])) {
+ return true;
+ } elseif (!is_string($_GET['lang'])) {
+ /* Faked request, don't care on localisation */
+ $GLOBALS['lang_failed_request'] = 'Yes';
+ } else {
+ $GLOBALS['lang_failed_request'] = $_GET['lang'];
+ }
+ }
+
+ // check previous set language
+ if (! empty($_COOKIE['pma_lang'])) {
+ if (PMA_langSet($_COOKIE['pma_lang'])) {
+ return true;
+ } elseif (!is_string($_COOKIE['lang'])) {
+ /* Faked request, don't care on localisation */
+ $GLOBALS['lang_failed_request'] = 'Yes';
+ } else {
+ $GLOBALS['lang_failed_cookie'] = $_COOKIE['pma_lang'];
+ }
+ }
+
+ // try to findout user's language by checking its HTTP_ACCEPT_LANGUAGE variable
+ if (PMA_getenv('HTTP_ACCEPT_LANGUAGE')) {
+ foreach (explode(',', PMA_getenv('HTTP_ACCEPT_LANGUAGE')) as $lang) {
+ if (PMA_langDetect($lang, 1)) {
+ return true;
+ }
+ }
+ }
+
+ // try to findout user's language by checking its HTTP_USER_AGENT variable
+ if (PMA_langDetect(PMA_getenv('HTTP_USER_AGENT'), 2)) {
+ return true;
+ }
+
+ // Didn't catch any valid lang : we use the default settings
+ if (PMA_langSet($GLOBALS['cfg']['DefaultLang'])) {
+ return true;
+ }
+
+ return false;
+}
+
+/**
+ * checks given lang and sets it if valid
+ * returns true on success, otherwise flase
+ *
+ * @uses $GLOBALS['available_languages'] to check $lang
+ * @uses $GLOBALS['lang'] to set it
+ * @param string $lang language to set
+ * @return bool success
+ */
+function PMA_langSet(&$lang)
+{
+ if (!is_string($lang) || empty($lang) || empty($GLOBALS['available_languages'][$lang])) {
+ return false;
+ }
+ $GLOBALS['lang'] = $lang;
+ return true;
+}
+
+/**
+ * Analyzes some PHP environment variables to find the most probable language
+ * that should be used
+ *
+ * @param string string to analyze
+ * @param integer type of the PHP environment variable which value is $str
+ *
+ * @return bool true on success, otherwise false
+ *
+ * @global $available_languages
+ *
+ * @access private
+ */
+function PMA_langDetect(&$str, $envType)
+{
+ if (empty($str)) {
+ return false;
+ }
+ if (empty($GLOBALS['available_languages'])) {
+ return false;
+ }
+
+ foreach ($GLOBALS['available_languages'] as $lang => $value) {
+ // $envType = 1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable,
+ // 2 for the 'HTTP_USER_AGENT' one
+ $expr = $value[0];
+ if (strpos($expr, '[-_]') === FALSE) {
+ $expr = str_replace('|', '([-_][[:alpha:]]{2,3})?|', $expr);
+ }
+ if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str))
+ || ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) {
+ if (PMA_langSet($lang)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+} // end of the 'PMA_langDetect()' function
+
+/**
+ * Returns list of languages supported by phpMyAdmin
+ *
+ * @return array
+ */
+function PMA_langList()
+{
+ /**
+ * All the supported languages have to be listed in the array below.
+ * 1. The key must be the "official" ISO 639 language code and, if required,
+ * the dialect code. It can also contain some information about the
+ * charset (see the Russian case).
+ * 2. The first of the values associated to the key is used in a regular
+ * expression to find some keywords corresponding to the language inside two
+ * environment variables.
+ * These values contain:
+ * - the "official" ISO language code and, if required, the dialect code
+ * too ('bu' for Bulgarian, 'fr([-_][[:alpha:]]{2})?' for all French
+ * dialects, 'zh[-_]tw' for Chinese traditional...), the dialect has to
+ * be specified first;
+ * - the '|' character (it means 'OR');
+ * - the full language name.
+ * 3. The second value associated to the key is the name of the file to load
+ * without the 'inc.php' extension.
+ * 4. The third value associated to the key is the language code as defined by
+ * the RFC1766.
+ * 5. The fourth value is its native name in html entities.
+ *
+ * Beware that the sorting order (first values associated to keys by
+ * alphabetical reverse order in the array) is important: 'zh-tw' (chinese
+ * traditional) must be detected before 'zh' (chinese simplified) for
+ * example.
+ *
+ */
+ return array(
+ 'af-utf-8' => array('af|afrikaans', 'afrikaans-utf-8', 'af', ''),
+ 'ar-utf-8' => array('ar|arabic', 'arabic-utf-8', 'ar', '&#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;'),
+ 'az-utf-8' => array('az|azerbaijani', 'azerbaijani-utf-8', 'az', 'Az&#601;rbaycanca'),
+ 'bn-utf-8' => array('bn|bangla', 'bangla-utf-8', 'bn', ''),
+ 'becyr-utf-8' => array('be|belarusian', 'belarusian_cyrillic-utf-8', 'be', '&#1041;&#1077;&#1083;&#1072;&#1088;&#1091;&#1089;&#1082;&#1072;&#1103;'),
+ 'belat-utf-8' => array('be[-_]lat|belarusian latin', 'belarusian_latin-utf-8', 'be-lat', 'Bie&#0322;aruskaja'),
+ 'bg-utf-8' => array('bg|bulgarian', 'bulgarian-utf-8', 'bg', '&#1041;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080;'),
+ 'bs-utf-8' => array('bs|bosnian', 'bosnian-utf-8', 'bs', 'Bosanski'),
+ 'ca-utf-8' => array('ca|catalan', 'catalan-utf-8', 'ca', 'Catal&agrave;'),
+ 'cs-utf-8' => array('cs|czech', 'czech-utf-8', 'cs', '&#268;esky'),
+ 'da-utf-8' => array('da|danish', 'danish-utf-8', 'da', 'Dansk'),
+ 'de-utf-8' => array('de|german', 'german-utf-8', 'de', 'Deutsch'),
+ 'el-utf-8' => array('el|greek', 'greek-utf-8', 'el', '&Epsilon;&lambda;&lambda;&eta;&nu;&iota;&kappa;&#940;'),
+ 'en-utf-8' => array('en|english', 'english-utf-8', 'en', ''),
+ 'es-utf-8' => array('es|spanish', 'spanish-utf-8', 'es', 'Espa&ntilde;ol'),
+ 'et-utf-8' => array('et|estonian', 'estonian-utf-8', 'et', 'Eesti'),
+ 'eu-utf-8' => array('eu|basque', 'basque-utf-8', 'eu', 'Euskara'),
+ 'fa-utf-8' => array('fa|persian', 'persian-utf-8', 'fa', '&#1601;&#1575;&#1585;&#1587;&#1740;'),
+ 'fi-utf-8' => array('fi|finnish', 'finnish-utf-8', 'fi', 'Suomi'),
+ 'fr-utf-8' => array('fr|french', 'french-utf-8', 'fr', 'Fran&ccedil;ais'),
+ 'gl-utf-8' => array('gl|galician', 'galician-utf-8', 'gl', 'Galego'),
+ 'he-utf-8' => array('he|hebrew', 'hebrew-utf-8', 'he', '&#1506;&#1489;&#1512;&#1497;&#1514;'),
+ 'hi-utf-8' => array('hi|hindi', 'hindi-utf-8', 'hi', '&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;'),
+ 'hr-utf-8' => array('hr|croatian', 'croatian-utf-8', 'hr', 'Hrvatski'),
+ 'hu-utf-8' => array('hu|hungarian', 'hungarian-utf-8', 'hu', 'Magyar'),
+ 'id-utf-8' => array('id|indonesian', 'indonesian-utf-8', 'id', 'Bahasa Indonesia'),
+ 'it-utf-8' => array('it|italian', 'italian-utf-8', 'it', 'Italiano'),
+ 'ja-utf-8' => array('ja|japanese', 'japanese-utf-8', 'ja', '&#26085;&#26412;&#35486;'),
+ 'ko-utf-8' => array('ko|korean', 'korean-utf-8', 'ko', '&#54620;&#44397;&#50612;'),
+ 'ka-utf-8' => array('ka|georgian', 'georgian-utf-8', 'ka', '&#4325;&#4304;&#4320;&#4311;&#4323;&#4314;&#4312;'),
+ 'lt-utf-8' => array('lt|lithuanian', 'lithuanian-utf-8', 'lt', 'Lietuvi&#371;'),
+ 'lv-utf-8' => array('lv|latvian', 'latvian-utf-8', 'lv', 'Latvie&scaron;u'),
+ 'mkcyr-utf-8' => array('mk|macedonian', 'macedonian_cyrillic-utf-8', 'mk', 'Macedonian'),
+ 'mn-utf-8' => array('mn|mongolian', 'mongolian-utf-8', 'mn', '&#1052;&#1086;&#1085;&#1075;&#1086;&#1083;'),
+ 'ms-utf-8' => array('ms|malay', 'malay-utf-8', 'ms', 'Bahasa Melayu'),
+ 'nl-utf-8' => array('nl|dutch', 'dutch-utf-8', 'nl', 'Nederlands'),
+ 'no-utf-8' => array('no|norwegian', 'norwegian-utf-8', 'no', 'Norsk'),
+ 'pl-utf-8' => array('pl|polish', 'polish-utf-8', 'pl', 'Polski'),
+ 'ptbr-utf-8' => array('pt[-_]br|brazilian portuguese', 'brazilian_portuguese-utf-8', 'pt-BR', 'Portugu&ecirc;s'),
+ 'pt-utf-8' => array('pt|portuguese', 'portuguese-utf-8', 'pt', 'Portugu&ecirc;s'),
+ 'ro-utf-8' => array('ro|romanian', 'romanian-utf-8', 'ro', 'Rom&acirc;n&#259;'),
+ 'ru-utf-8' => array('ru|russian', 'russian-utf-8', 'ru', '&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;'),
+ 'si-utf-8' => array('si|sinhala', 'sinhala-utf-8', 'si', '&#3523;&#3538;&#3458;&#3524;&#3517;'),
+ 'sk-utf-8' => array('sk|slovak', 'slovak-utf-8', 'sk', 'Sloven&#269;ina'),
+ 'sl-utf-8' => array('sl|slovenian', 'slovenian-utf-8', 'sl', 'Sloven&scaron;&#269;ina'),
+ 'sq-utf-8' => array('sq|albanian', 'albanian-utf-8', 'sq', 'Shqip'),
+ 'srlat-utf-8' => array('sr[-_]lat|serbian latin', 'serbian_latin-utf-8', 'sr-lat', 'Srpski'),
+ 'srcyr-utf-8' => array('sr|serbian', 'serbian_cyrillic-utf-8', 'sr', '&#1057;&#1088;&#1087;&#1089;&#1082;&#1080;'),
+ 'sv-utf-8' => array('sv|swedish', 'swedish-utf-8', 'sv', 'Svenska'),
+ 'th-utf-8' => array('th|thai', 'thai-utf-8', 'th', '&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618;'),
+ 'tr-utf-8' => array('tr|turkish', 'turkish-utf-8', 'tr', 'T&uuml;rk&ccedil;e'),
+ 'tt-utf-8' => array('tt|tatarish', 'tatarish-utf-8', 'tt', 'Tatar&ccedil;a'),
+ 'uk-utf-8' => array('uk|ukrainian', 'ukrainian-utf-8', 'uk', '&#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072;'),
+ 'zhtw-utf-8' => array('zh[-_](tw|hk)|chinese traditional', 'chinese_traditional-utf-8', 'zh-TW', '&#20013;&#25991;'),
+ 'zh-utf-8' => array('zh|chinese simplified', 'chinese_simplified-utf-8', 'zh', '&#20013;&#25991;'),
+ );
+}
+
+/**
+ * @global string path to the translations directory
+ */
+$GLOBALS['lang_path'] = './lang/';
+
+/**
+ * @global string interface language
+ */
+$GLOBALS['lang'] = 'en-utf-8';
+/**
+ * @global boolean whether loading lang from cfg failed
+ */
+$GLOBALS['lang_failed_cfg'] = false;
+/**
+ * @global boolean whether loading lang from cookie failed
+ */
+$GLOBALS['lang_failed_cookie'] = false;
+/**
+ * @global boolean whether loading lang from user request failed
+ */
+$GLOBALS['lang_failed_request'] = false;
+/**
+ * @global string text direction ltr or rtl
+ */
+$GLOBALS['text_dir'] = 'ltr';
+
+/**
+ * @global array supported languages
+ */
+$GLOBALS['available_languages'] = PMA_langList();
+
+// Language filtering support
+if (! empty($GLOBALS['cfg']['FilterLanguages'])) {
+ $new_lang = array();
+ foreach ($GLOBALS['available_languages'] as $key => $val) {
+ if (preg_match('@' . $GLOBALS['cfg']['FilterLanguages'] . '@', $key)) {
+ $new_lang[$key] = $val;
+ }
+ }
+ if (count($new_lang) > 0) {
+ $GLOBALS['available_languages'] = $new_lang;
+ }
+ unset($key, $val, $new_lang);
+}
+
+/**
+ * first check for lang dir exists
+ */
+if (! is_dir($GLOBALS['lang_path'])) {
+ // language directory not found
+ trigger_error('phpMyAdmin-ERROR: path not found: '
+ . $GLOBALS['lang_path'] . ', check your language directory.',
+ E_USER_WARNING);
+ // and tell the user
+ PMA_fatalError('path to languages is invalid: ' . $GLOBALS['lang_path']);
+}
+
+/**
+ * check for language files
+ */
+foreach ($GLOBALS['available_languages'] as $each_lang_key => $each_lang) {
+ if (! file_exists($GLOBALS['lang_path'] . $each_lang[1] . '.inc.php')) {
+ unset($GLOBALS['available_languages'][$each_lang_key]);
+ }
+}
+unset($each_lang_key, $each_lang);
+
+/**
+ * @global array MySQL charsets map
+ */
+$GLOBALS['mysql_charset_map'] = array(
+ 'big5' => 'big5',
+ 'cp-866' => 'cp866',
+ 'euc-jp' => 'ujis',
+ 'euc-kr' => 'euckr',
+ 'gb2312' => 'gb2312',
+ 'gbk' => 'gbk',
+ 'iso-8859-1' => 'latin1',
+ 'iso-8859-2' => 'latin2',
+ 'iso-8859-7' => 'greek',
+ 'iso-8859-8' => 'hebrew',
+ 'iso-8859-8-i' => 'hebrew',
+ 'iso-8859-9' => 'latin5',
+ 'iso-8859-13' => 'latin7',
+ 'iso-8859-15' => 'latin1',
+ 'koi8-r' => 'koi8r',
+ 'shift_jis' => 'sjis',
+ 'tis-620' => 'tis620',
+ 'utf-8' => 'utf8',
+ 'windows-1250' => 'cp1250',
+ 'windows-1251' => 'cp1251',
+ 'windows-1252' => 'latin1',
+ 'windows-1256' => 'cp1256',
+ 'windows-1257' => 'cp1257',
+);
+
+/*
+ * Do the work!
+ */
+
+if (empty($GLOBALS['convcharset'])) {
+ if (isset($_COOKIE['pma_charset'])) {
+ $GLOBALS['convcharset'] = $_COOKIE['pma_charset'];
+ } else {
+ // session.save_path might point to a bad folder, in which case
+ // $GLOBALS['cfg'] would not exist
+ $GLOBALS['convcharset'] = isset($GLOBALS['cfg']['DefaultCharset']) ? $GLOBALS['cfg']['DefaultCharset'] : 'utf-8';
+ }
+}
+
+if (! PMA_langCheck()) {
+ // fallback language
+ $fall_back_lang = 'en-utf-8';
+ $line = __LINE__;
+ if (! PMA_langSet($fall_back_lang)) {
+ trigger_error('phpMyAdmin-ERROR: invalid lang code: '
+ . __FILE__ . '#' . $line . ', check hard coded fall back language.',
+ E_USER_WARNING);
+ // stop execution
+ // and tell the user that his choosen language is invalid
+ PMA_fatalError('Could not load any language, please check your language settings and folder.');
+ }
+}
+
+// Defines the associated filename and load the translation
+$lang_file = $GLOBALS['lang_path'] . $GLOBALS['available_languages'][$GLOBALS['lang']][1] . '.inc.php';
+require_once $lang_file;
+
+// now, that we have loaded the language strings we can send the errors
+if ($GLOBALS['lang_failed_cfg']) {
+ trigger_error(
+ sprintf($GLOBALS['strLanguageUnknown'],
+ htmlspecialchars($GLOBALS['lang_failed_cfg'])),
+ E_USER_ERROR);
+}
+if ($GLOBALS['lang_failed_cookie']) {
+ trigger_error(
+ sprintf($GLOBALS['strLanguageUnknown'],
+ htmlspecialchars($GLOBALS['lang_failed_cookie'])),
+ E_USER_ERROR);
+}
+if ($GLOBALS['lang_failed_request']) {
+ trigger_error(
+ sprintf($GLOBALS['strLanguageUnknown'],
+ htmlspecialchars($GLOBALS['lang_failed_request'])),
+ E_USER_ERROR);
+}
+
+unset($line, $fall_back_lang,
+ $GLOBALS['lang_failed_cfg'], $GLOBALS['lang_failed_cookie'], $GLOBALS['ang_failed_request'], $GLOBALS['strLanguageUnknown']);
+?>
diff --git a/libraries/select_server.lib.php b/libraries/select_server.lib.php
new file mode 100644
index 0000000000..4db374c3d8
--- /dev/null
+++ b/libraries/select_server.lib.php
@@ -0,0 +1,113 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Code for displaying server selection written by nijel
+ *
+ * @version $Id$
+ */
+
+/**
+ * display server selection in list or selectbox form, or option tags only
+ *
+ * @uses $GLOBALS['cfg']['DisplayServersList']
+ * @uses $GLOBALS['strServer']
+ * @uses $GLOBALS['cfg']['Servers']
+ * @uses $GLOBALS['strGo']
+ * @uses implode()
+ * @uses htmlspecialchars()
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_generate_common_url()
+ * @param boolean $not_only_options whether to include form tags or not
+ * @param boolean $ommit_fieldset whether to ommit fieldset tag or not
+ */
+function PMA_select_server($not_only_options, $ommit_fieldset)
+{
+ // Show as list?
+ if ($not_only_options) {
+ $list = $GLOBALS['cfg']['DisplayServersList'];
+ $not_only_options =! $list;
+ } else {
+ $list = false;
+ }
+
+ if ($not_only_options) {
+ echo '<form method="post" action="index.php" target="_parent">';
+ echo PMA_generate_common_hidden_inputs();
+
+ if (! $ommit_fieldset) {
+ echo '<fieldset>';
+ }
+ echo '<label for="select_server">' . $GLOBALS['strServer'] . ':</label> ';
+
+ echo '<select name="server" id="select_server"'
+ . ' onchange="if (this.value != \'\') this.form.submit();">';
+ echo '<option value="">(' . $GLOBALS['strServers'] . ') ...</option>' . "\n";
+ } elseif ($list) {
+ echo $GLOBALS['strServer'] . ':<br />';
+ echo '<ul id="list_server">';
+ }
+
+ foreach ($GLOBALS['cfg']['Servers'] as $key => $server) {
+ if (empty($server['host'])) {
+ continue;
+ }
+
+ if (!empty($GLOBALS['server']) && (int) $GLOBALS['server'] === (int) $key) {
+ $selected = 1;
+ } else {
+ $selected = 0;
+ }
+
+ if (!empty($server['verbose'])) {
+ $label = $server['verbose'];
+ } else {
+ $label = $server['host'];
+ if (!empty($server['port'])) {
+ $label .= ':' . $server['port'];
+ }
+ }
+ if (! empty($server['only_db'])) {
+ if (! is_array($server['only_db'])) {
+ $label .= ' - ' . $server['only_db'];
+ // try to avoid displaying a too wide selector
+ } elseif (count($server['only_db']) < 4) {
+ $label .= ' - ' . implode(', ', $server['only_db']);
+ }
+ }
+ if (!empty($server['user']) && $server['auth_type'] == 'config') {
+ $label .= ' (' . $server['user'] . ')';
+ }
+
+ if ($list) {
+ echo '<li>';
+ if ($selected && !$ommit_fieldset) {
+ echo '<strong>' . htmlspecialchars($label) . '</strong>';
+ } else {
+
+ echo '<a class="item" href="index.php'
+ . PMA_generate_common_url(array('server' => $key))
+ . '" target="_top">' . htmlspecialchars($label) . '</a>';
+ }
+ echo '</li>';
+ } else {
+ echo '<option value="' . $key . '" '
+ . ($selected ? ' selected="selected"' : '') . '>'
+ . htmlspecialchars($label) . '</option>' . "\n";
+ }
+ } // end while
+
+ if ($not_only_options) {
+ echo '</select>';
+ // Show submit button if we have just one server (this happens with no default)
+ echo '<noscript>';
+ echo '<input type="submit" value="' . $GLOBALS['strGo'] . '" />';
+ echo '</noscript>';
+ if (! $ommit_fieldset) {
+ echo '</fieldset>';
+ }
+ echo '</form>';
+ } elseif ($list) {
+ echo '</ul>';
+ }
+}
+?>
diff --git a/libraries/server_common.inc.php b/libraries/server_common.inc.php
new file mode 100644
index 0000000000..07005ffe2f
--- /dev/null
+++ b/libraries/server_common.inc.php
@@ -0,0 +1,61 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @uses PMA_generate_common_url()
+ * @uses PMA_isSuperuser()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses $userlink
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Handles some variables that may have been sent by the calling script
+ * Note: this can be called also from the db panel to get the privileges of
+ * a db, in which case we want to keep displaying the tabs of
+ * the Database panel
+ */
+if (empty($viewing_mode)) {
+ $db = $table = '';
+}
+
+/**
+ * Set parameters for links
+ */
+$url_query = PMA_generate_common_url($db);
+
+/**
+ * Defines the urls to return to in case of error in a sql statement
+ */
+$err_url = 'main.php' . $url_query;
+
+/**
+ * Displays the headers
+ */
+require_once './libraries/header.inc.php';
+
+/**
+ * @global boolean Checks for superuser privileges
+ */
+$is_superuser = PMA_isSuperuser();
+
+// now, select the mysql db
+if ($is_superuser) {
+ PMA_DBI_select_db('mysql', $userlink);
+}
+
+/**
+ * @global array binary log files
+ */
+$binary_logs = PMA_DBI_fetch_result('SHOW MASTER LOGS', 'Log_name', null, null,
+ PMA_DBI_QUERY_STORE);
+?>
diff --git a/libraries/server_links.inc.php b/libraries/server_links.inc.php
new file mode 100644
index 0000000000..2aff2acc30
--- /dev/null
+++ b/libraries/server_links.inc.php
@@ -0,0 +1,97 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Check parameters
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/server_common.inc.php';
+
+PMA_checkParameters(array('is_superuser', 'url_query'), TRUE, FALSE);
+
+/**
+ * Counts amount of navigation tabs
+ */
+$server_links_count_tabs = 0;
+
+
+/**
+ * Put something in $sub_part
+ */
+if (!isset($sub_part)) {
+ $sub_part = '';
+}
+
+
+/**
+ * Displays tab links
+ */
+$tabs = array();
+
+$tabs['databases']['icon'] = 's_db.png';
+$tabs['databases']['link'] = 'server_databases.php';
+$tabs['databases']['text'] = $strDatabases;
+
+$tabs['sql']['icon'] = 'b_sql.png';
+$tabs['sql']['link'] = 'server_sql.php';
+$tabs['sql']['text'] = $strSQL;
+
+$tabs['status']['icon'] = 's_status.png';
+$tabs['status']['link'] = 'server_status.php';
+$tabs['status']['text'] = $strStatus;
+
+$tabs['vars']['icon'] = 's_vars.png';
+$tabs['vars']['link'] = 'server_variables.php';
+$tabs['vars']['text'] = $strServerTabVariables;
+
+$tabs['charset']['icon'] = 's_asci.png';
+$tabs['charset']['link'] = 'server_collations.php';
+$tabs['charset']['text'] = $strCharsets;
+
+$tabs['engine']['icon'] = 'b_engine.png';
+$tabs['engine']['link'] = 'server_engines.php';
+$tabs['engine']['text'] = $strEngines;
+
+if ($is_superuser) {
+ $tabs['rights']['icon'] = 's_rights.png';
+ $tabs['rights']['link'] = 'server_privileges.php';
+ $tabs['rights']['text'] = $strPrivileges;
+}
+
+if (! empty($binary_logs)) {
+ $tabs['binlog']['icon'] = 's_tbl.png';
+ $tabs['binlog']['link'] = 'server_binlog.php';
+ $tabs['binlog']['text'] = $strBinaryLog;
+}
+$tabs['process']['icon'] = 's_process.png';
+$tabs['process']['link'] = 'server_processlist.php';
+$tabs['process']['text'] = $strProcesses;
+
+$tabs['export']['icon'] = 'b_export.png';
+$tabs['export']['link'] = 'server_export.php';
+$tabs['export']['text'] = $strExport;
+
+$tabs['import']['icon'] = 'b_import.png';
+$tabs['import']['link'] = 'server_import.php';
+$tabs['import']['text'] = $strImport;
+
+echo PMA_getTabs($tabs);
+unset($tabs);
+
+
+/**
+ * Displays a message
+ */
+if (!empty($message)) {
+ PMA_showMessage($message);
+ unset($message);
+}
+
+?>
diff --git a/libraries/session.inc.php b/libraries/session.inc.php
new file mode 100644
index 0000000000..756f2523fc
--- /dev/null
+++ b/libraries/session.inc.php
@@ -0,0 +1,111 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * session handling
+ *
+ * @version $Id$
+ * @todo add failover or warn if sessions are not configured properly
+ * @todo add an option to use mm-module for session handler
+ * @see http://www.php.net/session
+ * @uses session_name()
+ * @uses session_start()
+ * @uses ini_set()
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+// verify if PHP supports session, die if it does not
+
+if (!@function_exists('session_name')) {
+ PMA_fatalError('strCantLoad', 'session');
+} elseif (ini_get('session.auto_start') == true && session_name() != 'phpMyAdmin') {
+ // Do not delete the existing session, it might be used by other
+ // applications; instead just close it.
+ session_write_close();
+}
+
+// disable starting of sessions before all settings are done
+// does not work, besides how it is written in php manual
+//ini_set('session.auto_start', 0);
+
+// session cookie settings
+session_set_cookie_params(0, PMA_Config::getCookiePath() . '; HttpOnly',
+ '', PMA_Config::isHttps());
+
+// cookies are safer (use @ini_set() in case this function is disabled)
+@ini_set('session.use_cookies', true);
+
+// but not all user allow cookies
+@ini_set('session.use_only_cookies', false);
+@ini_set('session.use_trans_sid', true);
+@ini_set('url_rewriter.tags',
+ 'a=href,frame=src,input=src,form=fakeentry,fieldset=');
+//ini_set('arg_separator.output', '&amp;');
+
+// delete session/cookies when browser is closed
+@ini_set('session.cookie_lifetime', 0);
+
+// warn but dont work with bug
+@ini_set('session.bug_compat_42', false);
+@ini_set('session.bug_compat_warn', true);
+
+// use more secure session ids
+@ini_set('session.hash_function', 1);
+
+// some pages (e.g. stylesheet) may be cached on clients, but not in shared
+// proxy servers
+session_cache_limiter('private');
+
+// start the session
+// on some servers (for example, sourceforge.net), we get a permission error
+// on the session data directory, so I add some "@"
+
+// See bug #1538132. This would block normal behavior on a cluster
+//ini_set('session.save_handler', 'files');
+
+$session_name = 'phpMyAdmin';
+@session_name($session_name);
+
+if (! isset($_COOKIE[$session_name])) {
+ // on first start of session we will check for errors
+ // f.e. session dir cannot be accessed - session file not created
+ ob_start();
+ $old_display_errors = ini_get('display_errors');
+ $old_error_reporting = error_reporting(E_ALL);
+ @ini_set('display_errors', 1);
+ $r = session_start();
+ @ini_set('display_errors', $old_display_errors);
+ error_reporting($old_error_reporting);
+ unset($old_display_errors, $old_error_reporting);
+ $session_error = ob_get_contents();
+ ob_end_clean();
+ if ($r !== true || ! empty($session_error)) {
+ setcookie($session_name, '', 1);
+ PMA_fatalError('strSessionStartupErrorGeneral');
+ }
+} else {
+ @session_start();
+}
+
+/**
+ * Token which is used for authenticating access queries.
+ * (we use "space PMA_token space" to prevent overwriting)
+ */
+if (!isset($_SESSION[' PMA_token '])) {
+ $_SESSION[' PMA_token '] = md5(uniqid(rand(), true));
+}
+
+/**
+ * tries to secure session from hijacking and fixation
+ * should be called before login and after successfull login
+ * (only required if sensitive information stored in session)
+ *
+ * @uses session_regenerate_id() to secure session from fixation
+ */
+function PMA_secureSession()
+{
+ // prevent session fixation and XSS
+ session_regenerate_id(true);
+}
+?>
diff --git a/libraries/sql_query_form.lib.php b/libraries/sql_query_form.lib.php
new file mode 100644
index 0000000000..5c72cffd10
--- /dev/null
+++ b/libraries/sql_query_form.lib.php
@@ -0,0 +1,547 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * functions for displaying the sql query form
+ *
+ * @version $Id$
+ * @usedby server_sql.php
+ * @usedby db_sql.php
+ * @usedby tbl_sql.php
+ * @usedby tbl_structure.php
+ * @usedby querywindow.php
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/file_listing.php'; // used for file listing
+require_once './libraries/bookmark.lib.php'; // used for file listing
+
+/**
+ * prints the sql query boxes
+ *
+ * @usedby server_sql.php
+ * @usedby db_sql.php
+ * @usedby tbl_sql.php
+ * @usedby tbl_structure.php
+ * @usedby querywindow.php
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['goto']
+ * @uses $GLOBALS['is_upload'] from common.inc.php
+ * @uses $GLOBALS['sql_query'] from grab_globals.lib.php
+ * @uses $GLOBALS['cfg']['DefaultQueryTable']
+ * @uses $GLOBALS['cfg']['DefaultQueryDatabase']
+ * @uses $GLOBALS['cfg']['Servers']
+ * @uses $GLOBALS['cfg']['DefaultTabDatabase']
+ * @uses $GLOBALS['cfg']['DefaultQueryDatabase']
+ * @uses $GLOBALS['cfg']['DefaultQueryTable']
+ * @uses $GLOBALS['cfg']['Bookmark']
+ * @uses $GLOBALS['strSuccess']
+ * @uses PMA_generate_common_url()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_fetch_result()
+ * @uses PMA_showMySQLDocu()
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_sqlQueryFormBookmark()
+ * @uses PMA_sqlQueryFormInsert()
+ * @uses PMA_sqlQueryFormUpload()
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_set_enc_form()
+ * @uses sprintf()
+ * @uses htmlspecialchars()
+ * @uses str_replace()
+ * @uses md5()
+ * @uses function_exists()
+ * @param boolean|string $query query to display in the textarea
+ * or true to display last executed
+ * @param boolean|string $display_tab sql|files|history|full|FALSE
+ * what part to display
+ * false if not inside querywindow
+ * @param string $delimiter
+ */
+function PMA_sqlQueryForm($query = true, $display_tab = false, $delimiter = ';')
+{
+ // check tab to display if inside querywindow
+ if (! $display_tab) {
+ $display_tab = 'full';
+ $is_querywindow = false;
+ } else {
+ $is_querywindow = true;
+ }
+
+ // query to show
+ if (true === $query) {
+ $query = $GLOBALS['sql_query'];
+ }
+
+ // set enctype to multipart for file uploads
+ if ($GLOBALS['is_upload']) {
+ $enctype = ' enctype="multipart/form-data"';
+ } else {
+ $enctype = '';
+ }
+
+ $table = '';
+ $db = '';
+ if (! strlen($GLOBALS['db'])) {
+ // prepare for server related
+ $goto = empty($GLOBALS['goto']) ?
+ 'server_sql.php' : $GLOBALS['goto'];
+ } elseif (! strlen($GLOBALS['table'])) {
+ // prepare for db related
+ $db = $GLOBALS['db'];
+ $goto = empty($GLOBALS['goto']) ?
+ 'db_sql.php' : $GLOBALS['goto'];
+ } else {
+ $table = $GLOBALS['table'];
+ $db = $GLOBALS['db'];
+ $goto = empty($GLOBALS['goto']) ?
+ 'tbl_sql.php' : $GLOBALS['goto'];
+ }
+
+
+ // start output
+ if ($is_querywindow) {
+ ?>
+ <form method="post" id="sqlqueryform" target="frame_content"
+ action="import.php"<?php echo $enctype; ?> name="sqlform"
+ onsubmit="
+ // <![CDATA[
+ var save_name = window.opener.parent.frame_content.name;
+ window.opener.parent.frame_content.name = save_name + '<?php echo time(); ?>';
+ this.target = window.opener.parent.frame_content.name;
+ return checkSqlQuery(this);
+ // ]]" >
+ <?php
+ } else {
+ echo '<form method="post" action="import.php" ' . $enctype . ' id="sqlqueryform"'
+ .' onsubmit="return checkSqlQuery(this)" name="sqlform">' . "\n";
+ }
+
+ if ($is_querywindow) {
+ echo '<input type="hidden" name="focus_querywindow" value="true" />'
+ ."\n";
+ if ($display_tab != 'sql' && $display_tab != 'full') {
+ echo '<input type="hidden" name="sql_query" value="" />' . "\n";
+ echo '<input type="hidden" name="show_query" value="1" />' . "\n";
+ }
+ }
+ echo '<input type="hidden" name="is_js_confirmed" value="0" />' . "\n"
+ .PMA_generate_common_hidden_inputs($db, $table) . "\n"
+ .'<input type="hidden" name="pos" value="0" />' . "\n"
+ .'<input type="hidden" name="goto" value="'
+ .htmlspecialchars($goto) . '" />' . "\n"
+ .'<input type="hidden" name="zero_rows" value="'
+ . htmlspecialchars($GLOBALS['strSuccess']) . '" />' . "\n"
+ .'<input type="hidden" name="prev_sql_query" value="'
+ . htmlspecialchars($query) . '" />' . "\n";
+
+ // display querybox
+ if ($display_tab === 'full' || $display_tab === 'sql') {
+ PMA_sqlQueryFormInsert($query, $is_querywindow, $delimiter);
+ }
+
+ // display uploads
+ if ($display_tab === 'files' && $GLOBALS['is_upload']) {
+ PMA_sqlQueryFormUpload();
+ }
+
+ // Bookmark Support
+ if ($display_tab === 'full' || $display_tab === 'history') {
+ if (! empty($GLOBALS['cfg']['Bookmark'])) {
+ PMA_sqlQueryFormBookmark();
+ }
+ }
+
+ // Encoding setting form appended by Y.Kawada
+ if (function_exists('PMA_set_enc_form')) {
+ echo PMA_set_enc_form(' ');
+ }
+
+ echo '</form>' . "\n";
+ if ($is_querywindow) {
+ ?>
+ <script type="text/javascript">
+ //<![CDATA[
+ if (window.opener) {
+ window.opener.parent.insertQuery();
+ }
+ //]]>
+ </script>
+ <?php
+ }
+}
+
+/**
+ * prints querybox fieldset
+ *
+ * @usedby PMA_sqlQueryForm()
+ * @uses $GLOBALS['text_dir']
+ * @uses $GLOBALS['cfg']['TextareaAutoSelect']
+ * @uses $GLOBALS['cfg']['TextareaCols']
+ * @uses $GLOBALS['cfg']['TextareaRows']
+ * @uses $GLOBALS['strShowThisQuery']
+ * @uses $GLOBALS['strGo']
+ * @uses PMA_USR_OS
+ * @uses PMA_USR_BROWSER_AGENT
+ * @uses PMA_USR_BROWSER_VER
+ * @uses htmlspecialchars()
+ * @param string $query query to display in the textarea
+ * @param boolean $is_querywindow if inside querywindow or not
+ * @param string $delimiter default delimiter to use
+ */
+function PMA_sqlQueryFormInsert($query = '', $is_querywindow = false, $delimiter = ';')
+{
+
+ // enable auto select text in textarea
+ if ($GLOBALS['cfg']['TextareaAutoSelect']) {
+ $auto_sel = ' onfocus="selectContent(this, sql_box_locked, true)"';
+ } else {
+ $auto_sel = '';
+ }
+
+ // enable locking if inside query window
+ if ($is_querywindow) {
+ $locking = ' onkeypress="document.sqlform.elements[\'LockFromUpdate\'].'
+ .'checked = true;"';
+ $height = $GLOBALS['cfg']['TextareaRows'] * 1.25;
+ } else {
+ $locking = '';
+ $height = $GLOBALS['cfg']['TextareaRows'] * 2;
+ }
+
+ $table = '';
+ $db = '';
+ $fields_list = array();
+ if (! strlen($GLOBALS['db'])) {
+ // prepare for server related
+ $legend = sprintf($GLOBALS['strRunSQLQueryOnServer'],
+ '&quot;' . htmlspecialchars(
+ ! empty($GLOBALS['cfg']['Servers'][$GLOBALS['server']]['verbose']) ? $GLOBALS['cfg']['Servers'][$GLOBALS['server']]['verbose'] : $GLOBALS['cfg']['Servers'][$GLOBALS['server']]['host']) . '&quot;');
+ } elseif (! strlen($GLOBALS['table'])) {
+ // prepare for db related
+ $db = $GLOBALS['db'];
+ // if you want navigation:
+ $strDBLink = '<a href="' . $GLOBALS['cfg']['DefaultTabDatabase']
+ . '?' . PMA_generate_common_url($db) . '"';
+ if ($is_querywindow) {
+ $strDBLink .= ' target="_self"'
+ . ' onclick="this.target=window.opener.frame_content.name"';
+ }
+ $strDBLink .= '>'
+ . htmlspecialchars($db) . '</a>';
+ // else use
+ // $strDBLink = htmlspecialchars($db);
+ $legend = sprintf($GLOBALS['strRunSQLQuery'], $strDBLink);
+ if (empty($query)) {
+ $query = str_replace('%d',
+ PMA_backquote($db), $GLOBALS['cfg']['DefaultQueryDatabase']);
+ }
+ } else {
+ $table = $GLOBALS['table'];
+ $db = $GLOBALS['db'];
+ // Get the list and number of fields
+ // we do a try_query here, because we could be in the query window,
+ // trying to synchonize and the table has not yet been created
+ $fields_list = PMA_DBI_fetch_result(
+ 'SHOW FULL COLUMNS FROM ' . PMA_backquote($db)
+ . '.' . PMA_backquote($GLOBALS['table']));
+
+ $strDBLink = '<a href="' . $GLOBALS['cfg']['DefaultTabDatabase']
+ . '?' . PMA_generate_common_url($db) . '"';
+ if ($is_querywindow) {
+ $strDBLink .= ' target="_self"'
+ . ' onclick="this.target=window.opener.frame_content.name"';
+ }
+ $strDBLink .= '>'
+ . htmlspecialchars($db) . '</a>';
+ // else use
+ // $strDBLink = htmlspecialchars($db);
+ $legend = sprintf($GLOBALS['strRunSQLQuery'], $strDBLink);
+ if (empty($query) && count($fields_list)) {
+ $field_names = array();
+ foreach ($fields_list as $field) {
+ $field_names[] = PMA_backquote($field['Field']);
+ }
+ $query =
+ str_replace('%d', PMA_backquote($db),
+ str_replace('%t', PMA_backquote($table),
+ str_replace('%f',
+ implode(', ', $field_names),
+ $GLOBALS['cfg']['DefaultQueryTable'])));
+ unset($field_names);
+ }
+ }
+ $legend .= ': ' . PMA_showMySQLDocu('SQL-Syntax', 'SELECT');
+
+ if (count($fields_list)) {
+ $sqlquerycontainer_id = 'sqlquerycontainer';
+ } else {
+ $sqlquerycontainer_id = 'sqlquerycontainerfull';
+ }
+
+ echo '<a name="querybox"></a>' . "\n"
+ .'<div id="queryboxcontainer">' . "\n"
+ .'<fieldset id="querybox">' . "\n";
+ echo '<legend>' . $legend . '</legend>' . "\n";
+ echo '<div id="queryfieldscontainer">' . "\n";
+ echo '<div id="' . $sqlquerycontainer_id . '">' . "\n"
+ .'<textarea name="sql_query" id="sqlquery"'
+ .' cols="' . $GLOBALS['cfg']['TextareaCols'] . '"'
+ .' rows="' . $height . '"'
+ .' dir="' . $GLOBALS['text_dir'] . '"'
+ .$auto_sel . $locking . '>' . htmlspecialchars($query) . '</textarea>' . "\n";
+ echo '</div>' . "\n";
+
+ if (count($fields_list)) {
+ echo '<div id="tablefieldscontainer">' . "\n"
+ .'<label>' . $GLOBALS['strFields'] . '</label>' . "\n"
+ .'<select id="tablefields" name="dummy" '
+ .'size="' . ($GLOBALS['cfg']['TextareaRows'] - 2) . '" '
+ .'multiple="multiple" ondblclick="insertValueQuery()">' . "\n";
+ foreach ($fields_list as $field) {
+ echo '<option value="'
+ .PMA_backquote(htmlspecialchars($field['Field'])) . '"';
+ if (isset($field['Field']) && strlen($field['Field']) && isset($field['Comment'])) {
+ echo ' title="' . htmlspecialchars($field['Comment']) . '"';
+ }
+ echo '>' . htmlspecialchars($field['Field']) . '</option>' . "\n";
+ }
+ echo '</select>' . "\n"
+ .'<div id="tablefieldinsertbuttoncontainer">' . "\n";
+ if ($GLOBALS['cfg']['PropertiesIconic']) {
+ echo '<input type="button" name="insert" value="&lt;&lt;"'
+ .' onclick="insertValueQuery()"'
+ .' title="' . $GLOBALS['strInsert'] . '" />' . "\n";
+ } else {
+ echo '<input type="button" name="insert"'
+ .' value="' . $GLOBALS['strInsert'] . '"'
+ .' onclick="insertValueQuery()" />' . "\n";
+ }
+ echo '</div>' . "\n"
+ .'</div>' . "\n";
+ }
+
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</div>' . "\n";
+
+ if (! empty($GLOBALS['cfg']['Bookmark'])) {
+ ?>
+ <div id="bookmarkoptions">
+ <div class="formelement">
+ <label for="bkm_label">
+ <?php echo $GLOBALS['strBookmarkThis']; ?>:</label>
+ <input type="text" name="bkm_label" id="bkm_label" value="" />
+ </div>
+ <div class="formelement">
+ <input type="checkbox" name="bkm_all_users" id="id_bkm_all_users"
+ value="true" />
+ <label for="id_bkm_all_users">
+ <?php echo $GLOBALS['strBookmarkAllUsers']; ?></label>
+ </div>
+ <div class="formelement">
+ <input type="checkbox" name="bkm_replace" id="id_bkm_replace"
+ value="true" />
+ <label for="id_bkm_replace">
+ <?php echo $GLOBALS['strBookmarkReplace']; ?></label>
+ </div>
+ </div>
+ <?php
+ }
+
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n"
+ .'</div>' . "\n";
+
+ echo '<fieldset id="queryboxfooter" class="tblFooters">' . "\n";
+ echo '<div class="formelement">' . "\n";
+ if ($is_querywindow) {
+ ?>
+ <script type="text/javascript">
+ //<![CDATA[
+ document.writeln(' <input type="checkbox" name="LockFromUpdate" value="1" id="checkbox_lock" /> <label for="checkbox_lock"><?php echo $GLOBALS['strQueryWindowLock']; ?></label> ');
+ //]]>
+ </script>
+ <?php
+ }
+ echo '</div>' . "\n";
+ echo '<div class="formelement">' . "\n";
+ echo '<label for="id_sql_delimiter">[ ' . $GLOBALS['strDelimiter']
+ .'</label>' . "\n";
+ echo '<input type="text" name="sql_delimiter" size="3" '
+ .'value="' . $delimiter . '" '
+ .'id="id_sql_delimiter" /> ]' . "\n";
+
+ echo '<input type="checkbox" name="show_query" value="1" '
+ .'id="checkbox_show_query" checked="checked" />' . "\n"
+ .'<label for="checkbox_show_query">' . $GLOBALS['strShowThisQuery']
+ .'</label>' . "\n";
+
+ echo '</div>' . "\n";
+ echo '<input type="submit" name="SQL" value="' . $GLOBALS['strGo'] . '" />'
+ ."\n";
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n";
+}
+
+/**
+ * prints bookmark fieldset
+ *
+ * @usedby PMA_sqlQueryForm()
+ * @uses PMA_Bookmark_getList()
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['cfg']['ReplaceHelpImg']
+ * @uses $GLOBALS['strBookmarkQuery']
+ * @uses $GLOBALS['strBookmarkView']
+ * @uses $GLOBALS['strDelete']
+ * @uses $GLOBALS['strDocu']
+ * @uses $GLOBALS['strGo']
+ * @uses $GLOBALS['strSubmit']
+ * @uses $GLOBALS['strVar']
+ * @uses count()
+ * @uses htmlspecialchars()
+ */
+function PMA_sqlQueryFormBookmark()
+{
+ $bookmark_list = PMA_Bookmark_getList($GLOBALS['db']);
+ if (! $bookmark_list || count($bookmark_list) < 1) {
+ return;
+ }
+
+ echo '<fieldset id="bookmarkoptions">';
+ echo '<legend>';
+ echo $GLOBALS['strBookmarkQuery'] . '</legend>' . "\n";
+ echo '<div class="formelement">';
+ echo '<select name="id_bookmark">' . "\n";
+ echo '<option value="">&nbsp;</option>' . "\n";
+ foreach ($bookmark_list as $key => $value) {
+ echo '<option value="' . htmlspecialchars($key) . '">'
+ .htmlspecialchars($value) . '</option>' . "\n";
+ }
+ // &nbsp; is required for correct display with styles/line height
+ echo '</select>&nbsp;' . "\n";
+ echo '</div>' . "\n";
+ echo '<div class="formelement">' . "\n";
+ echo $GLOBALS['strVar'];
+ if ($GLOBALS['cfg']['ReplaceHelpImg']) {
+ echo ' <a href="./Documentation.html#faqbookmark"'
+ .' target="documentation">'
+ .'<img class="icon" src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png"'
+ .' border="0" width="11" height="11" align="middle"'
+ .' alt="' . $GLOBALS['strDocu'] . '" /></a> ';
+ } else {
+ echo ' (<a href="./Documentation.html#faqbookmark"'
+ .' target="documentation">' . $GLOBALS['strDocu'] . '</a>): ';
+ }
+ echo '<input type="text" name="bookmark_variable" class="textfield"'
+ .' size="10" />' . "\n";
+ echo '</div>' . "\n";
+ echo '<div class="formelement">' . "\n";
+ echo '<input type="radio" name="action_bookmark" value="0"'
+ .' id="radio_bookmark_exe" checked="checked" />'
+ .'<label for="radio_bookmark_exe">' . $GLOBALS['strSubmit']
+ .'</label>' . "\n";
+ echo '<input type="radio" name="action_bookmark" value="1"'
+ .' id="radio_bookmark_view" />'
+ .'<label for="radio_bookmark_view">' . $GLOBALS['strBookmarkView']
+ .'</label>' . "\n";
+ echo '<input type="radio" name="action_bookmark" value="2"'
+ .' id="radio_bookmark_del" />'
+ .'<label for="radio_bookmark_del">' . $GLOBALS['strDelete']
+ .'</label>' . "\n";
+ echo '</div>' . "\n";
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n";
+
+ echo '<fieldset id="bookmarkoptionsfooter" class="tblFooters">' . "\n";
+ echo '<input type="submit" name="SQL" value="' . $GLOBALS['strGo'] . '" />';
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>' . "\n";
+}
+
+/**
+ * prints bookmark fieldset
+ *
+ * @usedby PMA_sqlQueryForm()
+ * @uses $GLOBALS['cfg']['GZipDump']
+ * @uses $GLOBALS['cfg']['BZipDump']
+ * @uses $GLOBALS['cfg']['UploadDir']
+ * @uses $GLOBALS['cfg']['AvailableCharsets']
+ * @uses $GLOBALS['cfg']['AllowAnywhereRecoding']
+ * @uses $GLOBALS['strBzip']
+ * @uses $GLOBALS['strCharsetOfFile']
+ * @uses $GLOBALS['strCompression']
+ * @uses $GLOBALS['strError']
+ * @uses $GLOBALS['strGo']
+ * @uses $GLOBALS['strGzip']
+ * @uses $GLOBALS['strLocationTextfile']
+ * @uses $GLOBALS['strWebServerUploadDirectory']
+ * @uses $GLOBALS['strWebServerUploadDirectoryError']
+ * @uses $GLOBALS['charset']
+ * @uses $GLOBALS['max_upload_size']
+ * @uses PMA_supportedDecompressions()
+ * @uses PMA_getFileSelectOptions()
+ * @uses PMA_displayMaximumUploadSize()
+ * @uses PMA_generateCharsetDropdownBox()
+ * @uses PMA_generateHiddenMaxFileSize()
+ * @uses PMA_CSDROPDOWN_CHARSET
+ * @uses empty()
+ */
+function PMA_sqlQueryFormUpload(){
+ $errors = array ();
+
+ $matcher = '@\.sql(\.(' . PMA_supportedDecompressions() . '))?$@'; // we allow only SQL here
+
+ if (!empty($GLOBALS['cfg']['UploadDir'])) {
+ $files = PMA_getFileSelectOptions(PMA_userDir($GLOBALS['cfg']['UploadDir']), $matcher, (isset($timeout_passed) && $timeout_passed && isset($local_import_file)) ? $local_import_file : '');
+ } else {
+ $files = '';
+ }
+
+ // start output
+ echo '<fieldset id="">';
+ echo '<legend>';
+ echo $GLOBALS['strLocationTextfile'] . '</legend>';
+ echo '<div class="formelement">';
+ echo '<input type="file" name="sql_file" class="textfield" /> ';
+ echo PMA_displayMaximumUploadSize($GLOBALS['max_upload_size']);
+ // some browsers should respect this :)
+ echo PMA_generateHiddenMaxFileSize($GLOBALS['max_upload_size']) . "\n";
+ echo '</div>';
+
+ if ($files === FALSE) {
+ $errors[] = PMA_Message::error('strWebServerUploadDirectoryError');
+ } elseif (!empty($files)) {
+ echo '<div class="formelement">';
+ echo '<strong>' . $GLOBALS['strWebServerUploadDirectory'] .':</strong>' . "\n";
+ echo '<select size="1" name="sql_localfile">' . "\n";
+ echo '<option value="" selected="selected"></option>' . "\n";
+ echo $files;
+ echo '</select>' . "\n";
+ echo '</div>';
+ }
+
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>';
+
+
+ echo '<fieldset id="" class="tblFooters">';
+ echo $GLOBALS['strCharsetOfFile'] . "\n";
+ echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_CHARSET,
+ 'charset_of_file', null, 'utf8', FALSE);
+ echo '<input type="submit" name="SQL" value="' . $GLOBALS['strGo']
+ .'" />' . "\n";
+ echo '<div class="clearfloat"></div>' . "\n";
+ echo '</fieldset>';
+
+ foreach ($errors as $error) {
+ $error->display();
+ }
+}
+?>
diff --git a/libraries/sqlparser.data.php b/libraries/sqlparser.data.php
new file mode 100644
index 0000000000..e62fc10540
--- /dev/null
+++ b/libraries/sqlparser.data.php
@@ -0,0 +1,1290 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * SQL Parser Matching Data
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * This data is used by the SQL Parser to recognize keywords
+ *
+ * It has been extracted from the lex.h file in the MySQL BK tree
+ * (around 4.0.2) as well as the MySQL documentation.
+ *
+ * Note: before adding a value in the arrays, ensure that you respect
+ * proper sorting, especially with underscores. And don't forget to
+ * update the _cnt variable at the end of each array.
+ * (It's slower to have PHP do the count).
+ *
+ * It's easier to use only uppercase for proper sorting. In case of
+ * doubt, use the DEBUG code after this function's definition.
+ *
+ * @version$Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * @global array MySQL function names
+ */
+$PMA_SQPdata_function_name = array (
+ 'ABS',
+ 'ACOS',
+ 'ADDDATE',
+ 'ADDTIME',
+ 'AES_DECRYPT',
+ 'AES_ENCRYPT',
+ 'AREA', // Area() polygon-property-functions.html
+ 'ASBINARY', // AsBinary()
+ 'ASCII',
+ 'ASIN',
+ 'ASTEXT', // AsText()
+ 'ATAN',
+ 'ATAN2',
+ 'AVG',
+ 'BDMPOLYFROMTEXT', // BdMPolyFromText()
+ 'BDMPOLYFROMWKB', // BdMPolyFromWKB()
+ 'BDPOLYFROMTEXT', // BdPolyFromText()
+ 'BDPOLYFROMWKB', // BdPolyFromWKB()
+ 'BENCHMARK',
+ 'BIN',
+ 'BIT_AND',
+ 'BIT_COUNT',
+ 'BIT_LENGTH',
+ 'BIT_OR',
+ 'BIT_XOR', // group-by-functions.html
+ 'BOUNDARY', // Boundary() general-geometry-property-functions.html
+ 'BUFFER', // Buffer()
+ 'CAST',
+ 'CEIL',
+ 'CEILING',
+ 'CENTROID', // Centroid() multipolygon-property-functions.html
+ 'CHAR', // string-functions.html
+ 'CHARACTER_LENGTH',
+ 'CHARSET', // information-functions.html
+ 'CHAR_LENGTH',
+ 'COALESCE',
+ 'COERCIBILITY', // information-functions.html
+ 'COLLATION', // information-functions.html
+ 'COMPRESS', // string-functions.html
+ 'CONCAT',
+ 'CONCAT_WS',
+ 'CONNECTION_ID',
+ 'CONTAINS', // Contains()
+ 'CONV',
+ 'CONVERT',
+ 'CONVERT_TZ',
+ 'CONVEXHULL', // ConvexHull()
+ 'COS',
+ 'COT',
+ 'COUNT',
+ 'CRC32', // mathematical-functions.html
+ 'CROSSES', // Crosses()
+ 'CURDATE',
+ 'CURRENT_DATE',
+ 'CURRENT_TIME',
+ 'CURRENT_TIMESTAMP',
+ 'CURRENT_USER',
+ 'CURTIME',
+ 'DATABASE',
+ 'DATE', // date-and-time-functions.html
+ 'DATEDIFF', // date-and-time-functions.html
+ 'DATE_ADD',
+ 'DATE_DIFF',
+ 'DATE_FORMAT',
+ 'DATE_SUB',
+ 'DAY',
+ 'DAYNAME',
+ 'DAYOFMONTH',
+ 'DAYOFWEEK',
+ 'DAYOFYEAR',
+ 'DECODE',
+ 'DEFAULT', // miscellaneous-functions.html
+ 'DEGREES',
+ 'DES_DECRYPT',
+ 'DES_ENCRYPT',
+ 'DIFFERENCE', // Difference()
+ 'DIMENSION', // Dimension() general-geometry-property-functions.html
+ 'DISJOINT', // Disjoint()
+ 'DISTANCE', // Distance()
+ 'ELT',
+ 'ENCODE',
+ 'ENCRYPT',
+ 'ENDPOINT', // EndPoint() linestring-property-functions.html
+ 'ENVELOPE', // Envelope() general-geometry-property-functions.html
+ 'EQUALS', // Equals()
+ 'EXP',
+ 'EXPORT_SET',
+ 'EXTERIORRING', // ExteriorRing() polygon-property-functions.html
+ 'EXTRACT',
+ 'EXTRACTVALUE', // ExtractValue() xml-functions.html
+ 'FIELD',
+ 'FIND_IN_SET',
+ 'FLOOR',
+ 'FORMAT',
+ 'FOUND_ROWS',
+ 'FROM_DAYS',
+ 'FROM_UNIXTIME',
+ 'GEOMCOLLFROMTEXT', // GeomCollFromText()
+ 'GEOMCOLLFROMWKB', // GeomCollFromWKB()
+ 'GEOMETRYCOLLECTION', // GeometryCollection()
+ 'GEOMETRYCOLLECTIONFROMTEXT', // GeometryCollectionFromText()
+ 'GEOMETRYCOLLECTIONFROMWKB', // GeometryCollectionFromWKB()
+ 'GEOMETRYFROMTEXT', // GeometryFromText()
+ 'GEOMETRYFROMWKB', // GeometryFromWKB()
+ 'GEOMETRYN', // GeometryN() geometrycollection-property-functions.html
+ 'GEOMETRYTYPE', // GeometryType() general-geometry-property-functions.html
+ 'GEOMFROMTEXT', // GeomFromText()
+ 'GEOMFROMWKB', // GeomFromWKB()
+ 'GET_FORMAT',
+ 'GET_LOCK',
+ 'GLENGTH', // GLength() linestring-property-functions.html
+ 'GREATEST',
+ 'GROUP_CONCAT',
+ 'GROUP_UNIQUE_USERS',
+ 'HEX',
+ 'HOUR',
+ 'IF', //control-flow-functions.html
+ 'IFNULL',
+ 'INET_ATON',
+ 'INET_NTOA',
+ 'INSERT', // string-functions.html
+ 'INSTR',
+ 'INTERIORRINGN', // InteriorRingN() polygon-property-functions.html
+ 'INTERSECTION', // Intersection()
+ 'INTERSECTS', // Intersects()
+ 'INTERVAL',
+ 'ISCLOSED', // IsClosed() multilinestring-property-functions.html
+ 'ISEMPTY', // IsEmpty() general-geometry-property-functions.html
+ 'ISNULL',
+ 'ISRING', // IsRing() linestring-property-functions.html
+ 'ISSIMPLE', // IsSimple() general-geometry-property-functions.html
+ 'IS_FREE_LOCK',
+ 'IS_USED_LOCK', // miscellaneous-functions.html
+ 'LAST_DAY',
+ 'LAST_INSERT_ID',
+ 'LCASE',
+ 'LEAST',
+ 'LEFT',
+ 'LENGTH',
+ 'LINEFROMTEXT', // LineFromText()
+ 'LINEFROMWKB', // LineFromWKB()
+ 'LINESTRING', // LineString()
+ 'LINESTRINGFROMTEXT', // LineStringFromText()
+ 'LINESTRINGFROMWKB', // LineStringFromWKB()
+ 'LN',
+ 'LOAD_FILE',
+ 'LOCALTIME',
+ 'LOCALTIMESTAMP',
+ 'LOCATE',
+ 'LOG',
+ 'LOG10',
+ 'LOG2',
+ 'LOWER',
+ 'LPAD',
+ 'LTRIM',
+ 'MAKEDATE',
+ 'MAKETIME',
+ 'MAKE_SET',
+ 'MASTER_POS_WAIT',
+ 'MAX',
+ 'MBRCONTAINS', // MBRContains()
+ 'MBRDISJOINT', // MBRDisjoint()
+ 'MBREQUAL', // MBREqual()
+ 'MBRINTERSECTS', // MBRIntersects()
+ 'MBROVERLAPS', // MBROverlaps()
+ 'MBRTOUCHES', // MBRTouches()
+ 'MBRWITHIN', // MBRWithin()
+ 'MD5',
+ 'MICROSECOND',
+ 'MID',
+ 'MIN',
+ 'MINUTE',
+ 'MLINEFROMTEXT', // MLineFromText()
+ 'MLINEFROMWKB', // MLineFromWKB()
+ 'MOD',
+ 'MONTH',
+ 'MONTHNAME',
+ 'NOW',
+ 'MPOINTFROMTEXT', // MPointFromText()
+ 'MPOINTFROMWKB', // MPointFromWKB()
+ 'MPOLYFROMTEXT', // MPolyFromText()
+ 'MPOLYFROMWKB', // MPolyFromWKB()
+ 'MULTILINESTRING', // MultiLineString()
+ 'MULTILINESTRINGFROMTEXT', // MultiLineStringFromText()
+ 'MULTILINESTRINGFROMWKB', // MultiLineStringFromWKB()
+ 'MULTIPOINT', // MultiPoint()
+ 'MULTIPOINTFROMTEXT', // MultiPointFromText()
+ 'MULTIPOINTFROMWKB', // MultiPointFromWKB()
+ 'MULTIPOLYGON', // MultiPolygon()
+ 'MULTIPOLYGONFROMTEXT', // MultiPolygonFromText()
+ 'MULTIPOLYGONFROMWKB', // MultiPolygonFromWKB()
+ 'NAME_CONST', // NAME_CONST()
+ 'NOW', // NOW()
+ 'NULLIF',
+ 'NUMGEOMETRIES', // NumGeometries() geometrycollection-property-functions.html
+ 'NUMINTERIORRINGS', // NumInteriorRings() polygon-property-functions.html
+ 'NUMPOINTS', // NumPoints() linestring-property-functions.html
+ 'OCT',
+ 'OCTET_LENGTH',
+ 'OLD_PASSWORD',
+ 'ORD',
+ 'OVERLAPS', // Overlaps()
+ 'PASSWORD',
+ 'PERIOD_ADD',
+ 'PERIOD_DIFF',
+ 'PI',
+ 'POINT', // Point()
+ 'POINTFROMTEXT', // PointFromText()
+ 'POINTFROMWKB', // PointFromWKB()
+ 'POINTN', // PointN() inestring-property-functions.html
+ 'POINTONSURFACE', // PointOnSurface() multipolygon-property-functions.html
+ 'POLYFROMTEXT', // PolyFromText()
+ 'POLYFROMWKB', // PolyFromWKB()
+ 'POLYGON', // Polygon()
+ 'POLYGONFROMTEXT', // PolygonFromText()
+ 'POLYGONFROMWKB', // PolygonFromWKB()
+ 'POSITION',
+ 'POW',
+ 'POWER',
+ 'QUARTER',
+ 'QUOTE',
+ 'RADIANS',
+ 'RAND',
+ 'RELATED', // Related()
+ 'RELEASE_LOCK',
+ 'REPEAT',
+ 'REPLACE', // string-functions.html
+ 'REVERSE',
+ 'RIGHT',
+ 'ROUND',
+ 'ROW_COUNT', // information-functions.html
+ 'RPAD',
+ 'RTRIM',
+ 'SCHEMA', // information-functions.html
+ 'SECOND',
+ 'SEC_TO_TIME',
+ 'SESSION_USER',
+ 'SHA',
+ 'SHA1',
+ 'SIGN',
+ 'SIN',
+ 'SLEEP', // miscellaneous-functions.html
+ 'SOUNDEX',
+ 'SPACE',
+ 'SQRT',
+ 'SRID', // general-geometry-property-functions.html
+ 'STARTPOINT', // StartPoint() linestring-property-functions.html
+ 'STD',
+ 'STDDEV',
+ 'STDDEV_POP', // group-by-functions.html
+ 'STDDEV_SAMP', // group-by-functions.html
+ 'STRCMP',
+ 'STR_TO_DATE',
+ 'SUBDATE',
+ 'SUBSTR',
+ 'SUBSTRING',
+ 'SUBSTRING_INDEX',
+ 'SUBTIME',
+ 'SUM',
+ 'SYMDIFFERENCE', // SymDifference()
+ 'SYSDATE',
+ 'SYSTEM_USER',
+ 'TAN',
+ 'TIME',
+ 'TIMEDIFF',
+ 'TIMESTAMP',
+ 'TIMESTAMPADD',
+ 'TIMESTAMPDIFF',
+ 'TIME_FORMAT',
+ 'TIME_TO_SEC',
+ 'TOUCHES', // Touches()
+ 'TO_DAYS',
+ 'TRIM',
+ 'TRUNCATE', // mathematical-functions.html
+ 'UCASE',
+ 'UNCOMPRESS', // string-functions.html
+ 'UNCOMPRESSED_LENGTH', // string-functions.html
+ 'UNHEX', // string-functions.html
+ 'UNIQUE_USERS',
+ 'UNIX_TIMESTAMP',
+ 'UPDATEXML', // UpdateXML() xml-functions.html
+ 'UPPER',
+ 'USER',
+ 'UTC_DATE',
+ 'UTC_TIME',
+ 'UTC_TIMESTAMP',
+ 'UUID', // miscellaneous-functions.html
+ 'VARIANCE', // group-by-functions.html
+ 'VAR_POP', // group-by-functions.html
+ 'VAR_SAMP', // group-by-functions.html
+ 'VERSION',
+ 'WEEK',
+ 'WEEKDAY',
+ 'WEEKOFYEAR',
+ 'WITHIN', // Within()
+ 'X', // point-property-functions.html
+ 'Y', // point-property-functions.html
+ 'YEAR',
+ 'YEARWEEK'
+);
+/**
+ * $PMA_SQPdata_function_name_cnt = count($PMA_SQPdata_function_name);
+ *
+ * @global integer MySQL attributes count
+ */
+$PMA_SQPdata_function_name_cnt = 299;
+
+/*
+ * DEBUG
+$test_PMA_SQPdata_function_name = $PMA_SQPdata_function_name;
+sort($PMA_SQPdata_function_name);
+if ($PMA_SQPdata_function_name != $test_PMA_SQPdata_function_name) {
+ echo 'sort properly like this<pre>';
+ print_r($PMA_SQPdata_function_name);
+ echo '</pre>';
+}
+ */
+
+/**
+ * @global array MySQL attributes
+ */
+$PMA_SQPdata_column_attrib = array (
+ 'ARCHIVE', // Engine
+ 'ASCII',
+ 'AUTO_INCREMENT',
+ 'BDB', // Engine
+ 'BERKELEYDB', // Engine alias BDB
+ 'BINARY',
+ 'BLACKHOLE', // Engine
+ 'CSV', // Engine
+ 'DEFAULT',
+ 'EXAMPLE', // Engine
+ 'FEDERATED', // Engine
+ 'HEAP', // Engine
+ 'INNOBASE', // Engine alias InnoDB
+ 'INNODB', // Engine InnoDB
+ 'ISAM', // Engine
+ 'MARIA', // Engine
+ 'MEMORY', // Engine alias HEAP, but preferred
+ 'MERGE', // Engine
+ 'MRG_ISAM', // Engine
+ 'MRG_MYISAM', // Engine alias MERGE
+ 'MYISAM', // Engine MyISAM
+ 'NATIONAL',
+ 'NDB', // Engine alias NDBCLUSTER
+ 'NDBCLUSTER', // Engine
+ 'PRECISION',
+ 'UNDEFINED',
+ 'UNICODE',
+ 'UNSIGNED',
+ 'VARYING',
+ 'ZEROFILL'
+);
+/**
+ * $PMA_SQPdata_column_attrib_cnt = count($PMA_SQPdata_column_attrib);
+ *
+ * @global integer MySQL attributes count
+ */
+$PMA_SQPdata_column_attrib_cnt = 30;
+
+/**
+ * words that are reserved by MySQL and may not be used as identifiers without quotes
+ *
+ * @see http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
+ *
+ * @global array MySQL reserved words
+ */
+$PMA_SQPdata_reserved_word = array (
+ 'ACCESSIBLE', // 5.1
+ 'ACTION',
+ 'ADD',
+ 'AFTER',
+ 'AGAINST',
+ 'AGGREGATE',
+ 'ALGORITHM',
+ 'ALL',
+ 'ALTER',
+ 'ANALYSE',
+ 'ANALYZE',
+ 'AND',
+ 'AS',
+ 'ASC',
+ 'AUTOCOMMIT',
+ 'AUTO_INCREMENT',
+ 'AVG_ROW_LENGTH',
+ 'BACKUP',
+ 'BEGIN',
+ 'BETWEEN',
+ 'BINLOG',
+ 'BOTH',
+ 'BY',
+ 'CASCADE',
+ 'CASE',
+ 'CHANGE',
+ 'CHANGED',
+ 'CHARSET',
+ 'CHECK',
+ 'CHECKSUM',
+ 'COLLATE',
+ 'COLLATION',
+ 'COLUMN',
+ 'COLUMNS',
+ 'COMMENT',
+ 'COMMIT',
+ 'COMMITTED',
+ 'COMPRESSED',
+ 'CONCURRENT',
+ 'CONSTRAINT',
+ 'CONTAINS',
+ 'CONVERT',
+ 'CREATE',
+ 'CROSS',
+ 'CURRENT_TIMESTAMP',
+ 'DATA',
+ 'DATABASE',
+ 'DATABASES',
+ 'DAY',
+ 'DAY_HOUR',
+ 'DAY_MINUTE',
+ 'DAY_SECOND',
+ 'DEFINER',
+ 'DELAYED',
+ 'DELAY_KEY_WRITE',
+ 'DELETE',
+ 'DESC',
+ 'DESCRIBE',
+ 'DETERMINISTIC',
+ 'DISTINCT',
+ 'DISTINCTROW',
+ 'DIV',
+ 'DO',
+ 'DROP',
+ 'DUMPFILE',
+ 'DUPLICATE',
+ 'DYNAMIC',
+ 'ELSE',
+ 'ENCLOSED',
+ 'END',
+ 'ENGINE',
+ 'ENGINES',
+ 'ESCAPE',
+ 'ESCAPED',
+ 'EVENTS',
+ 'EXECUTE',
+ 'EXISTS',
+ 'EXPLAIN',
+ 'EXTENDED',
+ 'FAST',
+ 'FIELDS',
+ 'FILE',
+ 'FIRST',
+ 'FIXED',
+ 'FLUSH',
+ 'FOR',
+ 'FORCE',
+ 'FOREIGN',
+ 'FROM',
+ 'FULL',
+ 'FULLTEXT',
+ 'FUNCTION',
+ 'GEMINI',
+ 'GEMINI_SPIN_RETRIES',
+ 'GLOBAL',
+ 'GRANT',
+ 'GRANTS',
+ 'GROUP',
+ 'HAVING',
+ 'HEAP',
+ 'HIGH_PRIORITY',
+ 'HOSTS',
+ 'HOUR',
+ 'HOUR_MINUTE',
+ 'HOUR_SECOND',
+ 'IDENTIFIED',
+ 'IF',
+ 'IGNORE',
+ 'IN',
+ 'INDEX',
+ 'INDEXES',
+ 'INFILE',
+ 'INNER',
+ 'INSERT',
+ 'INSERT_ID',
+ 'INSERT_METHOD',
+ 'INTERVAL',
+ 'INTO',
+ 'IS',
+ 'ISOLATION',
+ 'JOIN',
+ 'KEY',
+ 'KEYS',
+ 'KILL',
+ 'LAST_INSERT_ID',
+ 'LEADING',
+ 'LEFT',
+ 'LEVEL',
+ 'LIKE',
+ 'LIMIT',
+ 'LINEAR', // 5.1
+ 'LINES',
+ 'LOAD',
+ 'LOCAL',
+ 'LOCK',
+ 'LOCKS',
+ 'LOGS',
+ 'LOW_PRIORITY',
+ 'MARIA', // 5.1 ?
+ 'MASTER',
+ 'MASTER_CONNECT_RETRY',
+ 'MASTER_HOST',
+ 'MASTER_LOG_FILE',
+ 'MASTER_LOG_POS',
+ 'MASTER_PASSWORD',
+ 'MASTER_PORT',
+ 'MASTER_USER',
+ 'MATCH',
+ 'MAX_CONNECTIONS_PER_HOUR',
+ 'MAX_QUERIES_PER_HOUR',
+ 'MAX_ROWS',
+ 'MAX_UPDATES_PER_HOUR',
+ 'MAX_USER_CONNECTIONS',
+ 'MEDIUM',
+ 'MERGE',
+ 'MINUTE',
+ 'MINUTE_SECOND',
+ 'MIN_ROWS',
+ 'MODE',
+ 'MODIFY',
+ 'MONTH',
+ 'MRG_MYISAM',
+ 'MYISAM',
+ 'NAMES',
+ 'NATURAL',
+ // 'NO' is not allowed in SQL-99 but is allowed in MySQL
+ //'NO',
+ 'NOT',
+ 'NULL',
+ 'OFFSET',
+ 'ON',
+ 'OPEN',
+ 'OPTIMIZE',
+ 'OPTION',
+ 'OPTIONALLY',
+ 'OR',
+ 'ORDER',
+ 'OUTER',
+ 'OUTFILE',
+ 'PACK_KEYS',
+ 'PAGE', // 5.1-maria ?
+ 'PARTIAL',
+ 'PARTITION', // 5.1
+ 'PARTITIONS', // 5.1
+ 'PASSWORD',
+ 'PRIMARY',
+ 'PRIVILEGES',
+ 'PROCEDURE',
+ 'PROCESS',
+ 'PROCESSLIST',
+ 'PURGE',
+ 'QUICK',
+ 'RAID0',
+ 'RAID_CHUNKS',
+ 'RAID_CHUNKSIZE',
+ 'RAID_TYPE',
+ 'RANGE', // 5.1
+ 'READ',
+ 'READ_ONLY', // 5.1
+ 'READ_WRITE', // 5.1
+ 'REFERENCES',
+ 'REGEXP',
+ 'RELOAD',
+ 'RENAME',
+ 'REPAIR',
+ 'REPEATABLE',
+ 'REPLACE',
+ 'REPLICATION',
+ 'RESET',
+ 'RESTORE',
+ 'RESTRICT',
+ 'RETURN',
+ 'RETURNS',
+ 'REVOKE',
+ 'RIGHT',
+ 'RLIKE',
+ 'ROLLBACK',
+ 'ROW',
+ 'ROWS',
+ 'ROW_FORMAT',
+ 'SECOND',
+ 'SECURITY',
+ 'SELECT',
+ 'SEPARATOR',
+ 'SERIALIZABLE',
+ 'SESSION',
+ 'SHARE',
+ 'SHOW',
+ 'SHUTDOWN',
+ 'SLAVE',
+ 'SONAME',
+ 'SOUNDS', // string-functions.html
+ 'SQL',
+ 'SQL_AUTO_IS_NULL',
+ 'SQL_BIG_RESULT',
+ 'SQL_BIG_SELECTS',
+ 'SQL_BIG_TABLES',
+ 'SQL_BUFFER_RESULT',
+ 'SQL_CACHE',
+ 'SQL_CALC_FOUND_ROWS',
+ 'SQL_LOG_BIN',
+ 'SQL_LOG_OFF',
+ 'SQL_LOG_UPDATE',
+ 'SQL_LOW_PRIORITY_UPDATES',
+ 'SQL_MAX_JOIN_SIZE',
+ 'SQL_NO_CACHE',
+ 'SQL_QUOTE_SHOW_CREATE',
+ 'SQL_SAFE_UPDATES',
+ 'SQL_SELECT_LIMIT',
+ 'SQL_SLAVE_SKIP_COUNTER',
+ 'SQL_SMALL_RESULT',
+ 'SQL_WARNINGS',
+ 'START',
+ 'STARTING',
+ 'STATUS',
+ 'STOP',
+ 'STORAGE',
+ 'STRAIGHT_JOIN',
+ 'STRING',
+ 'STRIPED',
+ 'SUPER',
+ 'TABLE',
+ 'TABLES',
+ 'TEMPORARY',
+ 'TERMINATED',
+ 'THEN',
+ 'TO',
+ 'TRAILING',
+ 'TRANSACTIONAL', // 5.1 ?
+ 'TRUNCATE',
+ 'TYPE',
+ 'TYPES',
+ 'UNCOMMITTED',
+ 'UNION',
+ 'UNIQUE',
+ 'UNLOCK',
+ 'UPDATE',
+ 'USAGE',
+ 'USE',
+ 'USING',
+ 'VALUES',
+ 'VARIABLES',
+ 'VIEW',
+ 'WHEN',
+ 'WHERE',
+ 'WITH',
+ 'WORK',
+ 'WRITE',
+ 'XOR',
+ 'YEAR_MONTH'
+);
+/**
+ * $PMA_SQPdata_reserved_word_cnt = count($PMA_SQPdata_reserved_word);
+ *
+ * @global integer MySQL reserved words count
+ */
+$PMA_SQPdata_reserved_word_cnt = 288;
+/**
+ * The previous array must be sorted so that the binary search work.
+ * Sometimes a word is not added in the correct order, so
+ * this debugging code shows the problem. The same should be
+ * done for all arrays.
+ */
+/*
+$original = $PMA_SQPdata_reserved_word;
+sort($PMA_SQPdata_reserved_word);
+$difference = array_diff_assoc($original, $PMA_SQPdata_reserved_word);
+echo '<pre>';
+print_r($difference);
+echo '</pre>';
+echo '<pre>';
+print_r($PMA_SQPdata_reserved_word);
+echo '</pre>';
+*/
+
+/**
+ * words forbidden to be used as column or table name wihtout quotes
+ * as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html
+ *
+ * @global array MySQL forbidden words
+ */
+$PMA_SQPdata_forbidden_word = array (
+ 'ACCESSIBLE', // 5.1
+ 'ACTION',
+ 'ADD',
+ 'AFTER',
+ 'AGAINST',
+ 'AGGREGATE',
+ 'ALGORITHM',
+ 'ALL',
+ 'ALTER',
+ 'ANALYZE',
+ 'AND',
+ 'ANY',
+ 'AS',
+ 'ASC',
+ 'ASCII',
+ 'ASENSITIVE',
+ 'AUTO_INCREMENT',
+ 'AVG',
+ 'AVG_ROW_LENGTH',
+ 'BACKUP',
+ 'BDB',
+ 'BEFORE',
+ 'BEGIN',
+ 'BERKELEYDB',
+ 'BETWEEN',
+ 'BIGINT',
+ 'BINARY',
+ 'BINLOG',
+ 'BIT',
+ 'BLOB',
+ 'BOOL',
+ 'BOOLEAN',
+ 'BOTH',
+ 'BTREE',
+ 'BY',
+ 'BYTE',
+ 'CACHE',
+ 'CALL',
+ 'CASCADE',
+ 'CASCADED',
+ 'CASE',
+ 'CHAIN',
+ 'CHANGE',
+ 'CHANGED',
+ 'CHAR',
+ 'CHARACTER',
+ 'CHARSET',
+ 'CHECK',
+ 'CHECKSUM',
+ 'CIPHER',
+ 'CLOSE',
+ 'COLLATE',
+ 'COLLATION',
+ 'COLUMN',
+ 'COLUMNS',
+ 'COMMENT',
+ 'COMMIT',
+ 'COMMITTED',
+ 'COMPACT',
+ 'COMPRESSED',
+ 'CONCURRENT',
+ 'CONDITION',
+ 'CONNECTION',
+ 'CONSISTENT',
+ 'CONSTRAINT',
+ 'CONTAINS',
+ 'CONTINUE',
+ 'CONVERT',
+ 'CREATE',
+ 'CROSS',
+ 'CUBE',
+ 'CURRENT_DATE',
+ 'CURRENT_TIME',
+ 'CURRENT_TIMESTAMP',
+ 'CURRENT_USER',
+ 'CURSOR',
+ 'DATA',
+ 'DATABASE',
+ 'DATABASES',
+ 'DATE',
+ 'DATETIME',
+ 'DAY',
+ 'DAY_HOUR',
+ 'DAY_MICROSECOND',
+ 'DAY_MINUTE',
+ 'DAY_SECOND',
+ 'DEALLOCATE',
+ 'DEC',
+ 'DECIMAL',
+ 'DECLARE',
+ 'DEFAULT',
+ 'DEFINER',
+ 'DELAYED',
+ 'DELAY_KEY_WRITE',
+ 'DELETE',
+ 'DESC',
+ 'DESCRIBE',
+ 'DES_KEY_FILE',
+ 'DETERMINISTIC',
+ 'DIRECTORY',
+ 'DISABLE',
+ 'DISCARD',
+ 'DISTINCT',
+ 'DISTINCTROW',
+ 'DIV',
+ 'DO',
+ 'DOUBLE',
+ 'DROP',
+ 'DUAL',
+ 'DUMPFILE',
+ 'DUPLICATE',
+ 'DYNAMIC',
+ 'EACH',
+ 'ELSE',
+ 'ELSEIF',
+ 'ENABLE',
+ 'ENCLOSED',
+ 'END',
+ 'ENGINE',
+ 'ENGINES',
+ 'ENUM',
+ 'ERRORS',
+ 'ESCAPE',
+ 'ESCAPED',
+ 'EVENTS',
+ 'EXECUTE',
+ 'EXISTS',
+ 'EXIT',
+ 'EXPANSION',
+ 'EXPLAIN',
+ 'EXTENDED',
+ 'FALSE',
+ 'FAST',
+ 'FETCH',
+ 'FIELDS',
+ 'FILE',
+ 'FIRST',
+ 'FIXED',
+ 'FLOAT',
+ 'FLOAT4',
+ 'FLOAT8',
+ 'FLUSH',
+ 'FOR',
+ 'FORCE',
+ 'FOREIGN',
+ 'FOUND',
+ 'FRAC_SECOND',
+ 'FROM',
+ 'FULL',
+ 'FULLTEXT',
+ 'FUNCTION',
+ 'GEOMETRY',
+ 'GEOMETRYCOLLECTION',
+ 'GET_FORMAT',
+ 'GLOBAL',
+ 'GOTO',
+ 'GRANT',
+ 'GRANTS',
+ 'GROUP',
+ 'HANDLER',
+ 'HASH',
+ 'HAVING',
+ 'HELP',
+ 'HIGH_PRIORITY',
+ 'HOSTS',
+ 'HOUR',
+ 'HOUR_MICROSECOND',
+ 'HOUR_MINUTE',
+ 'HOUR_SECOND',
+ 'IDENTIFIED',
+ 'IF',
+ 'IGNORE',
+ 'IMPORT',
+ 'IN',
+ 'INDEX',
+ 'INDEXES',
+ 'INFILE',
+ 'INNER',
+ 'INNOBASE',
+ 'INNODB',
+ 'INOUT',
+ 'INSENSITIVE',
+ 'INSERT',
+ 'INSERT_METHOD',
+ 'INT',
+ 'INT1',
+ 'INT2',
+ 'INT3',
+ 'INT4',
+ 'INT8',
+ 'INTEGER',
+ 'INTERVAL',
+ 'INTO',
+ 'INVOKER',
+ 'IO_THREAD',
+ 'IS',
+ 'ISOLATION',
+ 'ISSUER',
+ 'ITERATE',
+ 'JOIN',
+ 'KEY',
+ 'KEYS',
+ 'KILL',
+ 'LABEL',
+ 'LANGUAGE',
+ 'LAST',
+ 'LEADING',
+ 'LEAVE',
+ 'LEAVES',
+ 'LEFT',
+ 'LEVEL',
+ 'LIKE',
+ 'LIMIT',
+ 'LINEAR', // 5.1
+ 'LINES',
+ 'LINESTRING',
+ 'LOAD',
+ 'LOCAL',
+ 'LOCALTIME',
+ 'LOCALTIMESTAMP',
+ 'LOCK',
+ 'LOCKS',
+ 'LOGS',
+ 'LONG',
+ 'LONGBLOB',
+ 'LONGTEXT',
+ 'LOOP',
+ 'LOW_PRIORITY',
+ 'MASTER',
+ 'MASTER_CONNECT_RETRY',
+ 'MASTER_HOST',
+ 'MASTER_LOG_FILE',
+ 'MASTER_LOG_POS',
+ 'MASTER_PASSWORD',
+ 'MASTER_PORT',
+ 'MASTER_SERVER_ID',
+ 'MASTER_SSL',
+ 'MASTER_SSL_CA',
+ 'MASTER_SSL_CAPATH',
+ 'MASTER_SSL_CERT',
+ 'MASTER_SSL_CIPHER',
+ 'MASTER_SSL_KEY',
+ 'MASTER_USER',
+ 'MATCH',
+ 'MAX_CONNECTIONS_PER_HOUR',
+ 'MAX_QUERIES_PER_HOUR',
+ 'MAX_ROWS',
+ 'MAX_UPDATES_PER_HOUR',
+ 'MAX_USER_CONNECTIONS',
+ 'MEDIUM',
+ 'MEDIUMBLOB',
+ 'MEDIUMINT',
+ 'MEDIUMTEXT',
+ 'MERGE',
+ 'MICROSECOND',
+ 'MIDDLEINT',
+ 'MIGRATE',
+ 'MINUTE',
+ 'MINUTE_MICROSECOND',
+ 'MINUTE_SECOND',
+ 'MIN_ROWS',
+ 'MOD',
+ 'MODE',
+ 'MODIFIES',
+ 'MODIFY',
+ 'MONTH',
+ 'MULTILINESTRING',
+ 'MULTIPOINT',
+ 'MULTIPOLYGON',
+ 'MUTEX',
+ 'NAME',
+ 'NAMES',
+ 'NATIONAL',
+ 'NATURAL',
+ 'NCHAR',
+ 'NDB',
+ 'NDBCLUSTER',
+ 'NEW',
+ 'NEXT',
+ 'NO',
+ 'NONE',
+ 'NOT',
+ 'NO_WRITE_TO_BINLOG',
+ 'NULL',
+ 'NUMERIC',
+ 'NVARCHAR',
+ 'OFFSET',
+ 'OLD_PASSWORD',
+ 'ON',
+ 'ONE',
+ 'ONE_SHOT',
+ 'OPEN',
+ 'OPTIMIZE',
+ 'OPTION',
+ 'OPTIONALLY',
+ 'OR',
+ 'ORDER',
+ 'OUT',
+ 'OUTER',
+ 'OUTFILE',
+ 'PACK_KEYS',
+ 'PARTIAL',
+ 'PASSWORD',
+ 'PHASE',
+ 'POINT',
+ 'POLYGON',
+ 'PRECISION',
+ 'PREPARE',
+ 'PREV',
+ 'PRIMARY',
+ 'PRIVILEGES',
+ 'PROCEDURE',
+ 'PROCESSLIST',
+ 'PURGE',
+ 'QUARTER',
+ 'QUERY',
+ 'QUICK',
+ 'RAID0',
+ 'RAID_CHUNKS',
+ 'RAID_CHUNKSIZE',
+ 'RAID_TYPE',
+ 'RANGE', // 5.1
+ 'READ',
+ 'READ_ONLY', // 5.1
+ 'READ_WRITE', // 5.1
+ 'READS',
+ 'REAL',
+ 'RECOVER',
+ 'REDUNDANT',
+ 'REFERENCES',
+ 'REGEXP',
+ 'RELAY_LOG_FILE',
+ 'RELAY_LOG_POS',
+ 'RELAY_THREAD',
+ 'RELEASE',
+ 'RELOAD',
+ 'RENAME',
+ 'REPAIR',
+ 'REPEAT',
+ 'REPEATABLE',
+ 'REPLACE',
+ 'REPLICATION',
+ 'REQUIRE',
+ 'RESET',
+ 'RESTORE',
+ 'RESTRICT',
+ 'RESUME',
+ 'RETURN',
+ 'RETURNS',
+ 'REVOKE',
+ 'RIGHT',
+ 'RLIKE',
+ 'ROLLBACK',
+ 'ROLLUP',
+ 'ROUTINE',
+ 'ROW',
+ 'ROWS',
+ 'ROW_FORMAT',
+ 'RTREE',
+ 'SAVEPOINT',
+ 'SCHEMA',
+ 'SCHEMAS',
+ 'SECOND',
+ 'SECOND_MICROSECOND',
+ 'SECURITY',
+ 'SELECT',
+ 'SENSITIVE',
+ 'SEPARATOR',
+ 'SERIAL',
+ 'SERIALIZABLE',
+ 'SESSION',
+ 'SET',
+ 'SHARE',
+ 'SHOW',
+ 'SHUTDOWN',
+ 'SIGNED',
+ 'SIMPLE',
+ 'SLAVE',
+ 'SMALLINT',
+ 'SNAPSHOT',
+ 'SOME',
+ 'SONAME',
+ 'SOUNDS',
+ 'SPATIAL',
+ 'SPECIFIC',
+ 'SQL',
+ 'SQLEXCEPTION',
+ 'SQLSTATE',
+ 'SQLWARNING',
+ 'SQL_BIG_RESULT',
+ 'SQL_BUFFER_RESULT',
+ 'SQL_CACHE',
+ 'SQL_CALC_FOUND_ROWS',
+ 'SQL_NO_CACHE',
+ 'SQL_SMALL_RESULT',
+ 'SQL_THREAD',
+ 'SQL_TSI_DAY',
+ 'SQL_TSI_FRAC_SECOND',
+ 'SQL_TSI_HOUR',
+ 'SQL_TSI_MINUTE',
+ 'SQL_TSI_MONTH',
+ 'SQL_TSI_QUARTER',
+ 'SQL_TSI_SECOND',
+ 'SQL_TSI_WEEK',
+ 'SQL_TSI_YEAR',
+ 'SSL',
+ 'START',
+ 'STARTING',
+ 'STATUS',
+ 'STOP',
+ 'STORAGE',
+ 'STRAIGHT_JOIN',
+ 'STRING',
+ 'STRIPED',
+ 'SUBJECT',
+ 'SUPER',
+ 'SUSPEND',
+ 'TABLE',
+ 'TABLES',
+ 'TABLESPACE',
+ 'TEMPORARY',
+ 'TEMPTABLE',
+ 'TERMINATED',
+ 'TEXT',
+ 'THEN',
+ 'TIME',
+ 'TIMESTAMP',
+ 'TIMESTAMPADD',
+ 'TIMESTAMPDIFF',
+ 'TINYBLOB',
+ 'TINYINT',
+ 'TINYTEXT',
+ 'TO',
+ 'TRAILING',
+ 'TRANSACTION',
+ 'TRIGGER',
+ 'TRIGGERS',
+ 'TRUE',
+ 'TRUNCATE',
+ 'TYPE',
+ 'TYPES',
+ 'UNCOMMITTED',
+ 'UNDEFINED',
+ 'UNDO',
+ 'UNICODE',
+ 'UNION',
+ 'UNIQUE',
+ 'UNKNOWN',
+ 'UNLOCK',
+ 'UNSIGNED',
+ 'UNTIL',
+ 'UPDATE',
+ 'USAGE',
+ 'USE',
+ 'USER',
+ 'USER_RESOURCES',
+ 'USE_FRM',
+ 'USING',
+ 'UTC_DATE',
+ 'UTC_TIME',
+ 'UTC_TIMESTAMP',
+ 'VALUE',
+ 'VALUES',
+ 'VARBINARY',
+ 'VARCHAR',
+ 'VARCHARACTER',
+ 'VARIABLES',
+ 'VARYING',
+ 'VIEW',
+ 'WARNINGS',
+ 'WEEK',
+ 'WHEN',
+ 'WHERE',
+ 'WHILE',
+ 'WITH',
+ 'WORK',
+ 'WRITE',
+ 'X509',
+ 'XA',
+ 'XOR',
+ 'YEAR',
+ 'YEAR_MONTH',
+ 'ZEROFILL'
+);
+/**
+ * count($PMA_SQPdata_forbidden_word);
+ *
+ * @global integer MySQL forbidden words count
+ */
+$PMA_SQPdata_forbidden_word_cnt = 483;
+
+/**
+ * the MySQL column/data types
+ *
+ * @see http://dev.mysql.com/doc/refman/5.1/en/data-types.html
+ * @see http://dev.mysql.com/doc/refman/5.1/en/mysql-spatial-datatypes.html
+ *
+ * @global array MySQL column types
+ */
+$PMA_SQPdata_column_type = array (
+ 'BIGINT',
+ 'BINARY',
+ 'BIT',
+ 'BLOB',
+ 'BOOL',
+ 'BOOLEAN', // numeric-type-overview.html
+ 'CHAR',
+ 'CHARACTER',
+ 'DATE',
+ 'DATETIME',
+ 'DEC',
+ 'DECIMAL',
+ 'DOUBLE',
+ 'ENUM',
+ 'FLOAT',
+ 'FLOAT4',
+ 'FLOAT8',
+ 'GEOMETRY', // spatial
+ 'GEOMETRYCOLLECTION', // spatial
+ 'INT',
+ 'INT1',
+ 'INT2',
+ 'INT3',
+ 'INT4',
+ 'INT8',
+ 'INTEGER',
+ 'LINESTRING', // spatial
+ 'LONG',
+ 'LONGBLOB',
+ 'LONGTEXT',
+ 'MEDIUMBLOB',
+ 'MEDIUMINT',
+ 'MEDIUMTEXT',
+ 'MIDDLEINT',
+ 'MULTILINESTRING', // spatial
+ 'MULTIPOINT', // spatial
+ 'MULTIPOLYGON', // spatial
+ 'NCHAR',
+ 'NUMERIC',
+ 'POINT', // spatial
+ 'POLYGON', // spatial
+ 'REAL',
+ 'SERIAL', // alsias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
+ 'SET',
+ 'SMALLINT',
+ 'TEXT',
+ 'TIME',
+ 'TIMESTAMP',
+ 'TINYBLOB',
+ 'TINYINT',
+ 'TINYTEXT',
+ 'VARBINARY',
+ 'VARCHAR',
+ 'YEAR'
+);
+/**
+ * $PMA_SQPdata_column_type_cnt = count($PMA_SQPdata_column_type);
+ *
+ * @global integer MySQL column types count
+ */
+$PMA_SQPdata_column_type_cnt = 54;
+
+/*
+ * check counts
+foreach ($GLOBALS as $n => $a) {
+ echo is_array($a) ? $n . ': ' . count($a) . '<br />' : '';
+}
+ */
+?>
diff --git a/libraries/sqlparser.lib.php b/libraries/sqlparser.lib.php
new file mode 100644
index 0000000000..ee3d6dac77
--- /dev/null
+++ b/libraries/sqlparser.lib.php
@@ -0,0 +1,2511 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/** SQL Parser Functions for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * These functions define an SQL parser system, capable of understanding and
+ * extracting data from a MySQL type SQL query.
+ *
+ * The basic procedure for using the new SQL parser:
+ * On any page that needs to extract data from a query or to pretty-print a
+ * query, you need code like this up at the top:
+ *
+ * ($sql contains the query)
+ * $parsed_sql = PMA_SQP_parse($sql);
+ *
+ * If you want to extract data from it then, you just need to run
+ * $sql_info = PMA_SQP_analyze($parsed_sql);
+ *
+ * lem9: See comments in PMA_SQP_analyze for the returned info
+ * from the analyzer.
+ *
+ * If you want a pretty-printed version of the query, do:
+ * $string = PMA_SQP_formatHtml($parsed_sql);
+ * (note that that you need to have syntax.css.php included somehow in your
+ * page for it to work, I recommend '<link rel="stylesheet" type="text/css"
+ * href="syntax.css.php" />' at the moment.)
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Minimum inclusion? (i.e. for the stylesheet builder)
+ */
+if (! defined('PMA_MINIMUM_COMMON')) {
+ /**
+ * Include the string library as we use it heavily
+ */
+ require_once './libraries/string.lib.php';
+
+ /**
+ * Include data for the SQL Parser
+ */
+ require_once './libraries/sqlparser.data.php';
+ require_once './libraries/mysql_charsets.lib.php';
+ if (!isset($mysql_charsets)) {
+ $mysql_charsets = array();
+ $mysql_charsets_count = 0;
+ $mysql_collations_flat = array();
+ $mysql_collations_count = 0;
+ }
+
+ if (!defined('DEBUG_TIMING')) {
+ // currently we don't need the $pos (token position in query)
+ // for other purposes than LIMIT clause verification,
+ // so many calls to this function do not include the 4th parameter
+ function PMA_SQP_arrayAdd(&$arr, $type, $data, &$arrsize, $pos = 0)
+ {
+ $arr[] = array('type' => $type, 'data' => $data, 'pos' => $pos);
+ $arrsize++;
+ } // end of the "PMA_SQP_arrayAdd()" function
+ } else {
+ function PMA_SQP_arrayAdd(&$arr, $type, $data, &$arrsize, $pos = 0)
+ {
+ global $timer;
+
+ $t = $timer;
+ $arr[] = array('type' => $type, 'data' => $data, 'pos' => $pos, 'time' => $t);
+ $timer = microtime();
+ $arrsize++;
+ } // end of the "PMA_SQP_arrayAdd()" function
+ } // end if... else...
+
+
+ /**
+ * Reset the error variable for the SQL parser
+ *
+ * @access public
+ */
+ // Added, Robbat2 - 13 Janurary 2003, 2:59PM
+ function PMA_SQP_resetError()
+ {
+ global $SQP_errorString;
+ $SQP_errorString = '';
+ unset($SQP_errorString);
+ }
+
+ /**
+ * Get the contents of the error variable for the SQL parser
+ *
+ * @return string Error string from SQL parser
+ *
+ * @access public
+ */
+ // Added, Robbat2 - 13 Janurary 2003, 2:59PM
+ function PMA_SQP_getErrorString()
+ {
+ global $SQP_errorString;
+ return isset($SQP_errorString) ? $SQP_errorString : '';
+ }
+
+ /**
+ * Check if the SQL parser hit an error
+ *
+ * @return boolean error state
+ *
+ * @access public
+ */
+ // Added, Robbat2 - 13 Janurary 2003, 2:59PM
+ function PMA_SQP_isError()
+ {
+ global $SQP_errorString;
+ return isset($SQP_errorString) && !empty($SQP_errorString);
+ }
+
+ /**
+ * Set an error message for the system
+ *
+ * @param string The error message
+ * @param string The failing SQL query
+ *
+ * @access private
+ * @scope SQL Parser internal
+ */
+ // Revised, Robbat2 - 13 Janurary 2003, 2:59PM
+ function PMA_SQP_throwError($message, $sql)
+ {
+ global $SQP_errorString;
+ $SQP_errorString = '<p>'.$GLOBALS['strSQLParserUserError'] . '</p>' . "\n"
+ . '<pre>' . "\n"
+ . 'ERROR: ' . $message . "\n"
+ . 'SQL: ' . htmlspecialchars($sql) . "\n"
+ . '</pre>' . "\n";
+
+ } // end of the "PMA_SQP_throwError()" function
+
+
+ /**
+ * Do display the bug report
+ *
+ * @param string The error message
+ * @param string The failing SQL query
+ *
+ * @access public
+ */
+ function PMA_SQP_bug($message, $sql)
+ {
+ global $SQP_errorString;
+ $debugstr = 'ERROR: ' . $message . "\n";
+ $debugstr .= 'SVN: $Id$' . "\n";
+ $debugstr .= 'MySQL: '.PMA_MYSQL_STR_VERSION . "\n";
+ $debugstr .= 'USR OS, AGENT, VER: ' . PMA_USR_OS . ' ' . PMA_USR_BROWSER_AGENT . ' ' . PMA_USR_BROWSER_VER . "\n";
+ $debugstr .= 'PMA: ' . PMA_VERSION . "\n";
+ $debugstr .= 'PHP VER,OS: ' . PMA_PHP_STR_VERSION . ' ' . PHP_OS . "\n";
+ $debugstr .= 'LANG: ' . $GLOBALS['lang'] . "\n";
+ $debugstr .= 'SQL: ' . htmlspecialchars($sql);
+
+ $encodedstr = $debugstr;
+ if (@function_exists('gzcompress')) {
+ $encodedstr = gzcompress($debugstr, 9);
+ }
+ $encodedstr = preg_replace("/(\015\012)|(\015)|(\012)/", '<br />' . "\n", chunk_split(base64_encode($encodedstr)));
+
+ $SQP_errorString .= $GLOBALS['strSQLParserBugMessage'] . '<br />' . "\n"
+ . '----' . $GLOBALS['strBeginCut'] . '----' . '<br />' . "\n"
+ . $encodedstr . "\n"
+ . '----' . $GLOBALS['strEndCut'] . '----' . '<br />' . "\n";
+
+ $SQP_errorString .= '----' . $GLOBALS['strBeginRaw'] . '----<br />' . "\n"
+ . '<pre>' . "\n"
+ . $debugstr
+ . '</pre>' . "\n"
+ . '----' . $GLOBALS['strEndRaw'] . '----<br />' . "\n";
+
+ } // end of the "PMA_SQP_bug()" function
+
+
+ /**
+ * Parses the SQL queries
+ *
+ * @param string The SQL query list
+ *
+ * @return mixed Most of times, nothing...
+ *
+ * @global array The current PMA configuration
+ * @global array MySQL column attributes
+ * @global array MySQL reserved words
+ * @global array MySQL column types
+ * @global array MySQL function names
+ * @global integer MySQL column attributes count
+ * @global integer MySQL reserved words count
+ * @global integer MySQL column types count
+ * @global integer MySQL function names count
+ * @global array List of available character sets
+ * @global array List of available collations
+ * @global integer Character sets count
+ * @global integer Collations count
+ *
+ * @access public
+ */
+ function PMA_SQP_parse($sql)
+ {
+ global $cfg;
+ global $PMA_SQPdata_column_attrib, $PMA_SQPdata_reserved_word, $PMA_SQPdata_column_type, $PMA_SQPdata_function_name,
+ $PMA_SQPdata_column_attrib_cnt, $PMA_SQPdata_reserved_word_cnt, $PMA_SQPdata_column_type_cnt, $PMA_SQPdata_function_name_cnt;
+ global $mysql_charsets, $mysql_collations_flat, $mysql_charsets_count, $mysql_collations_count;
+ global $PMA_SQPdata_forbidden_word, $PMA_SQPdata_forbidden_word_cnt;
+
+ // rabus: Convert all line feeds to Unix style
+ $sql = str_replace("\r\n", "\n", $sql);
+ $sql = str_replace("\r", "\n", $sql);
+
+ $len = PMA_strlen($sql);
+ if ($len == 0) {
+ return array();
+ }
+
+ $sql_array = array();
+ $sql_array['raw'] = $sql;
+ $count1 = 0;
+ $count2 = 0;
+ $punct_queryend = ';';
+ $punct_qualifier = '.';
+ $punct_listsep = ',';
+ $punct_level_plus = '(';
+ $punct_level_minus = ')';
+ $punct_user = '@';
+ $digit_floatdecimal = '.';
+ $digit_hexset = 'x';
+ $bracket_list = '()[]{}';
+ $allpunct_list = '-,;:!?/.^~\*&%+<=>|';
+ $allpunct_list_pair = array (
+ 0 => '!=',
+ 1 => '&&',
+ 2 => ':=',
+ 3 => '<<',
+ 4 => '<=',
+ 5 => '<=>',
+ 6 => '<>',
+ 7 => '>=',
+ 8 => '>>',
+ 9 => '||'
+ );
+ $allpunct_list_pair_size = 10; //count($allpunct_list_pair);
+ $quote_list = '\'"`';
+ $arraysize = 0;
+
+ $previous_was_space = false;
+ $this_was_space = false;
+ $previous_was_bracket = false;
+ $this_was_bracket = false;
+ $previous_was_punct = false;
+ $this_was_punct = false;
+ $previous_was_listsep = false;
+ $this_was_listsep = false;
+ $previous_was_quote = false;
+ $this_was_quote = false;
+
+ while ($count2 < $len) {
+ $c = $GLOBALS['PMA_substr']($sql, $count2, 1);
+ $count1 = $count2;
+
+ $previous_was_space = $this_was_space;
+ $this_was_space = false;
+ $previous_was_bracket = $this_was_bracket;
+ $this_was_bracket = false;
+ $previous_was_punct = $this_was_punct;
+ $this_was_punct = false;
+ $previous_was_listsep = $this_was_listsep;
+ $this_was_listsep = false;
+ $previous_was_quote = $this_was_quote;
+ $this_was_quote = false;
+
+ if (($c == "\n")) {
+ $this_was_space = true;
+ $count2++;
+ PMA_SQP_arrayAdd($sql_array, 'white_newline', '', $arraysize);
+ continue;
+ }
+
+ // Checks for white space
+ if ($GLOBALS['PMA_STR_isSpace']($c)) {
+ $this_was_space = true;
+ $count2++;
+ continue;
+ }
+
+ // Checks for comment lines.
+ // MySQL style #
+ // C style /* */
+ // ANSI style --
+ if (($c == '#')
+ || (($count2 + 1 < $len) && ($c == '/') && ($GLOBALS['PMA_substr']($sql, $count2 + 1, 1) == '*'))
+ || (($count2 + 2 == $len) && ($c == '-') && ($GLOBALS['PMA_substr']($sql, $count2 + 1, 1) == '-'))
+ || (($count2 + 2 < $len) && ($c == '-') && ($GLOBALS['PMA_substr']($sql, $count2 + 1, 1) == '-') && (($GLOBALS['PMA_substr']($sql, $count2 + 2, 1) <= ' ')))) {
+ $count2++;
+ $pos = 0;
+ $type = 'bad';
+ switch ($c) {
+ case '#':
+ $type = 'mysql';
+ case '-':
+ $type = 'ansi';
+ $pos = $GLOBALS['PMA_strpos']($sql, "\n", $count2);
+ break;
+ case '/':
+ $type = 'c';
+ $pos = $GLOBALS['PMA_strpos']($sql, '*/', $count2);
+ $pos += 2;
+ break;
+ default:
+ break;
+ } // end switch
+ $count2 = ($pos < $count2) ? $len : $pos;
+ $str = $GLOBALS['PMA_substr']($sql, $count1, $count2 - $count1);
+ PMA_SQP_arrayAdd($sql_array, 'comment_' . $type, $str, $arraysize);
+ continue;
+ } // end if
+
+ // Checks for something inside quotation marks
+ if ($GLOBALS['PMA_strpos']($quote_list, $c) !== false) {
+ $startquotepos = $count2;
+ $quotetype = $c;
+ $count2++;
+ $escaped = FALSE;
+ $escaped_escaped = FALSE;
+ $pos = $count2;
+ $oldpos = 0;
+ do {
+ $oldpos = $pos;
+ $pos = $GLOBALS['PMA_strpos'](' ' . $sql, $quotetype, $oldpos + 1) - 1;
+ // ($pos === FALSE)
+ if ($pos < 0) {
+ $debugstr = $GLOBALS['strSQPBugUnclosedQuote'] . ' @ ' . $startquotepos. "\n"
+ . 'STR: ' . htmlspecialchars($quotetype);
+ PMA_SQP_throwError($debugstr, $sql);
+ return $sql;
+ }
+
+ // If the quote is the first character, it can't be
+ // escaped, so don't do the rest of the code
+ if ($pos == 0) {
+ break;
+ }
+
+ // Checks for MySQL escaping using a \
+ // And checks for ANSI escaping using the $quotetype character
+ if (($pos < $len) && PMA_STR_charIsEscaped($sql, $pos)) {
+ $pos ++;
+ continue;
+ } elseif (($pos + 1 < $len) && ($GLOBALS['PMA_substr']($sql, $pos, 1) == $quotetype) && ($GLOBALS['PMA_substr']($sql, $pos + 1, 1) == $quotetype)) {
+ $pos = $pos + 2;
+ continue;
+ } else {
+ break;
+ }
+ } while ($len > $pos); // end do
+
+ $count2 = $pos;
+ $count2++;
+ $type = 'quote_';
+ switch ($quotetype) {
+ case '\'':
+ $type .= 'single';
+ $this_was_quote = true;
+ break;
+ case '"':
+ $type .= 'double';
+ $this_was_quote = true;
+ break;
+ case '`':
+ $type .= 'backtick';
+ $this_was_quote = true;
+ break;
+ default:
+ break;
+ } // end switch
+ $data = $GLOBALS['PMA_substr']($sql, $count1, $count2 - $count1);
+ PMA_SQP_arrayAdd($sql_array, $type, $data, $arraysize);
+ continue;
+ }
+
+ // Checks for brackets
+ if ($GLOBALS['PMA_strpos']($bracket_list, $c) !== false) {
+ // All bracket tokens are only one item long
+ $this_was_bracket = true;
+ $count2++;
+ $type_type = '';
+ if ($GLOBALS['PMA_strpos']('([{', $c) !== false) {
+ $type_type = 'open';
+ } else {
+ $type_type = 'close';
+ }
+
+ $type_style = '';
+ if ($GLOBALS['PMA_strpos']('()', $c) !== false) {
+ $type_style = 'round';
+ } elseif ($GLOBALS['PMA_strpos']('[]', $c) !== false) {
+ $type_style = 'square';
+ } else {
+ $type_style = 'curly';
+ }
+
+ $type = 'punct_bracket_' . $type_type . '_' . $type_style;
+ PMA_SQP_arrayAdd($sql_array, $type, $c, $arraysize);
+ continue;
+ }
+
+ /* DEBUG
+ echo '<pre>1';
+ var_dump(PMA_STR_isSqlIdentifier($c, false));
+ var_dump($c == '@');
+ var_dump($c == '.');
+ var_dump(PMA_STR_isDigit(PMA_substr($sql, $count2 + 1, 1)));
+ var_dump($previous_was_space);
+ var_dump($previous_was_bracket);
+ var_dump($previous_was_listsep);
+ echo '</pre>';
+ */
+
+ // Checks for identifier (alpha or numeric)
+ if (PMA_STR_isSqlIdentifier($c, false)
+ || $c == '@'
+ || ($c == '.'
+ && $GLOBALS['PMA_STR_isDigit']($GLOBALS['PMA_substr']($sql, $count2 + 1, 1))
+ && ($previous_was_space || $previous_was_bracket || $previous_was_listsep))) {
+
+ /* DEBUG
+ echo PMA_substr($sql, $count2);
+ echo '<hr />';
+ */
+
+ $count2++;
+
+ /**
+ * @todo a @ can also be present in expressions like
+ * FROM 'user'@'%' or TO 'user'@'%'
+ * in this case, the @ is wrongly marked as alpha_variable
+ */
+ $is_identifier = $previous_was_punct;
+ $is_sql_variable = $c == '@' && ! $previous_was_quote;
+ $is_user = $c == '@' && $previous_was_quote;
+ $is_digit = !$is_identifier && !$is_sql_variable && $GLOBALS['PMA_STR_isDigit']($c);
+ $is_hex_digit = $is_digit && $c == '0' && $count2 < $len && $GLOBALS['PMA_substr']($sql, $count2, 1) == 'x';
+ $is_float_digit = $c == '.';
+ $is_float_digit_exponent = FALSE;
+
+ /* DEBUG
+ echo '<pre>2';
+ var_dump($is_identifier);
+ var_dump($is_sql_variable);
+ var_dump($is_digit);
+ var_dump($is_float_digit);
+ echo '</pre>';
+ */
+
+ // Nijel: Fast skip is especially needed for huge BLOB data, requires PHP at least 4.3.0:
+ if ($is_hex_digit) {
+ $count2++;
+ $pos = strspn($sql, '0123456789abcdefABCDEF', $count2);
+ if ($pos > $count2) {
+ $count2 = $pos;
+ }
+ unset($pos);
+ } elseif ($is_digit) {
+ $pos = strspn($sql, '0123456789', $count2);
+ if ($pos > $count2) {
+ $count2 = $pos;
+ }
+ unset($pos);
+ }
+
+ while (($count2 < $len) && PMA_STR_isSqlIdentifier($GLOBALS['PMA_substr']($sql, $count2, 1), ($is_sql_variable || $is_digit))) {
+ $c2 = $GLOBALS['PMA_substr']($sql, $count2, 1);
+ if ($is_sql_variable && ($c2 == '.')) {
+ $count2++;
+ continue;
+ }
+ if ($is_digit && (!$is_hex_digit) && ($c2 == '.')) {
+ $count2++;
+ if (!$is_float_digit) {
+ $is_float_digit = TRUE;
+ continue;
+ } else {
+ $debugstr = $GLOBALS['strSQPBugInvalidIdentifer'] . ' @ ' . ($count1+1) . "\n"
+ . 'STR: ' . htmlspecialchars(PMA_substr($sql, $count1, $count2 - $count1));
+ PMA_SQP_throwError($debugstr, $sql);
+ return $sql;
+ }
+ }
+ if ($is_digit && (!$is_hex_digit) && (($c2 == 'e') || ($c2 == 'E'))) {
+ if (!$is_float_digit_exponent) {
+ $is_float_digit_exponent = TRUE;
+ $is_float_digit = TRUE;
+ $count2++;
+ continue;
+ } else {
+ $is_digit = FALSE;
+ $is_float_digit = FALSE;
+ }
+ }
+ if (($is_hex_digit && PMA_STR_isHexDigit($c2)) || ($is_digit && $GLOBALS['PMA_STR_isDigit']($c2))) {
+ $count2++;
+ continue;
+ } else {
+ $is_digit = FALSE;
+ $is_hex_digit = FALSE;
+ }
+
+ $count2++;
+ } // end while
+
+ $l = $count2 - $count1;
+ $str = $GLOBALS['PMA_substr']($sql, $count1, $l);
+
+ $type = '';
+ if ($is_digit || $is_float_digit || $is_hex_digit) {
+ $type = 'digit';
+ if ($is_float_digit) {
+ $type .= '_float';
+ } elseif ($is_hex_digit) {
+ $type .= '_hex';
+ } else {
+ $type .= '_integer';
+ }
+ } elseif ($is_user) {
+ $type = 'punct_user';
+ } elseif ($is_sql_variable != FALSE) {
+ $type = 'alpha_variable';
+ } else {
+ $type = 'alpha';
+ } // end if... else....
+ PMA_SQP_arrayAdd($sql_array, $type, $str, $arraysize, $count2);
+
+ continue;
+ }
+
+ // Checks for punct
+ if ($GLOBALS['PMA_strpos']($allpunct_list, $c) !== false) {
+ while (($count2 < $len) && $GLOBALS['PMA_strpos']($allpunct_list, $GLOBALS['PMA_substr']($sql, $count2, 1)) !== false) {
+ $count2++;
+ }
+ $l = $count2 - $count1;
+ if ($l == 1) {
+ $punct_data = $c;
+ } else {
+ $punct_data = $GLOBALS['PMA_substr']($sql, $count1, $l);
+ }
+
+ // Special case, sometimes, althought two characters are
+ // adjectent directly, they ACTUALLY need to be seperate
+ /* DEBUG
+ echo '<pre>';
+ var_dump($l);
+ var_dump($punct_data);
+ echo '</pre>';
+ */
+
+ if ($l == 1) {
+ $t_suffix = '';
+ switch ($punct_data) {
+ case $punct_queryend:
+ $t_suffix = '_queryend';
+ break;
+ case $punct_qualifier:
+ $t_suffix = '_qualifier';
+ $this_was_punct = true;
+ break;
+ case $punct_listsep:
+ $this_was_listsep = true;
+ $t_suffix = '_listsep';
+ break;
+ default:
+ break;
+ }
+ PMA_SQP_arrayAdd($sql_array, 'punct' . $t_suffix, $punct_data, $arraysize);
+ } elseif (PMA_STR_binarySearchInArr($punct_data, $allpunct_list_pair, $allpunct_list_pair_size)) {
+ // Ok, we have one of the valid combined punct expressions
+ PMA_SQP_arrayAdd($sql_array, 'punct', $punct_data, $arraysize);
+ } else {
+ // Bad luck, lets split it up more
+ $first = $punct_data[0];
+ $first2 = $punct_data[0] . $punct_data[1];
+ $last2 = $punct_data[$l - 2] . $punct_data[$l - 1];
+ $last = $punct_data[$l - 1];
+ if (($first == ',') || ($first == ';') || ($first == '.') || ($first == '*')) {
+ $count2 = $count1 + 1;
+ $punct_data = $first;
+ } elseif (($last2 == '/*') || (($last2 == '--') && ($count2 == $len || $GLOBALS['PMA_substr']($sql, $count2, 1) <= ' '))) {
+ $count2 -= 2;
+ $punct_data = $GLOBALS['PMA_substr']($sql, $count1, $count2 - $count1);
+ } elseif (($last == '-') || ($last == '+') || ($last == '!')) {
+ $count2--;
+ $punct_data = $GLOBALS['PMA_substr']($sql, $count1, $count2 - $count1);
+ /**
+ * @todo for negation operator, split in 2 tokens ?
+ * "select x&~1 from t"
+ * becomes "select x & ~ 1 from t" ?
+ */
+
+ } elseif ($last != '~') {
+ $debugstr = $GLOBALS['strSQPBugUnknownPunctuation'] . ' @ ' . ($count1+1) . "\n"
+ . 'STR: ' . htmlspecialchars($punct_data);
+ PMA_SQP_throwError($debugstr, $sql);
+ return $sql;
+ }
+ PMA_SQP_arrayAdd($sql_array, 'punct', $punct_data, $arraysize);
+ continue;
+ } // end if... elseif... else
+ continue;
+ }
+
+ // DEBUG
+ $count2++;
+
+ $debugstr = 'C1 C2 LEN: ' . $count1 . ' ' . $count2 . ' ' . $len . "\n"
+ . 'STR: ' . $GLOBALS['PMA_substr']($sql, $count1, $count2 - $count1) . "\n";
+ PMA_SQP_bug($debugstr, $sql);
+ return $sql;
+
+ } // end while ($count2 < $len)
+
+ /*
+ echo '<pre>';
+ print_r($sql_array);
+ echo '</pre>';
+ */
+
+ if ($arraysize > 0) {
+ $t_next = $sql_array[0]['type'];
+ $t_prev = '';
+ $t_bef_prev = '';
+ $t_cur = '';
+ $d_next = $sql_array[0]['data'];
+ $d_prev = '';
+ $d_bef_prev = '';
+ $d_cur = '';
+ $d_next_upper = $t_next == 'alpha' ? strtoupper($d_next) : $d_next;
+ $d_prev_upper = '';
+ $d_bef_prev_upper = '';
+ $d_cur_upper = '';
+ }
+
+ for ($i = 0; $i < $arraysize; $i++) {
+ $t_bef_prev = $t_prev;
+ $t_prev = $t_cur;
+ $t_cur = $t_next;
+ $d_bef_prev = $d_prev;
+ $d_prev = $d_cur;
+ $d_cur = $d_next;
+ $d_bef_prev_upper = $d_prev_upper;
+ $d_prev_upper = $d_cur_upper;
+ $d_cur_upper = $d_next_upper;
+ if (($i + 1) < $arraysize) {
+ $t_next = $sql_array[$i + 1]['type'];
+ $d_next = $sql_array[$i + 1]['data'];
+ $d_next_upper = $t_next == 'alpha' ? strtoupper($d_next) : $d_next;
+ } else {
+ $t_next = '';
+ $d_next = '';
+ $d_next_upper = '';
+ }
+
+ //DEBUG echo "[prev: <strong>".$d_prev."</strong> ".$t_prev."][cur: <strong>".$d_cur."</strong> ".$t_cur."][next: <strong>".$d_next."</strong> ".$t_next."]<br />";
+
+ if ($t_cur == 'alpha') {
+ $t_suffix = '_identifier';
+ if (($t_next == 'punct_qualifier') || ($t_prev == 'punct_qualifier')) {
+ $t_suffix = '_identifier';
+ } elseif (($t_next == 'punct_bracket_open_round')
+ && PMA_STR_binarySearchInArr($d_cur_upper, $PMA_SQPdata_function_name, $PMA_SQPdata_function_name_cnt)) {
+ /**
+ * @todo 2005-10-16: in the case of a CREATE TABLE containing
+ * a TIMESTAMP, since TIMESTAMP() is also a function, it's
+ * found here and the token is wrongly marked as alpha_functionName.
+ * But we compensate for this when analysing for timestamp_not_null
+ * later in this script.
+ *
+ * Same applies to CHAR vs. CHAR() function.
+ */
+ $t_suffix = '_functionName';
+ /* There are functions which might be as well column types */
+ } elseif (PMA_STR_binarySearchInArr($d_cur_upper, $PMA_SQPdata_column_type, $PMA_SQPdata_column_type_cnt)) {
+ $t_suffix = '_columnType';
+
+ /**
+ * Temporary fix for BUG #621357
+ *
+ * @todo FIX PROPERLY NEEDS OVERHAUL OF SQL TOKENIZER
+ */
+ if ($d_cur_upper == 'SET' && $t_next != 'punct_bracket_open_round') {
+ $t_suffix = '_reservedWord';
+ }
+ //END OF TEMPORARY FIX
+
+ // CHARACTER is a synonym for CHAR, but can also be meant as
+ // CHARACTER SET. In this case, we have a reserved word.
+ if ($d_cur_upper == 'CHARACTER' && $d_next_upper == 'SET') {
+ $t_suffix = '_reservedWord';
+ }
+
+ // experimental
+ // current is a column type, so previous must not be
+ // a reserved word but an identifier
+ // CREATE TABLE SG_Persons (first varchar(64))
+
+ //if ($sql_array[$i-1]['type'] =='alpha_reservedWord') {
+ // $sql_array[$i-1]['type'] = 'alpha_identifier';
+ //}
+
+ } elseif (PMA_STR_binarySearchInArr($d_cur_upper, $PMA_SQPdata_reserved_word, $PMA_SQPdata_reserved_word_cnt)) {
+ $t_suffix = '_reservedWord';
+ } elseif (PMA_STR_binarySearchInArr($d_cur_upper, $PMA_SQPdata_column_attrib, $PMA_SQPdata_column_attrib_cnt)) {
+ $t_suffix = '_columnAttrib';
+ // INNODB is a MySQL table type, but in "SHOW INNODB STATUS",
+ // it should be regarded as a reserved word.
+ if ($d_cur_upper == 'INNODB' && $d_prev_upper == 'SHOW' && $d_next_upper == 'STATUS') {
+ $t_suffix = '_reservedWord';
+ }
+
+ if ($d_cur_upper == 'DEFAULT' && $d_next_upper == 'CHARACTER') {
+ $t_suffix = '_reservedWord';
+ }
+ // Binary as character set
+ if ($d_cur_upper == 'BINARY' && (
+ ($d_bef_prev_upper == 'CHARACTER' && $d_prev_upper == 'SET')
+ || ($d_bef_prev_upper == 'SET' && $d_prev_upper == '=')
+ || ($d_bef_prev_upper == 'CHARSET' && $d_prev_upper == '=')
+ || $d_prev_upper == 'CHARSET'
+ ) && PMA_STR_binarySearchInArr($d_cur, $mysql_charsets, count($mysql_charsets))) {
+ $t_suffix = '_charset';
+ }
+ } elseif (PMA_STR_binarySearchInArr($d_cur, $mysql_charsets, $mysql_charsets_count)
+ || PMA_STR_binarySearchInArr($d_cur, $mysql_collations_flat, $mysql_collations_count)
+ || ($d_cur{0} == '_' && PMA_STR_binarySearchInArr(substr($d_cur, 1), $mysql_charsets, $mysql_charsets_count))) {
+ $t_suffix = '_charset';
+ } else {
+ // Do nothing
+ }
+ // check if present in the list of forbidden words
+ if ($t_suffix == '_reservedWord' && PMA_STR_binarySearchInArr($d_cur_upper, $PMA_SQPdata_forbidden_word, $PMA_SQPdata_forbidden_word_cnt)) {
+ $sql_array[$i]['forbidden'] = TRUE;
+ } else {
+ $sql_array[$i]['forbidden'] = FALSE;
+ }
+ $sql_array[$i]['type'] .= $t_suffix;
+ }
+ } // end for
+
+ // Stores the size of the array inside the array, as count() is a slow
+ // operation.
+ $sql_array['len'] = $arraysize;
+
+ // DEBUG echo 'After parsing<pre>'; print_r($sql_array); echo '</pre>';
+ // Sends the data back
+ return $sql_array;
+ } // end of the "PMA_SQP_parse()" function
+
+ /**
+ * Checks for token types being what we want...
+ *
+ * @param string String of type that we have
+ * @param string String of type that we want
+ *
+ * @return boolean result of check
+ *
+ * @access private
+ */
+ function PMA_SQP_typeCheck($toCheck, $whatWeWant)
+ {
+ $typeSeperator = '_';
+ if (strcmp($whatWeWant, $toCheck) == 0) {
+ return TRUE;
+ } else {
+ if (strpos($whatWeWant, $typeSeperator) === FALSE) {
+ return strncmp($whatWeWant, $toCheck, strpos($toCheck, $typeSeperator)) == 0;
+ } else {
+ return FALSE;
+ }
+ }
+ }
+
+
+ /**
+ * Analyzes SQL queries
+ *
+ * @param array The SQL queries
+ *
+ * @return array The analyzed SQL queries
+ *
+ * @access public
+ */
+ function PMA_SQP_analyze($arr)
+ {
+ if ($arr == array()) {
+ return array();
+ }
+ $result = array();
+ $size = $arr['len'];
+ $subresult = array(
+ 'querytype' => '',
+ 'select_expr_clause'=> '', // the whole stuff between SELECT and FROM , except DISTINCT
+ 'position_of_first_select' => '', // the array index
+ 'from_clause'=> '',
+ 'group_by_clause'=> '',
+ 'order_by_clause'=> '',
+ 'having_clause' => '',
+ 'limit_clause' => '',
+ 'where_clause' => '',
+ 'where_clause_identifiers' => array(),
+ 'unsorted_query' => '',
+ 'queryflags' => array(),
+ 'select_expr' => array(),
+ 'table_ref' => array(),
+ 'foreign_keys' => array(),
+ 'create_table_fields' => array()
+ );
+ $subresult_empty = $subresult;
+ $seek_queryend = FALSE;
+ $seen_end_of_table_ref = FALSE;
+ $number_of_brackets_in_extract = 0;
+ $number_of_brackets_in_group_concat = 0;
+
+ $number_of_brackets = 0;
+ $in_subquery = false;
+ $seen_subquery = false;
+ $seen_from = false;
+
+ // for SELECT EXTRACT(YEAR_MONTH FROM CURDATE())
+ // we must not use CURDATE as a table_ref
+ // so we track whether we are in the EXTRACT()
+ $in_extract = FALSE;
+
+ // for GROUP_CONCAT(...)
+ $in_group_concat = FALSE;
+
+/* Description of analyzer results by lem9
+ *
+ * db, table, column, alias
+ * ------------------------
+ *
+ * Inside the $subresult array, we create ['select_expr'] and ['table_ref'] arrays.
+ *
+ * The SELECT syntax (simplified) is
+ *
+ * SELECT
+ * select_expression,...
+ * [FROM [table_references]
+ *
+ *
+ * ['select_expr'] is filled with each expression, the key represents the
+ * expression position in the list (0-based) (so we don't lose track of
+ * multiple occurences of the same column).
+ *
+ * ['table_ref'] is filled with each table ref, same thing for the key.
+ *
+ * I create all sub-values empty, even if they are
+ * not present (for example no select_expression alias).
+ *
+ * There is a debug section at the end of loop #1, if you want to
+ * see the exact contents of select_expr and table_ref
+ *
+ * queryflags
+ * ----------
+ *
+ * In $subresult, array 'queryflags' is filled, according to what we
+ * find in the query.
+ *
+ * Currently, those are generated:
+ *
+ * ['queryflags']['need_confirm'] = 1; if the query needs confirmation
+ * ['queryflags']['select_from'] = 1; if this is a real SELECT...FROM
+ * ['queryflags']['distinct'] = 1; for a DISTINCT
+ * ['queryflags']['union'] = 1; for a UNION
+ * ['queryflags']['join'] = 1; for a JOIN
+ * ['queryflags']['offset'] = 1; for the presence of OFFSET
+ * ['queryflags']['procedure'] = 1; for the presence of PROCEDURE
+ *
+ * query clauses
+ * -------------
+ *
+ * The select is splitted in those clauses:
+ * ['select_expr_clause']
+ * ['from_clause']
+ * ['group_by_clause']
+ * ['order_by_clause']
+ * ['having_clause']
+ * ['limit_clause']
+ * ['where_clause']
+ *
+ * The identifiers of the WHERE clause are put into the array
+ * ['where_clause_identifier']
+ *
+ * For a SELECT, the whole query without the ORDER BY clause is put into
+ * ['unsorted_query']
+ *
+ * foreign keys
+ * ------------
+ * The CREATE TABLE may contain FOREIGN KEY clauses, so they get
+ * analyzed and ['foreign_keys'] is an array filled with
+ * the constraint name, the index list,
+ * the REFERENCES table name and REFERENCES index list,
+ * and ON UPDATE | ON DELETE clauses
+ *
+ * position_of_first_select
+ * ------------------------
+ *
+ * The array index of the first SELECT we find. Will be used to
+ * insert a SQL_CALC_FOUND_ROWS.
+ *
+ * create_table_fields
+ * -------------------
+ *
+ * For now, mostly used to detect the DEFAULT CURRENT_TIMESTAMP and
+ * ON UPDATE CURRENT_TIMESTAMP clauses of the CREATE TABLE query.
+ * An array, each element is the identifier name.
+ * Note that for now, the timestamp_not_null element is created
+ * even for non-TIMESTAMP fields.
+ *
+ * Sub-elements: ['type'] which contains the column type
+ * optional (currently they are never false but can be absent):
+ * ['default_current_timestamp'] boolean
+ * ['on_update_current_timestamp'] boolean
+ * ['timestamp_not_null'] boolean
+ *
+ * section_before_limit, section_after_limit
+ * -----------------------------------------
+ *
+ * Marks the point of the query where we can insert a LIMIT clause;
+ * so the section_before_limit will contain the left part before
+ * a possible LIMIT clause
+ *
+ *
+ * End of description of analyzer results
+ */
+
+ // must be sorted
+ // TODO: current logic checks for only one word, so I put only the
+ // first word of the reserved expressions that end a table ref;
+ // maybe this is not ok (the first word might mean something else)
+// $words_ending_table_ref = array(
+// 'FOR UPDATE',
+// 'GROUP BY',
+// 'HAVING',
+// 'LIMIT',
+// 'LOCK IN SHARE MODE',
+// 'ORDER BY',
+// 'PROCEDURE',
+// 'UNION',
+// 'WHERE'
+// );
+ $words_ending_table_ref = array(
+ 'FOR',
+ 'GROUP',
+ 'HAVING',
+ 'LIMIT',
+ 'LOCK',
+ 'ORDER',
+ 'PROCEDURE',
+ 'UNION',
+ 'WHERE'
+ );
+ $words_ending_table_ref_cnt = 9; //count($words_ending_table_ref);
+
+ $words_ending_clauses = array(
+ 'FOR',
+ 'LIMIT',
+ 'LOCK',
+ 'PROCEDURE',
+ 'UNION'
+ );
+ $words_ending_clauses_cnt = 5; //count($words_ending_clauses);
+
+
+
+
+ // must be sorted
+ $supported_query_types = array(
+ 'SELECT'
+ /*
+ // Support for these additional query types will come later on.
+ 'DELETE',
+ 'INSERT',
+ 'REPLACE',
+ 'TRUNCATE',
+ 'UPDATE'
+ 'EXPLAIN',
+ 'DESCRIBE',
+ 'SHOW',
+ 'CREATE',
+ 'SET',
+ 'ALTER'
+ */
+ );
+ $supported_query_types_cnt = count($supported_query_types);
+
+ // loop #1 for each token: select_expr, table_ref for SELECT
+
+ for ($i = 0; $i < $size; $i++) {
+//DEBUG echo "Loop1 <strong>" . $arr[$i]['data'] . "</strong> (" . $arr[$i]['type'] . ")<br />";
+
+ // High speed seek for locating the end of the current query
+ if ($seek_queryend == TRUE) {
+ if ($arr[$i]['type'] == 'punct_queryend') {
+ $seek_queryend = FALSE;
+ } else {
+ continue;
+ } // end if (type == punct_queryend)
+ } // end if ($seek_queryend)
+
+ /**
+ * Note: do not split if this is a punct_queryend for the first and only query
+ * @todo when we find a UNION, should we split in another subresult?
+ */
+ if ($arr[$i]['type'] == 'punct_queryend' && ($i + 1 != $size)) {
+ $result[] = $subresult;
+ $subresult = $subresult_empty;
+ continue;
+ } // end if (type == punct_queryend)
+
+// ==============================================================
+ if ($arr[$i]['type'] == 'punct_bracket_open_round') {
+ $number_of_brackets++;
+ if ($in_extract) {
+ $number_of_brackets_in_extract++;
+ }
+ if ($in_group_concat) {
+ $number_of_brackets_in_group_concat++;
+ }
+ }
+// ==============================================================
+ if ($arr[$i]['type'] == 'punct_bracket_close_round') {
+ $number_of_brackets--;
+ if ($number_of_brackets == 0) {
+ $in_subquery = false;
+ }
+ if ($in_extract) {
+ $number_of_brackets_in_extract--;
+ if ($number_of_brackets_in_extract == 0) {
+ $in_extract = FALSE;
+ }
+ }
+ if ($in_group_concat) {
+ $number_of_brackets_in_group_concat--;
+ if ($number_of_brackets_in_group_concat == 0) {
+ $in_group_concat = FALSE;
+ }
+ }
+ }
+
+ if ($in_subquery) {
+ /**
+ * skip the subquery to avoid setting
+ * select_expr or table_ref with the contents
+ * of this subquery; this is to avoid a bug when
+ * trying to edit the results of
+ * select * from child where not exists (select id from
+ * parent where child.parent_id = parent.id);
+ */
+ continue;
+ }
+// ==============================================================
+ if ($arr[$i]['type'] == 'alpha_functionName') {
+ $upper_data = strtoupper($arr[$i]['data']);
+ if ($upper_data =='EXTRACT') {
+ $in_extract = TRUE;
+ $number_of_brackets_in_extract = 0;
+ }
+ if ($upper_data =='GROUP_CONCAT') {
+ $in_group_concat = TRUE;
+ $number_of_brackets_in_group_concat = 0;
+ }
+ }
+
+// ==============================================================
+ if ($arr[$i]['type'] == 'alpha_reservedWord'
+// && $arr[$i]['forbidden'] == FALSE) {
+ ) {
+ // We don't know what type of query yet, so run this
+ if ($subresult['querytype'] == '') {
+ $subresult['querytype'] = strtoupper($arr[$i]['data']);
+ } // end if (querytype was empty)
+
+ // Check if we support this type of query
+ if (!PMA_STR_binarySearchInArr($subresult['querytype'], $supported_query_types, $supported_query_types_cnt)) {
+ // Skip ahead to the next one if we don't
+ $seek_queryend = TRUE;
+ continue;
+ } // end if (query not supported)
+
+ // upper once
+ $upper_data = strtoupper($arr[$i]['data']);
+ /**
+ * @todo reset for each query?
+ */
+
+ if ($upper_data == 'SELECT') {
+ if ($number_of_brackets > 0) {
+ $in_subquery = true;
+ $seen_subquery = true;
+ // this is a subquery so do not analyze inside it
+ continue;
+ }
+ $seen_from = FALSE;
+ $previous_was_identifier = FALSE;
+ $current_select_expr = -1;
+ $seen_end_of_table_ref = FALSE;
+ } // end if (data == SELECT)
+
+ if ($upper_data =='FROM' && !$in_extract) {
+ $current_table_ref = -1;
+ $seen_from = TRUE;
+ $previous_was_identifier = FALSE;
+ $save_table_ref = TRUE;
+ } // end if (data == FROM)
+
+ // here, do not 'continue' the loop, as we have more work for
+ // reserved words below
+ } // end if (type == alpha_reservedWord)
+
+// ==============================
+ if ($arr[$i]['type'] == 'quote_backtick'
+ || $arr[$i]['type'] == 'quote_double'
+ || $arr[$i]['type'] == 'quote_single'
+ || $arr[$i]['type'] == 'alpha_identifier'
+ || ($arr[$i]['type'] == 'alpha_reservedWord'
+ && $arr[$i]['forbidden'] == FALSE)) {
+
+ switch ($arr[$i]['type']) {
+ case 'alpha_identifier':
+ case 'alpha_reservedWord':
+ /**
+ * this is not a real reservedWord, because it's not
+ * present in the list of forbidden words, for example
+ * "storage" which can be used as an identifier
+ *
+ * @todo avoid the pretty printing in color in this case
+ */
+ $identifier = $arr[$i]['data'];
+ break;
+
+ case 'quote_backtick':
+ case 'quote_double':
+ case 'quote_single':
+ $identifier = PMA_unQuote($arr[$i]['data']);
+ break;
+ } // end switch
+
+ if ($subresult['querytype'] == 'SELECT'
+ && ! $in_group_concat
+ && ! ($seen_subquery && $arr[$i - 1]['type'] == 'punct_bracket_close_round')) {
+ if (!$seen_from) {
+ if ($previous_was_identifier && isset($chain)) {
+ // found alias for this select_expr, save it
+ // but only if we got something in $chain
+ // (for example, SELECT COUNT(*) AS cnt
+ // puts nothing in $chain, so we avoid
+ // setting the alias)
+ $alias_for_select_expr = $identifier;
+ } else {
+ $chain[] = $identifier;
+ $previous_was_identifier = TRUE;
+
+ } // end if !$previous_was_identifier
+ } else {
+ // ($seen_from)
+ if ($save_table_ref && !$seen_end_of_table_ref) {
+ if ($previous_was_identifier) {
+ // found alias for table ref
+ // save it for later
+ $alias_for_table_ref = $identifier;
+ } else {
+ $chain[] = $identifier;
+ $previous_was_identifier = TRUE;
+
+ } // end if ($previous_was_identifier)
+ } // end if ($save_table_ref &&!$seen_end_of_table_ref)
+ } // end if (!$seen_from)
+ } // end if (querytype SELECT)
+ } // end if (quote_backtick or double quote or alpha_identifier)
+
+// ===================================
+ if ($arr[$i]['type'] == 'punct_qualifier') {
+ // to be able to detect an identifier following another
+ $previous_was_identifier = FALSE;
+ continue;
+ } // end if (punct_qualifier)
+
+ /**
+ * @todo check if 3 identifiers following one another -> error
+ */
+
+ // s a v e a s e l e c t e x p r
+ // finding a list separator or FROM
+ // means that we must save the current chain of identifiers
+ // into a select expression
+
+ // for now, we only save a select expression if it contains
+ // at least one identifier, as we are interested in checking
+ // the columns and table names, so in "select * from persons",
+ // the "*" is not saved
+
+ if (isset($chain) && !$seen_end_of_table_ref
+ && ((!$seen_from && $arr[$i]['type'] == 'punct_listsep')
+ || ($arr[$i]['type'] == 'alpha_reservedWord' && $upper_data == 'FROM'))) {
+ $size_chain = count($chain);
+ $current_select_expr++;
+ $subresult['select_expr'][$current_select_expr] = array(
+ 'expr' => '',
+ 'alias' => '',
+ 'db' => '',
+ 'table_name' => '',
+ 'table_true_name' => '',
+ 'column' => ''
+ );
+
+ if (isset($alias_for_select_expr) && strlen($alias_for_select_expr)) {
+ // we had found an alias for this select expression
+ $subresult['select_expr'][$current_select_expr]['alias'] = $alias_for_select_expr;
+ unset($alias_for_select_expr);
+ }
+ // there is at least a column
+ $subresult['select_expr'][$current_select_expr]['column'] = $chain[$size_chain - 1];
+ $subresult['select_expr'][$current_select_expr]['expr'] = $chain[$size_chain - 1];
+
+ // maybe a table
+ if ($size_chain > 1) {
+ $subresult['select_expr'][$current_select_expr]['table_name'] = $chain[$size_chain - 2];
+ // we assume for now that this is also the true name
+ $subresult['select_expr'][$current_select_expr]['table_true_name'] = $chain[$size_chain - 2];
+ $subresult['select_expr'][$current_select_expr]['expr']
+ = $subresult['select_expr'][$current_select_expr]['table_name']
+ . '.' . $subresult['select_expr'][$current_select_expr]['expr'];
+ } // end if ($size_chain > 1)
+
+ // maybe a db
+ if ($size_chain > 2) {
+ $subresult['select_expr'][$current_select_expr]['db'] = $chain[$size_chain - 3];
+ $subresult['select_expr'][$current_select_expr]['expr']
+ = $subresult['select_expr'][$current_select_expr]['db']
+ . '.' . $subresult['select_expr'][$current_select_expr]['expr'];
+ } // end if ($size_chain > 2)
+ unset($chain);
+
+ /**
+ * @todo explain this:
+ */
+ if (($arr[$i]['type'] == 'alpha_reservedWord')
+ && ($upper_data != 'FROM')) {
+ $previous_was_identifier = TRUE;
+ }
+
+ } // end if (save a select expr)
+
+
+ //======================================
+ // s a v e a t a b l e r e f
+ //======================================
+
+ // maybe we just saw the end of table refs
+ // but the last table ref has to be saved
+ // or we are at the last token
+ // or we just got a reserved word
+ /**
+ * @todo there could be another query after this one
+ */
+
+ if (isset($chain) && $seen_from && $save_table_ref
+ && ($arr[$i]['type'] == 'punct_listsep'
+ || ($arr[$i]['type'] == 'alpha_reservedWord' && $upper_data!="AS")
+ || $seen_end_of_table_ref
+ || $i==$size-1)) {
+
+ $size_chain = count($chain);
+ $current_table_ref++;
+ $subresult['table_ref'][$current_table_ref] = array(
+ 'expr' => '',
+ 'db' => '',
+ 'table_name' => '',
+ 'table_alias' => '',
+ 'table_true_name' => ''
+ );
+ if (isset($alias_for_table_ref) && strlen($alias_for_table_ref)) {
+ $subresult['table_ref'][$current_table_ref]['table_alias'] = $alias_for_table_ref;
+ unset($alias_for_table_ref);
+ }
+ $subresult['table_ref'][$current_table_ref]['table_name'] = $chain[$size_chain - 1];
+ // we assume for now that this is also the true name
+ $subresult['table_ref'][$current_table_ref]['table_true_name'] = $chain[$size_chain - 1];
+ $subresult['table_ref'][$current_table_ref]['expr']
+ = $subresult['table_ref'][$current_table_ref]['table_name'];
+ // maybe a db
+ if ($size_chain > 1) {
+ $subresult['table_ref'][$current_table_ref]['db'] = $chain[$size_chain - 2];
+ $subresult['table_ref'][$current_table_ref]['expr']
+ = $subresult['table_ref'][$current_table_ref]['db']
+ . '.' . $subresult['table_ref'][$current_table_ref]['expr'];
+ } // end if ($size_chain > 1)
+
+ // add the table alias into the whole expression
+ $subresult['table_ref'][$current_table_ref]['expr']
+ .= ' ' . $subresult['table_ref'][$current_table_ref]['table_alias'];
+
+ unset($chain);
+ $previous_was_identifier = TRUE;
+ //continue;
+
+ } // end if (save a table ref)
+
+
+ // when we have found all table refs,
+ // for each table_ref alias, put the true name of the table
+ // in the corresponding select expressions
+
+ if (isset($current_table_ref) && ($seen_end_of_table_ref || $i == $size-1) && $subresult != $subresult_empty) {
+ for ($tr=0; $tr <= $current_table_ref; $tr++) {
+ $alias = $subresult['table_ref'][$tr]['table_alias'];
+ $truename = $subresult['table_ref'][$tr]['table_true_name'];
+ for ($se=0; $se <= $current_select_expr; $se++) {
+ if (isset($alias) && strlen($alias) && $subresult['select_expr'][$se]['table_true_name']
+ == $alias) {
+ $subresult['select_expr'][$se]['table_true_name']
+ = $truename;
+ } // end if (found the alias)
+ } // end for (select expressions)
+
+ } // end for (table refs)
+ } // end if (set the true names)
+
+
+ // e n d i n g l o o p #1
+ // set the $previous_was_identifier to FALSE if the current
+ // token is not an identifier
+ if (($arr[$i]['type'] != 'alpha_identifier')
+ && ($arr[$i]['type'] != 'quote_double')
+ && ($arr[$i]['type'] != 'quote_single')
+ && ($arr[$i]['type'] != 'quote_backtick')) {
+ $previous_was_identifier = FALSE;
+ } // end if
+
+ // however, if we are on AS, we must keep the $previous_was_identifier
+ if (($arr[$i]['type'] == 'alpha_reservedWord')
+ && ($upper_data == 'AS')) {
+ $previous_was_identifier = TRUE;
+ }
+
+ if (($arr[$i]['type'] == 'alpha_reservedWord')
+ && ($upper_data =='ON' || $upper_data =='USING')) {
+ $save_table_ref = FALSE;
+ } // end if (data == ON)
+
+ if (($arr[$i]['type'] == 'alpha_reservedWord')
+ && ($upper_data =='JOIN' || $upper_data =='FROM')) {
+ $save_table_ref = TRUE;
+ } // end if (data == JOIN)
+
+ /**
+ * no need to check the end of table ref if we already did
+ *
+ * @todo maybe add "&& $seen_from"
+ */
+ if (!$seen_end_of_table_ref) {
+ // if this is the last token, it implies that we have
+ // seen the end of table references
+ // Check for the end of table references
+ //
+ // Note: if we are analyzing a GROUP_CONCAT clause,
+ // we might find a word that seems to indicate that
+ // we have found the end of table refs (like ORDER)
+ // but it's a modifier of the GROUP_CONCAT so
+ // it's not the real end of table refs
+ if (($i == $size-1)
+ || ($arr[$i]['type'] == 'alpha_reservedWord'
+ && !$in_group_concat
+ && PMA_STR_binarySearchInArr($upper_data, $words_ending_table_ref, $words_ending_table_ref_cnt))) {
+ $seen_end_of_table_ref = TRUE;
+ // to be able to save the last table ref, but do not
+ // set it true if we found a word like "ON" that has
+ // already set it to false
+ if (isset($save_table_ref) && $save_table_ref != FALSE) {
+ $save_table_ref = TRUE;
+ } //end if
+
+ } // end if (check for end of table ref)
+ } //end if (!$seen_end_of_table_ref)
+
+ if ($seen_end_of_table_ref) {
+ $save_table_ref = FALSE;
+ } // end if
+
+ } // end for $i (loop #1)
+
+ //DEBUG
+ /*
+ if (isset($current_select_expr)) {
+ for ($trace=0; $trace<=$current_select_expr; $trace++) {
+ echo "<br />";
+ reset ($subresult['select_expr'][$trace]);
+ while (list ($key, $val) = each ($subresult['select_expr'][$trace]))
+ echo "sel expr $trace $key => $val<br />\n";
+ }
+ }
+
+ if (isset($current_table_ref)) {
+ echo "current_table_ref = " . $current_table_ref . "<br>";
+ for ($trace=0; $trace<=$current_table_ref; $trace++) {
+
+ echo "<br />";
+ reset ($subresult['table_ref'][$trace]);
+ while (list ($key, $val) = each ($subresult['table_ref'][$trace]))
+ echo "table ref $trace $key => $val<br />\n";
+ }
+ }
+ */
+ // -------------------------------------------------------
+
+
+ // loop #2: - queryflags
+ // - querytype (for queries != 'SELECT')
+ // - section_before_limit, section_after_limit
+ //
+ // we will also need this queryflag in loop 2
+ // so set it here
+ if (isset($current_table_ref) && $current_table_ref > -1) {
+ $subresult['queryflags']['select_from'] = 1;
+ }
+
+ $section_before_limit = '';
+ $section_after_limit = ''; // truly the section after the limit clause
+ $seen_reserved_word = FALSE;
+ $seen_group = FALSE;
+ $seen_order = FALSE;
+ $seen_order_by = FALSE;
+ $in_group_by = FALSE; // true when we are inside the GROUP BY clause
+ $in_order_by = FALSE; // true when we are inside the ORDER BY clause
+ $in_having = FALSE; // true when we are inside the HAVING clause
+ $in_select_expr = FALSE; // true when we are inside the select expr clause
+ $in_where = FALSE; // true when we are inside the WHERE clause
+ $seen_limit = FALSE; // true if we have seen a LIMIT clause
+ $in_limit = FALSE; // true when we are inside the LIMIT clause
+ $after_limit = FALSE; // true when we are after the LIMIT clause
+ $in_from = FALSE; // true when we are in the FROM clause
+ $in_group_concat = FALSE;
+ $first_reserved_word = '';
+ $current_identifier = '';
+ $unsorted_query = $arr['raw']; // in case there is no ORDER BY
+
+ for ($i = 0; $i < $size; $i++) {
+//DEBUG echo "Loop2 <strong>" . $arr[$i]['data'] . "</strong> (" . $arr[$i]['type'] . ")<br />";
+
+ // need_confirm
+ //
+ // check for reserved words that will have to generate
+ // a confirmation request later in sql.php
+ // the cases are:
+ // DROP TABLE
+ // DROP DATABASE
+ // ALTER TABLE... DROP
+ // DELETE FROM...
+ //
+ // this code is not used for confirmations coming from functions.js
+
+ if ($arr[$i]['type'] == 'alpha_reservedWord') {
+ $upper_data = strtoupper($arr[$i]['data']);
+ if (!$seen_reserved_word) {
+ $first_reserved_word = $upper_data;
+ $subresult['querytype'] = $upper_data;
+ $seen_reserved_word = TRUE;
+
+ // if the first reserved word is DROP or DELETE,
+ // we know this is a query that needs to be confirmed
+ if ($first_reserved_word=='DROP'
+ || $first_reserved_word == 'DELETE'
+ || $first_reserved_word == 'TRUNCATE') {
+ $subresult['queryflags']['need_confirm'] = 1;
+ }
+
+ if ($first_reserved_word=='SELECT'){
+ $position_of_first_select = $i;
+ }
+
+ } else {
+ if ($upper_data == 'DROP' && $first_reserved_word == 'ALTER') {
+ $subresult['queryflags']['need_confirm'] = 1;
+ }
+ }
+
+ if ($upper_data == 'LIMIT') {
+ $section_before_limit = substr($arr['raw'], 0, $arr[$i]['pos'] - 5);
+ $in_limit = TRUE;
+ $seen_limit = TRUE;
+ $limit_clause = '';
+ $in_order_by = FALSE; // @todo maybe others to set FALSE
+ }
+
+ if ($upper_data == 'PROCEDURE') {
+ $subresult['queryflags']['procedure'] = 1;
+ $in_limit = FALSE;
+ $after_limit = TRUE;
+ }
+ /**
+ * @todo set also to FALSE if we find FOR UPDATE or LOCK IN SHARE MODE
+ */
+ if ($upper_data == 'SELECT') {
+ $in_select_expr = TRUE;
+ $select_expr_clause = '';
+ }
+ if ($upper_data == 'DISTINCT' && !$in_group_concat) {
+ $subresult['queryflags']['distinct'] = 1;
+ }
+
+ if ($upper_data == 'UNION') {
+ $subresult['queryflags']['union'] = 1;
+ }
+
+ if ($upper_data == 'JOIN') {
+ $subresult['queryflags']['join'] = 1;
+ }
+
+ if ($upper_data == 'OFFSET') {
+ $subresult['queryflags']['offset'] = 1;
+ }
+
+ // if this is a real SELECT...FROM
+ if ($upper_data == 'FROM' && isset($subresult['queryflags']['select_from']) && $subresult['queryflags']['select_from'] == 1) {
+ $in_from = TRUE;
+ $from_clause = '';
+ $in_select_expr = FALSE;
+ }
+
+
+ // (we could have less resetting of variables to FALSE
+ // if we trust that the query respects the standard
+ // MySQL order for clauses)
+
+ // we use $seen_group and $seen_order because we are looking
+ // for the BY
+ if ($upper_data == 'GROUP') {
+ $seen_group = TRUE;
+ $seen_order = FALSE;
+ $in_having = FALSE;
+ $in_order_by = FALSE;
+ $in_where = FALSE;
+ $in_select_expr = FALSE;
+ $in_from = FALSE;
+ }
+ if ($upper_data == 'ORDER' && !$in_group_concat) {
+ $seen_order = TRUE;
+ $seen_group = FALSE;
+ $in_having = FALSE;
+ $in_group_by = FALSE;
+ $in_where = FALSE;
+ $in_select_expr = FALSE;
+ $in_from = FALSE;
+ }
+ if ($upper_data == 'HAVING') {
+ $in_having = TRUE;
+ $having_clause = '';
+ $seen_group = FALSE;
+ $seen_order = FALSE;
+ $in_group_by = FALSE;
+ $in_order_by = FALSE;
+ $in_where = FALSE;
+ $in_select_expr = FALSE;
+ $in_from = FALSE;
+ }
+
+ if ($upper_data == 'WHERE') {
+ $in_where = TRUE;
+ $where_clause = '';
+ $where_clause_identifiers = array();
+ $seen_group = FALSE;
+ $seen_order = FALSE;
+ $in_group_by = FALSE;
+ $in_order_by = FALSE;
+ $in_having = FALSE;
+ $in_select_expr = FALSE;
+ $in_from = FALSE;
+ }
+
+ if ($upper_data == 'BY') {
+ if ($seen_group) {
+ $in_group_by = TRUE;
+ $group_by_clause = '';
+ }
+ if ($seen_order) {
+ $seen_order_by = TRUE;
+ // Here we assume that the ORDER BY keywords took
+ // exactly 8 characters.
+ // We use PMA_substr() to be charset-safe; otherwise
+ // if the table name contains accents, the unsorted
+ // query would be missing some characters.
+ $unsorted_query = PMA_substr($arr['raw'], 0, $arr[$i]['pos'] - 8);
+ $in_order_by = TRUE;
+ $order_by_clause = '';
+ }
+ }
+
+ // if we find one of the words that could end the clause
+ if (PMA_STR_binarySearchInArr($upper_data, $words_ending_clauses, $words_ending_clauses_cnt)) {
+
+ $in_group_by = FALSE;
+ $in_order_by = FALSE;
+ $in_having = FALSE;
+ $in_where = FALSE;
+ $in_select_expr = FALSE;
+ $in_from = FALSE;
+ }
+
+ } // endif (reservedWord)
+
+
+ // do not add a space after a function name
+ /**
+ * @todo can we combine loop 2 and loop 1? some code is repeated here...
+ */
+
+ $sep = ' ';
+ if ($arr[$i]['type'] == 'alpha_functionName') {
+ $sep='';
+ $upper_data = strtoupper($arr[$i]['data']);
+ if ($upper_data =='GROUP_CONCAT') {
+ $in_group_concat = TRUE;
+ $number_of_brackets_in_group_concat = 0;
+ }
+ }
+
+ if ($arr[$i]['type'] == 'punct_bracket_open_round') {
+ if ($in_group_concat) {
+ $number_of_brackets_in_group_concat++;
+ }
+ }
+ if ($arr[$i]['type'] == 'punct_bracket_close_round') {
+ if ($in_group_concat) {
+ $number_of_brackets_in_group_concat--;
+ if ($number_of_brackets_in_group_concat == 0) {
+ $in_group_concat = FALSE;
+ }
+ }
+ }
+
+ // do not add a space after an identifier if followed by a dot
+ if ($arr[$i]['type'] == 'alpha_identifier' && $i < $size - 1 && $arr[$i + 1]['data'] == '.') {
+ $sep = '';
+ }
+
+ // do not add a space after a dot if followed by an identifier
+ if ($arr[$i]['data'] == '.' && $i < $size - 1 && $arr[$i + 1]['type'] == 'alpha_identifier') {
+ $sep = '';
+ }
+
+ if ($in_select_expr && $upper_data != 'SELECT' && $upper_data != 'DISTINCT') {
+ $select_expr_clause .= $arr[$i]['data'] . $sep;
+ }
+ if ($in_from && $upper_data != 'FROM') {
+ $from_clause .= $arr[$i]['data'] . $sep;
+ }
+ if ($in_group_by && $upper_data != 'GROUP' && $upper_data != 'BY') {
+ $group_by_clause .= $arr[$i]['data'] . $sep;
+ }
+ if ($in_order_by && $upper_data != 'ORDER' && $upper_data != 'BY') {
+ // add a space only before ASC or DESC
+ // not around the dot between dbname and tablename
+ if ($arr[$i]['type'] == 'alpha_reservedWord') {
+ $order_by_clause .= $sep;
+ }
+ $order_by_clause .= $arr[$i]['data'];
+ }
+ if ($in_having && $upper_data != 'HAVING') {
+ $having_clause .= $arr[$i]['data'] . $sep;
+ }
+ if ($in_where && $upper_data != 'WHERE') {
+ $where_clause .= $arr[$i]['data'] . $sep;
+
+ if (($arr[$i]['type'] == 'quote_backtick')
+ || ($arr[$i]['type'] == 'alpha_identifier')) {
+ $where_clause_identifiers[] = $arr[$i]['data'];
+ }
+ }
+
+ // to grab the rest of the query after the ORDER BY clause
+ if (isset($subresult['queryflags']['select_from'])
+ && $subresult['queryflags']['select_from'] == 1
+ && ! $in_order_by
+ && $seen_order_by
+ && $upper_data != 'BY') {
+ $unsorted_query .= $arr[$i]['data'];
+ if ($arr[$i]['type'] != 'punct_bracket_open_round'
+ && $arr[$i]['type'] != 'punct_bracket_close_round'
+ && $arr[$i]['type'] != 'punct') {
+ $unsorted_query .= $sep;
+ }
+ }
+
+ if ($in_limit) {
+ if ($upper_data == 'OFFSET') {
+ $limit_clause .= $sep;
+ }
+ $limit_clause .= $arr[$i]['data'];
+ if ($upper_data == 'LIMIT' || $upper_data == 'OFFSET') {
+ $limit_clause .= $sep;
+ }
+ }
+ if ($after_limit && $seen_limit) {
+ $section_after_limit .= $arr[$i]['data'] . $sep;
+ }
+
+ // clear $upper_data for next iteration
+ $upper_data='';
+ } // end for $i (loop #2)
+ if (empty($section_before_limit)) {
+ $section_before_limit = $arr['raw'];
+ }
+
+ // -----------------------------------------------------
+ // loop #3: foreign keys and MySQL 4.1.2+ TIMESTAMP options
+ // (for now, check only the first query)
+ // (for now, identifiers are assumed to be backquoted)
+
+ // If we find that we are dealing with a CREATE TABLE query,
+ // we look for the next punct_bracket_open_round, which
+ // introduces the fields list. Then, when we find a
+ // quote_backtick, it must be a field, so we put it into
+ // the create_table_fields array. Even if this field is
+ // not a timestamp, it will be useful when logic has been
+ // added for complete field attributes analysis.
+
+ $seen_foreign = FALSE;
+ $seen_references = FALSE;
+ $seen_constraint = FALSE;
+ $foreign_key_number = -1;
+ $seen_create_table = FALSE;
+ $seen_create = FALSE;
+ $in_create_table_fields = FALSE;
+ $brackets_level = 0;
+ $in_timestamp_options = FALSE;
+ $seen_default = FALSE;
+
+ for ($i = 0; $i < $size; $i++) {
+ // DEBUG echo "Loop 3 <strong>" . $arr[$i]['data'] . "</strong> " . $arr[$i]['type'] . "<br />";
+
+ if ($arr[$i]['type'] == 'alpha_reservedWord') {
+ $upper_data = strtoupper($arr[$i]['data']);
+
+ if ($upper_data == 'NOT' && $in_timestamp_options) {
+ $create_table_fields[$current_identifier]['timestamp_not_null'] = TRUE;
+
+ }
+
+ if ($upper_data == 'CREATE') {
+ $seen_create = TRUE;
+ }
+
+ if ($upper_data == 'TABLE' && $seen_create) {
+ $seen_create_table = TRUE;
+ $create_table_fields = array();
+ }
+
+ if ($upper_data == 'CURRENT_TIMESTAMP') {
+ if ($in_timestamp_options) {
+ if ($seen_default) {
+ $create_table_fields[$current_identifier]['default_current_timestamp'] = TRUE;
+ }
+ }
+ }
+
+ if ($upper_data == 'CONSTRAINT') {
+ $foreign_key_number++;
+ $seen_foreign = FALSE;
+ $seen_references = FALSE;
+ $seen_constraint = TRUE;
+ }
+ if ($upper_data == 'FOREIGN') {
+ $seen_foreign = TRUE;
+ $seen_references = FALSE;
+ $seen_constraint = FALSE;
+ }
+ if ($upper_data == 'REFERENCES') {
+ $seen_foreign = FALSE;
+ $seen_references = TRUE;
+ $seen_constraint = FALSE;
+ }
+
+
+ // Cases covered:
+
+ // [ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
+ // [ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
+
+ // but we set ['on_delete'] or ['on_cascade'] to
+ // CASCADE | SET_NULL | NO_ACTION | RESTRICT
+
+ // ON UPDATE CURRENT_TIMESTAMP
+
+ if ($upper_data == 'ON') {
+ if (isset($arr[$i+1]) && $arr[$i+1]['type'] == 'alpha_reservedWord') {
+ $second_upper_data = strtoupper($arr[$i+1]['data']);
+ if ($second_upper_data == 'DELETE') {
+ $clause = 'on_delete';
+ }
+ if ($second_upper_data == 'UPDATE') {
+ $clause = 'on_update';
+ }
+ if (isset($clause)
+ && ($arr[$i+2]['type'] == 'alpha_reservedWord'
+
+ // ugly workaround because currently, NO is not
+ // in the list of reserved words in sqlparser.data
+ // (we got a bug report about not being able to use
+ // 'no' as an identifier)
+ || ($arr[$i+2]['type'] == 'alpha_identifier'
+ && strtoupper($arr[$i+2]['data'])=='NO'))
+ ) {
+ $third_upper_data = strtoupper($arr[$i+2]['data']);
+ if ($third_upper_data == 'CASCADE'
+ || $third_upper_data == 'RESTRICT') {
+ $value = $third_upper_data;
+ } elseif ($third_upper_data == 'SET'
+ || $third_upper_data == 'NO') {
+ if ($arr[$i+3]['type'] == 'alpha_reservedWord') {
+ $value = $third_upper_data . '_' . strtoupper($arr[$i+3]['data']);
+ }
+ } elseif ($third_upper_data == 'CURRENT_TIMESTAMP') {
+ if ($clause == 'on_update'
+ && $in_timestamp_options) {
+ $create_table_fields[$current_identifier]['on_update_current_timestamp'] = TRUE;
+ $seen_default = FALSE;
+ }
+
+ } else {
+ $value = '';
+ }
+ if (!empty($value)) {
+ $foreign[$foreign_key_number][$clause] = $value;
+ }
+ unset($clause);
+ } // endif (isset($clause))
+ }
+ }
+
+ } // end of reserved words analysis
+
+
+ if ($arr[$i]['type'] == 'punct_bracket_open_round') {
+ $brackets_level++;
+ if ($seen_create_table && $brackets_level == 1) {
+ $in_create_table_fields = TRUE;
+ }
+ }
+
+
+ if ($arr[$i]['type'] == 'punct_bracket_close_round') {
+ $brackets_level--;
+ if ($seen_references) {
+ $seen_references = FALSE;
+ }
+ if ($seen_create_table && $brackets_level == 0) {
+ $in_create_table_fields = FALSE;
+ }
+ }
+
+ if (($arr[$i]['type'] == 'alpha_columnAttrib')) {
+ $upper_data = strtoupper($arr[$i]['data']);
+ if ($seen_create_table && $in_create_table_fields) {
+ if ($upper_data == 'DEFAULT') {
+ $seen_default = TRUE;
+ }
+ }
+ }
+
+ /**
+ * @see @todo 2005-10-16 note: the "or" part here is a workaround for a bug
+ */
+ if (($arr[$i]['type'] == 'alpha_columnType') || ($arr[$i]['type'] == 'alpha_functionName' && $seen_create_table)) {
+ $upper_data = strtoupper($arr[$i]['data']);
+ if ($seen_create_table && $in_create_table_fields && isset($current_identifier)) {
+ $create_table_fields[$current_identifier]['type'] = $upper_data;
+ if ($upper_data == 'TIMESTAMP') {
+ $arr[$i]['type'] = 'alpha_columnType';
+ $in_timestamp_options = TRUE;
+ } else {
+ $in_timestamp_options = FALSE;
+ if ($upper_data == 'CHAR') {
+ $arr[$i]['type'] = 'alpha_columnType';
+ }
+ }
+ }
+ }
+
+
+ if ($arr[$i]['type'] == 'quote_backtick' || $arr[$i]['type'] == 'alpha_identifier') {
+
+ if ($arr[$i]['type'] == 'quote_backtick') {
+ // remove backquotes
+ $identifier = PMA_unQuote($arr[$i]['data']);
+ } else {
+ $identifier = $arr[$i]['data'];
+ }
+
+ if ($seen_create_table && $in_create_table_fields) {
+ $current_identifier = $identifier;
+ // warning: we set this one even for non TIMESTAMP type
+ $create_table_fields[$current_identifier]['timestamp_not_null'] = FALSE;
+ }
+
+ if ($seen_constraint) {
+ $foreign[$foreign_key_number]['constraint'] = $identifier;
+ }
+
+ if ($seen_foreign && $brackets_level > 0) {
+ $foreign[$foreign_key_number]['index_list'][] = $identifier;
+ }
+
+ if ($seen_references) {
+ // here, the first bracket level corresponds to the
+ // bracket of CREATE TABLE
+ // so if we are on level 2, it must be the index list
+ // of the foreign key REFERENCES
+ if ($brackets_level > 1) {
+ $foreign[$foreign_key_number]['ref_index_list'][] = $identifier;
+ } elseif ($arr[$i+1]['type'] == 'punct_qualifier') {
+ // identifier is `db`.`table`
+ // the first pass will pick the db name
+ // the next pass will pick the table name
+ $foreign[$foreign_key_number]['ref_db_name'] = $identifier;
+ } else {
+ // identifier is `table`
+ $foreign[$foreign_key_number]['ref_table_name'] = $identifier;
+ }
+ }
+ }
+ } // end for $i (loop #3)
+
+
+ // Fill the $subresult array
+
+ if (isset($create_table_fields)) {
+ $subresult['create_table_fields'] = $create_table_fields;
+ }
+
+ if (isset($foreign)) {
+ $subresult['foreign_keys'] = $foreign;
+ }
+
+ if (isset($select_expr_clause)) {
+ $subresult['select_expr_clause'] = $select_expr_clause;
+ }
+ if (isset($from_clause)) {
+ $subresult['from_clause'] = $from_clause;
+ }
+ if (isset($group_by_clause)) {
+ $subresult['group_by_clause'] = $group_by_clause;
+ }
+ if (isset($order_by_clause)) {
+ $subresult['order_by_clause'] = $order_by_clause;
+ }
+ if (isset($having_clause)) {
+ $subresult['having_clause'] = $having_clause;
+ }
+ if (isset($limit_clause)) {
+ $subresult['limit_clause'] = $limit_clause;
+ }
+ if (isset($where_clause)) {
+ $subresult['where_clause'] = $where_clause;
+ }
+ if (isset($unsorted_query) && !empty($unsorted_query)) {
+ $subresult['unsorted_query'] = $unsorted_query;
+ }
+ if (isset($where_clause_identifiers)) {
+ $subresult['where_clause_identifiers'] = $where_clause_identifiers;
+ }
+
+ if (isset($position_of_first_select)) {
+ $subresult['position_of_first_select'] = $position_of_first_select;
+ $subresult['section_before_limit'] = $section_before_limit;
+ $subresult['section_after_limit'] = $section_after_limit;
+ }
+
+ // They are naughty and didn't have a trailing semi-colon,
+ // then still handle it properly
+ if ($subresult['querytype'] != '') {
+ $result[] = $subresult;
+ }
+ return $result;
+ } // end of the "PMA_SQP_analyze()" function
+
+
+ /**
+ * Colorizes SQL queries html formatted
+ *
+ * @todo check why adding a "\n" after the </span> would cause extra blanks
+ * to be displayed: SELECT p . person_name
+ * @param array The SQL queries html formatted
+ *
+ * @return array The colorized SQL queries
+ *
+ * @access public
+ */
+ function PMA_SQP_formatHtml_colorize($arr)
+ {
+ $i = $GLOBALS['PMA_strpos']($arr['type'], '_');
+ $class = '';
+ if ($i > 0) {
+ $class = 'syntax_' . PMA_substr($arr['type'], 0, $i) . ' ';
+ }
+
+ $class .= 'syntax_' . $arr['type'];
+
+ return '<span class="' . $class . '">' . htmlspecialchars($arr['data']) . '</span>';
+ } // end of the "PMA_SQP_formatHtml_colorize()" function
+
+
+ /**
+ * Formats SQL queries to html
+ *
+ * @param array The SQL queries
+ * @param string mode
+ * @param integer starting token
+ * @param integer number of tokens to format, -1 = all
+ *
+ * @return string The formatted SQL queries
+ *
+ * @access public
+ */
+ function PMA_SQP_formatHtml($arr, $mode='color', $start_token=0,
+ $number_of_tokens=-1)
+ {
+ //DEBUG echo 'in Format<pre>'; print_r($arr); echo '</pre>';
+ // then check for an array
+ if (!is_array($arr)) {
+ return htmlspecialchars($arr);
+ }
+ // first check for the SQL parser having hit an error
+ if (PMA_SQP_isError()) {
+ return htmlspecialchars($arr['raw']);
+ }
+ // else do it properly
+ switch ($mode) {
+ case 'color':
+ $str = '<span class="syntax">';
+ $html_line_break = '<br />';
+ break;
+ case 'query_only':
+ $str = '';
+ $html_line_break = "\n";
+ break;
+ case 'text':
+ $str = '';
+ $html_line_break = '<br />';
+ break;
+ } // end switch
+ $indent = 0;
+ $bracketlevel = 0;
+ $functionlevel = 0;
+ $infunction = FALSE;
+ $space_punct_listsep = ' ';
+ $space_punct_listsep_function_name = ' ';
+ // $space_alpha_reserved_word = '<br />'."\n";
+ $space_alpha_reserved_word = ' ';
+
+ $keywords_with_brackets_1before = array(
+ 'INDEX',
+ 'KEY',
+ 'ON',
+ 'USING'
+ );
+ $keywords_with_brackets_1before_cnt = 4;
+
+ $keywords_with_brackets_2before = array(
+ 'IGNORE',
+ 'INDEX',
+ 'INTO',
+ 'KEY',
+ 'PRIMARY',
+ 'PROCEDURE',
+ 'REFERENCES',
+ 'UNIQUE',
+ 'USE'
+ );
+ // $keywords_with_brackets_2before_cnt = count($keywords_with_brackets_2before);
+ $keywords_with_brackets_2before_cnt = 9;
+
+ // These reserved words do NOT get a newline placed near them.
+ $keywords_no_newline = array(
+ 'AS',
+ 'ASC',
+ 'DESC',
+ 'DISTINCT',
+ 'DUPLICATE',
+ 'HOUR',
+ 'INTERVAL',
+ 'IS',
+ 'LIKE',
+ 'NOT',
+ 'NULL',
+ 'ON',
+ 'REGEXP'
+ );
+ $keywords_no_newline_cnt = 12;
+
+ // These reserved words introduce a privilege list
+ $keywords_priv_list = array(
+ 'GRANT',
+ 'REVOKE'
+ );
+ $keywords_priv_list_cnt = 2;
+
+ if ($number_of_tokens == -1) {
+ $arraysize = $arr['len'];
+ } else {
+ $arraysize = $number_of_tokens;
+ }
+ $typearr = array();
+ if ($arraysize >= 0) {
+ $typearr[0] = '';
+ $typearr[1] = '';
+ $typearr[2] = '';
+ //$typearr[3] = $arr[0]['type'];
+ $typearr[3] = $arr[$start_token]['type'];
+ }
+
+ $in_priv_list = FALSE;
+ for ($i = $start_token; $i < $arraysize; $i++) {
+// DEBUG echo "Loop format <strong>" . $arr[$i]['data'] . "</strong> " . $arr[$i]['type'] . "<br />";
+ $before = '';
+ $after = '';
+ $indent = 0;
+ // array_shift($typearr);
+ /*
+ 0 prev2
+ 1 prev
+ 2 current
+ 3 next
+ */
+ if (($i + 1) < $arraysize) {
+ // array_push($typearr, $arr[$i + 1]['type']);
+ $typearr[4] = $arr[$i + 1]['type'];
+ } else {
+ //array_push($typearr, null);
+ $typearr[4] = '';
+ }
+
+ for ($j=0; $j<4; $j++) {
+ $typearr[$j] = $typearr[$j + 1];
+ }
+
+ switch ($typearr[2]) {
+ case 'white_newline':
+ $before = '';
+ break;
+ case 'punct_bracket_open_round':
+ $bracketlevel++;
+ $infunction = FALSE;
+ // Make sure this array is sorted!
+ if (($typearr[1] == 'alpha_functionName') || ($typearr[1] == 'alpha_columnType') || ($typearr[1] == 'punct')
+ || ($typearr[3] == 'digit_integer') || ($typearr[3] == 'digit_hex') || ($typearr[3] == 'digit_float')
+ || (($typearr[0] == 'alpha_reservedWord')
+ && PMA_STR_binarySearchInArr(strtoupper($arr[$i - 2]['data']), $keywords_with_brackets_2before, $keywords_with_brackets_2before_cnt))
+ || (($typearr[1] == 'alpha_reservedWord')
+ && PMA_STR_binarySearchInArr(strtoupper($arr[$i - 1]['data']), $keywords_with_brackets_1before, $keywords_with_brackets_1before_cnt))
+ ) {
+ $functionlevel++;
+ $infunction = TRUE;
+ $after .= ' ';
+ } else {
+ $indent++;
+ $after .= ($mode != 'query_only' ? '<div class="syntax_indent' . $indent . '">' : ' ');
+ }
+ break;
+ case 'alpha_identifier':
+ if (($typearr[1] == 'punct_qualifier') || ($typearr[3] == 'punct_qualifier')) {
+ $after = '';
+ $before = '';
+ }
+ if (($typearr[3] == 'alpha_columnType') || ($typearr[3] == 'alpha_identifier')) {
+ $after .= ' ';
+ }
+ break;
+ case 'punct_user':
+ case 'punct_qualifier':
+ $before = '';
+ $after = '';
+ break;
+ case 'punct_listsep':
+ if ($infunction == TRUE) {
+ $after .= $space_punct_listsep_function_name;
+ } else {
+ $after .= $space_punct_listsep;
+ }
+ break;
+ case 'punct_queryend':
+ if (($typearr[3] != 'comment_mysql') && ($typearr[3] != 'comment_ansi') && $typearr[3] != 'comment_c') {
+ $after .= $html_line_break;
+ $after .= $html_line_break;
+ }
+ $space_punct_listsep = ' ';
+ $space_punct_listsep_function_name = ' ';
+ $space_alpha_reserved_word = ' ';
+ $in_priv_list = FALSE;
+ break;
+ case 'comment_mysql':
+ case 'comment_ansi':
+ $after .= $html_line_break;
+ break;
+ case 'punct':
+ $before .= ' ';
+ // workaround for
+ // select * from mytable limit 0,-1
+ // (a side effect of this workaround is that
+ // select 20 - 9
+ // becomes
+ // select 20 -9
+ // )
+ if ($typearr[3] != 'digit_integer') {
+ $after .= ' ';
+ }
+ break;
+ case 'punct_bracket_close_round':
+ $bracketlevel--;
+ if ($infunction == TRUE) {
+ $functionlevel--;
+ $after .= ' ';
+ $before .= ' ';
+ } else {
+ $indent--;
+ $before .= ($mode != 'query_only' ? '</div>' : ' ');
+ }
+ $infunction = ($functionlevel > 0) ? TRUE : FALSE;
+ break;
+ case 'alpha_columnType':
+ if ($typearr[3] == 'alpha_columnAttrib') {
+ $after .= ' ';
+ }
+ if ($typearr[1] == 'alpha_columnType') {
+ $before .= ' ';
+ }
+ break;
+ case 'alpha_columnAttrib':
+
+ // ALTER TABLE tbl_name AUTO_INCREMENT = 1
+ // COLLATE LATIN1_GENERAL_CI DEFAULT
+ if ($typearr[1] == 'alpha_identifier' || $typearr[1] == 'alpha_charset') {
+ $before .= ' ';
+ }
+ if (($typearr[3] == 'alpha_columnAttrib') || ($typearr[3] == 'quote_single') || ($typearr[3] == 'digit_integer')) {
+ $after .= ' ';
+ }
+ // workaround for
+ // AUTO_INCREMENT = 31DEFAULT_CHARSET = utf-8
+
+ if ($typearr[2] == 'alpha_columnAttrib' && $typearr[3] == 'alpha_reservedWord') {
+ $before .= ' ';
+ }
+ // workaround for
+ // select * from mysql.user where binary user="root"
+ // binary is marked as alpha_columnAttrib
+ // but should be marked as a reserved word
+ if (strtoupper($arr[$i]['data']) == 'BINARY'
+ && $typearr[3] == 'alpha_identifier') {
+ $after .= ' ';
+ }
+ break;
+ case 'alpha_reservedWord':
+ // do not uppercase the reserved word if we are calling
+ // this function in query_only mode, because we need
+ // the original query (otherwise we get problems with
+ // semi-reserved words like "storage" which is legal
+ // as an identifier name)
+
+ if ($mode != 'query_only') {
+ $arr[$i]['data'] = strtoupper($arr[$i]['data']);
+ }
+
+ if ((($typearr[1] != 'alpha_reservedWord')
+ || (($typearr[1] == 'alpha_reservedWord')
+ && PMA_STR_binarySearchInArr(strtoupper($arr[$i - 1]['data']), $keywords_no_newline, $keywords_no_newline_cnt)))
+ && ($typearr[1] != 'punct_level_plus')
+ && (!PMA_STR_binarySearchInArr($arr[$i]['data'], $keywords_no_newline, $keywords_no_newline_cnt))) {
+ // do not put a space before the first token, because
+ // we use a lot of eregi() checking for the first
+ // reserved word at beginning of query
+ // so do not put a newline before
+ //
+ // also we must not be inside a privilege list
+ if ($i > 0) {
+ // the alpha_identifier exception is there to
+ // catch cases like
+ // GRANT SELECT ON mydb.mytable TO myuser@localhost
+ // (else, we get mydb.mytableTO)
+ //
+ // the quote_single exception is there to
+ // catch cases like
+ // GRANT ... TO 'marc'@'domain.com' IDENTIFIED...
+ /**
+ * @todo fix all cases and find why this happens
+ */
+
+ if (!$in_priv_list || $typearr[1] == 'alpha_identifier' || $typearr[1] == 'quote_single' || $typearr[1] == 'white_newline') {
+ $before .= $space_alpha_reserved_word;
+ }
+ } else {
+ // on first keyword, check if it introduces a
+ // privilege list
+ if (PMA_STR_binarySearchInArr($arr[$i]['data'], $keywords_priv_list, $keywords_priv_list_cnt)) {
+ $in_priv_list = TRUE;
+ }
+ }
+ } else {
+ $before .= ' ';
+ }
+
+ switch ($arr[$i]['data']) {
+ case 'CREATE':
+ if (!$in_priv_list) {
+ $space_punct_listsep = $html_line_break;
+ $space_alpha_reserved_word = ' ';
+ }
+ break;
+ case 'EXPLAIN':
+ case 'DESCRIBE':
+ case 'SET':
+ case 'ALTER':
+ case 'DELETE':
+ case 'SHOW':
+ case 'DROP':
+ case 'UPDATE':
+ case 'TRUNCATE':
+ case 'ANALYZE':
+ case 'ANALYSE':
+ if (!$in_priv_list) {
+ $space_punct_listsep = $html_line_break;
+ $space_alpha_reserved_word = ' ';
+ }
+ break;
+ case 'INSERT':
+ case 'REPLACE':
+ if (!$in_priv_list) {
+ $space_punct_listsep = $html_line_break;
+ $space_alpha_reserved_word = $html_line_break;
+ }
+ break;
+ case 'VALUES':
+ $space_punct_listsep = ' ';
+ $space_alpha_reserved_word = $html_line_break;
+ break;
+ case 'SELECT':
+ $space_punct_listsep = ' ';
+ $space_alpha_reserved_word = $html_line_break;
+ break;
+ default:
+ break;
+ } // end switch ($arr[$i]['data'])
+
+ $after .= ' ';
+ break;
+ case 'digit_integer':
+ case 'digit_float':
+ case 'digit_hex':
+ /**
+ * @todo could there be other types preceding a digit?
+ */
+ if ($typearr[1] == 'alpha_reservedWord') {
+ $after .= ' ';
+ }
+ if ($infunction && $typearr[3] == 'punct_bracket_close_round') {
+ $after .= ' ';
+ }
+ if ($typearr[1] == 'alpha_columnAttrib') {
+ $before .= ' ';
+ }
+ break;
+ case 'alpha_variable':
+ $after = ' ';
+ break;
+ case 'quote_double':
+ case 'quote_single':
+ // workaround: for the query
+ // REVOKE SELECT ON `base2\_db`.* FROM 'user'@'%'
+ // the @ is incorrectly marked as alpha_variable
+ // in the parser, and here, the '%' gets a blank before,
+ // which is a syntax error
+ if ($typearr[1] != 'punct_user') {
+ $before .= ' ';
+ }
+ if ($infunction && $typearr[3] == 'punct_bracket_close_round') {
+ $after .= ' ';
+ }
+ break;
+ case 'quote_backtick':
+ // here we check for punct_user to handle correctly
+ // DEFINER = `username`@`%`
+ // where @ is the punct_user and `%` is the quote_backtick
+ if ($typearr[3] != 'punct_qualifier' && $typearr[3] != 'alpha_variable' && $typearr[3] != 'punct_user') {
+ $after .= ' ';
+ }
+ if ($typearr[1] != 'punct_qualifier' && $typearr[1] != 'alpha_variable' && $typearr[1] != 'punct_user') {
+ $before .= ' ';
+ }
+ break;
+ default:
+ break;
+ } // end switch ($typearr[2])
+
+/*
+ if ($typearr[3] != 'punct_qualifier') {
+ $after .= ' ';
+ }
+ $after .= "\n";
+*/
+ $str .= $before . ($mode=='color' ? PMA_SQP_formatHTML_colorize($arr[$i]) : $arr[$i]['data']). $after;
+ } // end for
+ if ($mode=='color') {
+ $str .= '</span>';
+ }
+
+ return $str;
+ } // end of the "PMA_SQP_formatHtml()" function
+}
+
+/**
+ * Builds a CSS rule used for html formatted SQL queries
+ *
+ * @param string The class name
+ * @param string The property name
+ * @param string The property value
+ *
+ * @return string The CSS rule
+ *
+ * @access public
+ *
+ * @see PMA_SQP_buildCssData()
+ */
+function PMA_SQP_buildCssRule($classname, $property, $value)
+{
+ $str = '.' . $classname . ' {';
+ if ($value != '') {
+ $str .= $property . ': ' . $value . ';';
+ }
+ $str .= '}' . "\n";
+
+ return $str;
+} // end of the "PMA_SQP_buildCssRule()" function
+
+
+/**
+ * Builds CSS rules used for html formatted SQL queries
+ *
+ * @return string The CSS rules set
+ *
+ * @access public
+ *
+ * @global array The current PMA configuration
+ *
+ * @see PMA_SQP_buildCssRule()
+ */
+function PMA_SQP_buildCssData()
+{
+ global $cfg;
+
+ $css_string = '';
+ foreach ($cfg['SQP']['fmtColor'] AS $key => $col) {
+ $css_string .= PMA_SQP_buildCssRule('syntax_' . $key, 'color', $col);
+ }
+
+ for ($i = 0; $i < 8; $i++) {
+ $css_string .= PMA_SQP_buildCssRule('syntax_indent' . $i, 'margin-left', ($i * $cfg['SQP']['fmtInd']) . $cfg['SQP']['fmtIndUnit']);
+ }
+
+ return $css_string;
+} // end of the "PMA_SQP_buildCssData()" function
+
+if (! defined('PMA_MINIMUM_COMMON')) {
+ /**
+ * Gets SQL queries with no format
+ *
+ * @param array The SQL queries list
+ *
+ * @return string The SQL queries with no format
+ *
+ * @access public
+ */
+ function PMA_SQP_formatNone($arr)
+ {
+ $formatted_sql = htmlspecialchars($arr['raw']);
+ $formatted_sql = preg_replace("@((\015\012)|(\015)|(\012)){3,}@", "\n\n", $formatted_sql);
+
+ return $formatted_sql;
+ } // end of the "PMA_SQP_formatNone()" function
+
+
+ /**
+ * Gets SQL queries in text format
+ *
+ * @todo WRITE THIS!
+ * @param array The SQL queries list
+ *
+ * @return string The SQL queries in text format
+ *
+ * @access public
+ */
+ function PMA_SQP_formatText($arr)
+ {
+ return PMA_SQP_formatNone($arr);
+ } // end of the "PMA_SQP_formatText()" function
+} // end if: minimal common.lib needed?
+
+?>
diff --git a/libraries/sqlvalidator.class.php b/libraries/sqlvalidator.class.php
new file mode 100644
index 0000000000..24e9c05d4d
--- /dev/null
+++ b/libraries/sqlvalidator.class.php
@@ -0,0 +1,412 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+* PHP interface to MimerSQL Validator
+*
+* Copyright 2002, 2003 Robin Johnson <robbat2@users.sourceforge.net>
+* http://www.orbis-terrarum.net/?l=people.robbat2
+*
+* All data is transported over HTTP-SOAP
+* And uses the PEAR SOAP Module
+*
+* Install instructions for PEAR SOAP
+* Make sure you have a really recent PHP with PEAR support
+* run this: "pear install Mail_Mime Net_DIME SOAP"
+*
+* If you got this file from somewhere other than phpMyAdmin
+* please be aware that the latest copy will always be in the
+* phpMyAdmin subversion tree as
+* $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyAdmin/libraries/sqlvalidator.class.php $
+*
+* This code that also used to depend on the PHP overload module, but that has been
+* removed now.
+*
+* @access public
+*
+* @author Robin Johnson <robbat2@users.sourceforge.net>
+*
+* @version $Id$
+*/
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+@include_once 'SOAP/Client.php';
+
+if (!function_exists('class_exists') || !class_exists('SOAP_Client')) {
+ $GLOBALS['sqlvalidator_error'] = TRUE;
+} else {
+ // Ok, we have SOAP Support, so let's use it!
+
+ class PMA_SQLValidator {
+
+ var $url;
+ var $service_name;
+ var $wsdl;
+ var $output_type;
+
+ var $username;
+ var $password;
+ var $calling_program;
+ var $calling_program_version;
+ var $target_dbms;
+ var $target_dbms_version;
+ var $connectionTechnology;
+ var $connection_technology_version;
+ var $interactive;
+
+ var $service_link = null;
+ var $session_data = null;
+
+
+ /**
+ * Private functions - You don't need to mess with these
+ */
+
+ /**
+ * Service opening
+ *
+ * @param string URL of Mimer SQL Validator WSDL file
+ *
+ * @return object Object to use
+ *
+ * @access private
+ */
+ function _openService($url)
+ {
+ $obj = new SOAP_Client($url, TRUE);
+ return $obj;
+ } // end of the "openService()" function
+
+
+ /**
+ * Service initializer to connect to server
+ *
+ * @param object Service object
+ * @param string Username
+ * @param string Password
+ * @param string Name of calling program
+ * @param string Version of calling program
+ * @param string Target DBMS
+ * @param string Version of target DBMS
+ * @param string Connection Technology
+ * @param string version of Connection Technology
+ * @param integer boolean of 1/0 to specify if we are an interactive system
+ *
+ * @return object stdClass return object with data
+ *
+ * @access private
+ */
+ function _openSession($obj, $username, $password,
+ $calling_program, $calling_program_version,
+ $target_dbms, $target_dbms_version,
+ $connection_technology, $connection_technology_version,
+ $interactive)
+ {
+ $use_array = array("a_userName" => $username, "a_password" => $password, "a_callingProgram" => $calling_program, "a_callingProgramVersion" => $calling_program_version, "a_targetDbms" => $target_dbms, "a_targetDbmsVersion" => $target_dbms_version, "a_connectionTechnology" => $connection_technology, "a_connectionTechnologyVersion" => $connection_technology_version, "a_interactive" => $interactive);
+ $ret = $obj->call("openSession", $use_array);
+
+ // This is the old version that needed the overload extension
+ /* $ret = $obj->openSession($username, $password,
+ $calling_program, $calling_program_version,
+ $target_dbms, $target_dbms_version,
+ $connection_technology, $connection_technology_version,
+ $interactive); */
+
+ return $ret;
+ } // end of the "_openSession()" function
+
+
+ /**
+ * Validator sytem call
+ *
+ * @param object Service object
+ * @param object Session object
+ * @param string SQL Query to validate
+ * @param string Data return type
+ *
+ * @return object stClass return with data
+ *
+ * @access private
+ */
+ function _validateSQL($obj, $session, $sql, $method)
+ {
+ $use_array = array("a_sessionId" => $session->sessionId, "a_sessionKey" => $session->sessionKey, "a_SQL" => $sql, "a_resultType" => $this->output_type);
+ $res = $obj->call("validateSQL", $use_array);
+
+ // This is the old version that needed the overload extension
+ // $res = $obj->validateSQL($session->sessionId, $session->sessionKey, $sql, $this->output_type);
+ return $res;
+ } // end of the "validateSQL()" function
+
+
+ /**
+ * Validator sytem call
+ *
+ * @param string SQL Query to validate
+ *
+ * @return object stdClass return with data
+ *
+ * @access private
+ *
+ * @see validateSQL()
+ */
+ function _validate($sql)
+ {
+ $ret = $this->_validateSQL($this->service_link, $this->session_data,
+ $sql, $this->output_type);
+ return $ret;
+ } // end of the "validate()" function
+
+
+ /**
+ * Public functions
+ */
+
+ /**
+ * Constructor
+ *
+ * @access public
+ */
+ function __construct()
+ {
+ $this->url = 'http://sqlvalidator.mimer.com/v1/services';
+ $this->service_name = 'SQL99Validator';
+ $this->wsdl = '?wsdl';
+
+ $this->output_type = 'html';
+
+ $this->username = 'anonymous';
+ $this->password = '';
+ $this->calling_program = 'PHP_SQLValidator';
+ $this->calling_program_version = '$Revision$';
+ $this->target_dbms = 'N/A';
+ $this->target_dbms_version = 'N/A';
+ $this->connection_technology = 'PHP';
+ $this->connection_technology_version = phpversion();
+ $this->interactive = 1;
+
+ $this->service_link = null;
+ $this->session_data = null;
+ } // end of the "PMA_SQLValidator()" function
+
+
+ /**
+ * Sets credentials
+ *
+ * @param string the username
+ * @param string the password
+ *
+ * @access public
+ */
+ function setCredentials($username, $password)
+ {
+ $this->username = $username;
+ $this->password = $password;
+ } // end of the "setCredentials()" function
+
+
+ /**
+ * Sets the calling program
+ *
+ * @param string the calling program name
+ * @param string the calling program revision
+ *
+ * @access public
+ */
+ function setCallingProgram($calling_program, $calling_program_version)
+ {
+ $this->calling_program = $calling_program;
+ $this->calling_program_version = $calling_program_version;
+ } // end of the "setCallingProgram()" function
+
+
+ /**
+ * Appends the calling program
+ *
+ * @param string the calling program name
+ * @param string the calling program revision
+ *
+ * @access public
+ */
+ function appendCallingProgram($calling_program, $calling_program_version)
+ {
+ $this->calling_program .= ' - ' . $calling_program;
+ $this->calling_program_version .= ' - ' . $calling_program_version;
+ } // end of the "appendCallingProgram()" function
+
+
+ /**
+ * Sets the target DBMS
+ *
+ * @param string the target DBMS name
+ * @param string the target DBMS revision
+ *
+ * @access public
+ */
+ function setTargetDbms($target_dbms, $target_dbms_version)
+ {
+ $this->target_dbms = $target_dbms;
+ $this->target_dbms_version = $target_dbms_version;
+ } // end of the "setTargetDbms()" function
+
+
+ /**
+ * Appends the target DBMS
+ *
+ * @param string the target DBMS name
+ * @param string the target DBMS revision
+ *
+ * @access public
+ */
+ function appendTargetDbms($target_dbms, $target_dbms_version)
+ {
+ $this->target_dbms .= ' - ' . $target_dbms;
+ $this->target_dbms_version .= ' - ' . $target_dbms_version;
+ } // end of the "appendTargetDbms()" function
+
+
+ /**
+ * Sets the connection technology used
+ *
+ * @param string the connection technology name
+ * @param string the connection technology revision
+ *
+ * @access public
+ */
+ function setConnectionTechnology($connection_technology, $connection_technology_version)
+ {
+ $this->connection_technology = $connection_technology;
+ $this->connection_technology_version = $connection_technology_version;
+ } // end of the "setConnectionTechnology()" function
+
+
+ /**
+ * Appends the connection technology used
+ *
+ * @param string the connection technology name
+ * @param string the connection technology revision
+ *
+ * @access public
+ */
+ function appendConnectionTechnology($connection_technology, $connection_technology_version)
+ {
+ $this->connection_technology .= ' - ' . $connection_technology;
+ $this->connection_technology_version .= ' - ' . $connection_technology_version;
+ } // end of the "appendConnectionTechnology()" function
+
+
+ /**
+ * Sets whether interactive mode should be used or not
+ *
+ * @param integer whether interactive mode should be used or not
+ *
+ * @access public
+ */
+ function setInteractive($interactive)
+ {
+ $this->interactive = $interactive;
+ } // end of the "setInteractive()" function
+
+
+ /**
+ * Sets the output type to use
+ *
+ * @param string the output type to use
+ *
+ * @access public
+ */
+ function setOutputType($output_type)
+ {
+ $this->output_type = $output_type;
+ } // end of the "setOutputType()" function
+
+
+ /**
+ * Starts service
+ *
+ * @access public
+ */
+ function startService()
+ {
+
+ $this->service_link = $this->_openService($this->url . '/' . $this->service_name . $this->wsdl);
+
+ } // end of the "startService()" function
+
+
+ /**
+ * Starts session
+ *
+ * @access public
+ */
+ function startSession()
+ {
+ $this->session_data = $this->_openSession($this->service_link, $this->username, $this->password,
+ $this->calling_program, $this->calling_program_version,
+ $this->target_dbms, $this->target_dbms_version,
+ $this->connection_technology, $this->connection_technology_version,
+ $this->interactive);
+
+ if (isset($this->session_data) && ($this->session_data != null)
+ && ($this->session_data->target != $this->url)) {
+ // Reopens the service on the new URL that was provided
+ $url = $this->session_data->target;
+ $this->startService();
+ }
+ } // end of the "startSession()" function
+
+
+ /**
+ * Do start service and session
+ *
+ * @access public
+ */
+ function start()
+ {
+ $this->startService();
+ $this->startSession();
+ } // end of the "start()" function
+
+
+ /**
+ * Call to determine just if a query is valid or not.
+ *
+ * @param string SQL statement to validate
+ *
+ * @return string Validator string from Mimer
+ *
+ * @see _validate
+ */
+ function isValid($sql)
+ {
+ $res = $this->_validate($sql);
+ return $res->standard;
+ } // end of the "isValid()" function
+
+
+ /**
+ * Call for complete validator response
+ *
+ * @param string SQL statement to validate
+ *
+ * @return string Validator string from Mimer
+ *
+ * @see _validate
+ */
+ function validationString($sql)
+ {
+ $res = $this->_validate($sql);
+ return $res->data;
+
+ } // end of the "validationString()" function
+ } // end class PMA_SQLValidator
+
+ //add an extra check to ensure that the class was defined without errors
+ if (!class_exists('PMA_SQLValidator')) {
+ $GLOBALS['sqlvalidator_error'] = TRUE;
+ }
+
+} // end else
+
+?>
diff --git a/libraries/sqlvalidator.lib.php b/libraries/sqlvalidator.lib.php
new file mode 100644
index 0000000000..4c75f3d0ec
--- /dev/null
+++ b/libraries/sqlvalidator.lib.php
@@ -0,0 +1,98 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * SQL Validator interface for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * This function uses the Mimer SQL Validator service
+ * <http://developer.mimer.com/validator/index.htm> from phpMyAdmin
+ *
+ * Copyright for Server side validator systems:
+ * "All SQL statements are stored anonymously for statistical purposes.
+ * Mimer SQL Validator, Copyright 2002 Upright Database Technology.
+ * All rights reserved."
+ *
+ * All data is transported over HTTP-SOAP
+ * And uses the PEAR SOAP Module
+ *
+ * Install instructions for PEAR SOAP
+ * Make sure you have a really recent PHP with PEAR support
+ * run this: "pear install Mail_Mime Net_DIME SOAP"
+ *
+ * Enable the SQL Validator options in the configuration file
+ * $cfg['SQLQuery']['Validate'] = TRUE;
+ * $cfg['SQLValidator']['use'] = FALSE;
+ *
+ * Also set a username and password if you have a private one
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * We need the PEAR libraries, so do a minimum version check first
+ * I'm not sure if PEAR was available before this point
+ * For now we actually use a configuration flag
+ */
+if ($cfg['SQLValidator']['use'] == TRUE) {
+ require_once './libraries/sqlvalidator.class.php';
+} // if ($cfg['SQLValidator']['use'] == TRUE)
+
+
+/**
+ * This function utilizes the Mimer SQL Validator service
+ * to validate an SQL query
+ *
+ * <http://developer.mimer.com/validator/index.htm>
+ *
+ * @param string SQL query to validate
+ *
+ * @return string Validator result string
+ *
+ * @global array The PMA configuration array
+ */
+function PMA_validateSQL($sql)
+{
+ global $cfg;
+
+ $str = '';
+
+ if ($cfg['SQLValidator']['use']) {
+ if (isset($GLOBALS['sqlvalidator_error'])
+ && $GLOBALS['sqlvalidator_error']) {
+ $str = sprintf($GLOBALS['strValidatorError'], '<a href="./Documentation.html#faqsqlvalidator" target="documentation">', '</a>');
+ } else {
+ // create new class instance
+ $srv = new PMA_SQLValidator();
+
+ // Checks for username settings
+ // The class defaults to anonymous with an empty password
+ // automatically
+ if ($cfg['SQLValidator']['username'] != '') {
+ $srv->setCredentials($cfg['SQLValidator']['username'], $cfg['SQLValidator']['password']);
+ }
+
+ // Identify ourselves to the server properly...
+ $srv->appendCallingProgram('phpMyAdmin', PMA_VERSION);
+
+ // ... and specify what database system we are using
+ $srv->setTargetDbms('MySQL', PMA_MYSQL_STR_VERSION);
+
+ // Log on to service
+ $srv->start();
+
+ // Do service validation
+ $str = $srv->validationString($sql);
+ }
+
+ } // end if
+
+ // Gives string back to caller
+ return $str;
+} // end of the "PMA_validateSQL()" function
+
+?>
diff --git a/libraries/string.lib.php b/libraries/string.lib.php
new file mode 100644
index 0000000000..6cb2d60e15
--- /dev/null
+++ b/libraries/string.lib.php
@@ -0,0 +1,154 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Specialized String Functions for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * Defines a set of function callbacks that have a pure C version available if
+ * the "ctype" extension is available, but otherwise have PHP versions to use
+ * (that are slower).
+ *
+ * The SQL Parser code relies heavily on these functions.
+ *
+ * @version $Id$
+ * @uses extension_loaded()
+ * @uses substr()
+ * @uses function_exists()
+ * @uses mb_internal_encoding()
+ * @uses defined()
+ * @todo a .lib filename should not have code in main(), split or rename file
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+$GLOBALS['PMA_allow_mbstr'] = @function_exists('mb_strlen');
+
+if ($GLOBALS['PMA_allow_mbstr']) {
+ mb_internal_encoding($GLOBALS['charset']);
+}
+
+// This is for handling input better
+if (defined('PMA_MULTIBYTE_ENCODING') || $GLOBALS['PMA_allow_mbstr']) {
+ $GLOBALS['PMA_strpos'] = 'mb_strpos';
+ $GLOBALS['PMA_substr'] = 'mb_substr';
+ $GLOBALS['PMA_STR_isAlnum'] = 'ctype_alnum';
+ $GLOBALS['PMA_STR_isDigit'] = 'ctype_digit';
+ $GLOBALS['PMA_STR_isSpace'] = 'ctype_space';
+ require './libraries/string_mb.lib.php';
+} else {
+ $GLOBALS['PMA_strpos'] = 'strpos';
+ $GLOBALS['PMA_substr'] = 'substr';
+ $GLOBALS['PMA_STR_isAlnum'] = 'PMA_STR_isAlnum';
+ $GLOBALS['PMA_STR_isDigit'] = 'PMA_STR_isDigit';
+ $GLOBALS['PMA_STR_isSpace'] = 'PMA_STR_isSpace';
+ require './libraries/string_native.lib.php';
+}
+
+if (@extension_loaded('ctype')) {
+ require './libraries/string_type_ctype.lib.php';
+} else {
+ require './libraries/string_type_native.lib.php';
+}
+
+/**
+ * Checks if a given character position in the string is escaped or not
+ *
+ * @uses PMA_strlen()
+ * @uses PMA_substr()
+ * @uses max()
+ * @uses intval()
+ * @param string string to check for
+ * @param integer the character to check for
+ * @param integer starting position in the string
+ * @return boolean whether the character is escaped or not
+ */
+function PMA_STR_charIsEscaped($string, $pos, $start = 0)
+{
+ $pos = max(intval($pos), 0);
+ $start = max(intval($start), 0);
+ $len = PMA_strlen($string);
+ // Base case:
+ // Check for string length or invalid input or special case of input
+ // (pos == $start)
+ if ($pos <= $start || $len <= max($pos, $start)) {
+ return false;
+ }
+
+ $pos--;
+ $escaped = false;
+ while ($pos >= $start && PMA_substr($string, $pos, 1) == '\\') {
+ $escaped = !$escaped;
+ $pos--;
+ } // end while
+
+ return $escaped;
+} // end of the "PMA_STR_charIsEscaped()" function
+
+
+/**
+ * Checks if a number is in a range
+ *
+ * @param integer number to check for
+ * @param integer lower bound
+ * @param integer upper bound
+ * @return boolean whether the number is in the range or not
+ */
+function PMA_STR_numberInRangeInclusive($num, $lower, $upper)
+{
+ return ($num >= $lower && $num <= $upper);
+} // end of the "PMA_STR_numberInRangeInclusive()" function
+
+/**
+ * Checks if a character is an SQL identifier
+ *
+ * @uses PMA_STR_isAlnum()
+ * @param string character to check for
+ * @param boolean whether the dot character is valid or not
+ * @return boolean whether the character is an SQL identifier or not
+ */
+function PMA_STR_isSqlIdentifier($c, $dot_is_valid = false)
+{
+ return ($GLOBALS['PMA_STR_isAlnum']($c)
+ || ($ord_c = ord($c)) && $ord_c >= 192 && $ord_c != 215 && $ord_c != 249
+ || $c == '_'
+ || $c == '$'
+ || ($dot_is_valid != false && $c == '.'));
+} // end of the "PMA_STR_isSqlIdentifier()" function
+
+
+/**
+ * Binary search of a value in a sorted array
+ *
+ * $arr MUST be sorted, due to binary search
+ *
+ * @param string string to search for
+ * @param array sorted array to search into
+ * @param integer size of sorted array to search into
+ *
+ * @return boolean whether the string has been found or not
+ */
+function PMA_STR_binarySearchInArr($str, $arr, $arrsize)
+{
+ $top = $arrsize - 1;
+ $bottom = 0;
+ $found = false;
+
+ while ($top >= $bottom && $found == false) {
+ $mid = intval(($top + $bottom) / 2);
+ $res = strcmp($str, $arr[$mid]);
+ if ($res == 0) {
+ $found = true;
+ } elseif ($res < 0) {
+ $top = $mid - 1;
+ } else {
+ $bottom = $mid + 1;
+ }
+ } // end while
+
+ return $found;
+} // end of the "PMA_STR_binarySearchInArr()" function
+
+?>
diff --git a/libraries/string_mb.lib.php b/libraries/string_mb.lib.php
new file mode 100644
index 0000000000..641bafea49
--- /dev/null
+++ b/libraries/string_mb.lib.php
@@ -0,0 +1,76 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Specialized String Functions for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * Defines a set of function callbacks that have a pure C version available if
+ * the "ctype" extension is available, but otherwise have PHP versions to use
+ * (that are slower).
+ *
+ * The SQL Parser code relies heavily on these functions.
+ *
+ * @version $Id$
+ */
+
+/**
+ * Returns length of string depending on current charset.
+ *
+ * @uses mb_strlen()
+ * @param string string to count
+ * @return int string length
+ * @access public
+ * @author nijel
+ * @todo rename to PM_STR_len()
+ */
+function PMA_strlen($string)
+{
+ return mb_strlen($string);
+}
+
+/**
+ * Returns substring from string, works depending on current charset.
+ *
+ * @uses mb_substr()
+ * @param string string to count
+ * @param int start of substring
+ * @param int length of substring
+ * @return int substring
+ * @access public
+ * @author nijel
+ * @todo rename to PM_STR_sub()
+ */
+function PMA_substr($string, $start, $length = 2147483647)
+{
+ return mb_substr($string, $start, $length);
+}
+
+/**
+ * returns postion of $needle in $haystack or false if not found
+ *
+ * @uses mb_strpos()
+ * @param string $needle
+ * @param string $haystack
+ * @return integer position of $needle in $haystack or false
+ */
+function PMA_STR_pos($haystack, $needle, $offset = 0)
+{
+ return mb_strpos($haystack, $needle, $offset);
+}
+
+/**
+ * returns right most postion of $needle in $haystack or false if not found
+ *
+ * @uses mb_strrpos()
+ * @param string $needle
+ * @param string $haystack
+ * @return integer position of $needle in $haystack or false
+ */
+function PMA_STR_rPos($haystack, $needle, $offset = 0)
+{
+ return mb_strrpos($haystack, $needle, $offset);
+}
+
+?>
diff --git a/libraries/string_native.lib.php b/libraries/string_native.lib.php
new file mode 100644
index 0000000000..f1c47feea2
--- /dev/null
+++ b/libraries/string_native.lib.php
@@ -0,0 +1,76 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Specialized String Functions for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * Defines a set of function callbacks that have a pure C version available if
+ * the "ctype" extension is available, but otherwise have PHP versions to use
+ * (that are slower).
+ *
+ * The SQL Parser code relies heavily on these functions.
+ *
+ * @version $Id$
+ */
+
+/**
+ * Returns length of string depending on current charset.
+ *
+ * @uses strlen()
+ * @param string string to count
+ * @return int string length
+ * @access public
+ * @author nijel
+ * @todo rename to PM_STR_len()
+ */
+function PMA_strlen($string)
+{
+ return strlen($string);
+}
+
+/**
+ * Returns substring from string, works depending on current charset.
+ *
+ * @uses substr()
+ * @param string string to count
+ * @param int start of substring
+ * @param int length of substring
+ * @return int substring
+ * @access public
+ * @author nijel
+ * @todo rename to PM_STR_sub()
+ */
+function PMA_substr($string, $start, $length = 2147483647)
+{
+ return substr($string, $start, $length);
+}
+
+/**
+ * returns postion of $needle in $haystack or false if not found
+ *
+ * @uses strpos()
+ * @param string $needle
+ * @param string $haystack
+ * @return integer position of $needle in $haystack or false
+ */
+function PMA_STR_pos($haystack, $needle, $offset = 0)
+{
+ return strpos($haystack, $needle, $offset);
+}
+
+/**
+ * returns right most postion of $needle in $haystack or false if not found
+ *
+ * @uses strrpos()
+ * @param string $needle
+ * @param string $haystack
+ * @return integer position of $needle in $haystack or false
+ */
+function PMA_STR_rPos($haystack, $needle, $offset = 0)
+{
+ return strrpos($haystack, $needle, $offset);
+}
+
+?>
diff --git a/libraries/string_type_ctype.lib.php b/libraries/string_type_ctype.lib.php
new file mode 100644
index 0000000000..8285164556
--- /dev/null
+++ b/libraries/string_type_ctype.lib.php
@@ -0,0 +1,103 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Specialized String Functions for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * Defines a set of function callbacks that have a pure C version available if
+ * the "ctype" extension is available, but otherwise have PHP versions to use
+ * (that are slower).
+ *
+ * The SQL Parser code relies heavily on these functions.
+ *
+ * @version $Id$
+ */
+
+/**
+ * Checks if a character is an alphanumeric one
+ *
+ * @uses ctype_alnum()
+ * @param string character to check for
+ * @return boolean whether the character is an alphanumeric one or not
+ */
+function PMA_STR_isAlnum($c)
+{
+ return ctype_alnum($c);
+} // end of the "PMA_STR_isAlnum()" function
+
+/**
+ * Checks if a character is an alphabetic one
+ *
+ * @uses ctype_alpha()
+ * @param string character to check for
+ * @return boolean whether the character is an alphabetic one or not
+ */
+function PMA_STR_isAlpha($c)
+{
+ return ctype_alpha($c);
+} // end of the "PMA_STR_isAlpha()" function
+
+/**
+ * Checks if a character is a digit
+ *
+ * @uses ctype_digit()
+ * @param string character to check for
+ * @return boolean whether the character is a digit or not
+ */
+function PMA_STR_isDigit($c)
+{
+ return ctype_digit($c);
+} // end of the "PMA_STR_isDigit()" function
+
+/**
+ * Checks if a character is an upper alphabetic one
+ *
+ * @uses ctype_upper()
+ * @param string character to check for
+ * @return boolean whether the character is an upper alphabetic one or not
+ */
+function PMA_STR_isUpper($c)
+{
+ return ctype_upper($c);
+} // end of the "PMA_STR_isUpper()" function
+
+
+/**
+ * Checks if a character is a lower alphabetic one
+ *
+ * @uses ctype_lower()
+ * @param string character to check for
+ * @return boolean whether the character is a lower alphabetic one or not
+ */
+function PMA_STR_isLower($c)
+{
+ return ctype_lower($c);
+} // end of the "PMA_STR_isLower()" function
+
+/**
+ * Checks if a character is a space one
+ *
+ * @uses ctype_space()
+ * @param string character to check for
+ * @return boolean whether the character is a space one or not
+ */
+function PMA_STR_isSpace($c)
+{
+ return ctype_space($c);
+} // end of the "PMA_STR_isSpace()" function
+
+/**
+ * Checks if a character is an hexadecimal digit
+ *
+ * @uses ctype_xdigit()
+ * @param string character to check for
+ * @return boolean whether the character is an hexadecimal digit or not
+ */
+function PMA_STR_isHexDigit($c)
+{
+ return ctype_xdigit($c);
+} // end of the "PMA_STR_isHexDigit()" function
+
+?> \ No newline at end of file
diff --git a/libraries/string_type_native.lib.php b/libraries/string_type_native.lib.php
new file mode 100644
index 0000000000..cad7984543
--- /dev/null
+++ b/libraries/string_type_native.lib.php
@@ -0,0 +1,140 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Specialized String Functions for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * Defines a set of function callbacks that have a pure C version available if
+ * the "ctype" extension is available, but otherwise have PHP versions to use
+ * (that are slower).
+ *
+ * The SQL Parser code relies heavily on these functions.
+ *
+ * @version $Id$
+ */
+
+/**
+ * Checks if a character is an alphanumeric one
+ *
+ * @uses PMA_STR_isUpper()
+ * @uses PMA_STR_isLower()
+ * @uses PMA_STR_isDigit()
+ * @param string character to check for
+ * @return boolean whether the character is an alphanumeric one or not
+ */
+function PMA_STR_isAlnum($c)
+{
+ return (PMA_STR_isUpper($c) || PMA_STR_isLower($c) || PMA_STR_isDigit($c));
+} // end of the "PMA_STR_isAlnum()" function
+
+/**
+ * Checks if a character is an alphabetic one
+ *
+ * @uses PMA_STR_isUpper()
+ * @uses PMA_STR_isLower()
+ * @param string character to check for
+ * @return boolean whether the character is an alphabetic one or not
+ */
+function PMA_STR_isAlpha($c)
+{
+ return (PMA_STR_isUpper($c) || PMA_STR_isLower($c));
+} // end of the "PMA_STR_isAlpha()" function
+
+/**
+ * Checks if a character is a digit
+ *
+ * @uses PMA_STR_numberInRangeInclusive()
+ * @uses ord()
+ * @param string character to check for
+ * @return boolean whether the character is a digit or not
+ */
+function PMA_STR_isDigit($c)
+{
+ $ord_zero = 48; //ord('0');
+ $ord_nine = 57; //ord('9');
+ $ord_c = ord($c);
+
+ return PMA_STR_numberInRangeInclusive($ord_c, $ord_zero, $ord_nine);
+} // end of the "PMA_STR_isDigit()" function
+
+/**
+ * Checks if a character is an upper alphabetic one
+ *
+ * @uses PMA_STR_numberInRangeInclusive()
+ * @uses ord()
+ * @param string character to check for
+ * @return boolean whether the character is an upper alphabetic one or not
+ */
+function PMA_STR_isUpper($c)
+{
+ $ord_zero = 65; //ord('A');
+ $ord_nine = 90; //ord('Z');
+ $ord_c = ord($c);
+
+ return PMA_STR_numberInRangeInclusive($ord_c, $ord_zero, $ord_nine);
+} // end of the "PMA_STR_isUpper()" function
+
+/**
+ * Checks if a character is a lower alphabetic one
+ *
+ * @uses PMA_STR_numberInRangeInclusive()
+ * @uses ord()
+ * @param string character to check for
+ * @return boolean whether the character is a lower alphabetic one or not
+ */
+function PMA_STR_isLower($c)
+{
+ $ord_zero = 97; //ord('a');
+ $ord_nine = 122; //ord('z');
+ $ord_c = ord($c);
+
+ return PMA_STR_numberInRangeInclusive($ord_c, $ord_zero, $ord_nine);
+} // end of the "PMA_STR_isLower()" function
+
+/**
+ * Checks if a character is a space one
+ *
+ * @uses PMA_STR_numberInRangeInclusive()
+ * @uses ord()
+ * @param string character to check for
+ * @return boolean whether the character is a space one or not
+ */
+function PMA_STR_isSpace($c)
+{
+ $ord_space = 32; //ord(' ')
+ $ord_tab = 9; //ord('\t')
+ $ord_CR = 13; //ord('\n')
+ $ord_NOBR = 160; //ord('U+00A0);
+ $ord_c = ord($c);
+
+ return ($ord_c == $ord_space
+ || $ord_c == $ord_NOBR
+ || PMA_STR_numberInRangeInclusive($ord_c, $ord_tab, $ord_CR));
+} // end of the "PMA_STR_isSpace()" function
+
+/**
+ * Checks if a character is an hexadecimal digit
+ *
+ * @uses PMA_STR_numberInRangeInclusive()
+ * @uses ord()
+ * @param string character to check for
+ * @return boolean whether the character is an hexadecimal digit or not
+ */
+function PMA_STR_isHexDigit($c)
+{
+ $ord_Aupper = 65; //ord('A');
+ $ord_Fupper = 70; //ord('F');
+ $ord_Alower = 97; //ord('a');
+ $ord_Flower = 102; //ord('f');
+ $ord_zero = 48; //ord('0');
+ $ord_nine = 57; //ord('9');
+ $ord_c = ord($c);
+
+ return (PMA_STR_numberInRangeInclusive($ord_c, $ord_zero, $ord_nine)
+ || PMA_STR_numberInRangeInclusive($ord_c, $ord_Aupper, $ord_Fupper)
+ || PMA_STR_numberInRangeInclusive($ord_c, $ord_Alower, $ord_Flower));
+} // end of the "PMA_STR_isHexDigit()" function
+
+?> \ No newline at end of file
diff --git a/libraries/tbl_common.php b/libraries/tbl_common.php
new file mode 100644
index 0000000000..d8b9019416
--- /dev/null
+++ b/libraries/tbl_common.php
@@ -0,0 +1,47 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/bookmark.lib.php';
+
+// Check parameters
+PMA_checkParameters(array('db', 'table'));
+
+if ($db === 'information_schema') {
+ $db_is_information_schema = true;
+} else {
+ $db_is_information_schema = false;
+}
+
+/**
+ * Set parameters for links
+ * @deprecated
+ */
+$url_query = PMA_generate_common_url($db, $table);
+
+$url_params['db'] = $db;
+$url_params['table'] = $table;
+
+/**
+ * Defines the urls to return to in case of error in a sql statement
+ */
+$err_url_0 = $cfg['DefaultTabDatabase'] . PMA_generate_common_url(array('db' => $db,));
+$err_url = $cfg['DefaultTabTable'] . PMA_generate_common_url($url_params);
+
+
+/**
+ * Ensures the database and the table exist (else move to the "parent" script)
+ */
+require_once './libraries/db_table_exists.lib.php';
+
+?>
diff --git a/libraries/tbl_info.inc.php b/libraries/tbl_info.inc.php
new file mode 100644
index 0000000000..11f91c1f96
--- /dev/null
+++ b/libraries/tbl_info.inc.php
@@ -0,0 +1,103 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * extracts table properties from create statement
+ *
+ * @todo should be handled by class Table
+ * @todo this should be recoded as functions, to avoid messing with global variables
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ *
+ */
+require_once './libraries/Table.class.php';
+
+/**
+ * requirements
+ */
+require_once './libraries/common.inc.php';
+
+// Check parameters
+PMA_checkParameters(array('db', 'table'));
+
+/**
+ * Defining global variables, in case this script is included by a function.
+ * This is necessary because this script can be included by libraries/header.inc.php.
+ */
+global $showtable, $tbl_is_view, $tbl_type, $show_comment, $tbl_collation,
+ $table_info_num_rows, $auto_increment;
+
+/**
+ * Gets table informations
+ */
+// Seems we need to do this in MySQL 5.0.2,
+// otherwise error #1046, no database selected
+PMA_DBI_select_db($GLOBALS['db']);
+
+// PMA_Table::sGetStatusInfo() does caching by default, but here
+// we force reading of the current table status
+// if $reread_info is true (for example, coming from tbl_operations.php
+// and we just changed the table's storage engine)
+$showtable = PMA_Table::sGetStatusInfo($GLOBALS['db'], $GLOBALS['table'], null, (isset($reread_info) && $reread_info ? true : false));
+
+// need this test because when we are creating a table, we get 0 rows
+// from the SHOW TABLE query
+// and we don't want to mess up the $tbl_type coming from the form
+
+if ($showtable) {
+ if (PMA_Table::isView($GLOBALS['db'], $GLOBALS['table'])) {
+ $tbl_is_view = true;
+ $tbl_type = $GLOBALS['strView'];
+ $show_comment = null;
+ } else {
+ $tbl_is_view = false;
+ $tbl_type = isset($showtable['Engine'])
+ ? strtoupper($showtable['Engine'])
+ : '';
+ // a new comment could be coming from tbl_operations.php
+ // and we want to show it in the header
+ if (isset($submitcomment) && isset($comment)) {
+ $show_comment = $comment;
+ } else {
+ $show_comment = isset($showtable['Comment'])
+ ? $showtable['Comment']
+ : '';
+ }
+ }
+ $tbl_collation = empty($showtable['Collation'])
+ ? ''
+ : $showtable['Collation'];
+
+ if (null === $showtable['Rows']) {
+ $showtable['Rows'] = PMA_Table::countRecords($GLOBALS['db'],
+ $showtable['Name'], true, true);
+ }
+ $table_info_num_rows = isset($showtable['Rows']) ? $showtable['Rows'] : 0;
+ $row_format = isset($showtable['Row_format']) ? $showtable['Row_format'] : '';
+ $auto_increment = isset($showtable['Auto_increment'])
+ ? $showtable['Auto_increment']
+ : '';
+
+ $create_options = isset($showtable['Create_options'])
+ ? explode(' ', $showtable['Create_options'])
+ : array();
+
+ // export create options by its name as variables into global namespace
+ // f.e. pack_keys=1 becomes available as $pack_keys with value of '1'
+ unset($pack_keys);
+ foreach ($create_options as $each_create_option) {
+ $each_create_option = explode('=', $each_create_option);
+ if (isset($each_create_option[1])) {
+ $$each_create_option[0] = $each_create_option[1];
+ }
+ }
+ // we need explicit DEFAULT value here (different from '0')
+ $pack_keys = (!isset($pack_keys) || strlen($pack_keys) == 0) ? 'DEFAULT' : $pack_keys;
+ unset($create_options, $each_create_option);
+} // end if
+?>
diff --git a/libraries/tbl_links.inc.php b/libraries/tbl_links.inc.php
new file mode 100644
index 0000000000..362ba08ff7
--- /dev/null
+++ b/libraries/tbl_links.inc.php
@@ -0,0 +1,140 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Check parameters
+ */
+require_once './libraries/common.inc.php';
+
+PMA_checkParameters(array('db', 'table'));
+
+/**
+ * Prepares links
+ */
+require_once './libraries/bookmark.lib.php';
+
+
+/**
+ * Set parameters for links
+ */
+if (empty($url_query)
+|| (isset($_POST['table']) && isset($_POST['new_name']) && $_POST['table'] != $_POST['new_name'])) {
+ $url_query = PMA_generate_common_url($db, $table);
+}
+$url_params['db'] = $db;
+$url_params['table'] = $table;
+
+/**
+ * Defines the urls to return to in case of error in a sql statement
+ */
+$err_url_0 = $cfg['DefaultTabDatabase'] . PMA_generate_common_url(array('db' => $db,));
+$err_url = $cfg['DefaultTabTable'] . PMA_generate_common_url($url_params);
+
+/**
+ * Displays headers
+ */
+$GLOBALS['js_include'][] = 'functions.js';
+require_once './libraries/header.inc.php';
+
+/**
+ * Displays links
+ */
+$tabs = array();
+
+$tabs['browse']['icon'] = 'b_browse.png';
+$tabs['browse']['text'] = $strBrowse;
+$tabs['browse']['link'] = 'sql.php';
+$tabs['browse']['args']['pos'] = 0;
+
+$tabs['structure']['icon'] = 'b_props.png';
+$tabs['structure']['link'] = 'tbl_structure.php';
+$tabs['structure']['text'] = $strStructure;
+
+$tabs['sql']['icon'] = 'b_sql.png';
+$tabs['sql']['link'] = 'tbl_sql.php';
+$tabs['sql']['text'] = $strSQL;
+
+$tabs['search']['icon'] = 'b_search.png';
+$tabs['search']['text'] = $strSearch;
+$tabs['search']['link'] = 'tbl_select.php';
+
+if (! (isset($db_is_information_schema) && $db_is_information_schema)) {
+ $tabs['insert']['icon'] = 'b_insrow.png';
+ $tabs['insert']['link'] = 'tbl_change.php';
+ $tabs['insert']['text'] = $strInsert;
+}
+
+$tabs['export']['icon'] = 'b_tblexport.png';
+$tabs['export']['link'] = 'tbl_export.php';
+$tabs['export']['args']['single_table'] = 'true';
+$tabs['export']['text'] = $strExport;
+
+/**
+ * Don't display "Import", "Operations" and "Empty"
+ * for views and information_schema
+ */
+if (! $tbl_is_view && ! (isset($db_is_information_schema) && $db_is_information_schema)) {
+ $tabs['import']['icon'] = 'b_tblimport.png';
+ $tabs['import']['link'] = 'tbl_import.php';
+ $tabs['import']['text'] = $strImport;
+
+ $tabs['operation']['icon'] = 'b_tblops.png';
+ $tabs['operation']['link'] = 'tbl_operations.php';
+ $tabs['operation']['text'] = $strOperations;
+
+ $tabs['empty']['link'] = 'sql.php';
+ $tabs['empty']['args']['reload'] = 1;
+ $tabs['empty']['args']['sql_query'] = 'TRUNCATE TABLE ' . PMA_backquote($table);
+ $tabs['empty']['args']['zero_rows'] = sprintf($strTableHasBeenEmptied, htmlspecialchars($table));
+ $tabs['empty']['attr'] = 'onclick="return confirmLink(this, \'TRUNCATE TABLE ' . PMA_jsFormat($table) . '\')"';
+ $tabs['empty']['args']['goto'] = 'tbl_structure.php';
+ $tabs['empty']['class'] = 'caution';
+ $tabs['empty']['icon'] = 'b_empty.png';
+ $tabs['empty']['text'] = $strEmpty;
+ if ($table_info_num_rows == 0) {
+ $tabs['empty']['warning'] = $strTableIsEmpty;
+ }
+}
+
+/**
+ * no drop in information_schema
+ */
+if (! (isset($db_is_information_schema) && $db_is_information_schema)) {
+ $tabs['drop']['icon'] = 'b_deltbl.png';
+ $tabs['drop']['link'] = 'sql.php';
+ $tabs['drop']['text'] = $strDrop;
+ $tabs['drop']['args']['reload'] = 1;
+ $tabs['drop']['args']['purge'] = 1;
+ $drop_command = 'DROP ' . ($tbl_is_view ? 'VIEW' : 'TABLE');
+ $tabs['drop']['args']['sql_query'] = $drop_command . ' ' . PMA_backquote($table);
+ $tabs['drop']['args']['goto'] = 'db_structure.php';
+ $tabs['drop']['args']['zero_rows'] = sprintf(($tbl_is_view ? $strViewHasBeenDropped : $strTableHasBeenDropped), htmlspecialchars($table));
+ $tabs['drop']['attr'] = 'onclick="return confirmLink(this, \'' . $drop_command . ' ' . PMA_jsFormat($table) . '\')"';
+ unset($drop_command);
+ $tabs['drop']['class'] = 'caution';
+}
+
+if ($table_info_num_rows == 0 && !$tbl_is_view) {
+ $tabs['browse']['warning'] = $strTableIsEmpty;
+ $tabs['search']['warning'] = $strTableIsEmpty;
+}
+
+echo PMA_getTabs($tabs);
+unset($tabs);
+
+/**
+ * Displays a message
+ */
+if (!empty($message)) {
+ PMA_showMessage($message);
+ unset($message);
+}
+
+?>
diff --git a/libraries/tbl_properties.inc.php b/libraries/tbl_properties.inc.php
new file mode 100644
index 0000000000..746732005e
--- /dev/null
+++ b/libraries/tbl_properties.inc.php
@@ -0,0 +1,763 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Display form for changing/adding table fields/columns
+ *
+ * included by tbl_addfield.php, -_alter.php, -_create.php
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * Check parameters
+ */
+require_once './libraries/common.inc.php';
+PMA_checkParameters(array('db', 'table', 'action', 'num_fields'));
+
+
+// Get available character sets and storage engines
+require_once './libraries/mysql_charsets.lib.php';
+require_once './libraries/StorageEngine.class.php';
+
+/**
+ * Class for partition management
+ */
+require_once './libraries/Partition.class.php';
+
+if (is_int($cfg['DefaultPropDisplay'])) {
+ if ($num_fields <= $cfg['DefaultPropDisplay']) {
+ $display_type = 'vertical';
+ } else {
+ $display_type = 'horizontal';
+ }
+} else {
+ $display_type = $cfg['DefaultPropDisplay'];
+}
+
+if ('horizontal' == $display_type) {
+ $length_values_input_size = 8;
+} else {
+ $length_values_input_size = 30;
+}
+
+$_form_params = array(
+ 'db' => $db,
+ 'table' => $table,
+);
+
+if ($action == 'tbl_create.php') {
+ $_form_params['reload'] = 1;
+} elseif ($action == 'tbl_addfield.php') {
+ $_form_params['field_where'] = $_REQUEST['field_where'];
+ $_form_params['after_field'] = $_REQUEST['after_field'];
+}
+
+if (isset($num_fields)) {
+ $_form_params['orig_num_fields'] = $num_fields;
+}
+
+if (isset($_REQUEST['field_where'])) {
+ $_form_params['orig_field_where'] = $_REQUEST['field_where'];
+}
+
+if (isset($_REQUEST['after_field'])) {
+ $_form_params['orig_after_field'] = $_REQUEST['after_field'];
+}
+
+if (isset($selected) && is_array($selected)) {
+ foreach ($selected as $o_fld_nr => $o_fld_val) {
+ $_form_params['selected[' . $o_fld_nr . ']'] = $o_fld_val;
+ if (! isset($true_selected)) {
+ $_form_params['true_selected[' . $o_fld_nr . ']'] = $o_fld_val;
+ }
+ }
+
+ if (isset($true_selected) && is_array($true_selected)) {
+ foreach ($true_selected as $o_fld_nr => $o_fld_val) {
+ $_form_params['true_selected[' . $o_fld_nr . ']'] = $o_fld_val;
+ }
+ }
+} elseif (isset($_REQUEST['field'])) {
+ $_form_params['orig_field'] = $_REQUEST['field'];
+ if (isset($orig_field)) {
+ $_form_params['true_selected[]'] = $orig_field;
+ } else {
+ $_form_params['true_selected[]'] = $_REQUEST['field'];
+ }
+}
+
+$is_backup = ($action != 'tbl_create.php' && $action != 'tbl_addfield.php');
+
+$header_cells = array();
+$content_cells = array();
+
+$header_cells[] = $strField;
+$header_cells[] = $strType
+ . ($GLOBALS['cfg']['ReplaceHelpImg']
+ ? PMA_showMySQLDocu('SQL-Syntax', 'data-types')
+ : '<br /><span style="font-weight: normal">' . PMA_showMySQLDocu('SQL-Syntax', 'data-types')
+ . '</span>');
+$header_cells[] = $strLengthSet . PMA_showHint($strSetEnumVal);
+$header_cells[] = $strDefault . PMA_showHint($strDefaultValueHelp);
+$header_cells[] = $strCollation;
+$header_cells[] = $strAttr;
+$header_cells[] = $strNull;
+
+// lem9: We could remove this 'if' and let the key information be shown and
+// editable. However, for this to work, tbl_alter must be modified to use the
+// key fields, as tbl_addfield does.
+
+if (!$is_backup) {
+ $header_cells[] = $strIndex;
+}
+
+$header_cells[] = '<abbr title="AUTO_INCREMENT">A_I</abbr>';
+
+require_once './libraries/relation.lib.php';
+require_once './libraries/transformations.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+$comments_map = array();
+$mime_map = array();
+$available_mime = array();
+
+$comments_map = PMA_getComments($db, $table);
+$header_cells[] = $strComments;
+
+if ($cfgRelation['mimework'] && $cfg['BrowseMIME']) {
+ $mime_map = PMA_getMIME($db, $table);
+ $available_mime = PMA_getAvailableMIMEtypes();
+
+ $hint = '<br />' .
+ sprintf($strMIME_transformation_note,
+ '<a href="transformation_overview.php?'
+ . PMA_generate_common_url($db, $table) . '" target="_blank">',
+ '</a>');
+
+
+ $header_cells[] = $strMIME_MIMEtype;
+ $header_cells[] = $strMIME_transformation;
+ $header_cells[] = $strMIME_transformation_options
+ . PMA_showHint($strMIME_transformation_options_note . $hint);
+}
+
+// garvin: workaround for field_fulltext, because its submitted indizes contain
+// the index as a value, not a key. Inserted here for easier maintaineance
+// and less code to change in existing files.
+if (isset($field_fulltext) && is_array($field_fulltext)) {
+ foreach ($field_fulltext as $fulltext_nr => $fulltext_indexkey) {
+ $submit_fulltext[$fulltext_indexkey] = $fulltext_indexkey;
+ }
+}
+
+for ($i = 0; $i < $num_fields; $i++) {
+ if (! empty($regenerate)) {
+ // An error happened with previous inputs, so we will restore the data
+ // to embed it once again in this form.
+
+ $row['Field'] = (isset($_REQUEST['field_name'][$i]) ? $_REQUEST['field_name'][$i] : false);
+ $row['Type'] = (isset($_REQUEST['field_type'][$i]) ? $_REQUEST['field_type'][$i] : false);
+ $row['Collation'] = (isset($_REQUEST['field_collation'][$i]) ? $_REQUEST['field_collation'][$i] : '');
+ $row['Null'] = (isset($_REQUEST['field_null'][$i]) ? $_REQUEST['field_null'][$i] : '');
+
+ if (isset($_REQUEST['field_key'][$i]) && $_REQUEST['field_key'][$i] == 'primary_' . $i) {
+ $row['Key'] = 'PRI';
+ } elseif (isset($_REQUEST['field_key'][$i]) && $_REQUEST['field_key'][$i] == 'index_' . $i) {
+ $row['Key'] = 'MUL';
+ } elseif (isset($_REQUEST['field_key'][$i]) && $_REQUEST['field_key'][$i] == 'unique_' . $i) {
+ $row['Key'] = 'UNI';
+ } elseif (isset($_REQUEST['field_key'][$i]) && $_REQUEST['field_key'][$i] == 'fulltext_' . $i) {
+ $row['Key'] = 'FULLTEXT';
+ } else {
+ $row['Key'] = '';
+ }
+
+ $row['DefaultType'] = (isset($_REQUEST['field_default_type'][$i]) ? $_REQUEST['field_default_type'][$i] : 'USER_DEFINED');
+ $row['DefaultValue'] = (isset($_REQUEST['field_default_value'][$i]) ? $_REQUEST['field_default_value'][$i] : '');
+
+ switch ($row['DefaultType']) {
+ case 'NONE' :
+ $row['Default'] = null;
+ break;
+ case 'USER_DEFINED' :
+ $row['Default'] = $row['DefaultValue'];
+ break;
+ case 'NULL' :
+ case 'CURRENT_TIMESTAMP' :
+ $row['Default'] = $row['DefaultType'];
+ break;
+ }
+
+ $row['Extra'] = (isset($_REQUEST['field_extra'][$i]) ? $_REQUEST['field_extra'][$i] : false);
+ $row['Comment'] = (isset($submit_fulltext[$i]) && ($submit_fulltext[$i] == $i) ? 'FULLTEXT' : false);
+
+ $submit_length = (isset($_REQUEST['field_length'][$i]) ? $_REQUEST['field_length'][$i] : false);
+ $submit_attribute = (isset($_REQUEST['field_attribute'][$i]) ? $_REQUEST['field_attribute'][$i] : false);
+
+ $submit_default_current_timestamp = (isset($_REQUEST['field_default_current_timestamp'][$i]) ? true : false);
+
+ if (isset($_REQUEST['field_comments'][$i])) {
+ $comments_map[$row['Field']] = $_REQUEST['field_comments'][$i];
+ }
+
+ if (isset($_REQUEST['field_mimetype'][$i])) {
+ $mime_map[$row['Field']]['mimetype'] = $_REQUEST['field_mimetype'][$i];
+ }
+
+ if (isset($_REQUEST['field_transformation'][$i])) {
+ $mime_map[$row['Field']]['transformation'] = $_REQUEST['field_transformation'][$i];
+ }
+
+ if (isset($_REQUEST['field_transformation_options'][$i])) {
+ $mime_map[$row['Field']]['transformation_options'] = $_REQUEST['field_transformation_options'][$i];
+ }
+
+ } elseif (isset($fields_meta[$i])) {
+ $row = $fields_meta[$i];
+ switch ($row['Default']) {
+ case null:
+ if ($row['Null'] == 'YES') {
+ $row['DefaultType'] = 'NULL';
+ } else {
+ $row['DefaultType'] = 'NONE';
+ }
+ $row['DefaultValue'] = '';
+ break;
+ case 'CURRENT_TIMESTAMP':
+ $row['DefaultType'] = 'CURRENT_TIMESTAMP';
+ $row['DefaultValue'] = '';
+ break;
+ default:
+ $row['DefaultType'] = 'USER_DEFINED';
+ $row['DefaultValue'] = $row['Default'];
+ break;
+ }
+ }
+
+ if (isset($row['Type'])) {
+ $extracted_fieldspec = PMA_extractFieldSpec($row['Type']);
+ if ($extracted_fieldspec['type'] == 'bit') {
+ $row['Default'] = PMA_printable_bit_value($row['Default'], $extracted_fieldspec['spec_in_brackets']);
+ }
+ }
+ // Cell index: If certain fields get left out, the counter shouldn't change.
+ $ci = 0;
+ // Everytime a cell shall be left out the STRG-jumping feature, $ci_offset
+ // has to be incremented ($ci_offset++)
+ $ci_offset = -1;
+
+ // old column name
+ if ($is_backup) {
+ if (! empty($true_selected[$i])) {
+ $_form_params['field_orig[' . $i . ']'] = $true_selected[$i];
+ } elseif (isset($row['Field'])) {
+ $_form_params['field_orig[' . $i . ']'] = $row['Field'];
+ } else {
+ $_form_params['field_orig[' . $i . ']'] = '';
+ }
+ }
+
+ // column name
+ $content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '"'
+ . ' type="text" name="field_name[' . $i . ']"'
+ . ' maxlength="64" class="textfield" title="' . $strField . '"'
+ . ' size="' . ($GLOBALS['cfg']['DefaultPropDisplay'] == 'horizontal' ? '10' : '30') . '"'
+ . ' value="' . (isset($row['Field']) ? htmlspecialchars($row['Field']) : '') . '"'
+ . ' />';
+ $ci++;
+
+ // column type
+ $content_cells[$i][$ci] = '<select name="field_type[' . $i . ']"'
+ .' id="field_' . $i . '_' . ($ci - $ci_offset) . '" >';
+
+ if (empty($row['Type'])) {
+ // creating a column
+ $row['Type'] = '';
+ $type = '';
+ } else {
+ $type = $row['Type'];
+ }
+
+ if (! empty($row['Type'])) {
+ $type = $extracted_fieldspec['type'];
+ if ('set' == $extracted_fieldspec['type'] || 'enum' == $extracted_fieldspec['type']) {
+ $length = $extracted_fieldspec['spec_in_brackets'];
+ } else {
+ // strip the "BINARY" attribute, except if we find "BINARY(" because
+ // this would be a BINARY or VARBINARY field type
+ $type = preg_replace('@BINARY([^\(])@i', '', $type);
+ $type = preg_replace('@ZEROFILL@i', '', $type);
+ $type = preg_replace('@UNSIGNED@i', '', $type);
+ $length = $extracted_fieldspec['spec_in_brackets'];
+ } // end if else
+ } else {
+ // creating a column
+ $length = '';
+ }
+
+ // some types, for example longtext, are reported as
+ // "longtext character set latin7" when their charset and / or collation
+ // differs from the ones of the corresponding database.
+ $tmp = strpos($type, 'character set');
+ if ($tmp) {
+ $type = substr($type, 0, $tmp - 1);
+ }
+
+ if (isset($submit_length) && $submit_length != false) {
+ $length = $submit_length;
+ }
+
+ // rtrim the type, for cases like "float unsigned"
+ $type = rtrim($type);
+ $type_upper = strtoupper($type);
+
+ foreach ($cfg['ColumnTypes'] as $col_goup => $column_type) {
+ if (is_array($column_type)) {
+ $content_cells[$i][$ci] .= '<optgroup label="' . htmlspecialchars($col_goup) . '">';
+ foreach ($column_type as $col_group_type) {
+ $content_cells[$i][$ci] .= '<option value="'. $col_group_type . '"';
+ if ($type_upper == strtoupper($col_group_type)) {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= '>' . $col_group_type . '</option>';
+ }
+ $content_cells[$i][$ci] .= '</optgroup>';
+ continue;
+ }
+
+ $content_cells[$i][$ci] .= '<option value="'. $column_type . '"';
+ if ($type_upper == strtoupper($column_type)) {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= '>' . $column_type . '</option>';
+ } // end for
+
+ $content_cells[$i][$ci] .= ' </select>';
+ $ci++;
+
+ // old column length
+ if ($is_backup) {
+ $_form_params['field_length_orig[' . $i . ']'] = $length;
+ }
+
+ // column length
+ if (isset($extracted_fieldspec) && ('set' == $extracted_fieldspec['type'] || 'enum' == $extracted_fieldspec['type'])) {
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ $length_to_display = htmlspecialchars($length);
+ } else {
+ $length_to_display = $length;
+ $binary = false;
+ $unsigned = stristr($row['Type'], 'unsigned');
+ $zerofill = stristr($row['Type'], 'zerofill');
+ }
+
+ $content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '"'
+ . ' type="text" name="field_length[' . $i . ']" size="' . $length_values_input_size . '"'
+ . ' value="' . htmlspecialchars($length_to_display) . '"'
+ . ' class="textfield" />';
+ $ci++;
+
+ // column default
+ /**
+ * having NULL enabled does not implicit having Default with NULL
+ *
+ if (isset($row)
+ && !isset($row['Default']) && isset($row['Null']) && $row['Null'] == 'YES') {
+ $row['Default'] = 'NULL';
+ }
+ */
+
+ // old column default
+ if ($is_backup) {
+ $_form_params['field_default_orig[' . $i . ']'] =
+ (isset($row['Default']) ? $row['Default'] : '');
+ }
+
+ // here we put 'NONE' as the default value of drop-down; otherwise
+ // users would have problems if they forget to enter the default
+ // value (example, for an INT)
+ $default_options = array(
+ 'NONE' => $strNone,
+ 'USER_DEFINED' => $strAsDefined,
+ 'NULL' => 'NULL',
+ 'CURRENT_TIMESTAMP' => 'CURRENT_TIMESTAMP',
+ );
+
+ // for a TIMESTAMP, do not show CURRENT_TIMESTAMP as a default value
+ if ($type_upper == 'TIMESTAMP'
+ && $default_current_timestamp
+ && isset($row['Default'])) {
+ $row['Default'] = '';
+ }
+
+ $content_cells[$i][$ci] = '<select name="field_default_type[' . $i . ']">';
+ foreach ($default_options as $key => $value) {
+ $content_cells[$i][$ci] .= '<option value="' . $key . '"';
+ // is only set when we go back to edit a field's structure
+ if (isset($row['DefaultType']) && $row['DefaultType'] == $key) {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= ' >' . $value . '</option>';
+ }
+ $content_cells[$i][$ci] .= '</select>';
+ $content_cells[$i][$ci] .= '<br />';
+ $content_cells[$i][$ci] .= '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '"'
+ . ' type="text" name="field_default_value[' . $i . ']" size="12"'
+ . ' value="' . (isset($row['DefaultValue']) ? htmlspecialchars($row['DefaultValue']) : '') . '"'
+ . ' class="textfield" />';
+ $ci++;
+
+ // column collation
+ $tmp_collation = empty($row['Collation']) ? null : $row['Collation'];
+ $content_cells[$i][$ci] = PMA_generateCharsetDropdownBox(
+ PMA_CSDROPDOWN_COLLATION, 'field_collation[' . $i . ']',
+ 'field_' . $i . '_' . ($ci - $ci_offset), $tmp_collation, false);
+ unset($tmp_collation);
+ $ci++;
+
+ // column attribute
+ $content_cells[$i][$ci] = '<select style="font-size: 70%;"'
+ . ' name="field_attribute[' . $i . ']"'
+ . ' id="field_' . $i . '_' . ($ci - $ci_offset) . '">';
+
+ $attribute = '';
+ if ($binary) {
+ $attribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $attribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $attribute = 'UNSIGNED ZEROFILL';
+ }
+ if (isset($row['Extra']) && $row['Extra'] == 'on update CURRENT_TIMESTAMP') {
+ $attribute = 'on update CURRENT_TIMESTAMP';
+ }
+
+ if (isset($submit_attribute) && $submit_attribute != false) {
+ $attribute = $submit_attribute;
+ }
+
+ // here, we have a TIMESTAMP that SHOW FULL FIELDS reports as having the
+ // NULL attribute, but SHOW CREATE TABLE says the contrary. Believe
+ // the latter.
+ if (PMA_MYSQL_INT_VERSION < 50025
+ && isset($row['Field'])
+ && isset($analyzed_sql[0]['create_table_fields'][$row['Field']]['type'])
+ && $analyzed_sql[0]['create_table_fields'][$row['Field']]['type'] == 'TIMESTAMP'
+ && $analyzed_sql[0]['create_table_fields'][$row['Field']]['timestamp_not_null'] == true) {
+ $row['Null'] = '';
+ }
+
+ // MySQL 4.1.2+ TIMESTAMP options
+ // (if on_update_current_timestamp is set, then it's TRUE)
+ if (isset($row['Field'])
+ && isset($analyzed_sql[0]['create_table_fields'][$row['Field']]['on_update_current_timestamp'])) {
+ $attribute = 'on update CURRENT_TIMESTAMP';
+ }
+ if ((isset($row['Field'])
+ && isset($analyzed_sql[0]['create_table_fields'][$row['Field']]['default_current_timestamp']))
+ || (isset($submit_default_current_timestamp) && $submit_default_current_timestamp)) {
+ $default_current_timestamp = true;
+ } else {
+ $default_current_timestamp = false;
+ }
+
+ $cnt_attribute_types = count($cfg['AttributeTypes']);
+ for ($j = 0; $j < $cnt_attribute_types; $j++) {
+ $content_cells[$i][$ci] .= ' <option value="'. $cfg['AttributeTypes'][$j] . '"';
+ if (strtoupper($attribute) == strtoupper($cfg['AttributeTypes'][$j])) {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= '>' . $cfg['AttributeTypes'][$j] . '</option>';
+ }
+
+ $content_cells[$i][$ci] .= '</select>';
+ $ci++;
+
+ // column NULL
+ $content_cells[$i][$ci] = '<input name="field_null[' . $i . ']"'
+ . ' id="field_' . $i . '_' . ($ci - $ci_offset) . '"';
+
+ if (! empty($row['Null']) && $row['Null'] != 'NO' && $row['Null'] != 'NOT NULL') {
+ $content_cells[$i][$ci] .= ' checked="checked"';
+ }
+
+ $content_cells[$i][$ci] .= ' type="checkbox" value="NULL" />';
+ $ci++;
+
+ // column indexes
+ // lem9: See my other comment about removing this 'if'.
+ if (!$is_backup) {
+ $content_cells[$i][$ci] = '<select name="field_key[' . $i . ']"'
+ . ' id="field_' . $i . '_' . ($ci - $ci_offset) . '">';
+ $content_cells[$i][$ci] .= '<option value="none_' . $i . '">---</option>';
+
+ $content_cells[$i][$ci] .= '<option value="primary_' . $i . '" title="' . $strPrimary . '"';
+ if (isset($row['Key']) && $row['Key'] == 'PRI') {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= '>PRIMARY</option>';
+
+ $content_cells[$i][$ci] .= '<option value="unique_' . $i . '" title="' . $strUnique . '"';
+ if (isset($row['Key']) && $row['Key'] == 'UNI') {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= '>UNIQUE</option>';
+
+ $content_cells[$i][$ci] .= '<option value="index_' . $i . '" title="' . $strIndex . '"';
+ if (isset($row['Key']) && $row['Key'] == 'MUL') {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= '>INDEX</option>';
+
+ $content_cells[$i][$ci] .= '<option value="fulltext_' . $i . '" title="' . $strIdxFulltext . '"';
+ if (isset($row['Key']) && $row['Key'] == 'FULLTEXT') {
+ $content_cells[$i][$ci] .= ' selected="selected"';
+ }
+ $content_cells[$i][$ci] .= '>FULLTEXT</option>';
+
+ $content_cells[$i][$ci] .= '</select>';
+ $ci++;
+ } // end if ($action ==...)
+
+ // column auto_increment
+ $content_cells[$i][$ci] = '<input name="field_extra[' . $i . ']"'
+ . ' id="field_' . $i . '_' . ($ci - $ci_offset) . '"';
+
+ if (isset($row['Extra']) && $row['Extra'] == 'auto_increment') {
+ $content_cells[$i][$ci] .= ' checked="checked"';
+ }
+
+ $content_cells[$i][$ci] .= ' type="checkbox" value="AUTO_INCREMENT" />';
+ $ci++;
+
+ // column comments
+ $content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '"'
+ . ' type="text" name="field_comments[' . $i . ']" size="12"'
+ . ' value="' . (isset($row['Field']) && is_array($comments_map) && isset($comments_map[$row['Field']]) ? htmlspecialchars($comments_map[$row['Field']]) : '') . '"'
+ . ' class="textfield" />';
+ $ci++;
+
+ // column MIME-types
+ if ($cfgRelation['mimework'] && $cfg['BrowseMIME'] && $cfgRelation['commwork']) {
+ $content_cells[$i][$ci] = '<select id="field_' . $i . '_' . ($ci - $ci_offset) . '" size="1" name="field_mimetype[' . $i . ']">';
+ $content_cells[$i][$ci] .= ' <option value="">&nbsp;</option>';
+
+ if (is_array($available_mime['mimetype'])) {
+ foreach ($available_mime['mimetype'] AS $mimekey => $mimetype) {
+ $checked = (isset($row['Field']) && isset($mime_map[$row['Field']]['mimetype']) && ($mime_map[$row['Field']]['mimetype'] == str_replace('/', '_', $mimetype)) ? 'selected ' : '');
+ $content_cells[$i][$ci] .= ' <option value="' . str_replace('/', '_', $mimetype) . '" ' . $checked . '>' . htmlspecialchars($mimetype) . '</option>';
+ }
+ }
+
+ $content_cells[$i][$ci] .= '</select>';
+ $ci++;
+
+ $content_cells[$i][$ci] = '<select id="field_' . $i . '_' . ($ci - $ci_offset) . '" size="1" name="field_transformation[' . $i . ']">';
+ $content_cells[$i][$ci] .= ' <option value="" title="' . $strNone . '"></option>';
+ if (is_array($available_mime['transformation'])) {
+ foreach ($available_mime['transformation'] AS $mimekey => $transform) {
+ $checked = (isset($row['Field']) && isset($mime_map[$row['Field']]['transformation']) && (preg_match('@' . preg_quote($available_mime['transformation_file'][$mimekey]) . '3?@i', $mime_map[$row['Field']]['transformation'])) ? 'selected ' : '');
+ $tooltip = 'strTransformation_' . strtolower(str_replace('.inc.php', '', $available_mime['transformation_file'][$mimekey]));
+ $tooltip = isset($$tooltip) ? $$tooltip : sprintf(str_replace('<br />', ' ', $strMIME_nodescription), 'PMA_transformation_' . $tooltip . '()');
+ $content_cells[$i][$ci] .= '<option value="' . $available_mime['transformation_file'][$mimekey] . '" ' . $checked . ' title="' . htmlspecialchars($tooltip) . '">' . htmlspecialchars($transform) . '</option>';
+ }
+ }
+
+ $content_cells[$i][$ci] .= '</select>';
+ $ci++;
+
+ $content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '"'
+ . ' type="text" name="field_transformation_options[' . $i . ']"'
+ . ' size="16" class="textfield"'
+ . ' value="' . (isset($row['Field']) && isset($mime_map[$row['Field']]['transformation_options']) ? htmlspecialchars($mime_map[$row['Field']]['transformation_options']) : '') . '"'
+ . ' />';
+ //$ci++;
+ }
+} // end for
+
+if ($cfg['CtrlArrowsMoving']) {
+ ?>
+<script src="./js/keyhandler.js" type="text/javascript"></script>
+<script type="text/javascript">
+// <![CDATA[
+var switch_movement = <?php echo $display_type == 'horizontal' ? '0' : '1'; ?>;
+document.onkeydown = onKeyDownArrowsHandler;
+// ]]>
+</script>
+ <?php
+}
+?>
+
+<form method="post" action="<?php echo $action; ?>">
+<?php
+echo PMA_generate_common_hidden_inputs($_form_params);
+unset($_form_params);
+
+if (is_array($content_cells) && is_array($header_cells)) {
+ // last row is for javascript insert
+ //$empty_row = array_pop($content_cells);
+
+ echo '<table id="table_columns">';
+ if ($display_type == 'horizontal') {
+ ?>
+<tr>
+ <?php foreach ($header_cells as $header_val) { ?>
+ <th><?php echo $header_val; ?></th>
+ <?php } ?>
+</tr>
+ <?php
+
+ $odd_row = true;
+ foreach ($content_cells as $content_row) {
+ echo '<tr class="' . ($odd_row ? 'odd' : 'even') . ' noclick">';
+ $odd_row = ! $odd_row;
+
+ if (is_array($content_row)) {
+ foreach ($content_row as $content_row_val) {
+ ?>
+ <td align="center"><?php echo $content_row_val; ?></td>
+ <?php
+ }
+ }
+ echo '</tr>';
+ }
+ } else {
+ $i = 0;
+ $odd_row = true;
+ foreach ($header_cells as $header_val) {
+ echo '<tr class="' . ($odd_row ? 'odd' : 'even') . ' noclick">';
+ $odd_row = ! $odd_row;
+ ?>
+ <th><?php echo $header_val; ?></th>
+ <?php
+ foreach ($content_cells as $content_cell) {
+ if (isset($content_cell[$i]) && $content_cell[$i] != '') {
+ ?>
+ <td><?php echo $content_cell[$i]; ?></td>
+ <?php
+ }
+ }
+ echo '</tr>';
+ $i++;
+ }
+ }
+ ?>
+</table>
+<br />
+ <?php
+}
+
+/**
+ * needs to be finished
+ *
+ *
+if ($display_type == 'horizontal') {
+ $new_field = '';
+ foreach ($empty_row as $content_row_val) {
+ $new_field .= '<td align="center">' . $content_row_val . '</td>';
+ }
+ ?>
+<script type="text/javascript">
+// <![CDATA[
+var odd_row = <?php echo $odd_row; ?>;
+
+function addField() {
+ var new_fields = document.getElementById('added_fields').value;
+ var new_field_container = document.getElementById('table_columns');
+ var new_field = '<?php echo preg_replace('|\s+|', ' ', preg_replace('|\'|', '\\\'', $new_field)); ?>';
+ var i = 0;
+ for (i = 0; i < new_fields; i++) {
+ if (odd_row) {
+ new_field_container.innerHTML += '<tr class="odd">' + new_field + '</tr>';
+ } else {
+ new_field_container.innerHTML += '<tr class="even">' + new_field + '</tr>';
+ }
+ odd_row = ! odd_row;
+ }
+
+ return true;
+}
+// ]]>
+</script>
+ <?php
+}
+ */
+
+if ($action == 'tbl_create.php') {
+ ?>
+ <table>
+ <tr valign="top">
+ <th><?php echo $strTableComments; ?>:&nbsp;</th>
+ <td width="25">&nbsp;</td>
+ <th><?php echo $strStorageEngine; ?>:
+ <?php echo PMA_showMySQLDocu('Storage_engines', 'Storage_engines'); ?>
+ </th>
+ <td width="25">&nbsp;</td>
+ <th><?php echo $strCollation ;?>:&nbsp;</th>
+ </tr>
+ <tr><td><input type="text" name="comment" size="40" maxlength="80"
+ value="<?php echo (isset($_REQUEST['comment']) ? htmlspecialchars($_REQUEST['comment']) : ''); ?>"
+ class="textfield" />
+ </td>
+ <td width="25">&nbsp;</td>
+ <td>
+ <?php
+ echo PMA_StorageEngine::getHtmlSelect('tbl_type', null,
+ (isset($_REQUEST['tbl_type']) ? $_REQUEST['tbl_type'] : null));
+ ?>
+ </td>
+ <td width="25">&nbsp;</td>
+ <td>
+ <?php
+ echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'tbl_collation',
+ null, (isset($_REQUEST['tbl_collation']) ? $_REQUEST['tbl_collation'] : null), false, 3);
+ ?>
+ </td>
+ </tr>
+ <?php
+ if (PMA_Partition::havePartitioning()) {
+ ?>
+ <tr valign="top">
+ <th><?php echo $strPartitionDefinition; ?>:&nbsp;<?php echo PMA_showMySQLDocu('Partitioning', 'Partitioning'); ?>
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <textarea name="partition_definition" id="partitiondefinition"
+ cols="<?php echo $GLOBALS['cfg']['TextareaCols'];?>"
+ rows="<?php echo $GLOBALS['cfg']['TextareaRows'];?>"
+ dir="<?php echo $GLOBALS['text_dir'];?>"><?php echo (isset($_REQUEST['partition_definition']) ? htmlspecialchars($_REQUEST['partition_definition']) : ''); ?></textarea>
+ </td>
+ </tr>
+ <?php
+ }
+ ?>
+ </table>
+ <br />
+ <?php
+} // end if ($action == 'tbl_create.php')
+?>
+
+<fieldset class="tblFooters">
+ <input type="submit" name="do_save_data" value="<?php echo $strSave; ?>"
+ onclick="return checkTableEditForm(this.form, <?php echo $num_fields; ?>)" />
+<?php if ($action == 'tbl_create.php' || $action == 'tbl_addfield.php') { ?>
+ <?php echo $GLOBALS['strOr']; ?>
+ <?php echo sprintf($strAddFields, '<input type="text" id="added_fields" name="added_fields" size="2" value="1" onfocus="this.select()" />'); ?>
+ <input type="submit" name="submit_num_fields"
+ value="<?php echo $GLOBALS['strGo']; ?>"
+<?php /* onclick="if (addField()) return false;" */ ?>
+ onclick="return checkFormElementInRange(this.form, 'added_fields', '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidFieldAddCount']); ?>', 1)"
+ />
+<?php } ?>
+</fieldset>
+
+</form>
+
+<center><?php echo PMA_showMySQLDocu('SQL-Syntax', 'CREATE_TABLE'); ?></center>
diff --git a/libraries/tbl_replace_fields.inc.php b/libraries/tbl_replace_fields.inc.php
new file mode 100644
index 0000000000..64a9d1b34b
--- /dev/null
+++ b/libraries/tbl_replace_fields.inc.php
@@ -0,0 +1,132 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * handle field values (possibly uploaded from a file)
+ *
+ * garvin: original if-clause checked, whether input was stored in a possible
+ * fields_upload_XX var. Now check, if the field is set. If it is empty or a
+ * malicious file, do not alter fields contents. If an empty or invalid file is
+ * specified, the binary data gets deleter. Maybe a nice new text-variable is
+ * appropriate to document this behaviour.
+ *
+ * garvin: security cautions! You could trick the form and submit any file the
+ * webserver has access to for upload to a binary field. Shouldn't be that easy! ;)
+ *
+ * garvin: default is to advance to the field-value parsing. Will only be set to
+ * true when a binary file is uploaded, thus bypassing further manipulation of $val.
+ *
+ * note: grab_globals has extracted the fields from _FILES or HTTP_POST_FILES
+ *
+ * @version $Id$
+ *
+ * @uses $_REQUEST
+ * @uses defined()
+ * @uses define()
+ * @uses bin2hex()
+ * @uses strlen()
+ * @uses md5()
+ * @uses implode()
+ * @uses PMA_NO_VARIABLES_IMPORT
+ * @uses PMA_sqlAddslashes()
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * do not import request variable into global scope
+ */
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/File.class.php';
+
+$file_to_insert = new PMA_File();
+$file_to_insert->checkTblChangeForm($key, $rowcount);
+
+$possibly_uploaded_val = $file_to_insert->getContent();
+
+if ($file_to_insert->isError()) {
+ $message .= $file_to_insert->getError();
+}
+$file_to_insert->cleanUp();
+
+if (false !== $possibly_uploaded_val) {
+ $val = $possibly_uploaded_val;
+} else {
+
+ // f i e l d v a l u e i n t h e f o r m
+
+ if (isset($me_fields_type[$key])) {
+ $type = $me_fields_type[$key];
+ } else {
+ $type = '';
+ }
+
+ $f = 'field_' . md5($key);
+
+ if (0 === strlen($val)) {
+ // default
+ $val = "''";
+
+ switch ($type) {
+ case 'enum':
+ // if we have an enum, then construct the value
+ case 'set':
+ // if we have a set, then construct the value
+ case 'foreign':
+ // if we have a foreign key, then construct the value
+ if (! empty($_REQUEST[$f]['multi_edit'][$rowcount])) {
+ $val = implode(',', $_REQUEST[$f]['multi_edit'][$rowcount]);
+ $val = "'" . PMA_sqlAddslashes($val) . "'";
+ }
+ break;
+ case 'protected':
+ // here we are in protected mode (asked in the config)
+ // so tbl_change has put this special value in the
+ // fields array, so we do not change the field value
+ // but we can still handle field upload
+
+ // garvin: when in UPDATE mode, do not alter field's contents. When in INSERT
+ // mode, insert empty field because no values were submitted. If protected
+ // blobs where set, insert original fields content.
+ if (! empty($prot_row[$key])) {
+ $val = '0x' . bin2hex($prot_row[$key]);
+ } else {
+ $val = '';
+ }
+
+ break;
+ default:
+ // best way to avoid problems in strict mode (works also in non-strict mode)
+ if (isset($me_auto_increment) && isset($me_auto_increment[$key])) {
+ $val = 'NULL';
+ }
+ break;
+ }
+ } elseif ($type == 'bit') {
+ $val = preg_replace('/[^01]/', '0', $val);
+ $val = "b'" . PMA_sqlAddslashes($val) . "'";
+ } elseif (! ($type == 'timestamp' && $val == 'CURRENT_TIMESTAMP')) {
+ $val = "'" . PMA_sqlAddslashes($val) . "'";
+ }
+
+ // Was the Null checkbox checked for this field?
+ // (if there is a value, we ignore the Null checkbox: this could
+ // be possible if Javascript is disabled in the browser)
+ if (isset($me_fields_null[$key])
+ && $val == "''") {
+ $val = 'NULL';
+ }
+
+ // The Null checkbox was unchecked for this field
+ if (empty($val) && isset($me_fields_null_prev[$key]) && ! isset($me_fields_null[$key])) {
+ $val = "''";
+ }
+} // end else (field value in the form)
+unset($type, $f);
+?>
diff --git a/libraries/tbl_triggers.lib.php b/libraries/tbl_triggers.lib.php
new file mode 100644
index 0000000000..14f290653a
--- /dev/null
+++ b/libraries/tbl_triggers.lib.php
@@ -0,0 +1,52 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+$url_query .= '&amp;goto=tbl_structure.php';
+
+$triggers = PMA_DBI_get_triggers($db, $table);
+
+if ($triggers) {
+ echo '<div id="tabletriggers">' . "\n";
+ echo '<table class="data">' . "\n";
+ echo ' <caption class="tblHeaders">' . $strTriggers . '</caption>' . "\n";
+ echo sprintf('<tr>
+ <th>%s</th>
+ <th>&nbsp;</th>
+ <th>&nbsp;</th>
+ <th>%s</th>
+ <th>%s</th>
+ </tr>',
+ $strName,
+ $strTime,
+ $strEvent);
+ $ct=0;
+ $delimiter = '//';
+ foreach ($triggers as $trigger) {
+ $drop_and_create = $trigger['drop'] . $delimiter . "\n" . $trigger['create'] . "\n";
+
+ echo sprintf('<tr class="%s">
+ <td><strong>%s</strong></td>
+ <td>%s</td>
+ <td>%s</td>
+ <td>%s</td>
+ <td>%s</td>
+ </tr>',
+ ($ct%2 == 0) ? 'even' : 'odd',
+ $trigger['name'],
+ '<a href="tbl_sql.php?' . $url_query . '&amp;sql_query=' . urlencode($drop_and_create) . '&amp;show_query=1&amp;delimiter=' . urlencode($delimiter) . '">' . $titles['Change'] . '</a>',
+ '<a href="sql.php?' . $url_query . '&sql_query=' . urlencode($trigger['drop']) . '" onclick="return confirmLink(this, \'' . PMA_jsFormat($trigger['drop'], false) . '\')">' . $titles['Drop'] . '</a>',
+ $trigger['action_timing'],
+ $trigger['event_manipulation']);
+ $ct++;
+ }
+ echo '</table>';
+ echo '</div>' . "\n";
+}
+?>
diff --git a/libraries/tcpdf/LICENSE.TXT b/libraries/tcpdf/LICENSE.TXT
new file mode 100644
index 0000000000..b1e3f5a263
--- /dev/null
+++ b/libraries/tcpdf/LICENSE.TXT
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/libraries/tcpdf/font/LICENSE b/libraries/tcpdf/font/LICENSE
new file mode 100644
index 0000000000..56db9c0dd2
--- /dev/null
+++ b/libraries/tcpdf/font/LICENSE
@@ -0,0 +1,98 @@
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below)
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute the
+Font Software, including without limitation the rights to use, copy, merge,
+publish, distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright and trademark notices and this permission notice shall
+be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional glyphs or characters may be added to the Fonts, only if the fonts
+are renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream
+Vera" names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
+ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
+FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font Software
+without prior written authorization from the Gnome Foundation or Bitstream
+Inc., respectively. For further information, contact: fonts at gnome dot
+org.
+
+Arev Fonts Copyright
+------------------------------
+
+Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the fonts accompanying this license ("Fonts") and
+associated documentation files (the "Font Software"), to reproduce
+and distribute the modifications to the Bitstream Vera Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be included in all copies of one or more of the Font Software
+typefaces.
+
+The Font Software may be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may be
+modified and additional glyphs or characters may be added to the
+Fonts, only if the fonts are renamed to names not containing either
+the words "Tavmjong Bah" or the word "Arev".
+
+This License becomes null and void to the extent applicable to Fonts
+or Font Software that has been modified and is distributed under the
+"Tavmjong Bah Arev" names.
+
+The Font Software may be sold as part of a larger software package but
+no copy of one or more of the Font Software typefaces may be sold by
+itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the name of Tavmjong Bah shall not
+be used in advertising or otherwise to promote the sale, use or other
+dealings in this Font Software without prior written authorization
+from Tavmjong Bah. For further information, contact: tavmjong @ free
+. fr.
+
+$Id$
diff --git a/libraries/tcpdf/font/dejavusans-bold.ctg.z b/libraries/tcpdf/font/dejavusans-bold.ctg.z
new file mode 100644
index 0000000000..e95b4f3c61
--- /dev/null
+++ b/libraries/tcpdf/font/dejavusans-bold.ctg.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavusans-bold.z b/libraries/tcpdf/font/dejavusans-bold.z
new file mode 100644
index 0000000000..14a2f849be
--- /dev/null
+++ b/libraries/tcpdf/font/dejavusans-bold.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavusans.ctg.z b/libraries/tcpdf/font/dejavusans.ctg.z
new file mode 100644
index 0000000000..fa197554d5
--- /dev/null
+++ b/libraries/tcpdf/font/dejavusans.ctg.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavusans.php b/libraries/tcpdf/font/dejavusans.php
new file mode 100644
index 0000000000..948075d4c7
--- /dev/null
+++ b/libraries/tcpdf/font/dejavusans.php
@@ -0,0 +1,287 @@
+<?php
+$type='TrueTypeUnicode';
+$name='DejaVuSans';
+$desc=array('Ascent'=>928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>32,'FontBBox'=>'[-1021 -356 1681 1068]','ItalicAngle'=>0,'StemV'=>70,'MissingWidth'=>600);
+$up=-42;
+$ut=44;
+$cw=array(
+ 0=>600, 32=>318, 33=>401, 34=>460, 35=>838, 36=>636, 37=>950, 38=>780, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>361, 46=>318,
+ 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
+ 63=>531, 64=>1000, 65=>684, 66=>686, 67=>698, 68=>770, 69=>632, 70=>575, 71=>775, 72=>752, 73=>295, 74=>295, 75=>656, 76=>557, 77=>863, 78=>748,
+ 79=>787, 80=>603, 81=>787, 82=>695, 83=>635, 84=>611, 85=>732, 86=>684, 87=>989, 88=>685, 89=>611, 90=>685, 91=>390, 92=>337, 93=>390, 94=>838,
+ 95=>500, 96=>500, 97=>613, 98=>635, 99=>550, 100=>635, 101=>615, 102=>352, 103=>635, 104=>634, 105=>278, 106=>278, 107=>579, 108=>278, 109=>974, 110=>634,
+ 111=>612, 112=>635, 113=>635, 114=>411, 115=>521, 116=>392, 117=>634, 118=>592, 119=>818, 120=>592, 121=>592, 122=>525, 123=>636, 124=>337, 125=>636, 126=>838,
+ 8364=>636, 1027=>610, 8218=>318, 402=>352, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1342, 352=>635, 8249=>400, 338=>1070, 1036=>710, 381=>685, 1039=>752,
+ 8216=>318, 8217=>318, 8220=>518, 8221=>518, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>521, 8250=>400, 339=>1023, 1116=>604, 382=>525, 376=>611, 160=>318,
+ 161=>401, 162=>636, 163=>636, 164=>636, 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>471, 171=>612, 172=>838, 173=>361, 174=>1000, 175=>500, 176=>500,
+ 177=>838, 178=>401, 179=>401, 180=>500, 181=>636, 182=>636, 183=>318, 184=>500, 185=>401, 186=>471, 187=>612, 188=>969, 189=>969, 190=>969, 191=>531, 192=>684,
+ 193=>684, 194=>684, 195=>684, 196=>684, 197=>684, 198=>974, 199=>698, 200=>632, 201=>632, 202=>632, 203=>632, 204=>295, 205=>295, 206=>295, 207=>295, 208=>775,
+ 209=>748, 210=>787, 211=>787, 212=>787, 213=>787, 214=>787, 215=>838, 216=>787, 217=>732, 218=>732, 219=>732, 220=>732, 221=>611, 222=>605, 223=>630, 224=>613,
+ 225=>613, 226=>613, 227=>613, 228=>613, 229=>613, 230=>982, 231=>550, 232=>615, 233=>615, 234=>615, 235=>615, 236=>278, 237=>278, 238=>278, 239=>278, 240=>612,
+ 241=>634, 242=>612, 243=>612, 244=>612, 245=>612, 246=>612, 247=>838, 248=>612, 249=>634, 250=>634, 251=>634, 252=>634, 253=>592, 254=>635, 255=>592, 256=>684,
+ 257=>613, 258=>684, 259=>613, 260=>684, 261=>613, 262=>698, 263=>550, 264=>698, 265=>550, 266=>698, 267=>550, 268=>698, 269=>550, 270=>770, 271=>635, 272=>775,
+ 273=>635, 274=>632, 275=>615, 276=>632, 277=>615, 278=>632, 279=>615, 280=>632, 281=>615, 282=>632, 283=>615, 284=>775, 285=>635, 286=>775, 287=>635, 288=>775,
+ 289=>635, 290=>775, 291=>635, 292=>752, 293=>634, 294=>916, 295=>695, 296=>295, 297=>278, 298=>295, 299=>278, 300=>295, 301=>278, 302=>295, 303=>278, 304=>295,
+ 305=>278, 306=>590, 307=>556, 308=>295, 309=>278, 310=>656, 311=>579, 312=>579, 313=>557, 314=>293, 315=>557, 316=>278, 317=>557, 318=>375, 319=>557, 320=>342,
+ 321=>562, 322=>284, 323=>748, 324=>634, 325=>748, 326=>634, 327=>748, 328=>634, 329=>813, 330=>748, 331=>634, 332=>787, 333=>612, 334=>787, 335=>612, 336=>787,
+ 337=>612, 340=>695, 341=>411, 342=>695, 343=>411, 344=>695, 345=>411, 346=>635, 347=>521, 348=>635, 349=>521, 350=>635, 351=>521, 354=>611, 355=>392, 356=>611,
+ 357=>392, 358=>611, 359=>392, 360=>732, 361=>634, 362=>732, 363=>634, 364=>732, 365=>634, 366=>732, 367=>634, 368=>732, 369=>634, 370=>732, 371=>634, 372=>989,
+ 373=>818, 374=>611, 375=>592, 377=>685, 378=>525, 379=>685, 380=>525, 383=>352, 384=>635, 385=>735, 386=>686, 387=>635, 388=>686, 389=>635, 390=>703, 391=>698,
+ 392=>550, 393=>775, 394=>819, 395=>686, 396=>635, 397=>612, 398=>632, 399=>787, 400=>614, 401=>575, 403=>775, 404=>687, 405=>984, 406=>354, 407=>295, 408=>746,
+ 409=>579, 410=>278, 411=>592, 412=>974, 413=>748, 414=>634, 415=>787, 416=>913, 417=>612, 418=>949, 419=>759, 420=>652, 421=>635, 422=>695, 423=>635, 424=>521,
+ 425=>632, 426=>336, 427=>392, 428=>611, 429=>392, 430=>611, 431=>858, 432=>634, 433=>764, 434=>721, 435=>744, 436=>729, 437=>685, 438=>525, 439=>666, 440=>666,
+ 441=>578, 442=>525, 443=>636, 444=>666, 445=>578, 446=>510, 447=>635, 448=>295, 449=>492, 450=>459, 451=>295, 452=>1422, 453=>1299, 454=>1154, 455=>835, 456=>787,
+ 457=>457, 458=>931, 459=>924, 460=>797, 461=>684, 462=>613, 463=>295, 464=>278, 465=>787, 466=>612, 467=>732, 468=>634, 469=>732, 470=>634, 471=>732, 472=>634,
+ 473=>732, 474=>634, 475=>732, 476=>634, 477=>615, 478=>684, 479=>613, 480=>684, 481=>613, 482=>974, 483=>982, 484=>775, 485=>635, 486=>775, 487=>635, 488=>656,
+ 489=>579, 490=>787, 491=>612, 492=>787, 493=>612, 494=>666, 495=>578, 496=>278, 497=>1422, 498=>1299, 499=>1154, 500=>775, 501=>635, 502=>1113, 503=>682, 504=>748,
+ 505=>634, 506=>684, 507=>613, 508=>974, 509=>982, 510=>787, 511=>612, 512=>684, 513=>613, 514=>684, 515=>613, 516=>632, 517=>615, 518=>632, 519=>615, 520=>295,
+ 521=>278, 522=>295, 523=>278, 524=>787, 525=>612, 526=>787, 527=>612, 528=>695, 529=>411, 530=>695, 531=>411, 532=>732, 533=>634, 534=>732, 535=>634, 536=>635,
+ 537=>521, 538=>611, 539=>392, 540=>627, 541=>521, 542=>752, 543=>634, 544=>735, 545=>838, 546=>698, 547=>610, 548=>685, 549=>525, 550=>684, 551=>613, 552=>632,
+ 553=>615, 554=>787, 555=>612, 556=>787, 557=>612, 558=>787, 559=>612, 560=>787, 561=>612, 562=>611, 563=>592, 564=>475, 565=>843, 566=>477, 567=>278, 568=>998,
+ 569=>998, 570=>684, 571=>698, 572=>550, 573=>557, 574=>611, 575=>521, 576=>525, 577=>603, 578=>479, 579=>686, 580=>732, 581=>684, 582=>632, 583=>615, 584=>295,
+ 585=>278, 586=>781, 587=>635, 588=>695, 589=>411, 590=>611, 591=>592, 592=>600, 593=>635, 594=>635, 595=>635, 596=>549, 597=>550, 598=>635, 599=>696, 600=>615,
+ 601=>615, 602=>819, 603=>541, 604=>532, 605=>775, 606=>664, 607=>278, 608=>696, 609=>635, 610=>629, 611=>596, 612=>596, 613=>634, 614=>634, 615=>634, 616=>278,
+ 617=>338, 618=>372, 619=>396, 620=>487, 621=>278, 622=>706, 623=>974, 624=>974, 625=>974, 626=>646, 627=>642, 628=>634, 629=>612, 630=>858, 631=>728, 632=>660,
+ 633=>414, 634=>414, 635=>414, 636=>411, 637=>411, 638=>437, 639=>530, 640=>604, 641=>604, 642=>521, 643=>336, 644=>336, 645=>461, 646=>336, 647=>392, 648=>392,
+ 649=>634, 650=>618, 651=>598, 652=>592, 653=>818, 654=>592, 655=>611, 656=>525, 657=>525, 658=>578, 659=>578, 660=>510, 661=>510, 662=>510, 663=>510, 664=>787,
+ 665=>580, 666=>664, 667=>708, 668=>654, 669=>292, 670=>667, 671=>507, 672=>727, 673=>510, 674=>510, 675=>1014, 676=>1058, 677=>1013, 678=>824, 679=>610, 680=>778,
+ 681=>848, 682=>641, 683=>654, 684=>515, 685=>515, 686=>570, 687=>664, 688=>404, 689=>399, 690=>175, 691=>259, 692=>295, 693=>296, 694=>379, 695=>515, 696=>373,
+ 697=>278, 698=>460, 699=>318, 700=>318, 701=>318, 702=>307, 703=>307, 704=>370, 705=>370, 706=>500, 707=>500, 708=>500, 709=>500, 711=>500, 712=>275, 713=>500,
+ 714=>500, 715=>500, 716=>275, 717=>500, 718=>500, 719=>500, 720=>337, 721=>337, 722=>307, 723=>307, 724=>500, 725=>500, 726=>413, 727=>500, 728=>500, 729=>500,
+ 730=>500, 731=>500, 733=>500, 734=>315, 735=>500, 736=>426, 737=>166, 738=>373, 739=>444, 740=>370, 741=>493, 742=>493, 743=>493, 744=>493, 745=>493, 748=>500,
+ 749=>500, 750=>500, 755=>500, 759=>500, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0,
+ 780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0, 786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0,
+ 796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0, 802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0,
+ 812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0, 818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0,
+ 828=>0, 829=>0, 830=>0, 831=>0, 832=>0, 833=>0, 834=>0, 835=>0, 836=>0, 837=>0, 838=>0, 839=>0, 840=>0, 841=>0, 842=>0, 843=>0,
+ 844=>0, 845=>0, 846=>0, 847=>0, 849=>0, 850=>0, 851=>0, 855=>0, 856=>0, 860=>0, 861=>0, 862=>0, 863=>0, 864=>0, 865=>0, 866=>0,
+ 884=>278, 885=>278, 890=>500, 891=>549, 892=>550, 893=>549, 894=>337, 900=>500, 901=>500, 902=>692, 903=>318, 904=>746, 905=>871, 906=>408, 908=>813, 910=>825,
+ 911=>826, 912=>338, 913=>684, 914=>686, 915=>557, 916=>684, 917=>632, 918=>685, 919=>752, 920=>787, 921=>295, 922=>656, 923=>684, 924=>863, 925=>748, 926=>632,
+ 927=>787, 928=>752, 929=>603, 931=>632, 932=>611, 933=>611, 934=>787, 935=>685, 936=>787, 937=>764, 938=>295, 939=>611, 940=>659, 941=>548, 942=>654, 943=>338,
+ 944=>579, 945=>659, 946=>638, 947=>592, 948=>612, 949=>541, 950=>544, 951=>634, 952=>612, 953=>338, 954=>589, 955=>592, 956=>636, 957=>559, 958=>558, 959=>612,
+ 960=>602, 961=>635, 962=>587, 963=>634, 964=>602, 965=>579, 966=>660, 967=>578, 968=>660, 969=>837, 970=>338, 971=>579, 972=>612, 973=>579, 974=>837, 976=>614,
+ 977=>619, 978=>699, 979=>842, 980=>699, 981=>660, 982=>837, 983=>664, 984=>787, 985=>612, 986=>648, 987=>587, 988=>575, 989=>458, 990=>660, 991=>660, 992=>865,
+ 993=>627, 994=>934, 995=>837, 996=>758, 997=>659, 998=>792, 999=>615, 1000=>687, 1001=>607, 1002=>768, 1003=>625, 1004=>699, 1005=>612, 1006=>611, 1007=>536, 1008=>664,
+ 1009=>635, 1010=>550, 1011=>278, 1012=>787, 1013=>615, 1014=>615, 1015=>605, 1016=>635, 1017=>698, 1018=>863, 1019=>651, 1020=>635, 1021=>703, 1022=>698, 1023=>703, 1024=>632,
+ 1025=>632, 1026=>786, 1028=>698, 1029=>635, 1030=>295, 1031=>295, 1032=>295, 1033=>1094, 1034=>1045, 1035=>786, 1037=>748, 1038=>609, 1040=>684, 1041=>686, 1042=>686, 1043=>610,
+ 1044=>781, 1045=>632, 1046=>1077, 1047=>641, 1048=>748, 1049=>748, 1050=>710, 1051=>752, 1052=>863, 1053=>752, 1054=>787, 1055=>752, 1056=>603, 1057=>698, 1058=>611, 1059=>609,
+ 1060=>861, 1061=>685, 1062=>776, 1063=>686, 1064=>1069, 1065=>1094, 1066=>833, 1067=>882, 1068=>686, 1069=>698, 1070=>1080, 1071=>695, 1072=>613, 1073=>617, 1074=>589, 1075=>525,
+ 1076=>691, 1077=>615, 1078=>901, 1079=>532, 1080=>650, 1081=>650, 1082=>604, 1083=>639, 1084=>754, 1085=>654, 1086=>612, 1087=>654, 1088=>635, 1089=>550, 1090=>583, 1091=>592,
+ 1092=>855, 1093=>592, 1094=>681, 1095=>591, 1096=>915, 1097=>942, 1098=>707, 1099=>790, 1100=>589, 1101=>549, 1102=>842, 1103=>602, 1104=>615, 1105=>615, 1106=>625, 1107=>525,
+ 1108=>549, 1109=>521, 1110=>278, 1111=>278, 1112=>278, 1113=>902, 1114=>898, 1115=>652, 1117=>650, 1118=>592, 1119=>654, 1120=>934, 1121=>837, 1122=>771, 1123=>672, 1124=>942,
+ 1125=>749, 1126=>879, 1127=>783, 1128=>1160, 1129=>1001, 1130=>787, 1131=>612, 1132=>1027, 1133=>824, 1134=>636, 1135=>541, 1136=>856, 1137=>876, 1138=>787, 1139=>592, 1140=>781,
+ 1141=>665, 1142=>781, 1143=>665, 1144=>992, 1145=>904, 1146=>953, 1147=>758, 1148=>1180, 1149=>1028, 1150=>934, 1151=>837, 1152=>698, 1153=>550, 1154=>502, 1155=>0, 1156=>0,
+ 1157=>0, 1158=>0, 1160=>418, 1161=>418, 1162=>772, 1163=>677, 1164=>686, 1165=>589, 1166=>603, 1167=>635, 1168=>610, 1169=>525, 1170=>675, 1171=>556, 1172=>624, 1173=>530,
+ 1174=>1077, 1175=>901, 1176=>641, 1177=>532, 1178=>710, 1179=>604, 1180=>710, 1181=>604, 1182=>710, 1183=>604, 1184=>856, 1185=>832, 1186=>752, 1187=>661, 1188=>1014, 1189=>877,
+ 1190=>1081, 1191=>916, 1192=>796, 1193=>651, 1194=>698, 1195=>550, 1196=>611, 1197=>529, 1198=>611, 1199=>592, 1200=>611, 1201=>592, 1202=>685, 1203=>592, 1204=>934, 1205=>807,
+ 1206=>686, 1207=>591, 1208=>686, 1209=>591, 1210=>686, 1211=>634, 1212=>941, 1213=>728, 1214=>941, 1215=>728, 1216=>295, 1217=>1077, 1218=>901, 1219=>656, 1220=>604, 1221=>776,
+ 1222=>670, 1223=>752, 1224=>661, 1225=>776, 1226=>681, 1227=>686, 1228=>591, 1229=>888, 1230=>774, 1231=>278, 1232=>684, 1233=>613, 1234=>684, 1235=>613, 1236=>974, 1237=>982,
+ 1238=>632, 1239=>615, 1240=>787, 1241=>615, 1242=>787, 1243=>615, 1244=>1077, 1245=>901, 1246=>641, 1247=>532, 1248=>666, 1249=>578, 1250=>748, 1251=>650, 1252=>748, 1253=>650,
+ 1254=>787, 1255=>612, 1256=>787, 1257=>612, 1258=>787, 1259=>612, 1260=>698, 1261=>549, 1262=>609, 1263=>592, 1264=>609, 1265=>592, 1266=>609, 1267=>592, 1268=>686, 1269=>591,
+ 1270=>557, 1271=>491, 1272=>882, 1273=>790, 1274=>675, 1275=>556, 1276=>685, 1277=>592, 1278=>685, 1279=>592, 1280=>686, 1281=>589, 1282=>1006, 1283=>897, 1284=>975, 1285=>869,
+ 1286=>679, 1287=>588, 1288=>1072, 1289=>957, 1290=>1072, 1291=>967, 1292=>775, 1293=>660, 1294=>773, 1295=>711, 1296=>614, 1297=>541, 1298=>752, 1299=>639, 1329=>867, 1330=>732,
+ 1331=>882, 1332=>882, 1333=>732, 1334=>644, 1335=>682, 1336=>732, 1337=>851, 1338=>882, 1339=>732, 1340=>557, 1341=>824, 1342=>986, 1343=>732, 1344=>707, 1345=>644, 1346=>882,
+ 1347=>777, 1348=>882, 1349=>732, 1350=>840, 1351=>732, 1352=>732, 1353=>732, 1354=>791, 1355=>644, 1356=>882, 1357=>732, 1358=>882, 1359=>635, 1360=>732, 1361=>732, 1362=>799,
+ 1363=>861, 1364=>790, 1365=>787, 1366=>635, 1369=>307, 1370=>318, 1371=>500, 1372=>500, 1373=>392, 1374=>526, 1375=>500, 1377=>974, 1378=>634, 1379=>762, 1380=>767, 1381=>634,
+ 1382=>697, 1383=>533, 1384=>634, 1385=>700, 1386=>697, 1387=>634, 1388=>404, 1389=>894, 1390=>641, 1391=>634, 1392=>634, 1393=>635, 1394=>702, 1395=>634, 1396=>659, 1397=>278,
+ 1398=>760, 1399=>516, 1400=>634, 1401=>453, 1402=>974, 1403=>516, 1404=>769, 1405=>634, 1406=>696, 1407=>974, 1408=>634, 1409=>635, 1410=>501, 1411=>974, 1412=>648, 1413=>612,
+ 1414=>629, 1415=>763, 1417=>337, 1418=>433, 1456=>0, 1457=>0, 1458=>0, 1459=>0, 1460=>0, 1461=>0, 1462=>0, 1463=>0, 1464=>0, 1465=>0, 1467=>0, 1468=>0,
+ 1469=>0, 1471=>0, 1472=>295, 1473=>0, 1474=>0, 1475=>295, 1478=>456, 1479=>0, 1488=>629, 1489=>608, 1490=>448, 1491=>594, 1492=>640, 1493=>272, 1494=>423, 1495=>640,
+ 1496=>648, 1497=>272, 1498=>592, 1499=>556, 1500=>599, 1501=>640, 1502=>659, 1503=>272, 1504=>441, 1505=>700, 1506=>636, 1507=>640, 1508=>604, 1509=>521, 1510=>581, 1511=>663,
+ 1512=>592, 1513=>808, 1514=>657, 1520=>471, 1521=>454, 1522=>471, 1548=>323, 1557=>0, 1563=>318, 1567=>531, 1569=>470, 1570=>278, 1571=>278, 1572=>483, 1573=>278, 1574=>783,
+ 1575=>278, 1576=>941, 1577=>524, 1578=>941, 1579=>941, 1580=>646, 1581=>646, 1582=>646, 1583=>445, 1584=>445, 1585=>483, 1586=>483, 1587=>1221, 1588=>1221, 1589=>1209, 1590=>1209,
+ 1591=>925, 1592=>925, 1593=>597, 1594=>597, 1600=>293, 1601=>1037, 1602=>776, 1603=>824, 1604=>727, 1605=>619, 1606=>734, 1607=>524, 1608=>483, 1609=>783, 1610=>783, 1611=>0,
+ 1612=>0, 1613=>0, 1614=>0, 1615=>0, 1616=>0, 1617=>0, 1618=>0, 1619=>0, 1620=>0, 1621=>0, 1626=>500, 1632=>537, 1633=>537, 1634=>537, 1635=>537, 1636=>537,
+ 1637=>537, 1638=>537, 1639=>537, 1640=>537, 1641=>537, 1642=>537, 1643=>325, 1644=>318, 1645=>545, 1646=>941, 1647=>776, 1652=>292, 1657=>941, 1658=>941, 1659=>941, 1660=>941,
+ 1661=>941, 1662=>941, 1663=>941, 1664=>941, 1665=>646, 1666=>646, 1667=>646, 1668=>646, 1669=>646, 1670=>646, 1671=>646, 1681=>483, 1682=>483, 1685=>610, 1688=>483, 1697=>1037,
+ 1700=>1037, 1702=>1037, 1705=>895, 1711=>895, 1717=>727, 1722=>734, 1727=>646, 1734=>483, 1740=>783, 1742=>783, 1749=>524, 1776=>537, 1777=>537, 1778=>537, 1779=>537, 1780=>537,
+ 1781=>537, 1782=>537, 1783=>537, 1784=>537, 1785=>537, 3647=>652, 3713=>670, 3714=>684, 3716=>688, 3719=>482, 3720=>628, 3722=>684, 3725=>688, 3732=>669, 3733=>642, 3734=>645,
+ 3735=>655, 3737=>659, 3738=>625, 3739=>625, 3740=>745, 3741=>767, 3742=>687, 3743=>687, 3745=>702, 3746=>688, 3747=>684, 3749=>649, 3751=>632, 3754=>703, 3755=>819, 3757=>633,
+ 3758=>684, 3759=>788, 3760=>632, 3761=>0, 3762=>539, 3763=>539, 3764=>0, 3765=>0, 3766=>0, 3767=>0, 3768=>0, 3769=>0, 3771=>0, 3772=>0, 3773=>663, 3776=>375,
+ 3777=>657, 3778=>460, 3779=>547, 3780=>491, 3782=>674, 3784=>0, 3785=>0, 3786=>0, 3787=>0, 3788=>0, 3789=>0, 3804=>1028, 3805=>1028, 5121=>684, 5122=>684, 5123=>684,
+ 5124=>684, 5125=>769, 5126=>769, 5127=>769, 5129=>769, 5130=>769, 5131=>769, 5132=>835, 5133=>834, 5134=>835, 5135=>834, 5136=>835, 5137=>834, 5138=>967, 5139=>1007, 5140=>967,
+ 5141=>1007, 5142=>769, 5143=>967, 5144=>1007, 5145=>967, 5146=>1007, 5147=>769, 5149=>256, 5150=>543, 5151=>423, 5152=>423, 5153=>389, 5154=>389, 5155=>393, 5156=>389, 5157=>466,
+ 5158=>385, 5159=>256, 5160=>389, 5161=>389, 5162=>389, 5163=>1090, 5164=>909, 5165=>953, 5166=>1117, 5167=>684, 5168=>684, 5169=>684, 5170=>684, 5171=>729, 5172=>729, 5173=>729,
+ 5175=>729, 5176=>729, 5177=>729, 5178=>835, 5179=>834, 5180=>835, 5181=>834, 5182=>835, 5183=>834, 5184=>967, 5185=>1007, 5186=>967, 5187=>1007, 5188=>967, 5189=>1007, 5190=>967,
+ 5191=>1007, 5192=>729, 5193=>508, 5194=>192, 5196=>732, 5197=>732, 5198=>732, 5199=>732, 5200=>730, 5201=>730, 5202=>730, 5204=>730, 5205=>730, 5206=>730, 5207=>921, 5208=>889,
+ 5209=>921, 5210=>889, 5211=>921, 5212=>889, 5213=>928, 5214=>900, 5215=>928, 5216=>900, 5217=>947, 5218=>900, 5219=>947, 5220=>900, 5221=>947, 5222=>434, 5223=>877, 5224=>877,
+ 5225=>866, 5226=>890, 5227=>628, 5228=>628, 5229=>628, 5230=>628, 5231=>628, 5232=>694, 5233=>628, 5234=>628, 5235=>628, 5236=>860, 5237=>771, 5238=>815, 5239=>816, 5240=>815,
+ 5241=>816, 5242=>860, 5243=>771, 5244=>860, 5245=>771, 5246=>815, 5247=>816, 5248=>815, 5249=>816, 5250=>815, 5251=>407, 5252=>407, 5253=>750, 5254=>775, 5255=>750, 5256=>775,
+ 5257=>628, 5258=>628, 5259=>628, 5260=>628, 5261=>628, 5262=>628, 5263=>628, 5264=>628, 5265=>628, 5266=>860, 5267=>771, 5268=>815, 5269=>816, 5270=>815, 5271=>816, 5272=>860,
+ 5273=>771, 5274=>860, 5275=>771, 5276=>815, 5277=>816, 5278=>815, 5279=>816, 5280=>815, 5281=>435, 5282=>435, 5283=>610, 5284=>557, 5285=>557, 5286=>557, 5287=>610, 5288=>522,
+ 5289=>610, 5290=>557, 5291=>557, 5292=>749, 5293=>769, 5294=>746, 5295=>764, 5296=>746, 5297=>764, 5298=>749, 5299=>769, 5300=>749, 5301=>769, 5302=>746, 5303=>764, 5304=>746,
+ 5305=>764, 5306=>746, 5307=>386, 5308=>508, 5309=>386, 5312=>852, 5313=>852, 5314=>852, 5315=>823, 5316=>852, 5317=>852, 5318=>852, 5319=>852, 5320=>852, 5321=>1069, 5322=>1035,
+ 5323=>1059, 5324=>852, 5325=>1059, 5326=>852, 5327=>852, 5328=>600, 5329=>453, 5330=>600, 5331=>852, 5332=>852, 5333=>852, 5334=>852, 5335=>852, 5336=>852, 5337=>852, 5338=>852,
+ 5339=>852, 5340=>1069, 5341=>1035, 5342=>1059, 5343=>1030, 5344=>1059, 5345=>1030, 5346=>1069, 5347=>1035, 5348=>1069, 5349=>1035, 5350=>1083, 5351=>1030, 5352=>1083, 5353=>1030, 5354=>600,
+ 5356=>729, 5357=>603, 5358=>603, 5359=>603, 5360=>603, 5361=>603, 5362=>661, 5363=>603, 5364=>603, 5365=>603, 5366=>834, 5367=>754, 5368=>792, 5369=>771, 5370=>792, 5371=>771,
+ 5372=>834, 5373=>754, 5374=>834, 5375=>754, 5376=>792, 5377=>771, 5378=>792, 5379=>771, 5380=>792, 5381=>418, 5382=>420, 5383=>418, 5392=>712, 5393=>712, 5394=>712, 5395=>892,
+ 5396=>892, 5397=>892, 5398=>892, 5399=>910, 5400=>872, 5401=>910, 5402=>872, 5403=>910, 5404=>872, 5405=>1140, 5406=>1100, 5407=>1140, 5408=>1100, 5409=>1140, 5410=>1100, 5411=>1140,
+ 5412=>1100, 5413=>641, 5414=>627, 5415=>627, 5416=>627, 5417=>627, 5418=>627, 5419=>667, 5420=>627, 5421=>627, 5422=>627, 5423=>844, 5424=>781, 5425=>816, 5426=>818, 5427=>816,
+ 5428=>818, 5429=>844, 5430=>781, 5431=>844, 5432=>781, 5433=>816, 5434=>818, 5435=>816, 5436=>818, 5437=>816, 5438=>418, 5440=>389, 5441=>484, 5442=>916, 5443=>916, 5444=>916,
+ 5445=>916, 5446=>916, 5447=>916, 5448=>603, 5449=>603, 5450=>603, 5451=>603, 5452=>603, 5453=>603, 5454=>834, 5455=>754, 5456=>418, 5458=>729, 5459=>684, 5460=>684, 5461=>684,
+ 5462=>684, 5463=>726, 5464=>726, 5465=>726, 5466=>726, 5467=>924, 5468=>1007, 5469=>508, 5470=>732, 5471=>732, 5472=>732, 5473=>732, 5474=>732, 5475=>732, 5476=>730, 5477=>730,
+ 5478=>730, 5479=>730, 5480=>947, 5481=>900, 5482=>508, 5492=>831, 5493=>831, 5494=>831, 5495=>831, 5496=>831, 5497=>831, 5498=>831, 5499=>563, 5500=>752, 5501=>484, 5502=>1047,
+ 5503=>1047, 5504=>1047, 5505=>1047, 5506=>1047, 5507=>1047, 5508=>1047, 5509=>825, 5514=>831, 5515=>831, 5516=>831, 5517=>831, 5518=>1259, 5519=>1259, 5520=>1259, 5521=>1002, 5522=>1002,
+ 5523=>1259, 5524=>1259, 5525=>700, 5526=>1073, 5536=>852, 5537=>852, 5538=>852, 5539=>852, 5540=>852, 5541=>852, 5542=>600, 5543=>643, 5544=>643, 5545=>643, 5546=>643, 5547=>643,
+ 5548=>643, 5549=>643, 5550=>418, 5551=>628, 5598=>770, 5601=>767, 5702=>468, 5703=>468, 5742=>444, 5743=>1047, 5744=>1310, 5745=>1632, 5746=>1632, 5747=>1375, 5748=>1375, 5749=>1632,
+ 5750=>1632, 7424=>592, 7425=>717, 7426=>982, 7427=>586, 7428=>550, 7429=>605, 7430=>605, 7431=>491, 7432=>541, 7433=>278, 7434=>395, 7435=>579, 7436=>583, 7437=>754, 7438=>650,
+ 7439=>612, 7440=>550, 7441=>684, 7442=>684, 7443=>684, 7444=>1023, 7446=>612, 7447=>612, 7448=>524, 7449=>602, 7450=>602, 7451=>583, 7452=>574, 7453=>737, 7454=>948, 7455=>638,
+ 7456=>592, 7457=>818, 7458=>525, 7459=>526, 7462=>583, 7463=>592, 7464=>564, 7465=>524, 7466=>590, 7467=>639, 7468=>431, 7469=>613, 7470=>432, 7472=>485, 7473=>398, 7474=>398,
+ 7475=>488, 7476=>474, 7477=>186, 7478=>186, 7479=>413, 7480=>351, 7481=>543, 7482=>471, 7483=>471, 7484=>496, 7485=>439, 7486=>380, 7487=>438, 7488=>385, 7489=>461, 7490=>623,
+ 7491=>392, 7492=>392, 7493=>405, 7494=>648, 7495=>428, 7496=>405, 7497=>417, 7498=>417, 7499=>360, 7500=>359, 7501=>405, 7502=>179, 7503=>426, 7504=>623, 7505=>409, 7506=>414,
+ 7507=>370, 7508=>414, 7509=>414, 7510=>428, 7511=>295, 7512=>405, 7513=>470, 7514=>623, 7515=>417, 7517=>402, 7518=>373, 7519=>385, 7520=>416, 7521=>364, 7522=>179, 7523=>259,
+ 7524=>405, 7525=>417, 7526=>402, 7527=>373, 7528=>385, 7529=>416, 7530=>364, 7543=>635, 7544=>474, 7547=>372, 7557=>278, 7579=>405, 7580=>370, 7581=>370, 7582=>414, 7583=>360,
+ 7584=>296, 7585=>233, 7586=>405, 7587=>405, 7588=>261, 7589=>250, 7590=>261, 7591=>261, 7592=>234, 7593=>250, 7594=>235, 7595=>376, 7596=>623, 7597=>623, 7598=>411, 7599=>479,
+ 7600=>409, 7601=>414, 7602=>414, 7603=>360, 7604=>287, 7605=>295, 7606=>508, 7607=>418, 7608=>361, 7609=>406, 7610=>417, 7611=>366, 7612=>437, 7613=>366, 7614=>392, 7615=>414,
+ 7620=>0, 7621=>0, 7622=>0, 7623=>0, 7624=>0, 7625=>0, 7680=>684, 7681=>613, 7682=>686, 7683=>635, 7684=>686, 7685=>635, 7686=>686, 7687=>635, 7688=>698, 7689=>550,
+ 7690=>770, 7691=>635, 7692=>770, 7693=>635, 7694=>770, 7695=>635, 7696=>770, 7697=>635, 7698=>770, 7699=>635, 7700=>632, 7701=>615, 7702=>632, 7703=>615, 7704=>632, 7705=>615,
+ 7706=>632, 7707=>615, 7708=>632, 7709=>615, 7710=>575, 7711=>352, 7712=>775, 7713=>635, 7714=>752, 7715=>634, 7716=>752, 7717=>634, 7718=>752, 7719=>634, 7720=>752, 7721=>634,
+ 7722=>752, 7723=>634, 7724=>295, 7725=>278, 7726=>295, 7727=>278, 7728=>656, 7729=>579, 7730=>656, 7731=>579, 7732=>656, 7733=>579, 7734=>557, 7735=>288, 7736=>557, 7737=>288,
+ 7738=>557, 7739=>278, 7740=>557, 7741=>278, 7742=>863, 7743=>974, 7744=>863, 7745=>974, 7746=>863, 7747=>974, 7748=>748, 7749=>634, 7750=>748, 7751=>634, 7752=>748, 7753=>634,
+ 7754=>748, 7755=>634, 7756=>787, 7757=>612, 7758=>787, 7759=>612, 7760=>787, 7761=>612, 7762=>787, 7763=>612, 7764=>603, 7765=>635, 7766=>603, 7767=>635, 7768=>695, 7769=>411,
+ 7770=>695, 7771=>411, 7772=>695, 7773=>411, 7774=>695, 7775=>411, 7776=>635, 7777=>521, 7778=>635, 7779=>521, 7780=>635, 7781=>521, 7782=>635, 7783=>521, 7784=>635, 7785=>521,
+ 7786=>611, 7787=>392, 7788=>611, 7789=>392, 7790=>611, 7791=>392, 7792=>611, 7793=>392, 7794=>732, 7795=>634, 7796=>732, 7797=>634, 7798=>732, 7799=>634, 7800=>732, 7801=>634,
+ 7802=>732, 7803=>634, 7804=>684, 7805=>592, 7806=>684, 7807=>592, 7808=>989, 7809=>818, 7810=>989, 7811=>818, 7812=>989, 7813=>818, 7814=>989, 7815=>818, 7816=>989, 7817=>818,
+ 7818=>685, 7819=>592, 7820=>685, 7821=>592, 7822=>611, 7823=>592, 7824=>685, 7825=>525, 7826=>685, 7827=>525, 7828=>685, 7829=>525, 7830=>634, 7831=>392, 7832=>818, 7833=>592,
+ 7834=>613, 7835=>352, 7840=>684, 7841=>613, 7842=>684, 7843=>613, 7844=>684, 7845=>613, 7846=>684, 7847=>613, 7848=>684, 7849=>613, 7850=>684, 7851=>613, 7852=>684, 7853=>613,
+ 7854=>684, 7855=>613, 7856=>684, 7857=>613, 7858=>684, 7859=>613, 7860=>684, 7861=>613, 7862=>684, 7863=>613, 7864=>632, 7865=>615, 7866=>632, 7867=>615, 7868=>632, 7869=>615,
+ 7870=>632, 7871=>615, 7872=>632, 7873=>615, 7874=>632, 7875=>615, 7876=>632, 7877=>615, 7878=>632, 7879=>615, 7880=>295, 7881=>278, 7882=>295, 7883=>278, 7884=>787, 7885=>612,
+ 7886=>787, 7887=>612, 7888=>787, 7889=>612, 7890=>787, 7891=>612, 7892=>787, 7893=>612, 7894=>787, 7895=>612, 7896=>787, 7897=>612, 7898=>913, 7899=>612, 7900=>913, 7901=>612,
+ 7902=>913, 7903=>612, 7904=>913, 7905=>612, 7906=>913, 7907=>612, 7908=>732, 7909=>634, 7910=>732, 7911=>634, 7912=>858, 7913=>634, 7914=>858, 7915=>634, 7916=>858, 7917=>634,
+ 7918=>858, 7919=>634, 7920=>858, 7921=>634, 7922=>611, 7923=>592, 7924=>611, 7925=>592, 7926=>611, 7927=>592, 7928=>611, 7929=>592, 7936=>659, 7937=>659, 7938=>659, 7939=>659,
+ 7940=>659, 7941=>659, 7942=>659, 7943=>659, 7944=>684, 7945=>684, 7946=>877, 7947=>877, 7948=>769, 7949=>801, 7950=>708, 7951=>743, 7952=>541, 7953=>541, 7954=>541, 7955=>541,
+ 7956=>541, 7957=>541, 7960=>711, 7961=>711, 7962=>966, 7963=>975, 7964=>898, 7965=>928, 7968=>634, 7969=>634, 7970=>634, 7971=>634, 7972=>634, 7973=>634, 7974=>634, 7975=>634,
+ 7976=>837, 7977=>835, 7978=>1086, 7979=>1089, 7980=>1027, 7981=>1051, 7982=>934, 7983=>947, 7984=>338, 7985=>338, 7986=>338, 7987=>338, 7988=>338, 7989=>338, 7990=>338, 7991=>338,
+ 7992=>380, 7993=>374, 7994=>635, 7995=>635, 7996=>570, 7997=>600, 7998=>489, 7999=>493, 8000=>612, 8001=>612, 8002=>612, 8003=>612, 8004=>612, 8005=>612, 8008=>804, 8009=>848,
+ 8010=>1095, 8011=>1100, 8012=>938, 8013=>970, 8016=>579, 8017=>579, 8018=>579, 8019=>579, 8020=>579, 8021=>579, 8022=>579, 8023=>579, 8025=>784, 8027=>998, 8029=>1012, 8031=>897,
+ 8032=>837, 8033=>837, 8034=>837, 8035=>837, 8036=>837, 8037=>837, 8038=>837, 8039=>837, 8040=>802, 8041=>843, 8042=>1089, 8043=>1095, 8044=>946, 8045=>972, 8046=>921, 8047=>952,
+ 8048=>659, 8049=>659, 8050=>541, 8051=>548, 8052=>634, 8053=>654, 8054=>338, 8055=>338, 8056=>612, 8057=>612, 8058=>579, 8059=>579, 8060=>837, 8061=>837, 8064=>659, 8065=>659,
+ 8066=>659, 8067=>659, 8068=>659, 8069=>659, 8070=>659, 8071=>659, 8072=>684, 8073=>684, 8074=>877, 8075=>877, 8076=>769, 8077=>801, 8078=>708, 8079=>743, 8080=>634, 8081=>634,
+ 8082=>634, 8083=>634, 8084=>634, 8085=>634, 8086=>634, 8087=>634, 8088=>837, 8089=>835, 8090=>1086, 8091=>1089, 8092=>1027, 8093=>1051, 8094=>934, 8095=>947, 8096=>837, 8097=>837,
+ 8098=>837, 8099=>837, 8100=>837, 8101=>837, 8102=>837, 8103=>837, 8104=>802, 8105=>843, 8106=>1089, 8107=>1095, 8108=>946, 8109=>972, 8110=>921, 8111=>952, 8112=>659, 8113=>659,
+ 8114=>659, 8115=>659, 8116=>659, 8118=>659, 8119=>659, 8120=>684, 8121=>684, 8122=>716, 8123=>692, 8124=>684, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>634,
+ 8131=>634, 8132=>654, 8134=>634, 8135=>634, 8136=>805, 8137=>746, 8138=>931, 8139=>871, 8140=>752, 8141=>500, 8142=>500, 8143=>500, 8144=>338, 8145=>338, 8146=>338, 8147=>338,
+ 8150=>338, 8151=>338, 8152=>295, 8153=>295, 8154=>475, 8155=>408, 8157=>500, 8158=>500, 8159=>500, 8160=>579, 8161=>579, 8162=>579, 8163=>579, 8164=>635, 8165=>635, 8166=>579,
+ 8167=>579, 8168=>611, 8169=>611, 8170=>845, 8171=>825, 8172=>685, 8173=>500, 8174=>500, 8175=>500, 8178=>837, 8179=>837, 8180=>837, 8182=>837, 8183=>837, 8184=>941, 8185=>813,
+ 8186=>922, 8187=>826, 8188=>764, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000, 8196=>330, 8197=>250, 8198=>167, 8199=>636, 8200=>318, 8201=>200, 8202=>100,
+ 8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>361, 8209=>361, 8210=>636, 8213=>1000, 8214=>500, 8215=>500, 8219=>318, 8223=>518, 8227=>590, 8228=>334, 8229=>667,
+ 8231=>318, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1735, 8242=>227, 8243=>374, 8244=>520, 8245=>227, 8246=>374, 8247=>520, 8248=>339, 8251=>838,
+ 8252=>485, 8253=>531, 8254=>500, 8255=>804, 8256=>804, 8257=>250, 8258=>1000, 8259=>500, 8260=>167, 8261=>390, 8262=>390, 8263=>922, 8264=>733, 8265=>733, 8266=>497, 8267=>636,
+ 8268=>500, 8269=>500, 8270=>500, 8271=>337, 8272=>804, 8273=>500, 8274=>450, 8275=>838, 8276=>804, 8277=>838, 8278=>586, 8279=>663, 8280=>838, 8281=>838, 8282=>318, 8283=>797,
+ 8284=>838, 8285=>318, 8286=>318, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>401, 8305=>179,
+ 8308=>401, 8309=>401, 8310=>401, 8311=>401, 8312=>401, 8313=>401, 8314=>528, 8315=>528, 8316=>528, 8317=>246, 8318=>246, 8319=>398, 8320=>401, 8321=>401, 8322=>401, 8323=>401,
+ 8324=>401, 8325=>401, 8326=>401, 8327=>401, 8328=>401, 8329=>401, 8330=>528, 8331=>528, 8332=>528, 8333=>246, 8334=>246, 8336=>392, 8337=>417, 8338=>414, 8339=>444, 8340=>417,
+ 8352=>877, 8353=>636, 8354=>636, 8355=>636, 8356=>636, 8357=>974, 8358=>748, 8359=>1272, 8360=>1074, 8361=>989, 8362=>784, 8363=>636, 8365=>636, 8366=>636, 8367=>1272, 8368=>636,
+ 8369=>636, 8370=>636, 8371=>636, 8372=>774, 8373=>641, 8400=>0, 8401=>0, 8406=>0, 8407=>0, 8448=>1019, 8449=>1019, 8450=>698, 8451=>1123, 8452=>642, 8453=>1019, 8454=>1067,
+ 8455=>614, 8456=>698, 8457=>952, 8459=>988, 8460=>754, 8461=>850, 8462=>634, 8463=>634, 8464=>470, 8465=>697, 8466=>720, 8467=>413, 8468=>818, 8469=>801, 8470=>1040, 8471=>1000,
+ 8472=>697, 8473=>702, 8474=>787, 8475=>798, 8476=>814, 8477=>792, 8478=>896, 8479=>684, 8480=>1020, 8481=>1074, 8483=>684, 8484=>745, 8485=>578, 8486=>764, 8487=>764, 8488=>616,
+ 8489=>338, 8490=>656, 8491=>684, 8492=>786, 8493=>703, 8494=>854, 8495=>592, 8496=>605, 8497=>786, 8498=>575, 8499=>1069, 8500=>462, 8501=>745, 8502=>674, 8503=>469, 8504=>648,
+ 8505=>380, 8506=>926, 8507=>1194, 8508=>702, 8509=>728, 8510=>655, 8511=>849, 8512=>811, 8513=>775, 8514=>557, 8515=>557, 8516=>611, 8517=>819, 8518=>708, 8519=>615, 8520=>351,
+ 8521=>351, 8523=>780, 8526=>526, 8531=>969, 8532=>969, 8533=>969, 8534=>969, 8535=>969, 8536=>969, 8537=>969, 8538=>969, 8539=>969, 8540=>969, 8541=>969, 8542=>969, 8543=>568,
+ 8544=>295, 8545=>492, 8546=>689, 8547=>923, 8548=>684, 8549=>922, 8550=>1120, 8551=>1317, 8552=>917, 8553=>685, 8554=>933, 8555=>1131, 8556=>557, 8557=>698, 8558=>770, 8559=>863,
+ 8560=>278, 8561=>458, 8562=>637, 8563=>812, 8564=>592, 8565=>811, 8566=>991, 8567=>1170, 8568=>819, 8569=>592, 8570=>822, 8571=>1002, 8572=>278, 8573=>550, 8574=>635, 8575=>974,
+ 8576=>1245, 8577=>770, 8578=>1245, 8579=>703, 8580=>549, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8596=>838, 8597=>838, 8598=>838, 8599=>838, 8600=>838, 8601=>838, 8602=>838,
+ 8603=>838, 8604=>838, 8605=>838, 8606=>838, 8607=>838, 8608=>838, 8609=>838, 8610=>838, 8611=>838, 8612=>838, 8613=>838, 8614=>838, 8615=>838, 8616=>838, 8617=>838, 8618=>838,
+ 8619=>838, 8620=>838, 8621=>838, 8622=>838, 8623=>838, 8624=>838, 8625=>838, 8626=>838, 8627=>838, 8628=>838, 8629=>838, 8630=>838, 8631=>838, 8632=>838, 8633=>838, 8634=>838,
+ 8635=>838, 8636=>838, 8637=>838, 8638=>838, 8639=>838, 8640=>838, 8641=>838, 8642=>838, 8643=>838, 8644=>838, 8645=>838, 8646=>838, 8647=>838, 8648=>838, 8649=>838, 8650=>838,
+ 8651=>838, 8652=>838, 8653=>838, 8654=>838, 8655=>838, 8656=>838, 8657=>838, 8658=>838, 8659=>838, 8660=>838, 8661=>838, 8662=>838, 8663=>838, 8664=>838, 8665=>838, 8666=>838,
+ 8667=>838, 8668=>838, 8669=>838, 8670=>838, 8671=>838, 8672=>838, 8673=>838, 8674=>838, 8675=>838, 8676=>838, 8677=>838, 8678=>838, 8679=>838, 8680=>838, 8681=>838, 8682=>838,
+ 8683=>838, 8684=>838, 8685=>838, 8686=>838, 8687=>838, 8688=>838, 8689=>838, 8690=>838, 8691=>838, 8692=>838, 8693=>838, 8694=>838, 8695=>838, 8696=>838, 8697=>838, 8698=>838,
+ 8699=>838, 8700=>838, 8701=>838, 8702=>838, 8703=>838, 8704=>684, 8705=>636, 8706=>517, 8707=>632, 8708=>632, 8709=>871, 8710=>669, 8711=>669, 8712=>871, 8713=>871, 8714=>718,
+ 8715=>871, 8716=>871, 8717=>718, 8718=>636, 8719=>757, 8720=>757, 8721=>674, 8722=>838, 8723=>838, 8724=>838, 8725=>167, 8726=>637, 8727=>838, 8728=>626, 8729=>318, 8730=>637,
+ 8731=>637, 8732=>637, 8733=>677, 8734=>833, 8735=>838, 8736=>896, 8737=>896, 8738=>838, 8739=>500, 8740=>500, 8741=>500, 8742=>500, 8743=>732, 8744=>732, 8745=>732, 8746=>732,
+ 8747=>521, 8748=>789, 8749=>1057, 8750=>521, 8751=>789, 8752=>1057, 8753=>521, 8754=>521, 8755=>521, 8756=>636, 8757=>636, 8758=>260, 8759=>636, 8760=>838, 8761=>838, 8762=>838,
+ 8763=>838, 8764=>838, 8765=>838, 8766=>838, 8767=>838, 8768=>375, 8769=>838, 8770=>838, 8771=>838, 8772=>838, 8773=>838, 8774=>838, 8775=>838, 8776=>838, 8777=>838, 8778=>838,
+ 8779=>838, 8780=>838, 8781=>838, 8782=>838, 8783=>838, 8784=>838, 8785=>838, 8786=>839, 8787=>839, 8788=>1000, 8789=>1000, 8790=>838, 8791=>838, 8792=>838, 8793=>838, 8794=>838,
+ 8795=>838, 8796=>838, 8797=>838, 8798=>838, 8799=>838, 8800=>838, 8801=>838, 8802=>838, 8803=>838, 8804=>838, 8805=>838, 8806=>838, 8807=>838, 8808=>838, 8809=>838, 8810=>1047,
+ 8811=>1047, 8812=>464, 8813=>838, 8814=>838, 8815=>838, 8816=>838, 8817=>838, 8818=>838, 8819=>838, 8820=>838, 8821=>838, 8822=>838, 8823=>838, 8824=>838, 8825=>838, 8826=>838,
+ 8827=>838, 8828=>838, 8829=>838, 8830=>838, 8831=>838, 8832=>838, 8833=>838, 8834=>838, 8835=>838, 8836=>838, 8837=>838, 8838=>838, 8839=>838, 8840=>838, 8841=>838, 8842=>838,
+ 8843=>838, 8844=>732, 8845=>732, 8846=>732, 8847=>838, 8848=>838, 8849=>838, 8850=>838, 8851=>722, 8852=>722, 8853=>838, 8854=>838, 8855=>838, 8856=>838, 8857=>838, 8858=>838,
+ 8859=>838, 8860=>838, 8861=>838, 8862=>838, 8863=>838, 8864=>838, 8865=>838, 8866=>871, 8867=>871, 8868=>871, 8869=>871, 8870=>521, 8871=>521, 8872=>871, 8873=>871, 8874=>871,
+ 8875=>871, 8876=>871, 8877=>871, 8878=>871, 8879=>871, 8882=>838, 8883=>838, 8884=>838, 8885=>838, 8886=>1000, 8887=>1000, 8888=>838, 8889=>838, 8890=>521, 8891=>732, 8892=>732,
+ 8893=>732, 8896=>820, 8897=>820, 8898=>820, 8899=>820, 8900=>494, 8901=>318, 8902=>626, 8904=>1000, 8905=>1000, 8906=>1000, 8907=>1000, 8908=>1000, 8909=>838, 8918=>838, 8919=>838,
+ 8920=>1422, 8921=>1422, 8922=>838, 8923=>838, 8924=>838, 8925=>838, 8926=>838, 8927=>838, 8928=>838, 8929=>838, 8930=>838, 8931=>838, 8932=>838, 8933=>838, 8934=>838, 8935=>838,
+ 8936=>838, 8937=>838, 8938=>838, 8939=>838, 8940=>838, 8941=>838, 8946=>1000, 8947=>871, 8948=>718, 8949=>871, 8950=>871, 8951=>718, 8952=>871, 8953=>871, 8954=>1000, 8955=>871,
+ 8956=>718, 8957=>871, 8958=>718, 8959=>871, 8962=>635, 8966=>871, 8968=>390, 8969=>390, 8970=>390, 8971=>390, 8976=>838, 8977=>513, 8984=>1000, 8985=>838, 8992=>521, 8993=>521,
+ 8997=>1000, 9000=>1443, 9085=>757, 9115=>500, 9116=>500, 9117=>500, 9118=>500, 9119=>500, 9120=>500, 9121=>500, 9122=>500, 9123=>500, 9124=>500, 9125=>500, 9126=>500, 9127=>750,
+ 9128=>750, 9129=>750, 9130=>750, 9131=>750, 9132=>750, 9133=>750, 9134=>521, 9166=>838, 9167=>945, 9250=>635, 9251=>635, 9312=>896, 9313=>896, 9314=>896, 9315=>896, 9316=>896,
+ 9317=>896, 9318=>896, 9319=>896, 9320=>896, 9321=>896, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769, 9609=>769, 9610=>769,
+ 9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769, 9625=>769, 9626=>769,
+ 9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945, 9641=>945, 9642=>678,
+ 9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502, 9657=>502, 9658=>769,
+ 9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769, 9673=>873, 9674=>494,
+ 9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>791, 9689=>970, 9690=>970,
+ 9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>873, 9697=>873, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>590, 9703=>945, 9704=>945, 9705=>945, 9706=>945,
+ 9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769, 9721=>769, 9722=>769,
+ 9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9729=>1000, 9730=>896, 9731=>896, 9732=>896, 9733=>896, 9734=>896, 9735=>573, 9736=>896, 9737=>896, 9738=>888,
+ 9739=>888, 9740=>671, 9741=>1013, 9742=>1246, 9743=>1250, 9744=>896, 9745=>896, 9746=>896, 9747=>532, 9748=>896, 9749=>896, 9750=>896, 9751=>896, 9752=>896, 9753=>896, 9754=>896,
+ 9755=>896, 9756=>896, 9757=>609, 9758=>896, 9759=>609, 9760=>896, 9761=>896, 9762=>896, 9763=>896, 9764=>669, 9765=>746, 9766=>649, 9767=>784, 9768=>545, 9769=>896, 9770=>896,
+ 9771=>896, 9772=>710, 9773=>896, 9774=>896, 9775=>896, 9776=>896, 9777=>896, 9778=>896, 9779=>896, 9780=>896, 9781=>896, 9782=>896, 9783=>896, 9784=>896, 9785=>896, 9786=>896,
+ 9787=>896, 9788=>896, 9789=>896, 9790=>896, 9791=>614, 9792=>731, 9793=>731, 9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9800=>896, 9801=>896, 9802=>896,
+ 9803=>896, 9804=>896, 9805=>896, 9806=>896, 9807=>896, 9808=>896, 9809=>896, 9810=>896, 9811=>896, 9812=>896, 9813=>896, 9814=>896, 9815=>896, 9816=>896, 9817=>896, 9818=>896,
+ 9819=>896, 9820=>896, 9821=>896, 9822=>896, 9823=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9832=>896, 9833=>472, 9834=>638,
+ 9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 9840=>748, 9841=>766, 9842=>896, 9843=>896, 9844=>896, 9845=>896, 9846=>896, 9847=>896, 9848=>896, 9849=>896, 9850=>896,
+ 9851=>896, 9852=>896, 9853=>896, 9854=>896, 9855=>896, 9856=>869, 9857=>869, 9858=>869, 9859=>869, 9860=>869, 9861=>869, 9862=>896, 9863=>896, 9864=>896, 9865=>896, 9866=>896,
+ 9867=>896, 9868=>896, 9869=>896, 9870=>896, 9871=>896, 9872=>896, 9873=>896, 9874=>896, 9875=>896, 9876=>896, 9877=>541, 9878=>896, 9879=>896, 9880=>896, 9881=>896, 9882=>896,
+ 9883=>896, 9884=>896, 9888=>896, 9889=>702, 9890=>838, 9891=>838, 9892=>838, 9893=>838, 9894=>838, 9895=>838, 9896=>838, 9897=>838, 9898=>838, 9899=>838, 9900=>838, 9901=>838,
+ 9902=>838, 9903=>838, 9904=>844, 9905=>838, 9906=>731, 9985=>838, 9986=>838, 9987=>838, 9988=>838, 9990=>838, 9991=>838, 9992=>838, 9993=>838, 9996=>838, 9997=>838, 9998=>838,
+ 9999=>838, 10000=>838, 10001=>838, 10002=>838, 10003=>838, 10004=>838, 10005=>838, 10006=>838, 10007=>838, 10008=>838, 10009=>838, 10010=>838, 10011=>838, 10012=>838, 10013=>838, 10014=>838,
+ 10015=>838, 10016=>838, 10017=>838, 10018=>838, 10019=>838, 10020=>838, 10021=>838, 10022=>838, 10023=>838, 10025=>838, 10026=>838, 10027=>838, 10028=>838, 10029=>838, 10030=>838, 10031=>838,
+ 10032=>838, 10033=>838, 10034=>838, 10035=>838, 10036=>838, 10037=>838, 10038=>838, 10039=>838, 10040=>838, 10041=>838, 10042=>838, 10043=>838, 10044=>838, 10045=>838, 10046=>838, 10047=>838,
+ 10048=>838, 10049=>838, 10050=>838, 10051=>838, 10052=>838, 10053=>838, 10054=>838, 10055=>838, 10056=>838, 10057=>838, 10058=>838, 10059=>838, 10061=>896, 10063=>896, 10064=>896, 10065=>896,
+ 10066=>896, 10070=>896, 10072=>838, 10073=>838, 10074=>838, 10075=>322, 10076=>322, 10077=>538, 10078=>538, 10081=>838, 10082=>838, 10083=>838, 10084=>838, 10085=>838, 10086=>838, 10087=>838,
+ 10088=>838, 10089=>838, 10090=>838, 10091=>838, 10092=>838, 10093=>838, 10094=>838, 10095=>838, 10096=>838, 10097=>838, 10098=>838, 10099=>838, 10100=>838, 10101=>838, 10102=>896, 10103=>896,
+ 10104=>896, 10105=>896, 10106=>896, 10107=>896, 10108=>896, 10109=>896, 10110=>896, 10111=>896, 10112=>838, 10113=>838, 10114=>838, 10115=>838, 10116=>838, 10117=>838, 10118=>838, 10119=>838,
+ 10120=>838, 10121=>838, 10122=>838, 10123=>838, 10124=>838, 10125=>838, 10126=>838, 10127=>838, 10128=>838, 10129=>838, 10130=>838, 10131=>838, 10132=>838, 10136=>838, 10137=>838, 10138=>838,
+ 10139=>838, 10140=>838, 10141=>838, 10142=>838, 10143=>838, 10144=>838, 10145=>838, 10146=>838, 10147=>838, 10148=>838, 10149=>838, 10150=>838, 10151=>838, 10152=>838, 10153=>838, 10154=>838,
+ 10155=>838, 10156=>838, 10157=>838, 10158=>838, 10159=>838, 10161=>838, 10162=>838, 10163=>838, 10164=>838, 10165=>838, 10166=>838, 10167=>838, 10168=>838, 10169=>838, 10170=>838, 10171=>838,
+ 10172=>838, 10173=>838, 10174=>838, 10208=>494, 10214=>495, 10215=>495, 10216=>390, 10217=>390, 10218=>556, 10219=>556, 10224=>838, 10225=>838, 10226=>838, 10227=>838, 10228=>1157, 10229=>1434,
+ 10230=>1434, 10231=>1434, 10232=>1434, 10233=>1434, 10234=>1434, 10235=>1434, 10236=>1434, 10237=>1434, 10238=>1434, 10239=>1434, 10240=>732, 10241=>732, 10242=>732, 10243=>732, 10244=>732, 10245=>732,
+ 10246=>732, 10247=>732, 10248=>732, 10249=>732, 10250=>732, 10251=>732, 10252=>732, 10253=>732, 10254=>732, 10255=>732, 10256=>732, 10257=>732, 10258=>732, 10259=>732, 10260=>732, 10261=>732,
+ 10262=>732, 10263=>732, 10264=>732, 10265=>732, 10266=>732, 10267=>732, 10268=>732, 10269=>732, 10270=>732, 10271=>732, 10272=>732, 10273=>732, 10274=>732, 10275=>732, 10276=>732, 10277=>732,
+ 10278=>732, 10279=>732, 10280=>732, 10281=>732, 10282=>732, 10283=>732, 10284=>732, 10285=>732, 10286=>732, 10287=>732, 10288=>732, 10289=>732, 10290=>732, 10291=>732, 10292=>732, 10293=>732,
+ 10294=>732, 10295=>732, 10296=>732, 10297=>732, 10298=>732, 10299=>732, 10300=>732, 10301=>732, 10302=>732, 10303=>732, 10304=>732, 10305=>732, 10306=>732, 10307=>732, 10308=>732, 10309=>732,
+ 10310=>732, 10311=>732, 10312=>732, 10313=>732, 10314=>732, 10315=>732, 10316=>732, 10317=>732, 10318=>732, 10319=>732, 10320=>732, 10321=>732, 10322=>732, 10323=>732, 10324=>732, 10325=>732,
+ 10326=>732, 10327=>732, 10328=>732, 10329=>732, 10330=>732, 10331=>732, 10332=>732, 10333=>732, 10334=>732, 10335=>732, 10336=>732, 10337=>732, 10338=>732, 10339=>732, 10340=>732, 10341=>732,
+ 10342=>732, 10343=>732, 10344=>732, 10345=>732, 10346=>732, 10347=>732, 10348=>732, 10349=>732, 10350=>732, 10351=>732, 10352=>732, 10353=>732, 10354=>732, 10355=>732, 10356=>732, 10357=>732,
+ 10358=>732, 10359=>732, 10360=>732, 10361=>732, 10362=>732, 10363=>732, 10364=>732, 10365=>732, 10366=>732, 10367=>732, 10368=>732, 10369=>732, 10370=>732, 10371=>732, 10372=>732, 10373=>732,
+ 10374=>732, 10375=>732, 10376=>732, 10377=>732, 10378=>732, 10379=>732, 10380=>732, 10381=>732, 10382=>732, 10383=>732, 10384=>732, 10385=>732, 10386=>732, 10387=>732, 10388=>732, 10389=>732,
+ 10390=>732, 10391=>732, 10392=>732, 10393=>732, 10394=>732, 10395=>732, 10396=>732, 10397=>732, 10398=>732, 10399=>732, 10400=>732, 10401=>732, 10402=>732, 10403=>732, 10404=>732, 10405=>732,
+ 10406=>732, 10407=>732, 10408=>732, 10409=>732, 10410=>732, 10411=>732, 10412=>732, 10413=>732, 10414=>732, 10415=>732, 10416=>732, 10417=>732, 10418=>732, 10419=>732, 10420=>732, 10421=>732,
+ 10422=>732, 10423=>732, 10424=>732, 10425=>732, 10426=>732, 10427=>732, 10428=>732, 10429=>732, 10430=>732, 10431=>732, 10432=>732, 10433=>732, 10434=>732, 10435=>732, 10436=>732, 10437=>732,
+ 10438=>732, 10439=>732, 10440=>732, 10441=>732, 10442=>732, 10443=>732, 10444=>732, 10445=>732, 10446=>732, 10447=>732, 10448=>732, 10449=>732, 10450=>732, 10451=>732, 10452=>732, 10453=>732,
+ 10454=>732, 10455=>732, 10456=>732, 10457=>732, 10458=>732, 10459=>732, 10460=>732, 10461=>732, 10462=>732, 10463=>732, 10464=>732, 10465=>732, 10466=>732, 10467=>732, 10468=>732, 10469=>732,
+ 10470=>732, 10471=>732, 10472=>732, 10473=>732, 10474=>732, 10475=>732, 10476=>732, 10477=>732, 10478=>732, 10479=>732, 10480=>732, 10481=>732, 10482=>732, 10483=>732, 10484=>732, 10485=>732,
+ 10486=>732, 10487=>732, 10488=>732, 10489=>732, 10490=>732, 10491=>732, 10492=>732, 10493=>732, 10494=>732, 10495=>732, 10502=>838, 10503=>838, 10506=>838, 10507=>838, 10560=>683, 10561=>683,
+ 10702=>838, 10703=>1000, 10704=>1000, 10705=>1000, 10706=>1000, 10707=>1000, 10708=>1000, 10709=>1000, 10731=>494, 10752=>1000, 10753=>1000, 10754=>1000, 10764=>1325, 10765=>521, 10766=>521, 10767=>521,
+ 10768=>521, 10769=>521, 10770=>521, 10771=>521, 10772=>521, 10773=>521, 10774=>521, 10775=>521, 10776=>521, 10777=>521, 10778=>521, 10779=>521, 10780=>521, 10877=>838, 10878=>838, 10879=>838,
+ 10880=>838, 10881=>838, 10882=>838, 10883=>838, 10884=>838, 10885=>838, 10886=>838, 10887=>838, 10888=>838, 10889=>838, 10890=>838, 10891=>838, 10892=>838, 10893=>838, 10894=>838, 10895=>838,
+ 10896=>838, 10897=>838, 10898=>838, 10899=>838, 10900=>838, 10901=>838, 10902=>838, 10903=>838, 10904=>838, 10905=>838, 10906=>838, 10907=>838, 10908=>838, 10909=>838, 10910=>838, 10911=>838,
+ 10912=>838, 10926=>838, 10927=>838, 10928=>838, 10929=>838, 10930=>838, 10931=>838, 10932=>838, 10933=>838, 10934=>838, 10935=>838, 10936=>838, 10937=>838, 10938=>838, 11001=>838, 11002=>838,
+ 11008=>838, 11009=>838, 11010=>838, 11011=>838, 11012=>838, 11013=>838, 11014=>838, 11015=>838, 11016=>838, 11017=>838, 11018=>838, 11019=>838, 11020=>838, 11021=>838, 11022=>836, 11023=>836,
+ 11024=>836, 11025=>836, 11026=>945, 11027=>945, 11028=>945, 11029=>945, 11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 11040=>869, 11041=>873, 11042=>873, 11043=>873, 11360=>557,
+ 11361=>278, 11362=>557, 11363=>603, 11364=>695, 11365=>613, 11366=>392, 11367=>752, 11368=>634, 11369=>656, 11370=>579, 11371=>685, 11372=>525, 11380=>592, 11381=>654, 11382=>568, 11383=>660,
+ 61440=>977, 61441=>977, 61960=>781, 62047=>592, 63173=>612, 64256=>689, 64257=>630, 64258=>630, 64259=>967, 64260=>967, 64261=>686, 64262=>861, 64275=>1202, 64276=>1202, 64277=>1196, 64278=>1186,
+ 64279=>1529, 64285=>296, 64287=>494, 64288=>636, 64297=>838, 64298=>799, 64299=>799, 64300=>799, 64301=>799, 64302=>663, 64303=>663, 64304=>663, 64305=>655, 64306=>454, 64307=>607, 64308=>690,
+ 64309=>336, 64310=>437, 64312=>683, 64313=>336, 64314=>642, 64315=>666, 64316=>635, 64318=>736, 64320=>456, 64321=>771, 64323=>651, 64324=>666, 64326=>639, 64327=>688, 64328=>642, 64329=>799,
+ 64330=>726, 64331=>272, 64332=>655, 64333=>666, 64334=>666, 64338=>941, 64339=>982, 64340=>278, 64341=>302, 64342=>941, 64343=>982, 64344=>278, 64345=>302, 64346=>941, 64347=>982, 64348=>278,
+ 64349=>302, 64350=>941, 64351=>982, 64352=>278, 64353=>302, 64354=>941, 64355=>982, 64356=>278, 64357=>302, 64358=>941, 64359=>982, 64360=>278, 64361=>302, 64362=>1037, 64363=>1035, 64364=>478,
+ 64365=>506, 64366=>1037, 64367=>1035, 64368=>478, 64369=>506, 64370=>646, 64371=>646, 64372=>618, 64373=>646, 64374=>646, 64375=>646, 64376=>618, 64377=>646, 64378=>646, 64379=>646, 64380=>618,
+ 64381=>646, 64382=>646, 64383=>646, 64384=>618, 64385=>646, 64394=>483, 64395=>552, 64396=>483, 64397=>552, 64398=>895, 64399=>895, 64400=>476, 64401=>552, 64402=>895, 64403=>895, 64404=>476,
+ 64405=>552, 64414=>734, 64415=>761, 64473=>483, 64474=>517, 64488=>278, 64489=>302, 64508=>783, 64509=>833, 64510=>278, 64511=>302, 65024=>0, 65025=>0, 65026=>0, 65027=>0, 65028=>0,
+ 65029=>0, 65030=>0, 65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65136=>293, 65137=>293, 65138=>293, 65139=>262, 65140=>293,
+ 65142=>293, 65143=>293, 65144=>293, 65145=>293, 65146=>293, 65147=>293, 65148=>293, 65149=>293, 65150=>293, 65151=>293, 65152=>470, 65153=>278, 65154=>305, 65155=>278, 65156=>305, 65157=>483,
+ 65158=>517, 65159=>278, 65160=>305, 65161=>783, 65162=>833, 65163=>278, 65164=>302, 65165=>278, 65166=>305, 65167=>941, 65168=>982, 65169=>278, 65170=>302, 65171=>524, 65172=>536, 65173=>941,
+ 65174=>982, 65175=>278, 65176=>302, 65177=>941, 65178=>982, 65179=>278, 65180=>302, 65181=>646, 65182=>646, 65183=>618, 65184=>646, 65185=>646, 65186=>646, 65187=>618, 65188=>646, 65189=>646,
+ 65190=>646, 65191=>618, 65192=>646, 65193=>445, 65194=>525, 65195=>445, 65196=>525, 65197=>483, 65198=>552, 65199=>483, 65200=>552, 65201=>1221, 65202=>1275, 65203=>838, 65204=>892, 65205=>1221,
+ 65206=>1275, 65207=>838, 65208=>892, 65209=>1209, 65210=>1225, 65211=>849, 65212=>867, 65213=>1209, 65214=>1225, 65215=>849, 65216=>867, 65217=>925, 65218=>949, 65219=>796, 65220=>820, 65221=>925,
+ 65222=>949, 65223=>796, 65224=>820, 65225=>597, 65226=>532, 65227=>597, 65228=>482, 65229=>597, 65230=>532, 65231=>523, 65232=>482, 65233=>1037, 65234=>1035, 65235=>478, 65236=>506, 65237=>776,
+ 65238=>834, 65239=>478, 65240=>506, 65241=>824, 65242=>843, 65243=>476, 65244=>552, 65245=>727, 65246=>757, 65247=>305, 65248=>331, 65249=>619, 65250=>666, 65251=>536, 65252=>578, 65253=>734,
+ 65254=>761, 65255=>278, 65256=>302, 65257=>524, 65258=>536, 65259=>527, 65260=>461, 65261=>483, 65262=>517, 65263=>783, 65264=>833, 65265=>783, 65266=>833, 65267=>278, 65268=>302, 65269=>570,
+ 65270=>597, 65271=>570, 65272=>597, 65273=>570, 65274=>597, 65275=>570, 65276=>597, 65279=>0, 65533=>1025);
+$enc='';
+$diff='';
+$file='DejaVuSans.z';
+$ctg='DejaVuSans.ctg.z';
+$originalsize=520788;
+?>
diff --git a/libraries/tcpdf/font/dejavusans.z b/libraries/tcpdf/font/dejavusans.z
new file mode 100644
index 0000000000..79424a7892
--- /dev/null
+++ b/libraries/tcpdf/font/dejavusans.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavusansb.php b/libraries/tcpdf/font/dejavusansb.php
new file mode 100644
index 0000000000..cd48848aa0
--- /dev/null
+++ b/libraries/tcpdf/font/dejavusansb.php
@@ -0,0 +1,287 @@
+<?php
+$type='TrueTypeUnicode';
+$name='DejaVuSans-Bold';
+$desc=array('Ascent'=>928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>32,'FontBBox'=>'[-1069 -388 1975 1123]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600);
+$up=-42;
+$ut=44;
+$cw=array(
+ 0=>600, 32=>348, 33=>456, 34=>521, 35=>838, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380,
+ 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838,
+ 63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837,
+ 79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838,
+ 95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712,
+ 111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838,
+ 8364=>696, 1027=>637, 8218=>380, 402=>435, 8222=>657, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1440, 352=>720, 8249=>412, 338=>1167, 1036=>817, 381=>725, 1039=>837,
+ 8216=>380, 8217=>380, 8220=>657, 8221=>657, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 1116=>679, 382=>582, 376=>724, 160=>348,
+ 161=>456, 162=>696, 163=>696, 164=>636, 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>646, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500,
+ 177=>838, 178=>438, 179=>438, 180=>500, 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>646, 188=>1035, 189=>1035, 190=>1035, 191=>580, 192=>774,
+ 193=>774, 194=>774, 195=>774, 196=>774, 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>838,
+ 209=>837, 210=>850, 211=>850, 212=>850, 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>738, 223=>719, 224=>675,
+ 225=>675, 226=>675, 227=>675, 228=>675, 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687,
+ 241=>712, 242=>687, 243=>687, 244=>687, 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 256=>774,
+ 257=>675, 258=>774, 259=>675, 260=>774, 261=>675, 262=>734, 263=>593, 264=>734, 265=>593, 266=>734, 267=>593, 268=>734, 269=>593, 270=>830, 271=>716, 272=>838,
+ 273=>716, 274=>683, 275=>678, 276=>683, 277=>678, 278=>683, 279=>678, 280=>683, 281=>678, 282=>683, 283=>678, 284=>821, 285=>716, 286=>821, 287=>716, 288=>821,
+ 289=>716, 290=>821, 291=>716, 292=>837, 293=>712, 294=>974, 295=>790, 296=>372, 297=>343, 298=>372, 299=>343, 300=>372, 301=>343, 302=>372, 303=>343, 304=>372,
+ 305=>343, 306=>744, 307=>686, 308=>372, 309=>343, 310=>775, 311=>665, 312=>665, 313=>637, 314=>343, 315=>637, 316=>343, 317=>637, 318=>479, 319=>637, 320=>557,
+ 321=>642, 322=>371, 323=>837, 324=>712, 325=>837, 326=>712, 327=>837, 328=>712, 329=>983, 330=>837, 331=>712, 332=>850, 333=>687, 334=>850, 335=>687, 336=>850,
+ 337=>687, 340=>770, 341=>493, 342=>770, 343=>493, 344=>770, 345=>493, 346=>720, 347=>595, 348=>720, 349=>595, 350=>720, 351=>595, 354=>682, 355=>478, 356=>682,
+ 357=>478, 358=>682, 359=>478, 360=>812, 361=>712, 362=>812, 363=>712, 364=>812, 365=>712, 366=>812, 367=>712, 368=>812, 369=>712, 370=>812, 371=>712, 372=>1103,
+ 373=>924, 374=>724, 375=>652, 377=>725, 378=>582, 379=>725, 380=>582, 383=>435, 384=>716, 385=>811, 386=>762, 387=>716, 388=>762, 389=>716, 390=>734, 391=>734,
+ 392=>593, 393=>838, 394=>879, 395=>757, 396=>716, 397=>688, 398=>683, 399=>849, 400=>696, 401=>683, 403=>821, 404=>793, 405=>1045, 406=>436, 407=>389, 408=>775,
+ 409=>665, 410=>360, 411=>592, 412=>1042, 413=>837, 414=>712, 415=>850, 416=>874, 417=>687, 418=>1114, 419=>962, 420=>782, 421=>716, 422=>770, 423=>720, 424=>595,
+ 425=>683, 426=>552, 427=>478, 428=>707, 429=>478, 430=>682, 431=>835, 432=>712, 433=>769, 434=>813, 435=>797, 436=>778, 437=>725, 438=>582, 439=>772, 440=>772,
+ 441=>641, 442=>582, 443=>696, 444=>772, 445=>641, 446=>573, 447=>716, 448=>372, 449=>659, 450=>544, 451=>372, 452=>1555, 453=>1412, 454=>1298, 455=>1009, 456=>980,
+ 457=>686, 458=>1209, 459=>1180, 460=>1055, 461=>774, 462=>675, 463=>372, 464=>343, 465=>850, 466=>687, 467=>812, 468=>712, 469=>812, 470=>712, 471=>812, 472=>712,
+ 473=>812, 474=>712, 475=>812, 476=>712, 477=>678, 478=>774, 479=>675, 480=>774, 481=>675, 482=>1085, 483=>1048, 484=>821, 485=>716, 486=>821, 487=>716, 488=>775,
+ 489=>665, 490=>850, 491=>687, 492=>850, 493=>687, 494=>772, 495=>582, 496=>343, 497=>1555, 498=>1412, 499=>1298, 500=>821, 501=>716, 502=>1289, 503=>787, 504=>837,
+ 505=>712, 506=>774, 507=>675, 508=>1085, 509=>1048, 510=>850, 511=>687, 512=>774, 513=>675, 514=>774, 515=>675, 516=>683, 517=>678, 518=>683, 519=>678, 520=>372,
+ 521=>343, 522=>372, 523=>343, 524=>850, 525=>687, 526=>850, 527=>687, 528=>770, 529=>493, 530=>770, 531=>493, 532=>812, 533=>712, 534=>812, 535=>712, 536=>720,
+ 537=>595, 538=>682, 539=>478, 540=>690, 541=>607, 542=>837, 543=>712, 544=>837, 545=>865, 546=>809, 547=>659, 548=>725, 549=>582, 550=>774, 551=>675, 552=>683,
+ 553=>678, 554=>850, 555=>687, 556=>850, 557=>687, 558=>850, 559=>687, 560=>850, 561=>687, 562=>724, 563=>652, 564=>492, 565=>867, 566=>512, 567=>343, 568=>1088,
+ 569=>1088, 570=>774, 571=>734, 572=>593, 573=>637, 574=>682, 575=>595, 576=>582, 577=>782, 578=>614, 579=>762, 580=>812, 581=>774, 582=>683, 583=>678, 584=>372,
+ 585=>343, 586=>860, 587=>791, 588=>770, 589=>493, 590=>724, 591=>652, 592=>675, 593=>716, 594=>716, 595=>716, 596=>593, 597=>593, 598=>717, 599=>792, 600=>678,
+ 601=>678, 602=>876, 603=>557, 604=>545, 605=>815, 606=>731, 607=>343, 608=>792, 609=>716, 610=>627, 611=>735, 612=>635, 613=>712, 614=>712, 615=>712, 616=>545,
+ 617=>440, 618=>545, 619=>559, 620=>693, 621=>343, 622=>841, 623=>1042, 624=>1042, 625=>1042, 626=>712, 627=>793, 628=>642, 629=>687, 630=>909, 631=>681, 632=>796,
+ 633=>538, 634=>538, 635=>650, 636=>493, 637=>493, 638=>596, 639=>596, 640=>642, 641=>642, 642=>595, 643=>415, 644=>435, 645=>605, 646=>552, 647=>478, 648=>478,
+ 649=>920, 650=>769, 651=>670, 652=>652, 653=>924, 654=>652, 655=>724, 656=>694, 657=>684, 658=>641, 659=>641, 660=>573, 661=>573, 662=>573, 663=>573, 664=>850,
+ 665=>633, 666=>731, 667=>685, 668=>691, 669=>343, 670=>732, 671=>539, 672=>792, 673=>573, 674=>573, 675=>1156, 676=>1214, 677=>1155, 678=>974, 679=>769, 680=>929,
+ 681=>1026, 682=>792, 683=>780, 684=>591, 685=>415, 686=>677, 687=>789, 688=>456, 689=>456, 690=>219, 691=>315, 692=>315, 693=>315, 694=>411, 695=>591, 696=>417,
+ 697=>302, 698=>521, 699=>380, 700=>380, 701=>380, 702=>366, 703=>366, 704=>326, 705=>326, 706=>500, 707=>500, 708=>500, 709=>500, 711=>500, 712=>306, 713=>500,
+ 714=>500, 715=>500, 716=>306, 717=>500, 718=>500, 719=>500, 720=>337, 721=>337, 722=>366, 723=>366, 724=>500, 725=>500, 726=>500, 727=>500, 728=>500, 729=>500,
+ 730=>500, 731=>500, 733=>500, 734=>351, 735=>500, 736=>412, 737=>219, 738=>381, 739=>413, 740=>326, 741=>500, 742=>500, 743=>500, 744=>500, 745=>500, 748=>500,
+ 749=>500, 750=>500, 755=>500, 759=>500, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0,
+ 780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0, 786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0,
+ 796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0, 802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0,
+ 812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0, 818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0,
+ 828=>0, 829=>0, 830=>0, 831=>0, 832=>0, 833=>0, 834=>0, 835=>0, 836=>0, 837=>0, 838=>0, 839=>0, 840=>0, 841=>0, 842=>0, 843=>0,
+ 844=>0, 845=>0, 846=>0, 847=>0, 849=>0, 850=>0, 851=>0, 855=>0, 856=>0, 860=>0, 861=>0, 862=>0, 863=>0, 864=>0, 865=>0, 866=>0,
+ 884=>302, 885=>302, 890=>500, 891=>593, 892=>550, 893=>549, 894=>337, 900=>441, 901=>500, 902=>797, 903=>380, 904=>846, 905=>1009, 906=>563, 908=>891, 910=>980,
+ 911=>894, 912=>390, 913=>774, 914=>762, 915=>637, 916=>774, 917=>683, 918=>725, 919=>837, 920=>850, 921=>372, 922=>775, 923=>774, 924=>995, 925=>837, 926=>632,
+ 927=>850, 928=>837, 929=>733, 931=>683, 932=>682, 933=>724, 934=>850, 935=>771, 936=>850, 937=>850, 938=>372, 939=>724, 940=>687, 941=>557, 942=>712, 943=>390,
+ 944=>675, 945=>687, 946=>716, 947=>681, 948=>687, 949=>557, 950=>591, 951=>712, 952=>687, 953=>390, 954=>710, 955=>633, 956=>736, 957=>681, 958=>591, 959=>687,
+ 960=>791, 961=>716, 962=>593, 963=>779, 964=>638, 965=>675, 966=>782, 967=>645, 968=>794, 969=>869, 970=>390, 971=>675, 972=>687, 973=>675, 974=>869, 976=>651,
+ 977=>661, 978=>746, 979=>981, 980=>746, 981=>796, 982=>869, 983=>744, 984=>850, 985=>687, 986=>734, 987=>593, 988=>683, 989=>494, 990=>702, 991=>660, 992=>919,
+ 993=>627, 994=>1093, 995=>837, 996=>832, 997=>716, 998=>928, 999=>744, 1000=>733, 1001=>650, 1002=>789, 1003=>671, 1004=>752, 1005=>716, 1006=>682, 1007=>590, 1008=>744,
+ 1009=>716, 1010=>593, 1011=>343, 1012=>850, 1013=>645, 1014=>644, 1015=>738, 1016=>716, 1017=>734, 1018=>995, 1019=>732, 1020=>716, 1021=>698, 1022=>734, 1023=>698, 1024=>683,
+ 1025=>683, 1026=>878, 1028=>734, 1029=>720, 1030=>372, 1031=>372, 1032=>372, 1033=>1154, 1034=>1130, 1035=>878, 1037=>837, 1038=>771, 1040=>774, 1041=>762, 1042=>762, 1043=>637,
+ 1044=>891, 1045=>683, 1046=>1224, 1047=>710, 1048=>837, 1049=>837, 1050=>817, 1051=>831, 1052=>995, 1053=>837, 1054=>850, 1055=>837, 1056=>733, 1057=>734, 1058=>682, 1059=>771,
+ 1060=>992, 1061=>771, 1062=>928, 1063=>808, 1064=>1235, 1065=>1326, 1066=>939, 1067=>1036, 1068=>762, 1069=>734, 1070=>1174, 1071=>770, 1072=>675, 1073=>698, 1074=>633, 1075=>522,
+ 1076=>808, 1077=>678, 1078=>995, 1079=>581, 1080=>701, 1081=>701, 1082=>679, 1083=>732, 1084=>817, 1085=>691, 1086=>687, 1087=>691, 1088=>716, 1089=>593, 1090=>580, 1091=>652,
+ 1092=>992, 1093=>645, 1094=>741, 1095=>687, 1096=>1062, 1097=>1105, 1098=>751, 1099=>904, 1100=>632, 1101=>593, 1102=>972, 1103=>642, 1104=>678, 1105=>678, 1106=>714, 1107=>522,
+ 1108=>593, 1109=>595, 1110=>343, 1111=>343, 1112=>343, 1113=>991, 1114=>956, 1115=>734, 1117=>701, 1118=>652, 1119=>691, 1120=>1093, 1121=>869, 1122=>840, 1123=>736, 1124=>1012,
+ 1125=>839, 1126=>992, 1127=>832, 1128=>1358, 1129=>1121, 1130=>850, 1131=>687, 1132=>1236, 1133=>1007, 1134=>696, 1135=>557, 1136=>1075, 1137=>1061, 1138=>850, 1139=>667, 1140=>850,
+ 1141=>695, 1142=>850, 1143=>695, 1144=>1148, 1145=>1043, 1146=>1074, 1147=>863, 1148=>1405, 1149=>1173, 1150=>1093, 1151=>869, 1152=>734, 1153=>593, 1154=>652, 1155=>0, 1156=>0,
+ 1157=>0, 1158=>0, 1160=>418, 1161=>418, 1162=>957, 1163=>807, 1164=>762, 1165=>611, 1166=>733, 1167=>716, 1168=>637, 1169=>522, 1170=>666, 1171=>543, 1172=>808, 1173=>669,
+ 1174=>1224, 1175=>995, 1176=>710, 1177=>581, 1178=>775, 1179=>679, 1180=>817, 1181=>679, 1182=>817, 1183=>679, 1184=>1015, 1185=>826, 1186=>956, 1187=>808, 1188=>1103, 1189=>874,
+ 1190=>1273, 1191=>1017, 1192=>875, 1193=>710, 1194=>734, 1195=>593, 1196=>682, 1197=>580, 1198=>724, 1199=>652, 1200=>724, 1201=>652, 1202=>771, 1203=>645, 1204=>1112, 1205=>1000,
+ 1206=>808, 1207=>687, 1208=>808, 1209=>687, 1210=>808, 1211=>712, 1212=>1026, 1213=>810, 1214=>1026, 1215=>810, 1216=>372, 1217=>1224, 1218=>995, 1219=>775, 1220=>630, 1221=>951,
+ 1222=>805, 1223=>837, 1224=>691, 1225=>957, 1226=>807, 1227=>808, 1228=>687, 1229=>1115, 1230=>933, 1231=>343, 1232=>774, 1233=>675, 1234=>774, 1235=>675, 1236=>1085, 1237=>1048,
+ 1238=>683, 1239=>678, 1240=>849, 1241=>678, 1242=>849, 1243=>678, 1244=>1224, 1245=>995, 1246=>710, 1247=>581, 1248=>772, 1249=>641, 1250=>837, 1251=>701, 1252=>837, 1253=>701,
+ 1254=>850, 1255=>687, 1256=>850, 1257=>687, 1258=>850, 1259=>687, 1260=>734, 1261=>593, 1262=>771, 1263=>652, 1264=>771, 1265=>652, 1266=>771, 1267=>652, 1268=>808, 1269=>687,
+ 1270=>637, 1271=>522, 1272=>1036, 1273=>904, 1274=>666, 1275=>543, 1276=>771, 1277=>645, 1278=>771, 1279=>645, 1280=>762, 1281=>608, 1282=>1159, 1283=>893, 1284=>1119, 1285=>920,
+ 1286=>828, 1287=>693, 1288=>1242, 1289=>1017, 1290=>1248, 1291=>1013, 1292=>839, 1293=>638, 1294=>938, 1295=>803, 1296=>696, 1297=>557, 1298=>831, 1299=>732, 1329=>984, 1330=>812,
+ 1331=>984, 1332=>984, 1333=>812, 1334=>777, 1335=>812, 1336=>812, 1337=>975, 1338=>984, 1339=>812, 1340=>710, 1341=>1078, 1342=>1136, 1343=>812, 1344=>710, 1345=>757, 1346=>984,
+ 1347=>876, 1348=>984, 1349=>793, 1350=>984, 1351=>812, 1352=>812, 1353=>812, 1354=>958, 1355=>777, 1356=>984, 1357=>812, 1358=>984, 1359=>720, 1360=>812, 1361=>793, 1362=>895,
+ 1363=>850, 1364=>936, 1365=>850, 1366=>720, 1369=>366, 1370=>380, 1371=>550, 1372=>550, 1373=>380, 1374=>546, 1375=>521, 1377=>1042, 1378=>712, 1379=>866, 1380=>868, 1381=>712,
+ 1382=>817, 1383=>653, 1384=>712, 1385=>811, 1386=>817, 1387=>712, 1388=>498, 1389=>1018, 1390=>716, 1391=>712, 1392=>712, 1393=>716, 1394=>819, 1395=>712, 1396=>751, 1397=>343,
+ 1398=>882, 1399=>559, 1400=>712, 1401=>559, 1402=>1042, 1403=>559, 1404=>863, 1405=>712, 1406=>813, 1407=>1042, 1408=>712, 1409=>716, 1410=>571, 1411=>1042, 1412=>778, 1413=>687,
+ 1414=>720, 1415=>862, 1417=>400, 1418=>487, 1456=>0, 1457=>0, 1458=>0, 1459=>0, 1460=>0, 1461=>0, 1462=>0, 1463=>0, 1464=>0, 1465=>0, 1467=>0, 1468=>0,
+ 1469=>0, 1471=>0, 1472=>372, 1473=>0, 1474=>0, 1475=>372, 1478=>532, 1479=>0, 1488=>751, 1489=>731, 1490=>537, 1491=>684, 1492=>778, 1493=>372, 1494=>521, 1495=>778,
+ 1496=>770, 1497=>372, 1498=>778, 1499=>750, 1500=>718, 1501=>778, 1502=>856, 1503=>372, 1504=>532, 1505=>855, 1506=>720, 1507=>802, 1508=>777, 1509=>628, 1510=>751, 1511=>803,
+ 1512=>778, 1513=>963, 1514=>822, 1520=>692, 1521=>692, 1522=>692, 1548=>380, 1557=>0, 1563=>400, 1567=>580, 1569=>511, 1570=>343, 1571=>343, 1572=>622, 1573=>343, 1574=>917,
+ 1575=>343, 1576=>1005, 1577=>590, 1578=>1005, 1579=>1005, 1580=>721, 1581=>721, 1582=>721, 1583=>513, 1584=>513, 1585=>576, 1586=>576, 1587=>1380, 1588=>1380, 1589=>1345, 1590=>1345,
+ 1591=>1039, 1592=>1039, 1593=>683, 1594=>683, 1600=>342, 1601=>1162, 1602=>894, 1603=>917, 1604=>868, 1605=>733, 1606=>854, 1607=>590, 1608=>622, 1609=>917, 1610=>917, 1611=>0,
+ 1612=>0, 1613=>0, 1614=>0, 1615=>0, 1616=>0, 1617=>0, 1618=>0, 1619=>0, 1620=>0, 1621=>0, 1626=>500, 1632=>610, 1633=>610, 1634=>610, 1635=>610, 1636=>610,
+ 1637=>610, 1638=>610, 1639=>610, 1640=>610, 1641=>610, 1642=>610, 1643=>374, 1644=>380, 1645=>545, 1646=>1005, 1647=>894, 1652=>292, 1657=>1005, 1658=>1005, 1659=>1005, 1660=>1005,
+ 1661=>1005, 1662=>1005, 1663=>1005, 1664=>1005, 1665=>721, 1666=>721, 1667=>721, 1668=>721, 1669=>721, 1670=>721, 1671=>721, 1681=>576, 1682=>576, 1685=>681, 1688=>576, 1697=>1162,
+ 1700=>1162, 1702=>1162, 1705=>1024, 1711=>1024, 1717=>868, 1722=>854, 1727=>721, 1734=>622, 1740=>917, 1742=>917, 1749=>590, 1776=>610, 1777=>610, 1778=>610, 1779=>610, 1780=>610,
+ 1781=>610, 1782=>610, 1783=>610, 1784=>610, 1785=>610, 3647=>743, 3713=>790, 3714=>748, 3716=>749, 3719=>569, 3720=>742, 3722=>744, 3725=>761, 3732=>706, 3733=>704, 3734=>747,
+ 3735=>819, 3737=>730, 3738=>727, 3739=>727, 3740=>922, 3741=>827, 3742=>866, 3743=>866, 3745=>836, 3746=>761, 3747=>770, 3749=>769, 3751=>713, 3754=>827, 3755=>1031, 3757=>724,
+ 3758=>784, 3759=>934, 3760=>688, 3761=>0, 3762=>610, 3763=>610, 3764=>0, 3765=>0, 3766=>0, 3767=>0, 3768=>0, 3769=>0, 3771=>0, 3772=>0, 3773=>670, 3776=>516,
+ 3777=>860, 3778=>516, 3779=>650, 3780=>632, 3782=>759, 3784=>0, 3785=>0, 3786=>0, 3787=>0, 3788=>0, 3789=>0, 3804=>1363, 3805=>1363, 5121=>774, 5122=>774, 5123=>774,
+ 5124=>774, 5125=>905, 5126=>905, 5127=>905, 5129=>905, 5130=>905, 5131=>905, 5132=>1018, 5133=>1009, 5134=>1018, 5135=>1009, 5136=>1018, 5137=>1009, 5138=>1149, 5139=>1140, 5140=>1149,
+ 5141=>1140, 5142=>905, 5143=>1149, 5144=>1142, 5145=>1149, 5146=>1142, 5147=>905, 5149=>310, 5150=>529, 5151=>425, 5152=>425, 5153=>395, 5154=>395, 5155=>395, 5156=>395, 5157=>564,
+ 5158=>470, 5159=>310, 5160=>395, 5161=>395, 5162=>395, 5163=>1213, 5164=>986, 5165=>1216, 5166=>1297, 5167=>774, 5168=>774, 5169=>774, 5170=>774, 5171=>886, 5172=>886, 5173=>886,
+ 5175=>886, 5176=>886, 5177=>886, 5178=>1018, 5179=>1009, 5180=>1018, 5181=>1009, 5182=>1018, 5183=>1009, 5184=>1149, 5185=>1140, 5186=>1149, 5187=>1140, 5188=>1149, 5189=>1142, 5190=>1149,
+ 5191=>1142, 5192=>886, 5193=>576, 5194=>229, 5196=>812, 5197=>812, 5198=>812, 5199=>812, 5200=>815, 5201=>815, 5202=>815, 5204=>815, 5205=>815, 5206=>815, 5207=>1056, 5208=>1048,
+ 5209=>1056, 5210=>1048, 5211=>1056, 5212=>1048, 5213=>1060, 5214=>1054, 5215=>1060, 5216=>1054, 5217=>1060, 5218=>1052, 5219=>1060, 5220=>1052, 5221=>1060, 5222=>483, 5223=>1005, 5224=>1005,
+ 5225=>1023, 5226=>1017, 5227=>743, 5228=>743, 5229=>743, 5230=>743, 5231=>743, 5232=>755, 5233=>743, 5234=>743, 5235=>743, 5236=>1029, 5237=>975, 5238=>980, 5239=>975, 5240=>980,
+ 5241=>975, 5242=>1029, 5243=>975, 5244=>1029, 5245=>975, 5246=>980, 5247=>975, 5248=>980, 5249=>975, 5250=>980, 5251=>501, 5252=>501, 5253=>938, 5254=>938, 5255=>938, 5256=>938,
+ 5257=>743, 5258=>743, 5259=>743, 5260=>743, 5261=>743, 5262=>755, 5263=>743, 5264=>743, 5265=>743, 5266=>1029, 5267=>975, 5268=>1029, 5269=>975, 5270=>1029, 5271=>975, 5272=>1029,
+ 5273=>975, 5274=>1029, 5275=>975, 5276=>1029, 5277=>975, 5278=>1029, 5279=>975, 5280=>1029, 5281=>501, 5282=>501, 5283=>626, 5284=>626, 5285=>626, 5286=>626, 5287=>626, 5288=>667,
+ 5289=>626, 5290=>626, 5291=>626, 5292=>881, 5293=>854, 5294=>863, 5295=>874, 5296=>863, 5297=>874, 5298=>881, 5299=>874, 5300=>881, 5301=>874, 5302=>863, 5303=>874, 5304=>863,
+ 5305=>874, 5306=>863, 5307=>436, 5308=>548, 5309=>436, 5312=>988, 5313=>988, 5314=>988, 5315=>988, 5316=>931, 5317=>931, 5318=>931, 5319=>931, 5320=>931, 5321=>1238, 5322=>1247,
+ 5323=>1200, 5324=>1228, 5325=>1200, 5326=>1228, 5327=>931, 5328=>660, 5329=>497, 5330=>660, 5331=>988, 5332=>988, 5333=>988, 5334=>988, 5335=>931, 5336=>931, 5337=>931, 5338=>931,
+ 5339=>931, 5340=>1231, 5341=>1247, 5342=>1283, 5343=>1228, 5344=>1283, 5345=>1228, 5346=>1228, 5347=>1214, 5348=>1228, 5349=>1214, 5350=>1283, 5351=>1228, 5352=>1283, 5353=>1228, 5354=>660,
+ 5356=>886, 5357=>730, 5358=>730, 5359=>730, 5360=>730, 5361=>730, 5362=>755, 5363=>730, 5364=>730, 5365=>730, 5366=>998, 5367=>958, 5368=>967, 5369=>989, 5370=>967, 5371=>989,
+ 5372=>998, 5373=>958, 5374=>998, 5375=>958, 5376=>967, 5377=>989, 5378=>967, 5379=>989, 5380=>967, 5381=>493, 5382=>460, 5383=>493, 5392=>923, 5393=>923, 5394=>923, 5395=>1136,
+ 5396=>1136, 5397=>1136, 5398=>1136, 5399=>1209, 5400=>1202, 5401=>1209, 5402=>1202, 5403=>1209, 5404=>1202, 5405=>1431, 5406=>1420, 5407=>1431, 5408=>1420, 5409=>1431, 5410=>1420, 5411=>1431,
+ 5412=>1420, 5413=>746, 5414=>776, 5415=>776, 5416=>776, 5417=>776, 5418=>776, 5419=>776, 5420=>776, 5421=>776, 5422=>776, 5423=>1003, 5424=>1003, 5425=>1013, 5426=>996, 5427=>1013,
+ 5428=>996, 5429=>1003, 5430=>1003, 5431=>1003, 5432=>1003, 5433=>1013, 5434=>996, 5435=>1013, 5436=>996, 5437=>1013, 5438=>495, 5440=>395, 5441=>510, 5442=>1033, 5443=>1033, 5444=>976,
+ 5445=>976, 5446=>976, 5447=>976, 5448=>733, 5449=>733, 5450=>733, 5451=>733, 5452=>733, 5453=>733, 5454=>1003, 5455=>959, 5456=>495, 5458=>886, 5459=>774, 5460=>774, 5461=>774,
+ 5462=>774, 5463=>928, 5464=>928, 5465=>928, 5466=>928, 5467=>1172, 5468=>1142, 5469=>602, 5470=>812, 5471=>812, 5472=>812, 5473=>812, 5474=>812, 5475=>812, 5476=>815, 5477=>815,
+ 5478=>815, 5479=>815, 5480=>1060, 5481=>1052, 5482=>548, 5492=>977, 5493=>977, 5494=>977, 5495=>977, 5496=>977, 5497=>977, 5498=>977, 5499=>618, 5500=>837, 5501=>510, 5502=>1238,
+ 5503=>1238, 5504=>1238, 5505=>1238, 5506=>1238, 5507=>1238, 5508=>1238, 5509=>989, 5514=>977, 5515=>977, 5516=>977, 5517=>977, 5518=>1591, 5519=>1591, 5520=>1591, 5521=>1295, 5522=>1295,
+ 5523=>1591, 5524=>1591, 5525=>848, 5526=>1273, 5536=>988, 5537=>988, 5538=>931, 5539=>931, 5540=>931, 5541=>931, 5542=>660, 5543=>776, 5544=>776, 5545=>776, 5546=>776, 5547=>776,
+ 5548=>776, 5549=>776, 5550=>495, 5551=>743, 5598=>830, 5601=>830, 5702=>496, 5703=>496, 5742=>413, 5743=>1238, 5744=>1591, 5745=>2016, 5746=>2016, 5747=>1720, 5748=>1678, 5749=>2016,
+ 5750=>2016, 7424=>652, 7425=>833, 7426=>1048, 7427=>608, 7428=>593, 7429=>676, 7430=>676, 7431=>559, 7432=>557, 7433=>343, 7434=>494, 7435=>665, 7436=>539, 7437=>817, 7438=>701,
+ 7439=>687, 7440=>593, 7441=>660, 7442=>660, 7443=>660, 7444=>1094, 7446=>687, 7447=>687, 7448=>556, 7449=>642, 7450=>642, 7451=>580, 7452=>634, 7453=>737, 7454=>948, 7455=>695,
+ 7456=>652, 7457=>924, 7458=>582, 7459=>646, 7462=>539, 7463=>652, 7464=>691, 7465=>556, 7466=>781, 7467=>732, 7468=>487, 7469=>683, 7470=>480, 7472=>523, 7473=>430, 7474=>430,
+ 7475=>517, 7476=>527, 7477=>234, 7478=>234, 7479=>488, 7480=>401, 7481=>626, 7482=>527, 7483=>527, 7484=>535, 7485=>509, 7486=>461, 7487=>485, 7488=>430, 7489=>511, 7490=>695,
+ 7491=>458, 7492=>458, 7493=>479, 7494=>712, 7495=>479, 7496=>479, 7497=>479, 7498=>479, 7499=>386, 7500=>386, 7501=>479, 7502=>219, 7503=>487, 7504=>664, 7505=>456, 7506=>488,
+ 7507=>414, 7508=>488, 7509=>488, 7510=>479, 7511=>388, 7512=>456, 7513=>462, 7514=>664, 7515=>501, 7517=>451, 7518=>429, 7519=>433, 7520=>493, 7521=>406, 7522=>219, 7523=>315,
+ 7524=>456, 7525=>501, 7526=>451, 7527=>429, 7528=>433, 7529=>493, 7530=>406, 7543=>716, 7544=>527, 7547=>545, 7557=>514, 7579=>479, 7580=>414, 7581=>414, 7582=>488, 7583=>386,
+ 7584=>377, 7585=>348, 7586=>479, 7587=>456, 7588=>347, 7589=>281, 7590=>347, 7591=>347, 7592=>431, 7593=>326, 7594=>330, 7595=>370, 7596=>664, 7597=>664, 7598=>562, 7599=>562,
+ 7600=>448, 7601=>488, 7602=>542, 7603=>422, 7604=>396, 7605=>388, 7606=>583, 7607=>494, 7608=>399, 7609=>451, 7610=>501, 7611=>417, 7612=>523, 7613=>470, 7614=>455, 7615=>425,
+ 7620=>0, 7621=>0, 7622=>0, 7623=>0, 7624=>0, 7625=>0, 7680=>774, 7681=>675, 7682=>762, 7683=>716, 7684=>762, 7685=>716, 7686=>762, 7687=>716, 7688=>734, 7689=>593,
+ 7690=>830, 7691=>716, 7692=>830, 7693=>716, 7694=>830, 7695=>716, 7696=>830, 7697=>716, 7698=>830, 7699=>716, 7700=>683, 7701=>678, 7702=>683, 7703=>678, 7704=>683, 7705=>678,
+ 7706=>683, 7707=>678, 7708=>683, 7709=>678, 7710=>683, 7711=>435, 7712=>821, 7713=>716, 7714=>837, 7715=>712, 7716=>837, 7717=>712, 7718=>837, 7719=>712, 7720=>837, 7721=>712,
+ 7722=>837, 7723=>712, 7724=>372, 7725=>343, 7726=>372, 7727=>343, 7728=>775, 7729=>665, 7730=>775, 7731=>665, 7732=>775, 7733=>665, 7734=>637, 7735=>343, 7736=>637, 7737=>343,
+ 7738=>637, 7739=>343, 7740=>637, 7741=>343, 7742=>995, 7743=>1042, 7744=>995, 7745=>1042, 7746=>995, 7747=>1042, 7748=>837, 7749=>712, 7750=>837, 7751=>712, 7752=>837, 7753=>712,
+ 7754=>837, 7755=>712, 7756=>850, 7757=>687, 7758=>850, 7759=>687, 7760=>850, 7761=>687, 7762=>850, 7763=>687, 7764=>733, 7765=>716, 7766=>733, 7767=>716, 7768=>770, 7769=>493,
+ 7770=>770, 7771=>493, 7772=>770, 7773=>493, 7774=>770, 7775=>493, 7776=>720, 7777=>595, 7778=>720, 7779=>595, 7780=>720, 7781=>595, 7782=>720, 7783=>595, 7784=>720, 7785=>595,
+ 7786=>682, 7787=>478, 7788=>682, 7789=>478, 7790=>682, 7791=>478, 7792=>682, 7793=>478, 7794=>812, 7795=>712, 7796=>812, 7797=>712, 7798=>812, 7799=>712, 7800=>812, 7801=>712,
+ 7802=>812, 7803=>712, 7804=>774, 7805=>652, 7806=>774, 7807=>652, 7808=>1103, 7809=>924, 7810=>1103, 7811=>924, 7812=>1103, 7813=>924, 7814=>1103, 7815=>924, 7816=>1103, 7817=>924,
+ 7818=>771, 7819=>645, 7820=>771, 7821=>645, 7822=>724, 7823=>652, 7824=>725, 7825=>582, 7826=>725, 7827=>582, 7828=>725, 7829=>582, 7830=>712, 7831=>478, 7832=>924, 7833=>652,
+ 7834=>675, 7835=>435, 7840=>774, 7841=>675, 7842=>774, 7843=>675, 7844=>774, 7845=>675, 7846=>774, 7847=>675, 7848=>774, 7849=>675, 7850=>774, 7851=>675, 7852=>774, 7853=>675,
+ 7854=>774, 7855=>675, 7856=>774, 7857=>675, 7858=>774, 7859=>675, 7860=>774, 7861=>675, 7862=>774, 7863=>675, 7864=>683, 7865=>678, 7866=>683, 7867=>678, 7868=>683, 7869=>678,
+ 7870=>683, 7871=>678, 7872=>683, 7873=>678, 7874=>683, 7875=>678, 7876=>683, 7877=>678, 7878=>683, 7879=>678, 7880=>372, 7881=>343, 7882=>372, 7883=>343, 7884=>850, 7885=>687,
+ 7886=>850, 7887=>687, 7888=>850, 7889=>687, 7890=>850, 7891=>687, 7892=>850, 7893=>687, 7894=>850, 7895=>687, 7896=>850, 7897=>687, 7898=>874, 7899=>687, 7900=>874, 7901=>687,
+ 7902=>874, 7903=>687, 7904=>874, 7905=>687, 7906=>874, 7907=>687, 7908=>812, 7909=>712, 7910=>812, 7911=>712, 7912=>835, 7913=>712, 7914=>835, 7915=>712, 7916=>835, 7917=>712,
+ 7918=>835, 7919=>712, 7920=>835, 7921=>712, 7922=>724, 7923=>652, 7924=>724, 7925=>652, 7926=>724, 7927=>652, 7928=>724, 7929=>652, 7936=>687, 7937=>687, 7938=>687, 7939=>687,
+ 7940=>687, 7941=>687, 7942=>687, 7943=>687, 7944=>774, 7945=>774, 7946=>1041, 7947=>1043, 7948=>935, 7949=>963, 7950=>835, 7951=>859, 7952=>557, 7953=>557, 7954=>557, 7955=>557,
+ 7956=>557, 7957=>557, 7960=>792, 7961=>794, 7962=>1100, 7963=>1096, 7964=>1023, 7965=>1052, 7968=>712, 7969=>712, 7970=>712, 7971=>712, 7972=>712, 7973=>712, 7974=>712, 7975=>712,
+ 7976=>945, 7977=>951, 7978=>1250, 7979=>1250, 7980=>1180, 7981=>1206, 7982=>1054, 7983=>1063, 7984=>390, 7985=>390, 7986=>390, 7987=>390, 7988=>390, 7989=>390, 7990=>390, 7991=>390,
+ 7992=>483, 7993=>489, 7994=>777, 7995=>785, 7996=>712, 7997=>738, 7998=>604, 7999=>604, 8000=>687, 8001=>687, 8002=>687, 8003=>687, 8004=>687, 8005=>687, 8008=>892, 8009=>933,
+ 8010=>1221, 8011=>1224, 8012=>1053, 8013=>1082, 8016=>675, 8017=>675, 8018=>675, 8019=>675, 8020=>675, 8021=>675, 8022=>675, 8023=>675, 8025=>930, 8027=>1184, 8029=>1199, 8031=>1049,
+ 8032=>869, 8033=>869, 8034=>869, 8035=>869, 8036=>869, 8037=>869, 8038=>869, 8039=>869, 8040=>909, 8041=>958, 8042=>1246, 8043=>1251, 8044=>1076, 8045=>1105, 8046=>1028, 8047=>1076,
+ 8048=>687, 8049=>687, 8050=>557, 8051=>557, 8052=>712, 8053=>712, 8054=>390, 8055=>390, 8056=>687, 8057=>687, 8058=>675, 8059=>675, 8060=>869, 8061=>869, 8064=>687, 8065=>687,
+ 8066=>687, 8067=>687, 8068=>687, 8069=>687, 8070=>687, 8071=>687, 8072=>774, 8073=>774, 8074=>1041, 8075=>1043, 8076=>935, 8077=>963, 8078=>835, 8079=>859, 8080=>712, 8081=>712,
+ 8082=>712, 8083=>712, 8084=>712, 8085=>712, 8086=>712, 8087=>712, 8088=>945, 8089=>951, 8090=>1250, 8091=>1250, 8092=>1180, 8093=>1206, 8094=>1054, 8095=>1063, 8096=>869, 8097=>869,
+ 8098=>869, 8099=>869, 8100=>869, 8101=>869, 8102=>869, 8103=>869, 8104=>909, 8105=>958, 8106=>1246, 8107=>1251, 8108=>1076, 8109=>1105, 8110=>1028, 8111=>1076, 8112=>687, 8113=>687,
+ 8114=>687, 8115=>687, 8116=>687, 8118=>687, 8119=>687, 8120=>774, 8121=>774, 8122=>876, 8123=>797, 8124=>774, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>712,
+ 8131=>712, 8132=>712, 8134=>712, 8135=>712, 8136=>929, 8137=>846, 8138=>1080, 8139=>1009, 8140=>837, 8141=>500, 8142=>500, 8143=>500, 8144=>390, 8145=>390, 8146=>390, 8147=>390,
+ 8150=>390, 8151=>390, 8152=>372, 8153=>372, 8154=>621, 8155=>563, 8157=>500, 8158=>500, 8159=>500, 8160=>675, 8161=>675, 8162=>675, 8163=>675, 8164=>716, 8165=>716, 8166=>675,
+ 8167=>675, 8168=>724, 8169=>724, 8170=>1020, 8171=>980, 8172=>838, 8173=>500, 8174=>500, 8175=>500, 8178=>869, 8179=>869, 8180=>869, 8182=>869, 8183=>869, 8184=>1065, 8185=>891,
+ 8186=>1084, 8187=>894, 8188=>850, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000, 8196=>330, 8197=>250, 8198=>167, 8199=>696, 8200=>380, 8201=>200, 8202=>100,
+ 8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>415, 8209=>415, 8210=>696, 8213=>1000, 8214=>500, 8215=>500, 8219=>380, 8223=>657, 8227=>639, 8228=>333, 8229=>667,
+ 8231=>348, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1887, 8242=>264, 8243=>447, 8244=>630, 8245=>264, 8246=>447, 8247=>630, 8248=>733, 8251=>972,
+ 8252=>627, 8253=>580, 8254=>500, 8255=>828, 8256=>828, 8257=>329, 8258=>1023, 8259=>500, 8260=>456, 8261=>457, 8262=>457, 8263=>1030, 8264=>829, 8265=>829, 8266=>513, 8267=>636,
+ 8268=>500, 8269=>500, 8270=>523, 8271=>400, 8272=>828, 8273=>523, 8274=>556, 8275=>838, 8276=>828, 8277=>838, 8278=>684, 8279=>813, 8280=>838, 8281=>838, 8282=>380, 8283=>872,
+ 8284=>838, 8285=>380, 8286=>380, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>438, 8305=>219,
+ 8308=>438, 8309=>438, 8310=>438, 8311=>438, 8312=>438, 8313=>438, 8314=>528, 8315=>528, 8316=>528, 8317=>288, 8318=>288, 8319=>456, 8320=>438, 8321=>438, 8322=>438, 8323=>438,
+ 8324=>438, 8325=>438, 8326=>438, 8327=>438, 8328=>438, 8329=>438, 8330=>528, 8331=>528, 8332=>528, 8333=>288, 8334=>288, 8336=>458, 8337=>479, 8338=>488, 8339=>413, 8340=>479,
+ 8352=>929, 8353=>696, 8354=>696, 8355=>696, 8356=>696, 8357=>1042, 8358=>837, 8359=>1518, 8360=>1205, 8361=>1103, 8362=>904, 8363=>696, 8365=>696, 8366=>682, 8367=>1392, 8368=>696,
+ 8369=>696, 8370=>696, 8371=>696, 8372=>859, 8373=>696, 8400=>0, 8401=>0, 8406=>0, 8407=>0, 8448=>1120, 8449=>1170, 8450=>734, 8451=>1211, 8452=>896, 8453=>1091, 8454=>1144,
+ 8455=>614, 8456=>698, 8457=>1086, 8459=>1073, 8460=>913, 8461=>850, 8462=>712, 8463=>712, 8464=>604, 8465=>694, 8466=>868, 8467=>472, 8468=>974, 8469=>837, 8470=>1203, 8471=>1000,
+ 8472=>697, 8473=>702, 8474=>850, 8475=>876, 8476=>814, 8477=>792, 8478=>896, 8479=>710, 8480=>1020, 8481=>1281, 8483=>755, 8484=>725, 8485=>578, 8486=>850, 8487=>769, 8488=>763,
+ 8489=>338, 8490=>775, 8491=>774, 8492=>928, 8493=>776, 8494=>854, 8495=>636, 8496=>738, 8497=>811, 8498=>683, 8499=>1193, 8500=>465, 8501=>794, 8502=>736, 8503=>503, 8504=>695,
+ 8505=>380, 8506=>945, 8507=>1348, 8508=>790, 8509=>737, 8510=>652, 8511=>845, 8512=>840, 8513=>775, 8514=>557, 8515=>637, 8516=>760, 8517=>830, 8518=>716, 8519=>678, 8520=>343,
+ 8521=>343, 8523=>872, 8526=>547, 8531=>1035, 8532=>1035, 8533=>1035, 8534=>1035, 8535=>1035, 8536=>1035, 8537=>1035, 8538=>1035, 8539=>1035, 8540=>1035, 8541=>1035, 8542=>1035, 8543=>615,
+ 8544=>372, 8545=>659, 8546=>945, 8547=>1099, 8548=>774, 8549=>1099, 8550=>1386, 8551=>1672, 8552=>1121, 8553=>771, 8554=>1120, 8555=>1407, 8556=>637, 8557=>734, 8558=>830, 8559=>995,
+ 8560=>343, 8561=>607, 8562=>872, 8563=>984, 8564=>652, 8565=>962, 8566=>1227, 8567=>1491, 8568=>969, 8569=>645, 8570=>969, 8571=>1233, 8572=>343, 8573=>593, 8574=>716, 8575=>1042,
+ 8576=>1289, 8577=>830, 8578=>1289, 8579=>734, 8580=>593, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8596=>838, 8597=>838, 8598=>838, 8599=>838, 8600=>838, 8601=>838, 8602=>838,
+ 8603=>838, 8604=>838, 8605=>838, 8606=>838, 8607=>838, 8608=>838, 8609=>838, 8610=>838, 8611=>838, 8612=>838, 8613=>838, 8614=>838, 8615=>838, 8616=>838, 8617=>838, 8618=>838,
+ 8619=>838, 8620=>838, 8621=>838, 8622=>838, 8623=>838, 8624=>838, 8625=>838, 8626=>838, 8627=>838, 8628=>838, 8629=>838, 8630=>838, 8631=>838, 8632=>838, 8633=>838, 8634=>838,
+ 8635=>838, 8636=>838, 8637=>838, 8638=>838, 8639=>838, 8640=>838, 8641=>838, 8642=>838, 8643=>838, 8644=>838, 8645=>838, 8646=>838, 8647=>838, 8648=>838, 8649=>838, 8650=>838,
+ 8651=>838, 8652=>838, 8653=>838, 8654=>838, 8655=>838, 8656=>838, 8657=>838, 8658=>838, 8659=>838, 8660=>838, 8661=>838, 8662=>838, 8663=>838, 8664=>838, 8665=>838, 8666=>838,
+ 8667=>838, 8668=>838, 8669=>838, 8670=>838, 8671=>838, 8672=>838, 8673=>838, 8674=>838, 8675=>838, 8676=>838, 8677=>838, 8678=>838, 8679=>838, 8680=>838, 8681=>838, 8682=>838,
+ 8683=>838, 8684=>838, 8685=>838, 8686=>838, 8687=>838, 8688=>838, 8689=>838, 8690=>838, 8691=>838, 8692=>838, 8693=>838, 8694=>838, 8695=>838, 8696=>838, 8697=>838, 8698=>838,
+ 8699=>838, 8700=>838, 8701=>838, 8702=>838, 8703=>838, 8704=>774, 8705=>696, 8706=>544, 8707=>683, 8708=>683, 8709=>856, 8710=>697, 8711=>697, 8712=>896, 8713=>896, 8714=>750,
+ 8715=>896, 8716=>896, 8717=>750, 8718=>636, 8719=>787, 8720=>787, 8721=>718, 8722=>838, 8723=>838, 8724=>696, 8725=>167, 8726=>696, 8727=>838, 8728=>626, 8729=>380, 8730=>667,
+ 8731=>667, 8732=>667, 8733=>669, 8734=>833, 8735=>838, 8736=>896, 8737=>896, 8738=>838, 8739=>500, 8740=>500, 8741=>500, 8742=>500, 8743=>812, 8744=>812, 8745=>812, 8746=>812,
+ 8747=>610, 8748=>929, 8749=>1295, 8750=>563, 8751=>977, 8752=>1313, 8753=>563, 8754=>563, 8755=>563, 8756=>696, 8757=>696, 8758=>294, 8759=>696, 8760=>838, 8761=>838, 8762=>838,
+ 8763=>838, 8764=>838, 8765=>838, 8766=>838, 8767=>838, 8768=>375, 8769=>838, 8770=>838, 8771=>838, 8772=>838, 8773=>838, 8774=>838, 8775=>838, 8776=>838, 8777=>838, 8778=>838,
+ 8779=>838, 8780=>838, 8781=>838, 8782=>838, 8783=>838, 8784=>838, 8785=>838, 8786=>838, 8787=>838, 8788=>1063, 8789=>1063, 8790=>838, 8791=>838, 8792=>838, 8793=>838, 8794=>838,
+ 8795=>838, 8796=>838, 8797=>838, 8798=>838, 8799=>838, 8800=>838, 8801=>838, 8802=>838, 8803=>838, 8804=>838, 8805=>838, 8806=>838, 8807=>838, 8808=>841, 8809=>841, 8810=>1047,
+ 8811=>1047, 8812=>500, 8813=>838, 8814=>838, 8815=>838, 8816=>838, 8817=>838, 8818=>838, 8819=>838, 8820=>838, 8821=>838, 8822=>838, 8823=>838, 8824=>838, 8825=>838, 8826=>838,
+ 8827=>838, 8828=>838, 8829=>838, 8830=>838, 8831=>838, 8832=>838, 8833=>838, 8834=>838, 8835=>838, 8836=>838, 8837=>838, 8838=>838, 8839=>838, 8840=>838, 8841=>838, 8842=>838,
+ 8843=>838, 8844=>812, 8845=>812, 8846=>812, 8847=>838, 8848=>838, 8849=>838, 8850=>838, 8851=>754, 8852=>754, 8853=>838, 8854=>838, 8855=>838, 8856=>838, 8857=>838, 8858=>838,
+ 8859=>838, 8860=>838, 8861=>838, 8862=>838, 8863=>838, 8864=>838, 8865=>838, 8866=>914, 8867=>914, 8868=>914, 8869=>914, 8870=>542, 8871=>542, 8872=>914, 8873=>914, 8874=>914,
+ 8875=>914, 8876=>914, 8877=>914, 8878=>914, 8879=>914, 8882=>838, 8883=>838, 8884=>838, 8885=>838, 8886=>1000, 8887=>1000, 8888=>838, 8889=>838, 8890=>542, 8891=>812, 8892=>812,
+ 8893=>812, 8896=>843, 8897=>843, 8898=>843, 8899=>843, 8900=>494, 8901=>380, 8902=>626, 8904=>1000, 8905=>1000, 8906=>1000, 8907=>1000, 8908=>1000, 8909=>838, 8918=>838, 8919=>838,
+ 8920=>1422, 8921=>1422, 8922=>838, 8923=>838, 8924=>838, 8925=>838, 8926=>838, 8927=>838, 8928=>838, 8929=>838, 8930=>838, 8931=>838, 8932=>838, 8933=>838, 8934=>838, 8935=>838,
+ 8936=>838, 8937=>838, 8938=>838, 8939=>838, 8940=>838, 8941=>838, 8946=>1158, 8947=>896, 8948=>750, 8949=>896, 8950=>896, 8951=>750, 8952=>896, 8953=>896, 8954=>1158, 8955=>896,
+ 8956=>750, 8957=>896, 8958=>750, 8959=>896, 8962=>716, 8966=>917, 8968=>457, 8969=>457, 8970=>457, 8971=>457, 8976=>838, 8977=>539, 8984=>928, 8985=>838, 8992=>610, 8993=>610,
+ 8997=>1000, 9000=>1443, 9085=>863, 9115=>500, 9116=>500, 9117=>500, 9118=>500, 9119=>500, 9120=>500, 9121=>500, 9122=>500, 9123=>500, 9124=>500, 9125=>500, 9126=>500, 9127=>750,
+ 9128=>750, 9129=>750, 9130=>750, 9131=>750, 9132=>750, 9133=>750, 9134=>610, 9166=>838, 9167=>945, 9250=>716, 9251=>716, 9312=>847, 9313=>847, 9314=>847, 9315=>847, 9316=>847,
+ 9317=>847, 9318=>847, 9319=>847, 9320=>847, 9321=>847, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769, 9609=>769, 9610=>769,
+ 9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769, 9625=>769, 9626=>769,
+ 9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945, 9641=>945, 9642=>678,
+ 9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502, 9657=>502, 9658=>769,
+ 9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769, 9673=>873, 9674=>494,
+ 9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>840, 9689=>970, 9690=>970,
+ 9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>769, 9697=>769, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>639, 9703=>945, 9704=>945, 9705=>945, 9706=>945,
+ 9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769, 9721=>769, 9722=>769,
+ 9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9729=>1000, 9730=>896, 9731=>896, 9732=>896, 9733=>896, 9734=>896, 9735=>573, 9736=>896, 9737=>896, 9738=>888,
+ 9739=>888, 9740=>671, 9741=>1013, 9742=>1246, 9743=>1250, 9744=>896, 9745=>896, 9746=>896, 9747=>532, 9748=>896, 9749=>896, 9750=>896, 9751=>896, 9752=>896, 9753=>896, 9754=>896,
+ 9755=>896, 9756=>896, 9757=>609, 9758=>896, 9759=>609, 9760=>896, 9761=>896, 9762=>896, 9763=>896, 9764=>669, 9765=>746, 9766=>649, 9767=>784, 9768=>545, 9769=>896, 9770=>896,
+ 9771=>896, 9772=>710, 9773=>896, 9774=>896, 9775=>896, 9776=>896, 9777=>896, 9778=>896, 9779=>896, 9780=>896, 9781=>896, 9782=>896, 9783=>896, 9784=>896, 9785=>896, 9786=>896,
+ 9787=>896, 9788=>896, 9789=>896, 9790=>896, 9791=>614, 9792=>731, 9793=>731, 9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9800=>896, 9801=>896, 9802=>896,
+ 9803=>896, 9804=>896, 9805=>896, 9806=>896, 9807=>896, 9808=>896, 9809=>896, 9810=>896, 9811=>896, 9812=>896, 9813=>896, 9814=>896, 9815=>896, 9816=>896, 9817=>896, 9818=>896,
+ 9819=>896, 9820=>896, 9821=>896, 9822=>896, 9823=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9832=>896, 9833=>472, 9834=>638,
+ 9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 9840=>748, 9841=>766, 9842=>896, 9843=>896, 9844=>896, 9845=>896, 9846=>896, 9847=>896, 9848=>896, 9849=>896, 9850=>896,
+ 9851=>896, 9852=>896, 9853=>896, 9854=>896, 9855=>896, 9856=>869, 9857=>869, 9858=>869, 9859=>869, 9860=>869, 9861=>869, 9862=>896, 9863=>896, 9864=>896, 9865=>896, 9866=>896,
+ 9867=>896, 9868=>896, 9869=>896, 9870=>896, 9871=>896, 9872=>896, 9873=>896, 9874=>896, 9875=>896, 9876=>896, 9877=>541, 9878=>896, 9879=>896, 9880=>896, 9881=>896, 9882=>896,
+ 9883=>896, 9884=>896, 9888=>896, 9889=>702, 9890=>838, 9891=>838, 9892=>838, 9893=>838, 9894=>838, 9895=>838, 9896=>838, 9897=>838, 9898=>838, 9899=>838, 9900=>838, 9901=>838,
+ 9902=>838, 9903=>838, 9904=>844, 9905=>838, 9906=>731, 9985=>838, 9986=>838, 9987=>838, 9988=>838, 9990=>838, 9991=>838, 9992=>838, 9993=>838, 9996=>838, 9997=>838, 9998=>838,
+ 9999=>838, 10000=>838, 10001=>838, 10002=>838, 10003=>838, 10004=>838, 10005=>838, 10006=>838, 10007=>838, 10008=>838, 10009=>838, 10010=>838, 10011=>838, 10012=>838, 10013=>838, 10014=>838,
+ 10015=>838, 10016=>838, 10017=>838, 10018=>838, 10019=>838, 10020=>838, 10021=>838, 10022=>838, 10023=>838, 10025=>838, 10026=>838, 10027=>838, 10028=>838, 10029=>838, 10030=>838, 10031=>838,
+ 10032=>838, 10033=>838, 10034=>838, 10035=>838, 10036=>838, 10037=>838, 10038=>838, 10039=>838, 10040=>838, 10041=>838, 10042=>838, 10043=>838, 10044=>838, 10045=>838, 10046=>838, 10047=>838,
+ 10048=>838, 10049=>838, 10050=>838, 10051=>838, 10052=>838, 10053=>838, 10054=>838, 10055=>838, 10056=>838, 10057=>838, 10058=>838, 10059=>838, 10061=>896, 10063=>896, 10064=>896, 10065=>896,
+ 10066=>896, 10070=>896, 10072=>838, 10073=>838, 10074=>838, 10075=>347, 10076=>347, 10077=>587, 10078=>587, 10081=>838, 10082=>838, 10083=>838, 10084=>838, 10085=>838, 10086=>838, 10087=>838,
+ 10088=>838, 10089=>838, 10090=>838, 10091=>838, 10092=>838, 10093=>838, 10094=>838, 10095=>838, 10096=>838, 10097=>838, 10098=>838, 10099=>838, 10100=>838, 10101=>838, 10102=>847, 10103=>847,
+ 10104=>847, 10105=>847, 10106=>847, 10107=>847, 10108=>847, 10109=>847, 10110=>847, 10111=>847, 10112=>838, 10113=>838, 10114=>838, 10115=>838, 10116=>838, 10117=>838, 10118=>838, 10119=>838,
+ 10120=>838, 10121=>838, 10122=>838, 10123=>838, 10124=>838, 10125=>838, 10126=>838, 10127=>838, 10128=>838, 10129=>838, 10130=>838, 10131=>838, 10132=>838, 10136=>838, 10137=>838, 10138=>838,
+ 10139=>838, 10140=>838, 10141=>838, 10142=>838, 10143=>838, 10144=>838, 10145=>838, 10146=>838, 10147=>838, 10148=>838, 10149=>838, 10150=>838, 10151=>838, 10152=>838, 10153=>838, 10154=>838,
+ 10155=>838, 10156=>838, 10157=>838, 10158=>838, 10159=>838, 10161=>838, 10162=>838, 10163=>838, 10164=>838, 10165=>838, 10166=>838, 10167=>838, 10168=>838, 10169=>838, 10170=>838, 10171=>838,
+ 10172=>838, 10173=>838, 10174=>838, 10208=>494, 10214=>487, 10215=>487, 10216=>457, 10217=>457, 10218=>721, 10219=>721, 10224=>838, 10225=>838, 10226=>838, 10227=>838, 10228=>1157, 10229=>1434,
+ 10230=>1434, 10231=>1434, 10232=>1434, 10233=>1434, 10234=>1434, 10235=>1434, 10236=>1434, 10237=>1434, 10238=>1434, 10239=>1434, 10240=>781, 10241=>781, 10242=>781, 10243=>781, 10244=>781, 10245=>781,
+ 10246=>781, 10247=>781, 10248=>781, 10249=>781, 10250=>781, 10251=>781, 10252=>781, 10253=>781, 10254=>781, 10255=>781, 10256=>781, 10257=>781, 10258=>781, 10259=>781, 10260=>781, 10261=>781,
+ 10262=>781, 10263=>781, 10264=>781, 10265=>781, 10266=>781, 10267=>781, 10268=>781, 10269=>781, 10270=>781, 10271=>781, 10272=>781, 10273=>781, 10274=>781, 10275=>781, 10276=>781, 10277=>781,
+ 10278=>781, 10279=>781, 10280=>781, 10281=>781, 10282=>781, 10283=>781, 10284=>781, 10285=>781, 10286=>781, 10287=>781, 10288=>781, 10289=>781, 10290=>781, 10291=>781, 10292=>781, 10293=>781,
+ 10294=>781, 10295=>781, 10296=>781, 10297=>781, 10298=>781, 10299=>781, 10300=>781, 10301=>781, 10302=>781, 10303=>781, 10304=>781, 10305=>781, 10306=>781, 10307=>781, 10308=>781, 10309=>781,
+ 10310=>781, 10311=>781, 10312=>781, 10313=>781, 10314=>781, 10315=>781, 10316=>781, 10317=>781, 10318=>781, 10319=>781, 10320=>781, 10321=>781, 10322=>781, 10323=>781, 10324=>781, 10325=>781,
+ 10326=>781, 10327=>781, 10328=>781, 10329=>781, 10330=>781, 10331=>781, 10332=>781, 10333=>781, 10334=>781, 10335=>781, 10336=>781, 10337=>781, 10338=>781, 10339=>781, 10340=>781, 10341=>781,
+ 10342=>781, 10343=>781, 10344=>781, 10345=>781, 10346=>781, 10347=>781, 10348=>781, 10349=>781, 10350=>781, 10351=>781, 10352=>781, 10353=>781, 10354=>781, 10355=>781, 10356=>781, 10357=>781,
+ 10358=>781, 10359=>781, 10360=>781, 10361=>781, 10362=>781, 10363=>781, 10364=>781, 10365=>781, 10366=>781, 10367=>781, 10368=>781, 10369=>781, 10370=>781, 10371=>781, 10372=>781, 10373=>781,
+ 10374=>781, 10375=>781, 10376=>781, 10377=>781, 10378=>781, 10379=>781, 10380=>781, 10381=>781, 10382=>781, 10383=>781, 10384=>781, 10385=>781, 10386=>781, 10387=>781, 10388=>781, 10389=>781,
+ 10390=>781, 10391=>781, 10392=>781, 10393=>781, 10394=>781, 10395=>781, 10396=>781, 10397=>781, 10398=>781, 10399=>781, 10400=>781, 10401=>781, 10402=>781, 10403=>781, 10404=>781, 10405=>781,
+ 10406=>781, 10407=>781, 10408=>781, 10409=>781, 10410=>781, 10411=>781, 10412=>781, 10413=>781, 10414=>781, 10415=>781, 10416=>781, 10417=>781, 10418=>781, 10419=>781, 10420=>781, 10421=>781,
+ 10422=>781, 10423=>781, 10424=>781, 10425=>781, 10426=>781, 10427=>781, 10428=>781, 10429=>781, 10430=>781, 10431=>781, 10432=>781, 10433=>781, 10434=>781, 10435=>781, 10436=>781, 10437=>781,
+ 10438=>781, 10439=>781, 10440=>781, 10441=>781, 10442=>781, 10443=>781, 10444=>781, 10445=>781, 10446=>781, 10447=>781, 10448=>781, 10449=>781, 10450=>781, 10451=>781, 10452=>781, 10453=>781,
+ 10454=>781, 10455=>781, 10456=>781, 10457=>781, 10458=>781, 10459=>781, 10460=>781, 10461=>781, 10462=>781, 10463=>781, 10464=>781, 10465=>781, 10466=>781, 10467=>781, 10468=>781, 10469=>781,
+ 10470=>781, 10471=>781, 10472=>781, 10473=>781, 10474=>781, 10475=>781, 10476=>781, 10477=>781, 10478=>781, 10479=>781, 10480=>781, 10481=>781, 10482=>781, 10483=>781, 10484=>781, 10485=>781,
+ 10486=>781, 10487=>781, 10488=>781, 10489=>781, 10490=>781, 10491=>781, 10492=>781, 10493=>781, 10494=>781, 10495=>781, 10502=>838, 10503=>838, 10506=>838, 10507=>838, 10560=>838, 10561=>838,
+ 10702=>838, 10703=>1046, 10704=>1046, 10705=>1000, 10706=>1000, 10707=>1000, 10708=>1000, 10709=>1000, 10731=>494, 10752=>1000, 10753=>1000, 10754=>1000, 10764=>1661, 10765=>563, 10766=>563, 10767=>563,
+ 10768=>563, 10769=>563, 10770=>563, 10771=>563, 10772=>563, 10773=>563, 10774=>563, 10775=>563, 10776=>563, 10777=>563, 10778=>563, 10779=>563, 10780=>563, 10877=>838, 10878=>838, 10879=>838,
+ 10880=>838, 10881=>838, 10882=>838, 10883=>838, 10884=>838, 10885=>838, 10886=>838, 10887=>838, 10888=>838, 10889=>838, 10890=>838, 10891=>838, 10892=>838, 10893=>838, 10894=>838, 10895=>838,
+ 10896=>838, 10897=>838, 10898=>838, 10899=>838, 10900=>838, 10901=>838, 10902=>838, 10903=>838, 10904=>838, 10905=>838, 10906=>838, 10907=>838, 10908=>838, 10909=>838, 10910=>838, 10911=>838,
+ 10912=>838, 10926=>838, 10927=>838, 10928=>838, 10929=>838, 10930=>838, 10931=>838, 10932=>838, 10933=>838, 10934=>838, 10935=>838, 10936=>838, 10937=>838, 10938=>838, 11001=>838, 11002=>838,
+ 11008=>838, 11009=>838, 11010=>838, 11011=>838, 11012=>838, 11013=>838, 11014=>838, 11015=>838, 11016=>838, 11017=>838, 11018=>838, 11019=>838, 11020=>838, 11021=>838, 11022=>838, 11023=>838,
+ 11024=>838, 11025=>838, 11026=>945, 11027=>945, 11028=>945, 11029=>945, 11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 11040=>869, 11041=>873, 11042=>873, 11043=>873, 11360=>637,
+ 11361=>360, 11362=>637, 11363=>733, 11364=>770, 11365=>675, 11366=>478, 11367=>956, 11368=>712, 11369=>775, 11370=>665, 11371=>725, 11372=>582, 11380=>652, 11381=>649, 11382=>516, 11383=>782,
+ 61960=>860, 62047=>720, 63173=>687, 64256=>810, 64257=>741, 64258=>741, 64259=>1115, 64260=>1116, 64261=>808, 64262=>1020, 64275=>1388, 64276=>1384, 64277=>1378, 64278=>1384, 64279=>1713, 64285=>372,
+ 64287=>692, 64288=>720, 64297=>838, 64298=>963, 64299=>963, 64300=>963, 64301=>963, 64302=>751, 64303=>751, 64304=>751, 64305=>731, 64306=>537, 64307=>684, 64308=>778, 64309=>467, 64310=>521,
+ 64312=>770, 64313=>467, 64314=>778, 64315=>750, 64316=>718, 64318=>856, 64320=>532, 64321=>855, 64323=>802, 64324=>777, 64326=>751, 64327=>803, 64328=>778, 64329=>963, 64330=>822, 64331=>372,
+ 64332=>731, 64333=>754, 64334=>777, 64338=>1005, 64339=>1059, 64340=>375, 64341=>408, 64342=>1005, 64343=>1059, 64344=>375, 64345=>408, 64346=>1005, 64347=>1059, 64348=>375, 64349=>408, 64350=>1005,
+ 64351=>1059, 64352=>375, 64353=>408, 64354=>1005, 64355=>1059, 64356=>375, 64357=>408, 64358=>1005, 64359=>1059, 64360=>375, 64361=>408, 64362=>1162, 64363=>1191, 64364=>655, 64365=>720, 64366=>1162,
+ 64367=>1191, 64368=>655, 64369=>720, 64370=>721, 64371=>721, 64372=>721, 64373=>721, 64374=>721, 64375=>721, 64376=>721, 64377=>721, 64378=>721, 64379=>721, 64380=>721, 64381=>721, 64382=>721,
+ 64383=>721, 64384=>721, 64385=>721, 64394=>576, 64395=>622, 64396=>576, 64397=>622, 64398=>1024, 64399=>1024, 64400=>582, 64401=>582, 64402=>1024, 64403=>1024, 64404=>582, 64405=>582, 64414=>854,
+ 64415=>900, 64473=>622, 64474=>627, 64488=>375, 64489=>408, 64508=>917, 64509=>1012, 64510=>375, 64511=>408, 65024=>0, 65025=>0, 65026=>0, 65027=>0, 65028=>0, 65029=>0, 65030=>0,
+ 65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65136=>342, 65137=>342, 65138=>342, 65139=>346, 65140=>342, 65142=>342, 65143=>342,
+ 65144=>342, 65145=>342, 65146=>342, 65147=>342, 65148=>342, 65149=>342, 65150=>342, 65151=>342, 65152=>511, 65153=>343, 65154=>375, 65155=>343, 65156=>375, 65157=>622, 65158=>627, 65159=>343,
+ 65160=>375, 65161=>917, 65162=>917, 65163=>375, 65164=>408, 65165=>343, 65166=>375, 65167=>1005, 65168=>1059, 65169=>375, 65170=>408, 65171=>590, 65172=>606, 65173=>1005, 65174=>1059, 65175=>375,
+ 65176=>408, 65177=>1005, 65178=>1059, 65179=>375, 65180=>408, 65181=>721, 65182=>721, 65183=>721, 65184=>721, 65185=>721, 65186=>721, 65187=>721, 65188=>721, 65189=>721, 65190=>721, 65191=>721,
+ 65192=>721, 65193=>513, 65194=>578, 65195=>513, 65196=>578, 65197=>576, 65198=>622, 65199=>576, 65200=>622, 65201=>1380, 65202=>1414, 65203=>983, 65204=>1018, 65205=>1380, 65206=>1414, 65207=>983,
+ 65208=>1018, 65209=>1345, 65210=>1364, 65211=>966, 65212=>985, 65213=>1345, 65214=>1364, 65215=>966, 65216=>985, 65217=>1039, 65218=>1071, 65219=>942, 65220=>974, 65221=>1039, 65222=>1071, 65223=>942,
+ 65224=>974, 65225=>683, 65226=>683, 65227=>683, 65228=>564, 65229=>683, 65230=>683, 65231=>683, 65232=>564, 65233=>1162, 65234=>1191, 65235=>655, 65236=>720, 65237=>894, 65238=>901, 65239=>655,
+ 65240=>720, 65241=>917, 65242=>931, 65243=>582, 65244=>582, 65245=>868, 65246=>893, 65247=>375, 65248=>408, 65249=>733, 65250=>784, 65251=>619, 65252=>670, 65253=>854, 65254=>900, 65255=>375,
+ 65256=>408, 65257=>590, 65258=>606, 65259=>693, 65260=>660, 65261=>622, 65262=>627, 65263=>917, 65264=>1012, 65265=>917, 65266=>1012, 65267=>375, 65268=>408, 65269=>745, 65270=>759, 65271=>745,
+ 65272=>759, 65273=>745, 65274=>759, 65275=>745, 65276=>759, 65279=>0, 65533=>1113);
+$enc='';
+$diff='';
+$file='DejaVuSans-Bold.z';
+$ctg='DejaVuSans-Bold.ctg.z';
+$originalsize=494260;
+?>
diff --git a/libraries/tcpdf/font/dejavuserif-bold.ctg.z b/libraries/tcpdf/font/dejavuserif-bold.ctg.z
new file mode 100644
index 0000000000..28b33e63eb
--- /dev/null
+++ b/libraries/tcpdf/font/dejavuserif-bold.ctg.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavuserif-bold.z b/libraries/tcpdf/font/dejavuserif-bold.z
new file mode 100644
index 0000000000..af98fbe1e2
--- /dev/null
+++ b/libraries/tcpdf/font/dejavuserif-bold.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavuserif.ctg.z b/libraries/tcpdf/font/dejavuserif.ctg.z
new file mode 100644
index 0000000000..28b33e63eb
--- /dev/null
+++ b/libraries/tcpdf/font/dejavuserif.ctg.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavuserif.php b/libraries/tcpdf/font/dejavuserif.php
new file mode 100644
index 0000000000..0cd5859882
--- /dev/null
+++ b/libraries/tcpdf/font/dejavuserif.php
@@ -0,0 +1,130 @@
+<?php
+$type='TrueTypeUnicode';
+$name='DejaVuSerif';
+$desc=array('Ascent'=>928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>32,'FontBBox'=>'[-770 -401 1679 1242]','ItalicAngle'=>0,'StemV'=>70,'MissingWidth'=>600);
+$up=-42;
+$ut=44;
+$cw=array(
+ 0=>600, 32=>318, 33=>402, 34=>460, 35=>838, 36=>636, 37=>950, 38=>890, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>338, 46=>318,
+ 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
+ 63=>536, 64=>1000, 65=>722, 66=>735, 67=>765, 68=>802, 69=>730, 70=>694, 71=>799, 72=>872, 73=>395, 74=>401, 75=>747, 76=>664, 77=>1024, 78=>875,
+ 79=>820, 80=>673, 81=>820, 82=>753, 83=>685, 84=>667, 85=>843, 86=>722, 87=>1028, 88=>712, 89=>660, 90=>695, 91=>390, 92=>337, 93=>390, 94=>838,
+ 95=>500, 96=>500, 97=>596, 98=>640, 99=>560, 100=>640, 101=>592, 102=>370, 103=>640, 104=>644, 105=>320, 106=>310, 107=>606, 108=>320, 109=>948, 110=>644,
+ 111=>602, 112=>640, 113=>640, 114=>478, 115=>513, 116=>402, 117=>644, 118=>565, 119=>856, 120=>564, 121=>565, 122=>527, 123=>636, 124=>337, 125=>636, 126=>838,
+ 8364=>636, 1027=>719, 8218=>318, 402=>370, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1342, 352=>685, 8249=>400, 338=>1137, 1036=>774, 381=>695, 1039=>872,
+ 8216=>318, 8217=>318, 8220=>511, 8221=>511, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>513, 8250=>400, 339=>989, 1116=>625, 382=>527, 376=>660, 160=>318,
+ 161=>402, 162=>636, 163=>636, 164=>636, 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>475, 171=>612, 172=>838, 173=>338, 174=>1000, 175=>500, 176=>500,
+ 177=>838, 178=>401, 179=>401, 180=>500, 181=>650, 182=>636, 183=>318, 184=>500, 185=>401, 186=>470, 187=>612, 188=>969, 189=>969, 190=>969, 191=>536, 192=>722,
+ 193=>722, 194=>722, 195=>722, 196=>722, 197=>722, 198=>1001, 199=>765, 200=>730, 201=>730, 202=>730, 203=>730, 204=>395, 205=>395, 206=>395, 207=>395, 208=>807,
+ 209=>875, 210=>820, 211=>820, 212=>820, 213=>820, 214=>820, 215=>838, 216=>820, 217=>843, 218=>843, 219=>843, 220=>843, 221=>660, 222=>676, 223=>668, 224=>596,
+ 225=>596, 226=>596, 227=>596, 228=>596, 229=>596, 230=>940, 231=>560, 232=>592, 233=>592, 234=>592, 235=>592, 236=>320, 237=>320, 238=>320, 239=>320, 240=>602,
+ 241=>644, 242=>602, 243=>602, 244=>602, 245=>602, 246=>602, 247=>838, 248=>602, 249=>644, 250=>644, 251=>644, 252=>644, 253=>565, 254=>640, 255=>565, 256=>722,
+ 257=>596, 258=>722, 259=>596, 260=>722, 261=>596, 262=>765, 263=>560, 264=>765, 265=>560, 266=>765, 267=>560, 268=>765, 269=>560, 270=>802, 271=>640, 272=>807,
+ 273=>640, 274=>730, 275=>592, 276=>730, 277=>592, 278=>730, 279=>592, 280=>730, 281=>592, 282=>730, 283=>592, 284=>799, 285=>640, 286=>799, 287=>640, 288=>799,
+ 289=>640, 290=>799, 291=>640, 292=>872, 293=>644, 294=>872, 295=>644, 296=>395, 297=>320, 298=>395, 299=>320, 300=>395, 301=>320, 302=>395, 303=>320, 304=>395,
+ 305=>320, 306=>801, 307=>533, 308=>401, 309=>310, 310=>747, 311=>606, 312=>606, 313=>664, 314=>320, 315=>664, 316=>320, 317=>664, 318=>400, 319=>671, 320=>465,
+ 321=>669, 322=>324, 323=>875, 324=>644, 325=>875, 326=>644, 327=>875, 328=>644, 329=>866, 330=>875, 331=>644, 332=>820, 333=>602, 334=>820, 335=>602, 336=>820,
+ 337=>602, 340=>753, 341=>478, 342=>753, 343=>478, 344=>753, 345=>478, 346=>685, 347=>513, 348=>685, 349=>513, 350=>685, 351=>513, 354=>667, 355=>402, 356=>667,
+ 357=>402, 358=>667, 359=>402, 360=>843, 361=>644, 362=>843, 363=>644, 364=>843, 365=>644, 366=>843, 367=>644, 368=>843, 369=>644, 370=>843, 371=>644, 372=>1028,
+ 373=>856, 374=>660, 375=>565, 377=>695, 378=>527, 379=>695, 380=>527, 383=>370, 384=>640, 385=>735, 386=>735, 387=>640, 388=>735, 389=>640, 390=>765, 391=>765,
+ 392=>560, 393=>807, 394=>802, 395=>735, 396=>640, 397=>602, 398=>730, 399=>820, 400=>636, 401=>694, 403=>799, 404=>712, 405=>932, 406=>395, 407=>395, 408=>747,
+ 409=>606, 410=>320, 411=>634, 412=>948, 413=>875, 414=>644, 415=>820, 416=>820, 417=>602, 418=>1040, 419=>807, 420=>673, 421=>640, 422=>753, 423=>685, 424=>513,
+ 425=>707, 426=>324, 427=>402, 428=>667, 429=>402, 430=>667, 431=>843, 432=>644, 433=>829, 434=>760, 435=>738, 436=>663, 437=>695, 438=>527, 439=>564, 440=>564,
+ 441=>564, 443=>636, 444=>687, 445=>564, 446=>536, 448=>295, 449=>492, 450=>459, 451=>295, 452=>1497, 453=>1329, 454=>1167, 455=>1065, 456=>974, 457=>630, 458=>1276,
+ 459=>1185, 460=>954, 461=>722, 462=>596, 463=>395, 464=>320, 465=>820, 466=>602, 467=>843, 468=>644, 469=>843, 470=>644, 471=>843, 472=>644, 473=>843, 474=>644,
+ 475=>843, 476=>644, 477=>592, 478=>722, 479=>596, 480=>722, 481=>596, 482=>1001, 483=>940, 484=>848, 485=>640, 486=>799, 487=>640, 488=>747, 489=>606, 490=>820,
+ 491=>602, 492=>820, 493=>602, 494=>564, 495=>564, 496=>320, 497=>1497, 498=>1329, 499=>1167, 500=>799, 501=>640, 502=>1154, 504=>875, 505=>644, 506=>722, 507=>596,
+ 508=>1001, 509=>940, 510=>820, 511=>602, 512=>722, 513=>596, 514=>722, 515=>596, 516=>730, 517=>592, 518=>730, 519=>592, 520=>395, 521=>320, 522=>395, 523=>320,
+ 524=>820, 525=>602, 526=>820, 527=>602, 528=>753, 529=>478, 530=>753, 531=>478, 532=>843, 533=>644, 534=>843, 535=>644, 536=>685, 537=>513, 538=>667, 539=>402,
+ 542=>872, 543=>644, 545=>814, 548=>695, 549=>527, 550=>722, 551=>596, 552=>730, 553=>592, 554=>820, 555=>602, 556=>820, 557=>602, 558=>820, 559=>602, 560=>820,
+ 561=>602, 562=>660, 563=>565, 564=>500, 565=>832, 566=>494, 567=>310, 568=>960, 569=>960, 570=>722, 571=>765, 572=>560, 573=>664, 574=>667, 575=>513, 576=>527,
+ 577=>583, 578=>464, 581=>722, 592=>596, 593=>640, 594=>640, 595=>640, 596=>560, 597=>560, 598=>647, 599=>683, 600=>592, 601=>592, 602=>843, 603=>518, 604=>509,
+ 605=>773, 606=>613, 607=>315, 608=>683, 609=>640, 610=>544, 611=>712, 612=>564, 613=>644, 614=>644, 615=>644, 616=>320, 617=>392, 618=>320, 619=>380, 620=>454,
+ 621=>363, 622=>704, 623=>948, 624=>948, 625=>948, 626=>644, 627=>694, 628=>646, 629=>602, 630=>790, 631=>647, 632=>602, 633=>501, 634=>501, 635=>551, 636=>478,
+ 637=>478, 638=>453, 639=>453, 640=>594, 641=>594, 642=>513, 643=>271, 644=>370, 645=>487, 646=>324, 647=>402, 648=>402, 649=>644, 650=>620, 651=>608, 652=>565,
+ 653=>856, 654=>565, 655=>655, 656=>597, 657=>560, 658=>564, 659=>560, 660=>536, 661=>536, 662=>536, 663=>513, 664=>820, 665=>563, 666=>613, 667=>654, 668=>667,
+ 669=>366, 670=>606, 671=>646, 672=>683, 673=>536, 674=>536, 675=>996, 676=>1033, 677=>998, 678=>809, 679=>598, 680=>782, 681=>894, 682=>646, 683=>676, 684=>598,
+ 685=>443, 686=>781, 687=>767, 688=>433, 689=>430, 690=>264, 691=>347, 692=>347, 693=>430, 694=>392, 695=>585, 696=>423, 697=>278, 699=>318, 700=>318, 701=>318,
+ 702=>307, 703=>307, 704=>280, 705=>281, 711=>500, 712=>275, 713=>500, 716=>275, 720=>337, 721=>337, 722=>307, 723=>307, 726=>329, 728=>500, 729=>500, 730=>500,
+ 731=>500, 733=>500, 734=>417, 736=>447, 737=>243, 738=>337, 739=>424, 740=>281, 741=>602, 742=>602, 743=>602, 744=>602, 745=>602, 750=>484, 768=>0, 769=>0,
+ 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0,
+ 786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0, 796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0,
+ 802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0, 812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0,
+ 818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0, 828=>0, 829=>0, 830=>0, 831=>0, 835=>0, 847=>0,
+ 856=>0, 865=>0, 884=>278, 885=>278, 890=>500, 894=>337, 900=>500, 901=>500, 902=>722, 903=>318, 904=>900, 905=>1039, 906=>562, 908=>835, 910=>897, 911=>853,
+ 912=>392, 913=>722, 914=>735, 915=>694, 916=>722, 917=>730, 918=>695, 919=>872, 920=>820, 921=>395, 922=>747, 923=>722, 924=>1024, 925=>875, 926=>704, 927=>820,
+ 928=>872, 929=>673, 931=>707, 932=>667, 933=>660, 934=>820, 935=>712, 936=>877, 937=>829, 938=>395, 939=>660, 940=>675, 941=>518, 942=>599, 943=>392, 944=>608,
+ 945=>675, 946=>578, 947=>598, 948=>602, 949=>518, 950=>542, 951=>599, 952=>602, 953=>392, 954=>625, 955=>634, 956=>650, 957=>608, 958=>551, 959=>602, 960=>657,
+ 961=>588, 962=>560, 963=>683, 964=>553, 965=>608, 966=>700, 967=>606, 968=>784, 969=>815, 970=>392, 971=>608, 972=>602, 973=>608, 974=>815, 976=>583, 977=>715,
+ 978=>687, 979=>874, 980=>687, 981=>682, 982=>815, 983=>624, 984=>820, 985=>602, 986=>765, 987=>560, 988=>694, 989=>463, 990=>590, 991=>660, 992=>782, 993=>577,
+ 1008=>624, 1009=>588, 1010=>560, 1011=>310, 1012=>820, 1013=>560, 1014=>560, 1015=>676, 1016=>640, 1017=>765, 1018=>1024, 1019=>708, 1020=>588, 1021=>765, 1022=>765, 1023=>765,
+ 1024=>754, 1025=>709, 1026=>799, 1028=>765, 1029=>685, 1030=>395, 1031=>395, 1032=>401, 1033=>1084, 1034=>1118, 1035=>872, 1037=>903, 1038=>723, 1040=>757, 1041=>735, 1042=>735,
+ 1043=>662, 1044=>813, 1045=>730, 1046=>1124, 1047=>623, 1048=>872, 1049=>872, 1050=>774, 1051=>834, 1052=>1024, 1053=>872, 1054=>820, 1055=>872, 1056=>673, 1057=>765, 1058=>667,
+ 1059=>723, 1060=>830, 1061=>712, 1062=>872, 1063=>773, 1064=>1141, 1065=>1141, 1066=>794, 1067=>984, 1068=>674, 1069=>765, 1070=>1193, 1071=>808, 1072=>596, 1073=>602, 1074=>563,
+ 1075=>524, 1076=>616, 1077=>592, 1078=>920, 1079=>545, 1080=>667, 1081=>667, 1082=>625, 1083=>635, 1084=>778, 1085=>667, 1086=>602, 1087=>667, 1088=>640, 1089=>560, 1090=>553,
+ 1091=>588, 1092=>783, 1093=>564, 1094=>643, 1095=>661, 1096=>930, 1097=>930, 1098=>636, 1099=>796, 1100=>544, 1101=>560, 1102=>871, 1103=>631, 1104=>592, 1105=>592, 1106=>624,
+ 1107=>524, 1108=>560, 1109=>513, 1110=>320, 1111=>320, 1112=>310, 1113=>843, 1114=>860, 1115=>644, 1117=>667, 1118=>588, 1119=>656, 1122=>762, 1123=>603, 1138=>820, 1139=>552,
+ 1140=>859, 1141=>678, 1164=>690, 1165=>492, 1168=>672, 1169=>529, 1170=>694, 1171=>538, 1172=>728, 1173=>614, 1174=>1124, 1175=>920, 1176=>636, 1177=>537, 1178=>774, 1179=>606,
+ 1182=>774, 1183=>606, 1184=>891, 1185=>668, 1186=>872, 1187=>690, 1188=>1139, 1189=>852, 1190=>1205, 1191=>941, 1194=>765, 1195=>560, 1196=>667, 1197=>553, 1198=>660, 1199=>565,
+ 1202=>712, 1203=>564, 1204=>1079, 1205=>899, 1206=>749, 1207=>690, 1210=>749, 1211=>644, 1216=>395, 1217=>1124, 1218=>920, 1219=>747, 1220=>606, 1223=>872, 1224=>667, 1227=>749,
+ 1228=>667, 1231=>320, 1232=>757, 1233=>596, 1234=>757, 1235=>596, 1236=>1001, 1237=>940, 1238=>730, 1239=>592, 1240=>820, 1241=>592, 1242=>820, 1243=>592, 1244=>1124, 1245=>920,
+ 1246=>623, 1247=>545, 1248=>564, 1249=>564, 1250=>872, 1251=>667, 1252=>872, 1253=>667, 1254=>820, 1255=>602, 1256=>820, 1257=>602, 1258=>820, 1259=>602, 1260=>765, 1261=>560,
+ 1262=>723, 1263=>588, 1264=>723, 1265=>588, 1266=>723, 1267=>588, 1268=>773, 1269=>661, 1270=>662, 1271=>524, 1272=>984, 1273=>796, 7426=>940, 7432=>509, 7433=>320, 7444=>989,
+ 7446=>602, 7447=>602, 7453=>737, 7454=>948, 7455=>948, 7491=>386, 7492=>247, 7493=>400, 7494=>618, 7495=>400, 7496=>400, 7497=>387, 7498=>387, 7499=>340, 7500=>340, 7501=>400,
+ 7502=>175, 7503=>365, 7504=>613, 7505=>399, 7506=>385, 7507=>346, 7508=>385, 7509=>385, 7510=>400, 7511=>247, 7512=>399, 7513=>464, 7514=>613, 7515=>373, 7543=>640, 7547=>372,
+ 7557=>320, 7579=>400, 7580=>346, 7581=>346, 7582=>385, 7583=>340, 7584=>222, 7585=>229, 7586=>400, 7587=>399, 7588=>234, 7589=>244, 7590=>234, 7591=>234, 7592=>230, 7593=>175,
+ 7594=>175, 7595=>367, 7596=>613, 7597=>613, 7598=>407, 7599=>404, 7600=>399, 7601=>385, 7602=>385, 7603=>328, 7604=>211, 7605=>247, 7606=>399, 7607=>389, 7609=>376, 7610=>373,
+ 7611=>331, 7612=>331, 7613=>331, 7614=>364, 7615=>385, 7680=>722, 7681=>596, 7682=>735, 7683=>640, 7684=>735, 7685=>640, 7686=>735, 7687=>640, 7688=>765, 7689=>560, 7690=>802,
+ 7691=>640, 7692=>802, 7693=>640, 7694=>802, 7695=>640, 7696=>802, 7697=>640, 7698=>802, 7699=>640, 7700=>730, 7701=>592, 7702=>730, 7703=>592, 7704=>730, 7705=>592, 7706=>730,
+ 7707=>592, 7710=>694, 7711=>370, 7712=>799, 7713=>640, 7714=>872, 7715=>644, 7716=>872, 7717=>644, 7718=>872, 7719=>644, 7720=>872, 7721=>644, 7722=>872, 7723=>644, 7724=>395,
+ 7725=>320, 7728=>747, 7729=>606, 7730=>747, 7731=>606, 7732=>747, 7733=>606, 7734=>664, 7735=>320, 7736=>664, 7737=>320, 7738=>664, 7739=>320, 7740=>664, 7741=>320, 7742=>1024,
+ 7743=>948, 7744=>1024, 7745=>948, 7746=>1024, 7747=>948, 7748=>875, 7749=>644, 7750=>875, 7751=>644, 7752=>875, 7753=>644, 7754=>875, 7755=>644, 7760=>820, 7761=>602, 7762=>820,
+ 7763=>602, 7764=>673, 7765=>640, 7766=>673, 7767=>640, 7768=>753, 7769=>478, 7770=>753, 7771=>478, 7772=>753, 7773=>478, 7774=>753, 7775=>478, 7776=>685, 7777=>513, 7778=>685,
+ 7779=>513, 7784=>685, 7785=>513, 7786=>667, 7787=>402, 7788=>667, 7789=>402, 7790=>667, 7791=>402, 7792=>667, 7793=>402, 7794=>843, 7795=>644, 7796=>843, 7797=>644, 7798=>843,
+ 7799=>644, 7800=>843, 7801=>644, 7802=>843, 7803=>644, 7804=>722, 7805=>565, 7806=>722, 7807=>565, 7808=>1028, 7809=>856, 7810=>1028, 7811=>856, 7812=>1028, 7813=>856, 7814=>1028,
+ 7815=>856, 7816=>1028, 7817=>856, 7818=>712, 7819=>564, 7820=>712, 7821=>564, 7822=>660, 7823=>565, 7824=>695, 7825=>527, 7826=>695, 7827=>527, 7828=>695, 7829=>527, 7830=>644,
+ 7831=>402, 7832=>856, 7833=>565, 7834=>903, 7835=>513, 7840=>722, 7841=>596, 7842=>722, 7843=>596, 7852=>722, 7853=>596, 7854=>722, 7855=>596, 7856=>722, 7857=>596, 7858=>722,
+ 7859=>596, 7860=>722, 7861=>596, 7862=>722, 7863=>596, 7864=>730, 7865=>592, 7866=>730, 7867=>592, 7868=>730, 7869=>592, 7878=>730, 7879=>592, 7880=>395, 7881=>320, 7882=>395,
+ 7883=>320, 7884=>820, 7885=>602, 7886=>820, 7887=>602, 7896=>820, 7897=>602, 7908=>843, 7909=>644, 7910=>843, 7911=>644, 7922=>660, 7923=>565, 7924=>660, 7925=>565, 7926=>660,
+ 7927=>565, 7928=>660, 7929=>565, 7936=>675, 7937=>675, 7938=>675, 7939=>675, 7940=>675, 7941=>675, 7942=>675, 7943=>675, 7944=>722, 7945=>722, 7946=>869, 7947=>869, 7948=>734,
+ 7949=>763, 7950=>722, 7951=>722, 7952=>537, 7953=>537, 7954=>537, 7955=>537, 7956=>537, 7957=>537, 7960=>853, 7961=>841, 7962=>1067, 7963=>1077, 7964=>1008, 7965=>1035, 7968=>599,
+ 7969=>599, 7970=>599, 7971=>599, 7972=>599, 7973=>599, 7974=>599, 7975=>599, 7976=>998, 7977=>992, 7978=>1212, 7979=>1224, 7980=>1159, 7981=>1183, 7982=>1098, 7983=>1095, 7984=>392,
+ 7985=>392, 7986=>392, 7987=>392, 7988=>392, 7989=>392, 7990=>392, 7991=>392, 7992=>521, 7993=>512, 7994=>735, 7995=>738, 7996=>679, 7997=>706, 7998=>624, 7999=>615, 8000=>602,
+ 8001=>602, 8002=>602, 8003=>602, 8004=>602, 8005=>602, 8008=>820, 8009=>859, 8010=>1120, 8011=>1127, 8012=>937, 8013=>964, 8016=>608, 8017=>608, 8018=>608, 8019=>608, 8020=>608,
+ 8021=>608, 8022=>608, 8023=>608, 8025=>851, 8027=>1079, 8029=>1044, 8031=>953, 8032=>815, 8033=>815, 8034=>815, 8035=>815, 8036=>815, 8037=>815, 8038=>815, 8039=>815, 8040=>829,
+ 8041=>870, 8042=>1131, 8043=>1137, 8044=>946, 8045=>976, 8046=>938, 8047=>970, 8048=>675, 8049=>675, 8050=>537, 8051=>537, 8052=>599, 8053=>599, 8054=>392, 8055=>392, 8056=>602,
+ 8057=>602, 8058=>608, 8059=>608, 8060=>815, 8061=>815, 8064=>675, 8065=>675, 8066=>675, 8067=>675, 8068=>675, 8069=>675, 8070=>675, 8071=>675, 8072=>722, 8073=>722, 8074=>869,
+ 8075=>869, 8076=>734, 8077=>763, 8078=>722, 8079=>722, 8080=>599, 8081=>599, 8082=>599, 8083=>599, 8084=>599, 8085=>599, 8086=>599, 8087=>599, 8088=>998, 8089=>992, 8090=>1212,
+ 8091=>1224, 8092=>1159, 8093=>1183, 8094=>1098, 8095=>1095, 8096=>815, 8097=>815, 8098=>815, 8099=>815, 8100=>815, 8101=>815, 8102=>815, 8103=>815, 8104=>829, 8105=>870, 8106=>1131,
+ 8107=>1137, 8108=>946, 8109=>976, 8110=>938, 8111=>970, 8112=>675, 8113=>675, 8114=>675, 8115=>675, 8116=>675, 8118=>675, 8119=>675, 8120=>722, 8121=>722, 8122=>722, 8123=>722,
+ 8124=>722, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>599, 8131=>599, 8132=>599, 8134=>599, 8135=>599, 8136=>912, 8137=>900, 8138=>1063, 8139=>1039, 8140=>872,
+ 8141=>500, 8142=>500, 8143=>500, 8144=>392, 8145=>392, 8146=>392, 8147=>392, 8150=>392, 8151=>392, 8152=>395, 8153=>395, 8154=>588, 8155=>562, 8157=>500, 8158=>500, 8159=>500,
+ 8160=>608, 8161=>608, 8162=>608, 8163=>608, 8164=>588, 8165=>588, 8166=>608, 8167=>608, 8168=>660, 8169=>660, 8170=>921, 8171=>897, 8172=>790, 8173=>500, 8174=>500, 8175=>500,
+ 8178=>815, 8179=>815, 8180=>815, 8182=>815, 8183=>815, 8184=>961, 8185=>835, 8186=>984, 8187=>853, 8188=>829, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000,
+ 8196=>330, 8197=>250, 8198=>167, 8199=>636, 8200=>318, 8201=>200, 8202=>100, 8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>338, 8209=>338, 8210=>636, 8213=>1000,
+ 8215=>500, 8219=>318, 8223=>511, 8227=>590, 8228=>334, 8229=>667, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1734, 8252=>527, 8253=>536, 8254=>500,
+ 8263=>976, 8264=>753, 8265=>753, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>401, 8308=>401,
+ 8309=>401, 8310=>401, 8311=>401, 8312=>401, 8313=>401, 8319=>433, 8320=>401, 8321=>401, 8322=>401, 8323=>401, 8324=>401, 8325=>401, 8326=>401, 8327=>401, 8328=>401, 8329=>401,
+ 8358=>660, 8367=>1057, 8369=>706, 8372=>780, 8373=>636, 8462=>644, 8470=>946, 8486=>829, 8490=>747, 8491=>722, 8531=>969, 8532=>969, 8533=>969, 8534=>969, 8535=>969, 8536=>969,
+ 8537=>969, 8538=>969, 8539=>969, 8540=>969, 8541=>969, 8542=>969, 8543=>568, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8706=>517, 8710=>698, 8711=>698, 8719=>796, 8721=>714,
+ 8722=>838, 8725=>167, 8729=>318, 8730=>637, 8733=>677, 8734=>833, 8735=>838, 8736=>838, 8743=>732, 8744=>732, 8745=>732, 8746=>732, 8747=>521, 8748=>852, 8749=>1182, 8770=>838,
+ 8771=>838, 8776=>838, 8800=>838, 8801=>838, 8804=>838, 8805=>838, 8962=>764, 8968=>390, 8969=>390, 8970=>390, 8971=>390, 8976=>838, 8977=>513, 8984=>1000, 8985=>838, 8992=>521,
+ 8993=>521, 8997=>1000, 9000=>1443, 9085=>919, 9134=>521, 9167=>945, 9251=>764, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769,
+ 9609=>769, 9610=>769, 9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769,
+ 9625=>769, 9626=>769, 9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945,
+ 9641=>945, 9642=>678, 9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502,
+ 9657=>502, 9658=>769, 9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769,
+ 9673=>873, 9674=>494, 9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>791,
+ 9689=>970, 9690=>970, 9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>873, 9697=>873, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>590, 9703=>945, 9704=>945,
+ 9705=>945, 9706=>945, 9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769,
+ 9721=>769, 9722=>769, 9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9784=>896, 9785=>896, 9786=>896, 9787=>896, 9788=>896, 9791=>614, 9792=>731, 9793=>731,
+ 9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9833=>472, 9834=>638,
+ 9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 10208=>494, 10216=>390, 10217=>390, 10731=>494, 10764=>1513, 10765=>521, 10766=>521, 11026=>945, 11027=>945, 11028=>945, 11029=>945,
+ 11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 63173=>602, 63185=>500, 63188=>500, 64256=>811, 64257=>667, 64258=>667, 64259=>1040, 64260=>1030, 64261=>771, 64262=>933, 65024=>0,
+ 65025=>0, 65026=>0, 65027=>0, 65028=>0, 65029=>0, 65030=>0, 65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65533=>1025);
+$enc='';
+$diff='';
+$file='DejaVuSerif.z';
+$ctg='DejaVuSerif.ctg.z';
+$originalsize=212332;
+?>
diff --git a/libraries/tcpdf/font/dejavuserif.z b/libraries/tcpdf/font/dejavuserif.z
new file mode 100644
index 0000000000..e4ddcd4937
--- /dev/null
+++ b/libraries/tcpdf/font/dejavuserif.z
Binary files differ
diff --git a/libraries/tcpdf/font/dejavuserifb.php b/libraries/tcpdf/font/dejavuserifb.php
new file mode 100644
index 0000000000..a304c19f99
--- /dev/null
+++ b/libraries/tcpdf/font/dejavuserifb.php
@@ -0,0 +1,130 @@
+<?php
+$type='TrueTypeUnicode';
+$name='DejaVuSerif-Bold';
+$desc=array('Ascent'=>939,'Descent'=>-236,'CapHeight'=>939,'Flags'=>32,'FontBBox'=>'[-836 -423 1796 1235]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600);
+$up=-42;
+$ut=44;
+$cw=array(
+ 0=>600, 32=>348, 33=>439, 34=>521, 35=>838, 36=>696, 37=>950, 38=>903, 39=>306, 40=>473, 41=>473, 42=>523, 43=>838, 44=>348, 45=>415, 46=>348,
+ 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>369, 59=>369, 60=>838, 61=>838, 62=>838,
+ 63=>586, 64=>1000, 65=>776, 66=>845, 67=>796, 68=>867, 69=>762, 70=>710, 71=>854, 72=>945, 73=>468, 74=>473, 75=>869, 76=>703, 77=>1107, 78=>914,
+ 79=>871, 80=>752, 81=>871, 82=>831, 83=>722, 84=>744, 85=>872, 86=>776, 87=>1123, 88=>776, 89=>714, 90=>730, 91=>473, 92=>365, 93=>473, 94=>838,
+ 95=>500, 96=>500, 97=>648, 98=>699, 99=>609, 100=>699, 101=>636, 102=>430, 103=>699, 104=>727, 105=>380, 106=>362, 107=>693, 108=>380, 109=>1058, 110=>727,
+ 111=>667, 112=>699, 113=>699, 114=>527, 115=>563, 116=>462, 117=>727, 118=>581, 119=>861, 120=>596, 121=>581, 122=>568, 123=>643, 124=>364, 125=>643, 126=>838,
+ 8364=>696, 1027=>690, 8218=>348, 402=>430, 8222=>575, 8230=>1000, 8224=>523, 8225=>523, 710=>500, 8240=>1385, 352=>722, 8249=>400, 338=>1180, 1036=>910, 381=>730, 1039=>945,
+ 8216=>348, 8217=>348, 8220=>575, 8221=>575, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>563, 8250=>400, 339=>1028, 1116=>722, 382=>568, 376=>714, 160=>348,
+ 161=>439, 162=>696, 163=>696, 164=>636, 165=>696, 166=>364, 167=>523, 168=>500, 169=>1000, 170=>487, 171=>625, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500,
+ 177=>838, 178=>438, 179=>438, 180=>500, 181=>732, 182=>636, 183=>348, 184=>500, 185=>438, 186=>500, 187=>625, 188=>1043, 189=>1043, 190=>1043, 191=>586, 192=>776,
+ 193=>776, 194=>776, 195=>776, 196=>776, 197=>776, 198=>1034, 199=>796, 200=>762, 201=>762, 202=>762, 203=>762, 204=>468, 205=>468, 206=>468, 207=>468, 208=>874,
+ 209=>914, 210=>871, 211=>871, 212=>871, 213=>871, 214=>871, 215=>838, 216=>871, 217=>872, 218=>872, 219=>872, 220=>872, 221=>714, 222=>757, 223=>760, 224=>648,
+ 225=>648, 226=>648, 227=>648, 228=>648, 229=>648, 230=>975, 231=>609, 232=>636, 233=>636, 234=>636, 235=>636, 236=>380, 237=>380, 238=>380, 239=>380, 240=>667,
+ 241=>727, 242=>667, 243=>667, 244=>667, 245=>667, 246=>667, 247=>838, 248=>667, 249=>727, 250=>727, 251=>727, 252=>727, 253=>581, 254=>699, 255=>581, 256=>776,
+ 257=>648, 258=>776, 259=>648, 260=>776, 261=>648, 262=>796, 263=>609, 264=>796, 265=>609, 266=>796, 267=>609, 268=>796, 269=>609, 270=>867, 271=>699, 272=>874,
+ 273=>699, 274=>762, 275=>636, 276=>762, 277=>636, 278=>762, 279=>636, 280=>762, 281=>636, 282=>762, 283=>636, 284=>854, 285=>699, 286=>854, 287=>699, 288=>854,
+ 289=>699, 290=>854, 291=>699, 292=>945, 293=>727, 294=>945, 295=>727, 296=>468, 297=>380, 298=>468, 299=>380, 300=>468, 301=>380, 302=>468, 303=>380, 304=>468,
+ 305=>380, 306=>942, 307=>751, 308=>473, 309=>362, 310=>869, 311=>693, 312=>693, 313=>703, 314=>380, 315=>703, 316=>380, 317=>703, 318=>508, 319=>703, 320=>557,
+ 321=>710, 322=>385, 323=>914, 324=>727, 325=>914, 326=>727, 327=>914, 328=>727, 329=>1008, 330=>914, 331=>727, 332=>871, 333=>667, 334=>871, 335=>667, 336=>871,
+ 337=>667, 340=>831, 341=>527, 342=>831, 343=>527, 344=>831, 345=>527, 346=>722, 347=>563, 348=>722, 349=>563, 350=>722, 351=>563, 354=>744, 355=>462, 356=>744,
+ 357=>462, 358=>744, 359=>462, 360=>872, 361=>727, 362=>872, 363=>727, 364=>872, 365=>727, 366=>872, 367=>727, 368=>872, 369=>727, 370=>872, 371=>727, 372=>1123,
+ 373=>861, 374=>714, 375=>581, 377=>730, 378=>568, 379=>730, 380=>568, 383=>430, 384=>699, 385=>845, 386=>854, 387=>699, 388=>854, 389=>699, 390=>796, 391=>796,
+ 392=>609, 393=>874, 394=>867, 395=>854, 396=>699, 397=>667, 398=>762, 399=>871, 400=>696, 401=>710, 403=>854, 404=>771, 405=>1043, 406=>468, 407=>468, 408=>869,
+ 409=>693, 410=>380, 411=>701, 412=>1058, 413=>914, 414=>727, 415=>871, 416=>871, 417=>667, 418=>1200, 419=>943, 420=>752, 421=>699, 422=>831, 423=>722, 424=>563,
+ 425=>707, 426=>331, 427=>462, 428=>744, 429=>462, 430=>744, 431=>872, 432=>727, 433=>890, 434=>890, 435=>714, 436=>708, 437=>730, 438=>568, 439=>568, 440=>568,
+ 441=>568, 443=>696, 444=>754, 445=>568, 446=>536, 448=>295, 449=>492, 450=>459, 451=>295, 452=>1597, 453=>1435, 454=>1267, 455=>1176, 456=>1065, 457=>742, 458=>1387,
+ 459=>1276, 460=>1089, 461=>776, 462=>648, 463=>468, 464=>380, 465=>871, 466=>667, 467=>872, 468=>727, 469=>872, 470=>727, 471=>872, 472=>727, 473=>872, 474=>727,
+ 475=>872, 476=>727, 477=>636, 478=>776, 479=>648, 480=>776, 481=>648, 482=>1034, 483=>975, 484=>896, 485=>699, 486=>854, 487=>699, 488=>869, 489=>693, 490=>871,
+ 491=>667, 492=>871, 493=>667, 494=>568, 495=>568, 496=>380, 497=>1597, 498=>1435, 499=>1267, 500=>854, 501=>699, 502=>1221, 504=>914, 505=>727, 506=>776, 507=>648,
+ 508=>1034, 509=>975, 510=>871, 511=>667, 512=>776, 513=>648, 514=>776, 515=>648, 516=>762, 517=>636, 518=>762, 519=>636, 520=>468, 521=>380, 522=>468, 523=>380,
+ 524=>871, 525=>667, 526=>871, 527=>667, 528=>831, 529=>527, 530=>831, 531=>527, 532=>872, 533=>727, 534=>872, 535=>727, 536=>722, 537=>563, 538=>744, 539=>462,
+ 542=>945, 543=>727, 545=>791, 548=>730, 549=>568, 550=>776, 551=>648, 552=>762, 553=>636, 554=>871, 555=>667, 556=>871, 557=>667, 558=>871, 559=>667, 560=>871,
+ 561=>667, 562=>714, 563=>581, 564=>573, 565=>922, 566=>564, 567=>362, 568=>1031, 569=>1031, 570=>776, 571=>796, 572=>609, 573=>703, 574=>744, 575=>563, 576=>568,
+ 577=>660, 578=>547, 581=>776, 592=>648, 593=>699, 594=>699, 595=>699, 596=>609, 597=>609, 598=>699, 599=>730, 600=>636, 601=>636, 602=>907, 603=>608, 604=>562,
+ 605=>907, 606=>720, 607=>387, 608=>699, 609=>699, 610=>626, 611=>712, 612=>627, 613=>727, 614=>727, 615=>727, 616=>380, 617=>380, 618=>380, 619=>409, 620=>514,
+ 621=>380, 622=>795, 623=>1058, 624=>1058, 625=>1058, 626=>727, 627=>727, 628=>712, 629=>667, 630=>1061, 631=>749, 632=>667, 633=>571, 634=>571, 635=>571, 636=>527,
+ 637=>527, 638=>452, 639=>487, 640=>801, 641=>801, 642=>563, 643=>331, 644=>430, 645=>540, 646=>331, 647=>492, 648=>462, 649=>727, 650=>679, 651=>694, 652=>641,
+ 653=>907, 654=>635, 655=>727, 656=>568, 657=>568, 658=>568, 659=>568, 660=>536, 661=>536, 662=>536, 663=>545, 664=>871, 665=>695, 666=>720, 667=>626, 668=>732,
+ 669=>384, 670=>740, 671=>646, 672=>699, 673=>536, 674=>536, 675=>1117, 676=>1179, 677=>1117, 678=>911, 679=>715, 680=>909, 681=>1039, 682=>790, 683=>795, 684=>662,
+ 685=>443, 686=>613, 687=>717, 688=>521, 689=>519, 690=>313, 691=>414, 692=>414, 693=>480, 694=>527, 695=>662, 696=>485, 697=>302, 699=>348, 700=>348, 701=>348,
+ 702=>366, 703=>366, 704=>313, 705=>313, 711=>500, 712=>282, 713=>500, 716=>282, 720=>369, 721=>369, 722=>366, 723=>366, 726=>392, 728=>500, 729=>500, 730=>500,
+ 731=>500, 733=>500, 734=>417, 736=>458, 737=>292, 738=>395, 739=>475, 740=>313, 741=>484, 742=>484, 743=>484, 744=>484, 745=>484, 750=>553, 768=>0, 769=>0,
+ 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0, 784=>0, 785=>0,
+ 786=>0, 787=>0, 788=>0, 789=>0, 790=>0, 791=>0, 792=>0, 793=>0, 794=>0, 795=>0, 796=>0, 797=>0, 798=>0, 799=>0, 800=>0, 801=>0,
+ 802=>0, 803=>0, 804=>0, 805=>0, 806=>0, 807=>0, 808=>0, 809=>0, 810=>0, 811=>0, 812=>0, 813=>0, 814=>0, 815=>0, 816=>0, 817=>0,
+ 818=>0, 819=>0, 820=>0, 821=>0, 822=>0, 823=>0, 824=>0, 825=>0, 826=>0, 827=>0, 828=>0, 829=>0, 830=>0, 831=>0, 835=>0, 847=>0,
+ 856=>0, 865=>0, 884=>302, 885=>302, 890=>500, 894=>369, 900=>500, 901=>500, 902=>776, 903=>348, 904=>947, 905=>1118, 906=>662, 908=>887, 910=>953, 911=>911,
+ 912=>484, 913=>776, 914=>845, 915=>710, 916=>776, 917=>762, 918=>730, 919=>945, 920=>871, 921=>468, 922=>869, 923=>776, 924=>1107, 925=>914, 926=>704, 927=>871,
+ 928=>944, 929=>752, 931=>707, 932=>744, 933=>714, 934=>871, 935=>776, 936=>913, 937=>890, 938=>468, 939=>714, 940=>770, 941=>608, 942=>727, 943=>484, 944=>694,
+ 945=>770, 946=>664, 947=>660, 948=>667, 949=>608, 950=>592, 951=>727, 952=>667, 953=>484, 954=>750, 955=>701, 956=>732, 957=>694, 958=>592, 959=>667, 960=>732,
+ 961=>665, 962=>609, 963=>737, 964=>673, 965=>694, 966=>905, 967=>658, 968=>941, 969=>952, 970=>484, 971=>694, 972=>667, 973=>694, 974=>952, 976=>667, 977=>849,
+ 978=>764, 979=>969, 980=>764, 981=>941, 982=>952, 983=>655, 984=>871, 985=>667, 986=>796, 987=>609, 988=>710, 989=>527, 990=>590, 991=>660, 992=>796, 993=>667,
+ 1008=>655, 1009=>665, 1010=>609, 1011=>362, 1012=>871, 1013=>609, 1014=>609, 1015=>757, 1016=>699, 1017=>796, 1018=>1107, 1019=>860, 1020=>692, 1021=>796, 1022=>796, 1023=>796,
+ 1024=>762, 1025=>762, 1026=>901, 1028=>795, 1029=>722, 1030=>468, 1031=>468, 1032=>473, 1033=>1202, 1034=>1262, 1035=>963, 1037=>945, 1038=>812, 1040=>814, 1041=>854, 1042=>845,
+ 1043=>690, 1044=>889, 1045=>762, 1046=>1312, 1047=>721, 1048=>945, 1049=>945, 1050=>910, 1051=>884, 1052=>1107, 1053=>945, 1054=>871, 1055=>944, 1056=>752, 1057=>796, 1058=>744,
+ 1059=>812, 1060=>949, 1061=>776, 1062=>966, 1063=>913, 1064=>1268, 1065=>1293, 1066=>957, 1067=>1202, 1068=>825, 1069=>795, 1070=>1287, 1071=>882, 1072=>648, 1073=>667, 1074=>695,
+ 1075=>613, 1076=>667, 1077=>636, 1078=>1010, 1079=>638, 1080=>742, 1081=>742, 1082=>722, 1083=>705, 1084=>869, 1085=>732, 1086=>667, 1087=>732, 1088=>699, 1089=>609, 1090=>620,
+ 1091=>640, 1092=>902, 1093=>596, 1094=>739, 1095=>732, 1096=>1075, 1097=>1082, 1098=>767, 1099=>1002, 1100=>679, 1101=>609, 1102=>1025, 1103=>739, 1104=>636, 1105=>636, 1106=>719,
+ 1107=>613, 1108=>609, 1109=>563, 1110=>380, 1111=>380, 1112=>362, 1113=>968, 1114=>995, 1115=>727, 1117=>742, 1118=>640, 1119=>732, 1122=>880, 1123=>703, 1138=>871, 1139=>652,
+ 1140=>916, 1141=>749, 1164=>792, 1165=>664, 1168=>700, 1169=>618, 1170=>710, 1171=>637, 1172=>868, 1173=>716, 1174=>1312, 1175=>1010, 1176=>721, 1177=>638, 1178=>947, 1179=>744,
+ 1182=>910, 1183=>693, 1184=>999, 1185=>733, 1186=>966, 1187=>739, 1188=>1187, 1189=>980, 1190=>1345, 1191=>1059, 1194=>796, 1195=>609, 1196=>744, 1197=>620, 1198=>714, 1199=>581,
+ 1202=>866, 1203=>649, 1204=>1250, 1205=>997, 1206=>928, 1207=>739, 1210=>910, 1211=>727, 1216=>468, 1217=>1312, 1218=>1010, 1219=>869, 1220=>693, 1223=>945, 1224=>732, 1227=>913,
+ 1228=>732, 1231=>380, 1232=>814, 1233=>648, 1234=>814, 1235=>648, 1236=>1034, 1237=>975, 1238=>762, 1239=>636, 1240=>871, 1241=>636, 1242=>871, 1243=>636, 1244=>1312, 1245=>1010,
+ 1246=>721, 1247=>638, 1248=>568, 1249=>568, 1250=>945, 1251=>742, 1252=>945, 1253=>742, 1254=>871, 1255=>667, 1256=>871, 1257=>667, 1258=>871, 1259=>667, 1260=>795, 1261=>609,
+ 1262=>812, 1263=>640, 1264=>812, 1265=>640, 1266=>812, 1267=>640, 1268=>913, 1269=>732, 1270=>690, 1271=>613, 1272=>1202, 1273=>1002, 7426=>940, 7432=>509, 7433=>320, 7444=>989,
+ 7446=>667, 7447=>667, 7453=>737, 7454=>948, 7455=>948, 7491=>466, 7492=>466, 7493=>498, 7494=>657, 7495=>499, 7496=>498, 7497=>444, 7498=>444, 7499=>412, 7500=>412, 7501=>498,
+ 7502=>300, 7503=>523, 7504=>729, 7505=>473, 7506=>467, 7507=>427, 7508=>467, 7509=>467, 7510=>499, 7511=>371, 7512=>520, 7513=>434, 7514=>729, 7515=>491, 7543=>640, 7547=>380,
+ 7557=>380, 7579=>498, 7580=>427, 7581=>427, 7582=>467, 7583=>412, 7584=>383, 7585=>373, 7586=>498, 7587=>522, 7588=>300, 7589=>307, 7590=>300, 7591=>300, 7592=>370, 7593=>368,
+ 7594=>321, 7595=>430, 7596=>682, 7597=>729, 7598=>588, 7599=>587, 7600=>472, 7601=>467, 7602=>522, 7603=>400, 7604=>387, 7605=>371, 7606=>520, 7607=>475, 7609=>489, 7610=>491,
+ 7611=>412, 7612=>527, 7613=>412, 7614=>452, 7615=>467, 7680=>776, 7681=>648, 7682=>845, 7683=>699, 7684=>845, 7685=>699, 7686=>845, 7687=>699, 7688=>796, 7689=>609, 7690=>867,
+ 7691=>699, 7692=>867, 7693=>699, 7694=>867, 7695=>699, 7696=>867, 7697=>699, 7698=>867, 7699=>699, 7700=>762, 7701=>636, 7702=>762, 7703=>636, 7704=>762, 7705=>636, 7706=>762,
+ 7707=>636, 7710=>710, 7711=>430, 7712=>854, 7713=>699, 7714=>945, 7715=>727, 7716=>945, 7717=>727, 7718=>945, 7719=>727, 7720=>945, 7721=>727, 7722=>945, 7723=>727, 7724=>468,
+ 7725=>380, 7728=>869, 7729=>693, 7730=>869, 7731=>693, 7732=>869, 7733=>693, 7734=>703, 7735=>380, 7736=>703, 7737=>380, 7738=>703, 7739=>380, 7740=>703, 7741=>380, 7742=>1107,
+ 7743=>1058, 7744=>1107, 7745=>1058, 7746=>1107, 7747=>1058, 7748=>914, 7749=>727, 7750=>914, 7751=>727, 7752=>914, 7753=>727, 7754=>914, 7755=>727, 7760=>871, 7761=>667, 7762=>871,
+ 7763=>667, 7764=>752, 7765=>699, 7766=>752, 7767=>699, 7768=>831, 7769=>527, 7770=>831, 7771=>527, 7772=>831, 7773=>527, 7774=>831, 7775=>527, 7776=>722, 7777=>563, 7778=>722,
+ 7779=>563, 7784=>722, 7785=>563, 7786=>744, 7787=>462, 7788=>744, 7789=>462, 7790=>744, 7791=>462, 7792=>744, 7793=>462, 7794=>872, 7795=>727, 7796=>872, 7797=>727, 7798=>872,
+ 7799=>727, 7800=>872, 7801=>727, 7802=>872, 7803=>727, 7804=>776, 7805=>581, 7806=>776, 7807=>581, 7808=>1123, 7809=>861, 7810=>1123, 7811=>861, 7812=>1123, 7813=>861, 7814=>1123,
+ 7815=>861, 7816=>1123, 7817=>861, 7818=>776, 7819=>596, 7820=>776, 7821=>596, 7822=>714, 7823=>581, 7824=>730, 7825=>568, 7826=>730, 7827=>568, 7828=>730, 7829=>568, 7830=>727,
+ 7831=>462, 7832=>861, 7833=>581, 7834=>1014, 7835=>563, 7840=>776, 7841=>648, 7842=>776, 7843=>648, 7852=>776, 7853=>648, 7854=>776, 7855=>648, 7856=>776, 7857=>648, 7858=>776,
+ 7859=>648, 7860=>776, 7861=>648, 7862=>776, 7863=>648, 7864=>762, 7865=>636, 7866=>762, 7867=>636, 7868=>762, 7869=>636, 7878=>762, 7879=>636, 7880=>468, 7881=>380, 7882=>468,
+ 7883=>380, 7884=>871, 7885=>667, 7886=>871, 7887=>667, 7896=>871, 7897=>667, 7908=>872, 7909=>727, 7910=>872, 7911=>727, 7922=>714, 7923=>581, 7924=>714, 7925=>581, 7926=>714,
+ 7927=>581, 7928=>714, 7929=>581, 7936=>770, 7937=>770, 7938=>770, 7939=>770, 7940=>770, 7941=>770, 7942=>770, 7943=>770, 7944=>776, 7945=>776, 7946=>978, 7947=>978, 7948=>832,
+ 7949=>849, 7950=>776, 7951=>776, 7952=>608, 7953=>608, 7954=>608, 7955=>608, 7956=>608, 7957=>608, 7960=>917, 7961=>909, 7962=>1169, 7963=>1169, 7964=>1093, 7965=>1120, 7968=>727,
+ 7969=>727, 7970=>727, 7971=>727, 7972=>727, 7973=>727, 7974=>727, 7975=>727, 7976=>1100, 7977=>1094, 7978=>1358, 7979=>1361, 7980=>1279, 7981=>1308, 7982=>1197, 7983=>1194, 7984=>484,
+ 7985=>484, 7986=>484, 7987=>484, 7988=>484, 7989=>484, 7990=>484, 7991=>484, 7992=>629, 7993=>617, 7994=>878, 7995=>881, 7996=>799, 7997=>831, 7998=>723, 7999=>714, 8000=>667,
+ 8001=>667, 8002=>667, 8003=>667, 8004=>667, 8005=>667, 8008=>900, 8009=>935, 8010=>1240, 8011=>1237, 8012=>1035, 8013=>1066, 8016=>694, 8017=>694, 8018=>694, 8019=>694, 8020=>694,
+ 8021=>694, 8022=>694, 8023=>694, 8025=>922, 8027=>1186, 8029=>1133, 8031=>1019, 8032=>952, 8033=>952, 8034=>952, 8035=>952, 8036=>952, 8037=>952, 8038=>952, 8039=>952, 8040=>931,
+ 8041=>963, 8042=>1268, 8043=>1274, 8044=>1054, 8045=>1088, 8046=>1023, 8047=>1060, 8048=>770, 8049=>770, 8050=>608, 8051=>608, 8052=>727, 8053=>727, 8054=>484, 8055=>484, 8056=>667,
+ 8057=>667, 8058=>694, 8059=>694, 8060=>952, 8061=>952, 8064=>770, 8065=>770, 8066=>770, 8067=>770, 8068=>770, 8069=>770, 8070=>770, 8071=>770, 8072=>776, 8073=>776, 8074=>978,
+ 8075=>978, 8076=>832, 8077=>849, 8078=>776, 8079=>776, 8080=>727, 8081=>727, 8082=>727, 8083=>727, 8084=>727, 8085=>727, 8086=>727, 8087=>727, 8088=>1100, 8089=>1094, 8090=>1358,
+ 8091=>1361, 8092=>1279, 8093=>1308, 8094=>1197, 8095=>1194, 8096=>952, 8097=>952, 8098=>952, 8099=>952, 8100=>952, 8101=>952, 8102=>952, 8103=>952, 8104=>931, 8105=>963, 8106=>1268,
+ 8107=>1274, 8108=>1054, 8109=>1088, 8110=>1023, 8111=>1060, 8112=>770, 8113=>770, 8114=>770, 8115=>770, 8116=>770, 8118=>770, 8119=>770, 8120=>776, 8121=>776, 8122=>811, 8123=>776,
+ 8124=>776, 8125=>500, 8126=>500, 8127=>500, 8128=>500, 8129=>500, 8130=>727, 8131=>727, 8132=>727, 8134=>727, 8135=>727, 8136=>1000, 8137=>947, 8138=>1191, 8139=>1118, 8140=>945,
+ 8141=>500, 8142=>500, 8143=>500, 8144=>484, 8145=>484, 8146=>484, 8147=>484, 8150=>484, 8151=>484, 8152=>468, 8153=>468, 8154=>714, 8155=>662, 8157=>500, 8158=>500, 8159=>500,
+ 8160=>694, 8161=>694, 8162=>694, 8163=>694, 8164=>665, 8165=>665, 8166=>694, 8167=>694, 8168=>714, 8169=>714, 8170=>1019, 8171=>953, 8172=>910, 8173=>500, 8174=>500, 8175=>500,
+ 8178=>952, 8179=>952, 8180=>952, 8182=>952, 8183=>952, 8184=>1069, 8185=>887, 8186=>1101, 8187=>911, 8188=>890, 8189=>500, 8190=>500, 8192=>500, 8193=>1000, 8194=>500, 8195=>1000,
+ 8196=>330, 8197=>250, 8198=>167, 8199=>696, 8200=>348, 8201=>200, 8202=>100, 8203=>0, 8204=>0, 8205=>0, 8206=>0, 8207=>0, 8208=>415, 8209=>415, 8210=>696, 8213=>1000,
+ 8215=>500, 8219=>348, 8223=>575, 8227=>639, 8228=>348, 8229=>674, 8234=>0, 8235=>0, 8236=>0, 8237=>0, 8238=>0, 8239=>200, 8241=>1820, 8252=>629, 8253=>586, 8254=>500,
+ 8263=>1082, 8264=>856, 8265=>856, 8287=>222, 8288=>0, 8289=>0, 8290=>0, 8291=>0, 8298=>0, 8299=>0, 8300=>0, 8301=>0, 8302=>0, 8303=>0, 8304=>438, 8308=>438,
+ 8309=>438, 8310=>438, 8311=>438, 8312=>438, 8313=>438, 8319=>519, 8320=>438, 8321=>438, 8322=>438, 8323=>438, 8324=>438, 8325=>438, 8326=>438, 8327=>438, 8328=>438, 8329=>438,
+ 8358=>696, 8367=>1155, 8369=>790, 8372=>876, 8373=>696, 8462=>727, 8470=>1087, 8486=>890, 8490=>869, 8491=>776, 8531=>1035, 8532=>1035, 8533=>1035, 8534=>1035, 8535=>1035, 8536=>1035,
+ 8537=>1035, 8538=>1035, 8539=>1035, 8540=>1035, 8541=>1035, 8542=>1035, 8543=>615, 8592=>838, 8593=>838, 8594=>838, 8595=>838, 8706=>534, 8710=>753, 8711=>753, 8719=>842, 8721=>753,
+ 8722=>838, 8725=>167, 8729=>348, 8730=>657, 8733=>672, 8734=>833, 8735=>838, 8736=>838, 8743=>812, 8744=>812, 8745=>812, 8746=>812, 8747=>579, 8748=>1000, 8749=>1391, 8770=>838,
+ 8771=>838, 8776=>838, 8800=>838, 8801=>838, 8804=>838, 8805=>838, 8962=>834, 8968=>473, 8969=>473, 8970=>473, 8971=>473, 8976=>838, 8977=>539, 8984=>928, 8985=>838, 8992=>579,
+ 8993=>579, 8997=>1000, 9000=>1443, 9085=>1008, 9134=>579, 9167=>945, 9251=>834, 9600=>769, 9601=>769, 9602=>769, 9603=>769, 9604=>769, 9605=>769, 9606=>769, 9607=>769, 9608=>769,
+ 9609=>769, 9610=>769, 9611=>769, 9612=>769, 9613=>769, 9614=>769, 9615=>769, 9616=>769, 9617=>769, 9618=>769, 9619=>769, 9620=>769, 9621=>769, 9622=>769, 9623=>769, 9624=>769,
+ 9625=>769, 9626=>769, 9627=>769, 9628=>769, 9629=>769, 9630=>769, 9631=>769, 9632=>945, 9633=>945, 9634=>945, 9635=>945, 9636=>945, 9637=>945, 9638=>945, 9639=>945, 9640=>945,
+ 9641=>945, 9642=>678, 9643=>678, 9644=>945, 9645=>945, 9646=>550, 9647=>550, 9648=>769, 9649=>769, 9650=>769, 9651=>769, 9652=>502, 9653=>502, 9654=>769, 9655=>769, 9656=>502,
+ 9657=>502, 9658=>769, 9659=>769, 9660=>769, 9661=>769, 9662=>502, 9663=>502, 9664=>769, 9665=>769, 9666=>502, 9667=>502, 9668=>769, 9669=>769, 9670=>769, 9671=>769, 9672=>769,
+ 9673=>873, 9674=>494, 9675=>873, 9676=>873, 9677=>873, 9678=>873, 9679=>873, 9680=>873, 9681=>873, 9682=>873, 9683=>873, 9684=>873, 9685=>873, 9686=>527, 9687=>527, 9688=>791,
+ 9689=>970, 9690=>970, 9691=>970, 9692=>387, 9693=>387, 9694=>387, 9695=>387, 9696=>873, 9697=>873, 9698=>769, 9699=>769, 9700=>769, 9701=>769, 9702=>590, 9703=>945, 9704=>945,
+ 9705=>945, 9706=>945, 9707=>945, 9708=>769, 9709=>769, 9710=>769, 9711=>1119, 9712=>945, 9713=>945, 9714=>945, 9715=>945, 9716=>873, 9717=>873, 9718=>873, 9719=>873, 9720=>769,
+ 9721=>769, 9722=>769, 9723=>830, 9724=>830, 9725=>732, 9726=>732, 9727=>769, 9728=>896, 9784=>896, 9785=>896, 9786=>896, 9787=>896, 9788=>896, 9791=>614, 9792=>731, 9793=>731,
+ 9794=>896, 9795=>896, 9796=>896, 9797=>896, 9798=>896, 9799=>896, 9824=>896, 9825=>896, 9826=>896, 9827=>896, 9828=>896, 9829=>896, 9830=>896, 9831=>896, 9833=>472, 9834=>638,
+ 9835=>896, 9836=>896, 9837=>472, 9838=>357, 9839=>484, 10208=>494, 10216=>457, 10217=>457, 10731=>494, 10764=>1782, 10765=>610, 10766=>610, 11026=>945, 11027=>945, 11028=>945, 11029=>945,
+ 11030=>769, 11031=>769, 11032=>769, 11033=>769, 11034=>945, 63173=>667, 63185=>500, 63188=>500, 64256=>930, 64257=>727, 64258=>727, 64259=>1126, 64260=>1123, 64261=>871, 64262=>971, 65024=>0,
+ 65025=>0, 65026=>0, 65027=>0, 65028=>0, 65029=>0, 65030=>0, 65031=>0, 65032=>0, 65033=>0, 65034=>0, 65035=>0, 65036=>0, 65037=>0, 65038=>0, 65039=>0, 65533=>1113);
+$enc='';
+$diff='';
+$file='DejaVuSerif-Bold.z';
+$ctg='DejaVuSerif-Bold.ctg.z';
+$originalsize=203488;
+?>
diff --git a/libraries/tcpdf/tcpdf.php b/libraries/tcpdf/tcpdf.php
new file mode 100644
index 0000000000..deec374382
--- /dev/null
+++ b/libraries/tcpdf/tcpdf.php
@@ -0,0 +1,6864 @@
+<?php
+//============================================================+
+// File name : tcpdf.php
+// Begin : 2002-08-03
+// Last Update : 2008-02-28
+// Author : Nicola Asuni
+// Version : 2.2.002
+// License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
+//
+// Description : This is a PHP5 class for generating PDF files
+// on-the-fly without requiring external
+// extensions.
+//
+// IMPORTANT:
+// This class was originally derived in 2002 from the Public
+// Domain FPDF class by Olivier Plathey (http://www.fpdf.org).
+//
+// Main features:
+// - supports all ISO page formats;
+// - supports UTF-8 Unicode and Right-To-Left languages;
+// - supports document encryption;
+// - includes methods to publish some xhtml code;
+// - includes graphic and transformation methods;
+// - includes bookmarks;
+// - includes Javascript and forms support;
+// - includes a method to print various barcode formats using an improved version of "Generic Barcode Render Class" by Karim Mribti (http://www.mribti.com/barcode/) (require GD library: http://www.boutell.com/gd/)
+// - supports TrueTypeUnicode, TrueType, Type1 and encoding;
+// - supports custom page formats, margins and units of measure;
+// - includes methods for page header and footer management;
+// - supports automatic page break;
+// - supports automatic page numbering;
+// - supports automatic line break and text justification;
+// - supports JPEG, PNG anf GIF images;
+// - supports colors;
+// - supports links;
+// - support page compression (require zlib extension: http://www.gzip.org/zlib/);
+// - the source code is full documented in PhpDocumentor Style (http://www.phpdoc.org).
+//
+// -----------------------------------------------------------
+// THANKS TO:
+//
+// Olivier Plathey (http://www.fpdf.org) for original FPDF.
+// Efthimios Mavrogeorgiadis (emavro@yahoo.com) for suggestions on RTL language support.
+// Klemen Vodopivec (http://www.fpdf.de/downloads/addons/37/) for Encryption algorithm.
+// Warren Sherliker (wsherliker@gmail.com) for better image handling.
+// dullus for text Justification.
+// Bob Vincent (pillarsdotnet@users.sourceforge.net) for <li> value attribute.
+// Patrick Benny for text stretch suggestion on Cell().
+// Johannes Gntert for JavaScript support.
+// Denis Van Nuffelen for Dynamic Form.
+// Jacek Czekaj for multibyte justification
+// Anthony Ferrara for the reintroduction of legacy image methods.
+// Anyone that has reported a bug or sent a suggestion.
+//============================================================+
+
+
+
+/**
+ * This is a PHP5 class for generating PDF files on-the-fly without requiring external extensions.<br>
+ * TCPDF project (http://tcpdf.sourceforge.net) has been originally derived from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org).<br>
+ * <h3>TCPDF main features are:</h3>
+ * <ul>
+ * <li>supports all ISO page formats;</li>
+ * <li>supports UTF-8 Unicode and Right-To-Left languages;</li>
+ * <li>supports document encryption;</li>
+ * <li>includes methods to publish some xhtml code, supporting the following elements: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small;</li>
+ * <li>includes a method to print various barcode formats using an improved version of "Generic Barcode Render Class" by Karim Mribti (<a href="http://www.mribti.com/barcode/" target="_blank" title="Generic Barcode Render Class by Karim Mribti">http://www.mribti.com/barcode/</a>) (require GD library: <a href="http://www.boutell.com/gd/" target="_blank" title="GD library">http://www.boutell.com/gd/</a>)</li>
+ * <li>supports TrueTypeUnicode, TrueType, Type1 and encoding; </li>
+ * <li>supports custom page formats, margins and units of measure;</li>
+ * <li>includes methods for page header and footer management;</li>
+ * <li>supports automatic page break;</li>
+ * <li>supports automatic page numbering;</li>
+ * <li>supports automatic line break and text justification;</li>
+ * <li>supports JPEG, PNG anf GIF images;</li>
+ * <li>supports colors;</li>
+ * <li>supports links;</li>
+ * <li>support page compression (require zlib extension: <a href="http://www.gzip.org/zlib/" target="_blank" title="zlib">http://www.gzip.org/zlib/</a>);</li>
+ * <li>the source code is full documented in PhpDocumentor Style (<a href="http://www.phpdoc.org" target="_blank" title="phpDocumentor">http://www.phpdoc.org</a>).</li>
+ * </ul>
+ * Tools to encode your unicode fonts are on fonts/ttf2ufm directory.</p>
+ * @name TCPDF
+ * @package com.tecnick.tcpdf
+ * @abstract Class for generating PDF files on-the-fly without requiring external extensions.
+ * @author Nicola Asuni
+ * @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
+ * @link http://tcpdf.sourceforge.net
+ * @license http://www.gnu.org/copyleft/lesser.html LGPL
+ * @version 2.2.002
+ */
+
+/**
+ * include configuration file
+ * (Disabled in phpMyAdmin)
+ */
+//require_once(dirname(__FILE__).'/config/tcpdf_config.php');
+
+if(!class_exists('TCPDF', false)) {
+ /**
+ * define default PDF document producer
+ */
+ define('PDF_PRODUCER','TCPDF 2.2.002 (http://tcpdf.sf.net)');
+
+ /**
+ * This is a PHP5 class for generating PDF files on-the-fly without requiring external extensions.<br>
+ * TCPDF project (http://tcpdf.sourceforge.net) has been originally derived from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org).<br>
+ * To add your own TTF fonts please read /fonts/README.TXT
+ * @name TCPDF
+ * @package com.tecnick.tcpdf
+ * @version 2.2.002
+ * @author Nicola Asuni
+ * @link http://tcpdf.sourceforge.net
+ * @license http://www.gnu.org/copyleft/lesser.html LGPL
+ */
+ class TCPDF {
+
+ // Private or Protected properties
+
+ /**
+ * @var current page number
+ * @access protected
+ */
+ protected $page;
+
+ /**
+ * @var current object number
+ * @access protected
+ */
+ protected $n;
+
+ /**
+ * @var array of object offsets
+ * @access protected
+ */
+ protected $offsets;
+
+ /**
+ * @var buffer holding in-memory PDF
+ * @access protected
+ */
+ protected $buffer;
+
+ /**
+ * @var array containing pages
+ * @access protected
+ */
+ protected $pages;
+
+ /**
+ * @var current document state
+ * @access protected
+ */
+ protected $state;
+
+ /**
+ * @var compression flag
+ * @access protected
+ */
+ protected $compress;
+
+ /**
+ * @var default page orientation (P = Portrait, L = Landscape)
+ * @access protected
+ */
+ protected $DefOrientation;
+
+ /**
+ * @var current page orientation (P = Portrait, L = Landscape)
+ * @access protected
+ */
+ protected $CurOrientation;
+
+ /**
+ * @var array indicating page orientation changes
+ * @access protected
+ */
+ protected $OrientationChanges;
+
+ /**
+ * @var scale factor (number of points in user unit)
+ * @access protected
+ */
+ protected $k;
+
+ /**
+ * @var width of page format in points
+ * @access protected
+ */
+ protected $fwPt;
+
+ /**
+ * @var height of page format in points
+ * @access protected
+ */
+ protected $fhPt;
+
+ /**
+ * @var width of page format in user unit
+ * @access protected
+ */
+ protected $fw;
+
+ /**
+ * @var height of page format in user unit
+ * @access protected
+ */
+ protected $fh;
+
+ /**
+ * @var current width of page in points
+ * @access protected
+ */
+ protected $wPt;
+
+ /**
+ * @var current height of page in points
+ * @access protected
+ */
+ protected $hPt;
+
+ /**
+ * @var current width of page in user unit
+ * @access protected
+ */
+ protected $w;
+
+ /**
+ * @var current height of page in user unit
+ * @access protected
+ */
+ protected $h;
+
+ /**
+ * @var left margin
+ * @access protected
+ */
+ protected $lMargin;
+
+ /**
+ * @var top margin
+ * @access protected
+ */
+ protected $tMargin;
+
+ /**
+ * @var right margin
+ * @access protected
+ */
+ protected $rMargin;
+
+ /**
+ * @var page break margin
+ * @access protected
+ */
+ protected $bMargin;
+
+ /**
+ * @var cell internal padding
+ * @access protected
+ */
+ protected $cMargin;
+
+ /**
+ * @var current horizontal position in user unit for cell positioning
+ * @access protected
+ */
+ protected $x;
+
+ /**
+ * @var current vertical position in user unit for cell positioning
+ * @access protected
+ */
+ protected $y;
+
+ /**
+ * @var height of last cell printed
+ * @access protected
+ */
+ protected $lasth;
+
+ /**
+ * @var line width in user unit
+ * @access protected
+ */
+ protected $LineWidth;
+
+ /**
+ * @var array of standard font names
+ * @access protected
+ */
+ protected $CoreFonts;
+
+ /**
+ * @var array of used fonts
+ * @access protected
+ */
+ protected $fonts;
+
+ /**
+ * @var array of font files
+ * @access protected
+ */
+ protected $FontFiles;
+
+ /**
+ * @var array of encoding differences
+ * @access protected
+ */
+ protected $diffs;
+
+ /**
+ * @var array of used images
+ * @access protected
+ */
+ protected $images;
+
+ /**
+ * @var array of links in pages
+ * @access protected
+ */
+ protected $PageLinks;
+
+ /**
+ * @var array of internal links
+ * @access protected
+ */
+ protected $links;
+
+ /**
+ * @var current font family
+ * @access protected
+ */
+ protected $FontFamily;
+
+ /**
+ * @var current font style
+ * @access protected
+ */
+ protected $FontStyle;
+
+ /**
+ * @var underlining flag
+ * @access protected
+ */
+ protected $underline;
+
+ /**
+ * @var current font info
+ * @access protected
+ */
+ protected $CurrentFont;
+
+ /**
+ * @var current font size in points
+ * @access protected
+ */
+ protected $FontSizePt;
+
+ /**
+ * @var current font size in user unit
+ * @access protected
+ */
+ protected $FontSize;
+
+ /**
+ * @var commands for drawing color
+ * @access protected
+ */
+ protected $DrawColor;
+
+ /**
+ * @var commands for filling color
+ * @access protected
+ */
+ protected $FillColor;
+
+ /**
+ * @var commands for text color
+ * @access protected
+ */
+ protected $TextColor;
+
+ /**
+ * @var indicates whether fill and text colors are different
+ * @access protected
+ */
+ protected $ColorFlag;
+
+ /**
+ * @var word spacing
+ * @access protected
+ */
+ protected $ws;
+
+ /**
+ * @var automatic page breaking
+ * @access protected
+ */
+ protected $AutoPageBreak;
+
+ /**
+ * @var threshold used to trigger page breaks
+ * @access protected
+ */
+ protected $PageBreakTrigger;
+
+ /**
+ * @var flag set when processing footer
+ * @access protected
+ */
+ protected $InFooter;
+
+ /**
+ * @var zoom display mode
+ * @access protected
+ */
+ protected $ZoomMode;
+
+ /**
+ * @var layout display mode
+ * @access protected
+ */
+ protected $LayoutMode;
+
+ /**
+ * @var title
+ * @access protected
+ */
+ protected $title;
+
+ /**
+ * @var subject
+ * @access protected
+ */
+ protected $subject;
+
+ /**
+ * @var author
+ * @access protected
+ */
+ protected $author;
+
+ /**
+ * @var keywords
+ * @access protected
+ */
+ protected $keywords;
+
+ /**
+ * @var creator
+ * @access protected
+ */
+ protected $creator;
+
+ /**
+ * @var alias for total number of pages
+ * @access protected
+ */
+ protected $AliasNbPages;
+
+ /**
+ * @var right-bottom corner X coordinate of inserted image
+ * @since 2002-07-31
+ * @author Nicola Asuni
+ * @access protected
+ */
+ protected $img_rb_x;
+
+ /**
+ * @var right-bottom corner Y coordinate of inserted image
+ * @since 2002-07-31
+ * @author Nicola Asuni
+ * @access protected
+ */
+ protected $img_rb_y;
+
+ /**
+ * @var image scale factor
+ * @since 2004-06-14
+ * @author Nicola Asuni
+ * @access protected
+ */
+ protected $imgscale = 1;
+
+ /**
+ * @var boolean set to true when the input text is unicode (require unicode fonts)
+ * @since 2005-01-02
+ * @author Nicola Asuni
+ * @access protected
+ */
+ protected $isunicode = false;
+
+ /**
+ * @var PDF version
+ * @since 1.5.3
+ * @access protected
+ */
+ protected $PDFVersion = "1.5";
+
+
+ // ----------------------
+
+ /**
+ * @var Minimum distance between header and top page margin.
+ * @access private
+ */
+ private $header_margin;
+
+ /**
+ * @var Minimum distance between footer and bottom page margin.
+ * @access private
+ */
+ private $footer_margin;
+
+ /**
+ * @var original left margin value
+ * @access private
+ * @since 1.53.0.TC013
+ */
+ private $original_lMargin;
+
+ /**
+ * @var original right margin value
+ * @access private
+ * @since 1.53.0.TC013
+ */
+ private $original_rMargin;
+
+ /**
+ * @var Header font.
+ * @access private
+ */
+ private $header_font;
+
+ /**
+ * @var Footer font.
+ * @access private
+ */
+ private $footer_font;
+
+ /**
+ * @var Language templates.
+ * @access private
+ */
+ private $l;
+
+ /**
+ * @var Barcode to print on page footer (only if set).
+ * @access private
+ */
+ private $barcode = false;
+
+ /**
+ * @var If true prints header
+ * @access private
+ */
+ private $print_header = true;
+
+ /**
+ * @var If true prints footer.
+ * @access private
+ */
+ private $print_footer = true;
+
+ /**
+ * @var Header width (0 = full page width).
+ * @access private
+ */
+ private $header_width = 0;
+
+ /**
+ * @var Header image logo.
+ * @access private
+ */
+ private $header_logo = "";
+
+ /**
+ * @var Header image logo width in mm.
+ * @access private
+ */
+ private $header_logo_width = 30;
+
+ /**
+ * @var String to print as title on document header.
+ * @access private
+ */
+ private $header_title = "";
+
+ /**
+ * @var String to print on document header.
+ * @access private
+ */
+ private $header_string = "";
+
+ /**
+ * @var Default number of columns for html table.
+ * @access private
+ */
+ private $default_table_columns = 4;
+
+
+ // variables for html parser
+
+ /**
+ * @var HTML PARSER: store current link.
+ * @access private
+ */
+ private $HREF;
+
+ /**
+ * @var HTML PARSER: store font list.
+ * @access private
+ */
+ private $fontList;
+
+ /**
+ * @var HTML PARSER: true when font attribute is set.
+ * @access private
+ */
+ private $issetfont;
+
+ /**
+ * @var HTML PARSER: true when color attribute is set.
+ * @access private
+ */
+ private $issetcolor;
+
+ /**
+ * @var HTML PARSER: true in case of ordered list (OL), false otherwise.
+ * @access private
+ */
+ private $listordered = false;
+
+ /**
+ * @var HTML PARSER: count list items.
+ * @access private
+ */
+ private $listcount = 0;
+
+ /**
+ * @var HTML PARSER: size of table border.
+ * @access private
+ */
+ private $tableborder = 0;
+
+ /**
+ * @var HTML PARSER: true at the beginning of table.
+ * @access private
+ */
+ private $tdbegin = false;
+
+ /**
+ * @var HTML PARSER: table width.
+ * @access private
+ */
+ private $tdwidth = 0;
+
+ /**
+ * @var HTML PARSER: table height.
+ * @access private
+ */
+ private $tdheight = 0;
+
+ /**
+ * @var HTML PARSER: table align.
+ * @access private
+ */
+ private $tdalign = "L";
+
+ /**
+ * @var HTML PARSER: table background color.
+ * @access private
+ */
+ private $tdbgcolor = false;
+
+ /**
+ * @var Store temporary font size in points.
+ * @access private
+ */
+ private $tempfontsize = 10;
+
+ /**
+ * @var Bold font style status.
+ * @access private
+ */
+ private $b;
+
+ /**
+ * @var Underlined font style status.
+ * @access private
+ */
+ private $u;
+
+ /**
+ * @var Italic font style status.
+ * @access private
+ */
+ private $i;
+
+ /**
+ * @var spacer for LI tags.
+ * @access private
+ */
+ private $lispacer = "";
+
+ /**
+ * @var default encoding
+ * @access private
+ * @since 1.53.0.TC010
+ */
+ private $encoding = "UTF-8";
+
+ /**
+ * @var PHP internal encoding
+ * @access private
+ * @since 1.53.0.TC016
+ */
+ private $internal_encoding;
+
+ /**
+ * @var store previous fill color as RGB array
+ * @access private
+ * @since 1.53.0.TC017
+ */
+ private $prevFillColor = array(255,255,255);
+
+ /**
+ * @var store previous text color as RGB array
+ * @access private
+ * @since 1.53.0.TC017
+ */
+ private $prevTextColor = array(0,0,0);
+
+ /**
+ * @var store previous font family
+ * @access private
+ * @since 1.53.0.TC017
+ */
+ private $prevFontFamily;
+
+ /**
+ * @var store previous font style
+ * @access private
+ * @since 1.53.0.TC017
+ */
+ private $prevFontStyle;
+
+ /**
+ * @var indicates if the document language is Right-To-Left
+ * @access private
+ * @since 2.0.000
+ */
+ private $rtl = false;
+
+ /**
+ * @var used to force RTL or LTR string inversion
+ * @access private
+ * @since 2.0.000
+ */
+ private $tmprtl = false;
+
+ // --- Variables used for document encryption:
+
+ /**
+ * Indicates whether document is protected
+ * @access private
+ * @since 2.0.000 (2008-01-02)
+ */
+ private $encrypted;
+
+ /**
+ * U entry in pdf document
+ * @access private
+ * @since 2.0.000 (2008-01-02)
+ */
+ private $Uvalue;
+
+ /**
+ * O entry in pdf document
+ * @access private
+ * @since 2.0.000 (2008-01-02)
+ */
+ private $Ovalue;
+
+ /**
+ * P entry in pdf document
+ * @access private
+ * @since 2.0.000 (2008-01-02)
+ */
+ private $Pvalue;
+
+ /**
+ * encryption object id
+ * @access private
+ * @since 2.0.000 (2008-01-02)
+ */
+ private $enc_obj_id;
+
+ /**
+ * last RC4 key encrypted (cached for optimisation)
+ * @access private
+ * @since 2.0.000 (2008-01-02)
+ */
+ private $last_rc4_key;
+
+ /**
+ * last RC4 computed key
+ * @access private
+ * @since 2.0.000 (2008-01-02)
+ */
+ private $last_rc4_key_c;
+
+ // --- bookmark ---
+
+ /**
+ * Outlines for bookmark
+ * @access private
+ * @since 2.1.002 (2008-02-12)
+ */
+ private $outlines = array();
+
+ /**
+ * Outline root for bookmark
+ * @access private
+ * @since 2.1.002 (2008-02-12)
+ */
+ private $OutlineRoot;
+
+
+ // --- javascript and form ---
+
+ /**
+ * javascript code
+ * @access private
+ * @since 2.1.002 (2008-02-12)
+ */
+ private $javascript = "";
+
+ /**
+ * javascript counter
+ * @access private
+ * @since 2.1.002 (2008-02-12)
+ */
+ private $n_js;
+
+ //------------------------------------------------------------
+ // Public methods
+ //------------------------------------------------------------
+
+ /**
+ * This is the class constructor.
+ * It allows to set up the page format, the orientation and
+ * the measure unit used in all the methods (except for the font sizes).
+ * @since 1.0
+ * @param string $orientation page orientation. Possible values are (case insensitive):<ul><li>P or Portrait (default)</li><li>L or Landscape</li></ul>
+ * @param string $unit User measure unit. Possible values are:<ul><li>pt: point</li><li>mm: millimeter (default)</li><li>cm: centimeter</li><li>in: inch</li></ul><br />A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This is a very common unit in typography; font sizes are expressed in that unit.
+ * @param mixed $format The format used for pages. It can be either one of the following values (case insensitive) or a custom format in the form of a two-element array containing the width and the height (expressed in the unit given by unit).<ul><li>4A0</li><li>2A0</li><li>A0</li><li>A1</li><li>A2</li><li>A3</li><li>A4 (default)</li><li>A5</li><li>A6</li><li>A7</li><li>A8</li><li>A9</li><li>A10</li><li>B0</li><li>B1</li><li>B2</li><li>B3</li><li>B4</li><li>B5</li><li>B6</li><li>B7</li><li>B8</li><li>B9</li><li>B10</li><li>C0</li><li>C1</li><li>C2</li><li>C3</li><li>C4</li><li>C5</li><li>C6</li><li>C7</li><li>C8</li><li>C9</li><li>C10</li><li>RA0</li><li>RA1</li><li>RA2</li><li>RA3</li><li>RA4</li><li>SRA0</li><li>SRA1</li><li>SRA2</li><li>SRA3</li><li>SRA4</li><li>LETTER</li><li>LEGAL</li><li>EXECUTIVE</li><li>FOLIO</li></ul>
+ * @param boolean $unicode TRUE means that the input text is unicode (default = true)
+ * @param String $encoding charset encoding; default is UTF-8
+ */
+ public function __construct($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding="UTF-8") {
+
+ /* Set internal character encoding to ASCII */
+ if (function_exists("mb_internal_encoding") AND mb_internal_encoding()) {
+ $this->internal_encoding = mb_internal_encoding();
+ mb_internal_encoding("ASCII");
+ }
+
+ // set language direction
+ $this->rtl = $this->l['a_meta_dir']=='rtl' ? true : false;
+ $this->tmprtl = false;
+
+ //Some checks
+ $this->_dochecks();
+
+ //Initialization of properties
+ $this->isunicode=$unicode;
+ $this->page=0;
+ $this->n=2;
+ $this->buffer='';
+ $this->pages=array();
+ $this->OrientationChanges=array();
+ $this->state=0;
+ $this->fonts=array();
+ $this->FontFiles=array();
+ $this->diffs=array();
+ $this->images=array();
+ $this->links=array();
+ $this->InFooter=false;
+ $this->lasth=0;
+ $this->FontFamily='';
+ $this->FontStyle='';
+ $this->FontSizePt=12;
+ $this->underline=false;
+ $this->DrawColor='0 G';
+ $this->FillColor='0 g';
+ $this->TextColor='0 g';
+ $this->ColorFlag=false;
+ $this->ws=0;
+ // encryption values
+ $this->encrypted=false;
+ $this->last_rc4_key='';
+ $this->padding="\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A";
+
+ //Standard Unicode fonts
+ $this->CoreFonts=array(
+ 'courier'=>'Courier',
+ 'courierB'=>'Courier-Bold',
+ 'courierI'=>'Courier-Oblique',
+ 'courierBI'=>'Courier-BoldOblique',
+ 'helvetica'=>'Helvetica',
+ 'helveticaB'=>'Helvetica-Bold',
+ 'helveticaI'=>'Helvetica-Oblique',
+ 'helveticaBI'=>'Helvetica-BoldOblique',
+ 'times'=>'Times-Roman',
+ 'timesB'=>'Times-Bold',
+ 'timesI'=>'Times-Italic',
+ 'timesBI'=>'Times-BoldItalic',
+ 'symbol'=>'Symbol',
+ 'zapfdingbats'=>'ZapfDingbats'
+ );
+
+ //Scale factor
+ switch (strtolower($unit)){
+ case 'pt': {$this->k=1; break;}
+ case 'mm': {$this->k=72/25.4; break;}
+ case 'cm': {$this->k=72/2.54; break;}
+ case 'in': {$this->k=72; break;}
+ default : {$this->Error('Incorrect unit: '.$unit); break;}
+ }
+
+ //Page format
+ if(is_string($format)) {
+ // Page formats (45 standard ISO paper formats and 4 american common formats).
+ // Paper cordinates are calculated in this way: (inches * 72) where (1 inch = 2.54 cm)
+ switch (strtoupper($format)){
+ case '4A0': {$format = array(4767.87,6740.79); break;}
+ case '2A0': {$format = array(3370.39,4767.87); break;}
+ case 'A0': {$format = array(2383.94,3370.39); break;}
+ case 'A1': {$format = array(1683.78,2383.94); break;}
+ case 'A2': {$format = array(1190.55,1683.78); break;}
+ case 'A3': {$format = array(841.89,1190.55); break;}
+ case 'A4': default: {$format = array(595.28,841.89); break;}
+ case 'A5': {$format = array(419.53,595.28); break;}
+ case 'A6': {$format = array(297.64,419.53); break;}
+ case 'A7': {$format = array(209.76,297.64); break;}
+ case 'A8': {$format = array(147.40,209.76); break;}
+ case 'A9': {$format = array(104.88,147.40); break;}
+ case 'A10': {$format = array(73.70,104.88); break;}
+ case 'B0': {$format = array(2834.65,4008.19); break;}
+ case 'B1': {$format = array(2004.09,2834.65); break;}
+ case 'B2': {$format = array(1417.32,2004.09); break;}
+ case 'B3': {$format = array(1000.63,1417.32); break;}
+ case 'B4': {$format = array(708.66,1000.63); break;}
+ case 'B5': {$format = array(498.90,708.66); break;}
+ case 'B6': {$format = array(354.33,498.90); break;}
+ case 'B7': {$format = array(249.45,354.33); break;}
+ case 'B8': {$format = array(175.75,249.45); break;}
+ case 'B9': {$format = array(124.72,175.75); break;}
+ case 'B10': {$format = array(87.87,124.72); break;}
+ case 'C0': {$format = array(2599.37,3676.54); break;}
+ case 'C1': {$format = array(1836.85,2599.37); break;}
+ case 'C2': {$format = array(1298.27,1836.85); break;}
+ case 'C3': {$format = array(918.43,1298.27); break;}
+ case 'C4': {$format = array(649.13,918.43); break;}
+ case 'C5': {$format = array(459.21,649.13); break;}
+ case 'C6': {$format = array(323.15,459.21); break;}
+ case 'C7': {$format = array(229.61,323.15); break;}
+ case 'C8': {$format = array(161.57,229.61); break;}
+ case 'C9': {$format = array(113.39,161.57); break;}
+ case 'C10': {$format = array(79.37,113.39); break;}
+ case 'RA0': {$format = array(2437.80,3458.27); break;}
+ case 'RA1': {$format = array(1729.13,2437.80); break;}
+ case 'RA2': {$format = array(1218.90,1729.13); break;}
+ case 'RA3': {$format = array(864.57,1218.90); break;}
+ case 'RA4': {$format = array(609.45,864.57); break;}
+ case 'SRA0': {$format = array(2551.18,3628.35); break;}
+ case 'SRA1': {$format = array(1814.17,2551.18); break;}
+ case 'SRA2': {$format = array(1275.59,1814.17); break;}
+ case 'SRA3': {$format = array(907.09,1275.59); break;}
+ case 'SRA4': {$format = array(637.80,907.09); break;}
+ case 'LETTER': {$format = array(612.00,792.00); break;}
+ case 'LEGAL': {$format = array(612.00,1008.00); break;}
+ case 'EXECUTIVE': {$format = array(521.86,756.00); break;}
+ case 'FOLIO': {$format = array(612.00,936.00); break;}
+ // default: {$this->Error('Unknown page format: '.$format); break;}
+ }
+ $this->fwPt=$format[0];
+ $this->fhPt=$format[1];
+ }
+ else {
+ $this->fwPt=$format[0]*$this->k;
+ $this->fhPt=$format[1]*$this->k;
+ }
+
+ $this->fw=$this->fwPt/$this->k;
+ $this->fh=$this->fhPt/$this->k;
+
+ //Page orientation
+ $orientation=strtolower($orientation);
+ if($orientation=='p' or $orientation=='portrait') {
+ $this->DefOrientation='P';
+ $this->wPt=$this->fwPt;
+ $this->hPt=$this->fhPt;
+ }
+ elseif($orientation=='l' or $orientation=='landscape') {
+ $this->DefOrientation='L';
+ $this->wPt=$this->fhPt;
+ $this->hPt=$this->fwPt;
+ }
+ else {
+ $this->Error('Incorrect orientation: '.$orientation);
+ }
+
+ $this->CurOrientation=$this->DefOrientation;
+ $this->w=$this->wPt/$this->k;
+ $this->h=$this->hPt/$this->k;
+ //Page margins (1 cm)
+ $margin=28.35/$this->k;
+ $this->SetMargins($margin,$margin);
+ //Interior cell margin (1 mm)
+ $this->cMargin=$margin/10;
+ //Line width (0.2 mm)
+ $this->LineWidth=.567/$this->k;
+ //Automatic page break
+ $this->SetAutoPageBreak(true,2*$margin);
+ //Full width display mode
+ $this->SetDisplayMode('fullwidth');
+ //Compression
+ $this->SetCompression(true);
+ //Set default PDF version number
+ $this->PDFVersion = "1.5";
+
+ $this->encoding = $encoding;
+ $this->b = 0;
+ $this->i = 0;
+ $this->u = 0;
+ $this->HREF = '';
+ $this->fontlist = array("arial", "times", "courier", "helvetica", "symbol");
+ $this->issetfont = false;
+ $this->issetcolor = false;
+ $this->tableborder = 0;
+ $this->tdbegin = false;
+ $this->tdwidth= 0;
+ $this->tdheight = 0;
+ if($this->rtl) {
+ $this->tdalign = "R";
+ } else {
+ $this->tdalign = "L";
+ }
+ $this->tdbgcolor = false;
+
+ $this->SetFillColor(200, 200, 200, true);
+ $this->SetTextColor(0, 0, 0, true);
+ }
+
+ /**
+ * Default destructor.
+ * @since 1.53.0.TC016
+ */
+ public function __destruct() {
+ // restore internal encoding
+ if (isset($this->internal_encoding) AND !empty($this->internal_encoding)) {
+ mb_internal_encoding($this->internal_encoding);
+ }
+ }
+
+ /**
+ * Enable or disable Right-To-Left language mode
+ * @param Boolean $enable if true enable Right-To-Left language mode.
+ * @since 2.0.000 (2008-01-03)
+ */
+ public function setRTL($enable) {
+ $this->rtl = $enable ? true : false;
+ $this->tmprtl = false;
+ }
+
+ /**
+ * Force temporary RTL language direction
+ * @param mixed $mode can be false, 'L' for LTR or 'R' for RTL
+ * @since 2.1.000 (2008-01-09)
+ */
+ public function setTempRTL($mode) {
+ switch ($mode) {
+ case false:
+ case 'L':
+ case 'R': {
+ $this->tmprtl = $mode;
+ }
+ }
+ }
+
+ /**
+ * Set the last cell height.
+ * @param float $h cell height.
+ * @author Nicola Asuni
+ * @since 1.53.0.TC034
+ */
+ public function setLastH($h) {
+ $this->lasth=$h;
+ }
+
+ /**
+ * Set the image scale.
+ * @param float $scale image scale.
+ * @author Nicola Asuni
+ * @since 1.5.2
+ */
+ public function setImageScale($scale) {
+ $this->imgscale=$scale;
+ }
+
+ /**
+ * Returns the image scale.
+ * @return float image scale.
+ * @author Nicola Asuni
+ * @since 1.5.2
+ */
+ public function getImageScale() {
+ return $this->imgscale;
+ }
+
+ /**
+ * Returns the page width in units.
+ * @return int page width.
+ * @author Nicola Asuni
+ * @since 1.5.2
+ */
+ public function getPageWidth() {
+ return $this->w;
+ }
+
+ /**
+ * Returns the page height in units.
+ * @return int page height.
+ * @author Nicola Asuni
+ * @since 1.5.2
+ */
+ public function getPageHeight() {
+ return $this->h;
+ }
+
+ /**
+ * Returns the page break margin.
+ * @return int page break margin.
+ * @author Nicola Asuni
+ * @since 1.5.2
+ */
+ public function getBreakMargin() {
+ return $this->bMargin;
+ }
+
+ /**
+ * Returns the scale factor (number of points in user unit).
+ * @return int scale factor.
+ * @author Nicola Asuni
+ * @since 1.5.2
+ */
+ public function getScaleFactor() {
+ return $this->k;
+ }
+
+ /**
+ * Defines the left, top and right margins. By default, they equal 1 cm. Call this method to change them.
+ * @param float $left Left margin.
+ * @param float $top Top margin.
+ * @param float $right Right margin. Default value is the left one.
+ * @since 1.0
+ * @see SetLeftMargin(), SetTopMargin(), SetRightMargin(), SetAutoPageBreak()
+ */
+ public function SetMargins($left, $top, $right=-1) {
+ //Set left, top and right margins
+ $this->lMargin=$left;
+ $this->tMargin=$top;
+ if($right==-1) {
+ $right=$left;
+ }
+ $this->rMargin=$right;
+ }
+
+ /**
+ * Defines the left margin. The method can be called before creating the first page. If the current abscissa gets out of page, it is brought back to the margin.
+ * @param float $margin The margin.
+ * @since 1.4
+ * @see SetTopMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins()
+ */
+ public function SetLeftMargin($margin) {
+ //Set left margin
+ $this->lMargin=$margin;
+ if(($this->page > 0) AND ($this->x < $margin)) {
+ $this->x = $margin;
+ }
+ }
+
+ /**
+ * Defines the top margin. The method can be called before creating the first page.
+ * @param float $margin The margin.
+ * @since 1.5
+ * @see SetLeftMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins()
+ */
+ public function SetTopMargin($margin) {
+ //Set top margin
+ $this->tMargin=$margin;
+ if(($this->page > 0) AND ($this->y < $margin)) {
+ $this->y = $margin;
+ }
+ }
+
+ /**
+ * Defines the right margin. The method can be called before creating the first page.
+ * @param float $margin The margin.
+ * @since 1.5
+ * @see SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins()
+ */
+ public function SetRightMargin($margin) {
+ $this->rMargin=$margin;
+ if(($this->page > 0) AND ($this->x > ($this->w - $margin))) {
+ $this->x = $this->w - $margin;
+ }
+ }
+
+ /**
+ * Set the internal Cell padding.
+ * @param float $pad internal padding.
+ * @since 2.1.000 (2008-01-09)
+ * @see Cell(), SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins()
+ */
+ public function SetCellPadding($pad) {
+ $this->cMargin=$pad;
+ }
+
+ /**
+ * Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm.
+ * @param boolean $auto Boolean indicating if mode should be on or off.
+ * @param float $margin Distance from the bottom of the page.
+ * @since 1.0
+ * @see Cell(), MultiCell(), AcceptPageBreak()
+ */
+ public function SetAutoPageBreak($auto, $margin=0) {
+ //Set auto page break mode and triggering margin
+ $this->AutoPageBreak = $auto;
+ $this->bMargin = $margin;
+ $this->PageBreakTrigger = $this->h - $margin;
+ }
+
+ /**
+ * Defines the way the document is to be displayed by the viewer. The zoom level can be set: pages can be displayed entirely on screen, occupy the full width of the window, use real size, be scaled by a specific zooming factor or use viewer default (configured in the Preferences menu of Acrobat). The page layout can be specified too: single at once, continuous display, two columns or viewer default. By default, documents use the full width mode with continuous display.
+ * @param mixed $zoom The zoom to use. It can be one of the following string values or a number indicating the zooming factor to use. <ul><li>fullpage: displays the entire page on screen </li><li>fullwidth: uses maximum width of window</li><li>real: uses real size (equivalent to 100% zoom)</li><li>default: uses viewer default mode</li></ul>
+ * @param string $layout The page layout. Possible values are:<ul><li>single: displays one page at once</li><li>continuous: displays pages continuously (default)</li><li>two: displays two pages on two columns</li><li>default: uses viewer default mode</li></ul>
+ * @since 1.2
+ */
+ public function SetDisplayMode($zoom, $layout='continuous') {
+ //Set display mode in viewer
+ if($zoom=='fullpage' or $zoom=='fullwidth' or $zoom=='real' or $zoom=='default' or !is_string($zoom)) {
+ $this->ZoomMode=$zoom;
+ }
+ else {
+ $this->Error('Incorrect zoom display mode: '.$zoom);
+ }
+ if($layout=='single' or $layout=='continuous' or $layout=='two' or $layout=='default') {
+ $this->LayoutMode=$layout;
+ }
+ else {
+ $this->Error('Incorrect layout display mode: '.$layout);
+ }
+ }
+
+ /**
+ * Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default.
+ * Note: the Zlib extension is required for this feature. If not present, compression will be turned off.
+ * @param boolean $compress Boolean indicating if compression must be enabled.
+ * @since 1.4
+ */
+ public function SetCompression($compress) {
+ //Set page compression
+ if(function_exists('gzcompress')) {
+ $this->compress=$compress;
+ }
+ else {
+ $this->compress=false;
+ }
+ }
+
+ /**
+ * Defines the title of the document.
+ * @param string $title The title.
+ * @since 1.2
+ * @see SetAuthor(), SetCreator(), SetKeywords(), SetSubject()
+ */
+ public function SetTitle($title) {
+ //Title of document
+ $this->title=$title;
+ }
+
+ /**
+ * Defines the subject of the document.
+ * @param string $subject The subject.
+ * @since 1.2
+ * @see SetAuthor(), SetCreator(), SetKeywords(), SetTitle()
+ */
+ public function SetSubject($subject) {
+ //Subject of document
+ $this->subject=$subject;
+ }
+
+ /**
+ * Defines the author of the document.
+ * @param string $author The name of the author.
+ * @since 1.2
+ * @see SetCreator(), SetKeywords(), SetSubject(), SetTitle()
+ */
+ public function SetAuthor($author) {
+ //Author of document
+ $this->author=$author;
+ }
+
+ /**
+ * Associates keywords with the document, generally in the form 'keyword1 keyword2 ...'.
+ * @param string $keywords The list of keywords.
+ * @since 1.2
+ * @see SetAuthor(), SetCreator(), SetSubject(), SetTitle()
+ */
+ public function SetKeywords($keywords) {
+ //Keywords of document
+ $this->keywords=$keywords;
+ }
+
+ /**
+ * Defines the creator of the document. This is typically the name of the application that generates the PDF.
+ * @param string $creator The name of the creator.
+ * @since 1.2
+ * @see SetAuthor(), SetKeywords(), SetSubject(), SetTitle()
+ */
+ public function SetCreator($creator) {
+ //Creator of document
+ $this->creator=$creator;
+ }
+
+ /**
+ * Defines an alias for the total number of pages. It will be substituted as the document is closed.<br />
+ * <b>Example:</b><br />
+ * <pre>
+ * class PDF extends TCPDF {
+ * public function Footer() {
+ * //Go to 1.5 cm from bottom
+ * $this->SetY(-15);
+ * //Select Arial italic 8
+ * $this->SetFont('Arial','I',8);
+ * //Print current and total page numbers
+ * $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
+ * }
+ * }
+ * $pdf=new PDF();
+ * $pdf->AliasNbPages();
+ * </pre>
+ * @param string $alias The alias. Default value: {nb}.
+ * @since 1.4
+ * @see PageNo(), Footer()
+ */
+ public function AliasNbPages($alias='{nb}') {
+ //Define an alias for total number of pages
+ $this->AliasNbPages = $this->_escapetext($alias);
+ }
+
+ /**
+ * This method is automatically called in case of fatal error; it simply outputs the message and halts the execution. An inherited class may override it to customize the error handling but should always halt the script, or the resulting document would probably be invalid.
+ * 2004-06-11 :: Nicola Asuni : changed bold tag with strong
+ * @param string $msg The error message
+ * @since 1.0
+ */
+ public function Error($msg) {
+ //Fatal error
+ die('<strong>TCPDF error: </strong>'.$msg);
+ }
+
+ /**
+ * This method begins the generation of the PDF document. It is not necessary to call it explicitly because AddPage() does it automatically.
+ * Note: no page is created by this method
+ * @since 1.0
+ * @see AddPage(), Close()
+ */
+ public function Open() {
+ //Begin document
+ $this->state=1;
+ }
+
+ /**
+ * Terminates the PDF document. It is not necessary to call this method explicitly because Output() does it automatically. If the document contains no page, AddPage() is called to prevent from getting an invalid document.
+ * @since 1.0
+ * @see Open(), Output()
+ */
+ public function Close() {
+ //Terminate document
+ if($this->state==3) {
+ return;
+ }
+ if($this->page==0) {
+ $this->AddPage();
+ }
+ //Page footer
+ $this->InFooter=true;
+ $this->Footer();
+ $this->InFooter=false;
+ //Close page
+ $this->_endpage();
+ //Close document
+ $this->_enddoc();
+ }
+
+ /**
+ * Reset pointer to the last document page.
+ * @since 2.0.000 (2008-01-04)
+ * @see setPage(), getPage(), getNumPages()
+ */
+ public function lastPage() {
+ $this->page = count($this->pages);
+ }
+
+ /**
+ * Move pointer to the apecified document page.
+ * @param int $pnum page number
+ * @since 2.1.000 (2008-01-07)
+ * @see getPage(), lastpage(), getNumPages()
+ */
+ public function setPage($pnum) {
+ if(($pnum > 0) AND ($pnum <= count($this->pages))) {
+ $this->page = $pnum;
+ }
+ }
+
+ /**
+ * Get current document page number.
+ * @return int page number
+ * @since 2.1.000 (2008-01-07)
+ * @see setPage(), lastpage(), getNumPages()
+ */
+ public function getPage() {
+ return $this->page;
+ }
+
+
+ /**
+ * Get the total number of insered pages.
+ * @return int number of pages
+ * @since 2.1.000 (2008-01-07)
+ * @see setPage(), getPage(), lastpage()
+ */
+ public function getNumPages() {
+ return count($this->pages);
+ }
+
+ /**
+ * Adds a new page to the document. If a page is already present, the Footer() method is called first to output the footer. Then the page is added, the current position set to the top-left corner according to the left and top margins, and Header() is called to display the header.
+ * The font which was set before calling is automatically restored. There is no need to call SetFont() again if you want to continue with the same font. The same is true for colors and line width.
+ * The origin of the coordinate system is at the top-left corner and increasing ordinates go downwards.
+ * @param string $orientation Page orientation. Possible values are (case insensitive):<ul><li>P or Portrait</li><li>L or Landscape</li></ul> The default value is the one passed to the constructor.
+ * @since 1.0
+ * @see TCPDF(), Header(), Footer(), SetMargins()
+ */
+ public function AddPage($orientation='') {
+ if (count($this->pages) > ($this->page + 1)) {
+ // this page has been already added
+ $this->page++;
+ return;
+ }
+ //Start a new page
+ if($this->state==0) {
+ $this->Open();
+ }
+ $family=$this->FontFamily;
+ $style=$this->FontStyle.($this->underline ? 'U' : '');
+ $size=$this->FontSizePt;
+ $lw=$this->LineWidth;
+ $dc=$this->DrawColor;
+ $fc=$this->FillColor;
+ $tc=$this->TextColor;
+ $cf=$this->ColorFlag;
+ if($this->page>0) {
+ //Page footer
+ $this->InFooter=true;
+ $this->Footer();
+ $this->InFooter=false;
+ //Close page
+ $this->_endpage();
+ }
+ //Start new page
+ $this->_beginpage($orientation);
+ //Set line cap style to square
+ $this->_out('2 J');
+ //Set line width
+ $this->LineWidth=$lw;
+ $this->_out(sprintf('%.2f w',$lw*$this->k));
+ //Set font
+ if($family) {
+ $this->SetFont($family,$style,$size);
+ }
+ //Set colors
+ $this->DrawColor=$dc;
+ if($dc!='0 G') {
+ $this->_out($dc);
+ }
+ $this->FillColor=$fc;
+ if($fc!='0 g') {
+ $this->_out($fc);
+ }
+ $this->TextColor=$tc;
+ $this->ColorFlag=$cf;
+ //Page header
+ $this->Header();
+ //Restore line width
+ if($this->LineWidth!=$lw) {
+ $this->LineWidth=$lw;
+ $this->_out(sprintf('%.2f w',$lw*$this->k));
+ }
+ //Restore font
+ if($family) {
+ $this->SetFont($family,$style,$size);
+ }
+ //Restore colors
+ if($this->DrawColor!=$dc) {
+ $this->DrawColor=$dc;
+ $this->_out($dc);
+ }
+ if($this->FillColor!=$fc) {
+ $this->FillColor=$fc;
+ $this->_out($fc);
+ }
+ $this->TextColor=$tc;
+ $this->ColorFlag=$cf;
+ }
+
+ /**
+ * Set header data.
+ * @param string $ln header image logo
+ * @param string $lw header image logo width in mm
+ * @param string $ht string to print as title on document header
+ * @param string $hs string to print on document header
+ */
+ public function setHeaderData($ln="", $lw=0, $ht="", $hs="") {
+ $this->header_logo = $ln;
+ $this->header_logo_width = $lw;
+ $this->header_title = $ht;
+ $this->header_string = $hs;
+ }
+
+ /**
+ * Set header margin.
+ * (minimum distance between header and top page margin)
+ * @param int $hm distance in millimeters
+ */
+ public function setHeaderMargin($hm=10) {
+ $this->header_margin = $hm;
+ }
+
+ /**
+ * Set footer margin.
+ * (minimum distance between footer and bottom page margin)
+ * @param int $fm distance in millimeters
+ */
+ public function setFooterMargin($fm=10) {
+ $this->footer_margin = $fm;
+ }
+
+ /**
+ * Set a flag to print page header.
+ * @param boolean $val set to true to print the page header (default), false otherwise.
+ */
+ public function setPrintHeader($val=true) {
+ $this->print_header = $val;
+ }
+
+ /**
+ * Set a flag to print page footer.
+ * @param boolean $value set to true to print the page footer (default), false otherwise.
+ */
+ public function setPrintFooter($val=true) {
+ $this->print_footer = $val;
+ }
+
+ /**
+ * This method is used to render the page header.
+ * It is automatically called by AddPage() and could be overwritten in your own inherited class.
+ */
+ public function Header() {
+ if ($this->print_header) {
+
+ if (!isset($this->original_lMargin)) {
+ $this->original_lMargin = $this->lMargin;
+ }
+ if (!isset($this->original_rMargin)) {
+ $this->original_rMargin = $this->rMargin;
+ }
+
+ //set current position
+ if ($this->rtl) {
+ $this->SetXY($this->original_rMargin, $this->header_margin);
+ } else {
+ $this->SetXY($this->original_lMargin, $this->header_margin);
+ }
+
+ if (($this->header_logo) AND ($this->header_logo != K_BLANK_IMAGE)) {
+ $this->Image(K_PATH_IMAGES.$this->header_logo, $this->GetX(), $this->header_margin, $this->header_logo_width);
+ } else {
+ $this->img_rb_x = $this->GetX();
+ $this->img_rb_y = $this->GetY();
+ }
+
+ $cell_height = round((K_CELL_HEIGHT_RATIO * $this->header_font[2]) / $this->k, 2);
+ // set starting margin for text data cell
+ if ($this->rtl) {
+ $header_x = $this->original_rMargin + ($this->header_logo_width * 1.1);
+ } else {
+ $header_x = $this->original_lMargin + ($this->header_logo_width * 1.1);
+ }
+
+ // header title
+ $this->SetFont($this->header_font[0], 'B', $this->header_font[2] + 1);
+ $this->SetX($header_x);
+ $this->Cell($this->header_width, $cell_height, $this->header_title, 0, 1, '');
+
+ // header string
+ $this->SetFont($this->header_font[0], $this->header_font[1], $this->header_font[2]);
+ $this->SetX($header_x);
+ $this->MultiCell($this->header_width, $cell_height, $this->header_string, 0, '', 0);
+
+ // print an ending header line
+ if (empty($this->header_width)) {
+ //set style for cell border
+ $prevlinewidth = $this->GetLineWidth();
+ $line_width = 0.3;
+ $this->SetLineWidth($line_width);
+ $this->SetDrawColor(0, 0, 0);
+ $this->SetY(1 + max($this->img_rb_y, $this->GetY()));
+ if ($this->rtl) {
+ $this->SetX($this->original_rMargin);
+ } else {
+ $this->SetX($this->original_lMargin);
+ }
+ $this->Cell(0, 0, '', 'T', 0, 'C');
+ $this->SetLineWidth($prevlinewidth);
+ }
+
+ //restore position
+ if ($this->rtl) {
+ $this->SetXY($this->original_rMargin, $this->tMargin);
+ } else {
+ $this->SetXY($this->original_lMargin, $this->tMargin);
+ }
+ }
+ }
+
+ /**
+ * This method is used to render the page footer.
+ * It is automatically called by AddPage() and could be overwritten in your own inherited class.
+ */
+ public function Footer() {
+ if ($this->print_footer) {
+
+ if (!isset($this->original_lMargin)) {
+ $this->original_lMargin = $this->lMargin;
+ }
+ if (!isset($this->original_rMargin)) {
+ $this->original_rMargin = $this->rMargin;
+ }
+
+ //set font
+ $this->SetFont($this->footer_font[0], $this->footer_font[1] , $this->footer_font[2]);
+ //set style for cell border
+ $prevlinewidth = $this->GetLineWidth();
+ $line_width = 0.3;
+ $this->SetLineWidth($line_width);
+ $this->SetDrawColor(0, 0, 0);
+
+ $footer_height = round((K_CELL_HEIGHT_RATIO * $this->footer_font[2]) / $this->k, 2); //footer height
+ //get footer y position
+ $footer_y = $this->h - $this->footer_margin - $footer_height;
+ //set current position
+ if ($this->rtl) {
+ $this->SetXY($this->original_rMargin, $footer_y);
+ } else {
+ $this->SetXY($this->original_lMargin, $footer_y);
+ }
+
+ //print document barcode
+ if ($this->barcode) {
+ $this->Ln();
+ $barcode_width = round(($this->w - $this->original_lMargin - $this->original_rMargin)/3); //max width
+ $this->writeBarcode($this->GetX(), $footer_y + $line_width, $barcode_width, $footer_height - $line_width, "C128B", false, false, 2, $this->barcode);
+ }
+
+ $pagenumtxt = $this->l['w_page']." ".$this->PageNo().' / {nb}';
+
+ $this->SetY($footer_y);
+
+ //Print page number
+ if ($this->rtl) {
+ $this->SetX($this->original_rMargin);
+ $this->Cell(0, $footer_height, $pagenumtxt, 'T', 0, 'L');
+ } else {
+ $this->SetX($this->original_lMargin);
+ $this->Cell(0, $footer_height, $pagenumtxt, 'T', 0, 'R');
+ }
+ // restore line width
+ $this->SetLineWidth($prevlinewidth);
+ }
+ }
+
+ /**
+ * Returns the current page number.
+ * @return int page number
+ * @since 1.0
+ * @see AliasNbPages()
+ */
+ public function PageNo() {
+ //Get current page number
+ return $this->page;
+ }
+
+ /**
+ * Defines the color used for all drawing operations (lines, rectangles and cell borders). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
+ * @param int $r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
+ * @param int $g Green component (between 0 and 255)
+ * @param int $b Blue component (between 0 and 255)
+ * @since 1.3
+ * @see SetFillColor(), SetTextColor(), Line(), Rect(), Cell(), MultiCell()
+ */
+ public function SetDrawColor($r, $g=-1, $b=-1) {
+ //Set color for all stroking operations
+ if(($r==0 and $g==0 and $b==0) or $g==-1) {
+ $this->DrawColor=sprintf('%.3f G',$r/255);
+ }
+ else {
+ $this->DrawColor=sprintf('%.3f %.3f %.3f RG',$r/255,$g/255,$b/255);
+ }
+ if($this->page>0) {
+ $this->_out($this->DrawColor);
+ }
+ }
+
+ /**
+ * Defines the color used for all filling operations (filled rectangles and cell backgrounds). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
+ * @param int $r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
+ * @param int $g Green component (between 0 and 255)
+ * @param int $b Blue component (between 0 and 255)
+ * @param boolean $storeprev if true stores the RGB array on $prevFillColor variable.
+ * @since 1.3
+ * @see SetDrawColor(), SetTextColor(), Rect(), Cell(), MultiCell()
+ */
+ public function SetFillColor($r, $g=-1, $b=-1, $storeprev=false) {
+ //Set color for all filling operations
+ if(($r==0 and $g==0 and $b==0) or $g==-1) {
+ $this->FillColor=sprintf('%.3f g',$r/255);
+ }
+ else {
+ $this->FillColor=sprintf('%.3f %.3f %.3f rg',$r/255,$g/255,$b/255);
+ }
+ $this->ColorFlag=($this->FillColor!=$this->TextColor);
+ if($this->page>0) {
+ $this->_out($this->FillColor);
+ }
+ if ($storeprev) {
+ // store color as previous value
+ $this->prevFillColor = array($r, $g, $b);
+ }
+ }
+
+ /**
+ * Defines the color used for text. It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
+ * @param int $r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
+ * @param int $g Green component (between 0 and 255)
+ * @param int $b Blue component (between 0 and 255)
+ * @param boolean $storeprev if true stores the RGB array on $prevTextColor variable.
+ * @since 1.3
+ * @see SetDrawColor(), SetFillColor(), Text(), Cell(), MultiCell()
+ */
+ public function SetTextColor($r, $g=-1, $b=-1, $storeprev=false) {
+ //Set color for text
+ if(($r==0 and $g==0 and $b==0) or $g==-1) {
+ $this->TextColor=sprintf('%.3f g',$r/255);
+ }
+ else {
+ $this->TextColor=sprintf('%.3f %.3f %.3f rg',$r/255,$g/255,$b/255);
+ }
+ $this->ColorFlag=($this->FillColor!=$this->TextColor);
+ if ($storeprev) {
+ // store color as previous value
+ $this->prevTextColor = array($r, $g, $b);
+ }
+ }
+
+ /**
+ * Returns the length of a string in user unit. A font must be selected.<br>
+ * Support UTF-8 Unicode [Nicola Asuni, 2005-01-02]
+ * @param string $s The string whose length is to be computed
+ * @return int
+ * @since 1.2
+ */
+ public function GetStringWidth($s) {
+ //Get width of a string in the current font
+ $s = (string)$s;
+ $cw = &$this->CurrentFont['cw'];
+ $w = 0;
+ if($this->isunicode) {
+ $unicode = $this->UTF8StringToArray($s);
+ foreach($unicode as $char) {
+ if (isset($cw[$char])) {
+ $w+=$cw[$char];
+ } elseif(isset($cw[ord($char)])) {
+ $w+=$cw[ord($char)];
+ } elseif(isset($cw[chr($char)])) {
+ $w+=$cw[chr($char)];
+ } elseif(isset($this->CurrentFont['desc']['MissingWidth'])) {
+ $w += $this->CurrentFont['desc']['MissingWidth']; // set default size
+ } else {
+ $w += 500;
+ }
+ }
+ } else {
+ $l = strlen($s);
+ for($i=0; $i < $l; $i++) {
+ if (isset($cw[$s{$i}])) {
+ $w += $cw[$s{$i}];
+ } else if (isset($cw[ord($s{$i})])) {
+ $w += $cw[ord($s{$i})];
+ }
+ }
+ }
+ return ($w * $this->FontSize / 1000);
+ }
+
+ /**
+ * Returns the numbero of characters in a string.
+ * @param string $s The input string.
+ * @return int number of characters
+ * @since 2.0.0001 (2008-01-07)
+ */
+ public function GetNumChars($s) {
+ if($this->isunicode) {
+ return count($this->UTF8StringToArray($s));
+ }
+ return strlen($s);
+ }
+
+ /**
+ * Imports a TrueType or Type1 font and makes it available. It is necessary to generate a font definition file first with the makefont.php utility. The definition file (and the font file itself when embedding) must be present either in the current directory or in the one indicated by K_PATH_FONTS if the constant is defined. If it could not be found, the error "Could not include font definition file" is generated.
+ * Support UTF-8 Unicode [Nicola Asuni, 2005-01-02].
+ * <b>Example</b>:<br />
+ * <pre>
+ * $pdf->AddFont('Comic','I');
+ * // is equivalent to:
+ * $pdf->AddFont('Comic','I','comici.php');
+ * </pre>
+ * @param string $family Font family. The name can be chosen arbitrarily. If it is a standard family name, it will override the corresponding font.
+ * @param string $style Font style. Possible values are (case insensitive):<ul><li>empty string: regular (default)</li><li>B: bold</li><li>I: italic</li><li>BI or IB: bold italic</li></ul>
+ * @param string $file The font definition file. By default, the name is built from the family and style, in lower case with no space.
+ * @since 1.5
+ * @see SetFont()
+ */
+ public function AddFont($family, $style='', $file='') {
+ if(empty($family)) {
+ return;
+ }
+
+ //Add a TrueType or Type1 font
+ $family = strtolower($family);
+ if((!$this->isunicode) AND ($family == 'arial')) {
+ $family = 'helvetica';
+ }
+
+ $style=strtoupper($style);
+ $style=str_replace('U','',$style);
+ if($style == 'IB') {
+ $style = 'BI';
+ }
+
+ $fontkey = $family.$style;
+ // check if the font has been already added
+ if(isset($this->fonts[$fontkey])) {
+ return;
+ }
+
+ if($file=='') {
+ $file = str_replace(' ', '', $family).strtolower($style).'.php';
+ }
+ if(!file_exists($this->_getfontpath().$file)) {
+ // try to load the basic file without styles
+ $file = str_replace(' ', '', $family).'.php';
+ }
+
+ include($this->_getfontpath().$file);
+
+ if(!isset($name) AND !isset($fpdf_charwidths)) {
+ $this->Error('Could not include font definition file');
+ }
+
+ $i = count($this->fonts)+1;
+
+ if($this->isunicode) {
+ $this->fonts[$fontkey] = array('i'=>$i, 'type'=>$type, 'name'=>$name, 'desc'=>$desc, 'up'=>$up, 'ut'=>$ut, 'cw'=>$cw, 'enc'=>$enc, 'file'=>$file, 'ctg'=>$ctg);
+ $fpdf_charwidths[$fontkey] = $cw;
+ } else {
+ $this->fonts[$fontkey]=array('i'=>$i, 'type'=>'core', 'name'=>$this->CoreFonts[$fontkey], 'up'=>-100, 'ut'=>50, 'cw'=>$fpdf_charwidths[$fontkey]);
+ }
+
+ if(isset($diff) AND (!empty($diff))) {
+ //Search existing encodings
+ $d=0;
+ $nb=count($this->diffs);
+ for($i=1;$i<=$nb;$i++) {
+ if($this->diffs[$i]==$diff) {
+ $d=$i;
+ break;
+ }
+ }
+ if($d==0) {
+ $d=$nb+1;
+ $this->diffs[$d]=$diff;
+ }
+ $this->fonts[$fontkey]['diff']=$d;
+ }
+ if(!empty($file)) {
+ if((strcasecmp($type,"TrueType") == 0) OR (strcasecmp($type,"TrueTypeUnicode") == 0)) {
+ $this->FontFiles[$file]=array('length1'=>$originalsize);
+ }
+ else {
+ $this->FontFiles[$file]=array('length1'=>$size1,'length2'=>$size2);
+ }
+ }
+ }
+
+ /**
+ * Sets the font used to print character strings. It is mandatory to call this method at least once before printing text or the resulting document would not be valid.
+ * The font can be either a standard one or a font added via the AddFont() method. Standard fonts use Windows encoding cp1252 (Western Europe).
+ * The method can be called before the first page is created and the font is retained from page to page.
+ If you just wish to change the current font size, it is simpler to call SetFontSize().
+ * Note: for the standard fonts, the font metric files must be accessible. There are three possibilities for this:<ul><li>They are in the current directory (the one where the running script lies)</li><li>They are in one of the directories defined by the include_path parameter</li><li>They are in the directory defined by the K_PATH_FONTS constant</li></ul><br />
+ * Example for the last case (note the trailing slash):<br />
+ * <pre>
+ * define('K_PATH_FONTS','/home/www/font/');
+ * require('tcpdf.php');
+ *
+ * //Times regular 12
+ * $pdf->SetFont('Times');
+ * //Arial bold 14
+ * $pdf->SetFont('Arial','B',14);
+ * //Removes bold
+ * $pdf->SetFont('');
+ * //Times bold, italic and underlined 14
+ * $pdf->SetFont('Times','BIU');
+ * </pre><br />
+ * If the file corresponding to the requested font is not found, the error "Could not include font metric file" is generated.
+ * @param string $family Family font. It can be either a name defined by AddFont() or one of the standard families (case insensitive):<ul><li>Courier (fixed-width)</li><li>Helvetica or Arial (synonymous; sans serif)</li><li>Times (serif)</li><li>Symbol (symbolic)</li><li>ZapfDingbats (symbolic)</li></ul>It is also possible to pass an empty string. In that case, the current family is retained.
+ * @param string $style Font style. Possible values are (case insensitive):<ul><li>empty string: regular</li><li>B: bold</li><li>I: italic</li><li>U: underline</li></ul>or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats
+ * @param float $size Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12
+ * @since 1.0
+ * @see AddFont(), SetFontSize(), Cell(), MultiCell(), Write()
+ */
+ public function SetFont($family, $style='', $size=0) {
+ // save previous values
+ $this->prevFontFamily = $this->FontFamily;
+ $this->prevFontStyle = $this->FontStyle;
+
+ //Select a font; size given in points
+ global $fpdf_charwidths;
+
+ $family=strtolower($family);
+ if($family=='') {
+ $family=$this->FontFamily;
+ }
+ if((!$this->isunicode) AND ($family == 'arial')) {
+ $family = 'helvetica';
+ }
+ elseif(($family=="symbol") OR ($family=="zapfdingbats")) {
+ $style='';
+ }
+ $style=strtoupper($style);
+
+ if(strpos($style,'U')!==false) {
+ $this->underline=true;
+ $style=str_replace('U','',$style);
+ }
+ else {
+ $this->underline=false;
+ }
+ if($style=='IB') {
+ $style='BI';
+ }
+ if($size==0) {
+ $size=$this->FontSizePt;
+ }
+
+ // try to add font (if not already added)
+ if($this->isunicode) {
+ $this->AddFont($family, $style);
+ }
+
+ //Test if font is already selected
+ if(($this->FontFamily == $family) AND ($this->FontStyle == $style) AND ($this->FontSizePt == $size)) {
+ return;
+ }
+
+ $fontkey = $family.$style;
+ //if(!isset($this->fonts[$fontkey]) AND isset($this->fonts[$family])) {
+ // $style='';
+ //}
+
+ //Test if used for the first time
+ if(!isset($this->fonts[$fontkey])) {
+ //Check if one of the standard fonts
+ if(isset($this->CoreFonts[$fontkey])) {
+ if(!isset($fpdf_charwidths[$fontkey])) {
+ //Load metric file
+ $file = $family;
+ if(($family!='symbol') AND ($family!='zapfdingbats')) {
+ $file .= strtolower($style);
+ }
+ if(!file_exists($this->_getfontpath().$file.'.php')) {
+ // try to load the basic file without styles
+ $file = $family;
+ $fontkey = $family;
+ }
+ include($this->_getfontpath().$file.'.php');
+ if (($this->isunicode AND !isset($ctg)) OR ((!$this->isunicode) AND (!isset($fpdf_charwidths[$fontkey]))) ) {
+ $this->Error("Could not include font metric file [".$fontkey."]: ".$this->_getfontpath().$file.".php");
+ }
+ }
+ $i = count($this->fonts) + 1;
+
+ if($this->isunicode) {
+ $this->fonts[$fontkey] = array('i'=>$i, 'type'=>$type, 'name'=>$name, 'desc'=>$desc, 'up'=>$up, 'ut'=>$ut, 'cw'=>$cw, 'enc'=>$enc, 'file'=>$file, 'ctg'=>$ctg);
+ $fpdf_charwidths[$fontkey] = $cw;
+ } else {
+ $this->fonts[$fontkey]=array('i'=>$i, 'type'=>'core', 'name'=>$this->CoreFonts[$fontkey], 'up'=>-100, 'ut'=>50, 'cw'=>$fpdf_charwidths[$fontkey]);
+ }
+ }
+ else {
+ $this->Error('Undefined font: '.$family.' '.$style);
+ }
+ }
+ //Select it
+ $this->FontFamily = $family;
+ $this->FontStyle = $style;
+ $this->FontSizePt = $size;
+ $this->FontSize = $size / $this->k;
+ $this->CurrentFont = &$this->fonts[$fontkey];
+ if($this->page>0) {
+ $this->_out(sprintf('BT /F%d %.2f Tf ET', $this->CurrentFont['i'], $this->FontSizePt));
+ }
+ }
+
+ /**
+ * Defines the size of the current font.
+ * @param float $size The size (in points)
+ * @since 1.0
+ * @see SetFont()
+ */
+ public function SetFontSize($size) {
+ //Set font size in points
+ if($this->FontSizePt==$size) {
+ return;
+ }
+ $this->FontSizePt = $size;
+ $this->FontSize = $size / $this->k;
+ if($this->page > 0) {
+ $this->_out(sprintf('BT /F%d %.2f Tf ET', $this->CurrentFont['i'], $this->FontSizePt));
+ }
+ }
+
+ /**
+ * Creates a new internal link and returns its identifier. An internal link is a clickable area which directs to another place within the document.<br />
+ * The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is defined with SetLink().
+ * @since 1.5
+ * @see Cell(), Write(), Image(), Link(), SetLink()
+ */
+ public function AddLink() {
+ //Create a new internal link
+ $n=count($this->links)+1;
+ $this->links[$n]=array(0,0);
+ return $n;
+ }
+
+ /**
+ * Defines the page and position a link points to
+ * @param int $link The link identifier returned by AddLink()
+ * @param float $y Ordinate of target position; -1 indicates the current position. The default value is 0 (top of page)
+ * @param int $page Number of target page; -1 indicates the current page. This is the default value
+ * @since 1.5
+ * @see AddLink()
+ */
+ public function SetLink($link, $y=0, $page=-1) {
+ //Set destination of internal link
+ if($y==-1) {
+ $y=$this->y;
+ }
+ if($page==-1) {
+ $page=$this->page;
+ }
+ $this->links[$link]=array($page,$y);
+ }
+
+ /**
+ * Puts a link on a rectangular area of the page. Text or image links are generally put via Cell(), Write() or Image(), but this method can be useful for instance to define a clickable area inside an image.
+ * @param float $x Abscissa of the upper-left corner of the rectangle (or upper-right for RTL languages)
+ * @param float $y Ordinate of the upper-left corner of the rectangle (or upper-right for RTL languages)
+ * @param float $w Width of the rectangle
+ * @param float $h Height of the rectangle
+ * @param mixed $link URL or identifier returned by AddLink()
+ * @since 1.5
+ * @see AddLink(), Cell(), Write(), Image()
+ */
+ public function Link($x, $y, $w, $h, $link) {
+ $this->PageLinks[$this->page][] = array($x * $this->k, $this->hPt - $y * $this->k, $w * $this->k, $h*$this->k, $link);
+ }
+
+ /**
+ * Prints a character string. The origin is on the left of the first charcter, on the baseline. This method allows to place a string precisely on the page, but it is usually easier to use Cell(), MultiCell() or Write() which are the standard methods to print text.
+ * @param float $x Abscissa of the origin
+ * @param float $y Ordinate of the origin
+ * @param string $txt String to print
+ * @since 1.0
+ * @see SetFont(), SetTextColor(), Cell(), MultiCell(), Write()
+ */
+ public function Text($x, $y, $txt) {
+ //Output a string
+ if($this->rtl) {
+ $xr = $this->w - $x - $this->GetStringWidth($txt);
+ } else {
+ $xr = $x;
+ }
+ $s = sprintf('BT %.2f %.2f Td (%s) Tj ET', $xr * $this->k, ($this->h-$y) * $this->k, $this->_escapetext($txt));
+ if($this->underline AND ($txt!='')) {
+ $s .= ' '.$this->_dounderline($xr, $y, $txt);
+ }
+ if($this->ColorFlag) {
+ $s='q '.$this->TextColor.' '.$s.' Q';
+ }
+ $this->_out($s);
+ }
+
+ /**
+ * Whenever a page break condition is met, the method is called, and the break is issued or not depending on the returned value. The default implementation returns a value according to the mode selected by SetAutoPageBreak().<br />
+ * This method is called automatically and should not be called directly by the application.<br />
+ * <b>Example:</b><br />
+ * The method is overriden in an inherited class in order to obtain a 3 column layout:<br />
+ * <pre>
+ * class PDF extends TCPDF {
+ * var $col=0;
+ *
+ * public function SetCol($col) {
+ * //Move position to a column
+ * $this->col=$col;
+ * $x=10+$col*65;
+ * $this->SetLeftMargin($x);
+ * $this->SetX($x);
+ * }
+ *
+ * public function AcceptPageBreak() {
+ * if($this->col<2) {
+ * //Go to next column
+ * $this->SetCol($this->col+1);
+ * $this->SetY(10);
+ * return false;
+ * }
+ * else {
+ * //Go back to first column and issue page break
+ * $this->SetCol(0);
+ * return true;
+ * }
+ * }
+ * }
+ *
+ * $pdf=new PDF();
+ * $pdf->Open();
+ * $pdf->AddPage();
+ * $pdf->SetFont('Arial','',12);
+ * for($i=1;$i<=300;$i++) {
+ * $pdf->Cell(0,5,"Line $i",0,1);
+ * }
+ * $pdf->Output();
+ * </pre>
+ * @return boolean
+ * @since 1.4
+ * @see SetAutoPageBreak()
+ */
+ public function AcceptPageBreak() {
+ //Accept automatic page break or not
+ return $this->AutoPageBreak;
+ }
+
+ /**
+ * Prints a cell (rectangular area) with optional borders, background color and character string. The upper-left corner of the cell corresponds to the current position. The text can be aligned or centered. After the call, the current position moves to the right or to the next line. It is possible to put a link on the text.<br />
+ * If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting.
+ * @param float $w Cell width. If 0, the cell extends up to the right margin.
+ * @param float $h Cell height. Default value: 0.
+ * @param string $txt String to print. Default value: empty string.
+ * @param mixed $border Indicates if borders must be drawn around the cell. The value can be either a number:<ul><li>0: no border (default)</li><li>1: frame</li></ul>or a string containing some or all of the following characters (in any order):<ul><li>L: left</li><li>T: top</li><li>R: right</li><li>B: bottom</li></ul>
+ * @param int $ln Indicates where the current position should go after the call. Possible values are:<ul><li>0: to the right (or left for RTL languages)</li><li>1: to the beginning of the next line</li><li>2: below</li></ul>
+ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0.
+ * @param string $align Allows to center or align the text. Possible values are:<ul><li>L or empty string: left align (default value)</li><li>C: center</li><li>R: right align</li><li>J: justify</li></ul>
+ * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ * @param mixed $link URL or identifier returned by AddLink().
+ * @param int $stretch stretch carachter mode: <ul><li>0 = disabled</li><li>1 = horizontal scaling only if necessary</li><li>2 = forced horizontal scaling</li><li>3 = character spacing only if necessary</li><li>4 = forced character spacing</li></ul>
+ * @since 1.0
+ * @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), AddLink(), Ln(), MultiCell(), Write(), SetAutoPageBreak()
+ */
+ public function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0) {
+ //Output a cell
+ $k=$this->k;
+ if(($this->y + $h) > $this->PageBreakTrigger AND empty($this->InFooter) AND $this->AcceptPageBreak()) {
+ //Automatic page break
+ $x = $this->x;
+ $ws = $this->ws;
+ if($ws > 0) {
+ $this->ws = 0;
+ $this->_out('0 Tw');
+ }
+ $this->AddPage($this->CurOrientation);
+ $this->x = $x;
+ if($ws > 0) {
+ $this->ws = $ws;
+ $this->_out(sprintf('%.3f Tw',$ws * $k));
+ }
+ }
+ if($w == 0) {
+ if ($this->rtl) {
+ $w = $this->x - $this->lMargin;
+ } else {
+ $w = $this->w - $this->rMargin - $this->x;
+ }
+ }
+ $s = '';
+ if(($fill == 1) OR ($border == 1)) {
+ if($fill == 1) {
+ $op = ($border == 1) ? 'B' : 'f';
+ } else {
+ $op = 'S';
+ }
+ if ($this->rtl) {
+ $xk = ($this->x - $w) * $k;
+ } else {
+ $xk = $this->x * $k;
+ }
+ $s .= sprintf('%.2f %.2f %.2f %.2f re %s ', $xk, ($this->h - $this->y) * $k, $w * $k, -$h * $k, $op);
+ }
+ if(is_string($border)) {
+ $x=$this->x;
+ $y=$this->y;
+ if(strpos($border,'L')!==false) {
+ if ($this->rtl) {
+ $xk = ($x - $w) * $k;
+ } else {
+ $xk = $x * $k;
+ }
+ $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-$y)*$k,$xk,($this->h-($y+$h))*$k);
+ }
+ if(strpos($border,'T')!==false) {
+ if ($this->rtl) {
+ $xk = ($x - $w) * $k;
+ $xwk = $x * $k;
+ } else {
+ $xk = $x * $k;
+ $xwk = ($x + $w) * $k;
+ }
+ $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-$y)*$k,$xwk,($this->h-$y)*$k);
+ }
+ if(strpos($border,'R')!==false) {
+ if ($this->rtl) {
+ $xk = $x * $k;
+ } else {
+ $xk = ($x + $w) * $k;
+ }
+ $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-$y)*$k,$xk,($this->h-($y+$h))*$k);
+ }
+ if(strpos($border,'B')!==false) {
+ if ($this->rtl) {
+ $xk = ($x - $w) * $k;
+ $xwk = $x * $k;
+ } else {
+ $xk = $x * $k;
+ $xwk = ($x + $w) * $k;
+ }
+ $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$xk,($this->h-($y+$h))*$k,$xwk,($this->h-($y+$h))*$k);
+ }
+ }
+ if($txt != '') {
+ // text lenght
+ $width = $this->GetStringWidth($txt);
+ // ratio between cell lenght and text lenght
+ $ratio = ($w - (2 * $this->cMargin)) / $width;
+
+ // stretch text if requested
+ if (($stretch > 0) AND (($ratio < 1) OR (($ratio > 1) AND (($stretch % 2) == 0)))) {
+ if ($stretch > 2) {
+ // spacing
+ //Calculate character spacing in points
+ $char_space = ($w - (2 * $this->cMargin) - $width) / max($this->GetNumChars($s)-1,1) * $this->k;
+ //Set character spacing
+ $this->_out(sprintf('BT %.2f Tc ET', $char_space));
+ } else {
+ // scaling
+ //Calculate horizontal scaling
+ $horiz_scale = $ratio*100.0;
+ //Set horizontal scaling
+ $this->_out(sprintf('BT %.2f Tz ET', $horiz_scale));
+ }
+ $align = '';
+ $width = $w - (2 * $this->cMargin);
+ } else {
+ $stretch == 0;
+ }
+
+ if($align == 'L') {
+ if ($this->rtl) {
+ $dx = $w - $this->cMargin - $width;
+ } else {
+ $dx = $this->cMargin;
+ }
+ } elseif($align == 'R') {
+ if ($this->rtl) {
+ $dx = $this->cMargin;
+ } else {
+ $dx = $w - $this->cMargin - $width;
+ }
+ } elseif($align=='C') {
+ $dx = ($w - $width)/2;
+ } elseif($align=='J') {
+ if ($this->rtl) {
+ $dx = $w - $this->cMargin - $width;
+ } else {
+ $dx = $this->cMargin;
+ }
+ } else {
+ $dx = $this->cMargin;
+ }
+ if($this->ColorFlag) {
+ $s .= 'q '.$this->TextColor.' ';
+ }
+ $txt2 = $this->_escapetext($txt);
+ if ($this->rtl) {
+ $xdk = ($this->x - $dx - $width) * $k;
+ } else {
+ $xdk = ($this->x + $dx) * $k;
+ }
+ // 2008-02-16 Jacek Czekaj - multibyte justification
+ if ($align == 'J') {
+ // count number of spaces
+ $ns = substr_count($txt, ' ');
+ // get string width without spaces
+ $width = $this->GetStringWidth(str_replace(' ', '', $txt));
+ // set word position to be used with TJ operator
+ $txt2 = str_replace(chr(0).' ', ') '. -2830*($w-$width-2)/($ns?$ns:1)/$this->FontSize/$this->k . ' (', $txt2);
+ }
+ $s.=sprintf('BT %.2f %.2f Td [(%s)] TJ ET', $xdk, ($this->h - ($this->y + 0.5 * $h + 0.3 * $this->FontSize)) * $k, $txt2);
+ //$s.=sprintf('BT %.2f %.2f Td (%s) Tj ET', $xdk, ($this->h - ($this->y + 0.5 * $h + 0.3 * $this->FontSize)) * $k, $txt2);
+ if($this->underline) {
+ if ($this->rtl) {
+ $xdx = $this->x - $dx - $width;
+ } else {
+ $xdx = $this->x + $dx;
+ }
+ $s.=' '.$this->_dounderline($xdx, $this->y + 0.5 * $h + 0.3 * $this->FontSize, $txt);
+ }
+ if($this->ColorFlag) {
+ $s.=' Q';
+ }
+ if($link) {
+ if ($this->rtl) {
+ $xdx = $this->x - $dx - $width;
+ } else {
+ $xdx = $this->x + $dx;
+ }
+ $this->Link($xdx, $this->y + 0.5 * $h - 0.5 * $this->FontSize, $width, $this->FontSize, $link);
+ }
+ }
+
+ // output cell
+ if($s) {
+ // output cell
+ $this->_out($s);
+ // reset text stretching
+ if($stretch > 2) {
+ //Reset character horizontal spacing
+ $this->_out('BT 0 Tc ET');
+ } elseif($stretch > 0) {
+ //Reset character horizontal scaling
+ $this->_out('BT 100 Tz ET');
+ }
+ }
+
+ $this->lasth = $h;
+ if($ln>0) {
+ //Go to the beginning of the next line
+ $this->y += $h;
+ if($ln == 1) {
+ if ($this->rtl) {
+ $this->x = $this->w - $this->rMargin;
+ } else {
+ $this->x = $this->lMargin;
+ }
+ }
+ } else {
+ // go left or right by case
+ if ($this->rtl) {
+ $this->x -= $w;
+ } else {
+ $this->x += $w;
+ }
+ }
+ }
+
+ /**
+ * This method allows printing text with line breaks. They can be automatic (as soon as the text reaches the right border of the cell) or explicit (via the \n character). As many cells as necessary are output, one below the other.<br />
+ * Text can be aligned, centered or justified. The cell block can be framed and the background painted.
+ * @param float $w Width of cells. If 0, they extend up to the right margin of the page.
+ * @param float $h Height of cells.
+ * @param string $txt String to print
+ * @param mixed $border Indicates if borders must be drawn around the cell block. The value can be either a number:<ul><li>0: no border (default)</li><li>1: frame</li></ul>or a string containing some or all of the following characters (in any order):<ul><li>L: left</li><li>T: top</li><li>R: right</li><li>B: bottom</li></ul>
+ * @param string $align Allows to center or align the text. Possible values are:<ul><li>L or empty string: left align</li><li>C: center</li><li>R: right align</li><li>J: justification (default value)</li></ul>
+ * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ * @param int $ln Indicates where the current position should go after the call. Possible values are:<ul><li>0: to the right</li><li>1: to the beginning of the next line [DEFAULT]</li><li>2: below</li></ul>
+ * @return int number of cells (number of lines)
+ * @since 1.3
+ * @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), Cell(), Write(), SetAutoPageBreak()
+ */
+ public function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1) {
+
+ // save current position
+ $prevx = $this->x;
+ $prevy = $this->y;
+
+ // get current page number
+ $startpage = $this->page;
+
+ // calculate remaining vertical space on first page ($startpage)
+ $restspace = $this->getPageHeight() - $this->GetY() - $this->getBreakMargin();
+
+ //Output text with automatic or explicit line breaks
+ $cw = &$this->CurrentFont['cw'];
+
+ if($w == 0) {
+ if ($this->rtl) {
+ $w = $this->x - $this->lMargin;
+ } else {
+ $w = $this->w - $this->rMargin - $this->x;
+ }
+ }
+
+ $wmax = ($w - 2 * $this->cMargin);
+
+ $s = str_replace("\r", '', $txt); // remove carriage returns
+ $nb = strlen($s);
+
+ $sep=-1;
+ $i=0;
+ $j=0;
+ $l=0;
+ $ns=0;
+ $nl=1;
+ while($i < $nb) {
+ //Get next character
+ $c = $s{$i};
+ if(preg_match("/[\n]/u", $c)) {
+ //Explicit line break
+ if($this->ws > 0) {
+ $this->ws = 0;
+ $this->_out('0 Tw');
+ }
+ $this->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, '');
+ $i++;
+ $sep=-1;
+ $j=$i;
+ $l=0;
+ $ns=0;
+ $nl++;
+ continue;
+ }
+ if(preg_match("/[ ]/u", $c)) {
+ $sep = $i;
+ $ls = $l;
+ $ns++;
+ }
+
+ $l = $this->GetStringWidth(substr($s, $j, $i-$j));
+
+ if($l > $wmax) {
+ //Automatic line break
+ if($sep == -1) {
+ if($i == $j) {
+ $i++;
+ }
+ if($this->ws > 0) {
+ $this->ws = 0;
+ $this->_out('0 Tw');
+ }
+ $this->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, '');
+ }
+ else {
+ if($align=='J') {
+ $this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0;
+ $this->_out(sprintf('%.3f Tw', $this->ws * $this->k));
+ }
+ $this->Cell($w, $h, substr($s, $j, $sep-$j), 0, 2, $align, $fill, '');
+ $i = $sep + 1;
+ }
+ $sep=-1;
+ $j=$i;
+ $l=0;
+ $ns=0;
+ $nl++;
+ }
+ else {
+ $i++;
+ }
+ }
+ //Last chunk
+ if($this->ws>0) {
+ $this->ws=0;
+ $this->_out('0 Tw');
+ }
+ if($align == "J") {
+ $align = "L";
+ }
+ $this->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, '');
+
+ // Get end-of-text Y position
+ $currentY = $this->GetY();
+ // get latest page number
+ $endpage = $this->page;
+
+ if (!empty($border)) {
+ // check if a new page has been created
+ if ($endpage > $startpage) {
+ // design borders around HTML cells.
+ for ($page=$startpage; $page<=$endpage; $page++) {
+ $this->page = $page;
+ if ($page==$startpage) {
+ $this->y = $this->getPageHeight() - $restspace - $this->getBreakMargin();
+ $h = $restspace - 1;
+ } elseif ($page==$endpage) {
+ $this->y = $this->tMargin; // put cursor at the beginning of text
+ $h = $currentY - $this->tMargin;
+ } else {
+ $this->y = $this->tMargin; // put cursor at the beginning of text
+ $h = $this->getPageHeight() - $this->tMargin - $this->getBreakMargin();
+ }
+ $this->Cell($w, $h, "", $border, 1, '', 0);
+ }
+ } else {
+ $h = max($h, ($currentY - $prevy));
+ $this->y = $prevy; // put cursor at the beginning of text
+ // design a cell around the text
+ $this->Cell($w, $h, "", $border, 1, '', 0);
+ }
+ }
+
+ // move cursor to specified position
+ if($ln>0) {
+ //Go to the beginning of the next line
+ $this->SetY($currentY);
+ if($ln == 2) {
+ $this->SetX($prevx + $w);
+ }
+ } else {
+ // go left or right by case
+ $this->page = $startpage;
+ $this->y = $prevy;
+ $this->SetX($prevx + $w);
+ }
+
+ return $nl;
+ }
+
+ /**
+ * This method prints text from the current position. When the right margin is reached (or the \n character is met) a line break occurs and text continues from the left margin. Upon method exit, the current position is left just at the end of the text. It is possible to put a link on the text.<br />
+ * <b>Example:</b><br />
+ * <pre>
+ * //Begin with regular font
+ * $pdf->SetFont('Arial','',14);
+ * $pdf->Write(5,'Visit ');
+ * //Then put a blue underlined link
+ * $pdf->SetTextColor(0,0,255);
+ * $pdf->SetFont('','U');
+ * $pdf->Write(5,'www.tecnick.com','http://www.tecnick.com');
+ * </pre>
+ * @param float $h Line height
+ * @param string $txt String to print
+ * @param mixed $link URL or identifier returned by AddLink()
+ * @param int $fill Indicates if the background must be painted (1) or transparent (0). Default value: 0.
+ * @since 1.5
+ * @see SetFont(), SetTextColor(), AddLink(), MultiCell(), SetAutoPageBreak()
+ */
+ public function Write($h, $txt, $link='', $fill=0) {
+ //Output text in flowing mode
+ $cw = &$this->CurrentFont['cw'];
+ // calculating remaining line width ($w)
+ if ($this->rtl) {
+ $w = $this->x - $this->lMargin;
+ } else {
+ $w = $this->w - $this->rMargin - $this->x;
+ }
+ $wmax = $w - 2 * $this->cMargin;
+ $s = str_replace("\r", '', $txt);
+ $nb = strlen($s);
+ // handle single space character
+ if(($nb==1) AND preg_match("/[ ]/u", $s)) {
+ if ($this->rtl) {
+ $this->x -= $this->GetStringWidth($s);
+ } else {
+ $this->x += $this->GetStringWidth($s);
+ }
+ return;
+ }
+ $sep=-1;
+ $i=0;
+ $j=0;
+ $l=0;
+ $nl=1;
+ while($i<$nb) {
+ //Get next character
+ $c=$s{$i};
+ if(preg_match("/[\n]/u", $c)) {
+ //Explicit line break
+ $this->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, '', $fill, $link);
+ $i++;
+ $sep = -1;
+ $j = $i;
+ $l = 0;
+ if($nl == 1) {
+ if ($this->rtl) {
+ $this->x = $this->w - $this->rMargin;
+ $w = $this->x - $this->lMargin;
+ }
+ else {
+ $this->x = $this->lMargin;
+ $w = $this->w - $this->rMargin - $this->x;
+ }
+ $wmax = ($w - 2 * $this->cMargin);
+ }
+ $nl++;
+ continue;
+ }
+ if(preg_match("/[ ]/u", $c)) {
+ $sep= $i;
+ }
+ $l = $this->GetStringWidth(substr($s, $j, $i-$j));
+ if($l > $wmax) {
+ //Automatic line break (word wrapping)
+ if($sep == -1) {
+ if((!$this->rtl) AND ($this->x > $this->lMargin)) {
+ //Move to next line
+ $this->x = $this->lMargin;
+ $this->y += $h;
+ $w=$this->w - $this->rMargin - $this->x;
+ $wmax=($w - 2 * $this->cMargin);
+ $i++;
+ $nl++;
+ continue;
+ }
+ if($this->rtl AND ($this->x < $this->rMargin)) {
+ //Move to next line
+ $this->x = $this->w - $this->rMargin;
+ $this->y += $h;
+ $w=$this->x - $this->lMargin;
+ $wmax=($w - 2 * $this->cMargin);
+ $i++;
+ $nl++;
+ continue;
+ }
+ if($i==$j) {
+ $i++;
+ }
+ $this->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, '', $fill, $link);
+ }
+ else {
+ $this->Cell($w, $h, substr($s, $j, $sep-$j), 0, 2, '', $fill, $link);
+ $i=$sep+1;
+ }
+ $sep = -1;
+ $j = $i;
+ $l = 0;
+ if($nl==1) {
+ if ($this->rtl) {
+ $this->x = $this->w - $this->rMargin;
+ $w = $this->x - $this->lMargin;
+ } else {
+ $this->x = $this->lMargin;
+ $w = $this->w - $this->rMargin - $this->x;
+ }
+ $wmax = ($w - 2 * $this->cMargin);
+ }
+ $nl++;
+ }
+ else {
+ $i++;
+ }
+ }
+
+ //Last chunk
+ if($i!=$j) {
+ $this->Cell($this->GetStringWidth(substr($s, $j)) + 2 * $this->cMargin, $h, substr($s, $j), 0, 0, '', $fill, $link);
+ }
+ }
+
+ /**
+ * Puts an image in the page. The upper-left corner must be given. The dimensions can be specified in different ways:<ul><li>explicit width and height (expressed in user unit)</li><li>one explicit dimension, the other being calculated automatically in order to keep the original proportions</li><li>no explicit dimension, in which case the image is put at 72 dpi</li></ul>
+ * Supported formats are JPEG and PNG.
+ * For JPEG, all flavors are allowed:<ul><li>gray scales</li><li>true colors (24 bits)</li><li>CMYK (32 bits)</li></ul>
+ * For PNG, are allowed:<ul><li>gray scales on at most 8 bits (256 levels)</li><li>indexed colors</li><li>true colors (24 bits)</li></ul>
+ * If a transparent color is defined, it will be taken into account (but will be only interpreted by Acrobat 4 and above).<br />
+ * The format can be specified explicitly or inferred from the file extension.<br />
+ * It is possible to put a link on the image.<br />
+ * Remark: if an image is used several times, only one copy will be embedded in the file.<br />
+ * @param string $file Name of the file containing the image.
+ * @param float $x Abscissa of the upper-left corner.
+ * @param float $y Ordinate of the upper-left corner.
+ * @param float $w Width of the image in the page. If not specified or equal to zero, it is automatically calculated.
+ * @param float $h Height of the image in the page. If not specified or equal to zero, it is automatically calculated.
+ * @param string $type Image format. Possible values are (case insensitive): JPG, JPEG, PNG. If not specified, the type is inferred from the file extension.
+ * @param mixed $link URL or identifier returned by AddLink().
+ * @param string $align Indicates the alignment of the pointer next to image insertion relative to image height. The value can be:<ul><li>T: top-right for LTR or top-left for RTL</li><li>M: middle-right for LTR or middle-left for RTL</li><li>B: bottom-right for LTR or bottom-left for RTL</li><li>N: next line</li></ul>
+ * @since 1.1
+ * @see AddLink()
+ */
+ public function Image($file, $x, $y, $w=0, $h=0, $type='', $link='', $align='') {
+ //Put an image on the page
+ if(!isset($this->images[$file])) {
+ //First use of image, get info
+ if($type == '') {
+ $pos = strrpos($file,'.');
+ if(empty($pos)) {
+ $this->Error('Image file has no extension and no type was specified: '.$file);
+ }
+ $type = substr($file, $pos+1);
+ }
+ $type = strtolower($type);
+ $mqr = get_magic_quotes_runtime();
+ set_magic_quotes_runtime(0);
+ if($type == 'jpg' or $type == 'jpeg') {
+ $info=$this->_parsejpg($file);
+ } elseif($type == 'gif') {
+ $info=$this->_parsegif($file);
+ } elseif($type == 'png') {
+ $info=$this->_parsepng($file);
+ }else {
+ //Allow for additional formats
+ $mtd='_parse'.$type;
+ if(!method_exists($this,$mtd)) {
+ $this->Error('Unsupported image type: '.$type);
+ }
+ $info=$this->$mtd($file);
+ }
+ if($info === false) {
+ //If false, we cannot process image
+ return;
+ }
+ set_magic_quotes_runtime($mqr);
+ $info['i']=count($this->images)+1;
+ $this->images[$file]=$info;
+ }
+ else {
+ $info=$this->images[$file];
+ }
+ //Automatic width and height calculation if needed
+ if(($w == 0) and ($h == 0)) {
+ //Put image at 72 dpi
+ // 2004-06-14 :: Nicola Asuni, scale factor where added
+ $w = $info['w'] / ($this->imgscale * $this->k);
+ $h = $info['h'] / ($this->imgscale * $this->k);
+ }
+ if($w == 0) {
+ $w = $h * $info['w'] / $info['h'];
+ }
+ if($h == 0) {
+ $h = $w * $info['h'] / $info['w'];
+ }
+
+ // 2007-10-19 Warren Sherliker
+ // Check whether we need a new page first as this does not fit
+ // Copied from Cell()
+ if((($this->y + $h) > $this->PageBreakTrigger) AND empty($this->InFooter) AND $this->AcceptPageBreak()) {
+ // Automatic page break
+ $this->AddPage($this->CurOrientation);
+ // Reset coordinates to top fo next page
+ $x = $this->GetX();
+ $y = $this->GetY();
+ }
+ // 2007-10-19 Warren Sherliker: End Edit
+
+ // set bottomcoordinates
+ $this->img_rb_y = $y + $h;
+ if ($this->rtl) {
+ $ximg = ($this->w - $x -$w);
+ // set left side coordinate
+ $this->img_rb_x = $ximg;
+ } else {
+ $ximg = $x;
+ // set right side coordinate
+ $this->img_rb_x = $ximg + $w;
+ }
+ $xkimg = $ximg * $this->k;
+ $this->_out(sprintf('q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q', $w*$this->k, $h*$this->k, $xkimg, ($this->h-($y+$h))*$this->k, $info['i']));
+
+ if($link) {
+ $this->Link($ximg, $y, $w, $h, $link);
+ }
+
+ // set pointer to align the successive text/objects
+ switch($align) {
+ case 'T':{
+ $this->y = $y;
+ $this->x = $this->img_rb_x;
+ break;
+ }
+ case 'M':{
+ $this->y = $y + round($h/2);
+ $this->x = $this->img_rb_x;
+ break;
+ }
+ case 'B':{
+ $this->y = $this->img_rb_y;
+ $this->x = $this->img_rb_x;
+ break;
+ }
+ case 'N':{
+ $this->SetY($this->img_rb_y);
+ break;
+ }
+ default:{
+ break;
+ }
+ }
+ }
+
+
+ /**
+ * Performs a line break. The current abscissa goes back to the left margin and the ordinate increases by the amount passed in parameter.
+ * @param float $h The height of the break. By default, the value equals the height of the last printed cell.
+ * @since 1.0
+ * @see Cell()
+ */
+ public function Ln($h='') {
+ //Line feed; default value is last cell height
+ if ($this->rtl) {
+ $this->x = $this->w - $this->rMargin;
+ } else {
+ $this->x = $this->lMargin;
+ }
+ if(is_string($h)) {
+ $this->y += $this->lasth;
+ } else {
+ $this->y += $h;
+ }
+ }
+
+ /**
+ * Returns the relative X value of current position.
+ * The value is relative to the left border for LTR languages and to the right border for RTL languages.
+ * @return float
+ * @since 1.2
+ * @see SetX(), GetY(), SetY()
+ */
+ public function GetX() {
+ //Get x position
+ if ($this->rtl) {
+ return ($this->w - $this->x);
+ } else {
+ return $this->x;
+ }
+ }
+
+ /**
+ * Returns the absolute X value of current position.
+ * @return float
+ * @since 1.2
+ * @see SetX(), GetY(), SetY()
+ */
+ public function GetAbsX() {
+ return $this->x;
+ }
+
+ /**
+ * Returns the ordinate of the current position.
+ * @return float
+ * @since 1.0
+ * @see SetY(), GetX(), SetX()
+ */
+ public function GetY() {
+ //Get y position
+ return $this->y;
+ }
+
+ /**
+ * Defines the abscissa of the current position.
+ * If the passed value is negative, it is relative to the right of the page (or left if language is RTL).
+ * @param float $x The value of the abscissa.
+ * @since 1.2
+ * @see GetX(), GetY(), SetY(), SetXY()
+ */
+ public function SetX($x) {
+ //Set x position
+ if ($this->rtl) {
+ if($x >= 0) {
+ $this->x = $this->w - $x;
+ } else {
+ $this->x = abs($x);
+ }
+ } else {
+ if($x >= 0) {
+ $this->x = $x;
+ } else {
+ $this->x = $this->w + $x;
+ }
+ }
+ }
+
+ /**
+ * Moves the current abscissa back to the left margin and sets the ordinate.
+ * If the passed value is negative, it is relative to the bottom of the page.
+ * @param float $y The value of the ordinate.
+ * @since 1.0
+ * @see GetX(), GetY(), SetY(), SetXY()
+ */
+ public function SetY($y) {
+ //Set y position and reset x
+ if ($this->rtl) {
+ $this->x = $this->w - $this->rMargin;
+ } else {
+ $this->x = $this->lMargin;
+ }
+ if($y >= 0) {
+ $this->y = $y;
+ } else {
+ $this->y = $this->h + $y;
+ }
+ }
+
+
+ /**
+ * Defines the abscissa and ordinate of the current position. If the passed values are negative, they are relative respectively to the right and bottom of the page.
+ * @param float $x The value of the abscissa
+ * @param float $y The value of the ordinate
+ * @since 1.2
+ * @see SetX(), SetY()
+ */
+ public function SetXY($x, $y) {
+ //Set x and y positions
+ $this->SetY($y);
+ $this->SetX($x);
+ }
+
+ /**
+ * Send the document to a given destination: string, local file or browser. In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.<br />
+ * The method first calls Close() if necessary to terminate the document.
+ * @param string $name The name of the file. If not given, the document will be sent to the browser (destination I) with the name doc.pdf.
+ * @param string $dest Destination where to send the document. It can take one of the following values:<ul><li>I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.</li><li>D: send to the browser and force a file download with the name given by name.</li><li>F: save to a local file with the name given by name.</li><li>S: return the document as a string. name is ignored.</li></ul>If the parameter is not specified but a name is given, destination is F. If no parameter is specified at all, destination is I.<br />Note: for compatibility with previous versions, a boolean value is also accepted (false for F and true for D).
+ * @since 1.0
+ * @see Close()
+ */
+ public function Output($name='',$dest='') {
+ //Output PDF to some destination
+ //Finish document if necessary
+ if($this->state < 3) {
+ $this->Close();
+ }
+ //Normalize parameters
+ if(is_bool($dest)) {
+ $dest=$dest ? 'D' : 'F';
+ }
+ $dest=strtoupper($dest);
+ if($dest=='') {
+ if($name=='') {
+ $name='doc.pdf';
+ $dest='I';
+ } else {
+ $dest='F';
+ }
+ }
+ switch($dest) {
+ case 'I': {
+ //Send to standard output
+ if(ob_get_contents()) {
+ $this->Error('Some data has already been output, can\'t send PDF file');
+ }
+ if(php_sapi_name()!='cli') {
+ //We send to a browser
+ header('Content-Type: application/pdf');
+ if(headers_sent()) {
+ $this->Error('Some data has already been output to browser, can\'t send PDF file');
+ }
+ header('Content-Length: '.strlen($this->buffer));
+ header('Content-disposition: inline; filename="'.$name.'"');
+ }
+ echo $this->buffer;
+ break;
+ }
+ case 'D': {
+ //Download file
+ if(ob_get_contents()) {
+ $this->Error('Some data has already been output, can\'t send PDF file');
+ }
+ if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')) {
+ header('Content-Type: application/force-download');
+ } else {
+ header('Content-Type: application/octet-stream');
+ }
+ if(headers_sent()) {
+ $this->Error('Some data has already been output to browser, can\'t send PDF file');
+ }
+ header('Content-Length: '.strlen($this->buffer));
+ header('Content-disposition: attachment; filename="'.$name.'"');
+ echo $this->buffer;
+ break;
+ }
+ case 'F': {
+ //Save to local file
+ $f=fopen($name,'wb');
+ if(!$f) {
+ $this->Error('Unable to create output file: '.$name);
+ }
+ fwrite($f,$this->buffer,strlen($this->buffer));
+ fclose($f);
+ break;
+ }
+ case 'S': {
+ //Return as a string
+ return $this->buffer;
+ }
+ default: {
+ $this->Error('Incorrect output destination: '.$dest);
+ }
+ }
+ return '';
+ }
+
+ // Protected methods
+
+ /**
+ * Check for locale-related bug
+ * @access protected
+ */
+ protected function _dochecks() {
+ //Check for locale-related bug
+ if(1.1==1) {
+ $this->Error('Don\'t alter the locale before including class file');
+ }
+ //Check for decimal separator
+ if(sprintf('%.1f',1.0)!='1.0') {
+ setlocale(LC_NUMERIC,'C');
+ }
+ }
+
+ /**
+ * Return fonts path
+ * @access protected
+ */
+ protected function _getfontpath() {
+ if(!defined('K_PATH_FONTS') AND is_dir(dirname(__FILE__).'/font')) {
+ define('K_PATH_FONTS', dirname(__FILE__).'/font/');
+ }
+ return defined('K_PATH_FONTS') ? K_PATH_FONTS : '';
+ }
+
+ /**
+ * Start document
+ * @access protected
+ */
+ protected function _begindoc() {
+ //Start document
+ $this->state=1;
+ $this->_out('%PDF-'.$this->PDFVersion);
+ }
+
+ /**
+ * _putpages
+ * @access protected
+ */
+ protected function _putpages() {
+ $nb = $this->page;
+ if(!empty($this->AliasNbPages)) {
+ $nbstr = $this->UTF8ToUTF16BE($nb, false);
+ //Replace number of pages
+ for($n=1;$n<=$nb;$n++) {
+ $this->pages[$n]=str_replace($this->AliasNbPages, $nbstr, $this->pages[$n]);
+ }
+ }
+ if($this->DefOrientation=='P') {
+ $wPt=$this->fwPt;
+ $hPt=$this->fhPt;
+ }
+ else {
+ $wPt=$this->fhPt;
+ $hPt=$this->fwPt;
+ }
+ $filter=($this->compress) ? '/Filter /FlateDecode ' : '';
+ for($n=1;$n<=$nb;$n++) {
+ //Page
+ $this->_newobj();
+ $this->_out('<</Type /Page');
+ $this->_out('/Parent 1 0 R');
+ if(isset($this->OrientationChanges[$n])) {
+ $this->_out(sprintf('/MediaBox [0 0 %.2f %.2f]',$hPt,$wPt));
+ }
+ $this->_out('/Resources 2 0 R');
+ if(isset($this->PageLinks[$n])) {
+ //Links
+ $annots='/Annots [';
+ foreach($this->PageLinks[$n] as $pl) {
+ $rect=sprintf('%.2f %.2f %.2f %.2f',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);
+ $annots.='<</Type /Annot /Subtype /Link /Rect ['.$rect.'] /Border [0 0 0] ';
+ if(is_string($pl[4])) {
+ $annots.='/A <</S /URI /URI '.$this->_uristring($pl[4]).'>>>>';
+ }
+ else {
+ $l=$this->links[$pl[4]];
+ $h=isset($this->OrientationChanges[$l[0]]) ? $wPt : $hPt;
+ $annots.=sprintf('/Dest [%d 0 R /XYZ 0 %.2f null]>>',1+2*$l[0],$h-$l[1]*$this->k);
+ }
+ }
+ $this->_out($annots.']');
+ }
+ $this->_out('/Contents '.($this->n+1).' 0 R>>');
+ $this->_out('endobj');
+ //Page content
+ $p=($this->compress) ? gzcompress($this->pages[$n]) : $this->pages[$n];
+ $this->_newobj();
+ $this->_out('<<'.$filter.'/Length '.strlen($p).'>>');
+ $this->_putstream($p);
+ $this->_out('endobj');
+ }
+ //Pages root
+ $this->offsets[1]=strlen($this->buffer);
+ $this->_out('1 0 obj');
+ $this->_out('<</Type /Pages');
+ $kids='/Kids [';
+ for($i=0;$i<$nb;$i++) {
+ $kids.=(3+2*$i).' 0 R ';
+ }
+ $this->_out($kids.']');
+ $this->_out('/Count '.$nb);
+ $this->_out(sprintf('/MediaBox [0 0 %.2f %.2f]',$wPt,$hPt));
+ $this->_out('>>');
+ $this->_out('endobj');
+ }
+
+ /**
+ * Adds fonts
+ * _putfonts
+ * @access protected
+ */
+ protected function _putfonts() {
+ $nf=$this->n;
+ foreach($this->diffs as $diff) {
+ //Encodings
+ $this->_newobj();
+ $this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.']>>');
+ $this->_out('endobj');
+ }
+ $mqr=get_magic_quotes_runtime();
+ set_magic_quotes_runtime(0);
+ foreach($this->FontFiles as $file=>$info) {
+ //Font file embedding
+ $this->_newobj();
+ $this->FontFiles[$file]['n']=$this->n;
+ $font='';
+ $f=fopen($this->_getfontpath().strtolower($file),'rb',1);
+ if(!$f) {
+ $this->Error('Font file not found: '.$file);
+ }
+ while(!feof($f)) {
+ $font .= fread($f, 8192);
+ }
+ fclose($f);
+ $compressed=(substr($file,-2)=='.z');
+ if(!$compressed && isset($info['length2'])) {
+ $header=(ord($font{0})==128);
+ if($header) {
+ //Strip first binary header
+ $font=substr($font,6);
+ }
+ if($header && ord($font{$info['length1']})==128) {
+ //Strip second binary header
+ $font=substr($font,0,$info['length1']).substr($font,$info['length1']+6);
+ }
+ }
+ $this->_out('<</Length '.strlen($font));
+ if($compressed) {
+ $this->_out('/Filter /FlateDecode');
+ }
+ $this->_out('/Length1 '.$info['length1']);
+ if(isset($info['length2'])) {
+ $this->_out('/Length2 '.$info['length2'].' /Length3 0');
+ }
+ $this->_out('>>');
+ $this->_putstream($font);
+ $this->_out('endobj');
+ }
+ set_magic_quotes_runtime($mqr);
+ foreach($this->fonts as $k=>$font) {
+ //Font objects
+ $this->fonts[$k]['n']=$this->n+1;
+ $type=$font['type'];
+ $name=$font['name'];
+ if($type=='core') {
+ //Standard font
+ $this->_newobj();
+ $this->_out('<</Type /Font');
+ $this->_out('/BaseFont /'.$name);
+ $this->_out('/Subtype /Type1');
+ if($name!='Symbol' && $name!='ZapfDingbats') {
+ $this->_out('/Encoding /WinAnsiEncoding');
+ }
+ $this->_out('>>');
+ $this->_out('endobj');
+ } elseif($type=='Type1' OR $type=='TrueType') {
+ //Additional Type1 or TrueType font
+ $this->_newobj();
+ $this->_out('<</Type /Font');
+ $this->_out('/BaseFont /'.$name);
+ $this->_out('/Subtype /'.$type);
+ $this->_out('/FirstChar 32 /LastChar 255');
+ $this->_out('/Widths '.($this->n+1).' 0 R');
+ $this->_out('/FontDescriptor '.($this->n+2).' 0 R');
+ if($font['enc']) {
+ if(isset($font['diff'])) {
+ $this->_out('/Encoding '.($nf+$font['diff']).' 0 R');
+ } else {
+ $this->_out('/Encoding /WinAnsiEncoding');
+ }
+ }
+ $this->_out('>>');
+ $this->_out('endobj');
+ //Widths
+ $this->_newobj();
+ $cw=&$font['cw'];
+ $s='[';
+ for($i=32;$i<=255;$i++) {
+ $s.=$cw[chr($i)].' ';
+ }
+ $this->_out($s.']');
+ $this->_out('endobj');
+ //Descriptor
+ $this->_newobj();
+ $s='<</Type /FontDescriptor /FontName /'.$name;
+ foreach($font['desc'] as $k=>$v) {
+ $s.=' /'.$k.' '.$v;
+ }
+ $file = $font['file'];
+ if($file) {
+ $s.=' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$file]['n'].' 0 R';
+ }
+ $this->_out($s.'>>');
+ $this->_out('endobj');
+ } else {
+ //Allow for additional types
+ $mtd='_put'.strtolower($type);
+ if(!method_exists($this, $mtd)) {
+ $this->Error('Unsupported font type: '.$type);
+ }
+ $this->$mtd($font);
+ }
+ }
+ }
+
+ /**
+ * _putimages
+ * @access protected
+ */
+ protected function _putimages() {
+ $filter=($this->compress) ? '/Filter /FlateDecode ' : '';
+ reset($this->images);
+ while(list($file,$info)=each($this->images)) {
+ $this->_newobj();
+ $this->images[$file]['n']=$this->n;
+ $this->_out('<</Type /XObject');
+ $this->_out('/Subtype /Image');
+ $this->_out('/Width '.$info['w']);
+ $this->_out('/Height '.$info['h']);
+
+ if (isset($info["masked"])) {
+ $this->_out('/SMask '.($this->n-1).' 0 R');
+ }
+
+ if($info['cs']=='Indexed') {
+ $this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]');
+ }
+ else {
+ $this->_out('/ColorSpace /'.$info['cs']);
+ if($info['cs']=='DeviceCMYK') {
+ $this->_out('/Decode [1 0 1 0 1 0 1 0]');
+ }
+ }
+ $this->_out('/BitsPerComponent '.$info['bpc']);
+ if(isset($info['f'])) {
+ $this->_out('/Filter /'.$info['f']);
+ }
+ if(isset($info['parms'])) {
+ $this->_out($info['parms']);
+ }
+ if(isset($info['trns']) and is_array($info['trns'])) {
+ $trns='';
+ for($i=0;$i<count($info['trns']);$i++) {
+ $trns.=$info['trns'][$i].' '.$info['trns'][$i].' ';
+ }
+ $this->_out('/Mask ['.$trns.']');
+ }
+ $this->_out('/Length '.strlen($info['data']).'>>');
+ $this->_putstream($info['data']);
+ unset($this->images[$file]['data']);
+ $this->_out('endobj');
+ //Palette
+ if($info['cs']=='Indexed') {
+ $this->_newobj();
+ $pal=($this->compress) ? gzcompress($info['pal']) : $info['pal'];
+ $this->_out('<<'.$filter.'/Length '.strlen($pal).'>>');
+ $this->_putstream($pal);
+ $this->_out('endobj');
+ }
+ }
+ }
+
+ /**
+ * _putxobjectdict
+ * @access protected
+ */
+ function _putxobjectdict() {
+ foreach($this->images as $image) {
+ $this->_out('/I'.$image['i'].' '.$image['n'].' 0 R');
+ }
+ }
+
+ /**
+ * _putresourcedict
+ * @access protected
+ */
+ function _putresourcedict(){
+ $this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
+ $this->_out('/Font <<');
+ foreach($this->fonts as $font) {
+ $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R');
+ }
+ $this->_out('>>');
+ $this->_out('/XObject <<');
+ $this->_putxobjectdict();
+ $this->_out('>>');
+ }
+
+ /**
+ * _putresources
+ * @access protected
+ */
+ function _putresources() {
+ $this->_putfonts();
+ $this->_putimages();
+ //Resource dictionary
+ $this->offsets[2]=strlen($this->buffer);
+ $this->_out('2 0 obj');
+ $this->_out('<<');
+ $this->_putresourcedict();
+ $this->_out('>>');
+ $this->_out('endobj');
+ $this->_putjavascript();
+ $this->_putbookmarks();
+ // encryption
+ if ($this->encrypted) {
+ $this->_newobj();
+ $this->enc_obj_id = $this->n;
+ $this->_out('<<');
+ $this->_putencryption();
+ $this->_out('>>');
+ $this->_out('endobj');
+ }
+ }
+
+ /**
+ * _putinfo
+ * Adds some meta information
+ * @access protected
+ */
+ protected function _putinfo() {
+ $this->_out('/CreationDate ('.$this->_escape('D:'.date('YmdHis')).')');
+ $this->_out('/ModDate ('.$this->_escape('D:'.date('YmdHis')).')');
+ $this->_out('/Producer '.$this->_textstring(PDF_PRODUCER));
+ if(!empty($this->title)) {
+ $this->_out('/Title '.$this->_textstring($this->title));
+ }
+ if(!empty($this->subject)) {
+ $this->_out('/Subject '.$this->_textstring($this->subject));
+ }
+ if(!empty($this->author)) {
+ $this->_out('/Author '.$this->_textstring($this->author));
+ }
+ if(!empty($this->keywords)) {
+ $this->_out('/Keywords '.$this->_textstring($this->keywords));
+ }
+ if(!empty($this->creator)) {
+ $this->_out('/Creator '.$this->_textstring($this->creator));
+ }
+ }
+
+ /**
+ * _putcatalog
+ * @access protected
+ */
+ protected function _putcatalog() {
+ $this->_out('/Type /Catalog');
+ $this->_out('/Pages 1 0 R');
+ if($this->ZoomMode=='fullpage') {
+ $this->_out('/OpenAction [3 0 R /Fit]');
+ }
+ elseif($this->ZoomMode=='fullwidth') {
+ $this->_out('/OpenAction [3 0 R /FitH null]');
+ }
+ elseif($this->ZoomMode=='real') {
+ $this->_out('/OpenAction [3 0 R /XYZ null null 1]');
+ }
+ elseif(!is_string($this->ZoomMode)) {
+ $this->_out('/OpenAction [3 0 R /XYZ null null '.($this->ZoomMode/100).']');
+ }
+ if($this->LayoutMode=='single') {
+ $this->_out('/PageLayout /SinglePage');
+ }
+ elseif($this->LayoutMode=='continuous') {
+ $this->_out('/PageLayout /OneColumn');
+ }
+ elseif($this->LayoutMode=='two') {
+ $this->_out('/PageLayout /TwoColumnLeft');
+ }
+ if (!empty($this->javascript)) {
+ $this->_out('/Names <</JavaScript '.($this->n_js).' 0 R>>');
+ }
+ if(count($this->outlines)>0) {
+ $this->_out('/Outlines '.$this->OutlineRoot.' 0 R');
+ $this->_out('/PageMode /UseOutlines');
+ }
+ if($this->rtl) {
+ $this->_out('/ViewerPreferences << /Direction /R2L >>');
+ }
+ }
+
+ /**
+ * _puttrailer
+ * @access protected
+ */
+ protected function _puttrailer() {
+ $this->_out('/Size '.($this->n+1));
+ $this->_out('/Root '.$this->n.' 0 R');
+ $this->_out('/Info '.($this->n-1).' 0 R');
+ if ($this->encrypted) {
+ $this->_out('/Encrypt '.$this->enc_obj_id.' 0 R');
+ $this->_out('/ID [()()]');
+ }
+ }
+
+ /**
+ * _putheader
+ * @access protected
+ */
+ function _putheader() {
+ $this->_out('%PDF-'.$this->PDFVersion);
+ }
+
+ /**
+ * _enddoc
+ * @access protected
+ */
+ protected function _enddoc() {
+ $this->_putheader();
+ $this->_putpages();
+ $this->_putresources();
+ //Info
+ $this->_newobj();
+ $this->_out('<<');
+ $this->_putinfo();
+ $this->_out('>>');
+ $this->_out('endobj');
+ //Catalog
+ $this->_newobj();
+ $this->_out('<<');
+ $this->_putcatalog();
+ $this->_out('>>');
+ $this->_out('endobj');
+ //Cross-ref
+ $o=strlen($this->buffer);
+ $this->_out('xref');
+ $this->_out('0 '.($this->n+1));
+ $this->_out('0000000000 65535 f ');
+ for($i=1;$i<=$this->n;$i++) {
+ $this->_out(sprintf('%010d 00000 n ',$this->offsets[$i]));
+ }
+ //Trailer
+ $this->_out('trailer');
+ $this->_out('<<');
+ $this->_puttrailer();
+ $this->_out('>>');
+ $this->_out('startxref');
+ $this->_out($o);
+ $this->_out('%%EOF');
+ $this->state=3;
+ }
+
+ /**
+ * _beginpage
+ * @access protected
+ */
+ protected function _beginpage($orientation) {
+ $this->page++;
+ $this->pages[$this->page]='';
+ $this->state=2;
+ if ($this->rtl) {
+ $this->x = $this->w - $this->rMargin;
+ } else {
+ $this->x = $this->lMargin;
+ }
+ $this->y = $this->tMargin;
+ $this->FontFamily='';
+ //Page orientation
+ if(empty($orientation)) {
+ $orientation=$this->DefOrientation;
+ }
+ else {
+ $orientation=strtoupper($orientation{0});
+ if($orientation!=$this->DefOrientation) {
+ $this->OrientationChanges[$this->page]=true;
+ }
+ }
+ if($orientation!=$this->CurOrientation) {
+ //Change orientation
+ if($orientation=='P') {
+ $this->wPt=$this->fwPt;
+ $this->hPt=$this->fhPt;
+ $this->w=$this->fw;
+ $this->h=$this->fh;
+ }
+ else {
+ $this->wPt=$this->fhPt;
+ $this->hPt=$this->fwPt;
+ $this->w=$this->fh;
+ $this->h=$this->fw;
+ }
+ $this->PageBreakTrigger=$this->h-$this->bMargin;
+ $this->CurOrientation=$orientation;
+ }
+ }
+
+ /**
+ * End of page contents
+ * @access protected
+ */
+ protected function _endpage() {
+ $this->state=1;
+ }
+
+ /**
+ * Begin a new object
+ * @access protected
+ */
+ protected function _newobj() {
+ $this->n++;
+ $this->offsets[$this->n]=strlen($this->buffer);
+ $this->_out($this->n.' 0 obj');
+ }
+
+ /**
+ * Underline text
+ * @param int $x X coordinate
+ * @param int $y Y coordinate
+ * @param string $txt text to underline
+ * @access protected
+ */
+ protected function _dounderline($x, $y, $txt) {
+ $up = $this->CurrentFont['up'];
+ $ut = $this->CurrentFont['ut'];
+ $w = $this->GetStringWidth($txt) + $this->ws * substr_count($txt,' ');
+ return sprintf('%.2f %.2f %.2f %.2f re f', $x * $this->k, ($this->h - ($y - $up / 1000 * $this->FontSize)) * $this->k, $w * $this->k, -$ut / 1000 * $this->FontSizePt);
+ }
+
+
+ // REWRITTEN by Warren Sherliker wsherliker@gmail.com
+ // altered to allow compatibility with all sorts of image formats including gif.
+ // Can easily extend to work with others
+ // such as gd xbm etc. which are all supported by php 5+
+ // (Requires GD library)
+
+ /**
+ * Extract info from a JPEG file
+ * @param string $file image file to parse
+ * @return string
+ * @access protected
+ */
+ protected function _parsejpg($file) {
+ if(!function_exists('imagecreatefromjpeg')) {
+ // GD is not installed, try legacy method
+ return $this->_legacyparsejpg($file);
+ }
+ $a=getimagesize($file);
+ if(empty($a)) {
+ $this->Error('Missing or incorrect image file: '.$file);
+ }
+ if($a[2]!=2) {
+ $this->Error('Not a JPEG file: '.$file);
+ }
+ $jpeg = imagecreatefromjpeg($file);
+ return $this->outputjpg($file, $jpeg);
+ }
+
+ /**
+ * Extract info from a GIF file
+ * @param string $file image file to parse
+ * @return string
+ * @access protected
+ */
+ protected function _parsegif($file) {
+ if(!function_exists('imagecreatefromgif')) {
+ // PDF doesn't support native GIF and GD is not installed
+ return false;
+ }
+ $a=getimagesize($file);
+ if(empty($a)) {
+ $this->Error('Missing or incorrect image file: '.$file);
+ }
+ if($a[2]!=1) {
+ $this->Error('Not a GIF file: '.$file);
+ }
+ // Temporary convert file to jpg and then delete this temp data file
+ $gif = imagecreatefromgif($file);
+ return $this->toJPEG($file, $gif);
+ }
+
+ /**
+ * Extract info from a PNG file
+ * @param string $file image file to parse
+ * @return string
+ * @access protected
+ */
+ protected function _parsepng($file) {
+ if(!function_exists('imagecreatefrompng')) {
+ // GD is not installed, try legacy method
+ return $this->_legacyparsepng($file);
+ }
+ $f=fopen($file,'rb');
+ if(empty($f)) {
+ $this->Error('Can\'t open image file: '.$file);
+ }
+ //Check signature
+ if(fread($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) {
+ $this->Error('Not a PNG file: '.$file);
+ }
+ //Read header chunk
+ fread($f,4);
+ if(fread($f,4)!='IHDR') {
+ $this->Error('Incorrect PNG file: '.$file);
+ }
+ // Temporary convert file to jpg and then delete this temp data file
+ $a=getimagesize($file);
+ $png = imagecreatefrompng($file);
+ return $this->toJPEG($file, $png);
+ }
+
+ /**
+ * Extract info from a JPEG file without using GD
+ * @param string $file image file to parse
+ * @return string
+ * @access protected
+ */
+ protected function _legacyparsejpg($file) {
+ $a=GetImageSize($file);
+ if(empty($a)) {
+ $this->Error('Missing or incorrect image file: '.$file);
+ }
+ if($a[2]!=2) {
+ $this->Error('Not a JPEG file: '.$file);
+ }
+ if(!isset($a['channels']) or $a['channels']==3) {
+ $colspace='DeviceRGB';
+ }
+ elseif($a['channels']==4) {
+ $colspace='DeviceCMYK';
+ }
+ else {
+ $colspace='DeviceGray';
+ }
+ $bpc=isset($a['bits']) ? $a['bits'] : 8;
+ //Read whole file
+ $f=fopen($file,'rb');
+ $data='';
+ while(!feof($f)) {
+ $data.=fread($f,4096);
+ }
+ fclose($f);
+ return array('w'=>$a[0],'h'=>$a[1],'cs'=>$colspace,'bpc'=>$bpc,'f'=>'DCTDecode','data'=>$data);
+ }
+
+ /**
+ * Extract info from a PNG file without using GD
+ * @param string $file image file to parse
+ * @return string
+ * @access protected
+ */
+ protected function _legacyparsepng($file) {
+ $f=fopen($file,'rb');
+ if(empty($f)) {
+ $this->Error('Can\'t open image file: '.$file);
+ }
+ //Check signature
+ if(fread($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) {
+ $this->Error('Not a PNG file: '.$file);
+ }
+ //Read header chunk
+ fread($f,4);
+ if(fread($f,4)!='IHDR') {
+ $this->Error('Incorrect PNG file: '.$file);
+ }
+ $w=$this->_freadint($f);
+ $h=$this->_freadint($f);
+ $bpc=ord(fread($f,1));
+ if($bpc>8) {
+ $this->Error('16-bit depth not supported: '.$file);
+ }
+ $ct=ord(fread($f,1));
+ if($ct==0) {
+ $colspace='DeviceGray';
+ }
+ elseif($ct==2) {
+ $colspace='DeviceRGB';
+ }
+ elseif($ct==3) {
+ $colspace='Indexed';
+ }
+ else {
+ $this->Error('Alpha channel not supported: '.$file);
+ }
+ if(ord(fread($f,1))!=0) {
+ $this->Error('Unknown compression method: '.$file);
+ }
+ if(ord(fread($f,1))!=0) {
+ $this->Error('Unknown filter method: '.$file);
+ }
+ if(ord(fread($f,1))!=0) {
+ $this->Error('Interlacing not supported: '.$file);
+ }
+ fread($f,4);
+ $parms='/DecodeParms <</Predictor 15 /Colors '.($ct==2 ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w.'>>';
+ //Scan chunks looking for palette, transparency and image data
+ $pal='';
+ $trns='';
+ $data='';
+ do {
+ $n=$this->_freadint($f);
+ $type=fread($f,4);
+ if($type=='PLTE') {
+ //Read palette
+ $pal=fread($f,$n);
+ fread($f,4);
+ }
+ elseif($type=='tRNS') {
+ //Read transparency info
+ $t=fread($f,$n);
+ if($ct==0) {
+ $trns=array(ord(substr($t,1,1)));
+ }
+ elseif($ct==2) {
+ $trns=array(ord(substr($t,1,1)),ord(substr($t,3,1)),ord(substr($t,5,1)));
+ }
+ else {
+ $pos=strpos($t,chr(0));
+ if($pos!==false) {
+ $trns=array($pos);
+ }
+ }
+ fread($f,4);
+ }
+ elseif($type=='IDAT') {
+ //Read image data block
+ $data.=fread($f,$n);
+ fread($f,4);
+ }
+ elseif($type=='IEND') {
+ break;
+ }
+ else {
+ fread($f,$n+4);
+ }
+ }
+ while($n);
+ if($colspace=='Indexed' and empty($pal)) {
+ $this->Error('Missing palette in '.$file);
+ }
+ fclose($f);
+ return array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'parms'=>$parms, 'pal'=>$pal, 'trns'=>$trns, 'data'=>$data);
+ }
+
+ /**
+ * Convert the loaded php image to a JPEG and then return a structure for the PDF creator.
+ * @param string $file Image file name.
+ * @param image $image Image object.
+ * return image JPEG image object.
+ * @access protected
+ */
+ protected function toJPEG($file, $image) {
+ if ($image) {
+ // output
+ $tempname = tempnam(K_PATH_CACHE,'jpg');
+ imagejpeg($image, $tempname, 100);
+ imagedestroy($image);
+ $retvars = $this->outputjpg($tempname);
+ // tidy up by removing temporary image
+ unlink($tempname);
+ return $retvars;
+ } else {
+ $this->Error('Can\'t open image file: '.$file);
+ }
+ }
+
+ /**
+ * Get a JPEG filename and return a structure for the PDF creator.
+ * @param string $filename JPEG file name.
+ * @return array structure containing the image data
+ * @access protected
+ */
+ protected function outputjpg($filename) {
+ $a=getimagesize($filename);
+
+ if(!isset($a['channels']) or $a['channels']==3) {
+ $colspace='DeviceRGB';
+ }
+ elseif($a['channels']==4) {
+ $colspace='DeviceCMYK';
+ }
+ else {
+ $colspace='DeviceGray';
+ }
+ $bpc=isset($a['bits']) ? $a['bits'] : 8;
+ //Read whole file
+
+ $f=fopen($filename,'rb');
+ $data='';
+ while(!feof($f)) {
+ $data.=fread($f,4096);
+ }
+ fclose($f);
+
+ return array('w'=>$a[0],'h'=>$a[1],'cs'=>$colspace,'bpc'=>$bpc,'f'=>'DCTDecode','data'=>$data);
+ }
+
+ /// END OF REWRITE BY Warren Sherliker wsherliker@gmail.com
+
+ /**
+ * Read a 4-byte integer from file
+ * @param string $f file name.
+ * @return 4-byte integer
+ * @access protected
+ */
+ protected function _freadint($f) {
+ $a=unpack('Ni',fread($f,4));
+ return $a['i'];
+ }
+
+ /**
+ * Format a text string for meta information
+ * @param string $s string to escape.
+ * @return string escaped string.
+ * @access protected
+ */
+ protected function _textstring($s) {
+ if($this->isunicode) {
+ //Convert string to UTF-16BE
+ $s = $this->UTF8ToUTF16BE($s, true);
+ }
+ if ($this->encrypted) {
+ $s = $this->_RC4($this->_objectkey($this->n), $s);
+ }
+ return '('. $this->_escape($s).')';
+ }
+
+ /**
+ * Format an URI string
+ * @param string $s string to escape.
+ * @return string escaped string.
+ * @access protected
+ */
+ protected function _uristring($s) {
+ if ($this->encrypted) {
+ $s = $this->_RC4($this->_objectkey($this->n), $s);
+ }
+ return '('.$this->_escape($s).')';
+ }
+
+ /**
+ * Format a text string
+ * @param string $s string to escape.
+ * @return string escaped string.
+ * @access protected
+ */
+ protected function _escapetext($s) {
+ if($this->isunicode) {
+ //Convert string to UTF-16BE and reverse RTL language
+ $s = $this->utf8StrRev($s, false, $this->tmprtl);
+ }
+ return $this->_escape($s);
+ }
+
+ /**
+ * Add \ before \, ( and )
+ * @param string $s string to escape.
+ * @return string escaped string.
+ * @access protected
+ */
+ protected function _escape($s) {
+ // the chr(13) substitution fixes the Bugs item #1421290.
+ return strtr($s, array(')' => '\\)', '(' => '\\(', '\\' => '\\\\', chr(13) => '\r'));
+ }
+
+ /**
+ * Output a stream.
+ * @param string $s string to output.
+ * @access protected
+ */
+ protected function _putstream($s) {
+ if ($this->encrypted) {
+ $s = $this->_RC4($this->_objectkey($this->n), $s);
+ }
+ $this->_out('stream');
+ $this->_out($s);
+ $this->_out('endstream');
+ }
+
+ /**
+ * Output a string to the document.
+ * @param string $s string to output.
+ * @access protected
+ */
+ protected function _out($s) {
+ if($this->state==2) {
+ $this->pages[$this->page] .= $s."\n";
+ }
+ else {
+ $this->buffer .= $s."\n";
+ }
+ }
+
+ /**
+ * Adds unicode fonts.<br>
+ * Based on PDF Reference 1.3 (section 5)
+ * @access protected
+ * @author Nicola Asuni
+ * @since 1.52.0.TC005 (2005-01-05)
+ */
+ protected function _puttruetypeunicode($font) {
+ // Type0 Font
+ // A composite font composed of other fonts, organized hierarchically
+ $this->_newobj();
+ $this->_out('<</Type /Font');
+ $this->_out('/Subtype /Type0');
+ $this->_out('/BaseFont /'.$font['name'].'');
+ $this->_out('/Encoding /Identity-H'); //The horizontal identity mapping for 2-byte CIDs; may be used with CIDFonts using any Registry, Ordering, and Supplement values.
+ $this->_out('/DescendantFonts ['.($this->n + 1).' 0 R]');
+ $this->_out('/ToUnicode '.($this->n + 2).' 0 R');
+ $this->_out('>>');
+ $this->_out('endobj');
+
+ // CIDFontType2
+ // A CIDFont whose glyph descriptions are based on TrueType font technology
+ $this->_newobj();
+ $this->_out('<</Type /Font');
+ $this->_out('/Subtype /CIDFontType2');
+ $this->_out('/BaseFont /'.$font['name'].'');
+ $this->_out('/CIDSystemInfo '.($this->n + 2).' 0 R');
+ $this->_out('/FontDescriptor '.($this->n + 3).' 0 R');
+ if (isset($font['desc']['MissingWidth'])){
+ $this->_out('/DW '.$font['desc']['MissingWidth'].''); // The default width for glyphs in the CIDFont MissingWidth
+ }
+ $w = "";
+ foreach ($font['cw'] as $cid => $width) {
+ $w .= ''.$cid.' ['.$width.'] '; // define a specific width for each individual CID
+ }
+ $this->_out('/W ['.$w.']'); // A description of the widths for the glyphs in the CIDFont
+ $this->_out('/CIDToGIDMap '.($this->n + 4).' 0 R');
+ $this->_out('>>');
+ $this->_out('endobj');
+
+ // ToUnicode
+ // is a stream object that contains the definition of the CMap
+ // (PDF Reference 1.3 chap. 5.9)
+ $this->_newobj();
+ $this->_out('<</Length 345>>');
+ $this->_out('stream');
+ $this->_out('/CIDInit /ProcSet findresource begin');
+ $this->_out('12 dict begin');
+ $this->_out('begincmap');
+ $this->_out('/CIDSystemInfo');
+ $this->_out('<</Registry (Adobe)');
+ $this->_out('/Ordering (UCS)');
+ $this->_out('/Supplement 0');
+ $this->_out('>> def');
+ $this->_out('/CMapName /Adobe-Identity-UCS def');
+ $this->_out('/CMapType 2 def');
+ $this->_out('1 begincodespacerange');
+ $this->_out('<0000> <FFFF>');
+ $this->_out('endcodespacerange');
+ $this->_out('1 beginbfrange');
+ $this->_out('<0000> <FFFF> <0000>');
+ $this->_out('endbfrange');
+ $this->_out('endcmap');
+ $this->_out('CMapName currentdict /CMap defineresource pop');
+ $this->_out('end');
+ $this->_out('end');
+ $this->_out('endstream');
+ $this->_out('endobj');
+
+ // CIDSystemInfo dictionary
+ // A dictionary containing entries that define the character collection of the CIDFont.
+ $this->_newobj();
+ $this->_out('<</Registry (Adobe)'); // A string identifying an issuer of character collections
+ $this->_out('/Ordering (UCS)'); // A string that uniquely names a character collection issued by a specific registry
+ $this->_out('/Supplement 0'); // The supplement number of the character collection.
+ $this->_out('>>');
+ $this->_out('endobj');
+
+ // Font descriptor
+ // A font descriptor describing the CIDFont default metrics other than its glyph widths
+ $this->_newobj();
+ $this->_out('<</Type /FontDescriptor');
+ $this->_out('/FontName /'.$font['name']);
+ foreach ($font['desc'] as $key => $value) {
+ $this->_out('/'.$key.' '.$value);
+ }
+ if ($font['file']) {
+ // A stream containing a TrueType font program
+ $this->_out('/FontFile2 '.$this->FontFiles[$font['file']]['n'].' 0 R');
+ }
+ $this->_out('>>');
+ $this->_out('endobj');
+
+ // Embed CIDToGIDMap
+ // A specification of the mapping from CIDs to glyph indices
+ $this->_newobj();
+ $ctgfile = $this->_getfontpath().strtolower($font['ctg']);
+ if(!file_exists($ctgfile)) {
+ $this->Error('Font file not found: '.$ctgfile);
+ }
+ $size = filesize($ctgfile);
+ $this->_out('<</Length '.$size.'');
+ if(substr($ctgfile, -2) == '.z') { // check file extension
+ /* Decompresses data encoded using the public-domain
+ zlib/deflate compression method, reproducing the
+ original text or binary data */
+ $this->_out('/Filter /FlateDecode');
+ }
+ $this->_out('>>');
+ $this->_putstream(file_get_contents($ctgfile));
+ $this->_out('endobj');
+ }
+
+ /**
+ * Converts UTF-8 strings to codepoints array.<br>
+ * Invalid byte sequences will be replaced with 0xFFFD (replacement character)<br>
+ * Based on: http://www.faqs.org/rfcs/rfc3629.html
+ * <pre>
+ * Char. number range | UTF-8 octet sequence
+ * (hexadecimal) | (binary)
+ * --------------------+-----------------------------------------------
+ * 0000 0000-0000 007F | 0xxxxxxx
+ * 0000 0080-0000 07FF | 110xxxxx 10xxxxxx
+ * 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
+ * 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+ * ---------------------------------------------------------------------
+ *
+ * ABFN notation:
+ * ---------------------------------------------------------------------
+ * UTF8-octets = *( UTF8-char )
+ * UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
+ * UTF8-1 = %x00-7F
+ * UTF8-2 = %xC2-DF UTF8-tail
+ *
+ * UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
+ * %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
+ * UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
+ * %xF4 %x80-8F 2( UTF8-tail )
+ * UTF8-tail = %x80-BF
+ * ---------------------------------------------------------------------
+ * </pre>
+ * @param string $str string to process.
+ * @return array containing codepoints (UTF-8 characters values)
+ * @access protected
+ * @author Nicola Asuni
+ * @since 1.53.0.TC005 (2005-01-05)
+ */
+ protected function UTF8StringToArray($str) {
+ if(!$this->isunicode) {
+ return $str; // string is not in unicode
+ }
+ $unicode = array(); // array containing unicode values
+ $bytes = array(); // array containing single character byte sequences
+ $numbytes = 1; // number of octetc needed to represent the UTF-8 character
+
+ $str .= ""; // force $str to be a string
+ $length = strlen($str);
+
+ for($i = 0; $i < $length; $i++) {
+ $char = ord($str{$i}); // get one string character at time
+ if(count($bytes) == 0) { // get starting octect
+ if ($char <= 0x7F) {
+ $unicode[] = $char; // use the character "as is" because is ASCII
+ $numbytes = 1;
+ } elseif (($char >> 0x05) == 0x06) { // 2 bytes character (0x06 = 110 BIN)
+ $bytes[] = ($char - 0xC0) << 0x06;
+ $numbytes = 2;
+ } elseif (($char >> 0x04) == 0x0E) { // 3 bytes character (0x0E = 1110 BIN)
+ $bytes[] = ($char - 0xE0) << 0x0C;
+ $numbytes = 3;
+ } elseif (($char >> 0x03) == 0x1E) { // 4 bytes character (0x1E = 11110 BIN)
+ $bytes[] = ($char - 0xF0) << 0x12;
+ $numbytes = 4;
+ } else {
+ // use replacement character for other invalid sequences
+ $unicode[] = 0xFFFD;
+ $bytes = array();
+ $numbytes = 1;
+ }
+ } elseif (($char >> 0x06) == 0x02) { // bytes 2, 3 and 4 must start with 0x02 = 10 BIN
+ $bytes[] = $char - 0x80;
+ if (count($bytes) == $numbytes) {
+ // compose UTF-8 bytes to a single unicode value
+ $char = $bytes[0];
+ for($j = 1; $j < $numbytes; $j++) {
+ $char += ($bytes[$j] << (($numbytes - $j - 1) * 0x06));
+ }
+ if ((($char >= 0xD800) AND ($char <= 0xDFFF)) OR ($char >= 0x10FFFF)) {
+ /* The definition of UTF-8 prohibits encoding character numbers between
+ U+D800 and U+DFFF, which are reserved for use with the UTF-16
+ encoding form (as surrogate pairs) and do not directly represent
+ characters. */
+ $unicode[] = 0xFFFD; // use replacement character
+ }
+ else {
+ $unicode[] = $char; // add char to array
+ }
+ // reset data for next char
+ $bytes = array();
+ $numbytes = 1;
+ }
+ } else {
+ // use replacement character for other invalid sequences
+ $unicode[] = 0xFFFD;
+ $bytes = array();
+ $numbytes = 1;
+ }
+ }
+ return $unicode;
+ }
+
+ /**
+ * Converts UTF-8 strings to UTF16-BE.<br>
+ * @param string $str string to process.
+ * @param boolean $setbom if true set the Byte Order Mark (BOM = 0xFEFF)
+ * @return string
+ * @access protected
+ * @author Nicola Asuni
+ * @since 1.53.0.TC005 (2005-01-05)
+ * @uses UTF8StringToArray(), arrUTF8ToUTF16BE()
+ */
+ protected function UTF8ToUTF16BE($str, $setbom=true) {
+ if(!$this->isunicode) {
+ return $str; // string is not in unicode
+ }
+ $unicode = $this->UTF8StringToArray($str); // array containing UTF-8 unicode values
+ return $this->arrUTF8ToUTF16BE($unicode, $setbom);
+ }
+
+ /**
+ * Converts array of UTF-8 characters to UTF16-BE string.<br>
+ * Based on: http://www.faqs.org/rfcs/rfc2781.html
+ * <pre>
+ * Encoding UTF-16:
+ *
+ * Encoding of a single character from an ISO 10646 character value to
+ * UTF-16 proceeds as follows. Let U be the character number, no greater
+ * than 0x10FFFF.
+ *
+ * 1) If U < 0x10000, encode U as a 16-bit unsigned integer and
+ * terminate.
+ *
+ * 2) Let U' = U - 0x10000. Because U is less than or equal to 0x10FFFF,
+ * U' must be less than or equal to 0xFFFFF. That is, U' can be
+ * represented in 20 bits.
+ *
+ * 3) Initialize two 16-bit unsigned integers, W1 and W2, to 0xD800 and
+ * 0xDC00, respectively. These integers each have 10 bits free to
+ * encode the character value, for a total of 20 bits.
+ *
+ * 4) Assign the 10 high-order bits of the 20-bit U' to the 10 low-order
+ * bits of W1 and the 10 low-order bits of U' to the 10 low-order
+ * bits of W2. Terminate.
+ *
+ * Graphically, steps 2 through 4 look like:
+ * U' = yyyyyyyyyyxxxxxxxxxx
+ * W1 = 110110yyyyyyyyyy
+ * W2 = 110111xxxxxxxxxx
+ * </pre>
+ * @param array $unicode array containing UTF-8 unicode values
+ * @param boolean $setbom if true set the Byte Order Mark (BOM = 0xFEFF)
+ * @return string
+ * @access protected
+ * @author Nicola Asuni
+ * @since 2.1.000 (2008-01-08)
+ * @see UTF8ToUTF16BE()
+ */
+ protected function arrUTF8ToUTF16BE($unicode, $setbom=true) {
+ $outstr = ""; // string to be returned
+ if ($setbom) {
+ $outstr .= "\xFE\xFF"; // Byte Order Mark (BOM)
+ }
+ foreach($unicode as $char) {
+ if($char == 0xFFFD) {
+ $outstr .= "\xFF\xFD"; // replacement character
+ } elseif ($char < 0x10000) {
+ $outstr .= chr($char >> 0x08);
+ $outstr .= chr($char & 0xFF);
+ } else {
+ $char -= 0x10000;
+ $w1 = 0xD800 | ($char >> 0x10);
+ $w2 = 0xDC00 | ($char & 0x3FF);
+ $outstr .= chr($w1 >> 0x08);
+ $outstr .= chr($w1 & 0xFF);
+ $outstr .= chr($w2 >> 0x08);
+ $outstr .= chr($w2 & 0xFF);
+ }
+ }
+ return $outstr;
+ }
+ // ====================================================
+
+ /**
+ * Set header font.
+ * @param array $font font
+ * @since 1.1
+ */
+ public function setHeaderFont($font) {
+ $this->header_font = $font;
+ }
+
+ /**
+ * Set footer font.
+ * @param array $font font
+ * @since 1.1
+ */
+ public function setFooterFont($font) {
+ $this->footer_font = $font;
+ }
+
+ /**
+ * Set language array.
+ * @param array $language
+ * @since 1.1
+ */
+ public function setLanguageArray($language) {
+ $this->l = $language;
+ $this->rtl = $this->l['a_meta_dir']=='rtl' ? true : false;
+ }
+
+ /**
+ * Set document barcode.
+ * @param string $bc barcode
+ */
+ public function setBarcode($bc="") {
+ $this->barcode = $bc;
+ }
+
+ /**
+ * Print Barcode.
+ * @param int $x x position in user units
+ * @param int $y y position in user units
+ * @param int $w width in user units
+ * @param int $h height position in user units
+ * @param string $type type of barcode (I25, C128A, C128B, C128C, C39)
+ * @param string $style barcode style
+ * @param string $font font for text
+ * @param int $xres x resolution
+ * @param string $code code to print
+ */
+ public function writeBarcode($x, $y, $w, $h, $type, $style, $font, $xres, $code) {
+ require_once(dirname(__FILE__)."/barcode/barcode.php");
+ require_once(dirname(__FILE__)."/barcode/i25object.php");
+ require_once(dirname(__FILE__)."/barcode/c39object.php");
+ require_once(dirname(__FILE__)."/barcode/c128aobject.php");
+ require_once(dirname(__FILE__)."/barcode/c128bobject.php");
+ require_once(dirname(__FILE__)."/barcode/c128cobject.php");
+
+ if (empty($code)) {
+ return;
+ }
+
+ if (empty($style)) {
+ $style = BCS_ALIGN_LEFT;
+ $style |= BCS_IMAGE_PNG;
+ $style |= BCS_TRANSPARENT;
+ //$style |= BCS_BORDER;
+ //$style |= BCS_DRAW_TEXT;
+ //$style |= BCS_STRETCH_TEXT;
+ //$style |= BCS_REVERSE_COLOR;
+ }
+ if (empty($font)) {$font = BCD_DEFAULT_FONT;}
+ if (empty($xres)) {$xres = BCD_DEFAULT_XRES;}
+
+ $scale_factor = 1.5 * $xres * $this->k;
+ $bc_w = round($w * $scale_factor); //width in points
+ $bc_h = round($h * $scale_factor); //height in points
+
+ switch (strtoupper($type)) {
+ case "I25": {
+ $obj = new I25Object($bc_w, $bc_h, $style, $code);
+ break;
+ }
+ case "C128A": {
+ $obj = new C128AObject($bc_w, $bc_h, $style, $code);
+ break;
+ }
+ default:
+ case "C128B": {
+ $obj = new C128BObject($bc_w, $bc_h, $style, $code);
+ break;
+ }
+ case "C128C": {
+ $obj = new C128CObject($bc_w, $bc_h, $style, $code);
+ break;
+ }
+ case "C39": {
+ $obj = new C39Object($bc_w, $bc_h, $style, $code);
+ break;
+ }
+ }
+
+ $obj->SetFont($font);
+ $obj->DrawObject($xres);
+
+ //use a temporary file....
+ $tmpName = tempnam(K_PATH_CACHE,'img');
+ imagepng($obj->getImage(), $tmpName);
+ $this->Image($tmpName, $x, $y, $w, $h, 'png');
+ $obj->DestroyObject();
+ unset($obj);
+ unlink($tmpName);
+ }
+
+ /**
+ * Returns the PDF data.
+ */
+ public function getPDFData() {
+ if($this->state < 3) {
+ $this->Close();
+ }
+ return $this->buffer;
+ }
+
+ // --- HTML PARSER FUNCTIONS ---
+
+ /**
+ * Allows to preserve some HTML formatting.<br />
+ * Supports: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small
+ * @param string $html text to display
+ * @param boolean $ln if true add a new line after text (default = true)
+ * @param int $fill Indicates if the background must be painted (1) or transparent (0). Default value: 0.
+ * @param boolean $reseth if true reset the last cell height (default false).
+ * @param boolean $cell if true add the default cMargin space to each Write.
+ */
+ public function writeHTML($html, $ln=true, $fill=0, $reseth=false, $cell=false) {
+
+ // store some variables
+ $html=strip_tags($html,"<h1><h2><h3><h4><h5><h6><b><u><i><a><img><p><br><br/><strong><em><font><blockquote><li><ul><ol><hr><td><th><tr><table><sup><sub><small><span><div>"); //remove all unsupported tags
+ //replace carriage returns, newlines and tabs
+ $repTable = array("\t" => " ", "\n" => " ", "\r" => " ", "\0" => " ", "\x0B" => " ");
+ $html = strtr($html, $repTable);
+ $pattern = '/(<[^>]+>)/Uu';
+ $a = preg_split($pattern, $html, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); //explodes the string
+
+ if ((empty($this->lasth))OR ($reseth)) {
+ //set row height
+ $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO;
+ }
+
+ foreach($a as $key=>$element) {
+ if (!preg_match($pattern, $element)) {
+ //Text
+ if($this->HREF) {
+ $this->addHtmlLink($this->HREF, $element, $fill);
+ } elseif($this->tdbegin) {
+ if((strlen(trim($element)) > 0) AND ($element != "&nbsp;")) {
+ $this->Cell($this->tdwidth, $this->tdheight, $this->unhtmlentities($element), $this->tableborder, '', $this->tdalign, $this->tdbgcolor);
+ } elseif($element == "&nbsp;") {
+ $this->Cell($this->tdwidth, $this->tdheight, '', $this->tableborder, '', $this->tdalign, $this->tdbgcolor);
+ }
+ } else {
+
+ $ctmpmargin = $this->cMargin;
+ if(!$cell) {
+ $this->cMargin = 0;
+ }
+ $this->Write($this->lasth, stripslashes($this->unhtmlentities($element)), '', $fill, 0);
+ $this->cMargin = $ctmpmargin;
+ }
+ } else {
+ $element = substr($element, 1, -1);
+ //Tag
+ if($element{0}=='/') {
+ $this->closedHTMLTagHandler(strtolower(substr($element, 1)));
+ }
+ else {
+ //Extract attributes
+ // get tag name
+ preg_match('/([a-zA-Z0-9]*)/', $element, $tag);
+ $tag = strtolower($tag[0]);
+ // get attributes
+ preg_match_all('/([^=\s]*)=["\']?([^"\']*)["\']?/', $element, $attr_array, PREG_PATTERN_ORDER);
+ $attr = array(); // reset attribute array
+ while(list($id,$name)=each($attr_array[1])) {
+ $attr[strtolower($name)] = $attr_array[2][$id];
+ }
+ $this->openHTMLTagHandler($tag, $attr, $fill);
+ }
+ }
+ }
+ if ($ln) {
+ $this->Ln($this->lasth);
+ }
+ }
+
+ /**
+ * Prints a cell (rectangular area) with optional borders, background color and html text string. The upper-left corner of the cell corresponds to the current position. After the call, the current position moves to the right or to the next line.<br />
+ * If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting.
+ * @param float $w Cell width. If 0, the cell extends up to the right margin.
+ * @param float $h Cell minimum height. The cell extends automatically if needed.
+ * @param float $x upper-left corner X coordinate
+ * @param float $y upper-left corner Y coordinate
+ * @param string $html html text to print. Default value: empty string.
+ * @param mixed $border Indicates if borders must be drawn around the cell. The value can be either a number:<ul><li>0: no border (default)</li><li>1: frame</li></ul>or a string containing some or all of the following characters (in any order):<ul><li>L: left</li><li>T: top</li><li>R: right</li><li>B: bottom</li></ul>
+ * @param int $ln Indicates where the current position should go after the call. Possible values are:<ul><li>0: to the right (or left for RTL language)</li><li>1: to the beginning of the next line</li><li>2: below</li></ul>
+ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0.
+ * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ * @param boolean $reseth if true reset the last cell height (default false).
+ * @see Cell()
+ */
+ public function writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=false) {
+
+ if ((empty($this->lasth))OR ($reseth)) {
+ //set row height
+ $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO;
+ }
+
+ // get current page number
+ $startpage = $this->page;
+
+ if (!empty($y)) {
+ $this->SetY($y);
+ } else {
+ $y = $this->GetY();
+ }
+ if (!empty($x)) {
+ $this->SetX($x);
+ } else {
+ $x = $this->GetX();
+ }
+
+ if(empty($w)) {
+ if ($this->rtl) {
+ $w = $this->x - $this->lMargin;
+ } else {
+ $w = $this->w - $this->rMargin - $this->x;
+ }
+ }
+
+ // store original margin values
+ $lMargin = $this->lMargin;
+ $rMargin = $this->rMargin;
+
+ // set new margin values
+ if ($this->rtl) {
+ $this->SetLeftMargin($this->x - $w);
+ $this->SetRightMargin($this->w - $this->x);
+ } else {
+ $this->SetLeftMargin($this->x);
+ $this->SetRightMargin($this->w - $this->x - $w);
+ }
+
+ // calculate remaining vertical space on first page ($startpage)
+ $restspace = $this->getPageHeight() - $this->GetY() - $this->getBreakMargin();
+
+ // Write HTML text
+ $this->writeHTML($html, true, $fill, $reseth, true);
+
+ // Get end-of-text Y position
+ $currentY = $this->GetY();
+ // get latest page number
+ $endpage = $this->page;
+
+ if (!empty($border)) {
+ // check if a new page has been created
+ if ($endpage > $startpage) {
+ // design borders around HTML cells.
+ for ($page=$startpage; $page<=$endpage; $page++) {
+ $this->page = $page;
+ if ($page==$startpage) {
+ $this->SetY($this->getPageHeight() - $restspace - $this->getBreakMargin());
+ $h = $restspace - 1;
+ } elseif ($page==$endpage) {
+ $this->SetY($this->tMargin); // put cursor at the beginning of text
+ $h = $currentY - $this->tMargin;
+ } else {
+ $this->SetY($this->tMargin); // put cursor at the beginning of text
+ $h = $this->getPageHeight() - $this->tMargin - $this->getBreakMargin();
+ }
+ $this->Cell($w, $h, "", $border, 1, '', 0);
+ }
+ } else {
+ $h = max($h, ($currentY - $y));
+ $this->SetY($y); // put cursor at the beginning of text
+ // design a cell around the text
+ $this->Cell($w, $h, "", $border, 1, '', 0);
+ }
+ }
+
+ // restore original margin values
+ $this->SetLeftMargin($lMargin);
+ $this->SetRightMargin($rMargin);
+
+
+ if($ln>0) {
+ //Go to the beginning of the next line
+ $this->SetY($currentY);
+ if($ln == 2) {
+ $this->SetX($x + $w);
+ }
+ } else {
+ // go left or right by case
+ $this->page = $startpage;
+ $this->y = $y;
+ $this->SetX($x + $w);
+ }
+
+ }
+
+ /**
+ * Process opening tags.
+ * @param string $tag tag name (in uppercase)
+ * @param string $attr tag attribute (in uppercase)
+ * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ * @access private
+ */
+ private function openHTMLTagHandler($tag, $attr, $fill=0) {
+ // check for text direction attribute
+ if (isset($attr['dir'])) {
+ $this->tmprtl = $attr['dir']=='rtl' ? 'R' : 'L';
+ } else {
+ $this->tmprtl = false;
+ }
+ //Opening tag
+ switch($tag) {
+ case 'table': {
+ if ((isset($attr['border'])) AND ($attr['border'] != '')) {
+ $this->tableborder = $attr['border'];
+ }
+ else {
+ $this->tableborder = 0;
+ }
+ break;
+ }
+ case 'tr': {
+ break;
+ }
+ case 'td':
+ case 'th': {
+ if ((isset($attr['width'])) AND ($attr['width'] != '')) {
+ $this->tdwidth = ($attr['width']/4);
+ }
+ else {
+ $this->tdwidth = (($this->w - $this->lMargin - $this->rMargin) / $this->default_table_columns);
+ }
+ if ((isset($attr['height'])) AND ($attr['height'] != '')) {
+ $this->tdheight=($attr['height'] / $this->k);
+ }
+ else {
+ $this->tdheight = $this->lasth;
+ }
+ if ((isset($attr['align'])) AND ($attr['align'] != '')) {
+ switch ($attr['align']) {
+ case 'center': {
+ $this->tdalign = "C";
+ break;
+ }
+ case 'right': {
+ $this->tdalign = "R";
+ break;
+ }
+ default:
+ case 'left': {
+ $this->tdalign = "L";
+ break;
+ }
+ }
+ } else {
+ if($this->rtl) {
+ $this->tdalign = "R";
+ } else {
+ $this->tdalign = "L";
+ }
+ }
+ if ((isset($attr['bgcolor'])) AND ($attr['bgcolor'] != '')) {
+ $coul = $this->convertColorHexToDec($attr['bgcolor']);
+ $this->SetFillColor($coul['R'], $coul['G'], $coul['B']);
+ $this->tdbgcolor=true;
+ }
+ $this->tdbegin=true;
+ break;
+ }
+ case 'hr': {
+ $this->Ln();
+ if ((isset($attr['width'])) AND ($attr['width'] != '')) {
+ $hrWidth = $attr['width'];
+ }
+ else {
+ $hrWidth = $this->w - $this->lMargin - $this->rMargin;
+ }
+ $x = $this->GetX();
+ $y = $this->GetY();
+ $this->GetLineWidth();
+ $prevlinewidth = $this->SetLineWidth(0.2);
+ $this->Line($x, $y, $x + $hrWidth, $y);
+ $this->SetLineWidth($prevlinewidth);
+ $this->Ln();
+ break;
+ }
+ case 'strong': {
+ $this->setStyle('b', true);
+ break;
+ }
+ case 'em': {
+ $this->setStyle('i', true);
+ break;
+ }
+ case 'b':
+ case 'i':
+ case 'u': {
+ $this->setStyle($tag, true);
+ break;
+ }
+ case 'a': {
+ $this->HREF = $attr['href'];
+ break;
+ }
+ case 'img': {
+ if(isset($attr['src'])) {
+ // replace relative path with real server path
+ if ($attr['src'][0] == '/') {
+ $attr['src'] = $_SERVER['DOCUMENT_ROOT'].$attr['src'];
+ }
+ $attr['src'] = str_replace(K_PATH_URL, K_PATH_MAIN, $attr['src']);
+ if(!isset($attr['width'])) {
+ $attr['width'] = 0;
+ }
+ if(!isset($attr['height'])) {
+ $attr['height'] = 0;
+ }
+ if(!isset($attr['align'])) {
+ $align = 'N';
+ } else {
+ switch($attr['align']) {
+ case 'top':{
+ $align = 'T';
+ break;
+ }
+ case 'middle':{
+ $align = 'M';
+ break;
+ }
+ case 'bottom':{
+ $align = 'B';
+ break;
+ }
+ default:{
+ $align = 'N';
+ break;
+ }
+ }
+ }
+ $this->Image($attr['src'], $this->GetX(),$this->GetY(), $this->pixelsToMillimeters($attr['width']), $this->pixelsToMillimeters($attr['height']), '', '', $align);
+
+ }
+ break;
+ }
+ case 'ul': {
+ $this->listordered = false;
+ $this->listcount = 0;
+ break;
+ }
+ case 'ol': {
+ $this->listordered = true;
+ $this->listcount = 0;
+ break;
+ }
+ case 'li': {
+ $this->Ln();
+ if ($this->listordered) {
+ if (isset($attr['value'])) {
+ $this->listcount = intval($attr['value']);
+ }
+ $this->lispacer = " ".(++$this->listcount).". ";
+ } else {
+ //unordered list simbol
+ $this->lispacer = " - ";
+ }
+ $rtldir = $this->tmprtl;
+ $this->tmprtl = false;
+ $this->Write($this->lasth, $this->lispacer, '', $fill);
+ $this->tmprtl = $rtldir;
+ break;
+ }
+ case 'blockquote':
+ case 'br': {
+ $this->Ln();
+ if(strlen($this->lispacer) > 0) {
+ if ($this->rtl) {
+ $this->x -= $this->GetStringWidth($this->lispacer);
+ } else {
+ $this->x += $this->GetStringWidth($this->lispacer);
+ }
+ }
+ break;
+ }
+ case 'p': {
+ $this->Ln();
+ $this->Ln();
+ break;
+ }
+ case 'sup': {
+ $currentFontSize = $this->FontSize;
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetFontSize($this->FontSizePt * K_SMALL_RATIO);
+ $this->SetXY($this->GetX(), $this->GetY() - (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO)));
+ break;
+ }
+ case 'sub': {
+ $currentFontSize = $this->FontSize;
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetFontSize($this->FontSizePt * K_SMALL_RATIO);
+ $this->SetXY($this->GetX(), $this->GetY() + (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO)));
+ break;
+ }
+ case 'small': {
+ $currentFontSize = $this->FontSize;
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetFontSize($this->FontSizePt * K_SMALL_RATIO);
+ $this->SetXY($this->GetX(), $this->GetY() + (($currentFontSize - $this->FontSize)/3));
+ break;
+ }
+ case 'font': {
+ if (isset($attr['color']) AND $attr['color']!='') {
+ $coul = $this->convertColorHexToDec($attr['color']);
+ $this->SetTextColor($coul['R'],$coul['G'],$coul['B']);
+ $this->issetcolor=true;
+ }
+ if (isset($attr['face']) and in_array(strtolower($attr['face']), $this->fontlist)) {
+ $this->SetFont(strtolower($attr['face']));
+ $this->issetfont=true;
+ }
+ if (isset($attr['size'])) {
+ $headsize = intval($attr['size']);
+ } else {
+ $headsize = 0;
+ }
+ $currentFontSize = $this->FontSize;
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetFontSize($this->FontSizePt + $headsize);
+ $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO;
+ break;
+ }
+ case 'h1':
+ case 'h2':
+ case 'h3':
+ case 'h4':
+ case 'h5':
+ case 'h6': {
+ $headsize = (4 - substr($tag, 1)) * 2;
+ $currentFontSize = $this->FontSize;
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetFontSize($this->FontSizePt + $headsize);
+ $this->setStyle('b', true);
+ $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO;
+ break;
+ }
+ }
+ }
+
+ /**
+ * Process closing tags.
+ * @param string $tag tag name (in uppercase)
+ * @access private
+ */
+ private function closedHTMLTagHandler($tag) {
+ //Closing tag
+ switch($tag) {
+ case 'td':
+ case 'th': {
+ $this->tdbegin = false;
+ $this->tdwidth = 0;
+ $this->tdheight = 0;
+ if($this->rtl) {
+ $this->tdalign = "R";
+ } else {
+ $this->tdalign = "L";
+ }
+ $this->tdbgcolor = false;
+ $this->SetFillColor($this->prevFillColor[0], $this->prevFillColor[1], $this->prevFillColor[2]);
+ break;
+ }
+ case 'tr': {
+ $this->Ln();
+ break;
+ }
+ case 'table': {
+ $this->tableborder=0;
+ break;
+ }
+ case 'strong': {
+ $this->setStyle('b', false);
+ break;
+ }
+ case 'em': {
+ $this->setStyle('i', false);
+ break;
+ }
+ case 'b':
+ case 'i':
+ case 'u': {
+ $this->setStyle($tag, false);
+ break;
+ }
+ case 'a': {
+ $this->HREF = '';
+ break;
+ }
+ case 'sup': {
+ $currentFontSize = $this->FontSize;
+ $this->SetFontSize($this->tempfontsize);
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetXY($this->GetX(), $this->GetY() - (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO)));
+ break;
+ }
+ case 'sub': {
+ $currentFontSize = $this->FontSize;
+ $this->SetFontSize($this->tempfontsize);
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetXY($this->GetX(), $this->GetY() + (($currentFontSize - $this->FontSize)*(K_SMALL_RATIO)));
+ break;
+ }
+ case 'small': {
+ $currentFontSize = $this->FontSize;
+ $this->SetFontSize($this->tempfontsize);
+ $this->tempfontsize = $this->FontSizePt;
+ $this->SetXY($this->GetX(), $this->GetY() - (($this->FontSize - $currentFontSize)/3));
+ break;
+ }
+ case 'font': {
+ if ($this->issetcolor == true) {
+ $this->SetTextColor($this->prevTextColor[0], $this->prevTextColor[1], $this->prevTextColor[2]);
+ }
+ if ($this->issetfont) {
+ $this->FontFamily = $this->prevFontFamily;
+ $this->FontStyle = $this->prevFontStyle;
+ $this->SetFont($this->FontFamily);
+ $this->issetfont = false;
+ }
+ $currentFontSize = $this->FontSize;
+ $this->SetFontSize($this->tempfontsize);
+ $this->tempfontsize = $this->FontSizePt;
+ //$this->TextColor = $this->prevTextColor;
+ $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO;
+ break;
+ }
+ case 'p': {
+ $this->Ln();
+ $this->Ln();
+ break;
+ }
+ case 'ul':
+ case 'ol': {
+ $this->Ln();
+ $this->Ln();
+ break;
+ }
+ case 'li': {
+ $this->lispacer = "";
+ break;
+ }
+ case 'h1':
+ case 'h2':
+ case 'h3':
+ case 'h4':
+ case 'h5':
+ case 'h6': {
+ $currentFontSize = $this->FontSize;
+ $this->SetFontSize($this->tempfontsize);
+ $this->tempfontsize = $this->FontSizePt;
+ $this->setStyle('b', false);
+ $this->Ln();
+ $this->lasth = $this->FontSize * K_CELL_HEIGHT_RATIO;
+ break;
+ }
+ default : {
+ break;
+ }
+ }
+ $this->tmprtl = false;
+ }
+
+ /**
+ * Sets font style.
+ * @param string $tag tag name (in lowercase)
+ * @param boolean $enable
+ * @access private
+ */
+ private function setStyle($tag, $enable) {
+ //Modify style and select corresponding font
+ $this->$tag += ($enable ? 1 : -1);
+ $style='';
+ foreach(array('b', 'i', 'u') as $s) {
+ if($this->$s > 0) {
+ $style .= $s;
+ }
+ }
+ $this->SetFont('', $style);
+ }
+
+ /**
+ * Output anchor link.
+ * @param string $url link URL
+ * @param string $name link name
+ * @param int $fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ * @access public
+ */
+ public function addHtmlLink($url, $name, $fill=0) {
+ //Put a hyperlink
+ $this->SetTextColor(0, 0, 255);
+ $this->setStyle('u', true);
+ $this->Write($this->lasth, $name, $url, $fill);
+ $this->setStyle('u', false);
+ $this->SetTextColor(0);
+ }
+
+ /**
+ * Returns an associative array (keys: R,G,B) from
+ * a hex html code (e.g. #3FE5AA).
+ * @param string $color hexadecimal html color [#rrggbb]
+ * @return array
+ * @access private
+ */
+ private function convertColorHexToDec($color = "#000000"){
+ $tbl_color = array();
+ $tbl_color['R'] = hexdec(substr($color, 1, 2));
+ $tbl_color['G'] = hexdec(substr($color, 3, 2));
+ $tbl_color['B'] = hexdec(substr($color, 5, 2));
+ return $tbl_color;
+ }
+
+ /**
+ * Converts pixels to millimeters in 72 dpi.
+ * @param int $px pixels
+ * @return float millimeters
+ * @access private
+ */
+ private function pixelsToMillimeters($px){
+ return $px * 25.4 / 72;
+ }
+
+ /**
+ * Reverse function for htmlentities.
+ * Convert entities in UTF-8.
+ *
+ * @param $text_to_convert Text to convert.
+ * @return string converted
+ */
+ public function unhtmlentities($text_to_convert) {
+ return html_entity_decode($text_to_convert, ENT_QUOTES, $this->encoding);
+ }
+
+ // ENCRYPTION METHODS ----------------------------------
+ // SINCE 2.0.000 (2008-01-02)
+ /**
+ * Compute encryption key depending on object number where the encrypted data is stored
+ * @param int $n object number
+ * @since 2.0.000 (2008-01-02)
+ */
+ protected function _objectkey($n) {
+ return substr($this->_md5_16($this->encryption_key.pack('VXxx',$n)),0,10);
+ }
+
+ /**
+ * Put encryption on PDF document
+ * @since 2.0.000 (2008-01-02)
+ */
+ protected function _putencryption() {
+ $this->_out('/Filter /Standard');
+ $this->_out('/V 1');
+ $this->_out('/R 2');
+ $this->_out('/O ('.$this->_escape($this->Ovalue).')');
+ $this->_out('/U ('.$this->_escape($this->Uvalue).')');
+ $this->_out('/P '.$this->Pvalue);
+ }
+
+ /**
+ * Returns the input text exrypted using RC4 algorithm and the specified key.
+ * RC4 is the standard encryption algorithm used in PDF format
+ * @param string $key encryption key
+ * @param String $text input text to be encrypted
+ * @return String encrypted text
+ * @since 2.0.000 (2008-01-02)
+ * @author Klemen Vodopivec
+ */
+ protected function _RC4($key, $text) {
+ if ($this->last_rc4_key != $key) {
+ $k = str_repeat($key, 256/strlen($key)+1);
+ $rc4 = range(0,255);
+ $j = 0;
+ for ($i=0; $i<256; $i++) {
+ $t = $rc4[$i];
+ $j = ($j + $t + ord($k{$i})) % 256;
+ $rc4[$i] = $rc4[$j];
+ $rc4[$j] = $t;
+ }
+ $this->last_rc4_key = $key;
+ $this->last_rc4_key_c = $rc4;
+ } else {
+ $rc4 = $this->last_rc4_key_c;
+ }
+ $len = strlen($text);
+ $a = 0;
+ $b = 0;
+ $out = '';
+ for ($i=0; $i<$len; $i++) {
+ $a = ($a+1)%256;
+ $t= $rc4[$a];
+ $b = ($b+$t)%256;
+ $rc4[$a] = $rc4[$b];
+ $rc4[$b] = $t;
+ $k = $rc4[($rc4[$a]+$rc4[$b])%256];
+ $out.=chr(ord($text{$i}) ^ $k);
+ }
+ return $out;
+ }
+
+ /**
+ * Encrypts a string using MD5 and returns it's value as a binary string.
+ * @param string $str input string
+ * @return String MD5 encrypted binary string
+ * @since 2.0.000 (2008-01-02)
+ * @author Klemen Vodopivec
+ */
+ protected function _md5_16($str) {
+ return pack('H*',md5($str));
+ }
+
+ /**
+ * Compute O value (used for RC4 encryption)
+ * @param String $user_pass user password
+ * @param String $owner_pass user password
+ * @return String O value
+ * @since 2.0.000 (2008-01-02)
+ * @author Klemen Vodopivec
+ */
+ protected function _Ovalue($user_pass, $owner_pass) {
+ $tmp = $this->_md5_16($owner_pass);
+ $owner_RC4_key = substr($tmp,0,5);
+ return $this->_RC4($owner_RC4_key, $user_pass);
+ }
+
+ /**
+ * Compute U value (used for RC4 encryption)
+ * @return String U value
+ * @since 2.0.000 (2008-01-02)
+ * @author Klemen Vodopivec
+ */
+ protected function _Uvalue() {
+ return $this->_RC4($this->encryption_key, $this->padding);
+ }
+
+ /**
+ * Compute encryption key
+ * @param String $user_pass user password
+ * @param String $owner_pass user password
+ * @param String $protection protection type
+ * @since 2.0.000 (2008-01-02)
+ * @author Klemen Vodopivec
+ */
+ protected function _generateencryptionkey($user_pass, $owner_pass, $protection) {
+ // Pad passwords
+ $user_pass = substr($user_pass.$this->padding,0,32);
+ $owner_pass = substr($owner_pass.$this->padding,0,32);
+ // Compute O value
+ $this->Ovalue = $this->_Ovalue($user_pass,$owner_pass);
+ // Compute encyption key
+ $tmp = $this->_md5_16($user_pass.$this->Ovalue.chr($protection)."\xFF\xFF\xFF");
+ $this->encryption_key = substr($tmp,0,5);
+ // Compute U value
+ $this->Uvalue = $this->_Uvalue();
+ // Compute P value
+ $this->Pvalue = -(($protection^255)+1);
+ }
+
+ /**
+ * Set document protection
+ * The permission array is composed of values taken from the following ones:
+ * - copy: copy text and images to the clipboard
+ * - print: print the document
+ * - modify: modify it (except for annotations and forms)
+ * - annot-forms: add annotations and forms
+ * Remark: the protection against modification is for people who have the full Acrobat product.
+ * If you don't set any password, the document will open as usual. If you set a user password, the PDF viewer will ask for it before displaying the document. The master password, if different from the user one, can be used to get full access.
+ * Note: protecting a document requires to encrypt it, which increases the processing time a lot. This can cause a PHP time-out in some cases, especially if the document contains images or fonts.
+ * @param Array $permissions the set of permissions. Empty by default (only viewing is allowed). (print, modify, copy, annot-forms)
+ * @param String $user_pass user password. Empty by default.
+ * @param String $owner_pass owner password. If not specified, a random value is used.
+ * @since 2.0.000 (2008-01-02)
+ * @author Klemen Vodopivec
+ */
+ public function SetProtection($permissions=array(),$user_pass='',$owner_pass=null) {
+ $options = array('print' => 4, 'modify' => 8, 'copy' => 16, 'annot-forms' => 32);
+ $protection = 192;
+ foreach($permissions as $permission) {
+ if (!isset($options[$permission])) {
+ $this->Error('Incorrect permission: '.$permission);
+ }
+ $protection += $options[$permission];
+ }
+ if ($owner_pass === null) {
+ $owner_pass = uniqid(rand());
+ }
+ $this->encrypted = true;
+ $this->_generateencryptionkey($user_pass, $owner_pass, $protection);
+ }
+
+ // END OF ENCRYPTION FUNCTIONS -------------------------
+
+ // START TRANSFORMATIONS SECTION -----------------------
+ // authors: Moritz Wagner, Andreas Wurmser, Nicola Asuni
+
+ /**
+ * Starts a 2D tranformation saving current graphic state.
+ * This function must be called before scaling, mirroring, translation, rotation and skewing.
+ * Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior.
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function StartTransform() {
+ $this->_out('q');
+ }
+
+ /**
+ * Stops a 2D tranformation restoring previous graphic state.
+ * This function must be called after scaling, mirroring, translation, rotation and skewing.
+ * Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior.
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function StopTransform() {
+ $this->_out('Q');
+ }
+ /**
+ * Horizontal Scaling.
+ * @param float $s_x scaling factor for width as percent. 0 is not allowed.
+ * @param int $x abscissa of the scaling center. Default is current x position
+ * @param int $y ordinate of the scaling center. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function ScaleX($s_x, $x='', $y=''){
+ $this->Scale($s_x, 100, $x, $y);
+ }
+
+ /**
+ * Vertical Scaling.
+ * @param float $s_y scaling factor for height as percent. 0 is not allowed.
+ * @param int $x abscissa of the scaling center. Default is current x position
+ * @param int $y ordinate of the scaling center. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function ScaleY($s_y, $x='', $y=''){
+ $this->Scale(100, $s_y, $x, $y);
+ }
+
+ /**
+ * Vertical and horizontal proportional Scaling.
+ * @param float $s scaling factor for width and height as percent. 0 is not allowed.
+ * @param int $x abscissa of the scaling center. Default is current x position
+ * @param int $y ordinate of the scaling center. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function ScaleXY($s, $x='', $y=''){
+ $this->Scale($s, $s, $x, $y);
+ }
+
+ /**
+ * Vertical and horizontal non-proportional Scaling.
+ * @param float $s_x scaling factor for width as percent. 0 is not allowed.
+ * @param float $s_y scaling factor for height as percent. 0 is not allowed.
+ * @param int $x abscissa of the scaling center. Default is current x position
+ * @param int $y ordinate of the scaling center. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function Scale($s_x, $s_y, $x='', $y=''){
+ if($x === '') {
+ $x=$this->x;
+ }
+ if($y === '') {
+ $y=$this->y;
+ }
+ if($this->rtl) {
+ $x = $this->w - $x;
+ }
+ if($s_x == 0 OR $s_y == 0)
+ $this->Error('Please use values unequal to zero for Scaling');
+ $y=($this->h-$y)*$this->k;
+ $x*=$this->k;
+ //calculate elements of transformation matrix
+ $s_x/=100;
+ $s_y/=100;
+ $tm[0]=$s_x;
+ $tm[1]=0;
+ $tm[2]=0;
+ $tm[3]=$s_y;
+ $tm[4]=$x*(1-$s_x);
+ $tm[5]=$y*(1-$s_y);
+ //scale the coordinate system
+ $this->Transform($tm);
+ }
+
+ /**
+ * Horizontal Mirroring.
+ * @param int $x abscissa of the point. Default is current x position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function MirrorH($x=''){
+ $this->Scale(-100, 100, $x);
+ }
+
+ /**
+ * Verical Mirroring.
+ * @param int $y ordinate of the point. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function MirrorV($y=''){
+ $this->Scale(100, -100, '', $y);
+ }
+
+ /**
+ * Point reflection mirroring.
+ * @param int $x abscissa of the point. Default is current x position
+ * @param int $y ordinate of the point. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function MirrorP($x='',$y=''){
+ $this->Scale(-100, -100, $x, $y);
+ }
+
+ /**
+ * Reflection against a straight line through point (x, y) with the gradient angle (angle).
+ * @param float $angle gradient angle of the straight line. Default is 0 (horizontal line).
+ * @param int $x abscissa of the point. Default is current x position
+ * @param int $y ordinate of the point. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function MirrorL($angle=0, $x='',$y=''){
+ $this->Scale(-100, 100, $x, $y);
+ $this->Rotate(-2*($angle-90),$x,$y);
+ }
+
+ /**
+ * Translate graphic object horizontally.
+ * @param int $t_x movement to the right
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function TranslateX($t_x){
+ $this->Translate($t_x, 0);
+ }
+
+ /**
+ * Translate graphic object vertically.
+ * @param int $t_y movement to the bottom
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function TranslateY($t_y){
+ $this->Translate(0, $t_y, $x, $y);
+ }
+
+ /**
+ * Translate graphic object horizontally and vertically.
+ * @param int $t_x movement to the right
+ * @param int $t_y movement to the bottom
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function Translate($t_x, $t_y){
+ if($this->rtl) {
+ $t_x = -$t_x;
+ }
+ //calculate elements of transformation matrix
+ $tm[0]=1;
+ $tm[1]=0;
+ $tm[2]=0;
+ $tm[3]=1;
+ $tm[4]=$t_x*$this->k;
+ $tm[5]=-$t_y*$this->k;
+ //translate the coordinate system
+ $this->Transform($tm);
+ }
+
+ /**
+ * Rotate object.
+ * @param float $angle angle in degrees for counter-clockwise rotation
+ * @param int $x abscissa of the rotation center. Default is current x position
+ * @param int $y ordinate of the rotation center. Default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function Rotate($angle, $x='', $y=''){
+ if($x === '') {
+ $x=$this->x;
+ }
+ if($y === '') {
+ $y=$this->y;
+ }
+ if($this->rtl) {
+ $x = $this->w - $x;
+ $angle = -$angle;
+ }
+ $y=($this->h-$y)*$this->k;
+ $x*=$this->k;
+ //calculate elements of transformation matrix
+ $tm[0]=cos(deg2rad($angle));
+ $tm[1]=sin(deg2rad($angle));
+ $tm[2]=-$tm[1];
+ $tm[3]=$tm[0];
+ $tm[4]=$x+$tm[1]*$y-$tm[0]*$x;
+ $tm[5]=$y-$tm[0]*$y-$tm[1]*$x;
+ //rotate the coordinate system around ($x,$y)
+ $this->Transform($tm);
+ }
+
+ /**
+ * Skew horizontally.
+ * @param float $angle_x angle in degrees between -90 (skew to the left) and 90 (skew to the right)
+ * @param int $x abscissa of the skewing center. default is current x position
+ * @param int $y ordinate of the skewing center. default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function SkewX($angle_x, $x='', $y=''){
+ $this->Skew($angle_x, 0, $x, $y);
+ }
+
+ /**
+ * Skew vertically.
+ * @param float $angle_y angle in degrees between -90 (skew to the bottom) and 90 (skew to the top)
+ * @param int $x abscissa of the skewing center. default is current x position
+ * @param int $y ordinate of the skewing center. default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function SkewY($angle_y, $x='', $y=''){
+ $this->Skew(0, $angle_y, $x, $y);
+ }
+
+ /**
+ * Skew.
+ * @param float $angle_x angle in degrees between -90 (skew to the left) and 90 (skew to the right)
+ * @param float $angle_y angle in degrees between -90 (skew to the bottom) and 90 (skew to the top)
+ * @param int $x abscissa of the skewing center. default is current x position
+ * @param int $y ordinate of the skewing center. default is current y position
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ public function Skew($angle_x, $angle_y, $x='', $y=''){
+ if($x === '') {
+ $x=$this->x;
+ }
+ if($y === '') {
+ $y=$this->y;
+ }
+ if($this->rtl) {
+ $x = $this->w - $x;
+ $angle_x = -$angle_x;
+ }
+ if($angle_x <= -90 OR $angle_x >= 90 OR $angle_y <= -90 OR $angle_y >= 90)
+ $this->Error('Please use values between -90� and 90� for skewing');
+ $x*=$this->k;
+ $y=($this->h-$y)*$this->k;
+ //calculate elements of transformation matrix
+ $tm[0]=1;
+ $tm[1]=tan(deg2rad($angle_y));
+ $tm[2]=tan(deg2rad($angle_x));
+ $tm[3]=1;
+ $tm[4]=-$tm[2]*$y;
+ $tm[5]=-$tm[1]*$x;
+ //skew the coordinate system
+ $this->Transform($tm);
+ }
+
+ /**
+ * Apply graphic transformations.
+ * @since 2.1.000 (2008-01-07)
+ * @see StartTransform(), StopTransform()
+ */
+ protected function Transform($tm){
+ $this->_out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm', $tm[0],$tm[1],$tm[2],$tm[3],$tm[4],$tm[5]));
+ }
+
+ // END TRANSFORMATIONS SECTION -------------------------
+
+
+ // START GRAPHIC FUNCTIONS SECTION ---------------------
+ // The following section is based on the code provided by David Hernandez Sanz
+
+ /**
+ * Defines the line width. By default, the value equals 0.2 mm. The method can be called before the first page is created and the value is retained from page to page.
+ * @param float $width The width.
+ * @since 1.0
+ * @see Line(), Rect(), Cell(), MultiCell()
+ */
+ public function SetLineWidth($width) {
+ //Set line width
+ $this->LineWidth=$width;
+ if($this->page>0) {
+ $this->_out(sprintf('%.2f w',$width*$this->k));
+ }
+ }
+
+ /**
+ * Returns the current the line width.
+ * @return int Line width
+ * @since 2.1.000 (2008-01-07)
+ * @see Line(), SetLineWidth()
+ */
+ public function GetLineWidth() {
+ return $this->LineWidth;
+ }
+
+ /**
+ * Set line style.
+ *
+ * @param array $style Line style. Array with keys among the following:
+ * <ul>
+ * <li>width (float): Width of the line in user units.</li>
+ * <li>cap (string): Type of cap to put on the line. Possible values are:
+ * butt, round, square. The difference between "square" and "butt" is that
+ * "square" projects a flat end past the end of the line.</li>
+ * <li>join (string): Type of join. Possible values are: miter, round,
+ * bevel.</li>
+ * <li>dash (mixed): Dash pattern. Is 0 (without dash) or string with
+ * series of length values, which are the lengths of the on and off dashes.
+ * For example: "2" represents 2 on, 2 off, 2 on, 2 off, ...; "2,1" is 2 on,
+ * 1 off, 2 on, 1 off, ...</li>
+ * <li>phase (integer): Modifier on the dash pattern which is used to shift
+ * the point at which the pattern starts.</li>
+ * <li>color (array): Draw color. Format: array(red, green, blue).</li>
+ * </ul>
+ * @access public
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function SetLineStyle($style) {
+ extract($style);
+ if (isset($width)) {
+ $width_prev = $this->LineWidth;
+ $this->SetLineWidth($width);
+ $this->LineWidth = $width_prev;
+ }
+ if (isset($cap)) {
+ $ca = array("butt" => 0, "round"=> 1, "square" => 2);
+ if (isset($ca[$cap])) {
+ $this->_out($ca[$cap] . " J");
+ }
+ }
+ if (isset($join)) {
+ $ja = array("miter" => 0, "round" => 1, "bevel" => 2);
+ if (isset($ja[$join])) {
+ $this->_out($ja[$join] . " j");
+ }
+ }
+ if (isset($dash)) {
+ $dash_string = "";
+ if ($dash) {
+ if (ereg("^.+,", $dash)) {
+ $tab = explode(",", $dash);
+ } else {
+ $tab = array($dash);
+ }
+ $dash_string = "";
+ foreach ($tab as $i => $v) {
+ if ($i) {
+ $dash_string .= " ";
+ }
+ $dash_string .= sprintf("%.2f", $v);
+ }
+ }
+ if (!isset($phase) OR !$dash) {
+ $phase = 0;
+ }
+ $this->_out(sprintf("[%s] %.2f d", $dash_string, $phase));
+ }
+ if (isset($color)) {
+ list($r, $g, $b) = $color;
+ $this->SetDrawColor($r, $g, $b);
+ }
+ }
+
+ /*
+ * Set a draw point.
+ * @param float $x Abscissa of point.
+ * @param float $y Ordinate of point.
+ * @access private
+ * @since 2.1.000 (2008-01-08)
+ */
+ protected function _outPoint($x, $y) {
+ if($this->rtl) {
+ $x = $this->w - $x;
+ }
+ $this->_out(sprintf("%.2f %.2f m", $x * $this->k, ($this->h - $y) * $this->k));
+ }
+
+ /*
+ * Draws a line from last draw point.
+ * @param float $x Abscissa of end point.
+ * @param float $y Ordinate of end point.
+ * @access private
+ * @since 2.1.000 (2008-01-08)
+ */
+ protected function _outLine($x, $y) {
+ if($this->rtl) {
+ $x = $this->w - $x;
+ }
+ $this->_out(sprintf("%.2f %.2f l", $x * $this->k, ($this->h - $y) * $this->k));
+ }
+
+ /**
+ * Draws a rectangle.
+ * @param float $x Abscissa of upper-left corner (or upper-right corner for RTL language).
+ * @param float $y Ordinate of upper-left corner (or upper-right corner for RTL language).
+ * @param float $w Width.
+ * @param float $h Height.
+ * @param string $op options
+ * @access protected
+ * @since 2.1.000 (2008-01-08)
+ */
+ protected function _outRect($x, $y, $w, $h, $op) {
+ if($this->rtl) {
+ $x = $this->w - $x - $w;
+ }
+ $this->_out(sprintf('%.2f %.2f %.2f %.2f re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));
+ }
+
+ /*
+ * Draws a Bezier curve from last draw point.
+ * The Bezier curve is a tangent to the line between the control points at either end of the curve.
+ * @param float $x1 Abscissa of control point 1.
+ * @param float $y1 Ordinate of control point 1.
+ * @param float $x2 Abscissa of control point 2.
+ * @param float $y2 Ordinate of control point 2.
+ * @param float $x3 Abscissa of end point.
+ * @param float $y3 Ordinate of end point.
+ * @access private
+ * @since 2.1.000 (2008-01-08)
+ */
+ protected function _outCurve($x1, $y1, $x2, $y2, $x3, $y3) {
+ if($this->rtl) {
+ $x1 = $this->w - $x1;
+ $x2 = $this->w - $x2;
+ $x3 = $this->w - $x3;
+ }
+ $this->_out(sprintf("%.2f %.2f %.2f %.2f %.2f %.2f c", $x1 * $this->k, ($this->h - $y1) * $this->k, $x2 * $this->k, ($this->h - $y2) * $this->k, $x3 * $this->k, ($this->h - $y3) * $this->k));
+ }
+
+ /**
+ * Draws a line between two points.
+ * @param float $x1 Abscissa of first point.
+ * @param float $y1 Ordinate of first point.
+ * @param float $x2 Abscissa of second point.
+ * @param float $y2 Ordinate of second point.
+ * @param array $style Line style. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
+ * @access public
+ * @since 1.0
+ * @see SetLineWidth(), SetDrawColor(), SetLineStyle()
+ */
+ public function Line($x1, $y1, $x2, $y2, $style = array()) {
+ if ($style) {
+ $this->SetLineStyle($style);
+ }
+ $this->_outPoint($x1, $y1);
+ $this->_outLine($x2, $y2);
+ $this->_out(" S");
+ }
+
+ /**
+ * Draws a rectangle.
+ * @param float $x Abscissa of upper-left corner (or upper-right corner for RTL language).
+ * @param float $y Ordinate of upper-left corner (or upper-right corner for RTL language).
+ * @param float $w Width.
+ * @param float $h Height.
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $border_style Border style of rectangle. Array with keys among the following:
+ * <ul>
+ * <li>all: Line style of all borders. Array like for {@link SetLineStyle SetLineStyle}.</li>
+ * <li>L, T, R, B or combinations: Line style of left, top, right or bottom border. Array like for {@link SetLineStyle SetLineStyle}.</li>
+ * </ul>
+ * If a key is not present or is null, not draws the border. Default value: default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @access public
+ * @since 1.0
+ * @see SetLineStyle()
+ */
+ public function Rect($x, $y, $w, $h, $style='', $border_style = array(), $fill_color = array()) {
+ if (!(false === strpos($style, "F")) AND $fill_color) {
+ list($r, $g, $b) = $fill_color;
+ $this->SetFillColor($r, $g, $b);
+ }
+ switch ($style) {
+ case "F": {
+ $op='f';
+ $border_style = array();
+ $this->_outRect($x, $y, $w, $h, $op);
+ break;
+ }
+ case "DF":
+ case "FD": {
+ if (!$border_style OR isset($border_style["all"])) {
+ $op='B';
+ if (isset($border_style["all"])) {
+ $this->SetLineStyle($border_style["all"]);
+ $border_style = array();
+ }
+ } else {
+ $op='f';
+ }
+ $this->_outRect($x, $y, $w, $h, $op);
+ break;
+ }
+ default: {
+ $op='S';
+ if (!$border_style OR isset($border_style["all"])) {
+ if (isset($border_style["all"]) && $border_style["all"]) {
+ $this->SetLineStyle($border_style["all"]);
+ $border_style = array();
+ }
+ $this->_outRect($x, $y, $w, $h, $op);
+ }
+ break;
+ }
+ }
+ if ($border_style) {
+ $border_style2 = array();
+ foreach ($border_style as $line => $value) {
+ $lenght = strlen($line);
+ for ($i = 0; $i < $lenght; $i++) {
+ $border_style2[$line[$i]] = $value;
+ }
+ }
+ $border_style = $border_style2;
+ if (isset($border_style["L"]) && $border_style["L"]) {
+ $this->Line($x, $y, $x, $y + $h, $border_style["L"]);
+ }
+ if (isset($border_style["T"]) && $border_style["T"]) {
+ $this->Line($x, $y, $x + $w, $y, $border_style["T"]);
+ }
+ if (isset($border_style["R"]) && $border_style["R"]) {
+ $this->Line($x + $w, $y, $x + $w, $y + $h, $border_style["R"]);
+ }
+ if (isset($border_style["B"]) && $border_style["B"]) {
+ $this->Line($x, $y + $h, $x + $w, $y + $h, $border_style["B"]);
+ }
+ }
+ }
+
+
+ /**
+ * Draws a Bezier curve.
+ * The Bezier curve is a tangent to the line between the control points at
+ * either end of the curve.
+ * @param float $x0 Abscissa of start point.
+ * @param float $y0 Ordinate of start point.
+ * @param float $x1 Abscissa of control point 1.
+ * @param float $y1 Ordinate of control point 1.
+ * @param float $x2 Abscissa of control point 2.
+ * @param float $y2 Ordinate of control point 2.
+ * @param float $x3 Abscissa of end point.
+ * @param float $y3 Ordinate of end point.
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $line_style Line style of curve. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @access public
+ * @see SetLineStyle()
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function Curve($x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3, $style = "", $line_style = array(), $fill_color = array()) {
+ if (!(false === strpos($style, "F")) AND $fill_color) {
+ list($r, $g, $b) = $fill_color;
+ $this->SetFillColor($r, $g, $b);
+ }
+ switch ($style) {
+ case "F": {
+ $op = "f";
+ $line_style = array();
+ break;
+ }
+ case "FD":
+ case "DF": {
+ $op = "B";
+ break;
+ }
+ default: {
+ $op = "S";
+ break;
+ }
+ }
+ if ($line_style) {
+ $this->SetLineStyle($line_style);
+ }
+ $this->_outPoint($x0, $y0);
+ $this->_outCurve($x1, $y1, $x2, $y2, $x3, $y3);
+ $this->_out($op);
+ }
+
+ /**
+ * Draws an ellipse.
+ * An ellipse is formed from n Bezier curves.
+ * @param float $x0 Abscissa of center point.
+ * @param float $y0 Ordinate of center point.
+ * @param float $rx Horizontal radius.
+ * @param float $ry Vertical radius (if ry = 0 then is a circle, see {@link Circle Circle}). Default value: 0.
+ * @param float $angle: Angle oriented (anti-clockwise). Default value: 0.
+ * @param float $astart: Angle start of draw line. Default value: 0.
+ * @param float $afinish: Angle finish of draw line. Default value: 360.
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * <li>C: Draw close.</li>
+ * </ul>
+ * @param array $line_style Line style of ellipse. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @param integer $nc Number of curves used in ellipse. Default value: 8.
+ * @access public
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function Ellipse($x0, $y0, $rx, $ry = 0, $angle = 0, $astart = 0, $afinish = 360, $style = "", $line_style = array(), $fill_color = array(), $nc = 8) {
+ if ($angle) {
+ $this->StartTransform();
+ $this->Rotate($angle, $x0, $y0);
+ $this->Ellipse($x0, $y0, $rx, $ry, 0, $astart, $afinish, $style, $line_style, $fill_color, $nc);
+ $this->StopTransform();
+ return;
+ }
+ if ($rx) {
+ if (!(false === strpos($style, "F")) AND $fill_color) {
+ list($r, $g, $b) = $fill_color;
+ $this->SetFillColor($r, $g, $b);
+ }
+ switch ($style) {
+ case "F": {
+ $op = "f";
+ $line_style = array();
+ break;
+ }
+ case "FD":
+ case "DF": {
+ $op = "B";
+ break;
+ }
+ case "C": {
+ $op = "s"; // Small "s" signifies closing the path as well
+ break;
+ }
+ default: {
+ $op = "S";
+ break;
+ }
+ }
+ if ($line_style) {
+ $this->SetLineStyle($line_style);
+ }
+ if (!$ry) {
+ $ry = $rx;
+ }
+ $rx *= $this->k;
+ $ry *= $this->k;
+ if ($nc < 2){
+ $nc = 2;
+ }
+ $astart = deg2rad((float) $astart);
+ $afinish = deg2rad((float) $afinish);
+ $total_angle = $afinish - $astart;
+ $dt = $total_angle / $nc;
+ $dtm = $dt/3;
+ $x0 *= $this->k;
+ $y0 = ($this->h - $y0) * $this->k;
+ $t1 = $astart;
+ $a0 = $x0 + ($rx * cos($t1));
+ $b0 = $y0 + ($ry * sin($t1));
+ $c0 = -$rx * sin($t1);
+ $d0 = $ry * cos($t1);
+ $this->_outPoint($a0 / $this->k, $this->h - ($b0 / $this->k));
+ for ($i = 1; $i <= $nc; $i++) {
+ // Draw this bit of the total curve
+ $t1 = ($i * $dt) + $astart;
+ $a1 = $x0 + ($rx * cos($t1));
+ $b1 = $y0 + ($ry * sin($t1));
+ $c1 = -$rx * sin($t1);
+ $d1 = $ry * cos($t1);
+ $this->_outCurve(($a0 + ($c0 * $dtm)) / $this->k, $this->h - (($b0 + ($d0 * $dtm)) / $this->k), ($a1 - ($c1 * $dtm)) / $this->k, $this->h - (($b1 - ($d1 * $dtm)) / $this->k), $a1 / $this->k, $this->h - ($b1 / $this->k));
+ $a0 = $a1;
+ $b0 = $b1;
+ $c0 = $c1;
+ $d0 = $d1;
+ }
+ $this->_out($op);
+ }
+ }
+
+ /**
+ * Draws a circle.
+ * A circle is formed from n Bezier curves.
+ * @param float $x0 Abscissa of center point.
+ * @param float $y0 Ordinate of center point.
+ * @param float $r Radius.
+ * @param float $astart: Angle start of draw line. Default value: 0.
+ * @param float $afinish: Angle finish of draw line. Default value: 360.
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * <li>C: Draw close.</li>
+ * </ul>
+ * @param array $line_style Line style of circle. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @param integer $nc Number of curves used in circle. Default value: 8.
+ * @access public
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function Circle($x0, $y0, $r, $astart = 0, $afinish = 360, $style = "", $line_style = array(), $fill_color = array(), $nc = 8) {
+ $this->Ellipse($x0, $y0, $r, 0, 0, $astart, $afinish, $style, $line_style, $fill_color, $nc);
+ }
+
+ /**
+ * Draws a polygon.
+ * @param array $p Points 0 to ($np - 1). Array with values (x0, y0, x1, y1,..., x(np-1), y(np - 1))
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $line_style Line style of polygon. Array with keys among the following:
+ * <ul>
+ * <li>all: Line style of all lines. Array like for {@link SetLineStyle SetLineStyle}.</li>
+ * <li>0 to ($np - 1): Line style of each line. Array like for {@link SetLineStyle SetLineStyle}.</li>
+ * </ul>
+ * If a key is not present or is null, not draws the line. Default value is default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @access public
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function Polygon($p, $style = "", $line_style = array(), $fill_color = array()) {
+ $np = count($p) / 2;
+ if (!(false === strpos($style, "F")) AND $fill_color) {
+ list($r, $g, $b) = $fill_color;
+ $this->SetFillColor($r, $g, $b);
+ }
+ switch ($style) {
+ case "F": {
+ $line_style = array();
+ $op = "f";
+ break;
+ }
+ case "FD":
+ case "DF": {
+ $op = "B";
+ break;
+ }
+ default: {
+ $op = "S";
+ break;
+ }
+ }
+ $draw = true;
+ if ($line_style) {
+ if (isset($line_style["all"])) {
+ $this->SetLineStyle($line_style["all"]);
+ }
+ else { // 0 .. (np - 1), op = {B, S}
+ $draw = false;
+ if ("B" == $op) {
+ $op = "f";
+ $this->_outPoint($p[0], $p[1]);
+ for ($i = 2; $i < ($np * 2); $i = $i + 2) {
+ $this->_outLine($p[$i], $p[$i + 1]);
+ }
+ $this->_outLine($p[0], $p[1]);
+ $this->_out($op);
+ }
+ $p[$np * 2] = $p[0];
+ $p[($np * 2) + 1] = $p[1];
+ for ($i = 0; $i < $np; $i++) {
+ if (isset($line_style[$i])) {
+ $this->Line($p[$i * 2], $p[($i * 2) + 1], $p[($i * 2) + 2], $p[($i * 2) + 3], $line_style[$i]);
+ }
+ }
+ }
+ }
+ if ($draw) {
+ $this->_outPoint($p[0], $p[1]);
+ for ($i = 2; $i < ($np * 2); $i = $i + 2) {
+ $this->_outLine($p[$i], $p[$i + 1]);
+ }
+ $this->_outLine($p[0], $p[1]);
+ $this->_out($op);
+ }
+ }
+
+ /**
+ * Draws a regular polygon.
+ * @param float $x0 Abscissa of center point.
+ * @param float $y0 Ordinate of center point.
+ * @param float $r: Radius of inscribed circle.
+ * @param integer $ns Number of sides.
+ * @param float $angle Angle oriented (anti-clockwise). Default value: 0.
+ * @param boolean $draw_circle Draw inscribed circle or not. Default value: false.
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $line_style Line style of polygon sides. Array with keys among the following:
+ * <ul>
+ * <li>all: Line style of all sides. Array like for {@link SetLineStyle SetLineStyle}.</li>
+ * <li>0 to ($ns - 1): Line style of each side. Array like for {@link SetLineStyle SetLineStyle}.</li>
+ * </ul>
+ * If a key is not present or is null, not draws the side. Default value is default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @param string $circle_style Style of rendering of inscribed circle (if draws). Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $circle_outLine_style Line style of inscribed circle (if draws). Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
+ * @param array $circle_fill_color Fill color of inscribed circle (if draws). Format: array(red, green, blue). Default value: default color (empty array).
+ * @access public
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function RegularPolygon($x0, $y0, $r, $ns, $angle = 0, $draw_circle = false, $style = "", $line_style = array(), $fill_color = array(), $circle_style = "", $circle_outLine_style = array(), $circle_fill_color = array()) {
+ if (3 > $ns) {
+ $ns = 3;
+ }
+ if ($draw_circle) {
+ $this->Circle($x0, $y0, $r, 0, 360, $circle_style, $circle_outLine_style, $circle_fill_color);
+ }
+ $p = array();
+ for ($i = 0; $i < $ns; $i++) {
+ $a = $angle + ($i * 360 / $ns);
+ $a_rad = deg2rad((float) $a);
+ $p[] = $x0 + ($r * sin($a_rad));
+ $p[] = $y0 + ($r * cos($a_rad));
+ }
+ $this->Polygon($p, $style, $line_style, $fill_color);
+ }
+
+ /**
+ * Draws a star polygon
+ * @param float $x0 Abscissa of center point.
+ * @param float $y0 Ordinate of center point.
+ * @param float $r Radius of inscribed circle.
+ * @param integer $nv Number of vertices.
+ * @param integer $ng Number of gap (if ($ng % $nv = 1) then is a regular polygon).
+ * @param float $angle: Angle oriented (anti-clockwise). Default value: 0.
+ * @param boolean $draw_circle: Draw inscribed circle or not. Default value is false.
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $line_style Line style of polygon sides. Array with keys among the following:
+ * <ul>
+ * <li>all: Line style of all sides. Array like for
+ * {@link SetLineStyle SetLineStyle}.</li>
+ * <li>0 to (n - 1): Line style of each side. Array like for {@link SetLineStyle SetLineStyle}.</li>
+ * </ul>
+ * If a key is not present or is null, not draws the side. Default value is default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @param string $circle_style Style of rendering of inscribed circle (if draws). Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $circle_outLine_style Line style of inscribed circle (if draws). Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
+ * @param array $circle_fill_color Fill color of inscribed circle (if draws). Format: array(red, green, blue). Default value: default color (empty array).
+ * @access public
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function StarPolygon($x0, $y0, $r, $nv, $ng, $angle = 0, $draw_circle = false, $style = "", $line_style = array(), $fill_color = array(), $circle_style = "", $circle_outLine_style = array(), $circle_fill_color = array()) {
+ if (2 > $nv) {
+ $nv = 2;
+ }
+ if ($draw_circle) {
+ $this->Circle($x0, $y0, $r, 0, 360, $circle_style, $circle_outLine_style, $circle_fill_color);
+ }
+ $p2 = array();
+ $visited = array();
+ for ($i = 0; $i < $nv; $i++) {
+ $a = $angle + ($i * 360 / $nv);
+ $a_rad = deg2rad((float) $a);
+ $p2[] = $x0 + ($r * sin($a_rad));
+ $p2[] = $y0 + ($r * cos($a_rad));
+ $visited[] = false;
+ }
+ $p = array();
+ $i = 0;
+ do {
+ $p[] = $p2[$i * 2];
+ $p[] = $p2[($i * 2) + 1];
+ $visited[$i] = true;
+ $i += $ng;
+ $i %= $nv;
+ } while (!$visited[$i]);
+ $this->Polygon($p, $style, $line_style, $fill_color);
+ }
+
+ /**
+ * Draws a rounded rectangle.
+ * @param float $x Abscissa of upper-left corner.
+ * @param float $y Ordinate of upper-left corner.
+ * @param float $w Width.
+ * @param float $h Height.
+ * @param float $r Radius of the rounded corners.
+ * @param string $round_corner Draws rounded corner or not. String with a 0 (not rounded i-corner) or 1 (rounded i-corner) in i-position. Positions are, in order and begin to 0: top left, top right, bottom right and bottom left. Default value: all rounded corner ("1111").
+ * @param string $style Style of rendering. Possible values are:
+ * <ul>
+ * <li>D or empty string: Draw (default).</li>
+ * <li>F: Fill.</li>
+ * <li>DF or FD: Draw and fill.</li>
+ * </ul>
+ * @param array $border_style Border style of rectangle. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
+ * @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
+ * @access public
+ * @since 2.1.000 (2008-01-08)
+ */
+ public function RoundedRect($x, $y, $w, $h, $r, $round_corner = "1111", $style = "", $border_style = array(), $fill_color = array()) {
+ if ("0000" == $round_corner) { // Not rounded
+ $this->Rect($x, $y, $w, $h, $style, $border_style, $fill_color);
+ } else { // Rounded
+ if (!(false === strpos($style, "F")) AND $fill_color) {
+ list($red, $g, $b) = $fill_color;
+ $this->SetFillColor($red, $g, $b);
+ }
+ switch ($style) {
+ case "F": {
+ $border_style = array();
+ $op = "f";
+ break;
+ }
+ case "FD":
+ case "DF": {
+ $op = "B";
+ break;
+ }
+ default: {
+ $op = "S";
+ break;
+ }
+ }
+ if ($border_style) {
+ $this->SetLineStyle($border_style);
+ }
+ $MyArc = 4 / 3 * (sqrt(2) - 1);
+ $this->_outPoint($x + $r, $y);
+ $xc = $x + $w - $r;
+ $yc = $y + $r;
+ $this->_outLine($xc, $y);
+ if ($round_corner[0]) {
+ $this->_outCurve($xc + ($r * $MyArc), $yc - $r, $xc + $r, $yc - ($r * $MyArc), $xc + $r, $yc);
+ } else {
+ $this->_outLine($x + $w, $y);
+ }
+ $xc = $x + $w - $r;
+ $yc = $y + $h - $r;
+ $this->_outLine($x + $w, $yc);
+ if ($round_corner[1]) {
+ $this->_outCurve($xc + $r, $yc + ($r * $MyArc), $xc + ($r * $MyArc), $yc + $r, $xc, $yc + $r);
+ } else {
+ $this->_outLine($x + $w, $y + $h);
+ }
+ $xc = $x + $r;
+ $yc = $y + $h - $r;
+ $this->_outLine($xc, $y + $h);
+ if ($round_corner[2]) {
+ $this->_outCurve($xc - ($r * $MyArc), $yc + $r, $xc - $r, $yc + ($r * $MyArc), $xc - $r, $yc);
+ } else {
+ $this->_outLine($x, $y + $h);
+ }
+ $xc = $x + $r;
+ $yc = $y + $r;
+ $this->_outLine($x, $yc);
+ if ($round_corner[3]) {
+ $this->_outCurve($xc - $r, $yc - ($r * $MyArc), $xc - ($r * $MyArc), $yc - $r, $xc, $yc - $r);
+ } else {
+ $this->_outLine($x, $y);
+ $this->_outLine($x + $r, $y);
+ }
+ $this->_out($op);
+ }
+ }
+
+ // END GRAPHIC FUNCTIONS SECTION -----------------------
+
+ // BIDIRECTIONAL TEXT SECTION --------------------------
+
+ /**
+ * Reverse the RLT substrings using the Bidirectional Algorithm (http://unicode.org/reports/tr9/).
+ * @param string $str string to manipulate.
+ * @param bool $forcertl if 'R' forces RTL, if 'L' forces LTR
+ * @return string
+ * @author Nicola Asuni
+ * @since 2.1.000 (2008-01-08)
+ */
+ protected function utf8StrRev($str, $setbom=false, $forcertl=false) {
+ global $unicode,$unicode_mirror, $unicode_arlet;
+ require_once(dirname(__FILE__).'/unicode_data.php');
+
+ // paragraph embedding level
+ $pel = 0;
+ // max level
+ $maxlevel = 0;
+
+ // check if string contains arabic text
+ if (preg_match(K_RE_PATTERN_ARABIC, $str)) {
+ $arabic = true;
+ } else {
+ $arabic = false;
+ }
+
+ // check if string contains RTL text
+ if (!($forcertl OR $arabic OR preg_match(K_RE_PATTERN_RTL, $str))) {
+ return $this->UTF8ToUTF16BE($str, false);
+ }
+
+ // convert string to array of unicode chars
+ $ta = $this->UTF8StringToArray($str);
+ // get number of chars
+ $numchars = count($ta);
+
+ if ($forcertl == 'R') {
+ $pel = 1;
+ } elseif ($forcertl == 'L') {
+ $pel = 0;
+ } else {
+ // P2. In each paragraph, find the first character of type L, AL, or R.
+ // P3. If a character is found in P2 and it is of type AL or R, then set the paragraph embedding level to one; otherwise, set it to zero.
+ for ($i=0; $i < $numchars; $i++) {
+ $type = $unicode[$ta[$i]];
+ if ($type == 'L') {
+ $pel = 0;
+ break;
+ } elseif (($type == 'AL') OR ($type == 'R')) {
+ $pel = 1;
+ break;
+ }
+ }
+ }
+
+ // Current Embedding Level
+ $cel = $pel;
+ // directional override status
+ $dos = 'N';
+ $remember = array();
+ // start-of-level-run
+ $sor = $pel % 2 ? 'R' : 'L';
+ $eor = $sor;
+
+ //$levels = array(array('level' => $cel, 'sor' => $sor, 'eor' => '', 'chars' => array()));
+ //$current_level = &$levels[count( $levels )-1];
+
+ // Array of characters data
+ $chardata = Array();
+
+ // X1. Begin by setting the current embedding level to the paragraph embedding level. Set the directional override status to neutral. Process each character iteratively, applying rules X2 through X9. Only embedding levels from 0 to 61 are valid in this phase.
+ // In the resolution of levels in rules I1 and I2, the maximum embedding level of 62 can be reached.
+ for ($i=0; $i < $numchars; $i++) {
+ if ($ta[$i] == K_RLE) {
+ // X2. With each RLE, compute the least greater odd embedding level.
+ // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to neutral.
+ // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status.
+ $next_level = $cel + ($cel % 2) + 1;
+ if ($next_level < 62) {
+ $remember[] = array('num' => K_RLE, 'cel' => $cel, 'dos' => $dos);
+ $cel = $next_level;
+ $dos = 'N';
+ $sor = $eor;
+ $eor = $cel % 2 ? 'R' : 'L';
+ }
+ } elseif ($ta[$i] == K_LRE) {
+ // X3. With each LRE, compute the least greater even embedding level.
+ // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to neutral.
+ // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status.
+ $next_level = $cel + 2 - ($cel % 2);
+ if ( $next_level < 62 ) {
+ $remember[] = array('num' => K_LRE, 'cel' => $cel, 'dos' => $dos);
+ $cel = $next_level;
+ $dos = 'N';
+ $sor = $eor;
+ $eor = $cel % 2 ? 'R' : 'L';
+ }
+ } elseif ($ta[$i] == K_RLO) {
+ // X4. With each RLO, compute the least greater odd embedding level.
+ // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to right-to-left.
+ // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status.
+ $next_level = $cel + ($cel % 2) + 1;
+ if ($next_level < 62) {
+ $remember[] = array('num' => K_RLO, 'cel' => $cel, 'dos' => $dos);
+ $cel = $next_level;
+ $dos = 'R';
+ $sor = $eor;
+ $eor = $cel % 2 ? 'R' : 'L';
+ }
+ } elseif ($ta[$i] == K_LRO) {
+ // X5. With each LRO, compute the least greater even embedding level.
+ // a. If this new level would be valid, then this embedding code is valid. Remember (push) the current embedding level and override status. Reset the current level to this new level, and reset the override status to left-to-right.
+ // b. If the new level would not be valid, then this code is invalid. Do not change the current level or override status.
+ $next_level = $cel + 2 - ($cel % 2);
+ if ( $next_level < 62 ) {
+ $remember[] = array('num' => K_LRO, 'cel' => $cel, 'dos' => $dos);
+ $cel = $next_level;
+ $dos = 'L';
+ $sor = $eor;
+ $eor = $cel % 2 ? 'R' : 'L';
+ }
+ } elseif ($ta[$i] == K_PDF) {
+ // X7. With each PDF, determine the matching embedding or override code. If there was a valid matching code, restore (pop) the last remembered (pushed) embedding level and directional override.
+ if (count($remember)) {
+ $last = count($remember ) - 1;
+ if (($remember[$last]['num'] == K_RLE) OR
+ ($remember[$last]['num'] == K_LRE) OR
+ ($remember[$last]['num'] == K_RLO) OR
+ ($remember[$last]['num'] == K_LRO)) {
+ $match = array_pop($remember);
+ $cel = $match['cel'];
+ $dos = $match['dos'];
+ $sor = $eor;
+ $eor = ($cel > $match['cel'] ? $cel : $match['cel']) % 2 ? 'R' : 'L';
+ }
+ }
+ } elseif (($ta[$i] != K_RLE) AND
+ ($ta[$i] != K_LRE) AND
+ ($ta[$i] != K_RLO) AND
+ ($ta[$i] != K_LRO) AND
+ ($ta[$i] != K_PDF)) {
+ // X6. For all types besides RLE, LRE, RLO, LRO, and PDF:
+ // a. Set the level of the current character to the current embedding level.
+ // b. Whenever the directional override status is not neutral, reset the current character type to the directional override status.
+ if ($dos != 'N') {
+ $chardir = $dos;
+ } else {
+ $chardir = $unicode[$ta[$i]];
+ }
+ // stores string characters and other information
+ $chardata[] = array('char' => $ta[$i], 'level' => $cel, 'type' => $chardir, 'sor' => $sor, 'eor' => $eor);
+ }
+ } // end for each char
+
+ // X8. All explicit directional embeddings and overrides are completely terminated at the end of each paragraph. Paragraph separators are not included in the embedding.
+ // X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes.
+ // X10. The remaining rules are applied to each run of characters at the same level. For each run, determine the start-of-level-run (sor) and end-of-level-run (eor) type, either L or R. This depends on the higher of the two levels on either side of the boundary (at the start or end of the paragraph, the level of the other run is the base embedding level). If the higher level is odd, the type is R; otherwise, it is L.
+
+ // 3.3.3 Resolving Weak Types
+ // Weak types are now resolved one level run at a time. At level run boundaries where the type of the character on the other side of the boundary is required, the type assigned to sor or eor is used.
+ // Nonspacing marks are now resolved based on the previous characters.
+ $numchars = count($chardata);
+
+ // W1. Examine each nonspacing mark (NSM) in the level run, and change the type of the NSM to the type of the previous character. If the NSM is at the start of the level run, it will get the type of sor.
+ $prevlevel = -1; // track level changes
+ $levcount = 0; // counts consecutive chars at the same level
+ for ($i=0; $i < $numchars; $i++) {
+ if ($chardata[$i]['type'] == 'NSM') {
+ if ($levcount) {
+ $chardata[$i]['type'] = $chardata[$i]['sor'];
+ } elseif ($i > 0) {
+ $chardata[$i]['type'] = $chardata[($i-1)]['type'];
+ }
+ }
+ if ($chardata[$i]['level'] != $prevlevel) {
+ $levcount = 0;
+ } else {
+ $levcount++;
+ }
+ $prevlevel = $chardata[$i]['level'];
+ }
+
+ // W2. Search backward from each instance of a European number until the first strong type (R, L, AL, or sor) is found. If an AL is found, change the type of the European number to Arabic number.
+ $prevlevel = -1;
+ $levcount = 0;
+ for ($i=0; $i < $numchars; $i++) {
+ if ($chardata[$i]['char'] == 'EN') {
+ for ($j=$levcount; $j >= 0; $j--) {
+ if ($chardata[$j]['type'] == 'AL') {
+ $chardata[$i]['type'] = 'AN';
+ } elseif (($chardata[$j]['type'] == 'L') OR ($chardata[$j]['type'] == 'R')) {
+ break;
+ }
+ }
+ }
+ if ($chardata[$i]['level'] != $prevlevel) {
+ $levcount = 0;
+ } else {
+ $levcount++;
+ }
+ $prevlevel = $chardata[$i]['level'];
+ }
+
+ // W3. Change all ALs to R.
+ for ($i=0; $i < $numchars; $i++) {
+ if ($chardata[$i]['type'] == 'AL') {
+ $chardata[$i]['type'] = 'R';
+ }
+ }
+
+ // W4. A single European separator between two European numbers changes to a European number. A single common separator between two numbers of the same type changes to that type.
+ $prevlevel = -1;
+ $levcount = 0;
+ for ($i=0; $i < $numchars; $i++) {
+ if (($levcount > 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) {
+ if (($chardata[$i]['type'] == 'ES') AND ($chardata[($i-1)]['type'] == 'EN') AND ($chardata[($i+1)]['type'] == 'EN')) {
+ $chardata[$i]['type'] = 'EN';
+ } elseif (($chardata[$i]['type'] == 'CS') AND ($chardata[($i-1)]['type'] == 'EN') AND ($chardata[($i+1)]['type'] == 'EN')) {
+ $chardata[$i]['type'] = 'EN';
+ } elseif (($chardata[$i]['type'] == 'CS') AND ($chardata[($i-1)]['type'] == 'AN') AND ($chardata[($i+1)]['type'] == 'AN')) {
+ $chardata[$i]['type'] = 'AN';
+ }
+ }
+ if ($chardata[$i]['level'] != $prevlevel) {
+ $levcount = 0;
+ } else {
+ $levcount++;
+ }
+ $prevlevel = $chardata[$i]['level'];
+ }
+
+ // W5. A sequence of European terminators adjacent to European numbers changes to all European numbers.
+ $prevlevel = -1;
+ $levcount = 0;
+ for ($i=0; $i < $numchars; $i++) {
+ if($chardata[$i]['type'] == 'ET') {
+ if (($levcount > 0) AND ($chardata[($i-1)]['type'] == 'EN')) {
+ $chardata[$i]['type'] = 'EN';
+ } else {
+ $j = $i+1;
+ while (($j < $numchars) AND ($chardata[$j]['level'] == $prevlevel)) {
+ if ($chardata[$j]['type'] == 'EN') {
+ $chardata[$i]['type'] = 'EN';
+ break;
+ } elseif ($chardata[$j]['type'] != 'ET') {
+ break;
+ }
+ $j++;
+ }
+ }
+ }
+ if ($chardata[$i]['level'] != $prevlevel) {
+ $levcount = 0;
+ } else {
+ $levcount++;
+ }
+ $prevlevel = $chardata[$i]['level'];
+ }
+
+ // W6. Otherwise, separators and terminators change to Other Neutral.
+ $prevlevel = -1;
+ $levcount = 0;
+ for ($i=0; $i < $numchars; $i++) {
+ if (($chardata[$i]['type'] == 'ET') OR ($chardata[$i]['type'] == 'ES') OR ($chardata[$i]['type'] == 'CS')) {
+ $chardata[$i]['type'] = 'ON';
+ }
+ if ($chardata[$i]['level'] != $prevlevel) {
+ $levcount = 0;
+ } else {
+ $levcount++;
+ }
+ $prevlevel = $chardata[$i]['level'];
+ }
+
+ //W7. Search backward from each instance of a European number until the first strong type (R, L, or sor) is found. If an L is found, then change the type of the European number to L.
+ $prevlevel = -1;
+ $levcount = 0;
+ for ($i=0; $i < $numchars; $i++) {
+ if ($chardata[$i]['char'] == 'EN') {
+ for ($j=$levcount; $j >= 0; $j--) {
+ if ($chardata[$j]['type'] == 'L') {
+ $chardata[$i]['type'] = 'L';
+ } elseif ($chardata[$j]['type'] == 'R') {
+ break;
+ }
+ }
+ }
+ if ($chardata[$i]['level'] != $prevlevel) {
+ $levcount = 0;
+ } else {
+ $levcount++;
+ }
+ $prevlevel = $chardata[$i]['level'];
+ }
+
+ // N1. A sequence of neutrals takes the direction of the surrounding strong text if the text on both sides has the same direction. European and Arabic numbers act as if they were R in terms of their influence on neutrals. Start-of-level-run (sor) and end-of-level-run (eor) are used at level run boundaries.
+ $prevlevel = -1;
+ $levcount = 0;
+ for ($i=0; $i < $numchars; $i++) {
+ if (($levcount > 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) {
+ if (($chardata[$i]['type'] == 'N') AND ($chardata[($i-1)]['type'] == 'L') AND ($chardata[($i+1)]['type'] == 'L')) {
+ $chardata[$i]['type'] = 'L';
+ } elseif (($chardata[$i]['type'] == 'N') AND
+ (($chardata[($i-1)]['type'] == 'R') OR ($chardata[($i-1)]['type'] == 'EN') OR ($chardata[($i-1)]['type'] == 'AN')) AND
+ (($chardata[($i+1)]['type'] == 'R') OR ($chardata[($i+1)]['type'] == 'EN') OR ($chardata[($i+1)]['type'] == 'AN'))) {
+ $chardata[$i]['type'] = 'R';
+ } elseif ($chardata[$i]['type'] == 'N') {
+ // N2. Any remaining neutrals take the embedding direction
+ $chardata[$i]['type'] = $chardata[$i]['sor'];
+ }
+ } elseif (($levcount == 0) AND (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] == $prevlevel)) {
+ // first char
+ if (($chardata[$i]['type'] == 'N') AND ($chardata[$i]['sor'] == 'L') AND ($chardata[($i+1)]['type'] == 'L')) {
+ $chardata[$i]['type'] = 'L';
+ } elseif (($chardata[$i]['type'] == 'N') AND
+ (($chardata[$i]['sor'] == 'R') OR ($chardata[$i]['sor'] == 'EN') OR ($chardata[$i]['sor'] == 'AN')) AND
+ (($chardata[($i+1)]['type'] == 'R') OR ($chardata[($i+1)]['type'] == 'EN') OR ($chardata[($i+1)]['type'] == 'AN'))) {
+ $chardata[$i]['type'] = 'R';
+ } elseif ($chardata[$i]['type'] == 'N') {
+ // N2. Any remaining neutrals take the embedding direction
+ $chardata[$i]['type'] = $chardata[$i]['sor'];
+ }
+ } elseif (($levcount > 0) AND ((($i+1) == $numchars) OR (($i+1) < $numchars) AND ($chardata[($i+1)]['level'] != $prevlevel))) {
+ //last char
+ if (($chardata[$i]['type'] == 'N') AND ($chardata[($i-1)]['type'] == 'L') AND ($chardata[$i]['eor'] == 'L')) {
+ $chardata[$i]['type'] = 'L';
+ } elseif (($chardata[$i]['type'] == 'N') AND
+ (($chardata[($i-1)]['type'] == 'R') OR ($chardata[($i-1)]['type'] == 'EN') OR ($chardata[($i-1)]['type'] == 'AN')) AND
+ (($chardata[$i]['eor'] == 'R') OR ($chardata[$i]['eor'] == 'EN') OR ($chardata[$i]['eor'] == 'AN'))) {
+ $chardata[$i]['type'] = 'R';
+ } elseif ($chardata[$i]['type'] == 'N') {
+ // N2. Any remaining neutrals take the embedding direction
+ $chardata[$i]['type'] = $chardata[$i]['sor'];
+ }
+ } elseif ($chardata[$i]['type'] == 'N') {
+ // N2. Any remaining neutrals take the embedding direction
+ $chardata[$i]['type'] = $chardata[$i]['sor'];
+ }
+ if ($chardata[$i]['level'] != $prevlevel) {
+ $levcount = 0;
+ } else {
+ $levcount++;
+ }
+ $prevlevel = $chardata[$i]['level'];
+ }
+
+ // I1. For all characters with an even (left-to-right) embedding direction, those of type R go up one level and those of type AN or EN go up two levels.
+ // I2. For all characters with an odd (right-to-left) embedding direction, those of type L, EN or AN go up one level.
+ for ($i=0; $i < $numchars; $i++) {
+ $odd = $chardata[$i]['level'] % 2;
+ if ($odd) {
+ if (($chardata[$i]['type'] == 'L') OR ($chardata[$i]['type'] == 'AN') OR ($chardata[$i]['type'] == 'EN')){
+ $chardata[$i]['level'] += 1;
+ }
+ } else {
+ if ($chardata[$i]['type'] == 'R') {
+ $chardata[$i]['level'] += 1;
+ } elseif (($chardata[$i]['type'] == 'AN') OR ($chardata[$i]['type'] == 'EN')){
+ $chardata[$i]['level'] += 2;
+ }
+ }
+ $maxlevel = max($chardata[$i]['level'],$maxlevel);
+ }
+
+ // L1. On each line, reset the embedding level of the following characters to the paragraph embedding level:
+ // 1. Segment separators,
+ // 2. Paragraph separators,
+ // 3. Any sequence of whitespace characters preceding a segment separator or paragraph separator, and
+ // 4. Any sequence of white space characters at the end of the line.
+ for ($i=0; $i < $numchars; $i++) {
+ if (($chardata[$i]['type'] == 'B') OR ($chardata[$i]['type'] == 'S')) {
+ $chardata[$i]['level'] = $pel;
+ } elseif ($chardata[$i]['type'] == 'WS') {
+ $j = $i+1;
+ while ($j < $numchars) {
+ if ((($chardata[$j]['type'] == 'B') OR ($chardata[$j]['type'] == 'S')) OR
+ (($j == ($numchars-1)) AND ($chardata[$j]['type'] == 'WS'))) {
+ $chardata[$i]['level'] = $pel;;
+ break;
+ } elseif ($chardata[$j]['type'] != 'WS') {
+ break;
+ }
+ $j++;
+ }
+ }
+ }
+
+ // Arabic Shaping
+ // Cursively connected scripts, such as Arabic or Syriac, require the selection of positional character shapes that depend on adjacent characters. Shaping is logically applied after the Bidirectional Algorithm is used and is limited to characters within the same directional run.
+ if ($arabic) {
+ for ($i=0; $i < $numchars; $i++) {
+ if ($unicode[$chardata[$i]['char']] == 'AL') {
+ if (($i > 0) AND (($i+1) < $numchars) AND
+ ($unicode[$chardata[($i-1)]['char']] == 'AL') AND
+ ($unicode[$chardata[($i+1)]['char']] == 'AL') AND
+ ($chardata[($i-1)]['type'] == $chardata[$i]['type']) AND
+ ($chardata[($i+1)]['type'] == $chardata[$i]['type'])) {
+ // medial
+ if (isset($unicode_arlet[$chardata[$i]['char']][3])) {
+ $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][3];
+ }
+ } elseif ((($i+1) < $numchars) AND
+ ($unicode[$chardata[($i+1)]['char']] == 'AL') AND
+ ($chardata[($i+1)]['type'] == $chardata[$i]['type'])) {
+ // initial
+ if (isset($unicode_arlet[$chardata[$i]['char']][2])) {
+ $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][2];
+ }
+ } elseif (($i > 0) AND
+ ($unicode[$chardata[($i-1)]['char']] == 'AL') AND
+ ($chardata[($i-1)]['type'] == $chardata[$i]['type'])) {
+ // final
+ if (isset($unicode_arlet[$chardata[$i]['char']][1])) {
+ $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][1];
+ }
+ } elseif (isset($unicode_arlet[$chardata[$i]['char']][0])) {
+ // isolated
+ $chardata[$i]['char'] = $unicode_arlet[$chardata[$i]['char']][0];
+ }
+ }
+ }
+ }
+
+ // L2. From the highest level found in the text to the lowest odd level on each line, including intermediate levels not actually present in the text, reverse any contiguous sequence of characters that are at that level or higher.
+ for ($j=$maxlevel; $j > 0; $j--) {
+ $ordarray = Array();
+ $revarr = Array();
+ $onlevel = false;
+ for ($i=0; $i < $numchars; $i++) {
+ if ($chardata[$i]['level'] >= $j) {
+ $onlevel = true;
+ if (isset($unicode_mirror[$chardata[$i]['char']])) {
+ // L4. A character is depicted by a mirrored glyph if and only if (a) the resolved directionality of that character is R, and (b) the Bidi_Mirrored property value of that character is true.
+ $chardata[$i]['char'] = $unicode_mirror[$chardata[$i]['char']];
+ }
+ $revarr[] = $chardata[$i];
+ } else {
+ if($onlevel) {
+ $revarr = array_reverse($revarr);
+ $ordarray = array_merge($ordarray, $revarr);
+ $revarr = Array();
+ $onlevel = false;
+ }
+ $ordarray[] = $chardata[$i];
+ }
+ }
+ if($onlevel) {
+ $revarr = array_reverse($revarr);
+ $ordarray = array_merge($ordarray, $revarr);
+ }
+ $chardata = $ordarray;
+ }
+
+ $ordarray = array();
+ for ($i=0; $i < $numchars; $i++) {
+ $ordarray[] = $chardata[$i]['char'];
+ }
+
+ return $this->arrUTF8ToUTF16BE($ordarray, $setbom);
+ }
+
+ // END OF BIDIRECTIONAL TEXT SECTION -------------------
+
+ /*
+ * Adds a bookmark.
+ * @param string $txt bookmark description.
+ * @param int $level bookmark level.
+ * @param float $y Ordinate of the boorkmark position (default = -1 = current position).
+ * @access public
+ * @author Olivier Plathey, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ public function Bookmark($txt, $level=0, $y=-1) {
+ if($y == -1) {
+ $y = $this->GetY();
+ }
+ $this->outlines[]=array('t'=>$txt,'l'=>$level,'y'=>$y,'p'=>$this->PageNo());
+ }
+
+ /*
+ * Create a bookmark PDF string.
+ * @access private
+ * @author Olivier Plathey, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ private function _putbookmarks() {
+ $nb = count($this->outlines);
+ if($nb == 0) {
+ return;
+ }
+ $lru = array();
+ $level = 0;
+ foreach($this->outlines as $i=>$o) {
+ if($o['l'] > 0) {
+ $parent = $lru[$o['l'] - 1];
+ //Set parent and last pointers
+ $this->outlines[$i]['parent'] = $parent;
+ $this->outlines[$parent]['last'] = $i;
+ if($o['l'] > $level) {
+ //Level increasing: set first pointer
+ $this->outlines[$parent]['first'] = $i;
+ }
+ } else {
+ $this->outlines[$i]['parent']=$nb;
+ }
+ if($o['l']<=$level and $i>0) {
+ //Set prev and next pointers
+ $prev = $lru[$o['l']];
+ $this->outlines[$prev]['next'] = $i;
+ $this->outlines[$i]['prev'] = $prev;
+ }
+ $lru[$o['l']] = $i;
+ $level = $o['l'];
+ }
+ //Outline items
+ $n = $this->n+1;
+ foreach($this->outlines as $i=>$o) {
+ $this->_newobj();
+ $this->_out('<</Title '.$this->_textstring($o['t']));
+ $this->_out('/Parent '.($n+$o['parent']).' 0 R');
+ if(isset($o['prev']))
+ $this->_out('/Prev '.($n+$o['prev']).' 0 R');
+ if(isset($o['next']))
+ $this->_out('/Next '.($n+$o['next']).' 0 R');
+ if(isset($o['first']))
+ $this->_out('/First '.($n+$o['first']).' 0 R');
+ if(isset($o['last']))
+ $this->_out('/Last '.($n+$o['last']).' 0 R');
+ $this->_out(sprintf('/Dest [%d 0 R /XYZ 0 %.2f null]',1+2*$o['p'],($this->h-$o['y'])*$this->k));
+ $this->_out('/Count 0>>');
+ $this->_out('endobj');
+ }
+ //Outline root
+ $this->_newobj();
+ $this->OutlineRoot=$this->n;
+ $this->_out('<</Type /Outlines /First '.$n.' 0 R');
+ $this->_out('/Last '.($n+$lru[0]).' 0 R>>');
+ $this->_out('endobj');
+ }
+
+
+ // --- JAVASCRIPT - FORMS ------------------------------
+
+ /*
+ * Adds a javascript
+ * @access public
+ * @author Johannes Gntert, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ public function IncludeJS($script) {
+ $this->javascript .= $script;
+ }
+
+ /*
+ * Create a javascript PDF string.
+ * @access private
+ * @author Johannes Gntert, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ private function _putjavascript() {
+ if (empty($this->javascript)) {
+ return;
+ }
+ $this->_newobj();
+ $this->n_js = $this->n;
+ $this->_out('<<');
+ $this->_out('/Names [(EmbeddedJS) '.($this->n+1).' 0 R ]');
+ $this->_out('>>');
+ $this->_out('endobj');
+ $this->_newobj();
+ $this->_out('<<');
+ $this->_out('/S /JavaScript');
+ $this->_out('/JS '.$this->_textstring($this->javascript));
+ $this->_out('>>');
+ $this->_out('endobj');
+ }
+
+ /*
+ * Convert color to javascript color.
+ * @param string $color color name or #RRGGBB
+ * @access private
+ * @author Denis Van Nuffelen, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ private function _JScolor($color) {
+ static $aColors = array('transparent','black','white','red','green','blue','cyan','magenta','yellow','dkGray','gray','ltGray');
+ if(substr($color,0,1) == '#') {
+ return sprintf("['RGB',%.3f,%.3f,%.3f]", hexdec(substr($color,1,2))/255, hexdec(substr($color,3,2))/255, hexdec(substr($color,5,2))/255);
+ }
+ if(!in_array($color,$aColors)) {
+ $this->Error('Invalid color: '.$color);
+ }
+ return 'color.'.$color;
+ }
+
+ /*
+ * Adds a javascript form field.
+ * @param string $type field type
+ * @param string $name field name
+ * @param int $x horizontal position
+ * @param int $y vertical position
+ * @param int $w width
+ * @param int $h height
+ * @param string $prop properties
+ * @access private
+ * @author Denis Van Nuffelen, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ private function _addfield($type, $name, $x, $y, $w, $h, $prop) {
+ $k = $this->k;
+ $this->javascript .= sprintf("f=addField('%s','%s',%d,[%.2f,%.2f,%.2f,%.2f]);",$name,$type,$this->PageNo()-1,$x*$k,($this->h-$y)*$k+1,($x+$w)*$k,($this->h-$y-$h)*$k+1);
+ $this->javascript .= 'f.textSize='.$this->FontSizePt.';';
+ if(isset($prop['value'])) {
+ $this->javascript .= "f.value='".addslashes($prop['value'])."';";
+ }
+ if(isset($prop['TextColor'])) {
+ $this->javascript .= 'f.textColor='.$this->_JScolor($prop['TextColor']).';';
+ }
+ if(isset($prop['FillColor'])) {
+ $this->javascript .= 'f.fillColor='.$this->_JScolor($prop['FillColor']).';';
+ }
+ if(isset($prop['BorderColor'])) {
+ $this->javascript .= 'f.strokeColor='.$this->_JScolor($prop['BorderColor']).';';
+ }
+ if(isset($prop['BorderStyle'])) {
+ $this->javascript .= "f.borderStyle='".$prop['BorderStyle']."';";
+ }
+ $this->x+=$w;
+ }
+
+ /*
+ * Creates a text field
+ * @param string $name field name
+ * @param int $w width
+ * @param int $h height
+ * @param string $prop properties. The value property allows to set the initial value. The multiline property allows to define the field as multiline.
+ * @access public
+ * @author Denis Van Nuffelen, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ public function TextField($name, $w, $h, $prop=array()) {
+ $this->_addfield('text',$name,$this->x,$this->y,$w,$h,$prop);
+ if(isset($prop['multiline']) AND $prop['multiline']) {
+ $this->javascript .= 'f.multiline=true;';
+ }
+ }
+
+ /*
+ * Creates a Combo-box field
+ * @param string $name field name
+ * @param int $w width
+ * @param int $h height
+ * @param array $values array containing the list of values.
+ * @param string $prop properties.
+ * @access public
+ * @author Denis Van Nuffelen, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ public function ComboBox($name, $w, $h, $values, $prop=array()) {
+ $this->_addfield('combobox',$name,$this->x,$this->y,$w,$h,$prop);
+ $s = '';
+ foreach($values as $value) {
+ $s .= "'".addslashes($value)."',";
+ }
+ $this->javascript .= 'f.setItems(['.substr($s,0,-1).']);';
+ }
+
+ /*
+ * Creates a CheckBox field
+ * @param string $name field name
+ * @param int $w width
+ * @param boolean $checked define the initial state (default = false).
+ * @param string $prop properties.
+ * @access public
+ * @author Denis Van Nuffelen, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ public function CheckBox($name, $w, $checked=false, $prop=array()) {
+ $prop['value'] = ($checked ? 'Yes' : 'Off');
+ if(!isset($prop['BorderColor'])) {
+ $prop['BorderColor']='black';
+ }
+ $this->_addfield('checkbox',$name,$this->x,$this->y,$w,$w,$prop);
+ }
+
+ /*
+ * Creates a button field
+ * @param string $name field name
+ * @param int $w width
+ * @param int $h height
+ * @param string $caption caption.
+ * @param string $action action triggered by the button (JavaScript code).
+ * @param string $prop properties.
+ * @access public
+ * @author Denis Van Nuffelen, Nicola Asuni
+ * @since 2.1.002 (2008-02-12)
+ */
+ public function Button($name, $w, $h, $caption, $action, $prop=array()) {
+ if(!isset($prop['BorderColor'])) {
+ $prop['BorderColor']='black';
+ }
+ $prop['BorderStyle']='beveled';
+ $this->_addfield('button',$name,$this->x,$this->y,$w,$h,$prop);
+ $this->javascript .= "f.buttonSetCaption('".addslashes($caption)."');";
+ $this->javascript .= "f.setAction('MouseUp','".addslashes($action)."');";
+ $this->javascript .= "f.highlight='push';";
+ $this->javascript .= 'f.print=false;';
+ }
+
+ // END JAVASCRIPT - FORMS ------------------------------
+
+ } // END OF TCPDF CLASS
+
+ //Handle special IE contype request
+ if(isset($_SERVER['HTTP_USER_AGENT']) AND ($_SERVER['HTTP_USER_AGENT']=='contype')) {
+ header('Content-Type: application/pdf');
+ exit;
+ }
+
+}
+//============================================================+
+// END OF FILE
+//============================================================+
+?>
diff --git a/libraries/tcpdf/unicode_data.php b/libraries/tcpdf/unicode_data.php
new file mode 100644
index 0000000000..6e8751f276
--- /dev/null
+++ b/libraries/tcpdf/unicode_data.php
@@ -0,0 +1,18278 @@
+<?php
+//============================================================+
+// File name : unicode_data.php
+// Begin : 2008-01-01
+// Last Update : 2008-01-08
+//
+// Description : Unicode Include file for TCPDF.
+//
+// Author: Nicola Asuni
+//
+// (c) Copyright:
+// Nicola Asuni
+// Tecnick.com s.r.l.
+// Via Della Pace, 11
+// 09044 Quartucciu (CA)
+// ITALY
+// www.tecnick.com
+// info@tecnick.com
+//============================================================+
+// THANKS TO
+// Efthimios Mavrogeorgiadis
+
+/**
+ * Unicode Include file for TCPDF.
+ * @author Nicola Asuni
+ * @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
+ * @package com.tecnick.tcpdf
+ * @version 2.1.000
+ * @link http://tcpdf.sourceforge.net
+ * @license http://www.gnu.org/copyleft/lesser.html LGPL
+ * @since 2.1.000 (2008-01-08)
+*/
+
+/**
+* Left-to-Right Mark
+*/
+define("K_LRM", 8206);
+/**
+* Right-to-Left Mark
+*/
+define("K_RLM", 8207);
+/**
+* Left-to-Right Embedding
+*/
+define("K_LRE", 8234);
+/**
+* Right-to-Left Embedding
+*/
+define("K_RLE", 8235);
+/**
+* Pop Directional Format
+*/
+define("K_PDF", 8236);
+/**
+* Left-to-Right Override
+*/
+define("K_LRO", 8237);
+/**
+* Right-to-Left Override
+*/
+define("K_RLO", 8238);
+
+/*
+ * Pattern to test RTL (Righ-To-Left) strings using regular expressions.
+ */
+define("K_RE_PATTERN_RTL", "/(
+ \xD6\xBE # R
+ | \xD7[\x80\x83\x86\x90-\xAA\xB0-\xB4] # R
+ | \xDF[\x80-\xAA\xB4\xB5\xBA] # R
+ | \xE2\x80\x8F # R
+ | \xEF\xAC[\x9D\x9F\xA0-\xA8\xAA-\xB6\xB8-\xBC\xBE] # R
+ | \xEF\xAD[\x80\x81\x83\x84\x86-\x8F] # R
+ | \xF0\x90\xA0[\x80-\x85\x88\x8A-\xB5\xB7\xB8\xBC\xBF] # R
+ | \xF0\x90\xA4[\x80-\x99] # R
+ | \xF0\x90\xA8[\x80\x90-\x93\x95-\x97\x99-\xB3] # R
+ | \xF0\x90\xA9[\x80-\x87\x90-\x98] # R
+ | \xE2\x80[\xAB\xAE] # RLE & RLO
+ )/x");
+
+/*
+ * Pattern to test Arabic strings using regular expressions.
+ * source: http://www.w3.org/International/questions/qa-forms-utf-8
+ */
+define("K_RE_PATTERN_ARABIC", "/(
+ \xD8[\x80-\x83\x8B\x8D\x9B\x9E\x9F\xA1-\xBA] # AL
+ | \xD9[\x80-\x8A\xAD-\xAF\xB1-\xBF] # AL
+ | \xDA[\x80-\xBF] # AL
+ | \xDB[\x80-\x95\x9D\xA5\xA6\xAE\xAF\xBA-\xBF] # AL
+ | \xDC[\x80-\x8D\x90\x92-\xAF] # AL
+ | \xDD[\x8D-\xAD] # AL
+ | \xDE[\x80-\xA5\xB1] # AL
+ | \xEF\xAD[\x90-\xBF] # AL
+ | \xEF\xAE[\x80-\xB1] # AL
+ | \xEF\xAF[\x93-\xBF] # AL
+ | \xEF[\xB0-\xB3][\x80-\xBF] # AL
+ | \xEF\xB4[\x80-\xBD] # AL
+ | \xEF\xB5[\x90-\xBF] # AL
+ | \xEF\xB6[\x80-\x8F\x92-\xBF] # AL
+ | \xEF\xB7[\x80-\x87\xB0-\xBC] # AL
+ | \xEF\xB9[\xB0-\xB4\xB6-\xBF] # AL
+ | \xEF\xBA[\x80-\xBF] # AL
+ | \xEF\xBB[\x80-\xBC] # AL
+ | \xD9[\xA0-\xA9\xAB\xAC] # AN
+ )/x");
+
+/**
+ * Array of unicode types
+ */
+$unicode = array(
+ 0 => 'BN',
+ 1 => 'BN',
+ 2 => 'BN',
+ 3 => 'BN',
+ 4 => 'BN',
+ 5 => 'BN',
+ 6 => 'BN',
+ 7 => 'BN',
+ 8 => 'BN',
+ 9 => 'S',
+ 10 => 'B',
+ 11 => 'S',
+ 12 => 'WS',
+ 13 => 'B',
+ 14 => 'BN',
+ 15 => 'BN',
+ 16 => 'BN',
+ 17 => 'BN',
+ 18 => 'BN',
+ 19 => 'BN',
+ 20 => 'BN',
+ 21 => 'BN',
+ 22 => 'BN',
+ 23 => 'BN',
+ 24 => 'BN',
+ 25 => 'BN',
+ 26 => 'BN',
+ 27 => 'BN',
+ 28 => 'B',
+ 29 => 'B',
+ 30 => 'B',
+ 31 => 'S',
+ 32 => 'WS',
+ 33 => 'ON',
+ 34 => 'ON',
+ 35 => 'ET',
+ 36 => 'ET',
+ 37 => 'ET',
+ 38 => 'ON',
+ 39 => 'ON',
+ 40 => 'ON',
+ 41 => 'ON',
+ 42 => 'ON',
+ 43 => 'ES',
+ 44 => 'CS',
+ 45 => 'ES',
+ 46 => 'CS',
+ 47 => 'CS',
+ 48 => 'EN',
+ 49 => 'EN',
+ 50 => 'EN',
+ 51 => 'EN',
+ 52 => 'EN',
+ 53 => 'EN',
+ 54 => 'EN',
+ 55 => 'EN',
+ 56 => 'EN',
+ 57 => 'EN',
+ 58 => 'CS',
+ 59 => 'ON',
+ 60 => 'ON',
+ 61 => 'ON',
+ 62 => 'ON',
+ 63 => 'ON',
+ 64 => 'ON',
+ 65 => 'L',
+ 66 => 'L',
+ 67 => 'L',
+ 68 => 'L',
+ 69 => 'L',
+ 70 => 'L',
+ 71 => 'L',
+ 72 => 'L',
+ 73 => 'L',
+ 74 => 'L',
+ 75 => 'L',
+ 76 => 'L',
+ 77 => 'L',
+ 78 => 'L',
+ 79 => 'L',
+ 80 => 'L',
+ 81 => 'L',
+ 82 => 'L',
+ 83 => 'L',
+ 84 => 'L',
+ 85 => 'L',
+ 86 => 'L',
+ 87 => 'L',
+ 88 => 'L',
+ 89 => 'L',
+ 90 => 'L',
+ 91 => 'ON',
+ 92 => 'ON',
+ 93 => 'ON',
+ 94 => 'ON',
+ 95 => 'ON',
+ 96 => 'ON',
+ 97 => 'L',
+ 98 => 'L',
+ 99 => 'L',
+ 100 => 'L',
+ 101 => 'L',
+ 102 => 'L',
+ 103 => 'L',
+ 104 => 'L',
+ 105 => 'L',
+ 106 => 'L',
+ 107 => 'L',
+ 108 => 'L',
+ 109 => 'L',
+ 110 => 'L',
+ 111 => 'L',
+ 112 => 'L',
+ 113 => 'L',
+ 114 => 'L',
+ 115 => 'L',
+ 116 => 'L',
+ 117 => 'L',
+ 118 => 'L',
+ 119 => 'L',
+ 120 => 'L',
+ 121 => 'L',
+ 122 => 'L',
+ 123 => 'ON',
+ 124 => 'ON',
+ 125 => 'ON',
+ 126 => 'ON',
+ 127 => 'BN',
+ 128 => 'BN',
+ 129 => 'BN',
+ 130 => 'BN',
+ 131 => 'BN',
+ 132 => 'BN',
+ 133 => 'B',
+ 134 => 'BN',
+ 135 => 'BN',
+ 136 => 'BN',
+ 137 => 'BN',
+ 138 => 'BN',
+ 139 => 'BN',
+ 140 => 'BN',
+ 141 => 'BN',
+ 142 => 'BN',
+ 143 => 'BN',
+ 144 => 'BN',
+ 145 => 'BN',
+ 146 => 'BN',
+ 147 => 'BN',
+ 148 => 'BN',
+ 149 => 'BN',
+ 150 => 'BN',
+ 151 => 'BN',
+ 152 => 'BN',
+ 153 => 'BN',
+ 154 => 'BN',
+ 155 => 'BN',
+ 156 => 'BN',
+ 157 => 'BN',
+ 158 => 'BN',
+ 159 => 'BN',
+ 160 => 'CS',
+ 161 => 'ON',
+ 162 => 'ET',
+ 163 => 'ET',
+ 164 => 'ET',
+ 165 => 'ET',
+ 166 => 'ON',
+ 167 => 'ON',
+ 168 => 'ON',
+ 169 => 'ON',
+ 170 => 'L',
+ 171 => 'ON',
+ 172 => 'ON',
+ 173 => 'BN',
+ 174 => 'ON',
+ 175 => 'ON',
+ 176 => 'ET',
+ 177 => 'ET',
+ 178 => 'EN',
+ 179 => 'EN',
+ 180 => 'ON',
+ 181 => 'L',
+ 182 => 'ON',
+ 183 => 'ON',
+ 184 => 'ON',
+ 185 => 'EN',
+ 186 => 'L',
+ 187 => 'ON',
+ 188 => 'ON',
+ 189 => 'ON',
+ 190 => 'ON',
+ 191 => 'ON',
+ 192 => 'L',
+ 193 => 'L',
+ 194 => 'L',
+ 195 => 'L',
+ 196 => 'L',
+ 197 => 'L',
+ 198 => 'L',
+ 199 => 'L',
+ 200 => 'L',
+ 201 => 'L',
+ 202 => 'L',
+ 203 => 'L',
+ 204 => 'L',
+ 205 => 'L',
+ 206 => 'L',
+ 207 => 'L',
+ 208 => 'L',
+ 209 => 'L',
+ 210 => 'L',
+ 211 => 'L',
+ 212 => 'L',
+ 213 => 'L',
+ 214 => 'L',
+ 215 => 'ON',
+ 216 => 'L',
+ 217 => 'L',
+ 218 => 'L',
+ 219 => 'L',
+ 220 => 'L',
+ 221 => 'L',
+ 222 => 'L',
+ 223 => 'L',
+ 224 => 'L',
+ 225 => 'L',
+ 226 => 'L',
+ 227 => 'L',
+ 228 => 'L',
+ 229 => 'L',
+ 230 => 'L',
+ 231 => 'L',
+ 232 => 'L',
+ 233 => 'L',
+ 234 => 'L',
+ 235 => 'L',
+ 236 => 'L',
+ 237 => 'L',
+ 238 => 'L',
+ 239 => 'L',
+ 240 => 'L',
+ 241 => 'L',
+ 242 => 'L',
+ 243 => 'L',
+ 244 => 'L',
+ 245 => 'L',
+ 246 => 'L',
+ 247 => 'ON',
+ 248 => 'L',
+ 249 => 'L',
+ 250 => 'L',
+ 251 => 'L',
+ 252 => 'L',
+ 253 => 'L',
+ 254 => 'L',
+ 255 => 'L',
+ 256 => 'L',
+ 257 => 'L',
+ 258 => 'L',
+ 259 => 'L',
+ 260 => 'L',
+ 261 => 'L',
+ 262 => 'L',
+ 263 => 'L',
+ 264 => 'L',
+ 265 => 'L',
+ 266 => 'L',
+ 267 => 'L',
+ 268 => 'L',
+ 269 => 'L',
+ 270 => 'L',
+ 271 => 'L',
+ 272 => 'L',
+ 273 => 'L',
+ 274 => 'L',
+ 275 => 'L',
+ 276 => 'L',
+ 277 => 'L',
+ 278 => 'L',
+ 279 => 'L',
+ 280 => 'L',
+ 281 => 'L',
+ 282 => 'L',
+ 283 => 'L',
+ 284 => 'L',
+ 285 => 'L',
+ 286 => 'L',
+ 287 => 'L',
+ 288 => 'L',
+ 289 => 'L',
+ 290 => 'L',
+ 291 => 'L',
+ 292 => 'L',
+ 293 => 'L',
+ 294 => 'L',
+ 295 => 'L',
+ 296 => 'L',
+ 297 => 'L',
+ 298 => 'L',
+ 299 => 'L',
+ 300 => 'L',
+ 301 => 'L',
+ 302 => 'L',
+ 303 => 'L',
+ 304 => 'L',
+ 305 => 'L',
+ 306 => 'L',
+ 307 => 'L',
+ 308 => 'L',
+ 309 => 'L',
+ 310 => 'L',
+ 311 => 'L',
+ 312 => 'L',
+ 313 => 'L',
+ 314 => 'L',
+ 315 => 'L',
+ 316 => 'L',
+ 317 => 'L',
+ 318 => 'L',
+ 319 => 'L',
+ 320 => 'L',
+ 321 => 'L',
+ 322 => 'L',
+ 323 => 'L',
+ 324 => 'L',
+ 325 => 'L',
+ 326 => 'L',
+ 327 => 'L',
+ 328 => 'L',
+ 329 => 'L',
+ 330 => 'L',
+ 331 => 'L',
+ 332 => 'L',
+ 333 => 'L',
+ 334 => 'L',
+ 335 => 'L',
+ 336 => 'L',
+ 337 => 'L',
+ 338 => 'L',
+ 339 => 'L',
+ 340 => 'L',
+ 341 => 'L',
+ 342 => 'L',
+ 343 => 'L',
+ 344 => 'L',
+ 345 => 'L',
+ 346 => 'L',
+ 347 => 'L',
+ 348 => 'L',
+ 349 => 'L',
+ 350 => 'L',
+ 351 => 'L',
+ 352 => 'L',
+ 353 => 'L',
+ 354 => 'L',
+ 355 => 'L',
+ 356 => 'L',
+ 357 => 'L',
+ 358 => 'L',
+ 359 => 'L',
+ 360 => 'L',
+ 361 => 'L',
+ 362 => 'L',
+ 363 => 'L',
+ 364 => 'L',
+ 365 => 'L',
+ 366 => 'L',
+ 367 => 'L',
+ 368 => 'L',
+ 369 => 'L',
+ 370 => 'L',
+ 371 => 'L',
+ 372 => 'L',
+ 373 => 'L',
+ 374 => 'L',
+ 375 => 'L',
+ 376 => 'L',
+ 377 => 'L',
+ 378 => 'L',
+ 379 => 'L',
+ 380 => 'L',
+ 381 => 'L',
+ 382 => 'L',
+ 383 => 'L',
+ 384 => 'L',
+ 385 => 'L',
+ 386 => 'L',
+ 387 => 'L',
+ 388 => 'L',
+ 389 => 'L',
+ 390 => 'L',
+ 391 => 'L',
+ 392 => 'L',
+ 393 => 'L',
+ 394 => 'L',
+ 395 => 'L',
+ 396 => 'L',
+ 397 => 'L',
+ 398 => 'L',
+ 399 => 'L',
+ 400 => 'L',
+ 401 => 'L',
+ 402 => 'L',
+ 403 => 'L',
+ 404 => 'L',
+ 405 => 'L',
+ 406 => 'L',
+ 407 => 'L',
+ 408 => 'L',
+ 409 => 'L',
+ 410 => 'L',
+ 411 => 'L',
+ 412 => 'L',
+ 413 => 'L',
+ 414 => 'L',
+ 415 => 'L',
+ 416 => 'L',
+ 417 => 'L',
+ 418 => 'L',
+ 419 => 'L',
+ 420 => 'L',
+ 421 => 'L',
+ 422 => 'L',
+ 423 => 'L',
+ 424 => 'L',
+ 425 => 'L',
+ 426 => 'L',
+ 427 => 'L',
+ 428 => 'L',
+ 429 => 'L',
+ 430 => 'L',
+ 431 => 'L',
+ 432 => 'L',
+ 433 => 'L',
+ 434 => 'L',
+ 435 => 'L',
+ 436 => 'L',
+ 437 => 'L',
+ 438 => 'L',
+ 439 => 'L',
+ 440 => 'L',
+ 441 => 'L',
+ 442 => 'L',
+ 443 => 'L',
+ 444 => 'L',
+ 445 => 'L',
+ 446 => 'L',
+ 447 => 'L',
+ 448 => 'L',
+ 449 => 'L',
+ 450 => 'L',
+ 451 => 'L',
+ 452 => 'L',
+ 453 => 'L',
+ 454 => 'L',
+ 455 => 'L',
+ 456 => 'L',
+ 457 => 'L',
+ 458 => 'L',
+ 459 => 'L',
+ 460 => 'L',
+ 461 => 'L',
+ 462 => 'L',
+ 463 => 'L',
+ 464 => 'L',
+ 465 => 'L',
+ 466 => 'L',
+ 467 => 'L',
+ 468 => 'L',
+ 469 => 'L',
+ 470 => 'L',
+ 471 => 'L',
+ 472 => 'L',
+ 473 => 'L',
+ 474 => 'L',
+ 475 => 'L',
+ 476 => 'L',
+ 477 => 'L',
+ 478 => 'L',
+ 479 => 'L',
+ 480 => 'L',
+ 481 => 'L',
+ 482 => 'L',
+ 483 => 'L',
+ 484 => 'L',
+ 485 => 'L',
+ 486 => 'L',
+ 487 => 'L',
+ 488 => 'L',
+ 489 => 'L',
+ 490 => 'L',
+ 491 => 'L',
+ 492 => 'L',
+ 493 => 'L',
+ 494 => 'L',
+ 495 => 'L',
+ 496 => 'L',
+ 497 => 'L',
+ 498 => 'L',
+ 499 => 'L',
+ 500 => 'L',
+ 501 => 'L',
+ 502 => 'L',
+ 503 => 'L',
+ 504 => 'L',
+ 505 => 'L',
+ 506 => 'L',
+ 507 => 'L',
+ 508 => 'L',
+ 509 => 'L',
+ 510 => 'L',
+ 511 => 'L',
+ 512 => 'L',
+ 513 => 'L',
+ 514 => 'L',
+ 515 => 'L',
+ 516 => 'L',
+ 517 => 'L',
+ 518 => 'L',
+ 519 => 'L',
+ 520 => 'L',
+ 521 => 'L',
+ 522 => 'L',
+ 523 => 'L',
+ 524 => 'L',
+ 525 => 'L',
+ 526 => 'L',
+ 527 => 'L',
+ 528 => 'L',
+ 529 => 'L',
+ 530 => 'L',
+ 531 => 'L',
+ 532 => 'L',
+ 533 => 'L',
+ 534 => 'L',
+ 535 => 'L',
+ 536 => 'L',
+ 537 => 'L',
+ 538 => 'L',
+ 539 => 'L',
+ 540 => 'L',
+ 541 => 'L',
+ 542 => 'L',
+ 543 => 'L',
+ 544 => 'L',
+ 545 => 'L',
+ 546 => 'L',
+ 547 => 'L',
+ 548 => 'L',
+ 549 => 'L',
+ 550 => 'L',
+ 551 => 'L',
+ 552 => 'L',
+ 553 => 'L',
+ 554 => 'L',
+ 555 => 'L',
+ 556 => 'L',
+ 557 => 'L',
+ 558 => 'L',
+ 559 => 'L',
+ 560 => 'L',
+ 561 => 'L',
+ 562 => 'L',
+ 563 => 'L',
+ 564 => 'L',
+ 565 => 'L',
+ 566 => 'L',
+ 567 => 'L',
+ 568 => 'L',
+ 569 => 'L',
+ 570 => 'L',
+ 571 => 'L',
+ 572 => 'L',
+ 573 => 'L',
+ 574 => 'L',
+ 575 => 'L',
+ 576 => 'L',
+ 577 => 'L',
+ 578 => 'L',
+ 579 => 'L',
+ 580 => 'L',
+ 581 => 'L',
+ 582 => 'L',
+ 583 => 'L',
+ 584 => 'L',
+ 585 => 'L',
+ 586 => 'L',
+ 587 => 'L',
+ 588 => 'L',
+ 589 => 'L',
+ 590 => 'L',
+ 591 => 'L',
+ 592 => 'L',
+ 593 => 'L',
+ 594 => 'L',
+ 595 => 'L',
+ 596 => 'L',
+ 597 => 'L',
+ 598 => 'L',
+ 599 => 'L',
+ 600 => 'L',
+ 601 => 'L',
+ 602 => 'L',
+ 603 => 'L',
+ 604 => 'L',
+ 605 => 'L',
+ 606 => 'L',
+ 607 => 'L',
+ 608 => 'L',
+ 609 => 'L',
+ 610 => 'L',
+ 611 => 'L',
+ 612 => 'L',
+ 613 => 'L',
+ 614 => 'L',
+ 615 => 'L',
+ 616 => 'L',
+ 617 => 'L',
+ 618 => 'L',
+ 619 => 'L',
+ 620 => 'L',
+ 621 => 'L',
+ 622 => 'L',
+ 623 => 'L',
+ 624 => 'L',
+ 625 => 'L',
+ 626 => 'L',
+ 627 => 'L',
+ 628 => 'L',
+ 629 => 'L',
+ 630 => 'L',
+ 631 => 'L',
+ 632 => 'L',
+ 633 => 'L',
+ 634 => 'L',
+ 635 => 'L',
+ 636 => 'L',
+ 637 => 'L',
+ 638 => 'L',
+ 639 => 'L',
+ 640 => 'L',
+ 641 => 'L',
+ 642 => 'L',
+ 643 => 'L',
+ 644 => 'L',
+ 645 => 'L',
+ 646 => 'L',
+ 647 => 'L',
+ 648 => 'L',
+ 649 => 'L',
+ 650 => 'L',
+ 651 => 'L',
+ 652 => 'L',
+ 653 => 'L',
+ 654 => 'L',
+ 655 => 'L',
+ 656 => 'L',
+ 657 => 'L',
+ 658 => 'L',
+ 659 => 'L',
+ 660 => 'L',
+ 661 => 'L',
+ 662 => 'L',
+ 663 => 'L',
+ 664 => 'L',
+ 665 => 'L',
+ 666 => 'L',
+ 667 => 'L',
+ 668 => 'L',
+ 669 => 'L',
+ 670 => 'L',
+ 671 => 'L',
+ 672 => 'L',
+ 673 => 'L',
+ 674 => 'L',
+ 675 => 'L',
+ 676 => 'L',
+ 677 => 'L',
+ 678 => 'L',
+ 679 => 'L',
+ 680 => 'L',
+ 681 => 'L',
+ 682 => 'L',
+ 683 => 'L',
+ 684 => 'L',
+ 685 => 'L',
+ 686 => 'L',
+ 687 => 'L',
+ 688 => 'L',
+ 689 => 'L',
+ 690 => 'L',
+ 691 => 'L',
+ 692 => 'L',
+ 693 => 'L',
+ 694 => 'L',
+ 695 => 'L',
+ 696 => 'L',
+ 697 => 'ON',
+ 698 => 'ON',
+ 699 => 'L',
+ 700 => 'L',
+ 701 => 'L',
+ 702 => 'L',
+ 703 => 'L',
+ 704 => 'L',
+ 705 => 'L',
+ 706 => 'ON',
+ 707 => 'ON',
+ 708 => 'ON',
+ 709 => 'ON',
+ 710 => 'ON',
+ 711 => 'ON',
+ 712 => 'ON',
+ 713 => 'ON',
+ 714 => 'ON',
+ 715 => 'ON',
+ 716 => 'ON',
+ 717 => 'ON',
+ 718 => 'ON',
+ 719 => 'ON',
+ 720 => 'L',
+ 721 => 'L',
+ 722 => 'ON',
+ 723 => 'ON',
+ 724 => 'ON',
+ 725 => 'ON',
+ 726 => 'ON',
+ 727 => 'ON',
+ 728 => 'ON',
+ 729 => 'ON',
+ 730 => 'ON',
+ 731 => 'ON',
+ 732 => 'ON',
+ 733 => 'ON',
+ 734 => 'ON',
+ 735 => 'ON',
+ 736 => 'L',
+ 737 => 'L',
+ 738 => 'L',
+ 739 => 'L',
+ 740 => 'L',
+ 741 => 'ON',
+ 742 => 'ON',
+ 743 => 'ON',
+ 744 => 'ON',
+ 745 => 'ON',
+ 746 => 'ON',
+ 747 => 'ON',
+ 748 => 'ON',
+ 749 => 'ON',
+ 750 => 'L',
+ 751 => 'ON',
+ 752 => 'ON',
+ 753 => 'ON',
+ 754 => 'ON',
+ 755 => 'ON',
+ 756 => 'ON',
+ 757 => 'ON',
+ 758 => 'ON',
+ 759 => 'ON',
+ 760 => 'ON',
+ 761 => 'ON',
+ 762 => 'ON',
+ 763 => 'ON',
+ 764 => 'ON',
+ 765 => 'ON',
+ 766 => 'ON',
+ 767 => 'ON',
+ 768 => 'NSM',
+ 769 => 'NSM',
+ 770 => 'NSM',
+ 771 => 'NSM',
+ 772 => 'NSM',
+ 773 => 'NSM',
+ 774 => 'NSM',
+ 775 => 'NSM',
+ 776 => 'NSM',
+ 777 => 'NSM',
+ 778 => 'NSM',
+ 779 => 'NSM',
+ 780 => 'NSM',
+ 781 => 'NSM',
+ 782 => 'NSM',
+ 783 => 'NSM',
+ 784 => 'NSM',
+ 785 => 'NSM',
+ 786 => 'NSM',
+ 787 => 'NSM',
+ 788 => 'NSM',
+ 789 => 'NSM',
+ 790 => 'NSM',
+ 791 => 'NSM',
+ 792 => 'NSM',
+ 793 => 'NSM',
+ 794 => 'NSM',
+ 795 => 'NSM',
+ 796 => 'NSM',
+ 797 => 'NSM',
+ 798 => 'NSM',
+ 799 => 'NSM',
+ 800 => 'NSM',
+ 801 => 'NSM',
+ 802 => 'NSM',
+ 803 => 'NSM',
+ 804 => 'NSM',
+ 805 => 'NSM',
+ 806 => 'NSM',
+ 807 => 'NSM',
+ 808 => 'NSM',
+ 809 => 'NSM',
+ 810 => 'NSM',
+ 811 => 'NSM',
+ 812 => 'NSM',
+ 813 => 'NSM',
+ 814 => 'NSM',
+ 815 => 'NSM',
+ 816 => 'NSM',
+ 817 => 'NSM',
+ 818 => 'NSM',
+ 819 => 'NSM',
+ 820 => 'NSM',
+ 821 => 'NSM',
+ 822 => 'NSM',
+ 823 => 'NSM',
+ 824 => 'NSM',
+ 825 => 'NSM',
+ 826 => 'NSM',
+ 827 => 'NSM',
+ 828 => 'NSM',
+ 829 => 'NSM',
+ 830 => 'NSM',
+ 831 => 'NSM',
+ 832 => 'NSM',
+ 833 => 'NSM',
+ 834 => 'NSM',
+ 835 => 'NSM',
+ 836 => 'NSM',
+ 837 => 'NSM',
+ 838 => 'NSM',
+ 839 => 'NSM',
+ 840 => 'NSM',
+ 841 => 'NSM',
+ 842 => 'NSM',
+ 843 => 'NSM',
+ 844 => 'NSM',
+ 845 => 'NSM',
+ 846 => 'NSM',
+ 847 => 'NSM',
+ 848 => 'NSM',
+ 849 => 'NSM',
+ 850 => 'NSM',
+ 851 => 'NSM',
+ 852 => 'NSM',
+ 853 => 'NSM',
+ 854 => 'NSM',
+ 855 => 'NSM',
+ 856 => 'NSM',
+ 857 => 'NSM',
+ 858 => 'NSM',
+ 859 => 'NSM',
+ 860 => 'NSM',
+ 861 => 'NSM',
+ 862 => 'NSM',
+ 863 => 'NSM',
+ 864 => 'NSM',
+ 865 => 'NSM',
+ 866 => 'NSM',
+ 867 => 'NSM',
+ 868 => 'NSM',
+ 869 => 'NSM',
+ 870 => 'NSM',
+ 871 => 'NSM',
+ 872 => 'NSM',
+ 873 => 'NSM',
+ 874 => 'NSM',
+ 875 => 'NSM',
+ 876 => 'NSM',
+ 877 => 'NSM',
+ 878 => 'NSM',
+ 879 => 'NSM',
+ 884 => 'ON',
+ 885 => 'ON',
+ 890 => 'L',
+ 891 => 'L',
+ 892 => 'L',
+ 893 => 'L',
+ 894 => 'ON',
+ 900 => 'ON',
+ 901 => 'ON',
+ 902 => 'L',
+ 903 => 'ON',
+ 904 => 'L',
+ 905 => 'L',
+ 906 => 'L',
+ 908 => 'L',
+ 910 => 'L',
+ 911 => 'L',
+ 912 => 'L',
+ 913 => 'L',
+ 914 => 'L',
+ 915 => 'L',
+ 916 => 'L',
+ 917 => 'L',
+ 918 => 'L',
+ 919 => 'L',
+ 920 => 'L',
+ 921 => 'L',
+ 922 => 'L',
+ 923 => 'L',
+ 924 => 'L',
+ 925 => 'L',
+ 926 => 'L',
+ 927 => 'L',
+ 928 => 'L',
+ 929 => 'L',
+ 931 => 'L',
+ 932 => 'L',
+ 933 => 'L',
+ 934 => 'L',
+ 935 => 'L',
+ 936 => 'L',
+ 937 => 'L',
+ 938 => 'L',
+ 939 => 'L',
+ 940 => 'L',
+ 941 => 'L',
+ 942 => 'L',
+ 943 => 'L',
+ 944 => 'L',
+ 945 => 'L',
+ 946 => 'L',
+ 947 => 'L',
+ 948 => 'L',
+ 949 => 'L',
+ 950 => 'L',
+ 951 => 'L',
+ 952 => 'L',
+ 953 => 'L',
+ 954 => 'L',
+ 955 => 'L',
+ 956 => 'L',
+ 957 => 'L',
+ 958 => 'L',
+ 959 => 'L',
+ 960 => 'L',
+ 961 => 'L',
+ 962 => 'L',
+ 963 => 'L',
+ 964 => 'L',
+ 965 => 'L',
+ 966 => 'L',
+ 967 => 'L',
+ 968 => 'L',
+ 969 => 'L',
+ 970 => 'L',
+ 971 => 'L',
+ 972 => 'L',
+ 973 => 'L',
+ 974 => 'L',
+ 976 => 'L',
+ 977 => 'L',
+ 978 => 'L',
+ 979 => 'L',
+ 980 => 'L',
+ 981 => 'L',
+ 982 => 'L',
+ 983 => 'L',
+ 984 => 'L',
+ 985 => 'L',
+ 986 => 'L',
+ 987 => 'L',
+ 988 => 'L',
+ 989 => 'L',
+ 990 => 'L',
+ 991 => 'L',
+ 992 => 'L',
+ 993 => 'L',
+ 994 => 'L',
+ 995 => 'L',
+ 996 => 'L',
+ 997 => 'L',
+ 998 => 'L',
+ 999 => 'L',
+ 1000 => 'L',
+ 1001 => 'L',
+ 1002 => 'L',
+ 1003 => 'L',
+ 1004 => 'L',
+ 1005 => 'L',
+ 1006 => 'L',
+ 1007 => 'L',
+ 1008 => 'L',
+ 1009 => 'L',
+ 1010 => 'L',
+ 1011 => 'L',
+ 1012 => 'L',
+ 1013 => 'L',
+ 1014 => 'ON',
+ 1015 => 'L',
+ 1016 => 'L',
+ 1017 => 'L',
+ 1018 => 'L',
+ 1019 => 'L',
+ 1020 => 'L',
+ 1021 => 'L',
+ 1022 => 'L',
+ 1023 => 'L',
+ 1024 => 'L',
+ 1025 => 'L',
+ 1026 => 'L',
+ 1027 => 'L',
+ 1028 => 'L',
+ 1029 => 'L',
+ 1030 => 'L',
+ 1031 => 'L',
+ 1032 => 'L',
+ 1033 => 'L',
+ 1034 => 'L',
+ 1035 => 'L',
+ 1036 => 'L',
+ 1037 => 'L',
+ 1038 => 'L',
+ 1039 => 'L',
+ 1040 => 'L',
+ 1041 => 'L',
+ 1042 => 'L',
+ 1043 => 'L',
+ 1044 => 'L',
+ 1045 => 'L',
+ 1046 => 'L',
+ 1047 => 'L',
+ 1048 => 'L',
+ 1049 => 'L',
+ 1050 => 'L',
+ 1051 => 'L',
+ 1052 => 'L',
+ 1053 => 'L',
+ 1054 => 'L',
+ 1055 => 'L',
+ 1056 => 'L',
+ 1057 => 'L',
+ 1058 => 'L',
+ 1059 => 'L',
+ 1060 => 'L',
+ 1061 => 'L',
+ 1062 => 'L',
+ 1063 => 'L',
+ 1064 => 'L',
+ 1065 => 'L',
+ 1066 => 'L',
+ 1067 => 'L',
+ 1068 => 'L',
+ 1069 => 'L',
+ 1070 => 'L',
+ 1071 => 'L',
+ 1072 => 'L',
+ 1073 => 'L',
+ 1074 => 'L',
+ 1075 => 'L',
+ 1076 => 'L',
+ 1077 => 'L',
+ 1078 => 'L',
+ 1079 => 'L',
+ 1080 => 'L',
+ 1081 => 'L',
+ 1082 => 'L',
+ 1083 => 'L',
+ 1084 => 'L',
+ 1085 => 'L',
+ 1086 => 'L',
+ 1087 => 'L',
+ 1088 => 'L',
+ 1089 => 'L',
+ 1090 => 'L',
+ 1091 => 'L',
+ 1092 => 'L',
+ 1093 => 'L',
+ 1094 => 'L',
+ 1095 => 'L',
+ 1096 => 'L',
+ 1097 => 'L',
+ 1098 => 'L',
+ 1099 => 'L',
+ 1100 => 'L',
+ 1101 => 'L',
+ 1102 => 'L',
+ 1103 => 'L',
+ 1104 => 'L',
+ 1105 => 'L',
+ 1106 => 'L',
+ 1107 => 'L',
+ 1108 => 'L',
+ 1109 => 'L',
+ 1110 => 'L',
+ 1111 => 'L',
+ 1112 => 'L',
+ 1113 => 'L',
+ 1114 => 'L',
+ 1115 => 'L',
+ 1116 => 'L',
+ 1117 => 'L',
+ 1118 => 'L',
+ 1119 => 'L',
+ 1120 => 'L',
+ 1121 => 'L',
+ 1122 => 'L',
+ 1123 => 'L',
+ 1124 => 'L',
+ 1125 => 'L',
+ 1126 => 'L',
+ 1127 => 'L',
+ 1128 => 'L',
+ 1129 => 'L',
+ 1130 => 'L',
+ 1131 => 'L',
+ 1132 => 'L',
+ 1133 => 'L',
+ 1134 => 'L',
+ 1135 => 'L',
+ 1136 => 'L',
+ 1137 => 'L',
+ 1138 => 'L',
+ 1139 => 'L',
+ 1140 => 'L',
+ 1141 => 'L',
+ 1142 => 'L',
+ 1143 => 'L',
+ 1144 => 'L',
+ 1145 => 'L',
+ 1146 => 'L',
+ 1147 => 'L',
+ 1148 => 'L',
+ 1149 => 'L',
+ 1150 => 'L',
+ 1151 => 'L',
+ 1152 => 'L',
+ 1153 => 'L',
+ 1154 => 'L',
+ 1155 => 'NSM',
+ 1156 => 'NSM',
+ 1157 => 'NSM',
+ 1158 => 'NSM',
+ 1160 => 'NSM',
+ 1161 => 'NSM',
+ 1162 => 'L',
+ 1163 => 'L',
+ 1164 => 'L',
+ 1165 => 'L',
+ 1166 => 'L',
+ 1167 => 'L',
+ 1168 => 'L',
+ 1169 => 'L',
+ 1170 => 'L',
+ 1171 => 'L',
+ 1172 => 'L',
+ 1173 => 'L',
+ 1174 => 'L',
+ 1175 => 'L',
+ 1176 => 'L',
+ 1177 => 'L',
+ 1178 => 'L',
+ 1179 => 'L',
+ 1180 => 'L',
+ 1181 => 'L',
+ 1182 => 'L',
+ 1183 => 'L',
+ 1184 => 'L',
+ 1185 => 'L',
+ 1186 => 'L',
+ 1187 => 'L',
+ 1188 => 'L',
+ 1189 => 'L',
+ 1190 => 'L',
+ 1191 => 'L',
+ 1192 => 'L',
+ 1193 => 'L',
+ 1194 => 'L',
+ 1195 => 'L',
+ 1196 => 'L',
+ 1197 => 'L',
+ 1198 => 'L',
+ 1199 => 'L',
+ 1200 => 'L',
+ 1201 => 'L',
+ 1202 => 'L',
+ 1203 => 'L',
+ 1204 => 'L',
+ 1205 => 'L',
+ 1206 => 'L',
+ 1207 => 'L',
+ 1208 => 'L',
+ 1209 => 'L',
+ 1210 => 'L',
+ 1211 => 'L',
+ 1212 => 'L',
+ 1213 => 'L',
+ 1214 => 'L',
+ 1215 => 'L',
+ 1216 => 'L',
+ 1217 => 'L',
+ 1218 => 'L',
+ 1219 => 'L',
+ 1220 => 'L',
+ 1221 => 'L',
+ 1222 => 'L',
+ 1223 => 'L',
+ 1224 => 'L',
+ 1225 => 'L',
+ 1226 => 'L',
+ 1227 => 'L',
+ 1228 => 'L',
+ 1229 => 'L',
+ 1230 => 'L',
+ 1231 => 'L',
+ 1232 => 'L',
+ 1233 => 'L',
+ 1234 => 'L',
+ 1235 => 'L',
+ 1236 => 'L',
+ 1237 => 'L',
+ 1238 => 'L',
+ 1239 => 'L',
+ 1240 => 'L',
+ 1241 => 'L',
+ 1242 => 'L',
+ 1243 => 'L',
+ 1244 => 'L',
+ 1245 => 'L',
+ 1246 => 'L',
+ 1247 => 'L',
+ 1248 => 'L',
+ 1249 => 'L',
+ 1250 => 'L',
+ 1251 => 'L',
+ 1252 => 'L',
+ 1253 => 'L',
+ 1254 => 'L',
+ 1255 => 'L',
+ 1256 => 'L',
+ 1257 => 'L',
+ 1258 => 'L',
+ 1259 => 'L',
+ 1260 => 'L',
+ 1261 => 'L',
+ 1262 => 'L',
+ 1263 => 'L',
+ 1264 => 'L',
+ 1265 => 'L',
+ 1266 => 'L',
+ 1267 => 'L',
+ 1268 => 'L',
+ 1269 => 'L',
+ 1270 => 'L',
+ 1271 => 'L',
+ 1272 => 'L',
+ 1273 => 'L',
+ 1274 => 'L',
+ 1275 => 'L',
+ 1276 => 'L',
+ 1277 => 'L',
+ 1278 => 'L',
+ 1279 => 'L',
+ 1280 => 'L',
+ 1281 => 'L',
+ 1282 => 'L',
+ 1283 => 'L',
+ 1284 => 'L',
+ 1285 => 'L',
+ 1286 => 'L',
+ 1287 => 'L',
+ 1288 => 'L',
+ 1289 => 'L',
+ 1290 => 'L',
+ 1291 => 'L',
+ 1292 => 'L',
+ 1293 => 'L',
+ 1294 => 'L',
+ 1295 => 'L',
+ 1296 => 'L',
+ 1297 => 'L',
+ 1298 => 'L',
+ 1299 => 'L',
+ 1329 => 'L',
+ 1330 => 'L',
+ 1331 => 'L',
+ 1332 => 'L',
+ 1333 => 'L',
+ 1334 => 'L',
+ 1335 => 'L',
+ 1336 => 'L',
+ 1337 => 'L',
+ 1338 => 'L',
+ 1339 => 'L',
+ 1340 => 'L',
+ 1341 => 'L',
+ 1342 => 'L',
+ 1343 => 'L',
+ 1344 => 'L',
+ 1345 => 'L',
+ 1346 => 'L',
+ 1347 => 'L',
+ 1348 => 'L',
+ 1349 => 'L',
+ 1350 => 'L',
+ 1351 => 'L',
+ 1352 => 'L',
+ 1353 => 'L',
+ 1354 => 'L',
+ 1355 => 'L',
+ 1356 => 'L',
+ 1357 => 'L',
+ 1358 => 'L',
+ 1359 => 'L',
+ 1360 => 'L',
+ 1361 => 'L',
+ 1362 => 'L',
+ 1363 => 'L',
+ 1364 => 'L',
+ 1365 => 'L',
+ 1366 => 'L',
+ 1369 => 'L',
+ 1370 => 'L',
+ 1371 => 'L',
+ 1372 => 'L',
+ 1373 => 'L',
+ 1374 => 'L',
+ 1375 => 'L',
+ 1377 => 'L',
+ 1378 => 'L',
+ 1379 => 'L',
+ 1380 => 'L',
+ 1381 => 'L',
+ 1382 => 'L',
+ 1383 => 'L',
+ 1384 => 'L',
+ 1385 => 'L',
+ 1386 => 'L',
+ 1387 => 'L',
+ 1388 => 'L',
+ 1389 => 'L',
+ 1390 => 'L',
+ 1391 => 'L',
+ 1392 => 'L',
+ 1393 => 'L',
+ 1394 => 'L',
+ 1395 => 'L',
+ 1396 => 'L',
+ 1397 => 'L',
+ 1398 => 'L',
+ 1399 => 'L',
+ 1400 => 'L',
+ 1401 => 'L',
+ 1402 => 'L',
+ 1403 => 'L',
+ 1404 => 'L',
+ 1405 => 'L',
+ 1406 => 'L',
+ 1407 => 'L',
+ 1408 => 'L',
+ 1409 => 'L',
+ 1410 => 'L',
+ 1411 => 'L',
+ 1412 => 'L',
+ 1413 => 'L',
+ 1414 => 'L',
+ 1415 => 'L',
+ 1417 => 'L',
+ 1418 => 'ON',
+ 1425 => 'NSM',
+ 1426 => 'NSM',
+ 1427 => 'NSM',
+ 1428 => 'NSM',
+ 1429 => 'NSM',
+ 1430 => 'NSM',
+ 1431 => 'NSM',
+ 1432 => 'NSM',
+ 1433 => 'NSM',
+ 1434 => 'NSM',
+ 1435 => 'NSM',
+ 1436 => 'NSM',
+ 1437 => 'NSM',
+ 1438 => 'NSM',
+ 1439 => 'NSM',
+ 1440 => 'NSM',
+ 1441 => 'NSM',
+ 1442 => 'NSM',
+ 1443 => 'NSM',
+ 1444 => 'NSM',
+ 1445 => 'NSM',
+ 1446 => 'NSM',
+ 1447 => 'NSM',
+ 1448 => 'NSM',
+ 1449 => 'NSM',
+ 1450 => 'NSM',
+ 1451 => 'NSM',
+ 1452 => 'NSM',
+ 1453 => 'NSM',
+ 1454 => 'NSM',
+ 1455 => 'NSM',
+ 1456 => 'NSM',
+ 1457 => 'NSM',
+ 1458 => 'NSM',
+ 1459 => 'NSM',
+ 1460 => 'NSM',
+ 1461 => 'NSM',
+ 1462 => 'NSM',
+ 1463 => 'NSM',
+ 1464 => 'NSM',
+ 1465 => 'NSM',
+ 1466 => 'NSM',
+ 1467 => 'NSM',
+ 1468 => 'NSM',
+ 1469 => 'NSM',
+ 1470 => 'R',
+ 1471 => 'NSM',
+ 1472 => 'R',
+ 1473 => 'NSM',
+ 1474 => 'NSM',
+ 1475 => 'R',
+ 1476 => 'NSM',
+ 1477 => 'NSM',
+ 1478 => 'R',
+ 1479 => 'NSM',
+ 1488 => 'R',
+ 1489 => 'R',
+ 1490 => 'R',
+ 1491 => 'R',
+ 1492 => 'R',
+ 1493 => 'R',
+ 1494 => 'R',
+ 1495 => 'R',
+ 1496 => 'R',
+ 1497 => 'R',
+ 1498 => 'R',
+ 1499 => 'R',
+ 1500 => 'R',
+ 1501 => 'R',
+ 1502 => 'R',
+ 1503 => 'R',
+ 1504 => 'R',
+ 1505 => 'R',
+ 1506 => 'R',
+ 1507 => 'R',
+ 1508 => 'R',
+ 1509 => 'R',
+ 1510 => 'R',
+ 1511 => 'R',
+ 1512 => 'R',
+ 1513 => 'R',
+ 1514 => 'R',
+ 1520 => 'R',
+ 1521 => 'R',
+ 1522 => 'R',
+ 1523 => 'R',
+ 1524 => 'R',
+ 1536 => 'AL',
+ 1537 => 'AL',
+ 1538 => 'AL',
+ 1539 => 'AL',
+ 1547 => 'AL',
+ 1548 => 'CS',
+ 1549 => 'AL',
+ 1550 => 'ON',
+ 1551 => 'ON',
+ 1552 => 'NSM',
+ 1553 => 'NSM',
+ 1554 => 'NSM',
+ 1555 => 'NSM',
+ 1556 => 'NSM',
+ 1557 => 'NSM',
+ 1563 => 'AL',
+ 1566 => 'AL',
+ 1567 => 'AL',
+ 1569 => 'AL',
+ 1570 => 'AL',
+ 1571 => 'AL',
+ 1572 => 'AL',
+ 1573 => 'AL',
+ 1574 => 'AL',
+ 1575 => 'AL',
+ 1576 => 'AL',
+ 1577 => 'AL',
+ 1578 => 'AL',
+ 1579 => 'AL',
+ 1580 => 'AL',
+ 1581 => 'AL',
+ 1582 => 'AL',
+ 1583 => 'AL',
+ 1584 => 'AL',
+ 1585 => 'AL',
+ 1586 => 'AL',
+ 1587 => 'AL',
+ 1588 => 'AL',
+ 1589 => 'AL',
+ 1590 => 'AL',
+ 1591 => 'AL',
+ 1592 => 'AL',
+ 1593 => 'AL',
+ 1594 => 'AL',
+ 1600 => 'AL',
+ 1601 => 'AL',
+ 1602 => 'AL',
+ 1603 => 'AL',
+ 1604 => 'AL',
+ 1605 => 'AL',
+ 1606 => 'AL',
+ 1607 => 'AL',
+ 1608 => 'AL',
+ 1609 => 'AL',
+ 1610 => 'AL',
+ 1611 => 'NSM',
+ 1612 => 'NSM',
+ 1613 => 'NSM',
+ 1614 => 'NSM',
+ 1615 => 'NSM',
+ 1616 => 'NSM',
+ 1617 => 'NSM',
+ 1618 => 'NSM',
+ 1619 => 'NSM',
+ 1620 => 'NSM',
+ 1621 => 'NSM',
+ 1622 => 'NSM',
+ 1623 => 'NSM',
+ 1624 => 'NSM',
+ 1625 => 'NSM',
+ 1626 => 'NSM',
+ 1627 => 'NSM',
+ 1628 => 'NSM',
+ 1629 => 'NSM',
+ 1630 => 'NSM',
+ 1632 => 'AN',
+ 1633 => 'AN',
+ 1634 => 'AN',
+ 1635 => 'AN',
+ 1636 => 'AN',
+ 1637 => 'AN',
+ 1638 => 'AN',
+ 1639 => 'AN',
+ 1640 => 'AN',
+ 1641 => 'AN',
+ 1642 => 'ET',
+ 1643 => 'AN',
+ 1644 => 'AN',
+ 1645 => 'AL',
+ 1646 => 'AL',
+ 1647 => 'AL',
+ 1648 => 'NSM',
+ 1649 => 'AL',
+ 1650 => 'AL',
+ 1651 => 'AL',
+ 1652 => 'AL',
+ 1653 => 'AL',
+ 1654 => 'AL',
+ 1655 => 'AL',
+ 1656 => 'AL',
+ 1657 => 'AL',
+ 1658 => 'AL',
+ 1659 => 'AL',
+ 1660 => 'AL',
+ 1661 => 'AL',
+ 1662 => 'AL',
+ 1663 => 'AL',
+ 1664 => 'AL',
+ 1665 => 'AL',
+ 1666 => 'AL',
+ 1667 => 'AL',
+ 1668 => 'AL',
+ 1669 => 'AL',
+ 1670 => 'AL',
+ 1671 => 'AL',
+ 1672 => 'AL',
+ 1673 => 'AL',
+ 1674 => 'AL',
+ 1675 => 'AL',
+ 1676 => 'AL',
+ 1677 => 'AL',
+ 1678 => 'AL',
+ 1679 => 'AL',
+ 1680 => 'AL',
+ 1681 => 'AL',
+ 1682 => 'AL',
+ 1683 => 'AL',
+ 1684 => 'AL',
+ 1685 => 'AL',
+ 1686 => 'AL',
+ 1687 => 'AL',
+ 1688 => 'AL',
+ 1689 => 'AL',
+ 1690 => 'AL',
+ 1691 => 'AL',
+ 1692 => 'AL',
+ 1693 => 'AL',
+ 1694 => 'AL',
+ 1695 => 'AL',
+ 1696 => 'AL',
+ 1697 => 'AL',
+ 1698 => 'AL',
+ 1699 => 'AL',
+ 1700 => 'AL',
+ 1701 => 'AL',
+ 1702 => 'AL',
+ 1703 => 'AL',
+ 1704 => 'AL',
+ 1705 => 'AL',
+ 1706 => 'AL',
+ 1707 => 'AL',
+ 1708 => 'AL',
+ 1709 => 'AL',
+ 1710 => 'AL',
+ 1711 => 'AL',
+ 1712 => 'AL',
+ 1713 => 'AL',
+ 1714 => 'AL',
+ 1715 => 'AL',
+ 1716 => 'AL',
+ 1717 => 'AL',
+ 1718 => 'AL',
+ 1719 => 'AL',
+ 1720 => 'AL',
+ 1721 => 'AL',
+ 1722 => 'AL',
+ 1723 => 'AL',
+ 1724 => 'AL',
+ 1725 => 'AL',
+ 1726 => 'AL',
+ 1727 => 'AL',
+ 1728 => 'AL',
+ 1729 => 'AL',
+ 1730 => 'AL',
+ 1731 => 'AL',
+ 1732 => 'AL',
+ 1733 => 'AL',
+ 1734 => 'AL',
+ 1735 => 'AL',
+ 1736 => 'AL',
+ 1737 => 'AL',
+ 1738 => 'AL',
+ 1739 => 'AL',
+ 1740 => 'AL',
+ 1741 => 'AL',
+ 1742 => 'AL',
+ 1743 => 'AL',
+ 1744 => 'AL',
+ 1745 => 'AL',
+ 1746 => 'AL',
+ 1747 => 'AL',
+ 1748 => 'AL',
+ 1749 => 'AL',
+ 1750 => 'NSM',
+ 1751 => 'NSM',
+ 1752 => 'NSM',
+ 1753 => 'NSM',
+ 1754 => 'NSM',
+ 1755 => 'NSM',
+ 1756 => 'NSM',
+ 1757 => 'AL',
+ 1758 => 'NSM',
+ 1759 => 'NSM',
+ 1760 => 'NSM',
+ 1761 => 'NSM',
+ 1762 => 'NSM',
+ 1763 => 'NSM',
+ 1764 => 'NSM',
+ 1765 => 'AL',
+ 1766 => 'AL',
+ 1767 => 'NSM',
+ 1768 => 'NSM',
+ 1769 => 'ON',
+ 1770 => 'NSM',
+ 1771 => 'NSM',
+ 1772 => 'NSM',
+ 1773 => 'NSM',
+ 1774 => 'AL',
+ 1775 => 'AL',
+ 1776 => 'EN',
+ 1777 => 'EN',
+ 1778 => 'EN',
+ 1779 => 'EN',
+ 1780 => 'EN',
+ 1781 => 'EN',
+ 1782 => 'EN',
+ 1783 => 'EN',
+ 1784 => 'EN',
+ 1785 => 'EN',
+ 1786 => 'AL',
+ 1787 => 'AL',
+ 1788 => 'AL',
+ 1789 => 'AL',
+ 1790 => 'AL',
+ 1791 => 'AL',
+ 1792 => 'AL',
+ 1793 => 'AL',
+ 1794 => 'AL',
+ 1795 => 'AL',
+ 1796 => 'AL',
+ 1797 => 'AL',
+ 1798 => 'AL',
+ 1799 => 'AL',
+ 1800 => 'AL',
+ 1801 => 'AL',
+ 1802 => 'AL',
+ 1803 => 'AL',
+ 1804 => 'AL',
+ 1805 => 'AL',
+ 1807 => 'BN',
+ 1808 => 'AL',
+ 1809 => 'NSM',
+ 1810 => 'AL',
+ 1811 => 'AL',
+ 1812 => 'AL',
+ 1813 => 'AL',
+ 1814 => 'AL',
+ 1815 => 'AL',
+ 1816 => 'AL',
+ 1817 => 'AL',
+ 1818 => 'AL',
+ 1819 => 'AL',
+ 1820 => 'AL',
+ 1821 => 'AL',
+ 1822 => 'AL',
+ 1823 => 'AL',
+ 1824 => 'AL',
+ 1825 => 'AL',
+ 1826 => 'AL',
+ 1827 => 'AL',
+ 1828 => 'AL',
+ 1829 => 'AL',
+ 1830 => 'AL',
+ 1831 => 'AL',
+ 1832 => 'AL',
+ 1833 => 'AL',
+ 1834 => 'AL',
+ 1835 => 'AL',
+ 1836 => 'AL',
+ 1837 => 'AL',
+ 1838 => 'AL',
+ 1839 => 'AL',
+ 1840 => 'NSM',
+ 1841 => 'NSM',
+ 1842 => 'NSM',
+ 1843 => 'NSM',
+ 1844 => 'NSM',
+ 1845 => 'NSM',
+ 1846 => 'NSM',
+ 1847 => 'NSM',
+ 1848 => 'NSM',
+ 1849 => 'NSM',
+ 1850 => 'NSM',
+ 1851 => 'NSM',
+ 1852 => 'NSM',
+ 1853 => 'NSM',
+ 1854 => 'NSM',
+ 1855 => 'NSM',
+ 1856 => 'NSM',
+ 1857 => 'NSM',
+ 1858 => 'NSM',
+ 1859 => 'NSM',
+ 1860 => 'NSM',
+ 1861 => 'NSM',
+ 1862 => 'NSM',
+ 1863 => 'NSM',
+ 1864 => 'NSM',
+ 1865 => 'NSM',
+ 1866 => 'NSM',
+ 1869 => 'AL',
+ 1870 => 'AL',
+ 1871 => 'AL',
+ 1872 => 'AL',
+ 1873 => 'AL',
+ 1874 => 'AL',
+ 1875 => 'AL',
+ 1876 => 'AL',
+ 1877 => 'AL',
+ 1878 => 'AL',
+ 1879 => 'AL',
+ 1880 => 'AL',
+ 1881 => 'AL',
+ 1882 => 'AL',
+ 1883 => 'AL',
+ 1884 => 'AL',
+ 1885 => 'AL',
+ 1886 => 'AL',
+ 1887 => 'AL',
+ 1888 => 'AL',
+ 1889 => 'AL',
+ 1890 => 'AL',
+ 1891 => 'AL',
+ 1892 => 'AL',
+ 1893 => 'AL',
+ 1894 => 'AL',
+ 1895 => 'AL',
+ 1896 => 'AL',
+ 1897 => 'AL',
+ 1898 => 'AL',
+ 1899 => 'AL',
+ 1900 => 'AL',
+ 1901 => 'AL',
+ 1920 => 'AL',
+ 1921 => 'AL',
+ 1922 => 'AL',
+ 1923 => 'AL',
+ 1924 => 'AL',
+ 1925 => 'AL',
+ 1926 => 'AL',
+ 1927 => 'AL',
+ 1928 => 'AL',
+ 1929 => 'AL',
+ 1930 => 'AL',
+ 1931 => 'AL',
+ 1932 => 'AL',
+ 1933 => 'AL',
+ 1934 => 'AL',
+ 1935 => 'AL',
+ 1936 => 'AL',
+ 1937 => 'AL',
+ 1938 => 'AL',
+ 1939 => 'AL',
+ 1940 => 'AL',
+ 1941 => 'AL',
+ 1942 => 'AL',
+ 1943 => 'AL',
+ 1944 => 'AL',
+ 1945 => 'AL',
+ 1946 => 'AL',
+ 1947 => 'AL',
+ 1948 => 'AL',
+ 1949 => 'AL',
+ 1950 => 'AL',
+ 1951 => 'AL',
+ 1952 => 'AL',
+ 1953 => 'AL',
+ 1954 => 'AL',
+ 1955 => 'AL',
+ 1956 => 'AL',
+ 1957 => 'AL',
+ 1958 => 'NSM',
+ 1959 => 'NSM',
+ 1960 => 'NSM',
+ 1961 => 'NSM',
+ 1962 => 'NSM',
+ 1963 => 'NSM',
+ 1964 => 'NSM',
+ 1965 => 'NSM',
+ 1966 => 'NSM',
+ 1967 => 'NSM',
+ 1968 => 'NSM',
+ 1969 => 'AL',
+ 1984 => 'R',
+ 1985 => 'R',
+ 1986 => 'R',
+ 1987 => 'R',
+ 1988 => 'R',
+ 1989 => 'R',
+ 1990 => 'R',
+ 1991 => 'R',
+ 1992 => 'R',
+ 1993 => 'R',
+ 1994 => 'R',
+ 1995 => 'R',
+ 1996 => 'R',
+ 1997 => 'R',
+ 1998 => 'R',
+ 1999 => 'R',
+ 2000 => 'R',
+ 2001 => 'R',
+ 2002 => 'R',
+ 2003 => 'R',
+ 2004 => 'R',
+ 2005 => 'R',
+ 2006 => 'R',
+ 2007 => 'R',
+ 2008 => 'R',
+ 2009 => 'R',
+ 2010 => 'R',
+ 2011 => 'R',
+ 2012 => 'R',
+ 2013 => 'R',
+ 2014 => 'R',
+ 2015 => 'R',
+ 2016 => 'R',
+ 2017 => 'R',
+ 2018 => 'R',
+ 2019 => 'R',
+ 2020 => 'R',
+ 2021 => 'R',
+ 2022 => 'R',
+ 2023 => 'R',
+ 2024 => 'R',
+ 2025 => 'R',
+ 2026 => 'R',
+ 2027 => 'NSM',
+ 2028 => 'NSM',
+ 2029 => 'NSM',
+ 2030 => 'NSM',
+ 2031 => 'NSM',
+ 2032 => 'NSM',
+ 2033 => 'NSM',
+ 2034 => 'NSM',
+ 2035 => 'NSM',
+ 2036 => 'R',
+ 2037 => 'R',
+ 2038 => 'ON',
+ 2039 => 'ON',
+ 2040 => 'ON',
+ 2041 => 'ON',
+ 2042 => 'R',
+ 2305 => 'NSM',
+ 2306 => 'NSM',
+ 2307 => 'L',
+ 2308 => 'L',
+ 2309 => 'L',
+ 2310 => 'L',
+ 2311 => 'L',
+ 2312 => 'L',
+ 2313 => 'L',
+ 2314 => 'L',
+ 2315 => 'L',
+ 2316 => 'L',
+ 2317 => 'L',
+ 2318 => 'L',
+ 2319 => 'L',
+ 2320 => 'L',
+ 2321 => 'L',
+ 2322 => 'L',
+ 2323 => 'L',
+ 2324 => 'L',
+ 2325 => 'L',
+ 2326 => 'L',
+ 2327 => 'L',
+ 2328 => 'L',
+ 2329 => 'L',
+ 2330 => 'L',
+ 2331 => 'L',
+ 2332 => 'L',
+ 2333 => 'L',
+ 2334 => 'L',
+ 2335 => 'L',
+ 2336 => 'L',
+ 2337 => 'L',
+ 2338 => 'L',
+ 2339 => 'L',
+ 2340 => 'L',
+ 2341 => 'L',
+ 2342 => 'L',
+ 2343 => 'L',
+ 2344 => 'L',
+ 2345 => 'L',
+ 2346 => 'L',
+ 2347 => 'L',
+ 2348 => 'L',
+ 2349 => 'L',
+ 2350 => 'L',
+ 2351 => 'L',
+ 2352 => 'L',
+ 2353 => 'L',
+ 2354 => 'L',
+ 2355 => 'L',
+ 2356 => 'L',
+ 2357 => 'L',
+ 2358 => 'L',
+ 2359 => 'L',
+ 2360 => 'L',
+ 2361 => 'L',
+ 2364 => 'NSM',
+ 2365 => 'L',
+ 2366 => 'L',
+ 2367 => 'L',
+ 2368 => 'L',
+ 2369 => 'NSM',
+ 2370 => 'NSM',
+ 2371 => 'NSM',
+ 2372 => 'NSM',
+ 2373 => 'NSM',
+ 2374 => 'NSM',
+ 2375 => 'NSM',
+ 2376 => 'NSM',
+ 2377 => 'L',
+ 2378 => 'L',
+ 2379 => 'L',
+ 2380 => 'L',
+ 2381 => 'NSM',
+ 2384 => 'L',
+ 2385 => 'NSM',
+ 2386 => 'NSM',
+ 2387 => 'NSM',
+ 2388 => 'NSM',
+ 2392 => 'L',
+ 2393 => 'L',
+ 2394 => 'L',
+ 2395 => 'L',
+ 2396 => 'L',
+ 2397 => 'L',
+ 2398 => 'L',
+ 2399 => 'L',
+ 2400 => 'L',
+ 2401 => 'L',
+ 2402 => 'NSM',
+ 2403 => 'NSM',
+ 2404 => 'L',
+ 2405 => 'L',
+ 2406 => 'L',
+ 2407 => 'L',
+ 2408 => 'L',
+ 2409 => 'L',
+ 2410 => 'L',
+ 2411 => 'L',
+ 2412 => 'L',
+ 2413 => 'L',
+ 2414 => 'L',
+ 2415 => 'L',
+ 2416 => 'L',
+ 2427 => 'L',
+ 2428 => 'L',
+ 2429 => 'L',
+ 2430 => 'L',
+ 2431 => 'L',
+ 2433 => 'NSM',
+ 2434 => 'L',
+ 2435 => 'L',
+ 2437 => 'L',
+ 2438 => 'L',
+ 2439 => 'L',
+ 2440 => 'L',
+ 2441 => 'L',
+ 2442 => 'L',
+ 2443 => 'L',
+ 2444 => 'L',
+ 2447 => 'L',
+ 2448 => 'L',
+ 2451 => 'L',
+ 2452 => 'L',
+ 2453 => 'L',
+ 2454 => 'L',
+ 2455 => 'L',
+ 2456 => 'L',
+ 2457 => 'L',
+ 2458 => 'L',
+ 2459 => 'L',
+ 2460 => 'L',
+ 2461 => 'L',
+ 2462 => 'L',
+ 2463 => 'L',
+ 2464 => 'L',
+ 2465 => 'L',
+ 2466 => 'L',
+ 2467 => 'L',
+ 2468 => 'L',
+ 2469 => 'L',
+ 2470 => 'L',
+ 2471 => 'L',
+ 2472 => 'L',
+ 2474 => 'L',
+ 2475 => 'L',
+ 2476 => 'L',
+ 2477 => 'L',
+ 2478 => 'L',
+ 2479 => 'L',
+ 2480 => 'L',
+ 2482 => 'L',
+ 2486 => 'L',
+ 2487 => 'L',
+ 2488 => 'L',
+ 2489 => 'L',
+ 2492 => 'NSM',
+ 2493 => 'L',
+ 2494 => 'L',
+ 2495 => 'L',
+ 2496 => 'L',
+ 2497 => 'NSM',
+ 2498 => 'NSM',
+ 2499 => 'NSM',
+ 2500 => 'NSM',
+ 2503 => 'L',
+ 2504 => 'L',
+ 2507 => 'L',
+ 2508 => 'L',
+ 2509 => 'NSM',
+ 2510 => 'L',
+ 2519 => 'L',
+ 2524 => 'L',
+ 2525 => 'L',
+ 2527 => 'L',
+ 2528 => 'L',
+ 2529 => 'L',
+ 2530 => 'NSM',
+ 2531 => 'NSM',
+ 2534 => 'L',
+ 2535 => 'L',
+ 2536 => 'L',
+ 2537 => 'L',
+ 2538 => 'L',
+ 2539 => 'L',
+ 2540 => 'L',
+ 2541 => 'L',
+ 2542 => 'L',
+ 2543 => 'L',
+ 2544 => 'L',
+ 2545 => 'L',
+ 2546 => 'ET',
+ 2547 => 'ET',
+ 2548 => 'L',
+ 2549 => 'L',
+ 2550 => 'L',
+ 2551 => 'L',
+ 2552 => 'L',
+ 2553 => 'L',
+ 2554 => 'L',
+ 2561 => 'NSM',
+ 2562 => 'NSM',
+ 2563 => 'L',
+ 2565 => 'L',
+ 2566 => 'L',
+ 2567 => 'L',
+ 2568 => 'L',
+ 2569 => 'L',
+ 2570 => 'L',
+ 2575 => 'L',
+ 2576 => 'L',
+ 2579 => 'L',
+ 2580 => 'L',
+ 2581 => 'L',
+ 2582 => 'L',
+ 2583 => 'L',
+ 2584 => 'L',
+ 2585 => 'L',
+ 2586 => 'L',
+ 2587 => 'L',
+ 2588 => 'L',
+ 2589 => 'L',
+ 2590 => 'L',
+ 2591 => 'L',
+ 2592 => 'L',
+ 2593 => 'L',
+ 2594 => 'L',
+ 2595 => 'L',
+ 2596 => 'L',
+ 2597 => 'L',
+ 2598 => 'L',
+ 2599 => 'L',
+ 2600 => 'L',
+ 2602 => 'L',
+ 2603 => 'L',
+ 2604 => 'L',
+ 2605 => 'L',
+ 2606 => 'L',
+ 2607 => 'L',
+ 2608 => 'L',
+ 2610 => 'L',
+ 2611 => 'L',
+ 2613 => 'L',
+ 2614 => 'L',
+ 2616 => 'L',
+ 2617 => 'L',
+ 2620 => 'NSM',
+ 2622 => 'L',
+ 2623 => 'L',
+ 2624 => 'L',
+ 2625 => 'NSM',
+ 2626 => 'NSM',
+ 2631 => 'NSM',
+ 2632 => 'NSM',
+ 2635 => 'NSM',
+ 2636 => 'NSM',
+ 2637 => 'NSM',
+ 2649 => 'L',
+ 2650 => 'L',
+ 2651 => 'L',
+ 2652 => 'L',
+ 2654 => 'L',
+ 2662 => 'L',
+ 2663 => 'L',
+ 2664 => 'L',
+ 2665 => 'L',
+ 2666 => 'L',
+ 2667 => 'L',
+ 2668 => 'L',
+ 2669 => 'L',
+ 2670 => 'L',
+ 2671 => 'L',
+ 2672 => 'NSM',
+ 2673 => 'NSM',
+ 2674 => 'L',
+ 2675 => 'L',
+ 2676 => 'L',
+ 2689 => 'NSM',
+ 2690 => 'NSM',
+ 2691 => 'L',
+ 2693 => 'L',
+ 2694 => 'L',
+ 2695 => 'L',
+ 2696 => 'L',
+ 2697 => 'L',
+ 2698 => 'L',
+ 2699 => 'L',
+ 2700 => 'L',
+ 2701 => 'L',
+ 2703 => 'L',
+ 2704 => 'L',
+ 2705 => 'L',
+ 2707 => 'L',
+ 2708 => 'L',
+ 2709 => 'L',
+ 2710 => 'L',
+ 2711 => 'L',
+ 2712 => 'L',
+ 2713 => 'L',
+ 2714 => 'L',
+ 2715 => 'L',
+ 2716 => 'L',
+ 2717 => 'L',
+ 2718 => 'L',
+ 2719 => 'L',
+ 2720 => 'L',
+ 2721 => 'L',
+ 2722 => 'L',
+ 2723 => 'L',
+ 2724 => 'L',
+ 2725 => 'L',
+ 2726 => 'L',
+ 2727 => 'L',
+ 2728 => 'L',
+ 2730 => 'L',
+ 2731 => 'L',
+ 2732 => 'L',
+ 2733 => 'L',
+ 2734 => 'L',
+ 2735 => 'L',
+ 2736 => 'L',
+ 2738 => 'L',
+ 2739 => 'L',
+ 2741 => 'L',
+ 2742 => 'L',
+ 2743 => 'L',
+ 2744 => 'L',
+ 2745 => 'L',
+ 2748 => 'NSM',
+ 2749 => 'L',
+ 2750 => 'L',
+ 2751 => 'L',
+ 2752 => 'L',
+ 2753 => 'NSM',
+ 2754 => 'NSM',
+ 2755 => 'NSM',
+ 2756 => 'NSM',
+ 2757 => 'NSM',
+ 2759 => 'NSM',
+ 2760 => 'NSM',
+ 2761 => 'L',
+ 2763 => 'L',
+ 2764 => 'L',
+ 2765 => 'NSM',
+ 2768 => 'L',
+ 2784 => 'L',
+ 2785 => 'L',
+ 2786 => 'NSM',
+ 2787 => 'NSM',
+ 2790 => 'L',
+ 2791 => 'L',
+ 2792 => 'L',
+ 2793 => 'L',
+ 2794 => 'L',
+ 2795 => 'L',
+ 2796 => 'L',
+ 2797 => 'L',
+ 2798 => 'L',
+ 2799 => 'L',
+ 2801 => 'ET',
+ 2817 => 'NSM',
+ 2818 => 'L',
+ 2819 => 'L',
+ 2821 => 'L',
+ 2822 => 'L',
+ 2823 => 'L',
+ 2824 => 'L',
+ 2825 => 'L',
+ 2826 => 'L',
+ 2827 => 'L',
+ 2828 => 'L',
+ 2831 => 'L',
+ 2832 => 'L',
+ 2835 => 'L',
+ 2836 => 'L',
+ 2837 => 'L',
+ 2838 => 'L',
+ 2839 => 'L',
+ 2840 => 'L',
+ 2841 => 'L',
+ 2842 => 'L',
+ 2843 => 'L',
+ 2844 => 'L',
+ 2845 => 'L',
+ 2846 => 'L',
+ 2847 => 'L',
+ 2848 => 'L',
+ 2849 => 'L',
+ 2850 => 'L',
+ 2851 => 'L',
+ 2852 => 'L',
+ 2853 => 'L',
+ 2854 => 'L',
+ 2855 => 'L',
+ 2856 => 'L',
+ 2858 => 'L',
+ 2859 => 'L',
+ 2860 => 'L',
+ 2861 => 'L',
+ 2862 => 'L',
+ 2863 => 'L',
+ 2864 => 'L',
+ 2866 => 'L',
+ 2867 => 'L',
+ 2869 => 'L',
+ 2870 => 'L',
+ 2871 => 'L',
+ 2872 => 'L',
+ 2873 => 'L',
+ 2876 => 'NSM',
+ 2877 => 'L',
+ 2878 => 'L',
+ 2879 => 'NSM',
+ 2880 => 'L',
+ 2881 => 'NSM',
+ 2882 => 'NSM',
+ 2883 => 'NSM',
+ 2887 => 'L',
+ 2888 => 'L',
+ 2891 => 'L',
+ 2892 => 'L',
+ 2893 => 'NSM',
+ 2902 => 'NSM',
+ 2903 => 'L',
+ 2908 => 'L',
+ 2909 => 'L',
+ 2911 => 'L',
+ 2912 => 'L',
+ 2913 => 'L',
+ 2918 => 'L',
+ 2919 => 'L',
+ 2920 => 'L',
+ 2921 => 'L',
+ 2922 => 'L',
+ 2923 => 'L',
+ 2924 => 'L',
+ 2925 => 'L',
+ 2926 => 'L',
+ 2927 => 'L',
+ 2928 => 'L',
+ 2929 => 'L',
+ 2946 => 'NSM',
+ 2947 => 'L',
+ 2949 => 'L',
+ 2950 => 'L',
+ 2951 => 'L',
+ 2952 => 'L',
+ 2953 => 'L',
+ 2954 => 'L',
+ 2958 => 'L',
+ 2959 => 'L',
+ 2960 => 'L',
+ 2962 => 'L',
+ 2963 => 'L',
+ 2964 => 'L',
+ 2965 => 'L',
+ 2969 => 'L',
+ 2970 => 'L',
+ 2972 => 'L',
+ 2974 => 'L',
+ 2975 => 'L',
+ 2979 => 'L',
+ 2980 => 'L',
+ 2984 => 'L',
+ 2985 => 'L',
+ 2986 => 'L',
+ 2990 => 'L',
+ 2991 => 'L',
+ 2992 => 'L',
+ 2993 => 'L',
+ 2994 => 'L',
+ 2995 => 'L',
+ 2996 => 'L',
+ 2997 => 'L',
+ 2998 => 'L',
+ 2999 => 'L',
+ 3000 => 'L',
+ 3001 => 'L',
+ 3006 => 'L',
+ 3007 => 'L',
+ 3008 => 'NSM',
+ 3009 => 'L',
+ 3010 => 'L',
+ 3014 => 'L',
+ 3015 => 'L',
+ 3016 => 'L',
+ 3018 => 'L',
+ 3019 => 'L',
+ 3020 => 'L',
+ 3021 => 'NSM',
+ 3031 => 'L',
+ 3046 => 'L',
+ 3047 => 'L',
+ 3048 => 'L',
+ 3049 => 'L',
+ 3050 => 'L',
+ 3051 => 'L',
+ 3052 => 'L',
+ 3053 => 'L',
+ 3054 => 'L',
+ 3055 => 'L',
+ 3056 => 'L',
+ 3057 => 'L',
+ 3058 => 'L',
+ 3059 => 'ON',
+ 3060 => 'ON',
+ 3061 => 'ON',
+ 3062 => 'ON',
+ 3063 => 'ON',
+ 3064 => 'ON',
+ 3065 => 'ET',
+ 3066 => 'ON',
+ 3073 => 'L',
+ 3074 => 'L',
+ 3075 => 'L',
+ 3077 => 'L',
+ 3078 => 'L',
+ 3079 => 'L',
+ 3080 => 'L',
+ 3081 => 'L',
+ 3082 => 'L',
+ 3083 => 'L',
+ 3084 => 'L',
+ 3086 => 'L',
+ 3087 => 'L',
+ 3088 => 'L',
+ 3090 => 'L',
+ 3091 => 'L',
+ 3092 => 'L',
+ 3093 => 'L',
+ 3094 => 'L',
+ 3095 => 'L',
+ 3096 => 'L',
+ 3097 => 'L',
+ 3098 => 'L',
+ 3099 => 'L',
+ 3100 => 'L',
+ 3101 => 'L',
+ 3102 => 'L',
+ 3103 => 'L',
+ 3104 => 'L',
+ 3105 => 'L',
+ 3106 => 'L',
+ 3107 => 'L',
+ 3108 => 'L',
+ 3109 => 'L',
+ 3110 => 'L',
+ 3111 => 'L',
+ 3112 => 'L',
+ 3114 => 'L',
+ 3115 => 'L',
+ 3116 => 'L',
+ 3117 => 'L',
+ 3118 => 'L',
+ 3119 => 'L',
+ 3120 => 'L',
+ 3121 => 'L',
+ 3122 => 'L',
+ 3123 => 'L',
+ 3125 => 'L',
+ 3126 => 'L',
+ 3127 => 'L',
+ 3128 => 'L',
+ 3129 => 'L',
+ 3134 => 'NSM',
+ 3135 => 'NSM',
+ 3136 => 'NSM',
+ 3137 => 'L',
+ 3138 => 'L',
+ 3139 => 'L',
+ 3140 => 'L',
+ 3142 => 'NSM',
+ 3143 => 'NSM',
+ 3144 => 'NSM',
+ 3146 => 'NSM',
+ 3147 => 'NSM',
+ 3148 => 'NSM',
+ 3149 => 'NSM',
+ 3157 => 'NSM',
+ 3158 => 'NSM',
+ 3168 => 'L',
+ 3169 => 'L',
+ 3174 => 'L',
+ 3175 => 'L',
+ 3176 => 'L',
+ 3177 => 'L',
+ 3178 => 'L',
+ 3179 => 'L',
+ 3180 => 'L',
+ 3181 => 'L',
+ 3182 => 'L',
+ 3183 => 'L',
+ 3202 => 'L',
+ 3203 => 'L',
+ 3205 => 'L',
+ 3206 => 'L',
+ 3207 => 'L',
+ 3208 => 'L',
+ 3209 => 'L',
+ 3210 => 'L',
+ 3211 => 'L',
+ 3212 => 'L',
+ 3214 => 'L',
+ 3215 => 'L',
+ 3216 => 'L',
+ 3218 => 'L',
+ 3219 => 'L',
+ 3220 => 'L',
+ 3221 => 'L',
+ 3222 => 'L',
+ 3223 => 'L',
+ 3224 => 'L',
+ 3225 => 'L',
+ 3226 => 'L',
+ 3227 => 'L',
+ 3228 => 'L',
+ 3229 => 'L',
+ 3230 => 'L',
+ 3231 => 'L',
+ 3232 => 'L',
+ 3233 => 'L',
+ 3234 => 'L',
+ 3235 => 'L',
+ 3236 => 'L',
+ 3237 => 'L',
+ 3238 => 'L',
+ 3239 => 'L',
+ 3240 => 'L',
+ 3242 => 'L',
+ 3243 => 'L',
+ 3244 => 'L',
+ 3245 => 'L',
+ 3246 => 'L',
+ 3247 => 'L',
+ 3248 => 'L',
+ 3249 => 'L',
+ 3250 => 'L',
+ 3251 => 'L',
+ 3253 => 'L',
+ 3254 => 'L',
+ 3255 => 'L',
+ 3256 => 'L',
+ 3257 => 'L',
+ 3260 => 'NSM',
+ 3261 => 'L',
+ 3262 => 'L',
+ 3263 => 'L',
+ 3264 => 'L',
+ 3265 => 'L',
+ 3266 => 'L',
+ 3267 => 'L',
+ 3268 => 'L',
+ 3270 => 'L',
+ 3271 => 'L',
+ 3272 => 'L',
+ 3274 => 'L',
+ 3275 => 'L',
+ 3276 => 'NSM',
+ 3277 => 'NSM',
+ 3285 => 'L',
+ 3286 => 'L',
+ 3294 => 'L',
+ 3296 => 'L',
+ 3297 => 'L',
+ 3298 => 'NSM',
+ 3299 => 'NSM',
+ 3302 => 'L',
+ 3303 => 'L',
+ 3304 => 'L',
+ 3305 => 'L',
+ 3306 => 'L',
+ 3307 => 'L',
+ 3308 => 'L',
+ 3309 => 'L',
+ 3310 => 'L',
+ 3311 => 'L',
+ 3313 => 'ON',
+ 3314 => 'ON',
+ 3330 => 'L',
+ 3331 => 'L',
+ 3333 => 'L',
+ 3334 => 'L',
+ 3335 => 'L',
+ 3336 => 'L',
+ 3337 => 'L',
+ 3338 => 'L',
+ 3339 => 'L',
+ 3340 => 'L',
+ 3342 => 'L',
+ 3343 => 'L',
+ 3344 => 'L',
+ 3346 => 'L',
+ 3347 => 'L',
+ 3348 => 'L',
+ 3349 => 'L',
+ 3350 => 'L',
+ 3351 => 'L',
+ 3352 => 'L',
+ 3353 => 'L',
+ 3354 => 'L',
+ 3355 => 'L',
+ 3356 => 'L',
+ 3357 => 'L',
+ 3358 => 'L',
+ 3359 => 'L',
+ 3360 => 'L',
+ 3361 => 'L',
+ 3362 => 'L',
+ 3363 => 'L',
+ 3364 => 'L',
+ 3365 => 'L',
+ 3366 => 'L',
+ 3367 => 'L',
+ 3368 => 'L',
+ 3370 => 'L',
+ 3371 => 'L',
+ 3372 => 'L',
+ 3373 => 'L',
+ 3374 => 'L',
+ 3375 => 'L',
+ 3376 => 'L',
+ 3377 => 'L',
+ 3378 => 'L',
+ 3379 => 'L',
+ 3380 => 'L',
+ 3381 => 'L',
+ 3382 => 'L',
+ 3383 => 'L',
+ 3384 => 'L',
+ 3385 => 'L',
+ 3390 => 'L',
+ 3391 => 'L',
+ 3392 => 'L',
+ 3393 => 'NSM',
+ 3394 => 'NSM',
+ 3395 => 'NSM',
+ 3398 => 'L',
+ 3399 => 'L',
+ 3400 => 'L',
+ 3402 => 'L',
+ 3403 => 'L',
+ 3404 => 'L',
+ 3405 => 'NSM',
+ 3415 => 'L',
+ 3424 => 'L',
+ 3425 => 'L',
+ 3430 => 'L',
+ 3431 => 'L',
+ 3432 => 'L',
+ 3433 => 'L',
+ 3434 => 'L',
+ 3435 => 'L',
+ 3436 => 'L',
+ 3437 => 'L',
+ 3438 => 'L',
+ 3439 => 'L',
+ 3458 => 'L',
+ 3459 => 'L',
+ 3461 => 'L',
+ 3462 => 'L',
+ 3463 => 'L',
+ 3464 => 'L',
+ 3465 => 'L',
+ 3466 => 'L',
+ 3467 => 'L',
+ 3468 => 'L',
+ 3469 => 'L',
+ 3470 => 'L',
+ 3471 => 'L',
+ 3472 => 'L',
+ 3473 => 'L',
+ 3474 => 'L',
+ 3475 => 'L',
+ 3476 => 'L',
+ 3477 => 'L',
+ 3478 => 'L',
+ 3482 => 'L',
+ 3483 => 'L',
+ 3484 => 'L',
+ 3485 => 'L',
+ 3486 => 'L',
+ 3487 => 'L',
+ 3488 => 'L',
+ 3489 => 'L',
+ 3490 => 'L',
+ 3491 => 'L',
+ 3492 => 'L',
+ 3493 => 'L',
+ 3494 => 'L',
+ 3495 => 'L',
+ 3496 => 'L',
+ 3497 => 'L',
+ 3498 => 'L',
+ 3499 => 'L',
+ 3500 => 'L',
+ 3501 => 'L',
+ 3502 => 'L',
+ 3503 => 'L',
+ 3504 => 'L',
+ 3505 => 'L',
+ 3507 => 'L',
+ 3508 => 'L',
+ 3509 => 'L',
+ 3510 => 'L',
+ 3511 => 'L',
+ 3512 => 'L',
+ 3513 => 'L',
+ 3514 => 'L',
+ 3515 => 'L',
+ 3517 => 'L',
+ 3520 => 'L',
+ 3521 => 'L',
+ 3522 => 'L',
+ 3523 => 'L',
+ 3524 => 'L',
+ 3525 => 'L',
+ 3526 => 'L',
+ 3530 => 'NSM',
+ 3535 => 'L',
+ 3536 => 'L',
+ 3537 => 'L',
+ 3538 => 'NSM',
+ 3539 => 'NSM',
+ 3540 => 'NSM',
+ 3542 => 'NSM',
+ 3544 => 'L',
+ 3545 => 'L',
+ 3546 => 'L',
+ 3547 => 'L',
+ 3548 => 'L',
+ 3549 => 'L',
+ 3550 => 'L',
+ 3551 => 'L',
+ 3570 => 'L',
+ 3571 => 'L',
+ 3572 => 'L',
+ 3585 => 'L',
+ 3586 => 'L',
+ 3587 => 'L',
+ 3588 => 'L',
+ 3589 => 'L',
+ 3590 => 'L',
+ 3591 => 'L',
+ 3592 => 'L',
+ 3593 => 'L',
+ 3594 => 'L',
+ 3595 => 'L',
+ 3596 => 'L',
+ 3597 => 'L',
+ 3598 => 'L',
+ 3599 => 'L',
+ 3600 => 'L',
+ 3601 => 'L',
+ 3602 => 'L',
+ 3603 => 'L',
+ 3604 => 'L',
+ 3605 => 'L',
+ 3606 => 'L',
+ 3607 => 'L',
+ 3608 => 'L',
+ 3609 => 'L',
+ 3610 => 'L',
+ 3611 => 'L',
+ 3612 => 'L',
+ 3613 => 'L',
+ 3614 => 'L',
+ 3615 => 'L',
+ 3616 => 'L',
+ 3617 => 'L',
+ 3618 => 'L',
+ 3619 => 'L',
+ 3620 => 'L',
+ 3621 => 'L',
+ 3622 => 'L',
+ 3623 => 'L',
+ 3624 => 'L',
+ 3625 => 'L',
+ 3626 => 'L',
+ 3627 => 'L',
+ 3628 => 'L',
+ 3629 => 'L',
+ 3630 => 'L',
+ 3631 => 'L',
+ 3632 => 'L',
+ 3633 => 'NSM',
+ 3634 => 'L',
+ 3635 => 'L',
+ 3636 => 'NSM',
+ 3637 => 'NSM',
+ 3638 => 'NSM',
+ 3639 => 'NSM',
+ 3640 => 'NSM',
+ 3641 => 'NSM',
+ 3642 => 'NSM',
+ 3647 => 'ET',
+ 3648 => 'L',
+ 3649 => 'L',
+ 3650 => 'L',
+ 3651 => 'L',
+ 3652 => 'L',
+ 3653 => 'L',
+ 3654 => 'L',
+ 3655 => 'NSM',
+ 3656 => 'NSM',
+ 3657 => 'NSM',
+ 3658 => 'NSM',
+ 3659 => 'NSM',
+ 3660 => 'NSM',
+ 3661 => 'NSM',
+ 3662 => 'NSM',
+ 3663 => 'L',
+ 3664 => 'L',
+ 3665 => 'L',
+ 3666 => 'L',
+ 3667 => 'L',
+ 3668 => 'L',
+ 3669 => 'L',
+ 3670 => 'L',
+ 3671 => 'L',
+ 3672 => 'L',
+ 3673 => 'L',
+ 3674 => 'L',
+ 3675 => 'L',
+ 3713 => 'L',
+ 3714 => 'L',
+ 3716 => 'L',
+ 3719 => 'L',
+ 3720 => 'L',
+ 3722 => 'L',
+ 3725 => 'L',
+ 3732 => 'L',
+ 3733 => 'L',
+ 3734 => 'L',
+ 3735 => 'L',
+ 3737 => 'L',
+ 3738 => 'L',
+ 3739 => 'L',
+ 3740 => 'L',
+ 3741 => 'L',
+ 3742 => 'L',
+ 3743 => 'L',
+ 3745 => 'L',
+ 3746 => 'L',
+ 3747 => 'L',
+ 3749 => 'L',
+ 3751 => 'L',
+ 3754 => 'L',
+ 3755 => 'L',
+ 3757 => 'L',
+ 3758 => 'L',
+ 3759 => 'L',
+ 3760 => 'L',
+ 3761 => 'NSM',
+ 3762 => 'L',
+ 3763 => 'L',
+ 3764 => 'NSM',
+ 3765 => 'NSM',
+ 3766 => 'NSM',
+ 3767 => 'NSM',
+ 3768 => 'NSM',
+ 3769 => 'NSM',
+ 3771 => 'NSM',
+ 3772 => 'NSM',
+ 3773 => 'L',
+ 3776 => 'L',
+ 3777 => 'L',
+ 3778 => 'L',
+ 3779 => 'L',
+ 3780 => 'L',
+ 3782 => 'L',
+ 3784 => 'NSM',
+ 3785 => 'NSM',
+ 3786 => 'NSM',
+ 3787 => 'NSM',
+ 3788 => 'NSM',
+ 3789 => 'NSM',
+ 3792 => 'L',
+ 3793 => 'L',
+ 3794 => 'L',
+ 3795 => 'L',
+ 3796 => 'L',
+ 3797 => 'L',
+ 3798 => 'L',
+ 3799 => 'L',
+ 3800 => 'L',
+ 3801 => 'L',
+ 3804 => 'L',
+ 3805 => 'L',
+ 3840 => 'L',
+ 3841 => 'L',
+ 3842 => 'L',
+ 3843 => 'L',
+ 3844 => 'L',
+ 3845 => 'L',
+ 3846 => 'L',
+ 3847 => 'L',
+ 3848 => 'L',
+ 3849 => 'L',
+ 3850 => 'L',
+ 3851 => 'L',
+ 3852 => 'L',
+ 3853 => 'L',
+ 3854 => 'L',
+ 3855 => 'L',
+ 3856 => 'L',
+ 3857 => 'L',
+ 3858 => 'L',
+ 3859 => 'L',
+ 3860 => 'L',
+ 3861 => 'L',
+ 3862 => 'L',
+ 3863 => 'L',
+ 3864 => 'NSM',
+ 3865 => 'NSM',
+ 3866 => 'L',
+ 3867 => 'L',
+ 3868 => 'L',
+ 3869 => 'L',
+ 3870 => 'L',
+ 3871 => 'L',
+ 3872 => 'L',
+ 3873 => 'L',
+ 3874 => 'L',
+ 3875 => 'L',
+ 3876 => 'L',
+ 3877 => 'L',
+ 3878 => 'L',
+ 3879 => 'L',
+ 3880 => 'L',
+ 3881 => 'L',
+ 3882 => 'L',
+ 3883 => 'L',
+ 3884 => 'L',
+ 3885 => 'L',
+ 3886 => 'L',
+ 3887 => 'L',
+ 3888 => 'L',
+ 3889 => 'L',
+ 3890 => 'L',
+ 3891 => 'L',
+ 3892 => 'L',
+ 3893 => 'NSM',
+ 3894 => 'L',
+ 3895 => 'NSM',
+ 3896 => 'L',
+ 3897 => 'NSM',
+ 3898 => 'ON',
+ 3899 => 'ON',
+ 3900 => 'ON',
+ 3901 => 'ON',
+ 3902 => 'L',
+ 3903 => 'L',
+ 3904 => 'L',
+ 3905 => 'L',
+ 3906 => 'L',
+ 3907 => 'L',
+ 3908 => 'L',
+ 3909 => 'L',
+ 3910 => 'L',
+ 3911 => 'L',
+ 3913 => 'L',
+ 3914 => 'L',
+ 3915 => 'L',
+ 3916 => 'L',
+ 3917 => 'L',
+ 3918 => 'L',
+ 3919 => 'L',
+ 3920 => 'L',
+ 3921 => 'L',
+ 3922 => 'L',
+ 3923 => 'L',
+ 3924 => 'L',
+ 3925 => 'L',
+ 3926 => 'L',
+ 3927 => 'L',
+ 3928 => 'L',
+ 3929 => 'L',
+ 3930 => 'L',
+ 3931 => 'L',
+ 3932 => 'L',
+ 3933 => 'L',
+ 3934 => 'L',
+ 3935 => 'L',
+ 3936 => 'L',
+ 3937 => 'L',
+ 3938 => 'L',
+ 3939 => 'L',
+ 3940 => 'L',
+ 3941 => 'L',
+ 3942 => 'L',
+ 3943 => 'L',
+ 3944 => 'L',
+ 3945 => 'L',
+ 3946 => 'L',
+ 3953 => 'NSM',
+ 3954 => 'NSM',
+ 3955 => 'NSM',
+ 3956 => 'NSM',
+ 3957 => 'NSM',
+ 3958 => 'NSM',
+ 3959 => 'NSM',
+ 3960 => 'NSM',
+ 3961 => 'NSM',
+ 3962 => 'NSM',
+ 3963 => 'NSM',
+ 3964 => 'NSM',
+ 3965 => 'NSM',
+ 3966 => 'NSM',
+ 3967 => 'L',
+ 3968 => 'NSM',
+ 3969 => 'NSM',
+ 3970 => 'NSM',
+ 3971 => 'NSM',
+ 3972 => 'NSM',
+ 3973 => 'L',
+ 3974 => 'NSM',
+ 3975 => 'NSM',
+ 3976 => 'L',
+ 3977 => 'L',
+ 3978 => 'L',
+ 3979 => 'L',
+ 3984 => 'NSM',
+ 3985 => 'NSM',
+ 3986 => 'NSM',
+ 3987 => 'NSM',
+ 3988 => 'NSM',
+ 3989 => 'NSM',
+ 3990 => 'NSM',
+ 3991 => 'NSM',
+ 3993 => 'NSM',
+ 3994 => 'NSM',
+ 3995 => 'NSM',
+ 3996 => 'NSM',
+ 3997 => 'NSM',
+ 3998 => 'NSM',
+ 3999 => 'NSM',
+ 4000 => 'NSM',
+ 4001 => 'NSM',
+ 4002 => 'NSM',
+ 4003 => 'NSM',
+ 4004 => 'NSM',
+ 4005 => 'NSM',
+ 4006 => 'NSM',
+ 4007 => 'NSM',
+ 4008 => 'NSM',
+ 4009 => 'NSM',
+ 4010 => 'NSM',
+ 4011 => 'NSM',
+ 4012 => 'NSM',
+ 4013 => 'NSM',
+ 4014 => 'NSM',
+ 4015 => 'NSM',
+ 4016 => 'NSM',
+ 4017 => 'NSM',
+ 4018 => 'NSM',
+ 4019 => 'NSM',
+ 4020 => 'NSM',
+ 4021 => 'NSM',
+ 4022 => 'NSM',
+ 4023 => 'NSM',
+ 4024 => 'NSM',
+ 4025 => 'NSM',
+ 4026 => 'NSM',
+ 4027 => 'NSM',
+ 4028 => 'NSM',
+ 4030 => 'L',
+ 4031 => 'L',
+ 4032 => 'L',
+ 4033 => 'L',
+ 4034 => 'L',
+ 4035 => 'L',
+ 4036 => 'L',
+ 4037 => 'L',
+ 4038 => 'NSM',
+ 4039 => 'L',
+ 4040 => 'L',
+ 4041 => 'L',
+ 4042 => 'L',
+ 4043 => 'L',
+ 4044 => 'L',
+ 4047 => 'L',
+ 4048 => 'L',
+ 4049 => 'L',
+ 4096 => 'L',
+ 4097 => 'L',
+ 4098 => 'L',
+ 4099 => 'L',
+ 4100 => 'L',
+ 4101 => 'L',
+ 4102 => 'L',
+ 4103 => 'L',
+ 4104 => 'L',
+ 4105 => 'L',
+ 4106 => 'L',
+ 4107 => 'L',
+ 4108 => 'L',
+ 4109 => 'L',
+ 4110 => 'L',
+ 4111 => 'L',
+ 4112 => 'L',
+ 4113 => 'L',
+ 4114 => 'L',
+ 4115 => 'L',
+ 4116 => 'L',
+ 4117 => 'L',
+ 4118 => 'L',
+ 4119 => 'L',
+ 4120 => 'L',
+ 4121 => 'L',
+ 4122 => 'L',
+ 4123 => 'L',
+ 4124 => 'L',
+ 4125 => 'L',
+ 4126 => 'L',
+ 4127 => 'L',
+ 4128 => 'L',
+ 4129 => 'L',
+ 4131 => 'L',
+ 4132 => 'L',
+ 4133 => 'L',
+ 4134 => 'L',
+ 4135 => 'L',
+ 4137 => 'L',
+ 4138 => 'L',
+ 4140 => 'L',
+ 4141 => 'NSM',
+ 4142 => 'NSM',
+ 4143 => 'NSM',
+ 4144 => 'NSM',
+ 4145 => 'L',
+ 4146 => 'NSM',
+ 4150 => 'NSM',
+ 4151 => 'NSM',
+ 4152 => 'L',
+ 4153 => 'NSM',
+ 4160 => 'L',
+ 4161 => 'L',
+ 4162 => 'L',
+ 4163 => 'L',
+ 4164 => 'L',
+ 4165 => 'L',
+ 4166 => 'L',
+ 4167 => 'L',
+ 4168 => 'L',
+ 4169 => 'L',
+ 4170 => 'L',
+ 4171 => 'L',
+ 4172 => 'L',
+ 4173 => 'L',
+ 4174 => 'L',
+ 4175 => 'L',
+ 4176 => 'L',
+ 4177 => 'L',
+ 4178 => 'L',
+ 4179 => 'L',
+ 4180 => 'L',
+ 4181 => 'L',
+ 4182 => 'L',
+ 4183 => 'L',
+ 4184 => 'NSM',
+ 4185 => 'NSM',
+ 4256 => 'L',
+ 4257 => 'L',
+ 4258 => 'L',
+ 4259 => 'L',
+ 4260 => 'L',
+ 4261 => 'L',
+ 4262 => 'L',
+ 4263 => 'L',
+ 4264 => 'L',
+ 4265 => 'L',
+ 4266 => 'L',
+ 4267 => 'L',
+ 4268 => 'L',
+ 4269 => 'L',
+ 4270 => 'L',
+ 4271 => 'L',
+ 4272 => 'L',
+ 4273 => 'L',
+ 4274 => 'L',
+ 4275 => 'L',
+ 4276 => 'L',
+ 4277 => 'L',
+ 4278 => 'L',
+ 4279 => 'L',
+ 4280 => 'L',
+ 4281 => 'L',
+ 4282 => 'L',
+ 4283 => 'L',
+ 4284 => 'L',
+ 4285 => 'L',
+ 4286 => 'L',
+ 4287 => 'L',
+ 4288 => 'L',
+ 4289 => 'L',
+ 4290 => 'L',
+ 4291 => 'L',
+ 4292 => 'L',
+ 4293 => 'L',
+ 4304 => 'L',
+ 4305 => 'L',
+ 4306 => 'L',
+ 4307 => 'L',
+ 4308 => 'L',
+ 4309 => 'L',
+ 4310 => 'L',
+ 4311 => 'L',
+ 4312 => 'L',
+ 4313 => 'L',
+ 4314 => 'L',
+ 4315 => 'L',
+ 4316 => 'L',
+ 4317 => 'L',
+ 4318 => 'L',
+ 4319 => 'L',
+ 4320 => 'L',
+ 4321 => 'L',
+ 4322 => 'L',
+ 4323 => 'L',
+ 4324 => 'L',
+ 4325 => 'L',
+ 4326 => 'L',
+ 4327 => 'L',
+ 4328 => 'L',
+ 4329 => 'L',
+ 4330 => 'L',
+ 4331 => 'L',
+ 4332 => 'L',
+ 4333 => 'L',
+ 4334 => 'L',
+ 4335 => 'L',
+ 4336 => 'L',
+ 4337 => 'L',
+ 4338 => 'L',
+ 4339 => 'L',
+ 4340 => 'L',
+ 4341 => 'L',
+ 4342 => 'L',
+ 4343 => 'L',
+ 4344 => 'L',
+ 4345 => 'L',
+ 4346 => 'L',
+ 4347 => 'L',
+ 4348 => 'L',
+ 4352 => 'L',
+ 4353 => 'L',
+ 4354 => 'L',
+ 4355 => 'L',
+ 4356 => 'L',
+ 4357 => 'L',
+ 4358 => 'L',
+ 4359 => 'L',
+ 4360 => 'L',
+ 4361 => 'L',
+ 4362 => 'L',
+ 4363 => 'L',
+ 4364 => 'L',
+ 4365 => 'L',
+ 4366 => 'L',
+ 4367 => 'L',
+ 4368 => 'L',
+ 4369 => 'L',
+ 4370 => 'L',
+ 4371 => 'L',
+ 4372 => 'L',
+ 4373 => 'L',
+ 4374 => 'L',
+ 4375 => 'L',
+ 4376 => 'L',
+ 4377 => 'L',
+ 4378 => 'L',
+ 4379 => 'L',
+ 4380 => 'L',
+ 4381 => 'L',
+ 4382 => 'L',
+ 4383 => 'L',
+ 4384 => 'L',
+ 4385 => 'L',
+ 4386 => 'L',
+ 4387 => 'L',
+ 4388 => 'L',
+ 4389 => 'L',
+ 4390 => 'L',
+ 4391 => 'L',
+ 4392 => 'L',
+ 4393 => 'L',
+ 4394 => 'L',
+ 4395 => 'L',
+ 4396 => 'L',
+ 4397 => 'L',
+ 4398 => 'L',
+ 4399 => 'L',
+ 4400 => 'L',
+ 4401 => 'L',
+ 4402 => 'L',
+ 4403 => 'L',
+ 4404 => 'L',
+ 4405 => 'L',
+ 4406 => 'L',
+ 4407 => 'L',
+ 4408 => 'L',
+ 4409 => 'L',
+ 4410 => 'L',
+ 4411 => 'L',
+ 4412 => 'L',
+ 4413 => 'L',
+ 4414 => 'L',
+ 4415 => 'L',
+ 4416 => 'L',
+ 4417 => 'L',
+ 4418 => 'L',
+ 4419 => 'L',
+ 4420 => 'L',
+ 4421 => 'L',
+ 4422 => 'L',
+ 4423 => 'L',
+ 4424 => 'L',
+ 4425 => 'L',
+ 4426 => 'L',
+ 4427 => 'L',
+ 4428 => 'L',
+ 4429 => 'L',
+ 4430 => 'L',
+ 4431 => 'L',
+ 4432 => 'L',
+ 4433 => 'L',
+ 4434 => 'L',
+ 4435 => 'L',
+ 4436 => 'L',
+ 4437 => 'L',
+ 4438 => 'L',
+ 4439 => 'L',
+ 4440 => 'L',
+ 4441 => 'L',
+ 4447 => 'L',
+ 4448 => 'L',
+ 4449 => 'L',
+ 4450 => 'L',
+ 4451 => 'L',
+ 4452 => 'L',
+ 4453 => 'L',
+ 4454 => 'L',
+ 4455 => 'L',
+ 4456 => 'L',
+ 4457 => 'L',
+ 4458 => 'L',
+ 4459 => 'L',
+ 4460 => 'L',
+ 4461 => 'L',
+ 4462 => 'L',
+ 4463 => 'L',
+ 4464 => 'L',
+ 4465 => 'L',
+ 4466 => 'L',
+ 4467 => 'L',
+ 4468 => 'L',
+ 4469 => 'L',
+ 4470 => 'L',
+ 4471 => 'L',
+ 4472 => 'L',
+ 4473 => 'L',
+ 4474 => 'L',
+ 4475 => 'L',
+ 4476 => 'L',
+ 4477 => 'L',
+ 4478 => 'L',
+ 4479 => 'L',
+ 4480 => 'L',
+ 4481 => 'L',
+ 4482 => 'L',
+ 4483 => 'L',
+ 4484 => 'L',
+ 4485 => 'L',
+ 4486 => 'L',
+ 4487 => 'L',
+ 4488 => 'L',
+ 4489 => 'L',
+ 4490 => 'L',
+ 4491 => 'L',
+ 4492 => 'L',
+ 4493 => 'L',
+ 4494 => 'L',
+ 4495 => 'L',
+ 4496 => 'L',
+ 4497 => 'L',
+ 4498 => 'L',
+ 4499 => 'L',
+ 4500 => 'L',
+ 4501 => 'L',
+ 4502 => 'L',
+ 4503 => 'L',
+ 4504 => 'L',
+ 4505 => 'L',
+ 4506 => 'L',
+ 4507 => 'L',
+ 4508 => 'L',
+ 4509 => 'L',
+ 4510 => 'L',
+ 4511 => 'L',
+ 4512 => 'L',
+ 4513 => 'L',
+ 4514 => 'L',
+ 4520 => 'L',
+ 4521 => 'L',
+ 4522 => 'L',
+ 4523 => 'L',
+ 4524 => 'L',
+ 4525 => 'L',
+ 4526 => 'L',
+ 4527 => 'L',
+ 4528 => 'L',
+ 4529 => 'L',
+ 4530 => 'L',
+ 4531 => 'L',
+ 4532 => 'L',
+ 4533 => 'L',
+ 4534 => 'L',
+ 4535 => 'L',
+ 4536 => 'L',
+ 4537 => 'L',
+ 4538 => 'L',
+ 4539 => 'L',
+ 4540 => 'L',
+ 4541 => 'L',
+ 4542 => 'L',
+ 4543 => 'L',
+ 4544 => 'L',
+ 4545 => 'L',
+ 4546 => 'L',
+ 4547 => 'L',
+ 4548 => 'L',
+ 4549 => 'L',
+ 4550 => 'L',
+ 4551 => 'L',
+ 4552 => 'L',
+ 4553 => 'L',
+ 4554 => 'L',
+ 4555 => 'L',
+ 4556 => 'L',
+ 4557 => 'L',
+ 4558 => 'L',
+ 4559 => 'L',
+ 4560 => 'L',
+ 4561 => 'L',
+ 4562 => 'L',
+ 4563 => 'L',
+ 4564 => 'L',
+ 4565 => 'L',
+ 4566 => 'L',
+ 4567 => 'L',
+ 4568 => 'L',
+ 4569 => 'L',
+ 4570 => 'L',
+ 4571 => 'L',
+ 4572 => 'L',
+ 4573 => 'L',
+ 4574 => 'L',
+ 4575 => 'L',
+ 4576 => 'L',
+ 4577 => 'L',
+ 4578 => 'L',
+ 4579 => 'L',
+ 4580 => 'L',
+ 4581 => 'L',
+ 4582 => 'L',
+ 4583 => 'L',
+ 4584 => 'L',
+ 4585 => 'L',
+ 4586 => 'L',
+ 4587 => 'L',
+ 4588 => 'L',
+ 4589 => 'L',
+ 4590 => 'L',
+ 4591 => 'L',
+ 4592 => 'L',
+ 4593 => 'L',
+ 4594 => 'L',
+ 4595 => 'L',
+ 4596 => 'L',
+ 4597 => 'L',
+ 4598 => 'L',
+ 4599 => 'L',
+ 4600 => 'L',
+ 4601 => 'L',
+ 4608 => 'L',
+ 4609 => 'L',
+ 4610 => 'L',
+ 4611 => 'L',
+ 4612 => 'L',
+ 4613 => 'L',
+ 4614 => 'L',
+ 4615 => 'L',
+ 4616 => 'L',
+ 4617 => 'L',
+ 4618 => 'L',
+ 4619 => 'L',
+ 4620 => 'L',
+ 4621 => 'L',
+ 4622 => 'L',
+ 4623 => 'L',
+ 4624 => 'L',
+ 4625 => 'L',
+ 4626 => 'L',
+ 4627 => 'L',
+ 4628 => 'L',
+ 4629 => 'L',
+ 4630 => 'L',
+ 4631 => 'L',
+ 4632 => 'L',
+ 4633 => 'L',
+ 4634 => 'L',
+ 4635 => 'L',
+ 4636 => 'L',
+ 4637 => 'L',
+ 4638 => 'L',
+ 4639 => 'L',
+ 4640 => 'L',
+ 4641 => 'L',
+ 4642 => 'L',
+ 4643 => 'L',
+ 4644 => 'L',
+ 4645 => 'L',
+ 4646 => 'L',
+ 4647 => 'L',
+ 4648 => 'L',
+ 4649 => 'L',
+ 4650 => 'L',
+ 4651 => 'L',
+ 4652 => 'L',
+ 4653 => 'L',
+ 4654 => 'L',
+ 4655 => 'L',
+ 4656 => 'L',
+ 4657 => 'L',
+ 4658 => 'L',
+ 4659 => 'L',
+ 4660 => 'L',
+ 4661 => 'L',
+ 4662 => 'L',
+ 4663 => 'L',
+ 4664 => 'L',
+ 4665 => 'L',
+ 4666 => 'L',
+ 4667 => 'L',
+ 4668 => 'L',
+ 4669 => 'L',
+ 4670 => 'L',
+ 4671 => 'L',
+ 4672 => 'L',
+ 4673 => 'L',
+ 4674 => 'L',
+ 4675 => 'L',
+ 4676 => 'L',
+ 4677 => 'L',
+ 4678 => 'L',
+ 4679 => 'L',
+ 4680 => 'L',
+ 4682 => 'L',
+ 4683 => 'L',
+ 4684 => 'L',
+ 4685 => 'L',
+ 4688 => 'L',
+ 4689 => 'L',
+ 4690 => 'L',
+ 4691 => 'L',
+ 4692 => 'L',
+ 4693 => 'L',
+ 4694 => 'L',
+ 4696 => 'L',
+ 4698 => 'L',
+ 4699 => 'L',
+ 4700 => 'L',
+ 4701 => 'L',
+ 4704 => 'L',
+ 4705 => 'L',
+ 4706 => 'L',
+ 4707 => 'L',
+ 4708 => 'L',
+ 4709 => 'L',
+ 4710 => 'L',
+ 4711 => 'L',
+ 4712 => 'L',
+ 4713 => 'L',
+ 4714 => 'L',
+ 4715 => 'L',
+ 4716 => 'L',
+ 4717 => 'L',
+ 4718 => 'L',
+ 4719 => 'L',
+ 4720 => 'L',
+ 4721 => 'L',
+ 4722 => 'L',
+ 4723 => 'L',
+ 4724 => 'L',
+ 4725 => 'L',
+ 4726 => 'L',
+ 4727 => 'L',
+ 4728 => 'L',
+ 4729 => 'L',
+ 4730 => 'L',
+ 4731 => 'L',
+ 4732 => 'L',
+ 4733 => 'L',
+ 4734 => 'L',
+ 4735 => 'L',
+ 4736 => 'L',
+ 4737 => 'L',
+ 4738 => 'L',
+ 4739 => 'L',
+ 4740 => 'L',
+ 4741 => 'L',
+ 4742 => 'L',
+ 4743 => 'L',
+ 4744 => 'L',
+ 4746 => 'L',
+ 4747 => 'L',
+ 4748 => 'L',
+ 4749 => 'L',
+ 4752 => 'L',
+ 4753 => 'L',
+ 4754 => 'L',
+ 4755 => 'L',
+ 4756 => 'L',
+ 4757 => 'L',
+ 4758 => 'L',
+ 4759 => 'L',
+ 4760 => 'L',
+ 4761 => 'L',
+ 4762 => 'L',
+ 4763 => 'L',
+ 4764 => 'L',
+ 4765 => 'L',
+ 4766 => 'L',
+ 4767 => 'L',
+ 4768 => 'L',
+ 4769 => 'L',
+ 4770 => 'L',
+ 4771 => 'L',
+ 4772 => 'L',
+ 4773 => 'L',
+ 4774 => 'L',
+ 4775 => 'L',
+ 4776 => 'L',
+ 4777 => 'L',
+ 4778 => 'L',
+ 4779 => 'L',
+ 4780 => 'L',
+ 4781 => 'L',
+ 4782 => 'L',
+ 4783 => 'L',
+ 4784 => 'L',
+ 4786 => 'L',
+ 4787 => 'L',
+ 4788 => 'L',
+ 4789 => 'L',
+ 4792 => 'L',
+ 4793 => 'L',
+ 4794 => 'L',
+ 4795 => 'L',
+ 4796 => 'L',
+ 4797 => 'L',
+ 4798 => 'L',
+ 4800 => 'L',
+ 4802 => 'L',
+ 4803 => 'L',
+ 4804 => 'L',
+ 4805 => 'L',
+ 4808 => 'L',
+ 4809 => 'L',
+ 4810 => 'L',
+ 4811 => 'L',
+ 4812 => 'L',
+ 4813 => 'L',
+ 4814 => 'L',
+ 4815 => 'L',
+ 4816 => 'L',
+ 4817 => 'L',
+ 4818 => 'L',
+ 4819 => 'L',
+ 4820 => 'L',
+ 4821 => 'L',
+ 4822 => 'L',
+ 4824 => 'L',
+ 4825 => 'L',
+ 4826 => 'L',
+ 4827 => 'L',
+ 4828 => 'L',
+ 4829 => 'L',
+ 4830 => 'L',
+ 4831 => 'L',
+ 4832 => 'L',
+ 4833 => 'L',
+ 4834 => 'L',
+ 4835 => 'L',
+ 4836 => 'L',
+ 4837 => 'L',
+ 4838 => 'L',
+ 4839 => 'L',
+ 4840 => 'L',
+ 4841 => 'L',
+ 4842 => 'L',
+ 4843 => 'L',
+ 4844 => 'L',
+ 4845 => 'L',
+ 4846 => 'L',
+ 4847 => 'L',
+ 4848 => 'L',
+ 4849 => 'L',
+ 4850 => 'L',
+ 4851 => 'L',
+ 4852 => 'L',
+ 4853 => 'L',
+ 4854 => 'L',
+ 4855 => 'L',
+ 4856 => 'L',
+ 4857 => 'L',
+ 4858 => 'L',
+ 4859 => 'L',
+ 4860 => 'L',
+ 4861 => 'L',
+ 4862 => 'L',
+ 4863 => 'L',
+ 4864 => 'L',
+ 4865 => 'L',
+ 4866 => 'L',
+ 4867 => 'L',
+ 4868 => 'L',
+ 4869 => 'L',
+ 4870 => 'L',
+ 4871 => 'L',
+ 4872 => 'L',
+ 4873 => 'L',
+ 4874 => 'L',
+ 4875 => 'L',
+ 4876 => 'L',
+ 4877 => 'L',
+ 4878 => 'L',
+ 4879 => 'L',
+ 4880 => 'L',
+ 4882 => 'L',
+ 4883 => 'L',
+ 4884 => 'L',
+ 4885 => 'L',
+ 4888 => 'L',
+ 4889 => 'L',
+ 4890 => 'L',
+ 4891 => 'L',
+ 4892 => 'L',
+ 4893 => 'L',
+ 4894 => 'L',
+ 4895 => 'L',
+ 4896 => 'L',
+ 4897 => 'L',
+ 4898 => 'L',
+ 4899 => 'L',
+ 4900 => 'L',
+ 4901 => 'L',
+ 4902 => 'L',
+ 4903 => 'L',
+ 4904 => 'L',
+ 4905 => 'L',
+ 4906 => 'L',
+ 4907 => 'L',
+ 4908 => 'L',
+ 4909 => 'L',
+ 4910 => 'L',
+ 4911 => 'L',
+ 4912 => 'L',
+ 4913 => 'L',
+ 4914 => 'L',
+ 4915 => 'L',
+ 4916 => 'L',
+ 4917 => 'L',
+ 4918 => 'L',
+ 4919 => 'L',
+ 4920 => 'L',
+ 4921 => 'L',
+ 4922 => 'L',
+ 4923 => 'L',
+ 4924 => 'L',
+ 4925 => 'L',
+ 4926 => 'L',
+ 4927 => 'L',
+ 4928 => 'L',
+ 4929 => 'L',
+ 4930 => 'L',
+ 4931 => 'L',
+ 4932 => 'L',
+ 4933 => 'L',
+ 4934 => 'L',
+ 4935 => 'L',
+ 4936 => 'L',
+ 4937 => 'L',
+ 4938 => 'L',
+ 4939 => 'L',
+ 4940 => 'L',
+ 4941 => 'L',
+ 4942 => 'L',
+ 4943 => 'L',
+ 4944 => 'L',
+ 4945 => 'L',
+ 4946 => 'L',
+ 4947 => 'L',
+ 4948 => 'L',
+ 4949 => 'L',
+ 4950 => 'L',
+ 4951 => 'L',
+ 4952 => 'L',
+ 4953 => 'L',
+ 4954 => 'L',
+ 4959 => 'NSM',
+ 4960 => 'L',
+ 4961 => 'L',
+ 4962 => 'L',
+ 4963 => 'L',
+ 4964 => 'L',
+ 4965 => 'L',
+ 4966 => 'L',
+ 4967 => 'L',
+ 4968 => 'L',
+ 4969 => 'L',
+ 4970 => 'L',
+ 4971 => 'L',
+ 4972 => 'L',
+ 4973 => 'L',
+ 4974 => 'L',
+ 4975 => 'L',
+ 4976 => 'L',
+ 4977 => 'L',
+ 4978 => 'L',
+ 4979 => 'L',
+ 4980 => 'L',
+ 4981 => 'L',
+ 4982 => 'L',
+ 4983 => 'L',
+ 4984 => 'L',
+ 4985 => 'L',
+ 4986 => 'L',
+ 4987 => 'L',
+ 4988 => 'L',
+ 4992 => 'L',
+ 4993 => 'L',
+ 4994 => 'L',
+ 4995 => 'L',
+ 4996 => 'L',
+ 4997 => 'L',
+ 4998 => 'L',
+ 4999 => 'L',
+ 5000 => 'L',
+ 5001 => 'L',
+ 5002 => 'L',
+ 5003 => 'L',
+ 5004 => 'L',
+ 5005 => 'L',
+ 5006 => 'L',
+ 5007 => 'L',
+ 5008 => 'ON',
+ 5009 => 'ON',
+ 5010 => 'ON',
+ 5011 => 'ON',
+ 5012 => 'ON',
+ 5013 => 'ON',
+ 5014 => 'ON',
+ 5015 => 'ON',
+ 5016 => 'ON',
+ 5017 => 'ON',
+ 5024 => 'L',
+ 5025 => 'L',
+ 5026 => 'L',
+ 5027 => 'L',
+ 5028 => 'L',
+ 5029 => 'L',
+ 5030 => 'L',
+ 5031 => 'L',
+ 5032 => 'L',
+ 5033 => 'L',
+ 5034 => 'L',
+ 5035 => 'L',
+ 5036 => 'L',
+ 5037 => 'L',
+ 5038 => 'L',
+ 5039 => 'L',
+ 5040 => 'L',
+ 5041 => 'L',
+ 5042 => 'L',
+ 5043 => 'L',
+ 5044 => 'L',
+ 5045 => 'L',
+ 5046 => 'L',
+ 5047 => 'L',
+ 5048 => 'L',
+ 5049 => 'L',
+ 5050 => 'L',
+ 5051 => 'L',
+ 5052 => 'L',
+ 5053 => 'L',
+ 5054 => 'L',
+ 5055 => 'L',
+ 5056 => 'L',
+ 5057 => 'L',
+ 5058 => 'L',
+ 5059 => 'L',
+ 5060 => 'L',
+ 5061 => 'L',
+ 5062 => 'L',
+ 5063 => 'L',
+ 5064 => 'L',
+ 5065 => 'L',
+ 5066 => 'L',
+ 5067 => 'L',
+ 5068 => 'L',
+ 5069 => 'L',
+ 5070 => 'L',
+ 5071 => 'L',
+ 5072 => 'L',
+ 5073 => 'L',
+ 5074 => 'L',
+ 5075 => 'L',
+ 5076 => 'L',
+ 5077 => 'L',
+ 5078 => 'L',
+ 5079 => 'L',
+ 5080 => 'L',
+ 5081 => 'L',
+ 5082 => 'L',
+ 5083 => 'L',
+ 5084 => 'L',
+ 5085 => 'L',
+ 5086 => 'L',
+ 5087 => 'L',
+ 5088 => 'L',
+ 5089 => 'L',
+ 5090 => 'L',
+ 5091 => 'L',
+ 5092 => 'L',
+ 5093 => 'L',
+ 5094 => 'L',
+ 5095 => 'L',
+ 5096 => 'L',
+ 5097 => 'L',
+ 5098 => 'L',
+ 5099 => 'L',
+ 5100 => 'L',
+ 5101 => 'L',
+ 5102 => 'L',
+ 5103 => 'L',
+ 5104 => 'L',
+ 5105 => 'L',
+ 5106 => 'L',
+ 5107 => 'L',
+ 5108 => 'L',
+ 5121 => 'L',
+ 5122 => 'L',
+ 5123 => 'L',
+ 5124 => 'L',
+ 5125 => 'L',
+ 5126 => 'L',
+ 5127 => 'L',
+ 5128 => 'L',
+ 5129 => 'L',
+ 5130 => 'L',
+ 5131 => 'L',
+ 5132 => 'L',
+ 5133 => 'L',
+ 5134 => 'L',
+ 5135 => 'L',
+ 5136 => 'L',
+ 5137 => 'L',
+ 5138 => 'L',
+ 5139 => 'L',
+ 5140 => 'L',
+ 5141 => 'L',
+ 5142 => 'L',
+ 5143 => 'L',
+ 5144 => 'L',
+ 5145 => 'L',
+ 5146 => 'L',
+ 5147 => 'L',
+ 5148 => 'L',
+ 5149 => 'L',
+ 5150 => 'L',
+ 5151 => 'L',
+ 5152 => 'L',
+ 5153 => 'L',
+ 5154 => 'L',
+ 5155 => 'L',
+ 5156 => 'L',
+ 5157 => 'L',
+ 5158 => 'L',
+ 5159 => 'L',
+ 5160 => 'L',
+ 5161 => 'L',
+ 5162 => 'L',
+ 5163 => 'L',
+ 5164 => 'L',
+ 5165 => 'L',
+ 5166 => 'L',
+ 5167 => 'L',
+ 5168 => 'L',
+ 5169 => 'L',
+ 5170 => 'L',
+ 5171 => 'L',
+ 5172 => 'L',
+ 5173 => 'L',
+ 5174 => 'L',
+ 5175 => 'L',
+ 5176 => 'L',
+ 5177 => 'L',
+ 5178 => 'L',
+ 5179 => 'L',
+ 5180 => 'L',
+ 5181 => 'L',
+ 5182 => 'L',
+ 5183 => 'L',
+ 5184 => 'L',
+ 5185 => 'L',
+ 5186 => 'L',
+ 5187 => 'L',
+ 5188 => 'L',
+ 5189 => 'L',
+ 5190 => 'L',
+ 5191 => 'L',
+ 5192 => 'L',
+ 5193 => 'L',
+ 5194 => 'L',
+ 5195 => 'L',
+ 5196 => 'L',
+ 5197 => 'L',
+ 5198 => 'L',
+ 5199 => 'L',
+ 5200 => 'L',
+ 5201 => 'L',
+ 5202 => 'L',
+ 5203 => 'L',
+ 5204 => 'L',
+ 5205 => 'L',
+ 5206 => 'L',
+ 5207 => 'L',
+ 5208 => 'L',
+ 5209 => 'L',
+ 5210 => 'L',
+ 5211 => 'L',
+ 5212 => 'L',
+ 5213 => 'L',
+ 5214 => 'L',
+ 5215 => 'L',
+ 5216 => 'L',
+ 5217 => 'L',
+ 5218 => 'L',
+ 5219 => 'L',
+ 5220 => 'L',
+ 5221 => 'L',
+ 5222 => 'L',
+ 5223 => 'L',
+ 5224 => 'L',
+ 5225 => 'L',
+ 5226 => 'L',
+ 5227 => 'L',
+ 5228 => 'L',
+ 5229 => 'L',
+ 5230 => 'L',
+ 5231 => 'L',
+ 5232 => 'L',
+ 5233 => 'L',
+ 5234 => 'L',
+ 5235 => 'L',
+ 5236 => 'L',
+ 5237 => 'L',
+ 5238 => 'L',
+ 5239 => 'L',
+ 5240 => 'L',
+ 5241 => 'L',
+ 5242 => 'L',
+ 5243 => 'L',
+ 5244 => 'L',
+ 5245 => 'L',
+ 5246 => 'L',
+ 5247 => 'L',
+ 5248 => 'L',
+ 5249 => 'L',
+ 5250 => 'L',
+ 5251 => 'L',
+ 5252 => 'L',
+ 5253 => 'L',
+ 5254 => 'L',
+ 5255 => 'L',
+ 5256 => 'L',
+ 5257 => 'L',
+ 5258 => 'L',
+ 5259 => 'L',
+ 5260 => 'L',
+ 5261 => 'L',
+ 5262 => 'L',
+ 5263 => 'L',
+ 5264 => 'L',
+ 5265 => 'L',
+ 5266 => 'L',
+ 5267 => 'L',
+ 5268 => 'L',
+ 5269 => 'L',
+ 5270 => 'L',
+ 5271 => 'L',
+ 5272 => 'L',
+ 5273 => 'L',
+ 5274 => 'L',
+ 5275 => 'L',
+ 5276 => 'L',
+ 5277 => 'L',
+ 5278 => 'L',
+ 5279 => 'L',
+ 5280 => 'L',
+ 5281 => 'L',
+ 5282 => 'L',
+ 5283 => 'L',
+ 5284 => 'L',
+ 5285 => 'L',
+ 5286 => 'L',
+ 5287 => 'L',
+ 5288 => 'L',
+ 5289 => 'L',
+ 5290 => 'L',
+ 5291 => 'L',
+ 5292 => 'L',
+ 5293 => 'L',
+ 5294 => 'L',
+ 5295 => 'L',
+ 5296 => 'L',
+ 5297 => 'L',
+ 5298 => 'L',
+ 5299 => 'L',
+ 5300 => 'L',
+ 5301 => 'L',
+ 5302 => 'L',
+ 5303 => 'L',
+ 5304 => 'L',
+ 5305 => 'L',
+ 5306 => 'L',
+ 5307 => 'L',
+ 5308 => 'L',
+ 5309 => 'L',
+ 5310 => 'L',
+ 5311 => 'L',
+ 5312 => 'L',
+ 5313 => 'L',
+ 5314 => 'L',
+ 5315 => 'L',
+ 5316 => 'L',
+ 5317 => 'L',
+ 5318 => 'L',
+ 5319 => 'L',
+ 5320 => 'L',
+ 5321 => 'L',
+ 5322 => 'L',
+ 5323 => 'L',
+ 5324 => 'L',
+ 5325 => 'L',
+ 5326 => 'L',
+ 5327 => 'L',
+ 5328 => 'L',
+ 5329 => 'L',
+ 5330 => 'L',
+ 5331 => 'L',
+ 5332 => 'L',
+ 5333 => 'L',
+ 5334 => 'L',
+ 5335 => 'L',
+ 5336 => 'L',
+ 5337 => 'L',
+ 5338 => 'L',
+ 5339 => 'L',
+ 5340 => 'L',
+ 5341 => 'L',
+ 5342 => 'L',
+ 5343 => 'L',
+ 5344 => 'L',
+ 5345 => 'L',
+ 5346 => 'L',
+ 5347 => 'L',
+ 5348 => 'L',
+ 5349 => 'L',
+ 5350 => 'L',
+ 5351 => 'L',
+ 5352 => 'L',
+ 5353 => 'L',
+ 5354 => 'L',
+ 5355 => 'L',
+ 5356 => 'L',
+ 5357 => 'L',
+ 5358 => 'L',
+ 5359 => 'L',
+ 5360 => 'L',
+ 5361 => 'L',
+ 5362 => 'L',
+ 5363 => 'L',
+ 5364 => 'L',
+ 5365 => 'L',
+ 5366 => 'L',
+ 5367 => 'L',
+ 5368 => 'L',
+ 5369 => 'L',
+ 5370 => 'L',
+ 5371 => 'L',
+ 5372 => 'L',
+ 5373 => 'L',
+ 5374 => 'L',
+ 5375 => 'L',
+ 5376 => 'L',
+ 5377 => 'L',
+ 5378 => 'L',
+ 5379 => 'L',
+ 5380 => 'L',
+ 5381 => 'L',
+ 5382 => 'L',
+ 5383 => 'L',
+ 5384 => 'L',
+ 5385 => 'L',
+ 5386 => 'L',
+ 5387 => 'L',
+ 5388 => 'L',
+ 5389 => 'L',
+ 5390 => 'L',
+ 5391 => 'L',
+ 5392 => 'L',
+ 5393 => 'L',
+ 5394 => 'L',
+ 5395 => 'L',
+ 5396 => 'L',
+ 5397 => 'L',
+ 5398 => 'L',
+ 5399 => 'L',
+ 5400 => 'L',
+ 5401 => 'L',
+ 5402 => 'L',
+ 5403 => 'L',
+ 5404 => 'L',
+ 5405 => 'L',
+ 5406 => 'L',
+ 5407 => 'L',
+ 5408 => 'L',
+ 5409 => 'L',
+ 5410 => 'L',
+ 5411 => 'L',
+ 5412 => 'L',
+ 5413 => 'L',
+ 5414 => 'L',
+ 5415 => 'L',
+ 5416 => 'L',
+ 5417 => 'L',
+ 5418 => 'L',
+ 5419 => 'L',
+ 5420 => 'L',
+ 5421 => 'L',
+ 5422 => 'L',
+ 5423 => 'L',
+ 5424 => 'L',
+ 5425 => 'L',
+ 5426 => 'L',
+ 5427 => 'L',
+ 5428 => 'L',
+ 5429 => 'L',
+ 5430 => 'L',
+ 5431 => 'L',
+ 5432 => 'L',
+ 5433 => 'L',
+ 5434 => 'L',
+ 5435 => 'L',
+ 5436 => 'L',
+ 5437 => 'L',
+ 5438 => 'L',
+ 5439 => 'L',
+ 5440 => 'L',
+ 5441 => 'L',
+ 5442 => 'L',
+ 5443 => 'L',
+ 5444 => 'L',
+ 5445 => 'L',
+ 5446 => 'L',
+ 5447 => 'L',
+ 5448 => 'L',
+ 5449 => 'L',
+ 5450 => 'L',
+ 5451 => 'L',
+ 5452 => 'L',
+ 5453 => 'L',
+ 5454 => 'L',
+ 5455 => 'L',
+ 5456 => 'L',
+ 5457 => 'L',
+ 5458 => 'L',
+ 5459 => 'L',
+ 5460 => 'L',
+ 5461 => 'L',
+ 5462 => 'L',
+ 5463 => 'L',
+ 5464 => 'L',
+ 5465 => 'L',
+ 5466 => 'L',
+ 5467 => 'L',
+ 5468 => 'L',
+ 5469 => 'L',
+ 5470 => 'L',
+ 5471 => 'L',
+ 5472 => 'L',
+ 5473 => 'L',
+ 5474 => 'L',
+ 5475 => 'L',
+ 5476 => 'L',
+ 5477 => 'L',
+ 5478 => 'L',
+ 5479 => 'L',
+ 5480 => 'L',
+ 5481 => 'L',
+ 5482 => 'L',
+ 5483 => 'L',
+ 5484 => 'L',
+ 5485 => 'L',
+ 5486 => 'L',
+ 5487 => 'L',
+ 5488 => 'L',
+ 5489 => 'L',
+ 5490 => 'L',
+ 5491 => 'L',
+ 5492 => 'L',
+ 5493 => 'L',
+ 5494 => 'L',
+ 5495 => 'L',
+ 5496 => 'L',
+ 5497 => 'L',
+ 5498 => 'L',
+ 5499 => 'L',
+ 5500 => 'L',
+ 5501 => 'L',
+ 5502 => 'L',
+ 5503 => 'L',
+ 5504 => 'L',
+ 5505 => 'L',
+ 5506 => 'L',
+ 5507 => 'L',
+ 5508 => 'L',
+ 5509 => 'L',
+ 5510 => 'L',
+ 5511 => 'L',
+ 5512 => 'L',
+ 5513 => 'L',
+ 5514 => 'L',
+ 5515 => 'L',
+ 5516 => 'L',
+ 5517 => 'L',
+ 5518 => 'L',
+ 5519 => 'L',
+ 5520 => 'L',
+ 5521 => 'L',
+ 5522 => 'L',
+ 5523 => 'L',
+ 5524 => 'L',
+ 5525 => 'L',
+ 5526 => 'L',
+ 5527 => 'L',
+ 5528 => 'L',
+ 5529 => 'L',
+ 5530 => 'L',
+ 5531 => 'L',
+ 5532 => 'L',
+ 5533 => 'L',
+ 5534 => 'L',
+ 5535 => 'L',
+ 5536 => 'L',
+ 5537 => 'L',
+ 5538 => 'L',
+ 5539 => 'L',
+ 5540 => 'L',
+ 5541 => 'L',
+ 5542 => 'L',
+ 5543 => 'L',
+ 5544 => 'L',
+ 5545 => 'L',
+ 5546 => 'L',
+ 5547 => 'L',
+ 5548 => 'L',
+ 5549 => 'L',
+ 5550 => 'L',
+ 5551 => 'L',
+ 5552 => 'L',
+ 5553 => 'L',
+ 5554 => 'L',
+ 5555 => 'L',
+ 5556 => 'L',
+ 5557 => 'L',
+ 5558 => 'L',
+ 5559 => 'L',
+ 5560 => 'L',
+ 5561 => 'L',
+ 5562 => 'L',
+ 5563 => 'L',
+ 5564 => 'L',
+ 5565 => 'L',
+ 5566 => 'L',
+ 5567 => 'L',
+ 5568 => 'L',
+ 5569 => 'L',
+ 5570 => 'L',
+ 5571 => 'L',
+ 5572 => 'L',
+ 5573 => 'L',
+ 5574 => 'L',
+ 5575 => 'L',
+ 5576 => 'L',
+ 5577 => 'L',
+ 5578 => 'L',
+ 5579 => 'L',
+ 5580 => 'L',
+ 5581 => 'L',
+ 5582 => 'L',
+ 5583 => 'L',
+ 5584 => 'L',
+ 5585 => 'L',
+ 5586 => 'L',
+ 5587 => 'L',
+ 5588 => 'L',
+ 5589 => 'L',
+ 5590 => 'L',
+ 5591 => 'L',
+ 5592 => 'L',
+ 5593 => 'L',
+ 5594 => 'L',
+ 5595 => 'L',
+ 5596 => 'L',
+ 5597 => 'L',
+ 5598 => 'L',
+ 5599 => 'L',
+ 5600 => 'L',
+ 5601 => 'L',
+ 5602 => 'L',
+ 5603 => 'L',
+ 5604 => 'L',
+ 5605 => 'L',
+ 5606 => 'L',
+ 5607 => 'L',
+ 5608 => 'L',
+ 5609 => 'L',
+ 5610 => 'L',
+ 5611 => 'L',
+ 5612 => 'L',
+ 5613 => 'L',
+ 5614 => 'L',
+ 5615 => 'L',
+ 5616 => 'L',
+ 5617 => 'L',
+ 5618 => 'L',
+ 5619 => 'L',
+ 5620 => 'L',
+ 5621 => 'L',
+ 5622 => 'L',
+ 5623 => 'L',
+ 5624 => 'L',
+ 5625 => 'L',
+ 5626 => 'L',
+ 5627 => 'L',
+ 5628 => 'L',
+ 5629 => 'L',
+ 5630 => 'L',
+ 5631 => 'L',
+ 5632 => 'L',
+ 5633 => 'L',
+ 5634 => 'L',
+ 5635 => 'L',
+ 5636 => 'L',
+ 5637 => 'L',
+ 5638 => 'L',
+ 5639 => 'L',
+ 5640 => 'L',
+ 5641 => 'L',
+ 5642 => 'L',
+ 5643 => 'L',
+ 5644 => 'L',
+ 5645 => 'L',
+ 5646 => 'L',
+ 5647 => 'L',
+ 5648 => 'L',
+ 5649 => 'L',
+ 5650 => 'L',
+ 5651 => 'L',
+ 5652 => 'L',
+ 5653 => 'L',
+ 5654 => 'L',
+ 5655 => 'L',
+ 5656 => 'L',
+ 5657 => 'L',
+ 5658 => 'L',
+ 5659 => 'L',
+ 5660 => 'L',
+ 5661 => 'L',
+ 5662 => 'L',
+ 5663 => 'L',
+ 5664 => 'L',
+ 5665 => 'L',
+ 5666 => 'L',
+ 5667 => 'L',
+ 5668 => 'L',
+ 5669 => 'L',
+ 5670 => 'L',
+ 5671 => 'L',
+ 5672 => 'L',
+ 5673 => 'L',
+ 5674 => 'L',
+ 5675 => 'L',
+ 5676 => 'L',
+ 5677 => 'L',
+ 5678 => 'L',
+ 5679 => 'L',
+ 5680 => 'L',
+ 5681 => 'L',
+ 5682 => 'L',
+ 5683 => 'L',
+ 5684 => 'L',
+ 5685 => 'L',
+ 5686 => 'L',
+ 5687 => 'L',
+ 5688 => 'L',
+ 5689 => 'L',
+ 5690 => 'L',
+ 5691 => 'L',
+ 5692 => 'L',
+ 5693 => 'L',
+ 5694 => 'L',
+ 5695 => 'L',
+ 5696 => 'L',
+ 5697 => 'L',
+ 5698 => 'L',
+ 5699 => 'L',
+ 5700 => 'L',
+ 5701 => 'L',
+ 5702 => 'L',
+ 5703 => 'L',
+ 5704 => 'L',
+ 5705 => 'L',
+ 5706 => 'L',
+ 5707 => 'L',
+ 5708 => 'L',
+ 5709 => 'L',
+ 5710 => 'L',
+ 5711 => 'L',
+ 5712 => 'L',
+ 5713 => 'L',
+ 5714 => 'L',
+ 5715 => 'L',
+ 5716 => 'L',
+ 5717 => 'L',
+ 5718 => 'L',
+ 5719 => 'L',
+ 5720 => 'L',
+ 5721 => 'L',
+ 5722 => 'L',
+ 5723 => 'L',
+ 5724 => 'L',
+ 5725 => 'L',
+ 5726 => 'L',
+ 5727 => 'L',
+ 5728 => 'L',
+ 5729 => 'L',
+ 5730 => 'L',
+ 5731 => 'L',
+ 5732 => 'L',
+ 5733 => 'L',
+ 5734 => 'L',
+ 5735 => 'L',
+ 5736 => 'L',
+ 5737 => 'L',
+ 5738 => 'L',
+ 5739 => 'L',
+ 5740 => 'L',
+ 5741 => 'L',
+ 5742 => 'L',
+ 5743 => 'L',
+ 5744 => 'L',
+ 5745 => 'L',
+ 5746 => 'L',
+ 5747 => 'L',
+ 5748 => 'L',
+ 5749 => 'L',
+ 5750 => 'L',
+ 5760 => 'WS',
+ 5761 => 'L',
+ 5762 => 'L',
+ 5763 => 'L',
+ 5764 => 'L',
+ 5765 => 'L',
+ 5766 => 'L',
+ 5767 => 'L',
+ 5768 => 'L',
+ 5769 => 'L',
+ 5770 => 'L',
+ 5771 => 'L',
+ 5772 => 'L',
+ 5773 => 'L',
+ 5774 => 'L',
+ 5775 => 'L',
+ 5776 => 'L',
+ 5777 => 'L',
+ 5778 => 'L',
+ 5779 => 'L',
+ 5780 => 'L',
+ 5781 => 'L',
+ 5782 => 'L',
+ 5783 => 'L',
+ 5784 => 'L',
+ 5785 => 'L',
+ 5786 => 'L',
+ 5787 => 'ON',
+ 5788 => 'ON',
+ 5792 => 'L',
+ 5793 => 'L',
+ 5794 => 'L',
+ 5795 => 'L',
+ 5796 => 'L',
+ 5797 => 'L',
+ 5798 => 'L',
+ 5799 => 'L',
+ 5800 => 'L',
+ 5801 => 'L',
+ 5802 => 'L',
+ 5803 => 'L',
+ 5804 => 'L',
+ 5805 => 'L',
+ 5806 => 'L',
+ 5807 => 'L',
+ 5808 => 'L',
+ 5809 => 'L',
+ 5810 => 'L',
+ 5811 => 'L',
+ 5812 => 'L',
+ 5813 => 'L',
+ 5814 => 'L',
+ 5815 => 'L',
+ 5816 => 'L',
+ 5817 => 'L',
+ 5818 => 'L',
+ 5819 => 'L',
+ 5820 => 'L',
+ 5821 => 'L',
+ 5822 => 'L',
+ 5823 => 'L',
+ 5824 => 'L',
+ 5825 => 'L',
+ 5826 => 'L',
+ 5827 => 'L',
+ 5828 => 'L',
+ 5829 => 'L',
+ 5830 => 'L',
+ 5831 => 'L',
+ 5832 => 'L',
+ 5833 => 'L',
+ 5834 => 'L',
+ 5835 => 'L',
+ 5836 => 'L',
+ 5837 => 'L',
+ 5838 => 'L',
+ 5839 => 'L',
+ 5840 => 'L',
+ 5841 => 'L',
+ 5842 => 'L',
+ 5843 => 'L',
+ 5844 => 'L',
+ 5845 => 'L',
+ 5846 => 'L',
+ 5847 => 'L',
+ 5848 => 'L',
+ 5849 => 'L',
+ 5850 => 'L',
+ 5851 => 'L',
+ 5852 => 'L',
+ 5853 => 'L',
+ 5854 => 'L',
+ 5855 => 'L',
+ 5856 => 'L',
+ 5857 => 'L',
+ 5858 => 'L',
+ 5859 => 'L',
+ 5860 => 'L',
+ 5861 => 'L',
+ 5862 => 'L',
+ 5863 => 'L',
+ 5864 => 'L',
+ 5865 => 'L',
+ 5866 => 'L',
+ 5867 => 'L',
+ 5868 => 'L',
+ 5869 => 'L',
+ 5870 => 'L',
+ 5871 => 'L',
+ 5872 => 'L',
+ 5888 => 'L',
+ 5889 => 'L',
+ 5890 => 'L',
+ 5891 => 'L',
+ 5892 => 'L',
+ 5893 => 'L',
+ 5894 => 'L',
+ 5895 => 'L',
+ 5896 => 'L',
+ 5897 => 'L',
+ 5898 => 'L',
+ 5899 => 'L',
+ 5900 => 'L',
+ 5902 => 'L',
+ 5903 => 'L',
+ 5904 => 'L',
+ 5905 => 'L',
+ 5906 => 'NSM',
+ 5907 => 'NSM',
+ 5908 => 'NSM',
+ 5920 => 'L',
+ 5921 => 'L',
+ 5922 => 'L',
+ 5923 => 'L',
+ 5924 => 'L',
+ 5925 => 'L',
+ 5926 => 'L',
+ 5927 => 'L',
+ 5928 => 'L',
+ 5929 => 'L',
+ 5930 => 'L',
+ 5931 => 'L',
+ 5932 => 'L',
+ 5933 => 'L',
+ 5934 => 'L',
+ 5935 => 'L',
+ 5936 => 'L',
+ 5937 => 'L',
+ 5938 => 'NSM',
+ 5939 => 'NSM',
+ 5940 => 'NSM',
+ 5941 => 'L',
+ 5942 => 'L',
+ 5952 => 'L',
+ 5953 => 'L',
+ 5954 => 'L',
+ 5955 => 'L',
+ 5956 => 'L',
+ 5957 => 'L',
+ 5958 => 'L',
+ 5959 => 'L',
+ 5960 => 'L',
+ 5961 => 'L',
+ 5962 => 'L',
+ 5963 => 'L',
+ 5964 => 'L',
+ 5965 => 'L',
+ 5966 => 'L',
+ 5967 => 'L',
+ 5968 => 'L',
+ 5969 => 'L',
+ 5970 => 'NSM',
+ 5971 => 'NSM',
+ 5984 => 'L',
+ 5985 => 'L',
+ 5986 => 'L',
+ 5987 => 'L',
+ 5988 => 'L',
+ 5989 => 'L',
+ 5990 => 'L',
+ 5991 => 'L',
+ 5992 => 'L',
+ 5993 => 'L',
+ 5994 => 'L',
+ 5995 => 'L',
+ 5996 => 'L',
+ 5998 => 'L',
+ 5999 => 'L',
+ 6000 => 'L',
+ 6002 => 'NSM',
+ 6003 => 'NSM',
+ 6016 => 'L',
+ 6017 => 'L',
+ 6018 => 'L',
+ 6019 => 'L',
+ 6020 => 'L',
+ 6021 => 'L',
+ 6022 => 'L',
+ 6023 => 'L',
+ 6024 => 'L',
+ 6025 => 'L',
+ 6026 => 'L',
+ 6027 => 'L',
+ 6028 => 'L',
+ 6029 => 'L',
+ 6030 => 'L',
+ 6031 => 'L',
+ 6032 => 'L',
+ 6033 => 'L',
+ 6034 => 'L',
+ 6035 => 'L',
+ 6036 => 'L',
+ 6037 => 'L',
+ 6038 => 'L',
+ 6039 => 'L',
+ 6040 => 'L',
+ 6041 => 'L',
+ 6042 => 'L',
+ 6043 => 'L',
+ 6044 => 'L',
+ 6045 => 'L',
+ 6046 => 'L',
+ 6047 => 'L',
+ 6048 => 'L',
+ 6049 => 'L',
+ 6050 => 'L',
+ 6051 => 'L',
+ 6052 => 'L',
+ 6053 => 'L',
+ 6054 => 'L',
+ 6055 => 'L',
+ 6056 => 'L',
+ 6057 => 'L',
+ 6058 => 'L',
+ 6059 => 'L',
+ 6060 => 'L',
+ 6061 => 'L',
+ 6062 => 'L',
+ 6063 => 'L',
+ 6064 => 'L',
+ 6065 => 'L',
+ 6066 => 'L',
+ 6067 => 'L',
+ 6068 => 'L',
+ 6069 => 'L',
+ 6070 => 'L',
+ 6071 => 'NSM',
+ 6072 => 'NSM',
+ 6073 => 'NSM',
+ 6074 => 'NSM',
+ 6075 => 'NSM',
+ 6076 => 'NSM',
+ 6077 => 'NSM',
+ 6078 => 'L',
+ 6079 => 'L',
+ 6080 => 'L',
+ 6081 => 'L',
+ 6082 => 'L',
+ 6083 => 'L',
+ 6084 => 'L',
+ 6085 => 'L',
+ 6086 => 'NSM',
+ 6087 => 'L',
+ 6088 => 'L',
+ 6089 => 'NSM',
+ 6090 => 'NSM',
+ 6091 => 'NSM',
+ 6092 => 'NSM',
+ 6093 => 'NSM',
+ 6094 => 'NSM',
+ 6095 => 'NSM',
+ 6096 => 'NSM',
+ 6097 => 'NSM',
+ 6098 => 'NSM',
+ 6099 => 'NSM',
+ 6100 => 'L',
+ 6101 => 'L',
+ 6102 => 'L',
+ 6103 => 'L',
+ 6104 => 'L',
+ 6105 => 'L',
+ 6106 => 'L',
+ 6107 => 'ET',
+ 6108 => 'L',
+ 6109 => 'NSM',
+ 6112 => 'L',
+ 6113 => 'L',
+ 6114 => 'L',
+ 6115 => 'L',
+ 6116 => 'L',
+ 6117 => 'L',
+ 6118 => 'L',
+ 6119 => 'L',
+ 6120 => 'L',
+ 6121 => 'L',
+ 6128 => 'ON',
+ 6129 => 'ON',
+ 6130 => 'ON',
+ 6131 => 'ON',
+ 6132 => 'ON',
+ 6133 => 'ON',
+ 6134 => 'ON',
+ 6135 => 'ON',
+ 6136 => 'ON',
+ 6137 => 'ON',
+ 6144 => 'ON',
+ 6145 => 'ON',
+ 6146 => 'ON',
+ 6147 => 'ON',
+ 6148 => 'ON',
+ 6149 => 'ON',
+ 6150 => 'ON',
+ 6151 => 'ON',
+ 6152 => 'ON',
+ 6153 => 'ON',
+ 6154 => 'ON',
+ 6155 => 'NSM',
+ 6156 => 'NSM',
+ 6157 => 'NSM',
+ 6158 => 'WS',
+ 6160 => 'L',
+ 6161 => 'L',
+ 6162 => 'L',
+ 6163 => 'L',
+ 6164 => 'L',
+ 6165 => 'L',
+ 6166 => 'L',
+ 6167 => 'L',
+ 6168 => 'L',
+ 6169 => 'L',
+ 6176 => 'L',
+ 6177 => 'L',
+ 6178 => 'L',
+ 6179 => 'L',
+ 6180 => 'L',
+ 6181 => 'L',
+ 6182 => 'L',
+ 6183 => 'L',
+ 6184 => 'L',
+ 6185 => 'L',
+ 6186 => 'L',
+ 6187 => 'L',
+ 6188 => 'L',
+ 6189 => 'L',
+ 6190 => 'L',
+ 6191 => 'L',
+ 6192 => 'L',
+ 6193 => 'L',
+ 6194 => 'L',
+ 6195 => 'L',
+ 6196 => 'L',
+ 6197 => 'L',
+ 6198 => 'L',
+ 6199 => 'L',
+ 6200 => 'L',
+ 6201 => 'L',
+ 6202 => 'L',
+ 6203 => 'L',
+ 6204 => 'L',
+ 6205 => 'L',
+ 6206 => 'L',
+ 6207 => 'L',
+ 6208 => 'L',
+ 6209 => 'L',
+ 6210 => 'L',
+ 6211 => 'L',
+ 6212 => 'L',
+ 6213 => 'L',
+ 6214 => 'L',
+ 6215 => 'L',
+ 6216 => 'L',
+ 6217 => 'L',
+ 6218 => 'L',
+ 6219 => 'L',
+ 6220 => 'L',
+ 6221 => 'L',
+ 6222 => 'L',
+ 6223 => 'L',
+ 6224 => 'L',
+ 6225 => 'L',
+ 6226 => 'L',
+ 6227 => 'L',
+ 6228 => 'L',
+ 6229 => 'L',
+ 6230 => 'L',
+ 6231 => 'L',
+ 6232 => 'L',
+ 6233 => 'L',
+ 6234 => 'L',
+ 6235 => 'L',
+ 6236 => 'L',
+ 6237 => 'L',
+ 6238 => 'L',
+ 6239 => 'L',
+ 6240 => 'L',
+ 6241 => 'L',
+ 6242 => 'L',
+ 6243 => 'L',
+ 6244 => 'L',
+ 6245 => 'L',
+ 6246 => 'L',
+ 6247 => 'L',
+ 6248 => 'L',
+ 6249 => 'L',
+ 6250 => 'L',
+ 6251 => 'L',
+ 6252 => 'L',
+ 6253 => 'L',
+ 6254 => 'L',
+ 6255 => 'L',
+ 6256 => 'L',
+ 6257 => 'L',
+ 6258 => 'L',
+ 6259 => 'L',
+ 6260 => 'L',
+ 6261 => 'L',
+ 6262 => 'L',
+ 6263 => 'L',
+ 6272 => 'L',
+ 6273 => 'L',
+ 6274 => 'L',
+ 6275 => 'L',
+ 6276 => 'L',
+ 6277 => 'L',
+ 6278 => 'L',
+ 6279 => 'L',
+ 6280 => 'L',
+ 6281 => 'L',
+ 6282 => 'L',
+ 6283 => 'L',
+ 6284 => 'L',
+ 6285 => 'L',
+ 6286 => 'L',
+ 6287 => 'L',
+ 6288 => 'L',
+ 6289 => 'L',
+ 6290 => 'L',
+ 6291 => 'L',
+ 6292 => 'L',
+ 6293 => 'L',
+ 6294 => 'L',
+ 6295 => 'L',
+ 6296 => 'L',
+ 6297 => 'L',
+ 6298 => 'L',
+ 6299 => 'L',
+ 6300 => 'L',
+ 6301 => 'L',
+ 6302 => 'L',
+ 6303 => 'L',
+ 6304 => 'L',
+ 6305 => 'L',
+ 6306 => 'L',
+ 6307 => 'L',
+ 6308 => 'L',
+ 6309 => 'L',
+ 6310 => 'L',
+ 6311 => 'L',
+ 6312 => 'L',
+ 6313 => 'NSM',
+ 6400 => 'L',
+ 6401 => 'L',
+ 6402 => 'L',
+ 6403 => 'L',
+ 6404 => 'L',
+ 6405 => 'L',
+ 6406 => 'L',
+ 6407 => 'L',
+ 6408 => 'L',
+ 6409 => 'L',
+ 6410 => 'L',
+ 6411 => 'L',
+ 6412 => 'L',
+ 6413 => 'L',
+ 6414 => 'L',
+ 6415 => 'L',
+ 6416 => 'L',
+ 6417 => 'L',
+ 6418 => 'L',
+ 6419 => 'L',
+ 6420 => 'L',
+ 6421 => 'L',
+ 6422 => 'L',
+ 6423 => 'L',
+ 6424 => 'L',
+ 6425 => 'L',
+ 6426 => 'L',
+ 6427 => 'L',
+ 6428 => 'L',
+ 6432 => 'NSM',
+ 6433 => 'NSM',
+ 6434 => 'NSM',
+ 6435 => 'L',
+ 6436 => 'L',
+ 6437 => 'L',
+ 6438 => 'L',
+ 6439 => 'NSM',
+ 6440 => 'NSM',
+ 6441 => 'NSM',
+ 6442 => 'NSM',
+ 6443 => 'NSM',
+ 6448 => 'L',
+ 6449 => 'L',
+ 6450 => 'NSM',
+ 6451 => 'L',
+ 6452 => 'L',
+ 6453 => 'L',
+ 6454 => 'L',
+ 6455 => 'L',
+ 6456 => 'L',
+ 6457 => 'NSM',
+ 6458 => 'NSM',
+ 6459 => 'NSM',
+ 6464 => 'ON',
+ 6468 => 'ON',
+ 6469 => 'ON',
+ 6470 => 'L',
+ 6471 => 'L',
+ 6472 => 'L',
+ 6473 => 'L',
+ 6474 => 'L',
+ 6475 => 'L',
+ 6476 => 'L',
+ 6477 => 'L',
+ 6478 => 'L',
+ 6479 => 'L',
+ 6480 => 'L',
+ 6481 => 'L',
+ 6482 => 'L',
+ 6483 => 'L',
+ 6484 => 'L',
+ 6485 => 'L',
+ 6486 => 'L',
+ 6487 => 'L',
+ 6488 => 'L',
+ 6489 => 'L',
+ 6490 => 'L',
+ 6491 => 'L',
+ 6492 => 'L',
+ 6493 => 'L',
+ 6494 => 'L',
+ 6495 => 'L',
+ 6496 => 'L',
+ 6497 => 'L',
+ 6498 => 'L',
+ 6499 => 'L',
+ 6500 => 'L',
+ 6501 => 'L',
+ 6502 => 'L',
+ 6503 => 'L',
+ 6504 => 'L',
+ 6505 => 'L',
+ 6506 => 'L',
+ 6507 => 'L',
+ 6508 => 'L',
+ 6509 => 'L',
+ 6512 => 'L',
+ 6513 => 'L',
+ 6514 => 'L',
+ 6515 => 'L',
+ 6516 => 'L',
+ 6528 => 'L',
+ 6529 => 'L',
+ 6530 => 'L',
+ 6531 => 'L',
+ 6532 => 'L',
+ 6533 => 'L',
+ 6534 => 'L',
+ 6535 => 'L',
+ 6536 => 'L',
+ 6537 => 'L',
+ 6538 => 'L',
+ 6539 => 'L',
+ 6540 => 'L',
+ 6541 => 'L',
+ 6542 => 'L',
+ 6543 => 'L',
+ 6544 => 'L',
+ 6545 => 'L',
+ 6546 => 'L',
+ 6547 => 'L',
+ 6548 => 'L',
+ 6549 => 'L',
+ 6550 => 'L',
+ 6551 => 'L',
+ 6552 => 'L',
+ 6553 => 'L',
+ 6554 => 'L',
+ 6555 => 'L',
+ 6556 => 'L',
+ 6557 => 'L',
+ 6558 => 'L',
+ 6559 => 'L',
+ 6560 => 'L',
+ 6561 => 'L',
+ 6562 => 'L',
+ 6563 => 'L',
+ 6564 => 'L',
+ 6565 => 'L',
+ 6566 => 'L',
+ 6567 => 'L',
+ 6568 => 'L',
+ 6569 => 'L',
+ 6576 => 'L',
+ 6577 => 'L',
+ 6578 => 'L',
+ 6579 => 'L',
+ 6580 => 'L',
+ 6581 => 'L',
+ 6582 => 'L',
+ 6583 => 'L',
+ 6584 => 'L',
+ 6585 => 'L',
+ 6586 => 'L',
+ 6587 => 'L',
+ 6588 => 'L',
+ 6589 => 'L',
+ 6590 => 'L',
+ 6591 => 'L',
+ 6592 => 'L',
+ 6593 => 'L',
+ 6594 => 'L',
+ 6595 => 'L',
+ 6596 => 'L',
+ 6597 => 'L',
+ 6598 => 'L',
+ 6599 => 'L',
+ 6600 => 'L',
+ 6601 => 'L',
+ 6608 => 'L',
+ 6609 => 'L',
+ 6610 => 'L',
+ 6611 => 'L',
+ 6612 => 'L',
+ 6613 => 'L',
+ 6614 => 'L',
+ 6615 => 'L',
+ 6616 => 'L',
+ 6617 => 'L',
+ 6622 => 'ON',
+ 6623 => 'ON',
+ 6624 => 'ON',
+ 6625 => 'ON',
+ 6626 => 'ON',
+ 6627 => 'ON',
+ 6628 => 'ON',
+ 6629 => 'ON',
+ 6630 => 'ON',
+ 6631 => 'ON',
+ 6632 => 'ON',
+ 6633 => 'ON',
+ 6634 => 'ON',
+ 6635 => 'ON',
+ 6636 => 'ON',
+ 6637 => 'ON',
+ 6638 => 'ON',
+ 6639 => 'ON',
+ 6640 => 'ON',
+ 6641 => 'ON',
+ 6642 => 'ON',
+ 6643 => 'ON',
+ 6644 => 'ON',
+ 6645 => 'ON',
+ 6646 => 'ON',
+ 6647 => 'ON',
+ 6648 => 'ON',
+ 6649 => 'ON',
+ 6650 => 'ON',
+ 6651 => 'ON',
+ 6652 => 'ON',
+ 6653 => 'ON',
+ 6654 => 'ON',
+ 6655 => 'ON',
+ 6656 => 'L',
+ 6657 => 'L',
+ 6658 => 'L',
+ 6659 => 'L',
+ 6660 => 'L',
+ 6661 => 'L',
+ 6662 => 'L',
+ 6663 => 'L',
+ 6664 => 'L',
+ 6665 => 'L',
+ 6666 => 'L',
+ 6667 => 'L',
+ 6668 => 'L',
+ 6669 => 'L',
+ 6670 => 'L',
+ 6671 => 'L',
+ 6672 => 'L',
+ 6673 => 'L',
+ 6674 => 'L',
+ 6675 => 'L',
+ 6676 => 'L',
+ 6677 => 'L',
+ 6678 => 'L',
+ 6679 => 'NSM',
+ 6680 => 'NSM',
+ 6681 => 'L',
+ 6682 => 'L',
+ 6683 => 'L',
+ 6686 => 'L',
+ 6687 => 'L',
+ 6912 => 'NSM',
+ 6913 => 'NSM',
+ 6914 => 'NSM',
+ 6915 => 'NSM',
+ 6916 => 'L',
+ 6917 => 'L',
+ 6918 => 'L',
+ 6919 => 'L',
+ 6920 => 'L',
+ 6921 => 'L',
+ 6922 => 'L',
+ 6923 => 'L',
+ 6924 => 'L',
+ 6925 => 'L',
+ 6926 => 'L',
+ 6927 => 'L',
+ 6928 => 'L',
+ 6929 => 'L',
+ 6930 => 'L',
+ 6931 => 'L',
+ 6932 => 'L',
+ 6933 => 'L',
+ 6934 => 'L',
+ 6935 => 'L',
+ 6936 => 'L',
+ 6937 => 'L',
+ 6938 => 'L',
+ 6939 => 'L',
+ 6940 => 'L',
+ 6941 => 'L',
+ 6942 => 'L',
+ 6943 => 'L',
+ 6944 => 'L',
+ 6945 => 'L',
+ 6946 => 'L',
+ 6947 => 'L',
+ 6948 => 'L',
+ 6949 => 'L',
+ 6950 => 'L',
+ 6951 => 'L',
+ 6952 => 'L',
+ 6953 => 'L',
+ 6954 => 'L',
+ 6955 => 'L',
+ 6956 => 'L',
+ 6957 => 'L',
+ 6958 => 'L',
+ 6959 => 'L',
+ 6960 => 'L',
+ 6961 => 'L',
+ 6962 => 'L',
+ 6963 => 'L',
+ 6964 => 'NSM',
+ 6965 => 'L',
+ 6966 => 'NSM',
+ 6967 => 'NSM',
+ 6968 => 'NSM',
+ 6969 => 'NSM',
+ 6970 => 'NSM',
+ 6971 => 'L',
+ 6972 => 'NSM',
+ 6973 => 'L',
+ 6974 => 'L',
+ 6975 => 'L',
+ 6976 => 'L',
+ 6977 => 'L',
+ 6978 => 'NSM',
+ 6979 => 'L',
+ 6980 => 'L',
+ 6981 => 'L',
+ 6982 => 'L',
+ 6983 => 'L',
+ 6984 => 'L',
+ 6985 => 'L',
+ 6986 => 'L',
+ 6987 => 'L',
+ 6992 => 'L',
+ 6993 => 'L',
+ 6994 => 'L',
+ 6995 => 'L',
+ 6996 => 'L',
+ 6997 => 'L',
+ 6998 => 'L',
+ 6999 => 'L',
+ 7000 => 'L',
+ 7001 => 'L',
+ 7002 => 'L',
+ 7003 => 'L',
+ 7004 => 'L',
+ 7005 => 'L',
+ 7006 => 'L',
+ 7007 => 'L',
+ 7008 => 'L',
+ 7009 => 'L',
+ 7010 => 'L',
+ 7011 => 'L',
+ 7012 => 'L',
+ 7013 => 'L',
+ 7014 => 'L',
+ 7015 => 'L',
+ 7016 => 'L',
+ 7017 => 'L',
+ 7018 => 'L',
+ 7019 => 'NSM',
+ 7020 => 'NSM',
+ 7021 => 'NSM',
+ 7022 => 'NSM',
+ 7023 => 'NSM',
+ 7024 => 'NSM',
+ 7025 => 'NSM',
+ 7026 => 'NSM',
+ 7027 => 'NSM',
+ 7028 => 'L',
+ 7029 => 'L',
+ 7030 => 'L',
+ 7031 => 'L',
+ 7032 => 'L',
+ 7033 => 'L',
+ 7034 => 'L',
+ 7035 => 'L',
+ 7036 => 'L',
+ 7424 => 'L',
+ 7425 => 'L',
+ 7426 => 'L',
+ 7427 => 'L',
+ 7428 => 'L',
+ 7429 => 'L',
+ 7430 => 'L',
+ 7431 => 'L',
+ 7432 => 'L',
+ 7433 => 'L',
+ 7434 => 'L',
+ 7435 => 'L',
+ 7436 => 'L',
+ 7437 => 'L',
+ 7438 => 'L',
+ 7439 => 'L',
+ 7440 => 'L',
+ 7441 => 'L',
+ 7442 => 'L',
+ 7443 => 'L',
+ 7444 => 'L',
+ 7445 => 'L',
+ 7446 => 'L',
+ 7447 => 'L',
+ 7448 => 'L',
+ 7449 => 'L',
+ 7450 => 'L',
+ 7451 => 'L',
+ 7452 => 'L',
+ 7453 => 'L',
+ 7454 => 'L',
+ 7455 => 'L',
+ 7456 => 'L',
+ 7457 => 'L',
+ 7458 => 'L',
+ 7459 => 'L',
+ 7460 => 'L',
+ 7461 => 'L',
+ 7462 => 'L',
+ 7463 => 'L',
+ 7464 => 'L',
+ 7465 => 'L',
+ 7466 => 'L',
+ 7467 => 'L',
+ 7468 => 'L',
+ 7469 => 'L',
+ 7470 => 'L',
+ 7471 => 'L',
+ 7472 => 'L',
+ 7473 => 'L',
+ 7474 => 'L',
+ 7475 => 'L',
+ 7476 => 'L',
+ 7477 => 'L',
+ 7478 => 'L',
+ 7479 => 'L',
+ 7480 => 'L',
+ 7481 => 'L',
+ 7482 => 'L',
+ 7483 => 'L',
+ 7484 => 'L',
+ 7485 => 'L',
+ 7486 => 'L',
+ 7487 => 'L',
+ 7488 => 'L',
+ 7489 => 'L',
+ 7490 => 'L',
+ 7491 => 'L',
+ 7492 => 'L',
+ 7493 => 'L',
+ 7494 => 'L',
+ 7495 => 'L',
+ 7496 => 'L',
+ 7497 => 'L',
+ 7498 => 'L',
+ 7499 => 'L',
+ 7500 => 'L',
+ 7501 => 'L',
+ 7502 => 'L',
+ 7503 => 'L',
+ 7504 => 'L',
+ 7505 => 'L',
+ 7506 => 'L',
+ 7507 => 'L',
+ 7508 => 'L',
+ 7509 => 'L',
+ 7510 => 'L',
+ 7511 => 'L',
+ 7512 => 'L',
+ 7513 => 'L',
+ 7514 => 'L',
+ 7515 => 'L',
+ 7516 => 'L',
+ 7517 => 'L',
+ 7518 => 'L',
+ 7519 => 'L',
+ 7520 => 'L',
+ 7521 => 'L',
+ 7522 => 'L',
+ 7523 => 'L',
+ 7524 => 'L',
+ 7525 => 'L',
+ 7526 => 'L',
+ 7527 => 'L',
+ 7528 => 'L',
+ 7529 => 'L',
+ 7530 => 'L',
+ 7531 => 'L',
+ 7532 => 'L',
+ 7533 => 'L',
+ 7534 => 'L',
+ 7535 => 'L',
+ 7536 => 'L',
+ 7537 => 'L',
+ 7538 => 'L',
+ 7539 => 'L',
+ 7540 => 'L',
+ 7541 => 'L',
+ 7542 => 'L',
+ 7543 => 'L',
+ 7544 => 'L',
+ 7545 => 'L',
+ 7546 => 'L',
+ 7547 => 'L',
+ 7548 => 'L',
+ 7549 => 'L',
+ 7550 => 'L',
+ 7551 => 'L',
+ 7552 => 'L',
+ 7553 => 'L',
+ 7554 => 'L',
+ 7555 => 'L',
+ 7556 => 'L',
+ 7557 => 'L',
+ 7558 => 'L',
+ 7559 => 'L',
+ 7560 => 'L',
+ 7561 => 'L',
+ 7562 => 'L',
+ 7563 => 'L',
+ 7564 => 'L',
+ 7565 => 'L',
+ 7566 => 'L',
+ 7567 => 'L',
+ 7568 => 'L',
+ 7569 => 'L',
+ 7570 => 'L',
+ 7571 => 'L',
+ 7572 => 'L',
+ 7573 => 'L',
+ 7574 => 'L',
+ 7575 => 'L',
+ 7576 => 'L',
+ 7577 => 'L',
+ 7578 => 'L',
+ 7579 => 'L',
+ 7580 => 'L',
+ 7581 => 'L',
+ 7582 => 'L',
+ 7583 => 'L',
+ 7584 => 'L',
+ 7585 => 'L',
+ 7586 => 'L',
+ 7587 => 'L',
+ 7588 => 'L',
+ 7589 => 'L',
+ 7590 => 'L',
+ 7591 => 'L',
+ 7592 => 'L',
+ 7593 => 'L',
+ 7594 => 'L',
+ 7595 => 'L',
+ 7596 => 'L',
+ 7597 => 'L',
+ 7598 => 'L',
+ 7599 => 'L',
+ 7600 => 'L',
+ 7601 => 'L',
+ 7602 => 'L',
+ 7603 => 'L',
+ 7604 => 'L',
+ 7605 => 'L',
+ 7606 => 'L',
+ 7607 => 'L',
+ 7608 => 'L',
+ 7609 => 'L',
+ 7610 => 'L',
+ 7611 => 'L',
+ 7612 => 'L',
+ 7613 => 'L',
+ 7614 => 'L',
+ 7615 => 'L',
+ 7616 => 'NSM',
+ 7617 => 'NSM',
+ 7618 => 'NSM',
+ 7619 => 'NSM',
+ 7620 => 'NSM',
+ 7621 => 'NSM',
+ 7622 => 'NSM',
+ 7623 => 'NSM',
+ 7624 => 'NSM',
+ 7625 => 'NSM',
+ 7626 => 'NSM',
+ 7678 => 'NSM',
+ 7679 => 'NSM',
+ 7680 => 'L',
+ 7681 => 'L',
+ 7682 => 'L',
+ 7683 => 'L',
+ 7684 => 'L',
+ 7685 => 'L',
+ 7686 => 'L',
+ 7687 => 'L',
+ 7688 => 'L',
+ 7689 => 'L',
+ 7690 => 'L',
+ 7691 => 'L',
+ 7692 => 'L',
+ 7693 => 'L',
+ 7694 => 'L',
+ 7695 => 'L',
+ 7696 => 'L',
+ 7697 => 'L',
+ 7698 => 'L',
+ 7699 => 'L',
+ 7700 => 'L',
+ 7701 => 'L',
+ 7702 => 'L',
+ 7703 => 'L',
+ 7704 => 'L',
+ 7705 => 'L',
+ 7706 => 'L',
+ 7707 => 'L',
+ 7708 => 'L',
+ 7709 => 'L',
+ 7710 => 'L',
+ 7711 => 'L',
+ 7712 => 'L',
+ 7713 => 'L',
+ 7714 => 'L',
+ 7715 => 'L',
+ 7716 => 'L',
+ 7717 => 'L',
+ 7718 => 'L',
+ 7719 => 'L',
+ 7720 => 'L',
+ 7721 => 'L',
+ 7722 => 'L',
+ 7723 => 'L',
+ 7724 => 'L',
+ 7725 => 'L',
+ 7726 => 'L',
+ 7727 => 'L',
+ 7728 => 'L',
+ 7729 => 'L',
+ 7730 => 'L',
+ 7731 => 'L',
+ 7732 => 'L',
+ 7733 => 'L',
+ 7734 => 'L',
+ 7735 => 'L',
+ 7736 => 'L',
+ 7737 => 'L',
+ 7738 => 'L',
+ 7739 => 'L',
+ 7740 => 'L',
+ 7741 => 'L',
+ 7742 => 'L',
+ 7743 => 'L',
+ 7744 => 'L',
+ 7745 => 'L',
+ 7746 => 'L',
+ 7747 => 'L',
+ 7748 => 'L',
+ 7749 => 'L',
+ 7750 => 'L',
+ 7751 => 'L',
+ 7752 => 'L',
+ 7753 => 'L',
+ 7754 => 'L',
+ 7755 => 'L',
+ 7756 => 'L',
+ 7757 => 'L',
+ 7758 => 'L',
+ 7759 => 'L',
+ 7760 => 'L',
+ 7761 => 'L',
+ 7762 => 'L',
+ 7763 => 'L',
+ 7764 => 'L',
+ 7765 => 'L',
+ 7766 => 'L',
+ 7767 => 'L',
+ 7768 => 'L',
+ 7769 => 'L',
+ 7770 => 'L',
+ 7771 => 'L',
+ 7772 => 'L',
+ 7773 => 'L',
+ 7774 => 'L',
+ 7775 => 'L',
+ 7776 => 'L',
+ 7777 => 'L',
+ 7778 => 'L',
+ 7779 => 'L',
+ 7780 => 'L',
+ 7781 => 'L',
+ 7782 => 'L',
+ 7783 => 'L',
+ 7784 => 'L',
+ 7785 => 'L',
+ 7786 => 'L',
+ 7787 => 'L',
+ 7788 => 'L',
+ 7789 => 'L',
+ 7790 => 'L',
+ 7791 => 'L',
+ 7792 => 'L',
+ 7793 => 'L',
+ 7794 => 'L',
+ 7795 => 'L',
+ 7796 => 'L',
+ 7797 => 'L',
+ 7798 => 'L',
+ 7799 => 'L',
+ 7800 => 'L',
+ 7801 => 'L',
+ 7802 => 'L',
+ 7803 => 'L',
+ 7804 => 'L',
+ 7805 => 'L',
+ 7806 => 'L',
+ 7807 => 'L',
+ 7808 => 'L',
+ 7809 => 'L',
+ 7810 => 'L',
+ 7811 => 'L',
+ 7812 => 'L',
+ 7813 => 'L',
+ 7814 => 'L',
+ 7815 => 'L',
+ 7816 => 'L',
+ 7817 => 'L',
+ 7818 => 'L',
+ 7819 => 'L',
+ 7820 => 'L',
+ 7821 => 'L',
+ 7822 => 'L',
+ 7823 => 'L',
+ 7824 => 'L',
+ 7825 => 'L',
+ 7826 => 'L',
+ 7827 => 'L',
+ 7828 => 'L',
+ 7829 => 'L',
+ 7830 => 'L',
+ 7831 => 'L',
+ 7832 => 'L',
+ 7833 => 'L',
+ 7834 => 'L',
+ 7835 => 'L',
+ 7840 => 'L',
+ 7841 => 'L',
+ 7842 => 'L',
+ 7843 => 'L',
+ 7844 => 'L',
+ 7845 => 'L',
+ 7846 => 'L',
+ 7847 => 'L',
+ 7848 => 'L',
+ 7849 => 'L',
+ 7850 => 'L',
+ 7851 => 'L',
+ 7852 => 'L',
+ 7853 => 'L',
+ 7854 => 'L',
+ 7855 => 'L',
+ 7856 => 'L',
+ 7857 => 'L',
+ 7858 => 'L',
+ 7859 => 'L',
+ 7860 => 'L',
+ 7861 => 'L',
+ 7862 => 'L',
+ 7863 => 'L',
+ 7864 => 'L',
+ 7865 => 'L',
+ 7866 => 'L',
+ 7867 => 'L',
+ 7868 => 'L',
+ 7869 => 'L',
+ 7870 => 'L',
+ 7871 => 'L',
+ 7872 => 'L',
+ 7873 => 'L',
+ 7874 => 'L',
+ 7875 => 'L',
+ 7876 => 'L',
+ 7877 => 'L',
+ 7878 => 'L',
+ 7879 => 'L',
+ 7880 => 'L',
+ 7881 => 'L',
+ 7882 => 'L',
+ 7883 => 'L',
+ 7884 => 'L',
+ 7885 => 'L',
+ 7886 => 'L',
+ 7887 => 'L',
+ 7888 => 'L',
+ 7889 => 'L',
+ 7890 => 'L',
+ 7891 => 'L',
+ 7892 => 'L',
+ 7893 => 'L',
+ 7894 => 'L',
+ 7895 => 'L',
+ 7896 => 'L',
+ 7897 => 'L',
+ 7898 => 'L',
+ 7899 => 'L',
+ 7900 => 'L',
+ 7901 => 'L',
+ 7902 => 'L',
+ 7903 => 'L',
+ 7904 => 'L',
+ 7905 => 'L',
+ 7906 => 'L',
+ 7907 => 'L',
+ 7908 => 'L',
+ 7909 => 'L',
+ 7910 => 'L',
+ 7911 => 'L',
+ 7912 => 'L',
+ 7913 => 'L',
+ 7914 => 'L',
+ 7915 => 'L',
+ 7916 => 'L',
+ 7917 => 'L',
+ 7918 => 'L',
+ 7919 => 'L',
+ 7920 => 'L',
+ 7921 => 'L',
+ 7922 => 'L',
+ 7923 => 'L',
+ 7924 => 'L',
+ 7925 => 'L',
+ 7926 => 'L',
+ 7927 => 'L',
+ 7928 => 'L',
+ 7929 => 'L',
+ 7936 => 'L',
+ 7937 => 'L',
+ 7938 => 'L',
+ 7939 => 'L',
+ 7940 => 'L',
+ 7941 => 'L',
+ 7942 => 'L',
+ 7943 => 'L',
+ 7944 => 'L',
+ 7945 => 'L',
+ 7946 => 'L',
+ 7947 => 'L',
+ 7948 => 'L',
+ 7949 => 'L',
+ 7950 => 'L',
+ 7951 => 'L',
+ 7952 => 'L',
+ 7953 => 'L',
+ 7954 => 'L',
+ 7955 => 'L',
+ 7956 => 'L',
+ 7957 => 'L',
+ 7960 => 'L',
+ 7961 => 'L',
+ 7962 => 'L',
+ 7963 => 'L',
+ 7964 => 'L',
+ 7965 => 'L',
+ 7968 => 'L',
+ 7969 => 'L',
+ 7970 => 'L',
+ 7971 => 'L',
+ 7972 => 'L',
+ 7973 => 'L',
+ 7974 => 'L',
+ 7975 => 'L',
+ 7976 => 'L',
+ 7977 => 'L',
+ 7978 => 'L',
+ 7979 => 'L',
+ 7980 => 'L',
+ 7981 => 'L',
+ 7982 => 'L',
+ 7983 => 'L',
+ 7984 => 'L',
+ 7985 => 'L',
+ 7986 => 'L',
+ 7987 => 'L',
+ 7988 => 'L',
+ 7989 => 'L',
+ 7990 => 'L',
+ 7991 => 'L',
+ 7992 => 'L',
+ 7993 => 'L',
+ 7994 => 'L',
+ 7995 => 'L',
+ 7996 => 'L',
+ 7997 => 'L',
+ 7998 => 'L',
+ 7999 => 'L',
+ 8000 => 'L',
+ 8001 => 'L',
+ 8002 => 'L',
+ 8003 => 'L',
+ 8004 => 'L',
+ 8005 => 'L',
+ 8008 => 'L',
+ 8009 => 'L',
+ 8010 => 'L',
+ 8011 => 'L',
+ 8012 => 'L',
+ 8013 => 'L',
+ 8016 => 'L',
+ 8017 => 'L',
+ 8018 => 'L',
+ 8019 => 'L',
+ 8020 => 'L',
+ 8021 => 'L',
+ 8022 => 'L',
+ 8023 => 'L',
+ 8025 => 'L',
+ 8027 => 'L',
+ 8029 => 'L',
+ 8031 => 'L',
+ 8032 => 'L',
+ 8033 => 'L',
+ 8034 => 'L',
+ 8035 => 'L',
+ 8036 => 'L',
+ 8037 => 'L',
+ 8038 => 'L',
+ 8039 => 'L',
+ 8040 => 'L',
+ 8041 => 'L',
+ 8042 => 'L',
+ 8043 => 'L',
+ 8044 => 'L',
+ 8045 => 'L',
+ 8046 => 'L',
+ 8047 => 'L',
+ 8048 => 'L',
+ 8049 => 'L',
+ 8050 => 'L',
+ 8051 => 'L',
+ 8052 => 'L',
+ 8053 => 'L',
+ 8054 => 'L',
+ 8055 => 'L',
+ 8056 => 'L',
+ 8057 => 'L',
+ 8058 => 'L',
+ 8059 => 'L',
+ 8060 => 'L',
+ 8061 => 'L',
+ 8064 => 'L',
+ 8065 => 'L',
+ 8066 => 'L',
+ 8067 => 'L',
+ 8068 => 'L',
+ 8069 => 'L',
+ 8070 => 'L',
+ 8071 => 'L',
+ 8072 => 'L',
+ 8073 => 'L',
+ 8074 => 'L',
+ 8075 => 'L',
+ 8076 => 'L',
+ 8077 => 'L',
+ 8078 => 'L',
+ 8079 => 'L',
+ 8080 => 'L',
+ 8081 => 'L',
+ 8082 => 'L',
+ 8083 => 'L',
+ 8084 => 'L',
+ 8085 => 'L',
+ 8086 => 'L',
+ 8087 => 'L',
+ 8088 => 'L',
+ 8089 => 'L',
+ 8090 => 'L',
+ 8091 => 'L',
+ 8092 => 'L',
+ 8093 => 'L',
+ 8094 => 'L',
+ 8095 => 'L',
+ 8096 => 'L',
+ 8097 => 'L',
+ 8098 => 'L',
+ 8099 => 'L',
+ 8100 => 'L',
+ 8101 => 'L',
+ 8102 => 'L',
+ 8103 => 'L',
+ 8104 => 'L',
+ 8105 => 'L',
+ 8106 => 'L',
+ 8107 => 'L',
+ 8108 => 'L',
+ 8109 => 'L',
+ 8110 => 'L',
+ 8111 => 'L',
+ 8112 => 'L',
+ 8113 => 'L',
+ 8114 => 'L',
+ 8115 => 'L',
+ 8116 => 'L',
+ 8118 => 'L',
+ 8119 => 'L',
+ 8120 => 'L',
+ 8121 => 'L',
+ 8122 => 'L',
+ 8123 => 'L',
+ 8124 => 'L',
+ 8125 => 'ON',
+ 8126 => 'L',
+ 8127 => 'ON',
+ 8128 => 'ON',
+ 8129 => 'ON',
+ 8130 => 'L',
+ 8131 => 'L',
+ 8132 => 'L',
+ 8134 => 'L',
+ 8135 => 'L',
+ 8136 => 'L',
+ 8137 => 'L',
+ 8138 => 'L',
+ 8139 => 'L',
+ 8140 => 'L',
+ 8141 => 'ON',
+ 8142 => 'ON',
+ 8143 => 'ON',
+ 8144 => 'L',
+ 8145 => 'L',
+ 8146 => 'L',
+ 8147 => 'L',
+ 8150 => 'L',
+ 8151 => 'L',
+ 8152 => 'L',
+ 8153 => 'L',
+ 8154 => 'L',
+ 8155 => 'L',
+ 8157 => 'ON',
+ 8158 => 'ON',
+ 8159 => 'ON',
+ 8160 => 'L',
+ 8161 => 'L',
+ 8162 => 'L',
+ 8163 => 'L',
+ 8164 => 'L',
+ 8165 => 'L',
+ 8166 => 'L',
+ 8167 => 'L',
+ 8168 => 'L',
+ 8169 => 'L',
+ 8170 => 'L',
+ 8171 => 'L',
+ 8172 => 'L',
+ 8173 => 'ON',
+ 8174 => 'ON',
+ 8175 => 'ON',
+ 8178 => 'L',
+ 8179 => 'L',
+ 8180 => 'L',
+ 8182 => 'L',
+ 8183 => 'L',
+ 8184 => 'L',
+ 8185 => 'L',
+ 8186 => 'L',
+ 8187 => 'L',
+ 8188 => 'L',
+ 8189 => 'ON',
+ 8190 => 'ON',
+ 8192 => 'WS',
+ 8193 => 'WS',
+ 8194 => 'WS',
+ 8195 => 'WS',
+ 8196 => 'WS',
+ 8197 => 'WS',
+ 8198 => 'WS',
+ 8199 => 'WS',
+ 8200 => 'WS',
+ 8201 => 'WS',
+ 8202 => 'WS',
+ 8203 => 'BN',
+ 8204 => 'BN',
+ 8205 => 'BN',
+ 8206 => 'L',
+ 8207 => 'R',
+ 8208 => 'ON',
+ 8209 => 'ON',
+ 8210 => 'ON',
+ 8211 => 'ON',
+ 8212 => 'ON',
+ 8213 => 'ON',
+ 8214 => 'ON',
+ 8215 => 'ON',
+ 8216 => 'ON',
+ 8217 => 'ON',
+ 8218 => 'ON',
+ 8219 => 'ON',
+ 8220 => 'ON',
+ 8221 => 'ON',
+ 8222 => 'ON',
+ 8223 => 'ON',
+ 8224 => 'ON',
+ 8225 => 'ON',
+ 8226 => 'ON',
+ 8227 => 'ON',
+ 8228 => 'ON',
+ 8229 => 'ON',
+ 8230 => 'ON',
+ 8231 => 'ON',
+ 8232 => 'WS',
+ 8233 => 'B',
+ 8234 => 'LRE',
+ 8235 => 'RLE',
+ 8236 => 'PDF',
+ 8237 => 'LRO',
+ 8238 => 'RLO',
+ 8239 => 'CS',
+ 8240 => 'ET',
+ 8241 => 'ET',
+ 8242 => 'ET',
+ 8243 => 'ET',
+ 8244 => 'ET',
+ 8245 => 'ON',
+ 8246 => 'ON',
+ 8247 => 'ON',
+ 8248 => 'ON',
+ 8249 => 'ON',
+ 8250 => 'ON',
+ 8251 => 'ON',
+ 8252 => 'ON',
+ 8253 => 'ON',
+ 8254 => 'ON',
+ 8255 => 'ON',
+ 8256 => 'ON',
+ 8257 => 'ON',
+ 8258 => 'ON',
+ 8259 => 'ON',
+ 8260 => 'CS',
+ 8261 => 'ON',
+ 8262 => 'ON',
+ 8263 => 'ON',
+ 8264 => 'ON',
+ 8265 => 'ON',
+ 8266 => 'ON',
+ 8267 => 'ON',
+ 8268 => 'ON',
+ 8269 => 'ON',
+ 8270 => 'ON',
+ 8271 => 'ON',
+ 8272 => 'ON',
+ 8273 => 'ON',
+ 8274 => 'ON',
+ 8275 => 'ON',
+ 8276 => 'ON',
+ 8277 => 'ON',
+ 8278 => 'ON',
+ 8279 => 'ON',
+ 8280 => 'ON',
+ 8281 => 'ON',
+ 8282 => 'ON',
+ 8283 => 'ON',
+ 8284 => 'ON',
+ 8285 => 'ON',
+ 8286 => 'ON',
+ 8287 => 'WS',
+ 8288 => 'BN',
+ 8289 => 'BN',
+ 8290 => 'BN',
+ 8291 => 'BN',
+ 8298 => 'BN',
+ 8299 => 'BN',
+ 8300 => 'BN',
+ 8301 => 'BN',
+ 8302 => 'BN',
+ 8303 => 'BN',
+ 8304 => 'EN',
+ 8305 => 'L',
+ 8308 => 'EN',
+ 8309 => 'EN',
+ 8310 => 'EN',
+ 8311 => 'EN',
+ 8312 => 'EN',
+ 8313 => 'EN',
+ 8314 => 'ES',
+ 8315 => 'ES',
+ 8316 => 'ON',
+ 8317 => 'ON',
+ 8318 => 'ON',
+ 8319 => 'L',
+ 8320 => 'EN',
+ 8321 => 'EN',
+ 8322 => 'EN',
+ 8323 => 'EN',
+ 8324 => 'EN',
+ 8325 => 'EN',
+ 8326 => 'EN',
+ 8327 => 'EN',
+ 8328 => 'EN',
+ 8329 => 'EN',
+ 8330 => 'ES',
+ 8331 => 'ES',
+ 8332 => 'ON',
+ 8333 => 'ON',
+ 8334 => 'ON',
+ 8336 => 'L',
+ 8337 => 'L',
+ 8338 => 'L',
+ 8339 => 'L',
+ 8340 => 'L',
+ 8352 => 'ET',
+ 8353 => 'ET',
+ 8354 => 'ET',
+ 8355 => 'ET',
+ 8356 => 'ET',
+ 8357 => 'ET',
+ 8358 => 'ET',
+ 8359 => 'ET',
+ 8360 => 'ET',
+ 8361 => 'ET',
+ 8362 => 'ET',
+ 8363 => 'ET',
+ 8364 => 'ET',
+ 8365 => 'ET',
+ 8366 => 'ET',
+ 8367 => 'ET',
+ 8368 => 'ET',
+ 8369 => 'ET',
+ 8370 => 'ET',
+ 8371 => 'ET',
+ 8372 => 'ET',
+ 8373 => 'ET',
+ 8400 => 'NSM',
+ 8401 => 'NSM',
+ 8402 => 'NSM',
+ 8403 => 'NSM',
+ 8404 => 'NSM',
+ 8405 => 'NSM',
+ 8406 => 'NSM',
+ 8407 => 'NSM',
+ 8408 => 'NSM',
+ 8409 => 'NSM',
+ 8410 => 'NSM',
+ 8411 => 'NSM',
+ 8412 => 'NSM',
+ 8413 => 'NSM',
+ 8414 => 'NSM',
+ 8415 => 'NSM',
+ 8416 => 'NSM',
+ 8417 => 'NSM',
+ 8418 => 'NSM',
+ 8419 => 'NSM',
+ 8420 => 'NSM',
+ 8421 => 'NSM',
+ 8422 => 'NSM',
+ 8423 => 'NSM',
+ 8424 => 'NSM',
+ 8425 => 'NSM',
+ 8426 => 'NSM',
+ 8427 => 'NSM',
+ 8428 => 'NSM',
+ 8429 => 'NSM',
+ 8430 => 'NSM',
+ 8431 => 'NSM',
+ 8448 => 'ON',
+ 8449 => 'ON',
+ 8450 => 'L',
+ 8451 => 'ON',
+ 8452 => 'ON',
+ 8453 => 'ON',
+ 8454 => 'ON',
+ 8455 => 'L',
+ 8456 => 'ON',
+ 8457 => 'ON',
+ 8458 => 'L',
+ 8459 => 'L',
+ 8460 => 'L',
+ 8461 => 'L',
+ 8462 => 'L',
+ 8463 => 'L',
+ 8464 => 'L',
+ 8465 => 'L',
+ 8466 => 'L',
+ 8467 => 'L',
+ 8468 => 'ON',
+ 8469 => 'L',
+ 8470 => 'ON',
+ 8471 => 'ON',
+ 8472 => 'ON',
+ 8473 => 'L',
+ 8474 => 'L',
+ 8475 => 'L',
+ 8476 => 'L',
+ 8477 => 'L',
+ 8478 => 'ON',
+ 8479 => 'ON',
+ 8480 => 'ON',
+ 8481 => 'ON',
+ 8482 => 'ON',
+ 8483 => 'ON',
+ 8484 => 'L',
+ 8485 => 'ON',
+ 8486 => 'L',
+ 8487 => 'ON',
+ 8488 => 'L',
+ 8489 => 'ON',
+ 8490 => 'L',
+ 8491 => 'L',
+ 8492 => 'L',
+ 8493 => 'L',
+ 8494 => 'ET',
+ 8495 => 'L',
+ 8496 => 'L',
+ 8497 => 'L',
+ 8498 => 'L',
+ 8499 => 'L',
+ 8500 => 'L',
+ 8501 => 'L',
+ 8502 => 'L',
+ 8503 => 'L',
+ 8504 => 'L',
+ 8505 => 'L',
+ 8506 => 'ON',
+ 8507 => 'ON',
+ 8508 => 'L',
+ 8509 => 'L',
+ 8510 => 'L',
+ 8511 => 'L',
+ 8512 => 'ON',
+ 8513 => 'ON',
+ 8514 => 'ON',
+ 8515 => 'ON',
+ 8516 => 'ON',
+ 8517 => 'L',
+ 8518 => 'L',
+ 8519 => 'L',
+ 8520 => 'L',
+ 8521 => 'L',
+ 8522 => 'ON',
+ 8523 => 'ON',
+ 8524 => 'ON',
+ 8525 => 'ON',
+ 8526 => 'L',
+ 8531 => 'ON',
+ 8532 => 'ON',
+ 8533 => 'ON',
+ 8534 => 'ON',
+ 8535 => 'ON',
+ 8536 => 'ON',
+ 8537 => 'ON',
+ 8538 => 'ON',
+ 8539 => 'ON',
+ 8540 => 'ON',
+ 8541 => 'ON',
+ 8542 => 'ON',
+ 8543 => 'ON',
+ 8544 => 'L',
+ 8545 => 'L',
+ 8546 => 'L',
+ 8547 => 'L',
+ 8548 => 'L',
+ 8549 => 'L',
+ 8550 => 'L',
+ 8551 => 'L',
+ 8552 => 'L',
+ 8553 => 'L',
+ 8554 => 'L',
+ 8555 => 'L',
+ 8556 => 'L',
+ 8557 => 'L',
+ 8558 => 'L',
+ 8559 => 'L',
+ 8560 => 'L',
+ 8561 => 'L',
+ 8562 => 'L',
+ 8563 => 'L',
+ 8564 => 'L',
+ 8565 => 'L',
+ 8566 => 'L',
+ 8567 => 'L',
+ 8568 => 'L',
+ 8569 => 'L',
+ 8570 => 'L',
+ 8571 => 'L',
+ 8572 => 'L',
+ 8573 => 'L',
+ 8574 => 'L',
+ 8575 => 'L',
+ 8576 => 'L',
+ 8577 => 'L',
+ 8578 => 'L',
+ 8579 => 'L',
+ 8580 => 'L',
+ 8592 => 'ON',
+ 8593 => 'ON',
+ 8594 => 'ON',
+ 8595 => 'ON',
+ 8596 => 'ON',
+ 8597 => 'ON',
+ 8598 => 'ON',
+ 8599 => 'ON',
+ 8600 => 'ON',
+ 8601 => 'ON',
+ 8602 => 'ON',
+ 8603 => 'ON',
+ 8604 => 'ON',
+ 8605 => 'ON',
+ 8606 => 'ON',
+ 8607 => 'ON',
+ 8608 => 'ON',
+ 8609 => 'ON',
+ 8610 => 'ON',
+ 8611 => 'ON',
+ 8612 => 'ON',
+ 8613 => 'ON',
+ 8614 => 'ON',
+ 8615 => 'ON',
+ 8616 => 'ON',
+ 8617 => 'ON',
+ 8618 => 'ON',
+ 8619 => 'ON',
+ 8620 => 'ON',
+ 8621 => 'ON',
+ 8622 => 'ON',
+ 8623 => 'ON',
+ 8624 => 'ON',
+ 8625 => 'ON',
+ 8626 => 'ON',
+ 8627 => 'ON',
+ 8628 => 'ON',
+ 8629 => 'ON',
+ 8630 => 'ON',
+ 8631 => 'ON',
+ 8632 => 'ON',
+ 8633 => 'ON',
+ 8634 => 'ON',
+ 8635 => 'ON',
+ 8636 => 'ON',
+ 8637 => 'ON',
+ 8638 => 'ON',
+ 8639 => 'ON',
+ 8640 => 'ON',
+ 8641 => 'ON',
+ 8642 => 'ON',
+ 8643 => 'ON',
+ 8644 => 'ON',
+ 8645 => 'ON',
+ 8646 => 'ON',
+ 8647 => 'ON',
+ 8648 => 'ON',
+ 8649 => 'ON',
+ 8650 => 'ON',
+ 8651 => 'ON',
+ 8652 => 'ON',
+ 8653 => 'ON',
+ 8654 => 'ON',
+ 8655 => 'ON',
+ 8656 => 'ON',
+ 8657 => 'ON',
+ 8658 => 'ON',
+ 8659 => 'ON',
+ 8660 => 'ON',
+ 8661 => 'ON',
+ 8662 => 'ON',
+ 8663 => 'ON',
+ 8664 => 'ON',
+ 8665 => 'ON',
+ 8666 => 'ON',
+ 8667 => 'ON',
+ 8668 => 'ON',
+ 8669 => 'ON',
+ 8670 => 'ON',
+ 8671 => 'ON',
+ 8672 => 'ON',
+ 8673 => 'ON',
+ 8674 => 'ON',
+ 8675 => 'ON',
+ 8676 => 'ON',
+ 8677 => 'ON',
+ 8678 => 'ON',
+ 8679 => 'ON',
+ 8680 => 'ON',
+ 8681 => 'ON',
+ 8682 => 'ON',
+ 8683 => 'ON',
+ 8684 => 'ON',
+ 8685 => 'ON',
+ 8686 => 'ON',
+ 8687 => 'ON',
+ 8688 => 'ON',
+ 8689 => 'ON',
+ 8690 => 'ON',
+ 8691 => 'ON',
+ 8692 => 'ON',
+ 8693 => 'ON',
+ 8694 => 'ON',
+ 8695 => 'ON',
+ 8696 => 'ON',
+ 8697 => 'ON',
+ 8698 => 'ON',
+ 8699 => 'ON',
+ 8700 => 'ON',
+ 8701 => 'ON',
+ 8702 => 'ON',
+ 8703 => 'ON',
+ 8704 => 'ON',
+ 8705 => 'ON',
+ 8706 => 'ON',
+ 8707 => 'ON',
+ 8708 => 'ON',
+ 8709 => 'ON',
+ 8710 => 'ON',
+ 8711 => 'ON',
+ 8712 => 'ON',
+ 8713 => 'ON',
+ 8714 => 'ON',
+ 8715 => 'ON',
+ 8716 => 'ON',
+ 8717 => 'ON',
+ 8718 => 'ON',
+ 8719 => 'ON',
+ 8720 => 'ON',
+ 8721 => 'ON',
+ 8722 => 'ES',
+ 8723 => 'ET',
+ 8724 => 'ON',
+ 8725 => 'ON',
+ 8726 => 'ON',
+ 8727 => 'ON',
+ 8728 => 'ON',
+ 8729 => 'ON',
+ 8730 => 'ON',
+ 8731 => 'ON',
+ 8732 => 'ON',
+ 8733 => 'ON',
+ 8734 => 'ON',
+ 8735 => 'ON',
+ 8736 => 'ON',
+ 8737 => 'ON',
+ 8738 => 'ON',
+ 8739 => 'ON',
+ 8740 => 'ON',
+ 8741 => 'ON',
+ 8742 => 'ON',
+ 8743 => 'ON',
+ 8744 => 'ON',
+ 8745 => 'ON',
+ 8746 => 'ON',
+ 8747 => 'ON',
+ 8748 => 'ON',
+ 8749 => 'ON',
+ 8750 => 'ON',
+ 8751 => 'ON',
+ 8752 => 'ON',
+ 8753 => 'ON',
+ 8754 => 'ON',
+ 8755 => 'ON',
+ 8756 => 'ON',
+ 8757 => 'ON',
+ 8758 => 'ON',
+ 8759 => 'ON',
+ 8760 => 'ON',
+ 8761 => 'ON',
+ 8762 => 'ON',
+ 8763 => 'ON',
+ 8764 => 'ON',
+ 8765 => 'ON',
+ 8766 => 'ON',
+ 8767 => 'ON',
+ 8768 => 'ON',
+ 8769 => 'ON',
+ 8770 => 'ON',
+ 8771 => 'ON',
+ 8772 => 'ON',
+ 8773 => 'ON',
+ 8774 => 'ON',
+ 8775 => 'ON',
+ 8776 => 'ON',
+ 8777 => 'ON',
+ 8778 => 'ON',
+ 8779 => 'ON',
+ 8780 => 'ON',
+ 8781 => 'ON',
+ 8782 => 'ON',
+ 8783 => 'ON',
+ 8784 => 'ON',
+ 8785 => 'ON',
+ 8786 => 'ON',
+ 8787 => 'ON',
+ 8788 => 'ON',
+ 8789 => 'ON',
+ 8790 => 'ON',
+ 8791 => 'ON',
+ 8792 => 'ON',
+ 8793 => 'ON',
+ 8794 => 'ON',
+ 8795 => 'ON',
+ 8796 => 'ON',
+ 8797 => 'ON',
+ 8798 => 'ON',
+ 8799 => 'ON',
+ 8800 => 'ON',
+ 8801 => 'ON',
+ 8802 => 'ON',
+ 8803 => 'ON',
+ 8804 => 'ON',
+ 8805 => 'ON',
+ 8806 => 'ON',
+ 8807 => 'ON',
+ 8808 => 'ON',
+ 8809 => 'ON',
+ 8810 => 'ON',
+ 8811 => 'ON',
+ 8812 => 'ON',
+ 8813 => 'ON',
+ 8814 => 'ON',
+ 8815 => 'ON',
+ 8816 => 'ON',
+ 8817 => 'ON',
+ 8818 => 'ON',
+ 8819 => 'ON',
+ 8820 => 'ON',
+ 8821 => 'ON',
+ 8822 => 'ON',
+ 8823 => 'ON',
+ 8824 => 'ON',
+ 8825 => 'ON',
+ 8826 => 'ON',
+ 8827 => 'ON',
+ 8828 => 'ON',
+ 8829 => 'ON',
+ 8830 => 'ON',
+ 8831 => 'ON',
+ 8832 => 'ON',
+ 8833 => 'ON',
+ 8834 => 'ON',
+ 8835 => 'ON',
+ 8836 => 'ON',
+ 8837 => 'ON',
+ 8838 => 'ON',
+ 8839 => 'ON',
+ 8840 => 'ON',
+ 8841 => 'ON',
+ 8842 => 'ON',
+ 8843 => 'ON',
+ 8844 => 'ON',
+ 8845 => 'ON',
+ 8846 => 'ON',
+ 8847 => 'ON',
+ 8848 => 'ON',
+ 8849 => 'ON',
+ 8850 => 'ON',
+ 8851 => 'ON',
+ 8852 => 'ON',
+ 8853 => 'ON',
+ 8854 => 'ON',
+ 8855 => 'ON',
+ 8856 => 'ON',
+ 8857 => 'ON',
+ 8858 => 'ON',
+ 8859 => 'ON',
+ 8860 => 'ON',
+ 8861 => 'ON',
+ 8862 => 'ON',
+ 8863 => 'ON',
+ 8864 => 'ON',
+ 8865 => 'ON',
+ 8866 => 'ON',
+ 8867 => 'ON',
+ 8868 => 'ON',
+ 8869 => 'ON',
+ 8870 => 'ON',
+ 8871 => 'ON',
+ 8872 => 'ON',
+ 8873 => 'ON',
+ 8874 => 'ON',
+ 8875 => 'ON',
+ 8876 => 'ON',
+ 8877 => 'ON',
+ 8878 => 'ON',
+ 8879 => 'ON',
+ 8880 => 'ON',
+ 8881 => 'ON',
+ 8882 => 'ON',
+ 8883 => 'ON',
+ 8884 => 'ON',
+ 8885 => 'ON',
+ 8886 => 'ON',
+ 8887 => 'ON',
+ 8888 => 'ON',
+ 8889 => 'ON',
+ 8890 => 'ON',
+ 8891 => 'ON',
+ 8892 => 'ON',
+ 8893 => 'ON',
+ 8894 => 'ON',
+ 8895 => 'ON',
+ 8896 => 'ON',
+ 8897 => 'ON',
+ 8898 => 'ON',
+ 8899 => 'ON',
+ 8900 => 'ON',
+ 8901 => 'ON',
+ 8902 => 'ON',
+ 8903 => 'ON',
+ 8904 => 'ON',
+ 8905 => 'ON',
+ 8906 => 'ON',
+ 8907 => 'ON',
+ 8908 => 'ON',
+ 8909 => 'ON',
+ 8910 => 'ON',
+ 8911 => 'ON',
+ 8912 => 'ON',
+ 8913 => 'ON',
+ 8914 => 'ON',
+ 8915 => 'ON',
+ 8916 => 'ON',
+ 8917 => 'ON',
+ 8918 => 'ON',
+ 8919 => 'ON',
+ 8920 => 'ON',
+ 8921 => 'ON',
+ 8922 => 'ON',
+ 8923 => 'ON',
+ 8924 => 'ON',
+ 8925 => 'ON',
+ 8926 => 'ON',
+ 8927 => 'ON',
+ 8928 => 'ON',
+ 8929 => 'ON',
+ 8930 => 'ON',
+ 8931 => 'ON',
+ 8932 => 'ON',
+ 8933 => 'ON',
+ 8934 => 'ON',
+ 8935 => 'ON',
+ 8936 => 'ON',
+ 8937 => 'ON',
+ 8938 => 'ON',
+ 8939 => 'ON',
+ 8940 => 'ON',
+ 8941 => 'ON',
+ 8942 => 'ON',
+ 8943 => 'ON',
+ 8944 => 'ON',
+ 8945 => 'ON',
+ 8946 => 'ON',
+ 8947 => 'ON',
+ 8948 => 'ON',
+ 8949 => 'ON',
+ 8950 => 'ON',
+ 8951 => 'ON',
+ 8952 => 'ON',
+ 8953 => 'ON',
+ 8954 => 'ON',
+ 8955 => 'ON',
+ 8956 => 'ON',
+ 8957 => 'ON',
+ 8958 => 'ON',
+ 8959 => 'ON',
+ 8960 => 'ON',
+ 8961 => 'ON',
+ 8962 => 'ON',
+ 8963 => 'ON',
+ 8964 => 'ON',
+ 8965 => 'ON',
+ 8966 => 'ON',
+ 8967 => 'ON',
+ 8968 => 'ON',
+ 8969 => 'ON',
+ 8970 => 'ON',
+ 8971 => 'ON',
+ 8972 => 'ON',
+ 8973 => 'ON',
+ 8974 => 'ON',
+ 8975 => 'ON',
+ 8976 => 'ON',
+ 8977 => 'ON',
+ 8978 => 'ON',
+ 8979 => 'ON',
+ 8980 => 'ON',
+ 8981 => 'ON',
+ 8982 => 'ON',
+ 8983 => 'ON',
+ 8984 => 'ON',
+ 8985 => 'ON',
+ 8986 => 'ON',
+ 8987 => 'ON',
+ 8988 => 'ON',
+ 8989 => 'ON',
+ 8990 => 'ON',
+ 8991 => 'ON',
+ 8992 => 'ON',
+ 8993 => 'ON',
+ 8994 => 'ON',
+ 8995 => 'ON',
+ 8996 => 'ON',
+ 8997 => 'ON',
+ 8998 => 'ON',
+ 8999 => 'ON',
+ 9000 => 'ON',
+ 9001 => 'ON',
+ 9002 => 'ON',
+ 9003 => 'ON',
+ 9004 => 'ON',
+ 9005 => 'ON',
+ 9006 => 'ON',
+ 9007 => 'ON',
+ 9008 => 'ON',
+ 9009 => 'ON',
+ 9010 => 'ON',
+ 9011 => 'ON',
+ 9012 => 'ON',
+ 9013 => 'ON',
+ 9014 => 'L',
+ 9015 => 'L',
+ 9016 => 'L',
+ 9017 => 'L',
+ 9018 => 'L',
+ 9019 => 'L',
+ 9020 => 'L',
+ 9021 => 'L',
+ 9022 => 'L',
+ 9023 => 'L',
+ 9024 => 'L',
+ 9025 => 'L',
+ 9026 => 'L',
+ 9027 => 'L',
+ 9028 => 'L',
+ 9029 => 'L',
+ 9030 => 'L',
+ 9031 => 'L',
+ 9032 => 'L',
+ 9033 => 'L',
+ 9034 => 'L',
+ 9035 => 'L',
+ 9036 => 'L',
+ 9037 => 'L',
+ 9038 => 'L',
+ 9039 => 'L',
+ 9040 => 'L',
+ 9041 => 'L',
+ 9042 => 'L',
+ 9043 => 'L',
+ 9044 => 'L',
+ 9045 => 'L',
+ 9046 => 'L',
+ 9047 => 'L',
+ 9048 => 'L',
+ 9049 => 'L',
+ 9050 => 'L',
+ 9051 => 'L',
+ 9052 => 'L',
+ 9053 => 'L',
+ 9054 => 'L',
+ 9055 => 'L',
+ 9056 => 'L',
+ 9057 => 'L',
+ 9058 => 'L',
+ 9059 => 'L',
+ 9060 => 'L',
+ 9061 => 'L',
+ 9062 => 'L',
+ 9063 => 'L',
+ 9064 => 'L',
+ 9065 => 'L',
+ 9066 => 'L',
+ 9067 => 'L',
+ 9068 => 'L',
+ 9069 => 'L',
+ 9070 => 'L',
+ 9071 => 'L',
+ 9072 => 'L',
+ 9073 => 'L',
+ 9074 => 'L',
+ 9075 => 'L',
+ 9076 => 'L',
+ 9077 => 'L',
+ 9078 => 'L',
+ 9079 => 'L',
+ 9080 => 'L',
+ 9081 => 'L',
+ 9082 => 'L',
+ 9083 => 'ON',
+ 9084 => 'ON',
+ 9085 => 'ON',
+ 9086 => 'ON',
+ 9087 => 'ON',
+ 9088 => 'ON',
+ 9089 => 'ON',
+ 9090 => 'ON',
+ 9091 => 'ON',
+ 9092 => 'ON',
+ 9093 => 'ON',
+ 9094 => 'ON',
+ 9095 => 'ON',
+ 9096 => 'ON',
+ 9097 => 'ON',
+ 9098 => 'ON',
+ 9099 => 'ON',
+ 9100 => 'ON',
+ 9101 => 'ON',
+ 9102 => 'ON',
+ 9103 => 'ON',
+ 9104 => 'ON',
+ 9105 => 'ON',
+ 9106 => 'ON',
+ 9107 => 'ON',
+ 9108 => 'ON',
+ 9109 => 'L',
+ 9110 => 'ON',
+ 9111 => 'ON',
+ 9112 => 'ON',
+ 9113 => 'ON',
+ 9114 => 'ON',
+ 9115 => 'ON',
+ 9116 => 'ON',
+ 9117 => 'ON',
+ 9118 => 'ON',
+ 9119 => 'ON',
+ 9120 => 'ON',
+ 9121 => 'ON',
+ 9122 => 'ON',
+ 9123 => 'ON',
+ 9124 => 'ON',
+ 9125 => 'ON',
+ 9126 => 'ON',
+ 9127 => 'ON',
+ 9128 => 'ON',
+ 9129 => 'ON',
+ 9130 => 'ON',
+ 9131 => 'ON',
+ 9132 => 'ON',
+ 9133 => 'ON',
+ 9134 => 'ON',
+ 9135 => 'ON',
+ 9136 => 'ON',
+ 9137 => 'ON',
+ 9138 => 'ON',
+ 9139 => 'ON',
+ 9140 => 'ON',
+ 9141 => 'ON',
+ 9142 => 'ON',
+ 9143 => 'ON',
+ 9144 => 'ON',
+ 9145 => 'ON',
+ 9146 => 'ON',
+ 9147 => 'ON',
+ 9148 => 'ON',
+ 9149 => 'ON',
+ 9150 => 'ON',
+ 9151 => 'ON',
+ 9152 => 'ON',
+ 9153 => 'ON',
+ 9154 => 'ON',
+ 9155 => 'ON',
+ 9156 => 'ON',
+ 9157 => 'ON',
+ 9158 => 'ON',
+ 9159 => 'ON',
+ 9160 => 'ON',
+ 9161 => 'ON',
+ 9162 => 'ON',
+ 9163 => 'ON',
+ 9164 => 'ON',
+ 9165 => 'ON',
+ 9166 => 'ON',
+ 9167 => 'ON',
+ 9168 => 'ON',
+ 9169 => 'ON',
+ 9170 => 'ON',
+ 9171 => 'ON',
+ 9172 => 'ON',
+ 9173 => 'ON',
+ 9174 => 'ON',
+ 9175 => 'ON',
+ 9176 => 'ON',
+ 9177 => 'ON',
+ 9178 => 'ON',
+ 9179 => 'ON',
+ 9180 => 'ON',
+ 9181 => 'ON',
+ 9182 => 'ON',
+ 9183 => 'ON',
+ 9184 => 'ON',
+ 9185 => 'ON',
+ 9186 => 'ON',
+ 9187 => 'ON',
+ 9188 => 'ON',
+ 9189 => 'ON',
+ 9190 => 'ON',
+ 9191 => 'ON',
+ 9216 => 'ON',
+ 9217 => 'ON',
+ 9218 => 'ON',
+ 9219 => 'ON',
+ 9220 => 'ON',
+ 9221 => 'ON',
+ 9222 => 'ON',
+ 9223 => 'ON',
+ 9224 => 'ON',
+ 9225 => 'ON',
+ 9226 => 'ON',
+ 9227 => 'ON',
+ 9228 => 'ON',
+ 9229 => 'ON',
+ 9230 => 'ON',
+ 9231 => 'ON',
+ 9232 => 'ON',
+ 9233 => 'ON',
+ 9234 => 'ON',
+ 9235 => 'ON',
+ 9236 => 'ON',
+ 9237 => 'ON',
+ 9238 => 'ON',
+ 9239 => 'ON',
+ 9240 => 'ON',
+ 9241 => 'ON',
+ 9242 => 'ON',
+ 9243 => 'ON',
+ 9244 => 'ON',
+ 9245 => 'ON',
+ 9246 => 'ON',
+ 9247 => 'ON',
+ 9248 => 'ON',
+ 9249 => 'ON',
+ 9250 => 'ON',
+ 9251 => 'ON',
+ 9252 => 'ON',
+ 9253 => 'ON',
+ 9254 => 'ON',
+ 9280 => 'ON',
+ 9281 => 'ON',
+ 9282 => 'ON',
+ 9283 => 'ON',
+ 9284 => 'ON',
+ 9285 => 'ON',
+ 9286 => 'ON',
+ 9287 => 'ON',
+ 9288 => 'ON',
+ 9289 => 'ON',
+ 9290 => 'ON',
+ 9312 => 'ON',
+ 9313 => 'ON',
+ 9314 => 'ON',
+ 9315 => 'ON',
+ 9316 => 'ON',
+ 9317 => 'ON',
+ 9318 => 'ON',
+ 9319 => 'ON',
+ 9320 => 'ON',
+ 9321 => 'ON',
+ 9322 => 'ON',
+ 9323 => 'ON',
+ 9324 => 'ON',
+ 9325 => 'ON',
+ 9326 => 'ON',
+ 9327 => 'ON',
+ 9328 => 'ON',
+ 9329 => 'ON',
+ 9330 => 'ON',
+ 9331 => 'ON',
+ 9332 => 'ON',
+ 9333 => 'ON',
+ 9334 => 'ON',
+ 9335 => 'ON',
+ 9336 => 'ON',
+ 9337 => 'ON',
+ 9338 => 'ON',
+ 9339 => 'ON',
+ 9340 => 'ON',
+ 9341 => 'ON',
+ 9342 => 'ON',
+ 9343 => 'ON',
+ 9344 => 'ON',
+ 9345 => 'ON',
+ 9346 => 'ON',
+ 9347 => 'ON',
+ 9348 => 'ON',
+ 9349 => 'ON',
+ 9350 => 'ON',
+ 9351 => 'ON',
+ 9352 => 'EN',
+ 9353 => 'EN',
+ 9354 => 'EN',
+ 9355 => 'EN',
+ 9356 => 'EN',
+ 9357 => 'EN',
+ 9358 => 'EN',
+ 9359 => 'EN',
+ 9360 => 'EN',
+ 9361 => 'EN',
+ 9362 => 'EN',
+ 9363 => 'EN',
+ 9364 => 'EN',
+ 9365 => 'EN',
+ 9366 => 'EN',
+ 9367 => 'EN',
+ 9368 => 'EN',
+ 9369 => 'EN',
+ 9370 => 'EN',
+ 9371 => 'EN',
+ 9372 => 'L',
+ 9373 => 'L',
+ 9374 => 'L',
+ 9375 => 'L',
+ 9376 => 'L',
+ 9377 => 'L',
+ 9378 => 'L',
+ 9379 => 'L',
+ 9380 => 'L',
+ 9381 => 'L',
+ 9382 => 'L',
+ 9383 => 'L',
+ 9384 => 'L',
+ 9385 => 'L',
+ 9386 => 'L',
+ 9387 => 'L',
+ 9388 => 'L',
+ 9389 => 'L',
+ 9390 => 'L',
+ 9391 => 'L',
+ 9392 => 'L',
+ 9393 => 'L',
+ 9394 => 'L',
+ 9395 => 'L',
+ 9396 => 'L',
+ 9397 => 'L',
+ 9398 => 'L',
+ 9399 => 'L',
+ 9400 => 'L',
+ 9401 => 'L',
+ 9402 => 'L',
+ 9403 => 'L',
+ 9404 => 'L',
+ 9405 => 'L',
+ 9406 => 'L',
+ 9407 => 'L',
+ 9408 => 'L',
+ 9409 => 'L',
+ 9410 => 'L',
+ 9411 => 'L',
+ 9412 => 'L',
+ 9413 => 'L',
+ 9414 => 'L',
+ 9415 => 'L',
+ 9416 => 'L',
+ 9417 => 'L',
+ 9418 => 'L',
+ 9419 => 'L',
+ 9420 => 'L',
+ 9421 => 'L',
+ 9422 => 'L',
+ 9423 => 'L',
+ 9424 => 'L',
+ 9425 => 'L',
+ 9426 => 'L',
+ 9427 => 'L',
+ 9428 => 'L',
+ 9429 => 'L',
+ 9430 => 'L',
+ 9431 => 'L',
+ 9432 => 'L',
+ 9433 => 'L',
+ 9434 => 'L',
+ 9435 => 'L',
+ 9436 => 'L',
+ 9437 => 'L',
+ 9438 => 'L',
+ 9439 => 'L',
+ 9440 => 'L',
+ 9441 => 'L',
+ 9442 => 'L',
+ 9443 => 'L',
+ 9444 => 'L',
+ 9445 => 'L',
+ 9446 => 'L',
+ 9447 => 'L',
+ 9448 => 'L',
+ 9449 => 'L',
+ 9450 => 'ON',
+ 9451 => 'ON',
+ 9452 => 'ON',
+ 9453 => 'ON',
+ 9454 => 'ON',
+ 9455 => 'ON',
+ 9456 => 'ON',
+ 9457 => 'ON',
+ 9458 => 'ON',
+ 9459 => 'ON',
+ 9460 => 'ON',
+ 9461 => 'ON',
+ 9462 => 'ON',
+ 9463 => 'ON',
+ 9464 => 'ON',
+ 9465 => 'ON',
+ 9466 => 'ON',
+ 9467 => 'ON',
+ 9468 => 'ON',
+ 9469 => 'ON',
+ 9470 => 'ON',
+ 9471 => 'ON',
+ 9472 => 'ON',
+ 9473 => 'ON',
+ 9474 => 'ON',
+ 9475 => 'ON',
+ 9476 => 'ON',
+ 9477 => 'ON',
+ 9478 => 'ON',
+ 9479 => 'ON',
+ 9480 => 'ON',
+ 9481 => 'ON',
+ 9482 => 'ON',
+ 9483 => 'ON',
+ 9484 => 'ON',
+ 9485 => 'ON',
+ 9486 => 'ON',
+ 9487 => 'ON',
+ 9488 => 'ON',
+ 9489 => 'ON',
+ 9490 => 'ON',
+ 9491 => 'ON',
+ 9492 => 'ON',
+ 9493 => 'ON',
+ 9494 => 'ON',
+ 9495 => 'ON',
+ 9496 => 'ON',
+ 9497 => 'ON',
+ 9498 => 'ON',
+ 9499 => 'ON',
+ 9500 => 'ON',
+ 9501 => 'ON',
+ 9502 => 'ON',
+ 9503 => 'ON',
+ 9504 => 'ON',
+ 9505 => 'ON',
+ 9506 => 'ON',
+ 9507 => 'ON',
+ 9508 => 'ON',
+ 9509 => 'ON',
+ 9510 => 'ON',
+ 9511 => 'ON',
+ 9512 => 'ON',
+ 9513 => 'ON',
+ 9514 => 'ON',
+ 9515 => 'ON',
+ 9516 => 'ON',
+ 9517 => 'ON',
+ 9518 => 'ON',
+ 9519 => 'ON',
+ 9520 => 'ON',
+ 9521 => 'ON',
+ 9522 => 'ON',
+ 9523 => 'ON',
+ 9524 => 'ON',
+ 9525 => 'ON',
+ 9526 => 'ON',
+ 9527 => 'ON',
+ 9528 => 'ON',
+ 9529 => 'ON',
+ 9530 => 'ON',
+ 9531 => 'ON',
+ 9532 => 'ON',
+ 9533 => 'ON',
+ 9534 => 'ON',
+ 9535 => 'ON',
+ 9536 => 'ON',
+ 9537 => 'ON',
+ 9538 => 'ON',
+ 9539 => 'ON',
+ 9540 => 'ON',
+ 9541 => 'ON',
+ 9542 => 'ON',
+ 9543 => 'ON',
+ 9544 => 'ON',
+ 9545 => 'ON',
+ 9546 => 'ON',
+ 9547 => 'ON',
+ 9548 => 'ON',
+ 9549 => 'ON',
+ 9550 => 'ON',
+ 9551 => 'ON',
+ 9552 => 'ON',
+ 9553 => 'ON',
+ 9554 => 'ON',
+ 9555 => 'ON',
+ 9556 => 'ON',
+ 9557 => 'ON',
+ 9558 => 'ON',
+ 9559 => 'ON',
+ 9560 => 'ON',
+ 9561 => 'ON',
+ 9562 => 'ON',
+ 9563 => 'ON',
+ 9564 => 'ON',
+ 9565 => 'ON',
+ 9566 => 'ON',
+ 9567 => 'ON',
+ 9568 => 'ON',
+ 9569 => 'ON',
+ 9570 => 'ON',
+ 9571 => 'ON',
+ 9572 => 'ON',
+ 9573 => 'ON',
+ 9574 => 'ON',
+ 9575 => 'ON',
+ 9576 => 'ON',
+ 9577 => 'ON',
+ 9578 => 'ON',
+ 9579 => 'ON',
+ 9580 => 'ON',
+ 9581 => 'ON',
+ 9582 => 'ON',
+ 9583 => 'ON',
+ 9584 => 'ON',
+ 9585 => 'ON',
+ 9586 => 'ON',
+ 9587 => 'ON',
+ 9588 => 'ON',
+ 9589 => 'ON',
+ 9590 => 'ON',
+ 9591 => 'ON',
+ 9592 => 'ON',
+ 9593 => 'ON',
+ 9594 => 'ON',
+ 9595 => 'ON',
+ 9596 => 'ON',
+ 9597 => 'ON',
+ 9598 => 'ON',
+ 9599 => 'ON',
+ 9600 => 'ON',
+ 9601 => 'ON',
+ 9602 => 'ON',
+ 9603 => 'ON',
+ 9604 => 'ON',
+ 9605 => 'ON',
+ 9606 => 'ON',
+ 9607 => 'ON',
+ 9608 => 'ON',
+ 9609 => 'ON',
+ 9610 => 'ON',
+ 9611 => 'ON',
+ 9612 => 'ON',
+ 9613 => 'ON',
+ 9614 => 'ON',
+ 9615 => 'ON',
+ 9616 => 'ON',
+ 9617 => 'ON',
+ 9618 => 'ON',
+ 9619 => 'ON',
+ 9620 => 'ON',
+ 9621 => 'ON',
+ 9622 => 'ON',
+ 9623 => 'ON',
+ 9624 => 'ON',
+ 9625 => 'ON',
+ 9626 => 'ON',
+ 9627 => 'ON',
+ 9628 => 'ON',
+ 9629 => 'ON',
+ 9630 => 'ON',
+ 9631 => 'ON',
+ 9632 => 'ON',
+ 9633 => 'ON',
+ 9634 => 'ON',
+ 9635 => 'ON',
+ 9636 => 'ON',
+ 9637 => 'ON',
+ 9638 => 'ON',
+ 9639 => 'ON',
+ 9640 => 'ON',
+ 9641 => 'ON',
+ 9642 => 'ON',
+ 9643 => 'ON',
+ 9644 => 'ON',
+ 9645 => 'ON',
+ 9646 => 'ON',
+ 9647 => 'ON',
+ 9648 => 'ON',
+ 9649 => 'ON',
+ 9650 => 'ON',
+ 9651 => 'ON',
+ 9652 => 'ON',
+ 9653 => 'ON',
+ 9654 => 'ON',
+ 9655 => 'ON',
+ 9656 => 'ON',
+ 9657 => 'ON',
+ 9658 => 'ON',
+ 9659 => 'ON',
+ 9660 => 'ON',
+ 9661 => 'ON',
+ 9662 => 'ON',
+ 9663 => 'ON',
+ 9664 => 'ON',
+ 9665 => 'ON',
+ 9666 => 'ON',
+ 9667 => 'ON',
+ 9668 => 'ON',
+ 9669 => 'ON',
+ 9670 => 'ON',
+ 9671 => 'ON',
+ 9672 => 'ON',
+ 9673 => 'ON',
+ 9674 => 'ON',
+ 9675 => 'ON',
+ 9676 => 'ON',
+ 9677 => 'ON',
+ 9678 => 'ON',
+ 9679 => 'ON',
+ 9680 => 'ON',
+ 9681 => 'ON',
+ 9682 => 'ON',
+ 9683 => 'ON',
+ 9684 => 'ON',
+ 9685 => 'ON',
+ 9686 => 'ON',
+ 9687 => 'ON',
+ 9688 => 'ON',
+ 9689 => 'ON',
+ 9690 => 'ON',
+ 9691 => 'ON',
+ 9692 => 'ON',
+ 9693 => 'ON',
+ 9694 => 'ON',
+ 9695 => 'ON',
+ 9696 => 'ON',
+ 9697 => 'ON',
+ 9698 => 'ON',
+ 9699 => 'ON',
+ 9700 => 'ON',
+ 9701 => 'ON',
+ 9702 => 'ON',
+ 9703 => 'ON',
+ 9704 => 'ON',
+ 9705 => 'ON',
+ 9706 => 'ON',
+ 9707 => 'ON',
+ 9708 => 'ON',
+ 9709 => 'ON',
+ 9710 => 'ON',
+ 9711 => 'ON',
+ 9712 => 'ON',
+ 9713 => 'ON',
+ 9714 => 'ON',
+ 9715 => 'ON',
+ 9716 => 'ON',
+ 9717 => 'ON',
+ 9718 => 'ON',
+ 9719 => 'ON',
+ 9720 => 'ON',
+ 9721 => 'ON',
+ 9722 => 'ON',
+ 9723 => 'ON',
+ 9724 => 'ON',
+ 9725 => 'ON',
+ 9726 => 'ON',
+ 9727 => 'ON',
+ 9728 => 'ON',
+ 9729 => 'ON',
+ 9730 => 'ON',
+ 9731 => 'ON',
+ 9732 => 'ON',
+ 9733 => 'ON',
+ 9734 => 'ON',
+ 9735 => 'ON',
+ 9736 => 'ON',
+ 9737 => 'ON',
+ 9738 => 'ON',
+ 9739 => 'ON',
+ 9740 => 'ON',
+ 9741 => 'ON',
+ 9742 => 'ON',
+ 9743 => 'ON',
+ 9744 => 'ON',
+ 9745 => 'ON',
+ 9746 => 'ON',
+ 9747 => 'ON',
+ 9748 => 'ON',
+ 9749 => 'ON',
+ 9750 => 'ON',
+ 9751 => 'ON',
+ 9752 => 'ON',
+ 9753 => 'ON',
+ 9754 => 'ON',
+ 9755 => 'ON',
+ 9756 => 'ON',
+ 9757 => 'ON',
+ 9758 => 'ON',
+ 9759 => 'ON',
+ 9760 => 'ON',
+ 9761 => 'ON',
+ 9762 => 'ON',
+ 9763 => 'ON',
+ 9764 => 'ON',
+ 9765 => 'ON',
+ 9766 => 'ON',
+ 9767 => 'ON',
+ 9768 => 'ON',
+ 9769 => 'ON',
+ 9770 => 'ON',
+ 9771 => 'ON',
+ 9772 => 'ON',
+ 9773 => 'ON',
+ 9774 => 'ON',
+ 9775 => 'ON',
+ 9776 => 'ON',
+ 9777 => 'ON',
+ 9778 => 'ON',
+ 9779 => 'ON',
+ 9780 => 'ON',
+ 9781 => 'ON',
+ 9782 => 'ON',
+ 9783 => 'ON',
+ 9784 => 'ON',
+ 9785 => 'ON',
+ 9786 => 'ON',
+ 9787 => 'ON',
+ 9788 => 'ON',
+ 9789 => 'ON',
+ 9790 => 'ON',
+ 9791 => 'ON',
+ 9792 => 'ON',
+ 9793 => 'ON',
+ 9794 => 'ON',
+ 9795 => 'ON',
+ 9796 => 'ON',
+ 9797 => 'ON',
+ 9798 => 'ON',
+ 9799 => 'ON',
+ 9800 => 'ON',
+ 9801 => 'ON',
+ 9802 => 'ON',
+ 9803 => 'ON',
+ 9804 => 'ON',
+ 9805 => 'ON',
+ 9806 => 'ON',
+ 9807 => 'ON',
+ 9808 => 'ON',
+ 9809 => 'ON',
+ 9810 => 'ON',
+ 9811 => 'ON',
+ 9812 => 'ON',
+ 9813 => 'ON',
+ 9814 => 'ON',
+ 9815 => 'ON',
+ 9816 => 'ON',
+ 9817 => 'ON',
+ 9818 => 'ON',
+ 9819 => 'ON',
+ 9820 => 'ON',
+ 9821 => 'ON',
+ 9822 => 'ON',
+ 9823 => 'ON',
+ 9824 => 'ON',
+ 9825 => 'ON',
+ 9826 => 'ON',
+ 9827 => 'ON',
+ 9828 => 'ON',
+ 9829 => 'ON',
+ 9830 => 'ON',
+ 9831 => 'ON',
+ 9832 => 'ON',
+ 9833 => 'ON',
+ 9834 => 'ON',
+ 9835 => 'ON',
+ 9836 => 'ON',
+ 9837 => 'ON',
+ 9838 => 'ON',
+ 9839 => 'ON',
+ 9840 => 'ON',
+ 9841 => 'ON',
+ 9842 => 'ON',
+ 9843 => 'ON',
+ 9844 => 'ON',
+ 9845 => 'ON',
+ 9846 => 'ON',
+ 9847 => 'ON',
+ 9848 => 'ON',
+ 9849 => 'ON',
+ 9850 => 'ON',
+ 9851 => 'ON',
+ 9852 => 'ON',
+ 9853 => 'ON',
+ 9854 => 'ON',
+ 9855 => 'ON',
+ 9856 => 'ON',
+ 9857 => 'ON',
+ 9858 => 'ON',
+ 9859 => 'ON',
+ 9860 => 'ON',
+ 9861 => 'ON',
+ 9862 => 'ON',
+ 9863 => 'ON',
+ 9864 => 'ON',
+ 9865 => 'ON',
+ 9866 => 'ON',
+ 9867 => 'ON',
+ 9868 => 'ON',
+ 9869 => 'ON',
+ 9870 => 'ON',
+ 9871 => 'ON',
+ 9872 => 'ON',
+ 9873 => 'ON',
+ 9874 => 'ON',
+ 9875 => 'ON',
+ 9876 => 'ON',
+ 9877 => 'ON',
+ 9878 => 'ON',
+ 9879 => 'ON',
+ 9880 => 'ON',
+ 9881 => 'ON',
+ 9882 => 'ON',
+ 9883 => 'ON',
+ 9884 => 'ON',
+ 9888 => 'ON',
+ 9889 => 'ON',
+ 9890 => 'ON',
+ 9891 => 'ON',
+ 9892 => 'ON',
+ 9893 => 'ON',
+ 9894 => 'ON',
+ 9895 => 'ON',
+ 9896 => 'ON',
+ 9897 => 'ON',
+ 9898 => 'ON',
+ 9899 => 'ON',
+ 9900 => 'L',
+ 9901 => 'ON',
+ 9902 => 'ON',
+ 9903 => 'ON',
+ 9904 => 'ON',
+ 9905 => 'ON',
+ 9906 => 'ON',
+ 9985 => 'ON',
+ 9986 => 'ON',
+ 9987 => 'ON',
+ 9988 => 'ON',
+ 9990 => 'ON',
+ 9991 => 'ON',
+ 9992 => 'ON',
+ 9993 => 'ON',
+ 9996 => 'ON',
+ 9997 => 'ON',
+ 9998 => 'ON',
+ 9999 => 'ON',
+ 10000 => 'ON',
+ 10001 => 'ON',
+ 10002 => 'ON',
+ 10003 => 'ON',
+ 10004 => 'ON',
+ 10005 => 'ON',
+ 10006 => 'ON',
+ 10007 => 'ON',
+ 10008 => 'ON',
+ 10009 => 'ON',
+ 10010 => 'ON',
+ 10011 => 'ON',
+ 10012 => 'ON',
+ 10013 => 'ON',
+ 10014 => 'ON',
+ 10015 => 'ON',
+ 10016 => 'ON',
+ 10017 => 'ON',
+ 10018 => 'ON',
+ 10019 => 'ON',
+ 10020 => 'ON',
+ 10021 => 'ON',
+ 10022 => 'ON',
+ 10023 => 'ON',
+ 10025 => 'ON',
+ 10026 => 'ON',
+ 10027 => 'ON',
+ 10028 => 'ON',
+ 10029 => 'ON',
+ 10030 => 'ON',
+ 10031 => 'ON',
+ 10032 => 'ON',
+ 10033 => 'ON',
+ 10034 => 'ON',
+ 10035 => 'ON',
+ 10036 => 'ON',
+ 10037 => 'ON',
+ 10038 => 'ON',
+ 10039 => 'ON',
+ 10040 => 'ON',
+ 10041 => 'ON',
+ 10042 => 'ON',
+ 10043 => 'ON',
+ 10044 => 'ON',
+ 10045 => 'ON',
+ 10046 => 'ON',
+ 10047 => 'ON',
+ 10048 => 'ON',
+ 10049 => 'ON',
+ 10050 => 'ON',
+ 10051 => 'ON',
+ 10052 => 'ON',
+ 10053 => 'ON',
+ 10054 => 'ON',
+ 10055 => 'ON',
+ 10056 => 'ON',
+ 10057 => 'ON',
+ 10058 => 'ON',
+ 10059 => 'ON',
+ 10061 => 'ON',
+ 10063 => 'ON',
+ 10064 => 'ON',
+ 10065 => 'ON',
+ 10066 => 'ON',
+ 10070 => 'ON',
+ 10072 => 'ON',
+ 10073 => 'ON',
+ 10074 => 'ON',
+ 10075 => 'ON',
+ 10076 => 'ON',
+ 10077 => 'ON',
+ 10078 => 'ON',
+ 10081 => 'ON',
+ 10082 => 'ON',
+ 10083 => 'ON',
+ 10084 => 'ON',
+ 10085 => 'ON',
+ 10086 => 'ON',
+ 10087 => 'ON',
+ 10088 => 'ON',
+ 10089 => 'ON',
+ 10090 => 'ON',
+ 10091 => 'ON',
+ 10092 => 'ON',
+ 10093 => 'ON',
+ 10094 => 'ON',
+ 10095 => 'ON',
+ 10096 => 'ON',
+ 10097 => 'ON',
+ 10098 => 'ON',
+ 10099 => 'ON',
+ 10100 => 'ON',
+ 10101 => 'ON',
+ 10102 => 'ON',
+ 10103 => 'ON',
+ 10104 => 'ON',
+ 10105 => 'ON',
+ 10106 => 'ON',
+ 10107 => 'ON',
+ 10108 => 'ON',
+ 10109 => 'ON',
+ 10110 => 'ON',
+ 10111 => 'ON',
+ 10112 => 'ON',
+ 10113 => 'ON',
+ 10114 => 'ON',
+ 10115 => 'ON',
+ 10116 => 'ON',
+ 10117 => 'ON',
+ 10118 => 'ON',
+ 10119 => 'ON',
+ 10120 => 'ON',
+ 10121 => 'ON',
+ 10122 => 'ON',
+ 10123 => 'ON',
+ 10124 => 'ON',
+ 10125 => 'ON',
+ 10126 => 'ON',
+ 10127 => 'ON',
+ 10128 => 'ON',
+ 10129 => 'ON',
+ 10130 => 'ON',
+ 10131 => 'ON',
+ 10132 => 'ON',
+ 10136 => 'ON',
+ 10137 => 'ON',
+ 10138 => 'ON',
+ 10139 => 'ON',
+ 10140 => 'ON',
+ 10141 => 'ON',
+ 10142 => 'ON',
+ 10143 => 'ON',
+ 10144 => 'ON',
+ 10145 => 'ON',
+ 10146 => 'ON',
+ 10147 => 'ON',
+ 10148 => 'ON',
+ 10149 => 'ON',
+ 10150 => 'ON',
+ 10151 => 'ON',
+ 10152 => 'ON',
+ 10153 => 'ON',
+ 10154 => 'ON',
+ 10155 => 'ON',
+ 10156 => 'ON',
+ 10157 => 'ON',
+ 10158 => 'ON',
+ 10159 => 'ON',
+ 10161 => 'ON',
+ 10162 => 'ON',
+ 10163 => 'ON',
+ 10164 => 'ON',
+ 10165 => 'ON',
+ 10166 => 'ON',
+ 10167 => 'ON',
+ 10168 => 'ON',
+ 10169 => 'ON',
+ 10170 => 'ON',
+ 10171 => 'ON',
+ 10172 => 'ON',
+ 10173 => 'ON',
+ 10174 => 'ON',
+ 10176 => 'ON',
+ 10177 => 'ON',
+ 10178 => 'ON',
+ 10179 => 'ON',
+ 10180 => 'ON',
+ 10181 => 'ON',
+ 10182 => 'ON',
+ 10183 => 'ON',
+ 10184 => 'ON',
+ 10185 => 'ON',
+ 10186 => 'ON',
+ 10192 => 'ON',
+ 10193 => 'ON',
+ 10194 => 'ON',
+ 10195 => 'ON',
+ 10196 => 'ON',
+ 10197 => 'ON',
+ 10198 => 'ON',
+ 10199 => 'ON',
+ 10200 => 'ON',
+ 10201 => 'ON',
+ 10202 => 'ON',
+ 10203 => 'ON',
+ 10204 => 'ON',
+ 10205 => 'ON',
+ 10206 => 'ON',
+ 10207 => 'ON',
+ 10208 => 'ON',
+ 10209 => 'ON',
+ 10210 => 'ON',
+ 10211 => 'ON',
+ 10212 => 'ON',
+ 10213 => 'ON',
+ 10214 => 'ON',
+ 10215 => 'ON',
+ 10216 => 'ON',
+ 10217 => 'ON',
+ 10218 => 'ON',
+ 10219 => 'ON',
+ 10224 => 'ON',
+ 10225 => 'ON',
+ 10226 => 'ON',
+ 10227 => 'ON',
+ 10228 => 'ON',
+ 10229 => 'ON',
+ 10230 => 'ON',
+ 10231 => 'ON',
+ 10232 => 'ON',
+ 10233 => 'ON',
+ 10234 => 'ON',
+ 10235 => 'ON',
+ 10236 => 'ON',
+ 10237 => 'ON',
+ 10238 => 'ON',
+ 10239 => 'ON',
+ 10240 => 'L',
+ 10241 => 'L',
+ 10242 => 'L',
+ 10243 => 'L',
+ 10244 => 'L',
+ 10245 => 'L',
+ 10246 => 'L',
+ 10247 => 'L',
+ 10248 => 'L',
+ 10249 => 'L',
+ 10250 => 'L',
+ 10251 => 'L',
+ 10252 => 'L',
+ 10253 => 'L',
+ 10254 => 'L',
+ 10255 => 'L',
+ 10256 => 'L',
+ 10257 => 'L',
+ 10258 => 'L',
+ 10259 => 'L',
+ 10260 => 'L',
+ 10261 => 'L',
+ 10262 => 'L',
+ 10263 => 'L',
+ 10264 => 'L',
+ 10265 => 'L',
+ 10266 => 'L',
+ 10267 => 'L',
+ 10268 => 'L',
+ 10269 => 'L',
+ 10270 => 'L',
+ 10271 => 'L',
+ 10272 => 'L',
+ 10273 => 'L',
+ 10274 => 'L',
+ 10275 => 'L',
+ 10276 => 'L',
+ 10277 => 'L',
+ 10278 => 'L',
+ 10279 => 'L',
+ 10280 => 'L',
+ 10281 => 'L',
+ 10282 => 'L',
+ 10283 => 'L',
+ 10284 => 'L',
+ 10285 => 'L',
+ 10286 => 'L',
+ 10287 => 'L',
+ 10288 => 'L',
+ 10289 => 'L',
+ 10290 => 'L',
+ 10291 => 'L',
+ 10292 => 'L',
+ 10293 => 'L',
+ 10294 => 'L',
+ 10295 => 'L',
+ 10296 => 'L',
+ 10297 => 'L',
+ 10298 => 'L',
+ 10299 => 'L',
+ 10300 => 'L',
+ 10301 => 'L',
+ 10302 => 'L',
+ 10303 => 'L',
+ 10304 => 'L',
+ 10305 => 'L',
+ 10306 => 'L',
+ 10307 => 'L',
+ 10308 => 'L',
+ 10309 => 'L',
+ 10310 => 'L',
+ 10311 => 'L',
+ 10312 => 'L',
+ 10313 => 'L',
+ 10314 => 'L',
+ 10315 => 'L',
+ 10316 => 'L',
+ 10317 => 'L',
+ 10318 => 'L',
+ 10319 => 'L',
+ 10320 => 'L',
+ 10321 => 'L',
+ 10322 => 'L',
+ 10323 => 'L',
+ 10324 => 'L',
+ 10325 => 'L',
+ 10326 => 'L',
+ 10327 => 'L',
+ 10328 => 'L',
+ 10329 => 'L',
+ 10330 => 'L',
+ 10331 => 'L',
+ 10332 => 'L',
+ 10333 => 'L',
+ 10334 => 'L',
+ 10335 => 'L',
+ 10336 => 'L',
+ 10337 => 'L',
+ 10338 => 'L',
+ 10339 => 'L',
+ 10340 => 'L',
+ 10341 => 'L',
+ 10342 => 'L',
+ 10343 => 'L',
+ 10344 => 'L',
+ 10345 => 'L',
+ 10346 => 'L',
+ 10347 => 'L',
+ 10348 => 'L',
+ 10349 => 'L',
+ 10350 => 'L',
+ 10351 => 'L',
+ 10352 => 'L',
+ 10353 => 'L',
+ 10354 => 'L',
+ 10355 => 'L',
+ 10356 => 'L',
+ 10357 => 'L',
+ 10358 => 'L',
+ 10359 => 'L',
+ 10360 => 'L',
+ 10361 => 'L',
+ 10362 => 'L',
+ 10363 => 'L',
+ 10364 => 'L',
+ 10365 => 'L',
+ 10366 => 'L',
+ 10367 => 'L',
+ 10368 => 'L',
+ 10369 => 'L',
+ 10370 => 'L',
+ 10371 => 'L',
+ 10372 => 'L',
+ 10373 => 'L',
+ 10374 => 'L',
+ 10375 => 'L',
+ 10376 => 'L',
+ 10377 => 'L',
+ 10378 => 'L',
+ 10379 => 'L',
+ 10380 => 'L',
+ 10381 => 'L',
+ 10382 => 'L',
+ 10383 => 'L',
+ 10384 => 'L',
+ 10385 => 'L',
+ 10386 => 'L',
+ 10387 => 'L',
+ 10388 => 'L',
+ 10389 => 'L',
+ 10390 => 'L',
+ 10391 => 'L',
+ 10392 => 'L',
+ 10393 => 'L',
+ 10394 => 'L',
+ 10395 => 'L',
+ 10396 => 'L',
+ 10397 => 'L',
+ 10398 => 'L',
+ 10399 => 'L',
+ 10400 => 'L',
+ 10401 => 'L',
+ 10402 => 'L',
+ 10403 => 'L',
+ 10404 => 'L',
+ 10405 => 'L',
+ 10406 => 'L',
+ 10407 => 'L',
+ 10408 => 'L',
+ 10409 => 'L',
+ 10410 => 'L',
+ 10411 => 'L',
+ 10412 => 'L',
+ 10413 => 'L',
+ 10414 => 'L',
+ 10415 => 'L',
+ 10416 => 'L',
+ 10417 => 'L',
+ 10418 => 'L',
+ 10419 => 'L',
+ 10420 => 'L',
+ 10421 => 'L',
+ 10422 => 'L',
+ 10423 => 'L',
+ 10424 => 'L',
+ 10425 => 'L',
+ 10426 => 'L',
+ 10427 => 'L',
+ 10428 => 'L',
+ 10429 => 'L',
+ 10430 => 'L',
+ 10431 => 'L',
+ 10432 => 'L',
+ 10433 => 'L',
+ 10434 => 'L',
+ 10435 => 'L',
+ 10436 => 'L',
+ 10437 => 'L',
+ 10438 => 'L',
+ 10439 => 'L',
+ 10440 => 'L',
+ 10441 => 'L',
+ 10442 => 'L',
+ 10443 => 'L',
+ 10444 => 'L',
+ 10445 => 'L',
+ 10446 => 'L',
+ 10447 => 'L',
+ 10448 => 'L',
+ 10449 => 'L',
+ 10450 => 'L',
+ 10451 => 'L',
+ 10452 => 'L',
+ 10453 => 'L',
+ 10454 => 'L',
+ 10455 => 'L',
+ 10456 => 'L',
+ 10457 => 'L',
+ 10458 => 'L',
+ 10459 => 'L',
+ 10460 => 'L',
+ 10461 => 'L',
+ 10462 => 'L',
+ 10463 => 'L',
+ 10464 => 'L',
+ 10465 => 'L',
+ 10466 => 'L',
+ 10467 => 'L',
+ 10468 => 'L',
+ 10469 => 'L',
+ 10470 => 'L',
+ 10471 => 'L',
+ 10472 => 'L',
+ 10473 => 'L',
+ 10474 => 'L',
+ 10475 => 'L',
+ 10476 => 'L',
+ 10477 => 'L',
+ 10478 => 'L',
+ 10479 => 'L',
+ 10480 => 'L',
+ 10481 => 'L',
+ 10482 => 'L',
+ 10483 => 'L',
+ 10484 => 'L',
+ 10485 => 'L',
+ 10486 => 'L',
+ 10487 => 'L',
+ 10488 => 'L',
+ 10489 => 'L',
+ 10490 => 'L',
+ 10491 => 'L',
+ 10492 => 'L',
+ 10493 => 'L',
+ 10494 => 'L',
+ 10495 => 'L',
+ 10496 => 'ON',
+ 10497 => 'ON',
+ 10498 => 'ON',
+ 10499 => 'ON',
+ 10500 => 'ON',
+ 10501 => 'ON',
+ 10502 => 'ON',
+ 10503 => 'ON',
+ 10504 => 'ON',
+ 10505 => 'ON',
+ 10506 => 'ON',
+ 10507 => 'ON',
+ 10508 => 'ON',
+ 10509 => 'ON',
+ 10510 => 'ON',
+ 10511 => 'ON',
+ 10512 => 'ON',
+ 10513 => 'ON',
+ 10514 => 'ON',
+ 10515 => 'ON',
+ 10516 => 'ON',
+ 10517 => 'ON',
+ 10518 => 'ON',
+ 10519 => 'ON',
+ 10520 => 'ON',
+ 10521 => 'ON',
+ 10522 => 'ON',
+ 10523 => 'ON',
+ 10524 => 'ON',
+ 10525 => 'ON',
+ 10526 => 'ON',
+ 10527 => 'ON',
+ 10528 => 'ON',
+ 10529 => 'ON',
+ 10530 => 'ON',
+ 10531 => 'ON',
+ 10532 => 'ON',
+ 10533 => 'ON',
+ 10534 => 'ON',
+ 10535 => 'ON',
+ 10536 => 'ON',
+ 10537 => 'ON',
+ 10538 => 'ON',
+ 10539 => 'ON',
+ 10540 => 'ON',
+ 10541 => 'ON',
+ 10542 => 'ON',
+ 10543 => 'ON',
+ 10544 => 'ON',
+ 10545 => 'ON',
+ 10546 => 'ON',
+ 10547 => 'ON',
+ 10548 => 'ON',
+ 10549 => 'ON',
+ 10550 => 'ON',
+ 10551 => 'ON',
+ 10552 => 'ON',
+ 10553 => 'ON',
+ 10554 => 'ON',
+ 10555 => 'ON',
+ 10556 => 'ON',
+ 10557 => 'ON',
+ 10558 => 'ON',
+ 10559 => 'ON',
+ 10560 => 'ON',
+ 10561 => 'ON',
+ 10562 => 'ON',
+ 10563 => 'ON',
+ 10564 => 'ON',
+ 10565 => 'ON',
+ 10566 => 'ON',
+ 10567 => 'ON',
+ 10568 => 'ON',
+ 10569 => 'ON',
+ 10570 => 'ON',
+ 10571 => 'ON',
+ 10572 => 'ON',
+ 10573 => 'ON',
+ 10574 => 'ON',
+ 10575 => 'ON',
+ 10576 => 'ON',
+ 10577 => 'ON',
+ 10578 => 'ON',
+ 10579 => 'ON',
+ 10580 => 'ON',
+ 10581 => 'ON',
+ 10582 => 'ON',
+ 10583 => 'ON',
+ 10584 => 'ON',
+ 10585 => 'ON',
+ 10586 => 'ON',
+ 10587 => 'ON',
+ 10588 => 'ON',
+ 10589 => 'ON',
+ 10590 => 'ON',
+ 10591 => 'ON',
+ 10592 => 'ON',
+ 10593 => 'ON',
+ 10594 => 'ON',
+ 10595 => 'ON',
+ 10596 => 'ON',
+ 10597 => 'ON',
+ 10598 => 'ON',
+ 10599 => 'ON',
+ 10600 => 'ON',
+ 10601 => 'ON',
+ 10602 => 'ON',
+ 10603 => 'ON',
+ 10604 => 'ON',
+ 10605 => 'ON',
+ 10606 => 'ON',
+ 10607 => 'ON',
+ 10608 => 'ON',
+ 10609 => 'ON',
+ 10610 => 'ON',
+ 10611 => 'ON',
+ 10612 => 'ON',
+ 10613 => 'ON',
+ 10614 => 'ON',
+ 10615 => 'ON',
+ 10616 => 'ON',
+ 10617 => 'ON',
+ 10618 => 'ON',
+ 10619 => 'ON',
+ 10620 => 'ON',
+ 10621 => 'ON',
+ 10622 => 'ON',
+ 10623 => 'ON',
+ 10624 => 'ON',
+ 10625 => 'ON',
+ 10626 => 'ON',
+ 10627 => 'ON',
+ 10628 => 'ON',
+ 10629 => 'ON',
+ 10630 => 'ON',
+ 10631 => 'ON',
+ 10632 => 'ON',
+ 10633 => 'ON',
+ 10634 => 'ON',
+ 10635 => 'ON',
+ 10636 => 'ON',
+ 10637 => 'ON',
+ 10638 => 'ON',
+ 10639 => 'ON',
+ 10640 => 'ON',
+ 10641 => 'ON',
+ 10642 => 'ON',
+ 10643 => 'ON',
+ 10644 => 'ON',
+ 10645 => 'ON',
+ 10646 => 'ON',
+ 10647 => 'ON',
+ 10648 => 'ON',
+ 10649 => 'ON',
+ 10650 => 'ON',
+ 10651 => 'ON',
+ 10652 => 'ON',
+ 10653 => 'ON',
+ 10654 => 'ON',
+ 10655 => 'ON',
+ 10656 => 'ON',
+ 10657 => 'ON',
+ 10658 => 'ON',
+ 10659 => 'ON',
+ 10660 => 'ON',
+ 10661 => 'ON',
+ 10662 => 'ON',
+ 10663 => 'ON',
+ 10664 => 'ON',
+ 10665 => 'ON',
+ 10666 => 'ON',
+ 10667 => 'ON',
+ 10668 => 'ON',
+ 10669 => 'ON',
+ 10670 => 'ON',
+ 10671 => 'ON',
+ 10672 => 'ON',
+ 10673 => 'ON',
+ 10674 => 'ON',
+ 10675 => 'ON',
+ 10676 => 'ON',
+ 10677 => 'ON',
+ 10678 => 'ON',
+ 10679 => 'ON',
+ 10680 => 'ON',
+ 10681 => 'ON',
+ 10682 => 'ON',
+ 10683 => 'ON',
+ 10684 => 'ON',
+ 10685 => 'ON',
+ 10686 => 'ON',
+ 10687 => 'ON',
+ 10688 => 'ON',
+ 10689 => 'ON',
+ 10690 => 'ON',
+ 10691 => 'ON',
+ 10692 => 'ON',
+ 10693 => 'ON',
+ 10694 => 'ON',
+ 10695 => 'ON',
+ 10696 => 'ON',
+ 10697 => 'ON',
+ 10698 => 'ON',
+ 10699 => 'ON',
+ 10700 => 'ON',
+ 10701 => 'ON',
+ 10702 => 'ON',
+ 10703 => 'ON',
+ 10704 => 'ON',
+ 10705 => 'ON',
+ 10706 => 'ON',
+ 10707 => 'ON',
+ 10708 => 'ON',
+ 10709 => 'ON',
+ 10710 => 'ON',
+ 10711 => 'ON',
+ 10712 => 'ON',
+ 10713 => 'ON',
+ 10714 => 'ON',
+ 10715 => 'ON',
+ 10716 => 'ON',
+ 10717 => 'ON',
+ 10718 => 'ON',
+ 10719 => 'ON',
+ 10720 => 'ON',
+ 10721 => 'ON',
+ 10722 => 'ON',
+ 10723 => 'ON',
+ 10724 => 'ON',
+ 10725 => 'ON',
+ 10726 => 'ON',
+ 10727 => 'ON',
+ 10728 => 'ON',
+ 10729 => 'ON',
+ 10730 => 'ON',
+ 10731 => 'ON',
+ 10732 => 'ON',
+ 10733 => 'ON',
+ 10734 => 'ON',
+ 10735 => 'ON',
+ 10736 => 'ON',
+ 10737 => 'ON',
+ 10738 => 'ON',
+ 10739 => 'ON',
+ 10740 => 'ON',
+ 10741 => 'ON',
+ 10742 => 'ON',
+ 10743 => 'ON',
+ 10744 => 'ON',
+ 10745 => 'ON',
+ 10746 => 'ON',
+ 10747 => 'ON',
+ 10748 => 'ON',
+ 10749 => 'ON',
+ 10750 => 'ON',
+ 10751 => 'ON',
+ 10752 => 'ON',
+ 10753 => 'ON',
+ 10754 => 'ON',
+ 10755 => 'ON',
+ 10756 => 'ON',
+ 10757 => 'ON',
+ 10758 => 'ON',
+ 10759 => 'ON',
+ 10760 => 'ON',
+ 10761 => 'ON',
+ 10762 => 'ON',
+ 10763 => 'ON',
+ 10764 => 'ON',
+ 10765 => 'ON',
+ 10766 => 'ON',
+ 10767 => 'ON',
+ 10768 => 'ON',
+ 10769 => 'ON',
+ 10770 => 'ON',
+ 10771 => 'ON',
+ 10772 => 'ON',
+ 10773 => 'ON',
+ 10774 => 'ON',
+ 10775 => 'ON',
+ 10776 => 'ON',
+ 10777 => 'ON',
+ 10778 => 'ON',
+ 10779 => 'ON',
+ 10780 => 'ON',
+ 10781 => 'ON',
+ 10782 => 'ON',
+ 10783 => 'ON',
+ 10784 => 'ON',
+ 10785 => 'ON',
+ 10786 => 'ON',
+ 10787 => 'ON',
+ 10788 => 'ON',
+ 10789 => 'ON',
+ 10790 => 'ON',
+ 10791 => 'ON',
+ 10792 => 'ON',
+ 10793 => 'ON',
+ 10794 => 'ON',
+ 10795 => 'ON',
+ 10796 => 'ON',
+ 10797 => 'ON',
+ 10798 => 'ON',
+ 10799 => 'ON',
+ 10800 => 'ON',
+ 10801 => 'ON',
+ 10802 => 'ON',
+ 10803 => 'ON',
+ 10804 => 'ON',
+ 10805 => 'ON',
+ 10806 => 'ON',
+ 10807 => 'ON',
+ 10808 => 'ON',
+ 10809 => 'ON',
+ 10810 => 'ON',
+ 10811 => 'ON',
+ 10812 => 'ON',
+ 10813 => 'ON',
+ 10814 => 'ON',
+ 10815 => 'ON',
+ 10816 => 'ON',
+ 10817 => 'ON',
+ 10818 => 'ON',
+ 10819 => 'ON',
+ 10820 => 'ON',
+ 10821 => 'ON',
+ 10822 => 'ON',
+ 10823 => 'ON',
+ 10824 => 'ON',
+ 10825 => 'ON',
+ 10826 => 'ON',
+ 10827 => 'ON',
+ 10828 => 'ON',
+ 10829 => 'ON',
+ 10830 => 'ON',
+ 10831 => 'ON',
+ 10832 => 'ON',
+ 10833 => 'ON',
+ 10834 => 'ON',
+ 10835 => 'ON',
+ 10836 => 'ON',
+ 10837 => 'ON',
+ 10838 => 'ON',
+ 10839 => 'ON',
+ 10840 => 'ON',
+ 10841 => 'ON',
+ 10842 => 'ON',
+ 10843 => 'ON',
+ 10844 => 'ON',
+ 10845 => 'ON',
+ 10846 => 'ON',
+ 10847 => 'ON',
+ 10848 => 'ON',
+ 10849 => 'ON',
+ 10850 => 'ON',
+ 10851 => 'ON',
+ 10852 => 'ON',
+ 10853 => 'ON',
+ 10854 => 'ON',
+ 10855 => 'ON',
+ 10856 => 'ON',
+ 10857 => 'ON',
+ 10858 => 'ON',
+ 10859 => 'ON',
+ 10860 => 'ON',
+ 10861 => 'ON',
+ 10862 => 'ON',
+ 10863 => 'ON',
+ 10864 => 'ON',
+ 10865 => 'ON',
+ 10866 => 'ON',
+ 10867 => 'ON',
+ 10868 => 'ON',
+ 10869 => 'ON',
+ 10870 => 'ON',
+ 10871 => 'ON',
+ 10872 => 'ON',
+ 10873 => 'ON',
+ 10874 => 'ON',
+ 10875 => 'ON',
+ 10876 => 'ON',
+ 10877 => 'ON',
+ 10878 => 'ON',
+ 10879 => 'ON',
+ 10880 => 'ON',
+ 10881 => 'ON',
+ 10882 => 'ON',
+ 10883 => 'ON',
+ 10884 => 'ON',
+ 10885 => 'ON',
+ 10886 => 'ON',
+ 10887 => 'ON',
+ 10888 => 'ON',
+ 10889 => 'ON',
+ 10890 => 'ON',
+ 10891 => 'ON',
+ 10892 => 'ON',
+ 10893 => 'ON',
+ 10894 => 'ON',
+ 10895 => 'ON',
+ 10896 => 'ON',
+ 10897 => 'ON',
+ 10898 => 'ON',
+ 10899 => 'ON',
+ 10900 => 'ON',
+ 10901 => 'ON',
+ 10902 => 'ON',
+ 10903 => 'ON',
+ 10904 => 'ON',
+ 10905 => 'ON',
+ 10906 => 'ON',
+ 10907 => 'ON',
+ 10908 => 'ON',
+ 10909 => 'ON',
+ 10910 => 'ON',
+ 10911 => 'ON',
+ 10912 => 'ON',
+ 10913 => 'ON',
+ 10914 => 'ON',
+ 10915 => 'ON',
+ 10916 => 'ON',
+ 10917 => 'ON',
+ 10918 => 'ON',
+ 10919 => 'ON',
+ 10920 => 'ON',
+ 10921 => 'ON',
+ 10922 => 'ON',
+ 10923 => 'ON',
+ 10924 => 'ON',
+ 10925 => 'ON',
+ 10926 => 'ON',
+ 10927 => 'ON',
+ 10928 => 'ON',
+ 10929 => 'ON',
+ 10930 => 'ON',
+ 10931 => 'ON',
+ 10932 => 'ON',
+ 10933 => 'ON',
+ 10934 => 'ON',
+ 10935 => 'ON',
+ 10936 => 'ON',
+ 10937 => 'ON',
+ 10938 => 'ON',
+ 10939 => 'ON',
+ 10940 => 'ON',
+ 10941 => 'ON',
+ 10942 => 'ON',
+ 10943 => 'ON',
+ 10944 => 'ON',
+ 10945 => 'ON',
+ 10946 => 'ON',
+ 10947 => 'ON',
+ 10948 => 'ON',
+ 10949 => 'ON',
+ 10950 => 'ON',
+ 10951 => 'ON',
+ 10952 => 'ON',
+ 10953 => 'ON',
+ 10954 => 'ON',
+ 10955 => 'ON',
+ 10956 => 'ON',
+ 10957 => 'ON',
+ 10958 => 'ON',
+ 10959 => 'ON',
+ 10960 => 'ON',
+ 10961 => 'ON',
+ 10962 => 'ON',
+ 10963 => 'ON',
+ 10964 => 'ON',
+ 10965 => 'ON',
+ 10966 => 'ON',
+ 10967 => 'ON',
+ 10968 => 'ON',
+ 10969 => 'ON',
+ 10970 => 'ON',
+ 10971 => 'ON',
+ 10972 => 'ON',
+ 10973 => 'ON',
+ 10974 => 'ON',
+ 10975 => 'ON',
+ 10976 => 'ON',
+ 10977 => 'ON',
+ 10978 => 'ON',
+ 10979 => 'ON',
+ 10980 => 'ON',
+ 10981 => 'ON',
+ 10982 => 'ON',
+ 10983 => 'ON',
+ 10984 => 'ON',
+ 10985 => 'ON',
+ 10986 => 'ON',
+ 10987 => 'ON',
+ 10988 => 'ON',
+ 10989 => 'ON',
+ 10990 => 'ON',
+ 10991 => 'ON',
+ 10992 => 'ON',
+ 10993 => 'ON',
+ 10994 => 'ON',
+ 10995 => 'ON',
+ 10996 => 'ON',
+ 10997 => 'ON',
+ 10998 => 'ON',
+ 10999 => 'ON',
+ 11000 => 'ON',
+ 11001 => 'ON',
+ 11002 => 'ON',
+ 11003 => 'ON',
+ 11004 => 'ON',
+ 11005 => 'ON',
+ 11006 => 'ON',
+ 11007 => 'ON',
+ 11008 => 'ON',
+ 11009 => 'ON',
+ 11010 => 'ON',
+ 11011 => 'ON',
+ 11012 => 'ON',
+ 11013 => 'ON',
+ 11014 => 'ON',
+ 11015 => 'ON',
+ 11016 => 'ON',
+ 11017 => 'ON',
+ 11018 => 'ON',
+ 11019 => 'ON',
+ 11020 => 'ON',
+ 11021 => 'ON',
+ 11022 => 'ON',
+ 11023 => 'ON',
+ 11024 => 'ON',
+ 11025 => 'ON',
+ 11026 => 'ON',
+ 11027 => 'ON',
+ 11028 => 'ON',
+ 11029 => 'ON',
+ 11030 => 'ON',
+ 11031 => 'ON',
+ 11032 => 'ON',
+ 11033 => 'ON',
+ 11034 => 'ON',
+ 11040 => 'ON',
+ 11041 => 'ON',
+ 11042 => 'ON',
+ 11043 => 'ON',
+ 11264 => 'L',
+ 11265 => 'L',
+ 11266 => 'L',
+ 11267 => 'L',
+ 11268 => 'L',
+ 11269 => 'L',
+ 11270 => 'L',
+ 11271 => 'L',
+ 11272 => 'L',
+ 11273 => 'L',
+ 11274 => 'L',
+ 11275 => 'L',
+ 11276 => 'L',
+ 11277 => 'L',
+ 11278 => 'L',
+ 11279 => 'L',
+ 11280 => 'L',
+ 11281 => 'L',
+ 11282 => 'L',
+ 11283 => 'L',
+ 11284 => 'L',
+ 11285 => 'L',
+ 11286 => 'L',
+ 11287 => 'L',
+ 11288 => 'L',
+ 11289 => 'L',
+ 11290 => 'L',
+ 11291 => 'L',
+ 11292 => 'L',
+ 11293 => 'L',
+ 11294 => 'L',
+ 11295 => 'L',
+ 11296 => 'L',
+ 11297 => 'L',
+ 11298 => 'L',
+ 11299 => 'L',
+ 11300 => 'L',
+ 11301 => 'L',
+ 11302 => 'L',
+ 11303 => 'L',
+ 11304 => 'L',
+ 11305 => 'L',
+ 11306 => 'L',
+ 11307 => 'L',
+ 11308 => 'L',
+ 11309 => 'L',
+ 11310 => 'L',
+ 11312 => 'L',
+ 11313 => 'L',
+ 11314 => 'L',
+ 11315 => 'L',
+ 11316 => 'L',
+ 11317 => 'L',
+ 11318 => 'L',
+ 11319 => 'L',
+ 11320 => 'L',
+ 11321 => 'L',
+ 11322 => 'L',
+ 11323 => 'L',
+ 11324 => 'L',
+ 11325 => 'L',
+ 11326 => 'L',
+ 11327 => 'L',
+ 11328 => 'L',
+ 11329 => 'L',
+ 11330 => 'L',
+ 11331 => 'L',
+ 11332 => 'L',
+ 11333 => 'L',
+ 11334 => 'L',
+ 11335 => 'L',
+ 11336 => 'L',
+ 11337 => 'L',
+ 11338 => 'L',
+ 11339 => 'L',
+ 11340 => 'L',
+ 11341 => 'L',
+ 11342 => 'L',
+ 11343 => 'L',
+ 11344 => 'L',
+ 11345 => 'L',
+ 11346 => 'L',
+ 11347 => 'L',
+ 11348 => 'L',
+ 11349 => 'L',
+ 11350 => 'L',
+ 11351 => 'L',
+ 11352 => 'L',
+ 11353 => 'L',
+ 11354 => 'L',
+ 11355 => 'L',
+ 11356 => 'L',
+ 11357 => 'L',
+ 11358 => 'L',
+ 11360 => 'L',
+ 11361 => 'L',
+ 11362 => 'L',
+ 11363 => 'L',
+ 11364 => 'L',
+ 11365 => 'L',
+ 11366 => 'L',
+ 11367 => 'L',
+ 11368 => 'L',
+ 11369 => 'L',
+ 11370 => 'L',
+ 11371 => 'L',
+ 11372 => 'L',
+ 11380 => 'L',
+ 11381 => 'L',
+ 11382 => 'L',
+ 11383 => 'L',
+ 11392 => 'L',
+ 11393 => 'L',
+ 11394 => 'L',
+ 11395 => 'L',
+ 11396 => 'L',
+ 11397 => 'L',
+ 11398 => 'L',
+ 11399 => 'L',
+ 11400 => 'L',
+ 11401 => 'L',
+ 11402 => 'L',
+ 11403 => 'L',
+ 11404 => 'L',
+ 11405 => 'L',
+ 11406 => 'L',
+ 11407 => 'L',
+ 11408 => 'L',
+ 11409 => 'L',
+ 11410 => 'L',
+ 11411 => 'L',
+ 11412 => 'L',
+ 11413 => 'L',
+ 11414 => 'L',
+ 11415 => 'L',
+ 11416 => 'L',
+ 11417 => 'L',
+ 11418 => 'L',
+ 11419 => 'L',
+ 11420 => 'L',
+ 11421 => 'L',
+ 11422 => 'L',
+ 11423 => 'L',
+ 11424 => 'L',
+ 11425 => 'L',
+ 11426 => 'L',
+ 11427 => 'L',
+ 11428 => 'L',
+ 11429 => 'L',
+ 11430 => 'L',
+ 11431 => 'L',
+ 11432 => 'L',
+ 11433 => 'L',
+ 11434 => 'L',
+ 11435 => 'L',
+ 11436 => 'L',
+ 11437 => 'L',
+ 11438 => 'L',
+ 11439 => 'L',
+ 11440 => 'L',
+ 11441 => 'L',
+ 11442 => 'L',
+ 11443 => 'L',
+ 11444 => 'L',
+ 11445 => 'L',
+ 11446 => 'L',
+ 11447 => 'L',
+ 11448 => 'L',
+ 11449 => 'L',
+ 11450 => 'L',
+ 11451 => 'L',
+ 11452 => 'L',
+ 11453 => 'L',
+ 11454 => 'L',
+ 11455 => 'L',
+ 11456 => 'L',
+ 11457 => 'L',
+ 11458 => 'L',
+ 11459 => 'L',
+ 11460 => 'L',
+ 11461 => 'L',
+ 11462 => 'L',
+ 11463 => 'L',
+ 11464 => 'L',
+ 11465 => 'L',
+ 11466 => 'L',
+ 11467 => 'L',
+ 11468 => 'L',
+ 11469 => 'L',
+ 11470 => 'L',
+ 11471 => 'L',
+ 11472 => 'L',
+ 11473 => 'L',
+ 11474 => 'L',
+ 11475 => 'L',
+ 11476 => 'L',
+ 11477 => 'L',
+ 11478 => 'L',
+ 11479 => 'L',
+ 11480 => 'L',
+ 11481 => 'L',
+ 11482 => 'L',
+ 11483 => 'L',
+ 11484 => 'L',
+ 11485 => 'L',
+ 11486 => 'L',
+ 11487 => 'L',
+ 11488 => 'L',
+ 11489 => 'L',
+ 11490 => 'L',
+ 11491 => 'L',
+ 11492 => 'L',
+ 11493 => 'ON',
+ 11494 => 'ON',
+ 11495 => 'ON',
+ 11496 => 'ON',
+ 11497 => 'ON',
+ 11498 => 'ON',
+ 11513 => 'ON',
+ 11514 => 'ON',
+ 11515 => 'ON',
+ 11516 => 'ON',
+ 11517 => 'ON',
+ 11518 => 'ON',
+ 11519 => 'ON',
+ 11520 => 'L',
+ 11521 => 'L',
+ 11522 => 'L',
+ 11523 => 'L',
+ 11524 => 'L',
+ 11525 => 'L',
+ 11526 => 'L',
+ 11527 => 'L',
+ 11528 => 'L',
+ 11529 => 'L',
+ 11530 => 'L',
+ 11531 => 'L',
+ 11532 => 'L',
+ 11533 => 'L',
+ 11534 => 'L',
+ 11535 => 'L',
+ 11536 => 'L',
+ 11537 => 'L',
+ 11538 => 'L',
+ 11539 => 'L',
+ 11540 => 'L',
+ 11541 => 'L',
+ 11542 => 'L',
+ 11543 => 'L',
+ 11544 => 'L',
+ 11545 => 'L',
+ 11546 => 'L',
+ 11547 => 'L',
+ 11548 => 'L',
+ 11549 => 'L',
+ 11550 => 'L',
+ 11551 => 'L',
+ 11552 => 'L',
+ 11553 => 'L',
+ 11554 => 'L',
+ 11555 => 'L',
+ 11556 => 'L',
+ 11557 => 'L',
+ 11568 => 'L',
+ 11569 => 'L',
+ 11570 => 'L',
+ 11571 => 'L',
+ 11572 => 'L',
+ 11573 => 'L',
+ 11574 => 'L',
+ 11575 => 'L',
+ 11576 => 'L',
+ 11577 => 'L',
+ 11578 => 'L',
+ 11579 => 'L',
+ 11580 => 'L',
+ 11581 => 'L',
+ 11582 => 'L',
+ 11583 => 'L',
+ 11584 => 'L',
+ 11585 => 'L',
+ 11586 => 'L',
+ 11587 => 'L',
+ 11588 => 'L',
+ 11589 => 'L',
+ 11590 => 'L',
+ 11591 => 'L',
+ 11592 => 'L',
+ 11593 => 'L',
+ 11594 => 'L',
+ 11595 => 'L',
+ 11596 => 'L',
+ 11597 => 'L',
+ 11598 => 'L',
+ 11599 => 'L',
+ 11600 => 'L',
+ 11601 => 'L',
+ 11602 => 'L',
+ 11603 => 'L',
+ 11604 => 'L',
+ 11605 => 'L',
+ 11606 => 'L',
+ 11607 => 'L',
+ 11608 => 'L',
+ 11609 => 'L',
+ 11610 => 'L',
+ 11611 => 'L',
+ 11612 => 'L',
+ 11613 => 'L',
+ 11614 => 'L',
+ 11615 => 'L',
+ 11616 => 'L',
+ 11617 => 'L',
+ 11618 => 'L',
+ 11619 => 'L',
+ 11620 => 'L',
+ 11621 => 'L',
+ 11631 => 'L',
+ 11648 => 'L',
+ 11649 => 'L',
+ 11650 => 'L',
+ 11651 => 'L',
+ 11652 => 'L',
+ 11653 => 'L',
+ 11654 => 'L',
+ 11655 => 'L',
+ 11656 => 'L',
+ 11657 => 'L',
+ 11658 => 'L',
+ 11659 => 'L',
+ 11660 => 'L',
+ 11661 => 'L',
+ 11662 => 'L',
+ 11663 => 'L',
+ 11664 => 'L',
+ 11665 => 'L',
+ 11666 => 'L',
+ 11667 => 'L',
+ 11668 => 'L',
+ 11669 => 'L',
+ 11670 => 'L',
+ 11680 => 'L',
+ 11681 => 'L',
+ 11682 => 'L',
+ 11683 => 'L',
+ 11684 => 'L',
+ 11685 => 'L',
+ 11686 => 'L',
+ 11688 => 'L',
+ 11689 => 'L',
+ 11690 => 'L',
+ 11691 => 'L',
+ 11692 => 'L',
+ 11693 => 'L',
+ 11694 => 'L',
+ 11696 => 'L',
+ 11697 => 'L',
+ 11698 => 'L',
+ 11699 => 'L',
+ 11700 => 'L',
+ 11701 => 'L',
+ 11702 => 'L',
+ 11704 => 'L',
+ 11705 => 'L',
+ 11706 => 'L',
+ 11707 => 'L',
+ 11708 => 'L',
+ 11709 => 'L',
+ 11710 => 'L',
+ 11712 => 'L',
+ 11713 => 'L',
+ 11714 => 'L',
+ 11715 => 'L',
+ 11716 => 'L',
+ 11717 => 'L',
+ 11718 => 'L',
+ 11720 => 'L',
+ 11721 => 'L',
+ 11722 => 'L',
+ 11723 => 'L',
+ 11724 => 'L',
+ 11725 => 'L',
+ 11726 => 'L',
+ 11728 => 'L',
+ 11729 => 'L',
+ 11730 => 'L',
+ 11731 => 'L',
+ 11732 => 'L',
+ 11733 => 'L',
+ 11734 => 'L',
+ 11736 => 'L',
+ 11737 => 'L',
+ 11738 => 'L',
+ 11739 => 'L',
+ 11740 => 'L',
+ 11741 => 'L',
+ 11742 => 'L',
+ 11776 => 'ON',
+ 11777 => 'ON',
+ 11778 => 'ON',
+ 11779 => 'ON',
+ 11780 => 'ON',
+ 11781 => 'ON',
+ 11782 => 'ON',
+ 11783 => 'ON',
+ 11784 => 'ON',
+ 11785 => 'ON',
+ 11786 => 'ON',
+ 11787 => 'ON',
+ 11788 => 'ON',
+ 11789 => 'ON',
+ 11790 => 'ON',
+ 11791 => 'ON',
+ 11792 => 'ON',
+ 11793 => 'ON',
+ 11794 => 'ON',
+ 11795 => 'ON',
+ 11796 => 'ON',
+ 11797 => 'ON',
+ 11798 => 'ON',
+ 11799 => 'ON',
+ 11804 => 'ON',
+ 11805 => 'ON',
+ 11904 => 'ON',
+ 11905 => 'ON',
+ 11906 => 'ON',
+ 11907 => 'ON',
+ 11908 => 'ON',
+ 11909 => 'ON',
+ 11910 => 'ON',
+ 11911 => 'ON',
+ 11912 => 'ON',
+ 11913 => 'ON',
+ 11914 => 'ON',
+ 11915 => 'ON',
+ 11916 => 'ON',
+ 11917 => 'ON',
+ 11918 => 'ON',
+ 11919 => 'ON',
+ 11920 => 'ON',
+ 11921 => 'ON',
+ 11922 => 'ON',
+ 11923 => 'ON',
+ 11924 => 'ON',
+ 11925 => 'ON',
+ 11926 => 'ON',
+ 11927 => 'ON',
+ 11928 => 'ON',
+ 11929 => 'ON',
+ 11931 => 'ON',
+ 11932 => 'ON',
+ 11933 => 'ON',
+ 11934 => 'ON',
+ 11935 => 'ON',
+ 11936 => 'ON',
+ 11937 => 'ON',
+ 11938 => 'ON',
+ 11939 => 'ON',
+ 11940 => 'ON',
+ 11941 => 'ON',
+ 11942 => 'ON',
+ 11943 => 'ON',
+ 11944 => 'ON',
+ 11945 => 'ON',
+ 11946 => 'ON',
+ 11947 => 'ON',
+ 11948 => 'ON',
+ 11949 => 'ON',
+ 11950 => 'ON',
+ 11951 => 'ON',
+ 11952 => 'ON',
+ 11953 => 'ON',
+ 11954 => 'ON',
+ 11955 => 'ON',
+ 11956 => 'ON',
+ 11957 => 'ON',
+ 11958 => 'ON',
+ 11959 => 'ON',
+ 11960 => 'ON',
+ 11961 => 'ON',
+ 11962 => 'ON',
+ 11963 => 'ON',
+ 11964 => 'ON',
+ 11965 => 'ON',
+ 11966 => 'ON',
+ 11967 => 'ON',
+ 11968 => 'ON',
+ 11969 => 'ON',
+ 11970 => 'ON',
+ 11971 => 'ON',
+ 11972 => 'ON',
+ 11973 => 'ON',
+ 11974 => 'ON',
+ 11975 => 'ON',
+ 11976 => 'ON',
+ 11977 => 'ON',
+ 11978 => 'ON',
+ 11979 => 'ON',
+ 11980 => 'ON',
+ 11981 => 'ON',
+ 11982 => 'ON',
+ 11983 => 'ON',
+ 11984 => 'ON',
+ 11985 => 'ON',
+ 11986 => 'ON',
+ 11987 => 'ON',
+ 11988 => 'ON',
+ 11989 => 'ON',
+ 11990 => 'ON',
+ 11991 => 'ON',
+ 11992 => 'ON',
+ 11993 => 'ON',
+ 11994 => 'ON',
+ 11995 => 'ON',
+ 11996 => 'ON',
+ 11997 => 'ON',
+ 11998 => 'ON',
+ 11999 => 'ON',
+ 12000 => 'ON',
+ 12001 => 'ON',
+ 12002 => 'ON',
+ 12003 => 'ON',
+ 12004 => 'ON',
+ 12005 => 'ON',
+ 12006 => 'ON',
+ 12007 => 'ON',
+ 12008 => 'ON',
+ 12009 => 'ON',
+ 12010 => 'ON',
+ 12011 => 'ON',
+ 12012 => 'ON',
+ 12013 => 'ON',
+ 12014 => 'ON',
+ 12015 => 'ON',
+ 12016 => 'ON',
+ 12017 => 'ON',
+ 12018 => 'ON',
+ 12019 => 'ON',
+ 12032 => 'ON',
+ 12033 => 'ON',
+ 12034 => 'ON',
+ 12035 => 'ON',
+ 12036 => 'ON',
+ 12037 => 'ON',
+ 12038 => 'ON',
+ 12039 => 'ON',
+ 12040 => 'ON',
+ 12041 => 'ON',
+ 12042 => 'ON',
+ 12043 => 'ON',
+ 12044 => 'ON',
+ 12045 => 'ON',
+ 12046 => 'ON',
+ 12047 => 'ON',
+ 12048 => 'ON',
+ 12049 => 'ON',
+ 12050 => 'ON',
+ 12051 => 'ON',
+ 12052 => 'ON',
+ 12053 => 'ON',
+ 12054 => 'ON',
+ 12055 => 'ON',
+ 12056 => 'ON',
+ 12057 => 'ON',
+ 12058 => 'ON',
+ 12059 => 'ON',
+ 12060 => 'ON',
+ 12061 => 'ON',
+ 12062 => 'ON',
+ 12063 => 'ON',
+ 12064 => 'ON',
+ 12065 => 'ON',
+ 12066 => 'ON',
+ 12067 => 'ON',
+ 12068 => 'ON',
+ 12069 => 'ON',
+ 12070 => 'ON',
+ 12071 => 'ON',
+ 12072 => 'ON',
+ 12073 => 'ON',
+ 12074 => 'ON',
+ 12075 => 'ON',
+ 12076 => 'ON',
+ 12077 => 'ON',
+ 12078 => 'ON',
+ 12079 => 'ON',
+ 12080 => 'ON',
+ 12081 => 'ON',
+ 12082 => 'ON',
+ 12083 => 'ON',
+ 12084 => 'ON',
+ 12085 => 'ON',
+ 12086 => 'ON',
+ 12087 => 'ON',
+ 12088 => 'ON',
+ 12089 => 'ON',
+ 12090 => 'ON',
+ 12091 => 'ON',
+ 12092 => 'ON',
+ 12093 => 'ON',
+ 12094 => 'ON',
+ 12095 => 'ON',
+ 12096 => 'ON',
+ 12097 => 'ON',
+ 12098 => 'ON',
+ 12099 => 'ON',
+ 12100 => 'ON',
+ 12101 => 'ON',
+ 12102 => 'ON',
+ 12103 => 'ON',
+ 12104 => 'ON',
+ 12105 => 'ON',
+ 12106 => 'ON',
+ 12107 => 'ON',
+ 12108 => 'ON',
+ 12109 => 'ON',
+ 12110 => 'ON',
+ 12111 => 'ON',
+ 12112 => 'ON',
+ 12113 => 'ON',
+ 12114 => 'ON',
+ 12115 => 'ON',
+ 12116 => 'ON',
+ 12117 => 'ON',
+ 12118 => 'ON',
+ 12119 => 'ON',
+ 12120 => 'ON',
+ 12121 => 'ON',
+ 12122 => 'ON',
+ 12123 => 'ON',
+ 12124 => 'ON',
+ 12125 => 'ON',
+ 12126 => 'ON',
+ 12127 => 'ON',
+ 12128 => 'ON',
+ 12129 => 'ON',
+ 12130 => 'ON',
+ 12131 => 'ON',
+ 12132 => 'ON',
+ 12133 => 'ON',
+ 12134 => 'ON',
+ 12135 => 'ON',
+ 12136 => 'ON',
+ 12137 => 'ON',
+ 12138 => 'ON',
+ 12139 => 'ON',
+ 12140 => 'ON',
+ 12141 => 'ON',
+ 12142 => 'ON',
+ 12143 => 'ON',
+ 12144 => 'ON',
+ 12145 => 'ON',
+ 12146 => 'ON',
+ 12147 => 'ON',
+ 12148 => 'ON',
+ 12149 => 'ON',
+ 12150 => 'ON',
+ 12151 => 'ON',
+ 12152 => 'ON',
+ 12153 => 'ON',
+ 12154 => 'ON',
+ 12155 => 'ON',
+ 12156 => 'ON',
+ 12157 => 'ON',
+ 12158 => 'ON',
+ 12159 => 'ON',
+ 12160 => 'ON',
+ 12161 => 'ON',
+ 12162 => 'ON',
+ 12163 => 'ON',
+ 12164 => 'ON',
+ 12165 => 'ON',
+ 12166 => 'ON',
+ 12167 => 'ON',
+ 12168 => 'ON',
+ 12169 => 'ON',
+ 12170 => 'ON',
+ 12171 => 'ON',
+ 12172 => 'ON',
+ 12173 => 'ON',
+ 12174 => 'ON',
+ 12175 => 'ON',
+ 12176 => 'ON',
+ 12177 => 'ON',
+ 12178 => 'ON',
+ 12179 => 'ON',
+ 12180 => 'ON',
+ 12181 => 'ON',
+ 12182 => 'ON',
+ 12183 => 'ON',
+ 12184 => 'ON',
+ 12185 => 'ON',
+ 12186 => 'ON',
+ 12187 => 'ON',
+ 12188 => 'ON',
+ 12189 => 'ON',
+ 12190 => 'ON',
+ 12191 => 'ON',
+ 12192 => 'ON',
+ 12193 => 'ON',
+ 12194 => 'ON',
+ 12195 => 'ON',
+ 12196 => 'ON',
+ 12197 => 'ON',
+ 12198 => 'ON',
+ 12199 => 'ON',
+ 12200 => 'ON',
+ 12201 => 'ON',
+ 12202 => 'ON',
+ 12203 => 'ON',
+ 12204 => 'ON',
+ 12205 => 'ON',
+ 12206 => 'ON',
+ 12207 => 'ON',
+ 12208 => 'ON',
+ 12209 => 'ON',
+ 12210 => 'ON',
+ 12211 => 'ON',
+ 12212 => 'ON',
+ 12213 => 'ON',
+ 12214 => 'ON',
+ 12215 => 'ON',
+ 12216 => 'ON',
+ 12217 => 'ON',
+ 12218 => 'ON',
+ 12219 => 'ON',
+ 12220 => 'ON',
+ 12221 => 'ON',
+ 12222 => 'ON',
+ 12223 => 'ON',
+ 12224 => 'ON',
+ 12225 => 'ON',
+ 12226 => 'ON',
+ 12227 => 'ON',
+ 12228 => 'ON',
+ 12229 => 'ON',
+ 12230 => 'ON',
+ 12231 => 'ON',
+ 12232 => 'ON',
+ 12233 => 'ON',
+ 12234 => 'ON',
+ 12235 => 'ON',
+ 12236 => 'ON',
+ 12237 => 'ON',
+ 12238 => 'ON',
+ 12239 => 'ON',
+ 12240 => 'ON',
+ 12241 => 'ON',
+ 12242 => 'ON',
+ 12243 => 'ON',
+ 12244 => 'ON',
+ 12245 => 'ON',
+ 12272 => 'ON',
+ 12273 => 'ON',
+ 12274 => 'ON',
+ 12275 => 'ON',
+ 12276 => 'ON',
+ 12277 => 'ON',
+ 12278 => 'ON',
+ 12279 => 'ON',
+ 12280 => 'ON',
+ 12281 => 'ON',
+ 12282 => 'ON',
+ 12283 => 'ON',
+ 12288 => 'WS',
+ 12289 => 'ON',
+ 12290 => 'ON',
+ 12291 => 'ON',
+ 12292 => 'ON',
+ 12293 => 'L',
+ 12294 => 'L',
+ 12295 => 'L',
+ 12296 => 'ON',
+ 12297 => 'ON',
+ 12298 => 'ON',
+ 12299 => 'ON',
+ 12300 => 'ON',
+ 12301 => 'ON',
+ 12302 => 'ON',
+ 12303 => 'ON',
+ 12304 => 'ON',
+ 12305 => 'ON',
+ 12306 => 'ON',
+ 12307 => 'ON',
+ 12308 => 'ON',
+ 12309 => 'ON',
+ 12310 => 'ON',
+ 12311 => 'ON',
+ 12312 => 'ON',
+ 12313 => 'ON',
+ 12314 => 'ON',
+ 12315 => 'ON',
+ 12316 => 'ON',
+ 12317 => 'ON',
+ 12318 => 'ON',
+ 12319 => 'ON',
+ 12320 => 'ON',
+ 12321 => 'L',
+ 12322 => 'L',
+ 12323 => 'L',
+ 12324 => 'L',
+ 12325 => 'L',
+ 12326 => 'L',
+ 12327 => 'L',
+ 12328 => 'L',
+ 12329 => 'L',
+ 12330 => 'NSM',
+ 12331 => 'NSM',
+ 12332 => 'NSM',
+ 12333 => 'NSM',
+ 12334 => 'NSM',
+ 12335 => 'NSM',
+ 12336 => 'ON',
+ 12337 => 'L',
+ 12338 => 'L',
+ 12339 => 'L',
+ 12340 => 'L',
+ 12341 => 'L',
+ 12342 => 'ON',
+ 12343 => 'ON',
+ 12344 => 'L',
+ 12345 => 'L',
+ 12346 => 'L',
+ 12347 => 'L',
+ 12348 => 'L',
+ 12349 => 'ON',
+ 12350 => 'ON',
+ 12351 => 'ON',
+ 12353 => 'L',
+ 12354 => 'L',
+ 12355 => 'L',
+ 12356 => 'L',
+ 12357 => 'L',
+ 12358 => 'L',
+ 12359 => 'L',
+ 12360 => 'L',
+ 12361 => 'L',
+ 12362 => 'L',
+ 12363 => 'L',
+ 12364 => 'L',
+ 12365 => 'L',
+ 12366 => 'L',
+ 12367 => 'L',
+ 12368 => 'L',
+ 12369 => 'L',
+ 12370 => 'L',
+ 12371 => 'L',
+ 12372 => 'L',
+ 12373 => 'L',
+ 12374 => 'L',
+ 12375 => 'L',
+ 12376 => 'L',
+ 12377 => 'L',
+ 12378 => 'L',
+ 12379 => 'L',
+ 12380 => 'L',
+ 12381 => 'L',
+ 12382 => 'L',
+ 12383 => 'L',
+ 12384 => 'L',
+ 12385 => 'L',
+ 12386 => 'L',
+ 12387 => 'L',
+ 12388 => 'L',
+ 12389 => 'L',
+ 12390 => 'L',
+ 12391 => 'L',
+ 12392 => 'L',
+ 12393 => 'L',
+ 12394 => 'L',
+ 12395 => 'L',
+ 12396 => 'L',
+ 12397 => 'L',
+ 12398 => 'L',
+ 12399 => 'L',
+ 12400 => 'L',
+ 12401 => 'L',
+ 12402 => 'L',
+ 12403 => 'L',
+ 12404 => 'L',
+ 12405 => 'L',
+ 12406 => 'L',
+ 12407 => 'L',
+ 12408 => 'L',
+ 12409 => 'L',
+ 12410 => 'L',
+ 12411 => 'L',
+ 12412 => 'L',
+ 12413 => 'L',
+ 12414 => 'L',
+ 12415 => 'L',
+ 12416 => 'L',
+ 12417 => 'L',
+ 12418 => 'L',
+ 12419 => 'L',
+ 12420 => 'L',
+ 12421 => 'L',
+ 12422 => 'L',
+ 12423 => 'L',
+ 12424 => 'L',
+ 12425 => 'L',
+ 12426 => 'L',
+ 12427 => 'L',
+ 12428 => 'L',
+ 12429 => 'L',
+ 12430 => 'L',
+ 12431 => 'L',
+ 12432 => 'L',
+ 12433 => 'L',
+ 12434 => 'L',
+ 12435 => 'L',
+ 12436 => 'L',
+ 12437 => 'L',
+ 12438 => 'L',
+ 12441 => 'NSM',
+ 12442 => 'NSM',
+ 12443 => 'ON',
+ 12444 => 'ON',
+ 12445 => 'L',
+ 12446 => 'L',
+ 12447 => 'L',
+ 12448 => 'ON',
+ 12449 => 'L',
+ 12450 => 'L',
+ 12451 => 'L',
+ 12452 => 'L',
+ 12453 => 'L',
+ 12454 => 'L',
+ 12455 => 'L',
+ 12456 => 'L',
+ 12457 => 'L',
+ 12458 => 'L',
+ 12459 => 'L',
+ 12460 => 'L',
+ 12461 => 'L',
+ 12462 => 'L',
+ 12463 => 'L',
+ 12464 => 'L',
+ 12465 => 'L',
+ 12466 => 'L',
+ 12467 => 'L',
+ 12468 => 'L',
+ 12469 => 'L',
+ 12470 => 'L',
+ 12471 => 'L',
+ 12472 => 'L',
+ 12473 => 'L',
+ 12474 => 'L',
+ 12475 => 'L',
+ 12476 => 'L',
+ 12477 => 'L',
+ 12478 => 'L',
+ 12479 => 'L',
+ 12480 => 'L',
+ 12481 => 'L',
+ 12482 => 'L',
+ 12483 => 'L',
+ 12484 => 'L',
+ 12485 => 'L',
+ 12486 => 'L',
+ 12487 => 'L',
+ 12488 => 'L',
+ 12489 => 'L',
+ 12490 => 'L',
+ 12491 => 'L',
+ 12492 => 'L',
+ 12493 => 'L',
+ 12494 => 'L',
+ 12495 => 'L',
+ 12496 => 'L',
+ 12497 => 'L',
+ 12498 => 'L',
+ 12499 => 'L',
+ 12500 => 'L',
+ 12501 => 'L',
+ 12502 => 'L',
+ 12503 => 'L',
+ 12504 => 'L',
+ 12505 => 'L',
+ 12506 => 'L',
+ 12507 => 'L',
+ 12508 => 'L',
+ 12509 => 'L',
+ 12510 => 'L',
+ 12511 => 'L',
+ 12512 => 'L',
+ 12513 => 'L',
+ 12514 => 'L',
+ 12515 => 'L',
+ 12516 => 'L',
+ 12517 => 'L',
+ 12518 => 'L',
+ 12519 => 'L',
+ 12520 => 'L',
+ 12521 => 'L',
+ 12522 => 'L',
+ 12523 => 'L',
+ 12524 => 'L',
+ 12525 => 'L',
+ 12526 => 'L',
+ 12527 => 'L',
+ 12528 => 'L',
+ 12529 => 'L',
+ 12530 => 'L',
+ 12531 => 'L',
+ 12532 => 'L',
+ 12533 => 'L',
+ 12534 => 'L',
+ 12535 => 'L',
+ 12536 => 'L',
+ 12537 => 'L',
+ 12538 => 'L',
+ 12539 => 'ON',
+ 12540 => 'L',
+ 12541 => 'L',
+ 12542 => 'L',
+ 12543 => 'L',
+ 12549 => 'L',
+ 12550 => 'L',
+ 12551 => 'L',
+ 12552 => 'L',
+ 12553 => 'L',
+ 12554 => 'L',
+ 12555 => 'L',
+ 12556 => 'L',
+ 12557 => 'L',
+ 12558 => 'L',
+ 12559 => 'L',
+ 12560 => 'L',
+ 12561 => 'L',
+ 12562 => 'L',
+ 12563 => 'L',
+ 12564 => 'L',
+ 12565 => 'L',
+ 12566 => 'L',
+ 12567 => 'L',
+ 12568 => 'L',
+ 12569 => 'L',
+ 12570 => 'L',
+ 12571 => 'L',
+ 12572 => 'L',
+ 12573 => 'L',
+ 12574 => 'L',
+ 12575 => 'L',
+ 12576 => 'L',
+ 12577 => 'L',
+ 12578 => 'L',
+ 12579 => 'L',
+ 12580 => 'L',
+ 12581 => 'L',
+ 12582 => 'L',
+ 12583 => 'L',
+ 12584 => 'L',
+ 12585 => 'L',
+ 12586 => 'L',
+ 12587 => 'L',
+ 12588 => 'L',
+ 12593 => 'L',
+ 12594 => 'L',
+ 12595 => 'L',
+ 12596 => 'L',
+ 12597 => 'L',
+ 12598 => 'L',
+ 12599 => 'L',
+ 12600 => 'L',
+ 12601 => 'L',
+ 12602 => 'L',
+ 12603 => 'L',
+ 12604 => 'L',
+ 12605 => 'L',
+ 12606 => 'L',
+ 12607 => 'L',
+ 12608 => 'L',
+ 12609 => 'L',
+ 12610 => 'L',
+ 12611 => 'L',
+ 12612 => 'L',
+ 12613 => 'L',
+ 12614 => 'L',
+ 12615 => 'L',
+ 12616 => 'L',
+ 12617 => 'L',
+ 12618 => 'L',
+ 12619 => 'L',
+ 12620 => 'L',
+ 12621 => 'L',
+ 12622 => 'L',
+ 12623 => 'L',
+ 12624 => 'L',
+ 12625 => 'L',
+ 12626 => 'L',
+ 12627 => 'L',
+ 12628 => 'L',
+ 12629 => 'L',
+ 12630 => 'L',
+ 12631 => 'L',
+ 12632 => 'L',
+ 12633 => 'L',
+ 12634 => 'L',
+ 12635 => 'L',
+ 12636 => 'L',
+ 12637 => 'L',
+ 12638 => 'L',
+ 12639 => 'L',
+ 12640 => 'L',
+ 12641 => 'L',
+ 12642 => 'L',
+ 12643 => 'L',
+ 12644 => 'L',
+ 12645 => 'L',
+ 12646 => 'L',
+ 12647 => 'L',
+ 12648 => 'L',
+ 12649 => 'L',
+ 12650 => 'L',
+ 12651 => 'L',
+ 12652 => 'L',
+ 12653 => 'L',
+ 12654 => 'L',
+ 12655 => 'L',
+ 12656 => 'L',
+ 12657 => 'L',
+ 12658 => 'L',
+ 12659 => 'L',
+ 12660 => 'L',
+ 12661 => 'L',
+ 12662 => 'L',
+ 12663 => 'L',
+ 12664 => 'L',
+ 12665 => 'L',
+ 12666 => 'L',
+ 12667 => 'L',
+ 12668 => 'L',
+ 12669 => 'L',
+ 12670 => 'L',
+ 12671 => 'L',
+ 12672 => 'L',
+ 12673 => 'L',
+ 12674 => 'L',
+ 12675 => 'L',
+ 12676 => 'L',
+ 12677 => 'L',
+ 12678 => 'L',
+ 12679 => 'L',
+ 12680 => 'L',
+ 12681 => 'L',
+ 12682 => 'L',
+ 12683 => 'L',
+ 12684 => 'L',
+ 12685 => 'L',
+ 12686 => 'L',
+ 12688 => 'L',
+ 12689 => 'L',
+ 12690 => 'L',
+ 12691 => 'L',
+ 12692 => 'L',
+ 12693 => 'L',
+ 12694 => 'L',
+ 12695 => 'L',
+ 12696 => 'L',
+ 12697 => 'L',
+ 12698 => 'L',
+ 12699 => 'L',
+ 12700 => 'L',
+ 12701 => 'L',
+ 12702 => 'L',
+ 12703 => 'L',
+ 12704 => 'L',
+ 12705 => 'L',
+ 12706 => 'L',
+ 12707 => 'L',
+ 12708 => 'L',
+ 12709 => 'L',
+ 12710 => 'L',
+ 12711 => 'L',
+ 12712 => 'L',
+ 12713 => 'L',
+ 12714 => 'L',
+ 12715 => 'L',
+ 12716 => 'L',
+ 12717 => 'L',
+ 12718 => 'L',
+ 12719 => 'L',
+ 12720 => 'L',
+ 12721 => 'L',
+ 12722 => 'L',
+ 12723 => 'L',
+ 12724 => 'L',
+ 12725 => 'L',
+ 12726 => 'L',
+ 12727 => 'L',
+ 12736 => 'ON',
+ 12737 => 'ON',
+ 12738 => 'ON',
+ 12739 => 'ON',
+ 12740 => 'ON',
+ 12741 => 'ON',
+ 12742 => 'ON',
+ 12743 => 'ON',
+ 12744 => 'ON',
+ 12745 => 'ON',
+ 12746 => 'ON',
+ 12747 => 'ON',
+ 12748 => 'ON',
+ 12749 => 'ON',
+ 12750 => 'ON',
+ 12751 => 'ON',
+ 12784 => 'L',
+ 12785 => 'L',
+ 12786 => 'L',
+ 12787 => 'L',
+ 12788 => 'L',
+ 12789 => 'L',
+ 12790 => 'L',
+ 12791 => 'L',
+ 12792 => 'L',
+ 12793 => 'L',
+ 12794 => 'L',
+ 12795 => 'L',
+ 12796 => 'L',
+ 12797 => 'L',
+ 12798 => 'L',
+ 12799 => 'L',
+ 12800 => 'L',
+ 12801 => 'L',
+ 12802 => 'L',
+ 12803 => 'L',
+ 12804 => 'L',
+ 12805 => 'L',
+ 12806 => 'L',
+ 12807 => 'L',
+ 12808 => 'L',
+ 12809 => 'L',
+ 12810 => 'L',
+ 12811 => 'L',
+ 12812 => 'L',
+ 12813 => 'L',
+ 12814 => 'L',
+ 12815 => 'L',
+ 12816 => 'L',
+ 12817 => 'L',
+ 12818 => 'L',
+ 12819 => 'L',
+ 12820 => 'L',
+ 12821 => 'L',
+ 12822 => 'L',
+ 12823 => 'L',
+ 12824 => 'L',
+ 12825 => 'L',
+ 12826 => 'L',
+ 12827 => 'L',
+ 12828 => 'L',
+ 12829 => 'ON',
+ 12830 => 'ON',
+ 12832 => 'L',
+ 12833 => 'L',
+ 12834 => 'L',
+ 12835 => 'L',
+ 12836 => 'L',
+ 12837 => 'L',
+ 12838 => 'L',
+ 12839 => 'L',
+ 12840 => 'L',
+ 12841 => 'L',
+ 12842 => 'L',
+ 12843 => 'L',
+ 12844 => 'L',
+ 12845 => 'L',
+ 12846 => 'L',
+ 12847 => 'L',
+ 12848 => 'L',
+ 12849 => 'L',
+ 12850 => 'L',
+ 12851 => 'L',
+ 12852 => 'L',
+ 12853 => 'L',
+ 12854 => 'L',
+ 12855 => 'L',
+ 12856 => 'L',
+ 12857 => 'L',
+ 12858 => 'L',
+ 12859 => 'L',
+ 12860 => 'L',
+ 12861 => 'L',
+ 12862 => 'L',
+ 12863 => 'L',
+ 12864 => 'L',
+ 12865 => 'L',
+ 12866 => 'L',
+ 12867 => 'L',
+ 12880 => 'ON',
+ 12881 => 'ON',
+ 12882 => 'ON',
+ 12883 => 'ON',
+ 12884 => 'ON',
+ 12885 => 'ON',
+ 12886 => 'ON',
+ 12887 => 'ON',
+ 12888 => 'ON',
+ 12889 => 'ON',
+ 12890 => 'ON',
+ 12891 => 'ON',
+ 12892 => 'ON',
+ 12893 => 'ON',
+ 12894 => 'ON',
+ 12895 => 'ON',
+ 12896 => 'L',
+ 12897 => 'L',
+ 12898 => 'L',
+ 12899 => 'L',
+ 12900 => 'L',
+ 12901 => 'L',
+ 12902 => 'L',
+ 12903 => 'L',
+ 12904 => 'L',
+ 12905 => 'L',
+ 12906 => 'L',
+ 12907 => 'L',
+ 12908 => 'L',
+ 12909 => 'L',
+ 12910 => 'L',
+ 12911 => 'L',
+ 12912 => 'L',
+ 12913 => 'L',
+ 12914 => 'L',
+ 12915 => 'L',
+ 12916 => 'L',
+ 12917 => 'L',
+ 12918 => 'L',
+ 12919 => 'L',
+ 12920 => 'L',
+ 12921 => 'L',
+ 12922 => 'L',
+ 12923 => 'L',
+ 12924 => 'ON',
+ 12925 => 'ON',
+ 12926 => 'ON',
+ 12927 => 'L',
+ 12928 => 'L',
+ 12929 => 'L',
+ 12930 => 'L',
+ 12931 => 'L',
+ 12932 => 'L',
+ 12933 => 'L',
+ 12934 => 'L',
+ 12935 => 'L',
+ 12936 => 'L',
+ 12937 => 'L',
+ 12938 => 'L',
+ 12939 => 'L',
+ 12940 => 'L',
+ 12941 => 'L',
+ 12942 => 'L',
+ 12943 => 'L',
+ 12944 => 'L',
+ 12945 => 'L',
+ 12946 => 'L',
+ 12947 => 'L',
+ 12948 => 'L',
+ 12949 => 'L',
+ 12950 => 'L',
+ 12951 => 'L',
+ 12952 => 'L',
+ 12953 => 'L',
+ 12954 => 'L',
+ 12955 => 'L',
+ 12956 => 'L',
+ 12957 => 'L',
+ 12958 => 'L',
+ 12959 => 'L',
+ 12960 => 'L',
+ 12961 => 'L',
+ 12962 => 'L',
+ 12963 => 'L',
+ 12964 => 'L',
+ 12965 => 'L',
+ 12966 => 'L',
+ 12967 => 'L',
+ 12968 => 'L',
+ 12969 => 'L',
+ 12970 => 'L',
+ 12971 => 'L',
+ 12972 => 'L',
+ 12973 => 'L',
+ 12974 => 'L',
+ 12975 => 'L',
+ 12976 => 'L',
+ 12977 => 'ON',
+ 12978 => 'ON',
+ 12979 => 'ON',
+ 12980 => 'ON',
+ 12981 => 'ON',
+ 12982 => 'ON',
+ 12983 => 'ON',
+ 12984 => 'ON',
+ 12985 => 'ON',
+ 12986 => 'ON',
+ 12987 => 'ON',
+ 12988 => 'ON',
+ 12989 => 'ON',
+ 12990 => 'ON',
+ 12991 => 'ON',
+ 12992 => 'L',
+ 12993 => 'L',
+ 12994 => 'L',
+ 12995 => 'L',
+ 12996 => 'L',
+ 12997 => 'L',
+ 12998 => 'L',
+ 12999 => 'L',
+ 13000 => 'L',
+ 13001 => 'L',
+ 13002 => 'L',
+ 13003 => 'L',
+ 13004 => 'ON',
+ 13005 => 'ON',
+ 13006 => 'ON',
+ 13007 => 'ON',
+ 13008 => 'L',
+ 13009 => 'L',
+ 13010 => 'L',
+ 13011 => 'L',
+ 13012 => 'L',
+ 13013 => 'L',
+ 13014 => 'L',
+ 13015 => 'L',
+ 13016 => 'L',
+ 13017 => 'L',
+ 13018 => 'L',
+ 13019 => 'L',
+ 13020 => 'L',
+ 13021 => 'L',
+ 13022 => 'L',
+ 13023 => 'L',
+ 13024 => 'L',
+ 13025 => 'L',
+ 13026 => 'L',
+ 13027 => 'L',
+ 13028 => 'L',
+ 13029 => 'L',
+ 13030 => 'L',
+ 13031 => 'L',
+ 13032 => 'L',
+ 13033 => 'L',
+ 13034 => 'L',
+ 13035 => 'L',
+ 13036 => 'L',
+ 13037 => 'L',
+ 13038 => 'L',
+ 13039 => 'L',
+ 13040 => 'L',
+ 13041 => 'L',
+ 13042 => 'L',
+ 13043 => 'L',
+ 13044 => 'L',
+ 13045 => 'L',
+ 13046 => 'L',
+ 13047 => 'L',
+ 13048 => 'L',
+ 13049 => 'L',
+ 13050 => 'L',
+ 13051 => 'L',
+ 13052 => 'L',
+ 13053 => 'L',
+ 13054 => 'L',
+ 13056 => 'L',
+ 13057 => 'L',
+ 13058 => 'L',
+ 13059 => 'L',
+ 13060 => 'L',
+ 13061 => 'L',
+ 13062 => 'L',
+ 13063 => 'L',
+ 13064 => 'L',
+ 13065 => 'L',
+ 13066 => 'L',
+ 13067 => 'L',
+ 13068 => 'L',
+ 13069 => 'L',
+ 13070 => 'L',
+ 13071 => 'L',
+ 13072 => 'L',
+ 13073 => 'L',
+ 13074 => 'L',
+ 13075 => 'L',
+ 13076 => 'L',
+ 13077 => 'L',
+ 13078 => 'L',
+ 13079 => 'L',
+ 13080 => 'L',
+ 13081 => 'L',
+ 13082 => 'L',
+ 13083 => 'L',
+ 13084 => 'L',
+ 13085 => 'L',
+ 13086 => 'L',
+ 13087 => 'L',
+ 13088 => 'L',
+ 13089 => 'L',
+ 13090 => 'L',
+ 13091 => 'L',
+ 13092 => 'L',
+ 13093 => 'L',
+ 13094 => 'L',
+ 13095 => 'L',
+ 13096 => 'L',
+ 13097 => 'L',
+ 13098 => 'L',
+ 13099 => 'L',
+ 13100 => 'L',
+ 13101 => 'L',
+ 13102 => 'L',
+ 13103 => 'L',
+ 13104 => 'L',
+ 13105 => 'L',
+ 13106 => 'L',
+ 13107 => 'L',
+ 13108 => 'L',
+ 13109 => 'L',
+ 13110 => 'L',
+ 13111 => 'L',
+ 13112 => 'L',
+ 13113 => 'L',
+ 13114 => 'L',
+ 13115 => 'L',
+ 13116 => 'L',
+ 13117 => 'L',
+ 13118 => 'L',
+ 13119 => 'L',
+ 13120 => 'L',
+ 13121 => 'L',
+ 13122 => 'L',
+ 13123 => 'L',
+ 13124 => 'L',
+ 13125 => 'L',
+ 13126 => 'L',
+ 13127 => 'L',
+ 13128 => 'L',
+ 13129 => 'L',
+ 13130 => 'L',
+ 13131 => 'L',
+ 13132 => 'L',
+ 13133 => 'L',
+ 13134 => 'L',
+ 13135 => 'L',
+ 13136 => 'L',
+ 13137 => 'L',
+ 13138 => 'L',
+ 13139 => 'L',
+ 13140 => 'L',
+ 13141 => 'L',
+ 13142 => 'L',
+ 13143 => 'L',
+ 13144 => 'L',
+ 13145 => 'L',
+ 13146 => 'L',
+ 13147 => 'L',
+ 13148 => 'L',
+ 13149 => 'L',
+ 13150 => 'L',
+ 13151 => 'L',
+ 13152 => 'L',
+ 13153 => 'L',
+ 13154 => 'L',
+ 13155 => 'L',
+ 13156 => 'L',
+ 13157 => 'L',
+ 13158 => 'L',
+ 13159 => 'L',
+ 13160 => 'L',
+ 13161 => 'L',
+ 13162 => 'L',
+ 13163 => 'L',
+ 13164 => 'L',
+ 13165 => 'L',
+ 13166 => 'L',
+ 13167 => 'L',
+ 13168 => 'L',
+ 13169 => 'L',
+ 13170 => 'L',
+ 13171 => 'L',
+ 13172 => 'L',
+ 13173 => 'L',
+ 13174 => 'L',
+ 13175 => 'ON',
+ 13176 => 'ON',
+ 13177 => 'ON',
+ 13178 => 'ON',
+ 13179 => 'L',
+ 13180 => 'L',
+ 13181 => 'L',
+ 13182 => 'L',
+ 13183 => 'L',
+ 13184 => 'L',
+ 13185 => 'L',
+ 13186 => 'L',
+ 13187 => 'L',
+ 13188 => 'L',
+ 13189 => 'L',
+ 13190 => 'L',
+ 13191 => 'L',
+ 13192 => 'L',
+ 13193 => 'L',
+ 13194 => 'L',
+ 13195 => 'L',
+ 13196 => 'L',
+ 13197 => 'L',
+ 13198 => 'L',
+ 13199 => 'L',
+ 13200 => 'L',
+ 13201 => 'L',
+ 13202 => 'L',
+ 13203 => 'L',
+ 13204 => 'L',
+ 13205 => 'L',
+ 13206 => 'L',
+ 13207 => 'L',
+ 13208 => 'L',
+ 13209 => 'L',
+ 13210 => 'L',
+ 13211 => 'L',
+ 13212 => 'L',
+ 13213 => 'L',
+ 13214 => 'L',
+ 13215 => 'L',
+ 13216 => 'L',
+ 13217 => 'L',
+ 13218 => 'L',
+ 13219 => 'L',
+ 13220 => 'L',
+ 13221 => 'L',
+ 13222 => 'L',
+ 13223 => 'L',
+ 13224 => 'L',
+ 13225 => 'L',
+ 13226 => 'L',
+ 13227 => 'L',
+ 13228 => 'L',
+ 13229 => 'L',
+ 13230 => 'L',
+ 13231 => 'L',
+ 13232 => 'L',
+ 13233 => 'L',
+ 13234 => 'L',
+ 13235 => 'L',
+ 13236 => 'L',
+ 13237 => 'L',
+ 13238 => 'L',
+ 13239 => 'L',
+ 13240 => 'L',
+ 13241 => 'L',
+ 13242 => 'L',
+ 13243 => 'L',
+ 13244 => 'L',
+ 13245 => 'L',
+ 13246 => 'L',
+ 13247 => 'L',
+ 13248 => 'L',
+ 13249 => 'L',
+ 13250 => 'L',
+ 13251 => 'L',
+ 13252 => 'L',
+ 13253 => 'L',
+ 13254 => 'L',
+ 13255 => 'L',
+ 13256 => 'L',
+ 13257 => 'L',
+ 13258 => 'L',
+ 13259 => 'L',
+ 13260 => 'L',
+ 13261 => 'L',
+ 13262 => 'L',
+ 13263 => 'L',
+ 13264 => 'L',
+ 13265 => 'L',
+ 13266 => 'L',
+ 13267 => 'L',
+ 13268 => 'L',
+ 13269 => 'L',
+ 13270 => 'L',
+ 13271 => 'L',
+ 13272 => 'L',
+ 13273 => 'L',
+ 13274 => 'L',
+ 13275 => 'L',
+ 13276 => 'L',
+ 13277 => 'L',
+ 13278 => 'ON',
+ 13279 => 'ON',
+ 13280 => 'L',
+ 13281 => 'L',
+ 13282 => 'L',
+ 13283 => 'L',
+ 13284 => 'L',
+ 13285 => 'L',
+ 13286 => 'L',
+ 13287 => 'L',
+ 13288 => 'L',
+ 13289 => 'L',
+ 13290 => 'L',
+ 13291 => 'L',
+ 13292 => 'L',
+ 13293 => 'L',
+ 13294 => 'L',
+ 13295 => 'L',
+ 13296 => 'L',
+ 13297 => 'L',
+ 13298 => 'L',
+ 13299 => 'L',
+ 13300 => 'L',
+ 13301 => 'L',
+ 13302 => 'L',
+ 13303 => 'L',
+ 13304 => 'L',
+ 13305 => 'L',
+ 13306 => 'L',
+ 13307 => 'L',
+ 13308 => 'L',
+ 13309 => 'L',
+ 13310 => 'L',
+ 13311 => 'ON',
+ 13312 => 'L',
+ 19893 => 'L',
+ 19904 => 'ON',
+ 19905 => 'ON',
+ 19906 => 'ON',
+ 19907 => 'ON',
+ 19908 => 'ON',
+ 19909 => 'ON',
+ 19910 => 'ON',
+ 19911 => 'ON',
+ 19912 => 'ON',
+ 19913 => 'ON',
+ 19914 => 'ON',
+ 19915 => 'ON',
+ 19916 => 'ON',
+ 19917 => 'ON',
+ 19918 => 'ON',
+ 19919 => 'ON',
+ 19920 => 'ON',
+ 19921 => 'ON',
+ 19922 => 'ON',
+ 19923 => 'ON',
+ 19924 => 'ON',
+ 19925 => 'ON',
+ 19926 => 'ON',
+ 19927 => 'ON',
+ 19928 => 'ON',
+ 19929 => 'ON',
+ 19930 => 'ON',
+ 19931 => 'ON',
+ 19932 => 'ON',
+ 19933 => 'ON',
+ 19934 => 'ON',
+ 19935 => 'ON',
+ 19936 => 'ON',
+ 19937 => 'ON',
+ 19938 => 'ON',
+ 19939 => 'ON',
+ 19940 => 'ON',
+ 19941 => 'ON',
+ 19942 => 'ON',
+ 19943 => 'ON',
+ 19944 => 'ON',
+ 19945 => 'ON',
+ 19946 => 'ON',
+ 19947 => 'ON',
+ 19948 => 'ON',
+ 19949 => 'ON',
+ 19950 => 'ON',
+ 19951 => 'ON',
+ 19952 => 'ON',
+ 19953 => 'ON',
+ 19954 => 'ON',
+ 19955 => 'ON',
+ 19956 => 'ON',
+ 19957 => 'ON',
+ 19958 => 'ON',
+ 19959 => 'ON',
+ 19960 => 'ON',
+ 19961 => 'ON',
+ 19962 => 'ON',
+ 19963 => 'ON',
+ 19964 => 'ON',
+ 19965 => 'ON',
+ 19966 => 'ON',
+ 19967 => 'ON',
+ 19968 => 'L',
+ 40891 => 'L',
+ 40960 => 'L',
+ 40961 => 'L',
+ 40962 => 'L',
+ 40963 => 'L',
+ 40964 => 'L',
+ 40965 => 'L',
+ 40966 => 'L',
+ 40967 => 'L',
+ 40968 => 'L',
+ 40969 => 'L',
+ 40970 => 'L',
+ 40971 => 'L',
+ 40972 => 'L',
+ 40973 => 'L',
+ 40974 => 'L',
+ 40975 => 'L',
+ 40976 => 'L',
+ 40977 => 'L',
+ 40978 => 'L',
+ 40979 => 'L',
+ 40980 => 'L',
+ 40981 => 'L',
+ 40982 => 'L',
+ 40983 => 'L',
+ 40984 => 'L',
+ 40985 => 'L',
+ 40986 => 'L',
+ 40987 => 'L',
+ 40988 => 'L',
+ 40989 => 'L',
+ 40990 => 'L',
+ 40991 => 'L',
+ 40992 => 'L',
+ 40993 => 'L',
+ 40994 => 'L',
+ 40995 => 'L',
+ 40996 => 'L',
+ 40997 => 'L',
+ 40998 => 'L',
+ 40999 => 'L',
+ 41000 => 'L',
+ 41001 => 'L',
+ 41002 => 'L',
+ 41003 => 'L',
+ 41004 => 'L',
+ 41005 => 'L',
+ 41006 => 'L',
+ 41007 => 'L',
+ 41008 => 'L',
+ 41009 => 'L',
+ 41010 => 'L',
+ 41011 => 'L',
+ 41012 => 'L',
+ 41013 => 'L',
+ 41014 => 'L',
+ 41015 => 'L',
+ 41016 => 'L',
+ 41017 => 'L',
+ 41018 => 'L',
+ 41019 => 'L',
+ 41020 => 'L',
+ 41021 => 'L',
+ 41022 => 'L',
+ 41023 => 'L',
+ 41024 => 'L',
+ 41025 => 'L',
+ 41026 => 'L',
+ 41027 => 'L',
+ 41028 => 'L',
+ 41029 => 'L',
+ 41030 => 'L',
+ 41031 => 'L',
+ 41032 => 'L',
+ 41033 => 'L',
+ 41034 => 'L',
+ 41035 => 'L',
+ 41036 => 'L',
+ 41037 => 'L',
+ 41038 => 'L',
+ 41039 => 'L',
+ 41040 => 'L',
+ 41041 => 'L',
+ 41042 => 'L',
+ 41043 => 'L',
+ 41044 => 'L',
+ 41045 => 'L',
+ 41046 => 'L',
+ 41047 => 'L',
+ 41048 => 'L',
+ 41049 => 'L',
+ 41050 => 'L',
+ 41051 => 'L',
+ 41052 => 'L',
+ 41053 => 'L',
+ 41054 => 'L',
+ 41055 => 'L',
+ 41056 => 'L',
+ 41057 => 'L',
+ 41058 => 'L',
+ 41059 => 'L',
+ 41060 => 'L',
+ 41061 => 'L',
+ 41062 => 'L',
+ 41063 => 'L',
+ 41064 => 'L',
+ 41065 => 'L',
+ 41066 => 'L',
+ 41067 => 'L',
+ 41068 => 'L',
+ 41069 => 'L',
+ 41070 => 'L',
+ 41071 => 'L',
+ 41072 => 'L',
+ 41073 => 'L',
+ 41074 => 'L',
+ 41075 => 'L',
+ 41076 => 'L',
+ 41077 => 'L',
+ 41078 => 'L',
+ 41079 => 'L',
+ 41080 => 'L',
+ 41081 => 'L',
+ 41082 => 'L',
+ 41083 => 'L',
+ 41084 => 'L',
+ 41085 => 'L',
+ 41086 => 'L',
+ 41087 => 'L',
+ 41088 => 'L',
+ 41089 => 'L',
+ 41090 => 'L',
+ 41091 => 'L',
+ 41092 => 'L',
+ 41093 => 'L',
+ 41094 => 'L',
+ 41095 => 'L',
+ 41096 => 'L',
+ 41097 => 'L',
+ 41098 => 'L',
+ 41099 => 'L',
+ 41100 => 'L',
+ 41101 => 'L',
+ 41102 => 'L',
+ 41103 => 'L',
+ 41104 => 'L',
+ 41105 => 'L',
+ 41106 => 'L',
+ 41107 => 'L',
+ 41108 => 'L',
+ 41109 => 'L',
+ 41110 => 'L',
+ 41111 => 'L',
+ 41112 => 'L',
+ 41113 => 'L',
+ 41114 => 'L',
+ 41115 => 'L',
+ 41116 => 'L',
+ 41117 => 'L',
+ 41118 => 'L',
+ 41119 => 'L',
+ 41120 => 'L',
+ 41121 => 'L',
+ 41122 => 'L',
+ 41123 => 'L',
+ 41124 => 'L',
+ 41125 => 'L',
+ 41126 => 'L',
+ 41127 => 'L',
+ 41128 => 'L',
+ 41129 => 'L',
+ 41130 => 'L',
+ 41131 => 'L',
+ 41132 => 'L',
+ 41133 => 'L',
+ 41134 => 'L',
+ 41135 => 'L',
+ 41136 => 'L',
+ 41137 => 'L',
+ 41138 => 'L',
+ 41139 => 'L',
+ 41140 => 'L',
+ 41141 => 'L',
+ 41142 => 'L',
+ 41143 => 'L',
+ 41144 => 'L',
+ 41145 => 'L',
+ 41146 => 'L',
+ 41147 => 'L',
+ 41148 => 'L',
+ 41149 => 'L',
+ 41150 => 'L',
+ 41151 => 'L',
+ 41152 => 'L',
+ 41153 => 'L',
+ 41154 => 'L',
+ 41155 => 'L',
+ 41156 => 'L',
+ 41157 => 'L',
+ 41158 => 'L',
+ 41159 => 'L',
+ 41160 => 'L',
+ 41161 => 'L',
+ 41162 => 'L',
+ 41163 => 'L',
+ 41164 => 'L',
+ 41165 => 'L',
+ 41166 => 'L',
+ 41167 => 'L',
+ 41168 => 'L',
+ 41169 => 'L',
+ 41170 => 'L',
+ 41171 => 'L',
+ 41172 => 'L',
+ 41173 => 'L',
+ 41174 => 'L',
+ 41175 => 'L',
+ 41176 => 'L',
+ 41177 => 'L',
+ 41178 => 'L',
+ 41179 => 'L',
+ 41180 => 'L',
+ 41181 => 'L',
+ 41182 => 'L',
+ 41183 => 'L',
+ 41184 => 'L',
+ 41185 => 'L',
+ 41186 => 'L',
+ 41187 => 'L',
+ 41188 => 'L',
+ 41189 => 'L',
+ 41190 => 'L',
+ 41191 => 'L',
+ 41192 => 'L',
+ 41193 => 'L',
+ 41194 => 'L',
+ 41195 => 'L',
+ 41196 => 'L',
+ 41197 => 'L',
+ 41198 => 'L',
+ 41199 => 'L',
+ 41200 => 'L',
+ 41201 => 'L',
+ 41202 => 'L',
+ 41203 => 'L',
+ 41204 => 'L',
+ 41205 => 'L',
+ 41206 => 'L',
+ 41207 => 'L',
+ 41208 => 'L',
+ 41209 => 'L',
+ 41210 => 'L',
+ 41211 => 'L',
+ 41212 => 'L',
+ 41213 => 'L',
+ 41214 => 'L',
+ 41215 => 'L',
+ 41216 => 'L',
+ 41217 => 'L',
+ 41218 => 'L',
+ 41219 => 'L',
+ 41220 => 'L',
+ 41221 => 'L',
+ 41222 => 'L',
+ 41223 => 'L',
+ 41224 => 'L',
+ 41225 => 'L',
+ 41226 => 'L',
+ 41227 => 'L',
+ 41228 => 'L',
+ 41229 => 'L',
+ 41230 => 'L',
+ 41231 => 'L',
+ 41232 => 'L',
+ 41233 => 'L',
+ 41234 => 'L',
+ 41235 => 'L',
+ 41236 => 'L',
+ 41237 => 'L',
+ 41238 => 'L',
+ 41239 => 'L',
+ 41240 => 'L',
+ 41241 => 'L',
+ 41242 => 'L',
+ 41243 => 'L',
+ 41244 => 'L',
+ 41245 => 'L',
+ 41246 => 'L',
+ 41247 => 'L',
+ 41248 => 'L',
+ 41249 => 'L',
+ 41250 => 'L',
+ 41251 => 'L',
+ 41252 => 'L',
+ 41253 => 'L',
+ 41254 => 'L',
+ 41255 => 'L',
+ 41256 => 'L',
+ 41257 => 'L',
+ 41258 => 'L',
+ 41259 => 'L',
+ 41260 => 'L',
+ 41261 => 'L',
+ 41262 => 'L',
+ 41263 => 'L',
+ 41264 => 'L',
+ 41265 => 'L',
+ 41266 => 'L',
+ 41267 => 'L',
+ 41268 => 'L',
+ 41269 => 'L',
+ 41270 => 'L',
+ 41271 => 'L',
+ 41272 => 'L',
+ 41273 => 'L',
+ 41274 => 'L',
+ 41275 => 'L',
+ 41276 => 'L',
+ 41277 => 'L',
+ 41278 => 'L',
+ 41279 => 'L',
+ 41280 => 'L',
+ 41281 => 'L',
+ 41282 => 'L',
+ 41283 => 'L',
+ 41284 => 'L',
+ 41285 => 'L',
+ 41286 => 'L',
+ 41287 => 'L',
+ 41288 => 'L',
+ 41289 => 'L',
+ 41290 => 'L',
+ 41291 => 'L',
+ 41292 => 'L',
+ 41293 => 'L',
+ 41294 => 'L',
+ 41295 => 'L',
+ 41296 => 'L',
+ 41297 => 'L',
+ 41298 => 'L',
+ 41299 => 'L',
+ 41300 => 'L',
+ 41301 => 'L',
+ 41302 => 'L',
+ 41303 => 'L',
+ 41304 => 'L',
+ 41305 => 'L',
+ 41306 => 'L',
+ 41307 => 'L',
+ 41308 => 'L',
+ 41309 => 'L',
+ 41310 => 'L',
+ 41311 => 'L',
+ 41312 => 'L',
+ 41313 => 'L',
+ 41314 => 'L',
+ 41315 => 'L',
+ 41316 => 'L',
+ 41317 => 'L',
+ 41318 => 'L',
+ 41319 => 'L',
+ 41320 => 'L',
+ 41321 => 'L',
+ 41322 => 'L',
+ 41323 => 'L',
+ 41324 => 'L',
+ 41325 => 'L',
+ 41326 => 'L',
+ 41327 => 'L',
+ 41328 => 'L',
+ 41329 => 'L',
+ 41330 => 'L',
+ 41331 => 'L',
+ 41332 => 'L',
+ 41333 => 'L',
+ 41334 => 'L',
+ 41335 => 'L',
+ 41336 => 'L',
+ 41337 => 'L',
+ 41338 => 'L',
+ 41339 => 'L',
+ 41340 => 'L',
+ 41341 => 'L',
+ 41342 => 'L',
+ 41343 => 'L',
+ 41344 => 'L',
+ 41345 => 'L',
+ 41346 => 'L',
+ 41347 => 'L',
+ 41348 => 'L',
+ 41349 => 'L',
+ 41350 => 'L',
+ 41351 => 'L',
+ 41352 => 'L',
+ 41353 => 'L',
+ 41354 => 'L',
+ 41355 => 'L',
+ 41356 => 'L',
+ 41357 => 'L',
+ 41358 => 'L',
+ 41359 => 'L',
+ 41360 => 'L',
+ 41361 => 'L',
+ 41362 => 'L',
+ 41363 => 'L',
+ 41364 => 'L',
+ 41365 => 'L',
+ 41366 => 'L',
+ 41367 => 'L',
+ 41368 => 'L',
+ 41369 => 'L',
+ 41370 => 'L',
+ 41371 => 'L',
+ 41372 => 'L',
+ 41373 => 'L',
+ 41374 => 'L',
+ 41375 => 'L',
+ 41376 => 'L',
+ 41377 => 'L',
+ 41378 => 'L',
+ 41379 => 'L',
+ 41380 => 'L',
+ 41381 => 'L',
+ 41382 => 'L',
+ 41383 => 'L',
+ 41384 => 'L',
+ 41385 => 'L',
+ 41386 => 'L',
+ 41387 => 'L',
+ 41388 => 'L',
+ 41389 => 'L',
+ 41390 => 'L',
+ 41391 => 'L',
+ 41392 => 'L',
+ 41393 => 'L',
+ 41394 => 'L',
+ 41395 => 'L',
+ 41396 => 'L',
+ 41397 => 'L',
+ 41398 => 'L',
+ 41399 => 'L',
+ 41400 => 'L',
+ 41401 => 'L',
+ 41402 => 'L',
+ 41403 => 'L',
+ 41404 => 'L',
+ 41405 => 'L',
+ 41406 => 'L',
+ 41407 => 'L',
+ 41408 => 'L',
+ 41409 => 'L',
+ 41410 => 'L',
+ 41411 => 'L',
+ 41412 => 'L',
+ 41413 => 'L',
+ 41414 => 'L',
+ 41415 => 'L',
+ 41416 => 'L',
+ 41417 => 'L',
+ 41418 => 'L',
+ 41419 => 'L',
+ 41420 => 'L',
+ 41421 => 'L',
+ 41422 => 'L',
+ 41423 => 'L',
+ 41424 => 'L',
+ 41425 => 'L',
+ 41426 => 'L',
+ 41427 => 'L',
+ 41428 => 'L',
+ 41429 => 'L',
+ 41430 => 'L',
+ 41431 => 'L',
+ 41432 => 'L',
+ 41433 => 'L',
+ 41434 => 'L',
+ 41435 => 'L',
+ 41436 => 'L',
+ 41437 => 'L',
+ 41438 => 'L',
+ 41439 => 'L',
+ 41440 => 'L',
+ 41441 => 'L',
+ 41442 => 'L',
+ 41443 => 'L',
+ 41444 => 'L',
+ 41445 => 'L',
+ 41446 => 'L',
+ 41447 => 'L',
+ 41448 => 'L',
+ 41449 => 'L',
+ 41450 => 'L',
+ 41451 => 'L',
+ 41452 => 'L',
+ 41453 => 'L',
+ 41454 => 'L',
+ 41455 => 'L',
+ 41456 => 'L',
+ 41457 => 'L',
+ 41458 => 'L',
+ 41459 => 'L',
+ 41460 => 'L',
+ 41461 => 'L',
+ 41462 => 'L',
+ 41463 => 'L',
+ 41464 => 'L',
+ 41465 => 'L',
+ 41466 => 'L',
+ 41467 => 'L',
+ 41468 => 'L',
+ 41469 => 'L',
+ 41470 => 'L',
+ 41471 => 'L',
+ 41472 => 'L',
+ 41473 => 'L',
+ 41474 => 'L',
+ 41475 => 'L',
+ 41476 => 'L',
+ 41477 => 'L',
+ 41478 => 'L',
+ 41479 => 'L',
+ 41480 => 'L',
+ 41481 => 'L',
+ 41482 => 'L',
+ 41483 => 'L',
+ 41484 => 'L',
+ 41485 => 'L',
+ 41486 => 'L',
+ 41487 => 'L',
+ 41488 => 'L',
+ 41489 => 'L',
+ 41490 => 'L',
+ 41491 => 'L',
+ 41492 => 'L',
+ 41493 => 'L',
+ 41494 => 'L',
+ 41495 => 'L',
+ 41496 => 'L',
+ 41497 => 'L',
+ 41498 => 'L',
+ 41499 => 'L',
+ 41500 => 'L',
+ 41501 => 'L',
+ 41502 => 'L',
+ 41503 => 'L',
+ 41504 => 'L',
+ 41505 => 'L',
+ 41506 => 'L',
+ 41507 => 'L',
+ 41508 => 'L',
+ 41509 => 'L',
+ 41510 => 'L',
+ 41511 => 'L',
+ 41512 => 'L',
+ 41513 => 'L',
+ 41514 => 'L',
+ 41515 => 'L',
+ 41516 => 'L',
+ 41517 => 'L',
+ 41518 => 'L',
+ 41519 => 'L',
+ 41520 => 'L',
+ 41521 => 'L',
+ 41522 => 'L',
+ 41523 => 'L',
+ 41524 => 'L',
+ 41525 => 'L',
+ 41526 => 'L',
+ 41527 => 'L',
+ 41528 => 'L',
+ 41529 => 'L',
+ 41530 => 'L',
+ 41531 => 'L',
+ 41532 => 'L',
+ 41533 => 'L',
+ 41534 => 'L',
+ 41535 => 'L',
+ 41536 => 'L',
+ 41537 => 'L',
+ 41538 => 'L',
+ 41539 => 'L',
+ 41540 => 'L',
+ 41541 => 'L',
+ 41542 => 'L',
+ 41543 => 'L',
+ 41544 => 'L',
+ 41545 => 'L',
+ 41546 => 'L',
+ 41547 => 'L',
+ 41548 => 'L',
+ 41549 => 'L',
+ 41550 => 'L',
+ 41551 => 'L',
+ 41552 => 'L',
+ 41553 => 'L',
+ 41554 => 'L',
+ 41555 => 'L',
+ 41556 => 'L',
+ 41557 => 'L',
+ 41558 => 'L',
+ 41559 => 'L',
+ 41560 => 'L',
+ 41561 => 'L',
+ 41562 => 'L',
+ 41563 => 'L',
+ 41564 => 'L',
+ 41565 => 'L',
+ 41566 => 'L',
+ 41567 => 'L',
+ 41568 => 'L',
+ 41569 => 'L',
+ 41570 => 'L',
+ 41571 => 'L',
+ 41572 => 'L',
+ 41573 => 'L',
+ 41574 => 'L',
+ 41575 => 'L',
+ 41576 => 'L',
+ 41577 => 'L',
+ 41578 => 'L',
+ 41579 => 'L',
+ 41580 => 'L',
+ 41581 => 'L',
+ 41582 => 'L',
+ 41583 => 'L',
+ 41584 => 'L',
+ 41585 => 'L',
+ 41586 => 'L',
+ 41587 => 'L',
+ 41588 => 'L',
+ 41589 => 'L',
+ 41590 => 'L',
+ 41591 => 'L',
+ 41592 => 'L',
+ 41593 => 'L',
+ 41594 => 'L',
+ 41595 => 'L',
+ 41596 => 'L',
+ 41597 => 'L',
+ 41598 => 'L',
+ 41599 => 'L',
+ 41600 => 'L',
+ 41601 => 'L',
+ 41602 => 'L',
+ 41603 => 'L',
+ 41604 => 'L',
+ 41605 => 'L',
+ 41606 => 'L',
+ 41607 => 'L',
+ 41608 => 'L',
+ 41609 => 'L',
+ 41610 => 'L',
+ 41611 => 'L',
+ 41612 => 'L',
+ 41613 => 'L',
+ 41614 => 'L',
+ 41615 => 'L',
+ 41616 => 'L',
+ 41617 => 'L',
+ 41618 => 'L',
+ 41619 => 'L',
+ 41620 => 'L',
+ 41621 => 'L',
+ 41622 => 'L',
+ 41623 => 'L',
+ 41624 => 'L',
+ 41625 => 'L',
+ 41626 => 'L',
+ 41627 => 'L',
+ 41628 => 'L',
+ 41629 => 'L',
+ 41630 => 'L',
+ 41631 => 'L',
+ 41632 => 'L',
+ 41633 => 'L',
+ 41634 => 'L',
+ 41635 => 'L',
+ 41636 => 'L',
+ 41637 => 'L',
+ 41638 => 'L',
+ 41639 => 'L',
+ 41640 => 'L',
+ 41641 => 'L',
+ 41642 => 'L',
+ 41643 => 'L',
+ 41644 => 'L',
+ 41645 => 'L',
+ 41646 => 'L',
+ 41647 => 'L',
+ 41648 => 'L',
+ 41649 => 'L',
+ 41650 => 'L',
+ 41651 => 'L',
+ 41652 => 'L',
+ 41653 => 'L',
+ 41654 => 'L',
+ 41655 => 'L',
+ 41656 => 'L',
+ 41657 => 'L',
+ 41658 => 'L',
+ 41659 => 'L',
+ 41660 => 'L',
+ 41661 => 'L',
+ 41662 => 'L',
+ 41663 => 'L',
+ 41664 => 'L',
+ 41665 => 'L',
+ 41666 => 'L',
+ 41667 => 'L',
+ 41668 => 'L',
+ 41669 => 'L',
+ 41670 => 'L',
+ 41671 => 'L',
+ 41672 => 'L',
+ 41673 => 'L',
+ 41674 => 'L',
+ 41675 => 'L',
+ 41676 => 'L',
+ 41677 => 'L',
+ 41678 => 'L',
+ 41679 => 'L',
+ 41680 => 'L',
+ 41681 => 'L',
+ 41682 => 'L',
+ 41683 => 'L',
+ 41684 => 'L',
+ 41685 => 'L',
+ 41686 => 'L',
+ 41687 => 'L',
+ 41688 => 'L',
+ 41689 => 'L',
+ 41690 => 'L',
+ 41691 => 'L',
+ 41692 => 'L',
+ 41693 => 'L',
+ 41694 => 'L',
+ 41695 => 'L',
+ 41696 => 'L',
+ 41697 => 'L',
+ 41698 => 'L',
+ 41699 => 'L',
+ 41700 => 'L',
+ 41701 => 'L',
+ 41702 => 'L',
+ 41703 => 'L',
+ 41704 => 'L',
+ 41705 => 'L',
+ 41706 => 'L',
+ 41707 => 'L',
+ 41708 => 'L',
+ 41709 => 'L',
+ 41710 => 'L',
+ 41711 => 'L',
+ 41712 => 'L',
+ 41713 => 'L',
+ 41714 => 'L',
+ 41715 => 'L',
+ 41716 => 'L',
+ 41717 => 'L',
+ 41718 => 'L',
+ 41719 => 'L',
+ 41720 => 'L',
+ 41721 => 'L',
+ 41722 => 'L',
+ 41723 => 'L',
+ 41724 => 'L',
+ 41725 => 'L',
+ 41726 => 'L',
+ 41727 => 'L',
+ 41728 => 'L',
+ 41729 => 'L',
+ 41730 => 'L',
+ 41731 => 'L',
+ 41732 => 'L',
+ 41733 => 'L',
+ 41734 => 'L',
+ 41735 => 'L',
+ 41736 => 'L',
+ 41737 => 'L',
+ 41738 => 'L',
+ 41739 => 'L',
+ 41740 => 'L',
+ 41741 => 'L',
+ 41742 => 'L',
+ 41743 => 'L',
+ 41744 => 'L',
+ 41745 => 'L',
+ 41746 => 'L',
+ 41747 => 'L',
+ 41748 => 'L',
+ 41749 => 'L',
+ 41750 => 'L',
+ 41751 => 'L',
+ 41752 => 'L',
+ 41753 => 'L',
+ 41754 => 'L',
+ 41755 => 'L',
+ 41756 => 'L',
+ 41757 => 'L',
+ 41758 => 'L',
+ 41759 => 'L',
+ 41760 => 'L',
+ 41761 => 'L',
+ 41762 => 'L',
+ 41763 => 'L',
+ 41764 => 'L',
+ 41765 => 'L',
+ 41766 => 'L',
+ 41767 => 'L',
+ 41768 => 'L',
+ 41769 => 'L',
+ 41770 => 'L',
+ 41771 => 'L',
+ 41772 => 'L',
+ 41773 => 'L',
+ 41774 => 'L',
+ 41775 => 'L',
+ 41776 => 'L',
+ 41777 => 'L',
+ 41778 => 'L',
+ 41779 => 'L',
+ 41780 => 'L',
+ 41781 => 'L',
+ 41782 => 'L',
+ 41783 => 'L',
+ 41784 => 'L',
+ 41785 => 'L',
+ 41786 => 'L',
+ 41787 => 'L',
+ 41788 => 'L',
+ 41789 => 'L',
+ 41790 => 'L',
+ 41791 => 'L',
+ 41792 => 'L',
+ 41793 => 'L',
+ 41794 => 'L',
+ 41795 => 'L',
+ 41796 => 'L',
+ 41797 => 'L',
+ 41798 => 'L',
+ 41799 => 'L',
+ 41800 => 'L',
+ 41801 => 'L',
+ 41802 => 'L',
+ 41803 => 'L',
+ 41804 => 'L',
+ 41805 => 'L',
+ 41806 => 'L',
+ 41807 => 'L',
+ 41808 => 'L',
+ 41809 => 'L',
+ 41810 => 'L',
+ 41811 => 'L',
+ 41812 => 'L',
+ 41813 => 'L',
+ 41814 => 'L',
+ 41815 => 'L',
+ 41816 => 'L',
+ 41817 => 'L',
+ 41818 => 'L',
+ 41819 => 'L',
+ 41820 => 'L',
+ 41821 => 'L',
+ 41822 => 'L',
+ 41823 => 'L',
+ 41824 => 'L',
+ 41825 => 'L',
+ 41826 => 'L',
+ 41827 => 'L',
+ 41828 => 'L',
+ 41829 => 'L',
+ 41830 => 'L',
+ 41831 => 'L',
+ 41832 => 'L',
+ 41833 => 'L',
+ 41834 => 'L',
+ 41835 => 'L',
+ 41836 => 'L',
+ 41837 => 'L',
+ 41838 => 'L',
+ 41839 => 'L',
+ 41840 => 'L',
+ 41841 => 'L',
+ 41842 => 'L',
+ 41843 => 'L',
+ 41844 => 'L',
+ 41845 => 'L',
+ 41846 => 'L',
+ 41847 => 'L',
+ 41848 => 'L',
+ 41849 => 'L',
+ 41850 => 'L',
+ 41851 => 'L',
+ 41852 => 'L',
+ 41853 => 'L',
+ 41854 => 'L',
+ 41855 => 'L',
+ 41856 => 'L',
+ 41857 => 'L',
+ 41858 => 'L',
+ 41859 => 'L',
+ 41860 => 'L',
+ 41861 => 'L',
+ 41862 => 'L',
+ 41863 => 'L',
+ 41864 => 'L',
+ 41865 => 'L',
+ 41866 => 'L',
+ 41867 => 'L',
+ 41868 => 'L',
+ 41869 => 'L',
+ 41870 => 'L',
+ 41871 => 'L',
+ 41872 => 'L',
+ 41873 => 'L',
+ 41874 => 'L',
+ 41875 => 'L',
+ 41876 => 'L',
+ 41877 => 'L',
+ 41878 => 'L',
+ 41879 => 'L',
+ 41880 => 'L',
+ 41881 => 'L',
+ 41882 => 'L',
+ 41883 => 'L',
+ 41884 => 'L',
+ 41885 => 'L',
+ 41886 => 'L',
+ 41887 => 'L',
+ 41888 => 'L',
+ 41889 => 'L',
+ 41890 => 'L',
+ 41891 => 'L',
+ 41892 => 'L',
+ 41893 => 'L',
+ 41894 => 'L',
+ 41895 => 'L',
+ 41896 => 'L',
+ 41897 => 'L',
+ 41898 => 'L',
+ 41899 => 'L',
+ 41900 => 'L',
+ 41901 => 'L',
+ 41902 => 'L',
+ 41903 => 'L',
+ 41904 => 'L',
+ 41905 => 'L',
+ 41906 => 'L',
+ 41907 => 'L',
+ 41908 => 'L',
+ 41909 => 'L',
+ 41910 => 'L',
+ 41911 => 'L',
+ 41912 => 'L',
+ 41913 => 'L',
+ 41914 => 'L',
+ 41915 => 'L',
+ 41916 => 'L',
+ 41917 => 'L',
+ 41918 => 'L',
+ 41919 => 'L',
+ 41920 => 'L',
+ 41921 => 'L',
+ 41922 => 'L',
+ 41923 => 'L',
+ 41924 => 'L',
+ 41925 => 'L',
+ 41926 => 'L',
+ 41927 => 'L',
+ 41928 => 'L',
+ 41929 => 'L',
+ 41930 => 'L',
+ 41931 => 'L',
+ 41932 => 'L',
+ 41933 => 'L',
+ 41934 => 'L',
+ 41935 => 'L',
+ 41936 => 'L',
+ 41937 => 'L',
+ 41938 => 'L',
+ 41939 => 'L',
+ 41940 => 'L',
+ 41941 => 'L',
+ 41942 => 'L',
+ 41943 => 'L',
+ 41944 => 'L',
+ 41945 => 'L',
+ 41946 => 'L',
+ 41947 => 'L',
+ 41948 => 'L',
+ 41949 => 'L',
+ 41950 => 'L',
+ 41951 => 'L',
+ 41952 => 'L',
+ 41953 => 'L',
+ 41954 => 'L',
+ 41955 => 'L',
+ 41956 => 'L',
+ 41957 => 'L',
+ 41958 => 'L',
+ 41959 => 'L',
+ 41960 => 'L',
+ 41961 => 'L',
+ 41962 => 'L',
+ 41963 => 'L',
+ 41964 => 'L',
+ 41965 => 'L',
+ 41966 => 'L',
+ 41967 => 'L',
+ 41968 => 'L',
+ 41969 => 'L',
+ 41970 => 'L',
+ 41971 => 'L',
+ 41972 => 'L',
+ 41973 => 'L',
+ 41974 => 'L',
+ 41975 => 'L',
+ 41976 => 'L',
+ 41977 => 'L',
+ 41978 => 'L',
+ 41979 => 'L',
+ 41980 => 'L',
+ 41981 => 'L',
+ 41982 => 'L',
+ 41983 => 'L',
+ 41984 => 'L',
+ 41985 => 'L',
+ 41986 => 'L',
+ 41987 => 'L',
+ 41988 => 'L',
+ 41989 => 'L',
+ 41990 => 'L',
+ 41991 => 'L',
+ 41992 => 'L',
+ 41993 => 'L',
+ 41994 => 'L',
+ 41995 => 'L',
+ 41996 => 'L',
+ 41997 => 'L',
+ 41998 => 'L',
+ 41999 => 'L',
+ 42000 => 'L',
+ 42001 => 'L',
+ 42002 => 'L',
+ 42003 => 'L',
+ 42004 => 'L',
+ 42005 => 'L',
+ 42006 => 'L',
+ 42007 => 'L',
+ 42008 => 'L',
+ 42009 => 'L',
+ 42010 => 'L',
+ 42011 => 'L',
+ 42012 => 'L',
+ 42013 => 'L',
+ 42014 => 'L',
+ 42015 => 'L',
+ 42016 => 'L',
+ 42017 => 'L',
+ 42018 => 'L',
+ 42019 => 'L',
+ 42020 => 'L',
+ 42021 => 'L',
+ 42022 => 'L',
+ 42023 => 'L',
+ 42024 => 'L',
+ 42025 => 'L',
+ 42026 => 'L',
+ 42027 => 'L',
+ 42028 => 'L',
+ 42029 => 'L',
+ 42030 => 'L',
+ 42031 => 'L',
+ 42032 => 'L',
+ 42033 => 'L',
+ 42034 => 'L',
+ 42035 => 'L',
+ 42036 => 'L',
+ 42037 => 'L',
+ 42038 => 'L',
+ 42039 => 'L',
+ 42040 => 'L',
+ 42041 => 'L',
+ 42042 => 'L',
+ 42043 => 'L',
+ 42044 => 'L',
+ 42045 => 'L',
+ 42046 => 'L',
+ 42047 => 'L',
+ 42048 => 'L',
+ 42049 => 'L',
+ 42050 => 'L',
+ 42051 => 'L',
+ 42052 => 'L',
+ 42053 => 'L',
+ 42054 => 'L',
+ 42055 => 'L',
+ 42056 => 'L',
+ 42057 => 'L',
+ 42058 => 'L',
+ 42059 => 'L',
+ 42060 => 'L',
+ 42061 => 'L',
+ 42062 => 'L',
+ 42063 => 'L',
+ 42064 => 'L',
+ 42065 => 'L',
+ 42066 => 'L',
+ 42067 => 'L',
+ 42068 => 'L',
+ 42069 => 'L',
+ 42070 => 'L',
+ 42071 => 'L',
+ 42072 => 'L',
+ 42073 => 'L',
+ 42074 => 'L',
+ 42075 => 'L',
+ 42076 => 'L',
+ 42077 => 'L',
+ 42078 => 'L',
+ 42079 => 'L',
+ 42080 => 'L',
+ 42081 => 'L',
+ 42082 => 'L',
+ 42083 => 'L',
+ 42084 => 'L',
+ 42085 => 'L',
+ 42086 => 'L',
+ 42087 => 'L',
+ 42088 => 'L',
+ 42089 => 'L',
+ 42090 => 'L',
+ 42091 => 'L',
+ 42092 => 'L',
+ 42093 => 'L',
+ 42094 => 'L',
+ 42095 => 'L',
+ 42096 => 'L',
+ 42097 => 'L',
+ 42098 => 'L',
+ 42099 => 'L',
+ 42100 => 'L',
+ 42101 => 'L',
+ 42102 => 'L',
+ 42103 => 'L',
+ 42104 => 'L',
+ 42105 => 'L',
+ 42106 => 'L',
+ 42107 => 'L',
+ 42108 => 'L',
+ 42109 => 'L',
+ 42110 => 'L',
+ 42111 => 'L',
+ 42112 => 'L',
+ 42113 => 'L',
+ 42114 => 'L',
+ 42115 => 'L',
+ 42116 => 'L',
+ 42117 => 'L',
+ 42118 => 'L',
+ 42119 => 'L',
+ 42120 => 'L',
+ 42121 => 'L',
+ 42122 => 'L',
+ 42123 => 'L',
+ 42124 => 'L',
+ 42128 => 'ON',
+ 42129 => 'ON',
+ 42130 => 'ON',
+ 42131 => 'ON',
+ 42132 => 'ON',
+ 42133 => 'ON',
+ 42134 => 'ON',
+ 42135 => 'ON',
+ 42136 => 'ON',
+ 42137 => 'ON',
+ 42138 => 'ON',
+ 42139 => 'ON',
+ 42140 => 'ON',
+ 42141 => 'ON',
+ 42142 => 'ON',
+ 42143 => 'ON',
+ 42144 => 'ON',
+ 42145 => 'ON',
+ 42146 => 'ON',
+ 42147 => 'ON',
+ 42148 => 'ON',
+ 42149 => 'ON',
+ 42150 => 'ON',
+ 42151 => 'ON',
+ 42152 => 'ON',
+ 42153 => 'ON',
+ 42154 => 'ON',
+ 42155 => 'ON',
+ 42156 => 'ON',
+ 42157 => 'ON',
+ 42158 => 'ON',
+ 42159 => 'ON',
+ 42160 => 'ON',
+ 42161 => 'ON',
+ 42162 => 'ON',
+ 42163 => 'ON',
+ 42164 => 'ON',
+ 42165 => 'ON',
+ 42166 => 'ON',
+ 42167 => 'ON',
+ 42168 => 'ON',
+ 42169 => 'ON',
+ 42170 => 'ON',
+ 42171 => 'ON',
+ 42172 => 'ON',
+ 42173 => 'ON',
+ 42174 => 'ON',
+ 42175 => 'ON',
+ 42176 => 'ON',
+ 42177 => 'ON',
+ 42178 => 'ON',
+ 42179 => 'ON',
+ 42180 => 'ON',
+ 42181 => 'ON',
+ 42182 => 'ON',
+ 42752 => 'ON',
+ 42753 => 'ON',
+ 42754 => 'ON',
+ 42755 => 'ON',
+ 42756 => 'ON',
+ 42757 => 'ON',
+ 42758 => 'ON',
+ 42759 => 'ON',
+ 42760 => 'ON',
+ 42761 => 'ON',
+ 42762 => 'ON',
+ 42763 => 'ON',
+ 42764 => 'ON',
+ 42765 => 'ON',
+ 42766 => 'ON',
+ 42767 => 'ON',
+ 42768 => 'ON',
+ 42769 => 'ON',
+ 42770 => 'ON',
+ 42771 => 'ON',
+ 42772 => 'ON',
+ 42773 => 'ON',
+ 42774 => 'ON',
+ 42775 => 'ON',
+ 42776 => 'ON',
+ 42777 => 'ON',
+ 42778 => 'ON',
+ 42784 => 'ON',
+ 42785 => 'ON',
+ 43008 => 'L',
+ 43009 => 'L',
+ 43010 => 'NSM',
+ 43011 => 'L',
+ 43012 => 'L',
+ 43013 => 'L',
+ 43014 => 'NSM',
+ 43015 => 'L',
+ 43016 => 'L',
+ 43017 => 'L',
+ 43018 => 'L',
+ 43019 => 'NSM',
+ 43020 => 'L',
+ 43021 => 'L',
+ 43022 => 'L',
+ 43023 => 'L',
+ 43024 => 'L',
+ 43025 => 'L',
+ 43026 => 'L',
+ 43027 => 'L',
+ 43028 => 'L',
+ 43029 => 'L',
+ 43030 => 'L',
+ 43031 => 'L',
+ 43032 => 'L',
+ 43033 => 'L',
+ 43034 => 'L',
+ 43035 => 'L',
+ 43036 => 'L',
+ 43037 => 'L',
+ 43038 => 'L',
+ 43039 => 'L',
+ 43040 => 'L',
+ 43041 => 'L',
+ 43042 => 'L',
+ 43043 => 'L',
+ 43044 => 'L',
+ 43045 => 'NSM',
+ 43046 => 'NSM',
+ 43047 => 'L',
+ 43048 => 'ON',
+ 43049 => 'ON',
+ 43050 => 'ON',
+ 43051 => 'ON',
+ 43072 => 'L',
+ 43073 => 'L',
+ 43074 => 'L',
+ 43075 => 'L',
+ 43076 => 'L',
+ 43077 => 'L',
+ 43078 => 'L',
+ 43079 => 'L',
+ 43080 => 'L',
+ 43081 => 'L',
+ 43082 => 'L',
+ 43083 => 'L',
+ 43084 => 'L',
+ 43085 => 'L',
+ 43086 => 'L',
+ 43087 => 'L',
+ 43088 => 'L',
+ 43089 => 'L',
+ 43090 => 'L',
+ 43091 => 'L',
+ 43092 => 'L',
+ 43093 => 'L',
+ 43094 => 'L',
+ 43095 => 'L',
+ 43096 => 'L',
+ 43097 => 'L',
+ 43098 => 'L',
+ 43099 => 'L',
+ 43100 => 'L',
+ 43101 => 'L',
+ 43102 => 'L',
+ 43103 => 'L',
+ 43104 => 'L',
+ 43105 => 'L',
+ 43106 => 'L',
+ 43107 => 'L',
+ 43108 => 'L',
+ 43109 => 'L',
+ 43110 => 'L',
+ 43111 => 'L',
+ 43112 => 'L',
+ 43113 => 'L',
+ 43114 => 'L',
+ 43115 => 'L',
+ 43116 => 'L',
+ 43117 => 'L',
+ 43118 => 'L',
+ 43119 => 'L',
+ 43120 => 'L',
+ 43121 => 'L',
+ 43122 => 'L',
+ 43123 => 'L',
+ 43124 => 'ON',
+ 43125 => 'ON',
+ 43126 => 'ON',
+ 43127 => 'ON',
+ 44032 => 'L',
+ 55203 => 'L',
+ 55296 => 'L',
+ 56191 => 'L',
+ 56192 => 'L',
+ 56319 => 'L',
+ 56320 => 'L',
+ 57343 => 'L',
+ 57344 => 'L',
+ 63743 => 'L',
+ 63744 => 'L',
+ 63745 => 'L',
+ 63746 => 'L',
+ 63747 => 'L',
+ 63748 => 'L',
+ 63749 => 'L',
+ 63750 => 'L',
+ 63751 => 'L',
+ 63752 => 'L',
+ 63753 => 'L',
+ 63754 => 'L',
+ 63755 => 'L',
+ 63756 => 'L',
+ 63757 => 'L',
+ 63758 => 'L',
+ 63759 => 'L',
+ 63760 => 'L',
+ 63761 => 'L',
+ 63762 => 'L',
+ 63763 => 'L',
+ 63764 => 'L',
+ 63765 => 'L',
+ 63766 => 'L',
+ 63767 => 'L',
+ 63768 => 'L',
+ 63769 => 'L',
+ 63770 => 'L',
+ 63771 => 'L',
+ 63772 => 'L',
+ 63773 => 'L',
+ 63774 => 'L',
+ 63775 => 'L',
+ 63776 => 'L',
+ 63777 => 'L',
+ 63778 => 'L',
+ 63779 => 'L',
+ 63780 => 'L',
+ 63781 => 'L',
+ 63782 => 'L',
+ 63783 => 'L',
+ 63784 => 'L',
+ 63785 => 'L',
+ 63786 => 'L',
+ 63787 => 'L',
+ 63788 => 'L',
+ 63789 => 'L',
+ 63790 => 'L',
+ 63791 => 'L',
+ 63792 => 'L',
+ 63793 => 'L',
+ 63794 => 'L',
+ 63795 => 'L',
+ 63796 => 'L',
+ 63797 => 'L',
+ 63798 => 'L',
+ 63799 => 'L',
+ 63800 => 'L',
+ 63801 => 'L',
+ 63802 => 'L',
+ 63803 => 'L',
+ 63804 => 'L',
+ 63805 => 'L',
+ 63806 => 'L',
+ 63807 => 'L',
+ 63808 => 'L',
+ 63809 => 'L',
+ 63810 => 'L',
+ 63811 => 'L',
+ 63812 => 'L',
+ 63813 => 'L',
+ 63814 => 'L',
+ 63815 => 'L',
+ 63816 => 'L',
+ 63817 => 'L',
+ 63818 => 'L',
+ 63819 => 'L',
+ 63820 => 'L',
+ 63821 => 'L',
+ 63822 => 'L',
+ 63823 => 'L',
+ 63824 => 'L',
+ 63825 => 'L',
+ 63826 => 'L',
+ 63827 => 'L',
+ 63828 => 'L',
+ 63829 => 'L',
+ 63830 => 'L',
+ 63831 => 'L',
+ 63832 => 'L',
+ 63833 => 'L',
+ 63834 => 'L',
+ 63835 => 'L',
+ 63836 => 'L',
+ 63837 => 'L',
+ 63838 => 'L',
+ 63839 => 'L',
+ 63840 => 'L',
+ 63841 => 'L',
+ 63842 => 'L',
+ 63843 => 'L',
+ 63844 => 'L',
+ 63845 => 'L',
+ 63846 => 'L',
+ 63847 => 'L',
+ 63848 => 'L',
+ 63849 => 'L',
+ 63850 => 'L',
+ 63851 => 'L',
+ 63852 => 'L',
+ 63853 => 'L',
+ 63854 => 'L',
+ 63855 => 'L',
+ 63856 => 'L',
+ 63857 => 'L',
+ 63858 => 'L',
+ 63859 => 'L',
+ 63860 => 'L',
+ 63861 => 'L',
+ 63862 => 'L',
+ 63863 => 'L',
+ 63864 => 'L',
+ 63865 => 'L',
+ 63866 => 'L',
+ 63867 => 'L',
+ 63868 => 'L',
+ 63869 => 'L',
+ 63870 => 'L',
+ 63871 => 'L',
+ 63872 => 'L',
+ 63873 => 'L',
+ 63874 => 'L',
+ 63875 => 'L',
+ 63876 => 'L',
+ 63877 => 'L',
+ 63878 => 'L',
+ 63879 => 'L',
+ 63880 => 'L',
+ 63881 => 'L',
+ 63882 => 'L',
+ 63883 => 'L',
+ 63884 => 'L',
+ 63885 => 'L',
+ 63886 => 'L',
+ 63887 => 'L',
+ 63888 => 'L',
+ 63889 => 'L',
+ 63890 => 'L',
+ 63891 => 'L',
+ 63892 => 'L',
+ 63893 => 'L',
+ 63894 => 'L',
+ 63895 => 'L',
+ 63896 => 'L',
+ 63897 => 'L',
+ 63898 => 'L',
+ 63899 => 'L',
+ 63900 => 'L',
+ 63901 => 'L',
+ 63902 => 'L',
+ 63903 => 'L',
+ 63904 => 'L',
+ 63905 => 'L',
+ 63906 => 'L',
+ 63907 => 'L',
+ 63908 => 'L',
+ 63909 => 'L',
+ 63910 => 'L',
+ 63911 => 'L',
+ 63912 => 'L',
+ 63913 => 'L',
+ 63914 => 'L',
+ 63915 => 'L',
+ 63916 => 'L',
+ 63917 => 'L',
+ 63918 => 'L',
+ 63919 => 'L',
+ 63920 => 'L',
+ 63921 => 'L',
+ 63922 => 'L',
+ 63923 => 'L',
+ 63924 => 'L',
+ 63925 => 'L',
+ 63926 => 'L',
+ 63927 => 'L',
+ 63928 => 'L',
+ 63929 => 'L',
+ 63930 => 'L',
+ 63931 => 'L',
+ 63932 => 'L',
+ 63933 => 'L',
+ 63934 => 'L',
+ 63935 => 'L',
+ 63936 => 'L',
+ 63937 => 'L',
+ 63938 => 'L',
+ 63939 => 'L',
+ 63940 => 'L',
+ 63941 => 'L',
+ 63942 => 'L',
+ 63943 => 'L',
+ 63944 => 'L',
+ 63945 => 'L',
+ 63946 => 'L',
+ 63947 => 'L',
+ 63948 => 'L',
+ 63949 => 'L',
+ 63950 => 'L',
+ 63951 => 'L',
+ 63952 => 'L',
+ 63953 => 'L',
+ 63954 => 'L',
+ 63955 => 'L',
+ 63956 => 'L',
+ 63957 => 'L',
+ 63958 => 'L',
+ 63959 => 'L',
+ 63960 => 'L',
+ 63961 => 'L',
+ 63962 => 'L',
+ 63963 => 'L',
+ 63964 => 'L',
+ 63965 => 'L',
+ 63966 => 'L',
+ 63967 => 'L',
+ 63968 => 'L',
+ 63969 => 'L',
+ 63970 => 'L',
+ 63971 => 'L',
+ 63972 => 'L',
+ 63973 => 'L',
+ 63974 => 'L',
+ 63975 => 'L',
+ 63976 => 'L',
+ 63977 => 'L',
+ 63978 => 'L',
+ 63979 => 'L',
+ 63980 => 'L',
+ 63981 => 'L',
+ 63982 => 'L',
+ 63983 => 'L',
+ 63984 => 'L',
+ 63985 => 'L',
+ 63986 => 'L',
+ 63987 => 'L',
+ 63988 => 'L',
+ 63989 => 'L',
+ 63990 => 'L',
+ 63991 => 'L',
+ 63992 => 'L',
+ 63993 => 'L',
+ 63994 => 'L',
+ 63995 => 'L',
+ 63996 => 'L',
+ 63997 => 'L',
+ 63998 => 'L',
+ 63999 => 'L',
+ 64000 => 'L',
+ 64001 => 'L',
+ 64002 => 'L',
+ 64003 => 'L',
+ 64004 => 'L',
+ 64005 => 'L',
+ 64006 => 'L',
+ 64007 => 'L',
+ 64008 => 'L',
+ 64009 => 'L',
+ 64010 => 'L',
+ 64011 => 'L',
+ 64012 => 'L',
+ 64013 => 'L',
+ 64014 => 'L',
+ 64015 => 'L',
+ 64016 => 'L',
+ 64017 => 'L',
+ 64018 => 'L',
+ 64019 => 'L',
+ 64020 => 'L',
+ 64021 => 'L',
+ 64022 => 'L',
+ 64023 => 'L',
+ 64024 => 'L',
+ 64025 => 'L',
+ 64026 => 'L',
+ 64027 => 'L',
+ 64028 => 'L',
+ 64029 => 'L',
+ 64030 => 'L',
+ 64031 => 'L',
+ 64032 => 'L',
+ 64033 => 'L',
+ 64034 => 'L',
+ 64035 => 'L',
+ 64036 => 'L',
+ 64037 => 'L',
+ 64038 => 'L',
+ 64039 => 'L',
+ 64040 => 'L',
+ 64041 => 'L',
+ 64042 => 'L',
+ 64043 => 'L',
+ 64044 => 'L',
+ 64045 => 'L',
+ 64048 => 'L',
+ 64049 => 'L',
+ 64050 => 'L',
+ 64051 => 'L',
+ 64052 => 'L',
+ 64053 => 'L',
+ 64054 => 'L',
+ 64055 => 'L',
+ 64056 => 'L',
+ 64057 => 'L',
+ 64058 => 'L',
+ 64059 => 'L',
+ 64060 => 'L',
+ 64061 => 'L',
+ 64062 => 'L',
+ 64063 => 'L',
+ 64064 => 'L',
+ 64065 => 'L',
+ 64066 => 'L',
+ 64067 => 'L',
+ 64068 => 'L',
+ 64069 => 'L',
+ 64070 => 'L',
+ 64071 => 'L',
+ 64072 => 'L',
+ 64073 => 'L',
+ 64074 => 'L',
+ 64075 => 'L',
+ 64076 => 'L',
+ 64077 => 'L',
+ 64078 => 'L',
+ 64079 => 'L',
+ 64080 => 'L',
+ 64081 => 'L',
+ 64082 => 'L',
+ 64083 => 'L',
+ 64084 => 'L',
+ 64085 => 'L',
+ 64086 => 'L',
+ 64087 => 'L',
+ 64088 => 'L',
+ 64089 => 'L',
+ 64090 => 'L',
+ 64091 => 'L',
+ 64092 => 'L',
+ 64093 => 'L',
+ 64094 => 'L',
+ 64095 => 'L',
+ 64096 => 'L',
+ 64097 => 'L',
+ 64098 => 'L',
+ 64099 => 'L',
+ 64100 => 'L',
+ 64101 => 'L',
+ 64102 => 'L',
+ 64103 => 'L',
+ 64104 => 'L',
+ 64105 => 'L',
+ 64106 => 'L',
+ 64112 => 'L',
+ 64113 => 'L',
+ 64114 => 'L',
+ 64115 => 'L',
+ 64116 => 'L',
+ 64117 => 'L',
+ 64118 => 'L',
+ 64119 => 'L',
+ 64120 => 'L',
+ 64121 => 'L',
+ 64122 => 'L',
+ 64123 => 'L',
+ 64124 => 'L',
+ 64125 => 'L',
+ 64126 => 'L',
+ 64127 => 'L',
+ 64128 => 'L',
+ 64129 => 'L',
+ 64130 => 'L',
+ 64131 => 'L',
+ 64132 => 'L',
+ 64133 => 'L',
+ 64134 => 'L',
+ 64135 => 'L',
+ 64136 => 'L',
+ 64137 => 'L',
+ 64138 => 'L',
+ 64139 => 'L',
+ 64140 => 'L',
+ 64141 => 'L',
+ 64142 => 'L',
+ 64143 => 'L',
+ 64144 => 'L',
+ 64145 => 'L',
+ 64146 => 'L',
+ 64147 => 'L',
+ 64148 => 'L',
+ 64149 => 'L',
+ 64150 => 'L',
+ 64151 => 'L',
+ 64152 => 'L',
+ 64153 => 'L',
+ 64154 => 'L',
+ 64155 => 'L',
+ 64156 => 'L',
+ 64157 => 'L',
+ 64158 => 'L',
+ 64159 => 'L',
+ 64160 => 'L',
+ 64161 => 'L',
+ 64162 => 'L',
+ 64163 => 'L',
+ 64164 => 'L',
+ 64165 => 'L',
+ 64166 => 'L',
+ 64167 => 'L',
+ 64168 => 'L',
+ 64169 => 'L',
+ 64170 => 'L',
+ 64171 => 'L',
+ 64172 => 'L',
+ 64173 => 'L',
+ 64174 => 'L',
+ 64175 => 'L',
+ 64176 => 'L',
+ 64177 => 'L',
+ 64178 => 'L',
+ 64179 => 'L',
+ 64180 => 'L',
+ 64181 => 'L',
+ 64182 => 'L',
+ 64183 => 'L',
+ 64184 => 'L',
+ 64185 => 'L',
+ 64186 => 'L',
+ 64187 => 'L',
+ 64188 => 'L',
+ 64189 => 'L',
+ 64190 => 'L',
+ 64191 => 'L',
+ 64192 => 'L',
+ 64193 => 'L',
+ 64194 => 'L',
+ 64195 => 'L',
+ 64196 => 'L',
+ 64197 => 'L',
+ 64198 => 'L',
+ 64199 => 'L',
+ 64200 => 'L',
+ 64201 => 'L',
+ 64202 => 'L',
+ 64203 => 'L',
+ 64204 => 'L',
+ 64205 => 'L',
+ 64206 => 'L',
+ 64207 => 'L',
+ 64208 => 'L',
+ 64209 => 'L',
+ 64210 => 'L',
+ 64211 => 'L',
+ 64212 => 'L',
+ 64213 => 'L',
+ 64214 => 'L',
+ 64215 => 'L',
+ 64216 => 'L',
+ 64217 => 'L',
+ 64256 => 'L',
+ 64257 => 'L',
+ 64258 => 'L',
+ 64259 => 'L',
+ 64260 => 'L',
+ 64261 => 'L',
+ 64262 => 'L',
+ 64275 => 'L',
+ 64276 => 'L',
+ 64277 => 'L',
+ 64278 => 'L',
+ 64279 => 'L',
+ 64285 => 'R',
+ 64286 => 'NSM',
+ 64287 => 'R',
+ 64288 => 'R',
+ 64289 => 'R',
+ 64290 => 'R',
+ 64291 => 'R',
+ 64292 => 'R',
+ 64293 => 'R',
+ 64294 => 'R',
+ 64295 => 'R',
+ 64296 => 'R',
+ 64297 => 'ES',
+ 64298 => 'R',
+ 64299 => 'R',
+ 64300 => 'R',
+ 64301 => 'R',
+ 64302 => 'R',
+ 64303 => 'R',
+ 64304 => 'R',
+ 64305 => 'R',
+ 64306 => 'R',
+ 64307 => 'R',
+ 64308 => 'R',
+ 64309 => 'R',
+ 64310 => 'R',
+ 64312 => 'R',
+ 64313 => 'R',
+ 64314 => 'R',
+ 64315 => 'R',
+ 64316 => 'R',
+ 64318 => 'R',
+ 64320 => 'R',
+ 64321 => 'R',
+ 64323 => 'R',
+ 64324 => 'R',
+ 64326 => 'R',
+ 64327 => 'R',
+ 64328 => 'R',
+ 64329 => 'R',
+ 64330 => 'R',
+ 64331 => 'R',
+ 64332 => 'R',
+ 64333 => 'R',
+ 64334 => 'R',
+ 64335 => 'R',
+ 64336 => 'AL',
+ 64337 => 'AL',
+ 64338 => 'AL',
+ 64339 => 'AL',
+ 64340 => 'AL',
+ 64341 => 'AL',
+ 64342 => 'AL',
+ 64343 => 'AL',
+ 64344 => 'AL',
+ 64345 => 'AL',
+ 64346 => 'AL',
+ 64347 => 'AL',
+ 64348 => 'AL',
+ 64349 => 'AL',
+ 64350 => 'AL',
+ 64351 => 'AL',
+ 64352 => 'AL',
+ 64353 => 'AL',
+ 64354 => 'AL',
+ 64355 => 'AL',
+ 64356 => 'AL',
+ 64357 => 'AL',
+ 64358 => 'AL',
+ 64359 => 'AL',
+ 64360 => 'AL',
+ 64361 => 'AL',
+ 64362 => 'AL',
+ 64363 => 'AL',
+ 64364 => 'AL',
+ 64365 => 'AL',
+ 64366 => 'AL',
+ 64367 => 'AL',
+ 64368 => 'AL',
+ 64369 => 'AL',
+ 64370 => 'AL',
+ 64371 => 'AL',
+ 64372 => 'AL',
+ 64373 => 'AL',
+ 64374 => 'AL',
+ 64375 => 'AL',
+ 64376 => 'AL',
+ 64377 => 'AL',
+ 64378 => 'AL',
+ 64379 => 'AL',
+ 64380 => 'AL',
+ 64381 => 'AL',
+ 64382 => 'AL',
+ 64383 => 'AL',
+ 64384 => 'AL',
+ 64385 => 'AL',
+ 64386 => 'AL',
+ 64387 => 'AL',
+ 64388 => 'AL',
+ 64389 => 'AL',
+ 64390 => 'AL',
+ 64391 => 'AL',
+ 64392 => 'AL',
+ 64393 => 'AL',
+ 64394 => 'AL',
+ 64395 => 'AL',
+ 64396 => 'AL',
+ 64397 => 'AL',
+ 64398 => 'AL',
+ 64399 => 'AL',
+ 64400 => 'AL',
+ 64401 => 'AL',
+ 64402 => 'AL',
+ 64403 => 'AL',
+ 64404 => 'AL',
+ 64405 => 'AL',
+ 64406 => 'AL',
+ 64407 => 'AL',
+ 64408 => 'AL',
+ 64409 => 'AL',
+ 64410 => 'AL',
+ 64411 => 'AL',
+ 64412 => 'AL',
+ 64413 => 'AL',
+ 64414 => 'AL',
+ 64415 => 'AL',
+ 64416 => 'AL',
+ 64417 => 'AL',
+ 64418 => 'AL',
+ 64419 => 'AL',
+ 64420 => 'AL',
+ 64421 => 'AL',
+ 64422 => 'AL',
+ 64423 => 'AL',
+ 64424 => 'AL',
+ 64425 => 'AL',
+ 64426 => 'AL',
+ 64427 => 'AL',
+ 64428 => 'AL',
+ 64429 => 'AL',
+ 64430 => 'AL',
+ 64431 => 'AL',
+ 64432 => 'AL',
+ 64433 => 'AL',
+ 64467 => 'AL',
+ 64468 => 'AL',
+ 64469 => 'AL',
+ 64470 => 'AL',
+ 64471 => 'AL',
+ 64472 => 'AL',
+ 64473 => 'AL',
+ 64474 => 'AL',
+ 64475 => 'AL',
+ 64476 => 'AL',
+ 64477 => 'AL',
+ 64478 => 'AL',
+ 64479 => 'AL',
+ 64480 => 'AL',
+ 64481 => 'AL',
+ 64482 => 'AL',
+ 64483 => 'AL',
+ 64484 => 'AL',
+ 64485 => 'AL',
+ 64486 => 'AL',
+ 64487 => 'AL',
+ 64488 => 'AL',
+ 64489 => 'AL',
+ 64490 => 'AL',
+ 64491 => 'AL',
+ 64492 => 'AL',
+ 64493 => 'AL',
+ 64494 => 'AL',
+ 64495 => 'AL',
+ 64496 => 'AL',
+ 64497 => 'AL',
+ 64498 => 'AL',
+ 64499 => 'AL',
+ 64500 => 'AL',
+ 64501 => 'AL',
+ 64502 => 'AL',
+ 64503 => 'AL',
+ 64504 => 'AL',
+ 64505 => 'AL',
+ 64506 => 'AL',
+ 64507 => 'AL',
+ 64508 => 'AL',
+ 64509 => 'AL',
+ 64510 => 'AL',
+ 64511 => 'AL',
+ 64512 => 'AL',
+ 64513 => 'AL',
+ 64514 => 'AL',
+ 64515 => 'AL',
+ 64516 => 'AL',
+ 64517 => 'AL',
+ 64518 => 'AL',
+ 64519 => 'AL',
+ 64520 => 'AL',
+ 64521 => 'AL',
+ 64522 => 'AL',
+ 64523 => 'AL',
+ 64524 => 'AL',
+ 64525 => 'AL',
+ 64526 => 'AL',
+ 64527 => 'AL',
+ 64528 => 'AL',
+ 64529 => 'AL',
+ 64530 => 'AL',
+ 64531 => 'AL',
+ 64532 => 'AL',
+ 64533 => 'AL',
+ 64534 => 'AL',
+ 64535 => 'AL',
+ 64536 => 'AL',
+ 64537 => 'AL',
+ 64538 => 'AL',
+ 64539 => 'AL',
+ 64540 => 'AL',
+ 64541 => 'AL',
+ 64542 => 'AL',
+ 64543 => 'AL',
+ 64544 => 'AL',
+ 64545 => 'AL',
+ 64546 => 'AL',
+ 64547 => 'AL',
+ 64548 => 'AL',
+ 64549 => 'AL',
+ 64550 => 'AL',
+ 64551 => 'AL',
+ 64552 => 'AL',
+ 64553 => 'AL',
+ 64554 => 'AL',
+ 64555 => 'AL',
+ 64556 => 'AL',
+ 64557 => 'AL',
+ 64558 => 'AL',
+ 64559 => 'AL',
+ 64560 => 'AL',
+ 64561 => 'AL',
+ 64562 => 'AL',
+ 64563 => 'AL',
+ 64564 => 'AL',
+ 64565 => 'AL',
+ 64566 => 'AL',
+ 64567 => 'AL',
+ 64568 => 'AL',
+ 64569 => 'AL',
+ 64570 => 'AL',
+ 64571 => 'AL',
+ 64572 => 'AL',
+ 64573 => 'AL',
+ 64574 => 'AL',
+ 64575 => 'AL',
+ 64576 => 'AL',
+ 64577 => 'AL',
+ 64578 => 'AL',
+ 64579 => 'AL',
+ 64580 => 'AL',
+ 64581 => 'AL',
+ 64582 => 'AL',
+ 64583 => 'AL',
+ 64584 => 'AL',
+ 64585 => 'AL',
+ 64586 => 'AL',
+ 64587 => 'AL',
+ 64588 => 'AL',
+ 64589 => 'AL',
+ 64590 => 'AL',
+ 64591 => 'AL',
+ 64592 => 'AL',
+ 64593 => 'AL',
+ 64594 => 'AL',
+ 64595 => 'AL',
+ 64596 => 'AL',
+ 64597 => 'AL',
+ 64598 => 'AL',
+ 64599 => 'AL',
+ 64600 => 'AL',
+ 64601 => 'AL',
+ 64602 => 'AL',
+ 64603 => 'AL',
+ 64604 => 'AL',
+ 64605 => 'AL',
+ 64606 => 'AL',
+ 64607 => 'AL',
+ 64608 => 'AL',
+ 64609 => 'AL',
+ 64610 => 'AL',
+ 64611 => 'AL',
+ 64612 => 'AL',
+ 64613 => 'AL',
+ 64614 => 'AL',
+ 64615 => 'AL',
+ 64616 => 'AL',
+ 64617 => 'AL',
+ 64618 => 'AL',
+ 64619 => 'AL',
+ 64620 => 'AL',
+ 64621 => 'AL',
+ 64622 => 'AL',
+ 64623 => 'AL',
+ 64624 => 'AL',
+ 64625 => 'AL',
+ 64626 => 'AL',
+ 64627 => 'AL',
+ 64628 => 'AL',
+ 64629 => 'AL',
+ 64630 => 'AL',
+ 64631 => 'AL',
+ 64632 => 'AL',
+ 64633 => 'AL',
+ 64634 => 'AL',
+ 64635 => 'AL',
+ 64636 => 'AL',
+ 64637 => 'AL',
+ 64638 => 'AL',
+ 64639 => 'AL',
+ 64640 => 'AL',
+ 64641 => 'AL',
+ 64642 => 'AL',
+ 64643 => 'AL',
+ 64644 => 'AL',
+ 64645 => 'AL',
+ 64646 => 'AL',
+ 64647 => 'AL',
+ 64648 => 'AL',
+ 64649 => 'AL',
+ 64650 => 'AL',
+ 64651 => 'AL',
+ 64652 => 'AL',
+ 64653 => 'AL',
+ 64654 => 'AL',
+ 64655 => 'AL',
+ 64656 => 'AL',
+ 64657 => 'AL',
+ 64658 => 'AL',
+ 64659 => 'AL',
+ 64660 => 'AL',
+ 64661 => 'AL',
+ 64662 => 'AL',
+ 64663 => 'AL',
+ 64664 => 'AL',
+ 64665 => 'AL',
+ 64666 => 'AL',
+ 64667 => 'AL',
+ 64668 => 'AL',
+ 64669 => 'AL',
+ 64670 => 'AL',
+ 64671 => 'AL',
+ 64672 => 'AL',
+ 64673 => 'AL',
+ 64674 => 'AL',
+ 64675 => 'AL',
+ 64676 => 'AL',
+ 64677 => 'AL',
+ 64678 => 'AL',
+ 64679 => 'AL',
+ 64680 => 'AL',
+ 64681 => 'AL',
+ 64682 => 'AL',
+ 64683 => 'AL',
+ 64684 => 'AL',
+ 64685 => 'AL',
+ 64686 => 'AL',
+ 64687 => 'AL',
+ 64688 => 'AL',
+ 64689 => 'AL',
+ 64690 => 'AL',
+ 64691 => 'AL',
+ 64692 => 'AL',
+ 64693 => 'AL',
+ 64694 => 'AL',
+ 64695 => 'AL',
+ 64696 => 'AL',
+ 64697 => 'AL',
+ 64698 => 'AL',
+ 64699 => 'AL',
+ 64700 => 'AL',
+ 64701 => 'AL',
+ 64702 => 'AL',
+ 64703 => 'AL',
+ 64704 => 'AL',
+ 64705 => 'AL',
+ 64706 => 'AL',
+ 64707 => 'AL',
+ 64708 => 'AL',
+ 64709 => 'AL',
+ 64710 => 'AL',
+ 64711 => 'AL',
+ 64712 => 'AL',
+ 64713 => 'AL',
+ 64714 => 'AL',
+ 64715 => 'AL',
+ 64716 => 'AL',
+ 64717 => 'AL',
+ 64718 => 'AL',
+ 64719 => 'AL',
+ 64720 => 'AL',
+ 64721 => 'AL',
+ 64722 => 'AL',
+ 64723 => 'AL',
+ 64724 => 'AL',
+ 64725 => 'AL',
+ 64726 => 'AL',
+ 64727 => 'AL',
+ 64728 => 'AL',
+ 64729 => 'AL',
+ 64730 => 'AL',
+ 64731 => 'AL',
+ 64732 => 'AL',
+ 64733 => 'AL',
+ 64734 => 'AL',
+ 64735 => 'AL',
+ 64736 => 'AL',
+ 64737 => 'AL',
+ 64738 => 'AL',
+ 64739 => 'AL',
+ 64740 => 'AL',
+ 64741 => 'AL',
+ 64742 => 'AL',
+ 64743 => 'AL',
+ 64744 => 'AL',
+ 64745 => 'AL',
+ 64746 => 'AL',
+ 64747 => 'AL',
+ 64748 => 'AL',
+ 64749 => 'AL',
+ 64750 => 'AL',
+ 64751 => 'AL',
+ 64752 => 'AL',
+ 64753 => 'AL',
+ 64754 => 'AL',
+ 64755 => 'AL',
+ 64756 => 'AL',
+ 64757 => 'AL',
+ 64758 => 'AL',
+ 64759 => 'AL',
+ 64760 => 'AL',
+ 64761 => 'AL',
+ 64762 => 'AL',
+ 64763 => 'AL',
+ 64764 => 'AL',
+ 64765 => 'AL',
+ 64766 => 'AL',
+ 64767 => 'AL',
+ 64768 => 'AL',
+ 64769 => 'AL',
+ 64770 => 'AL',
+ 64771 => 'AL',
+ 64772 => 'AL',
+ 64773 => 'AL',
+ 64774 => 'AL',
+ 64775 => 'AL',
+ 64776 => 'AL',
+ 64777 => 'AL',
+ 64778 => 'AL',
+ 64779 => 'AL',
+ 64780 => 'AL',
+ 64781 => 'AL',
+ 64782 => 'AL',
+ 64783 => 'AL',
+ 64784 => 'AL',
+ 64785 => 'AL',
+ 64786 => 'AL',
+ 64787 => 'AL',
+ 64788 => 'AL',
+ 64789 => 'AL',
+ 64790 => 'AL',
+ 64791 => 'AL',
+ 64792 => 'AL',
+ 64793 => 'AL',
+ 64794 => 'AL',
+ 64795 => 'AL',
+ 64796 => 'AL',
+ 64797 => 'AL',
+ 64798 => 'AL',
+ 64799 => 'AL',
+ 64800 => 'AL',
+ 64801 => 'AL',
+ 64802 => 'AL',
+ 64803 => 'AL',
+ 64804 => 'AL',
+ 64805 => 'AL',
+ 64806 => 'AL',
+ 64807 => 'AL',
+ 64808 => 'AL',
+ 64809 => 'AL',
+ 64810 => 'AL',
+ 64811 => 'AL',
+ 64812 => 'AL',
+ 64813 => 'AL',
+ 64814 => 'AL',
+ 64815 => 'AL',
+ 64816 => 'AL',
+ 64817 => 'AL',
+ 64818 => 'AL',
+ 64819 => 'AL',
+ 64820 => 'AL',
+ 64821 => 'AL',
+ 64822 => 'AL',
+ 64823 => 'AL',
+ 64824 => 'AL',
+ 64825 => 'AL',
+ 64826 => 'AL',
+ 64827 => 'AL',
+ 64828 => 'AL',
+ 64829 => 'AL',
+ 64830 => 'ON',
+ 64831 => 'ON',
+ 64848 => 'AL',
+ 64849 => 'AL',
+ 64850 => 'AL',
+ 64851 => 'AL',
+ 64852 => 'AL',
+ 64853 => 'AL',
+ 64854 => 'AL',
+ 64855 => 'AL',
+ 64856 => 'AL',
+ 64857 => 'AL',
+ 64858 => 'AL',
+ 64859 => 'AL',
+ 64860 => 'AL',
+ 64861 => 'AL',
+ 64862 => 'AL',
+ 64863 => 'AL',
+ 64864 => 'AL',
+ 64865 => 'AL',
+ 64866 => 'AL',
+ 64867 => 'AL',
+ 64868 => 'AL',
+ 64869 => 'AL',
+ 64870 => 'AL',
+ 64871 => 'AL',
+ 64872 => 'AL',
+ 64873 => 'AL',
+ 64874 => 'AL',
+ 64875 => 'AL',
+ 64876 => 'AL',
+ 64877 => 'AL',
+ 64878 => 'AL',
+ 64879 => 'AL',
+ 64880 => 'AL',
+ 64881 => 'AL',
+ 64882 => 'AL',
+ 64883 => 'AL',
+ 64884 => 'AL',
+ 64885 => 'AL',
+ 64886 => 'AL',
+ 64887 => 'AL',
+ 64888 => 'AL',
+ 64889 => 'AL',
+ 64890 => 'AL',
+ 64891 => 'AL',
+ 64892 => 'AL',
+ 64893 => 'AL',
+ 64894 => 'AL',
+ 64895 => 'AL',
+ 64896 => 'AL',
+ 64897 => 'AL',
+ 64898 => 'AL',
+ 64899 => 'AL',
+ 64900 => 'AL',
+ 64901 => 'AL',
+ 64902 => 'AL',
+ 64903 => 'AL',
+ 64904 => 'AL',
+ 64905 => 'AL',
+ 64906 => 'AL',
+ 64907 => 'AL',
+ 64908 => 'AL',
+ 64909 => 'AL',
+ 64910 => 'AL',
+ 64911 => 'AL',
+ 64914 => 'AL',
+ 64915 => 'AL',
+ 64916 => 'AL',
+ 64917 => 'AL',
+ 64918 => 'AL',
+ 64919 => 'AL',
+ 64920 => 'AL',
+ 64921 => 'AL',
+ 64922 => 'AL',
+ 64923 => 'AL',
+ 64924 => 'AL',
+ 64925 => 'AL',
+ 64926 => 'AL',
+ 64927 => 'AL',
+ 64928 => 'AL',
+ 64929 => 'AL',
+ 64930 => 'AL',
+ 64931 => 'AL',
+ 64932 => 'AL',
+ 64933 => 'AL',
+ 64934 => 'AL',
+ 64935 => 'AL',
+ 64936 => 'AL',
+ 64937 => 'AL',
+ 64938 => 'AL',
+ 64939 => 'AL',
+ 64940 => 'AL',
+ 64941 => 'AL',
+ 64942 => 'AL',
+ 64943 => 'AL',
+ 64944 => 'AL',
+ 64945 => 'AL',
+ 64946 => 'AL',
+ 64947 => 'AL',
+ 64948 => 'AL',
+ 64949 => 'AL',
+ 64950 => 'AL',
+ 64951 => 'AL',
+ 64952 => 'AL',
+ 64953 => 'AL',
+ 64954 => 'AL',
+ 64955 => 'AL',
+ 64956 => 'AL',
+ 64957 => 'AL',
+ 64958 => 'AL',
+ 64959 => 'AL',
+ 64960 => 'AL',
+ 64961 => 'AL',
+ 64962 => 'AL',
+ 64963 => 'AL',
+ 64964 => 'AL',
+ 64965 => 'AL',
+ 64966 => 'AL',
+ 64967 => 'AL',
+ 65008 => 'AL',
+ 65009 => 'AL',
+ 65010 => 'AL',
+ 65011 => 'AL',
+ 65012 => 'AL',
+ 65013 => 'AL',
+ 65014 => 'AL',
+ 65015 => 'AL',
+ 65016 => 'AL',
+ 65017 => 'AL',
+ 65018 => 'AL',
+ 65019 => 'AL',
+ 65020 => 'AL',
+ 65021 => 'ON',
+ 65024 => 'NSM',
+ 65025 => 'NSM',
+ 65026 => 'NSM',
+ 65027 => 'NSM',
+ 65028 => 'NSM',
+ 65029 => 'NSM',
+ 65030 => 'NSM',
+ 65031 => 'NSM',
+ 65032 => 'NSM',
+ 65033 => 'NSM',
+ 65034 => 'NSM',
+ 65035 => 'NSM',
+ 65036 => 'NSM',
+ 65037 => 'NSM',
+ 65038 => 'NSM',
+ 65039 => 'NSM',
+ 65040 => 'ON',
+ 65041 => 'ON',
+ 65042 => 'ON',
+ 65043 => 'ON',
+ 65044 => 'ON',
+ 65045 => 'ON',
+ 65046 => 'ON',
+ 65047 => 'ON',
+ 65048 => 'ON',
+ 65049 => 'ON',
+ 65056 => 'NSM',
+ 65057 => 'NSM',
+ 65058 => 'NSM',
+ 65059 => 'NSM',
+ 65072 => 'ON',
+ 65073 => 'ON',
+ 65074 => 'ON',
+ 65075 => 'ON',
+ 65076 => 'ON',
+ 65077 => 'ON',
+ 65078 => 'ON',
+ 65079 => 'ON',
+ 65080 => 'ON',
+ 65081 => 'ON',
+ 65082 => 'ON',
+ 65083 => 'ON',
+ 65084 => 'ON',
+ 65085 => 'ON',
+ 65086 => 'ON',
+ 65087 => 'ON',
+ 65088 => 'ON',
+ 65089 => 'ON',
+ 65090 => 'ON',
+ 65091 => 'ON',
+ 65092 => 'ON',
+ 65093 => 'ON',
+ 65094 => 'ON',
+ 65095 => 'ON',
+ 65096 => 'ON',
+ 65097 => 'ON',
+ 65098 => 'ON',
+ 65099 => 'ON',
+ 65100 => 'ON',
+ 65101 => 'ON',
+ 65102 => 'ON',
+ 65103 => 'ON',
+ 65104 => 'CS',
+ 65105 => 'ON',
+ 65106 => 'CS',
+ 65108 => 'ON',
+ 65109 => 'CS',
+ 65110 => 'ON',
+ 65111 => 'ON',
+ 65112 => 'ON',
+ 65113 => 'ON',
+ 65114 => 'ON',
+ 65115 => 'ON',
+ 65116 => 'ON',
+ 65117 => 'ON',
+ 65118 => 'ON',
+ 65119 => 'ET',
+ 65120 => 'ON',
+ 65121 => 'ON',
+ 65122 => 'ES',
+ 65123 => 'ES',
+ 65124 => 'ON',
+ 65125 => 'ON',
+ 65126 => 'ON',
+ 65128 => 'ON',
+ 65129 => 'ET',
+ 65130 => 'ET',
+ 65131 => 'ON',
+ 65136 => 'AL',
+ 65137 => 'AL',
+ 65138 => 'AL',
+ 65139 => 'AL',
+ 65140 => 'AL',
+ 65142 => 'AL',
+ 65143 => 'AL',
+ 65144 => 'AL',
+ 65145 => 'AL',
+ 65146 => 'AL',
+ 65147 => 'AL',
+ 65148 => 'AL',
+ 65149 => 'AL',
+ 65150 => 'AL',
+ 65151 => 'AL',
+ 65152 => 'AL',
+ 65153 => 'AL',
+ 65154 => 'AL',
+ 65155 => 'AL',
+ 65156 => 'AL',
+ 65157 => 'AL',
+ 65158 => 'AL',
+ 65159 => 'AL',
+ 65160 => 'AL',
+ 65161 => 'AL',
+ 65162 => 'AL',
+ 65163 => 'AL',
+ 65164 => 'AL',
+ 65165 => 'AL',
+ 65166 => 'AL',
+ 65167 => 'AL',
+ 65168 => 'AL',
+ 65169 => 'AL',
+ 65170 => 'AL',
+ 65171 => 'AL',
+ 65172 => 'AL',
+ 65173 => 'AL',
+ 65174 => 'AL',
+ 65175 => 'AL',
+ 65176 => 'AL',
+ 65177 => 'AL',
+ 65178 => 'AL',
+ 65179 => 'AL',
+ 65180 => 'AL',
+ 65181 => 'AL',
+ 65182 => 'AL',
+ 65183 => 'AL',
+ 65184 => 'AL',
+ 65185 => 'AL',
+ 65186 => 'AL',
+ 65187 => 'AL',
+ 65188 => 'AL',
+ 65189 => 'AL',
+ 65190 => 'AL',
+ 65191 => 'AL',
+ 65192 => 'AL',
+ 65193 => 'AL',
+ 65194 => 'AL',
+ 65195 => 'AL',
+ 65196 => 'AL',
+ 65197 => 'AL',
+ 65198 => 'AL',
+ 65199 => 'AL',
+ 65200 => 'AL',
+ 65201 => 'AL',
+ 65202 => 'AL',
+ 65203 => 'AL',
+ 65204 => 'AL',
+ 65205 => 'AL',
+ 65206 => 'AL',
+ 65207 => 'AL',
+ 65208 => 'AL',
+ 65209 => 'AL',
+ 65210 => 'AL',
+ 65211 => 'AL',
+ 65212 => 'AL',
+ 65213 => 'AL',
+ 65214 => 'AL',
+ 65215 => 'AL',
+ 65216 => 'AL',
+ 65217 => 'AL',
+ 65218 => 'AL',
+ 65219 => 'AL',
+ 65220 => 'AL',
+ 65221 => 'AL',
+ 65222 => 'AL',
+ 65223 => 'AL',
+ 65224 => 'AL',
+ 65225 => 'AL',
+ 65226 => 'AL',
+ 65227 => 'AL',
+ 65228 => 'AL',
+ 65229 => 'AL',
+ 65230 => 'AL',
+ 65231 => 'AL',
+ 65232 => 'AL',
+ 65233 => 'AL',
+ 65234 => 'AL',
+ 65235 => 'AL',
+ 65236 => 'AL',
+ 65237 => 'AL',
+ 65238 => 'AL',
+ 65239 => 'AL',
+ 65240 => 'AL',
+ 65241 => 'AL',
+ 65242 => 'AL',
+ 65243 => 'AL',
+ 65244 => 'AL',
+ 65245 => 'AL',
+ 65246 => 'AL',
+ 65247 => 'AL',
+ 65248 => 'AL',
+ 65249 => 'AL',
+ 65250 => 'AL',
+ 65251 => 'AL',
+ 65252 => 'AL',
+ 65253 => 'AL',
+ 65254 => 'AL',
+ 65255 => 'AL',
+ 65256 => 'AL',
+ 65257 => 'AL',
+ 65258 => 'AL',
+ 65259 => 'AL',
+ 65260 => 'AL',
+ 65261 => 'AL',
+ 65262 => 'AL',
+ 65263 => 'AL',
+ 65264 => 'AL',
+ 65265 => 'AL',
+ 65266 => 'AL',
+ 65267 => 'AL',
+ 65268 => 'AL',
+ 65269 => 'AL',
+ 65270 => 'AL',
+ 65271 => 'AL',
+ 65272 => 'AL',
+ 65273 => 'AL',
+ 65274 => 'AL',
+ 65275 => 'AL',
+ 65276 => 'AL',
+ 65279 => 'BN',
+ 65281 => 'ON',
+ 65282 => 'ON',
+ 65283 => 'ET',
+ 65284 => 'ET',
+ 65285 => 'ET',
+ 65286 => 'ON',
+ 65287 => 'ON',
+ 65288 => 'ON',
+ 65289 => 'ON',
+ 65290 => 'ON',
+ 65291 => 'ES',
+ 65292 => 'CS',
+ 65293 => 'ES',
+ 65294 => 'CS',
+ 65295 => 'CS',
+ 65296 => 'EN',
+ 65297 => 'EN',
+ 65298 => 'EN',
+ 65299 => 'EN',
+ 65300 => 'EN',
+ 65301 => 'EN',
+ 65302 => 'EN',
+ 65303 => 'EN',
+ 65304 => 'EN',
+ 65305 => 'EN',
+ 65306 => 'CS',
+ 65307 => 'ON',
+ 65308 => 'ON',
+ 65309 => 'ON',
+ 65310 => 'ON',
+ 65311 => 'ON',
+ 65312 => 'ON',
+ 65313 => 'L',
+ 65314 => 'L',
+ 65315 => 'L',
+ 65316 => 'L',
+ 65317 => 'L',
+ 65318 => 'L',
+ 65319 => 'L',
+ 65320 => 'L',
+ 65321 => 'L',
+ 65322 => 'L',
+ 65323 => 'L',
+ 65324 => 'L',
+ 65325 => 'L',
+ 65326 => 'L',
+ 65327 => 'L',
+ 65328 => 'L',
+ 65329 => 'L',
+ 65330 => 'L',
+ 65331 => 'L',
+ 65332 => 'L',
+ 65333 => 'L',
+ 65334 => 'L',
+ 65335 => 'L',
+ 65336 => 'L',
+ 65337 => 'L',
+ 65338 => 'L',
+ 65339 => 'ON',
+ 65340 => 'ON',
+ 65341 => 'ON',
+ 65342 => 'ON',
+ 65343 => 'ON',
+ 65344 => 'ON',
+ 65345 => 'L',
+ 65346 => 'L',
+ 65347 => 'L',
+ 65348 => 'L',
+ 65349 => 'L',
+ 65350 => 'L',
+ 65351 => 'L',
+ 65352 => 'L',
+ 65353 => 'L',
+ 65354 => 'L',
+ 65355 => 'L',
+ 65356 => 'L',
+ 65357 => 'L',
+ 65358 => 'L',
+ 65359 => 'L',
+ 65360 => 'L',
+ 65361 => 'L',
+ 65362 => 'L',
+ 65363 => 'L',
+ 65364 => 'L',
+ 65365 => 'L',
+ 65366 => 'L',
+ 65367 => 'L',
+ 65368 => 'L',
+ 65369 => 'L',
+ 65370 => 'L',
+ 65371 => 'ON',
+ 65372 => 'ON',
+ 65373 => 'ON',
+ 65374 => 'ON',
+ 65375 => 'ON',
+ 65376 => 'ON',
+ 65377 => 'ON',
+ 65378 => 'ON',
+ 65379 => 'ON',
+ 65380 => 'ON',
+ 65381 => 'ON',
+ 65382 => 'L',
+ 65383 => 'L',
+ 65384 => 'L',
+ 65385 => 'L',
+ 65386 => 'L',
+ 65387 => 'L',
+ 65388 => 'L',
+ 65389 => 'L',
+ 65390 => 'L',
+ 65391 => 'L',
+ 65392 => 'L',
+ 65393 => 'L',
+ 65394 => 'L',
+ 65395 => 'L',
+ 65396 => 'L',
+ 65397 => 'L',
+ 65398 => 'L',
+ 65399 => 'L',
+ 65400 => 'L',
+ 65401 => 'L',
+ 65402 => 'L',
+ 65403 => 'L',
+ 65404 => 'L',
+ 65405 => 'L',
+ 65406 => 'L',
+ 65407 => 'L',
+ 65408 => 'L',
+ 65409 => 'L',
+ 65410 => 'L',
+ 65411 => 'L',
+ 65412 => 'L',
+ 65413 => 'L',
+ 65414 => 'L',
+ 65415 => 'L',
+ 65416 => 'L',
+ 65417 => 'L',
+ 65418 => 'L',
+ 65419 => 'L',
+ 65420 => 'L',
+ 65421 => 'L',
+ 65422 => 'L',
+ 65423 => 'L',
+ 65424 => 'L',
+ 65425 => 'L',
+ 65426 => 'L',
+ 65427 => 'L',
+ 65428 => 'L',
+ 65429 => 'L',
+ 65430 => 'L',
+ 65431 => 'L',
+ 65432 => 'L',
+ 65433 => 'L',
+ 65434 => 'L',
+ 65435 => 'L',
+ 65436 => 'L',
+ 65437 => 'L',
+ 65438 => 'L',
+ 65439 => 'L',
+ 65440 => 'L',
+ 65441 => 'L',
+ 65442 => 'L',
+ 65443 => 'L',
+ 65444 => 'L',
+ 65445 => 'L',
+ 65446 => 'L',
+ 65447 => 'L',
+ 65448 => 'L',
+ 65449 => 'L',
+ 65450 => 'L',
+ 65451 => 'L',
+ 65452 => 'L',
+ 65453 => 'L',
+ 65454 => 'L',
+ 65455 => 'L',
+ 65456 => 'L',
+ 65457 => 'L',
+ 65458 => 'L',
+ 65459 => 'L',
+ 65460 => 'L',
+ 65461 => 'L',
+ 65462 => 'L',
+ 65463 => 'L',
+ 65464 => 'L',
+ 65465 => 'L',
+ 65466 => 'L',
+ 65467 => 'L',
+ 65468 => 'L',
+ 65469 => 'L',
+ 65470 => 'L',
+ 65474 => 'L',
+ 65475 => 'L',
+ 65476 => 'L',
+ 65477 => 'L',
+ 65478 => 'L',
+ 65479 => 'L',
+ 65482 => 'L',
+ 65483 => 'L',
+ 65484 => 'L',
+ 65485 => 'L',
+ 65486 => 'L',
+ 65487 => 'L',
+ 65490 => 'L',
+ 65491 => 'L',
+ 65492 => 'L',
+ 65493 => 'L',
+ 65494 => 'L',
+ 65495 => 'L',
+ 65498 => 'L',
+ 65499 => 'L',
+ 65500 => 'L',
+ 65504 => 'ET',
+ 65505 => 'ET',
+ 65506 => 'ON',
+ 65507 => 'ON',
+ 65508 => 'ON',
+ 65509 => 'ET',
+ 65510 => 'ET',
+ 65512 => 'ON',
+ 65513 => 'ON',
+ 65514 => 'ON',
+ 65515 => 'ON',
+ 65516 => 'ON',
+ 65517 => 'ON',
+ 65518 => 'ON',
+ 65529 => 'ON',
+ 65530 => 'ON',
+ 65531 => 'ON',
+ 65532 => 'ON',
+ 65533 => 'ON',
+ 65536 => 'L',
+ 65537 => 'L',
+ 65538 => 'L',
+ 65539 => 'L',
+ 65540 => 'L',
+ 65541 => 'L',
+ 65542 => 'L',
+ 65543 => 'L',
+ 65544 => 'L',
+ 65545 => 'L',
+ 65546 => 'L',
+ 65547 => 'L',
+ 65549 => 'L',
+ 65550 => 'L',
+ 65551 => 'L',
+ 65552 => 'L',
+ 65553 => 'L',
+ 65554 => 'L',
+ 65555 => 'L',
+ 65556 => 'L',
+ 65557 => 'L',
+ 65558 => 'L',
+ 65559 => 'L',
+ 65560 => 'L',
+ 65561 => 'L',
+ 65562 => 'L',
+ 65563 => 'L',
+ 65564 => 'L',
+ 65565 => 'L',
+ 65566 => 'L',
+ 65567 => 'L',
+ 65568 => 'L',
+ 65569 => 'L',
+ 65570 => 'L',
+ 65571 => 'L',
+ 65572 => 'L',
+ 65573 => 'L',
+ 65574 => 'L',
+ 65576 => 'L',
+ 65577 => 'L',
+ 65578 => 'L',
+ 65579 => 'L',
+ 65580 => 'L',
+ 65581 => 'L',
+ 65582 => 'L',
+ 65583 => 'L',
+ 65584 => 'L',
+ 65585 => 'L',
+ 65586 => 'L',
+ 65587 => 'L',
+ 65588 => 'L',
+ 65589 => 'L',
+ 65590 => 'L',
+ 65591 => 'L',
+ 65592 => 'L',
+ 65593 => 'L',
+ 65594 => 'L',
+ 65596 => 'L',
+ 65597 => 'L',
+ 65599 => 'L',
+ 65600 => 'L',
+ 65601 => 'L',
+ 65602 => 'L',
+ 65603 => 'L',
+ 65604 => 'L',
+ 65605 => 'L',
+ 65606 => 'L',
+ 65607 => 'L',
+ 65608 => 'L',
+ 65609 => 'L',
+ 65610 => 'L',
+ 65611 => 'L',
+ 65612 => 'L',
+ 65613 => 'L',
+ 65616 => 'L',
+ 65617 => 'L',
+ 65618 => 'L',
+ 65619 => 'L',
+ 65620 => 'L',
+ 65621 => 'L',
+ 65622 => 'L',
+ 65623 => 'L',
+ 65624 => 'L',
+ 65625 => 'L',
+ 65626 => 'L',
+ 65627 => 'L',
+ 65628 => 'L',
+ 65629 => 'L',
+ 65664 => 'L',
+ 65665 => 'L',
+ 65666 => 'L',
+ 65667 => 'L',
+ 65668 => 'L',
+ 65669 => 'L',
+ 65670 => 'L',
+ 65671 => 'L',
+ 65672 => 'L',
+ 65673 => 'L',
+ 65674 => 'L',
+ 65675 => 'L',
+ 65676 => 'L',
+ 65677 => 'L',
+ 65678 => 'L',
+ 65679 => 'L',
+ 65680 => 'L',
+ 65681 => 'L',
+ 65682 => 'L',
+ 65683 => 'L',
+ 65684 => 'L',
+ 65685 => 'L',
+ 65686 => 'L',
+ 65687 => 'L',
+ 65688 => 'L',
+ 65689 => 'L',
+ 65690 => 'L',
+ 65691 => 'L',
+ 65692 => 'L',
+ 65693 => 'L',
+ 65694 => 'L',
+ 65695 => 'L',
+ 65696 => 'L',
+ 65697 => 'L',
+ 65698 => 'L',
+ 65699 => 'L',
+ 65700 => 'L',
+ 65701 => 'L',
+ 65702 => 'L',
+ 65703 => 'L',
+ 65704 => 'L',
+ 65705 => 'L',
+ 65706 => 'L',
+ 65707 => 'L',
+ 65708 => 'L',
+ 65709 => 'L',
+ 65710 => 'L',
+ 65711 => 'L',
+ 65712 => 'L',
+ 65713 => 'L',
+ 65714 => 'L',
+ 65715 => 'L',
+ 65716 => 'L',
+ 65717 => 'L',
+ 65718 => 'L',
+ 65719 => 'L',
+ 65720 => 'L',
+ 65721 => 'L',
+ 65722 => 'L',
+ 65723 => 'L',
+ 65724 => 'L',
+ 65725 => 'L',
+ 65726 => 'L',
+ 65727 => 'L',
+ 65728 => 'L',
+ 65729 => 'L',
+ 65730 => 'L',
+ 65731 => 'L',
+ 65732 => 'L',
+ 65733 => 'L',
+ 65734 => 'L',
+ 65735 => 'L',
+ 65736 => 'L',
+ 65737 => 'L',
+ 65738 => 'L',
+ 65739 => 'L',
+ 65740 => 'L',
+ 65741 => 'L',
+ 65742 => 'L',
+ 65743 => 'L',
+ 65744 => 'L',
+ 65745 => 'L',
+ 65746 => 'L',
+ 65747 => 'L',
+ 65748 => 'L',
+ 65749 => 'L',
+ 65750 => 'L',
+ 65751 => 'L',
+ 65752 => 'L',
+ 65753 => 'L',
+ 65754 => 'L',
+ 65755 => 'L',
+ 65756 => 'L',
+ 65757 => 'L',
+ 65758 => 'L',
+ 65759 => 'L',
+ 65760 => 'L',
+ 65761 => 'L',
+ 65762 => 'L',
+ 65763 => 'L',
+ 65764 => 'L',
+ 65765 => 'L',
+ 65766 => 'L',
+ 65767 => 'L',
+ 65768 => 'L',
+ 65769 => 'L',
+ 65770 => 'L',
+ 65771 => 'L',
+ 65772 => 'L',
+ 65773 => 'L',
+ 65774 => 'L',
+ 65775 => 'L',
+ 65776 => 'L',
+ 65777 => 'L',
+ 65778 => 'L',
+ 65779 => 'L',
+ 65780 => 'L',
+ 65781 => 'L',
+ 65782 => 'L',
+ 65783 => 'L',
+ 65784 => 'L',
+ 65785 => 'L',
+ 65786 => 'L',
+ 65792 => 'L',
+ 65793 => 'ON',
+ 65794 => 'L',
+ 65799 => 'L',
+ 65800 => 'L',
+ 65801 => 'L',
+ 65802 => 'L',
+ 65803 => 'L',
+ 65804 => 'L',
+ 65805 => 'L',
+ 65806 => 'L',
+ 65807 => 'L',
+ 65808 => 'L',
+ 65809 => 'L',
+ 65810 => 'L',
+ 65811 => 'L',
+ 65812 => 'L',
+ 65813 => 'L',
+ 65814 => 'L',
+ 65815 => 'L',
+ 65816 => 'L',
+ 65817 => 'L',
+ 65818 => 'L',
+ 65819 => 'L',
+ 65820 => 'L',
+ 65821 => 'L',
+ 65822 => 'L',
+ 65823 => 'L',
+ 65824 => 'L',
+ 65825 => 'L',
+ 65826 => 'L',
+ 65827 => 'L',
+ 65828 => 'L',
+ 65829 => 'L',
+ 65830 => 'L',
+ 65831 => 'L',
+ 65832 => 'L',
+ 65833 => 'L',
+ 65834 => 'L',
+ 65835 => 'L',
+ 65836 => 'L',
+ 65837 => 'L',
+ 65838 => 'L',
+ 65839 => 'L',
+ 65840 => 'L',
+ 65841 => 'L',
+ 65842 => 'L',
+ 65843 => 'L',
+ 65847 => 'L',
+ 65848 => 'L',
+ 65849 => 'L',
+ 65850 => 'L',
+ 65851 => 'L',
+ 65852 => 'L',
+ 65853 => 'L',
+ 65854 => 'L',
+ 65855 => 'L',
+ 65856 => 'ON',
+ 65857 => 'ON',
+ 65858 => 'ON',
+ 65859 => 'ON',
+ 65860 => 'ON',
+ 65861 => 'ON',
+ 65862 => 'ON',
+ 65863 => 'ON',
+ 65864 => 'ON',
+ 65865 => 'ON',
+ 65866 => 'ON',
+ 65867 => 'ON',
+ 65868 => 'ON',
+ 65869 => 'ON',
+ 65870 => 'ON',
+ 65871 => 'ON',
+ 65872 => 'ON',
+ 65873 => 'ON',
+ 65874 => 'ON',
+ 65875 => 'ON',
+ 65876 => 'ON',
+ 65877 => 'ON',
+ 65878 => 'ON',
+ 65879 => 'ON',
+ 65880 => 'ON',
+ 65881 => 'ON',
+ 65882 => 'ON',
+ 65883 => 'ON',
+ 65884 => 'ON',
+ 65885 => 'ON',
+ 65886 => 'ON',
+ 65887 => 'ON',
+ 65888 => 'ON',
+ 65889 => 'ON',
+ 65890 => 'ON',
+ 65891 => 'ON',
+ 65892 => 'ON',
+ 65893 => 'ON',
+ 65894 => 'ON',
+ 65895 => 'ON',
+ 65896 => 'ON',
+ 65897 => 'ON',
+ 65898 => 'ON',
+ 65899 => 'ON',
+ 65900 => 'ON',
+ 65901 => 'ON',
+ 65902 => 'ON',
+ 65903 => 'ON',
+ 65904 => 'ON',
+ 65905 => 'ON',
+ 65906 => 'ON',
+ 65907 => 'ON',
+ 65908 => 'ON',
+ 65909 => 'ON',
+ 65910 => 'ON',
+ 65911 => 'ON',
+ 65912 => 'ON',
+ 65913 => 'ON',
+ 65914 => 'ON',
+ 65915 => 'ON',
+ 65916 => 'ON',
+ 65917 => 'ON',
+ 65918 => 'ON',
+ 65919 => 'ON',
+ 65920 => 'ON',
+ 65921 => 'ON',
+ 65922 => 'ON',
+ 65923 => 'ON',
+ 65924 => 'ON',
+ 65925 => 'ON',
+ 65926 => 'ON',
+ 65927 => 'ON',
+ 65928 => 'ON',
+ 65929 => 'ON',
+ 65930 => 'ON',
+ 66304 => 'L',
+ 66305 => 'L',
+ 66306 => 'L',
+ 66307 => 'L',
+ 66308 => 'L',
+ 66309 => 'L',
+ 66310 => 'L',
+ 66311 => 'L',
+ 66312 => 'L',
+ 66313 => 'L',
+ 66314 => 'L',
+ 66315 => 'L',
+ 66316 => 'L',
+ 66317 => 'L',
+ 66318 => 'L',
+ 66319 => 'L',
+ 66320 => 'L',
+ 66321 => 'L',
+ 66322 => 'L',
+ 66323 => 'L',
+ 66324 => 'L',
+ 66325 => 'L',
+ 66326 => 'L',
+ 66327 => 'L',
+ 66328 => 'L',
+ 66329 => 'L',
+ 66330 => 'L',
+ 66331 => 'L',
+ 66332 => 'L',
+ 66333 => 'L',
+ 66334 => 'L',
+ 66336 => 'L',
+ 66337 => 'L',
+ 66338 => 'L',
+ 66339 => 'L',
+ 66352 => 'L',
+ 66353 => 'L',
+ 66354 => 'L',
+ 66355 => 'L',
+ 66356 => 'L',
+ 66357 => 'L',
+ 66358 => 'L',
+ 66359 => 'L',
+ 66360 => 'L',
+ 66361 => 'L',
+ 66362 => 'L',
+ 66363 => 'L',
+ 66364 => 'L',
+ 66365 => 'L',
+ 66366 => 'L',
+ 66367 => 'L',
+ 66368 => 'L',
+ 66369 => 'L',
+ 66370 => 'L',
+ 66371 => 'L',
+ 66372 => 'L',
+ 66373 => 'L',
+ 66374 => 'L',
+ 66375 => 'L',
+ 66376 => 'L',
+ 66377 => 'L',
+ 66378 => 'L',
+ 66432 => 'L',
+ 66433 => 'L',
+ 66434 => 'L',
+ 66435 => 'L',
+ 66436 => 'L',
+ 66437 => 'L',
+ 66438 => 'L',
+ 66439 => 'L',
+ 66440 => 'L',
+ 66441 => 'L',
+ 66442 => 'L',
+ 66443 => 'L',
+ 66444 => 'L',
+ 66445 => 'L',
+ 66446 => 'L',
+ 66447 => 'L',
+ 66448 => 'L',
+ 66449 => 'L',
+ 66450 => 'L',
+ 66451 => 'L',
+ 66452 => 'L',
+ 66453 => 'L',
+ 66454 => 'L',
+ 66455 => 'L',
+ 66456 => 'L',
+ 66457 => 'L',
+ 66458 => 'L',
+ 66459 => 'L',
+ 66460 => 'L',
+ 66461 => 'L',
+ 66463 => 'L',
+ 66464 => 'L',
+ 66465 => 'L',
+ 66466 => 'L',
+ 66467 => 'L',
+ 66468 => 'L',
+ 66469 => 'L',
+ 66470 => 'L',
+ 66471 => 'L',
+ 66472 => 'L',
+ 66473 => 'L',
+ 66474 => 'L',
+ 66475 => 'L',
+ 66476 => 'L',
+ 66477 => 'L',
+ 66478 => 'L',
+ 66479 => 'L',
+ 66480 => 'L',
+ 66481 => 'L',
+ 66482 => 'L',
+ 66483 => 'L',
+ 66484 => 'L',
+ 66485 => 'L',
+ 66486 => 'L',
+ 66487 => 'L',
+ 66488 => 'L',
+ 66489 => 'L',
+ 66490 => 'L',
+ 66491 => 'L',
+ 66492 => 'L',
+ 66493 => 'L',
+ 66494 => 'L',
+ 66495 => 'L',
+ 66496 => 'L',
+ 66497 => 'L',
+ 66498 => 'L',
+ 66499 => 'L',
+ 66504 => 'L',
+ 66505 => 'L',
+ 66506 => 'L',
+ 66507 => 'L',
+ 66508 => 'L',
+ 66509 => 'L',
+ 66510 => 'L',
+ 66511 => 'L',
+ 66512 => 'L',
+ 66513 => 'L',
+ 66514 => 'L',
+ 66515 => 'L',
+ 66516 => 'L',
+ 66517 => 'L',
+ 66560 => 'L',
+ 66561 => 'L',
+ 66562 => 'L',
+ 66563 => 'L',
+ 66564 => 'L',
+ 66565 => 'L',
+ 66566 => 'L',
+ 66567 => 'L',
+ 66568 => 'L',
+ 66569 => 'L',
+ 66570 => 'L',
+ 66571 => 'L',
+ 66572 => 'L',
+ 66573 => 'L',
+ 66574 => 'L',
+ 66575 => 'L',
+ 66576 => 'L',
+ 66577 => 'L',
+ 66578 => 'L',
+ 66579 => 'L',
+ 66580 => 'L',
+ 66581 => 'L',
+ 66582 => 'L',
+ 66583 => 'L',
+ 66584 => 'L',
+ 66585 => 'L',
+ 66586 => 'L',
+ 66587 => 'L',
+ 66588 => 'L',
+ 66589 => 'L',
+ 66590 => 'L',
+ 66591 => 'L',
+ 66592 => 'L',
+ 66593 => 'L',
+ 66594 => 'L',
+ 66595 => 'L',
+ 66596 => 'L',
+ 66597 => 'L',
+ 66598 => 'L',
+ 66599 => 'L',
+ 66600 => 'L',
+ 66601 => 'L',
+ 66602 => 'L',
+ 66603 => 'L',
+ 66604 => 'L',
+ 66605 => 'L',
+ 66606 => 'L',
+ 66607 => 'L',
+ 66608 => 'L',
+ 66609 => 'L',
+ 66610 => 'L',
+ 66611 => 'L',
+ 66612 => 'L',
+ 66613 => 'L',
+ 66614 => 'L',
+ 66615 => 'L',
+ 66616 => 'L',
+ 66617 => 'L',
+ 66618 => 'L',
+ 66619 => 'L',
+ 66620 => 'L',
+ 66621 => 'L',
+ 66622 => 'L',
+ 66623 => 'L',
+ 66624 => 'L',
+ 66625 => 'L',
+ 66626 => 'L',
+ 66627 => 'L',
+ 66628 => 'L',
+ 66629 => 'L',
+ 66630 => 'L',
+ 66631 => 'L',
+ 66632 => 'L',
+ 66633 => 'L',
+ 66634 => 'L',
+ 66635 => 'L',
+ 66636 => 'L',
+ 66637 => 'L',
+ 66638 => 'L',
+ 66639 => 'L',
+ 66640 => 'L',
+ 66641 => 'L',
+ 66642 => 'L',
+ 66643 => 'L',
+ 66644 => 'L',
+ 66645 => 'L',
+ 66646 => 'L',
+ 66647 => 'L',
+ 66648 => 'L',
+ 66649 => 'L',
+ 66650 => 'L',
+ 66651 => 'L',
+ 66652 => 'L',
+ 66653 => 'L',
+ 66654 => 'L',
+ 66655 => 'L',
+ 66656 => 'L',
+ 66657 => 'L',
+ 66658 => 'L',
+ 66659 => 'L',
+ 66660 => 'L',
+ 66661 => 'L',
+ 66662 => 'L',
+ 66663 => 'L',
+ 66664 => 'L',
+ 66665 => 'L',
+ 66666 => 'L',
+ 66667 => 'L',
+ 66668 => 'L',
+ 66669 => 'L',
+ 66670 => 'L',
+ 66671 => 'L',
+ 66672 => 'L',
+ 66673 => 'L',
+ 66674 => 'L',
+ 66675 => 'L',
+ 66676 => 'L',
+ 66677 => 'L',
+ 66678 => 'L',
+ 66679 => 'L',
+ 66680 => 'L',
+ 66681 => 'L',
+ 66682 => 'L',
+ 66683 => 'L',
+ 66684 => 'L',
+ 66685 => 'L',
+ 66686 => 'L',
+ 66687 => 'L',
+ 66688 => 'L',
+ 66689 => 'L',
+ 66690 => 'L',
+ 66691 => 'L',
+ 66692 => 'L',
+ 66693 => 'L',
+ 66694 => 'L',
+ 66695 => 'L',
+ 66696 => 'L',
+ 66697 => 'L',
+ 66698 => 'L',
+ 66699 => 'L',
+ 66700 => 'L',
+ 66701 => 'L',
+ 66702 => 'L',
+ 66703 => 'L',
+ 66704 => 'L',
+ 66705 => 'L',
+ 66706 => 'L',
+ 66707 => 'L',
+ 66708 => 'L',
+ 66709 => 'L',
+ 66710 => 'L',
+ 66711 => 'L',
+ 66712 => 'L',
+ 66713 => 'L',
+ 66714 => 'L',
+ 66715 => 'L',
+ 66716 => 'L',
+ 66717 => 'L',
+ 66720 => 'L',
+ 66721 => 'L',
+ 66722 => 'L',
+ 66723 => 'L',
+ 66724 => 'L',
+ 66725 => 'L',
+ 66726 => 'L',
+ 66727 => 'L',
+ 66728 => 'L',
+ 66729 => 'L',
+ 67584 => 'R',
+ 67585 => 'R',
+ 67586 => 'R',
+ 67587 => 'R',
+ 67588 => 'R',
+ 67589 => 'R',
+ 67592 => 'R',
+ 67594 => 'R',
+ 67595 => 'R',
+ 67596 => 'R',
+ 67597 => 'R',
+ 67598 => 'R',
+ 67599 => 'R',
+ 67600 => 'R',
+ 67601 => 'R',
+ 67602 => 'R',
+ 67603 => 'R',
+ 67604 => 'R',
+ 67605 => 'R',
+ 67606 => 'R',
+ 67607 => 'R',
+ 67608 => 'R',
+ 67609 => 'R',
+ 67610 => 'R',
+ 67611 => 'R',
+ 67612 => 'R',
+ 67613 => 'R',
+ 67614 => 'R',
+ 67615 => 'R',
+ 67616 => 'R',
+ 67617 => 'R',
+ 67618 => 'R',
+ 67619 => 'R',
+ 67620 => 'R',
+ 67621 => 'R',
+ 67622 => 'R',
+ 67623 => 'R',
+ 67624 => 'R',
+ 67625 => 'R',
+ 67626 => 'R',
+ 67627 => 'R',
+ 67628 => 'R',
+ 67629 => 'R',
+ 67630 => 'R',
+ 67631 => 'R',
+ 67632 => 'R',
+ 67633 => 'R',
+ 67634 => 'R',
+ 67635 => 'R',
+ 67636 => 'R',
+ 67637 => 'R',
+ 67639 => 'R',
+ 67640 => 'R',
+ 67644 => 'R',
+ 67647 => 'R',
+ 67840 => 'R',
+ 67841 => 'R',
+ 67842 => 'R',
+ 67843 => 'R',
+ 67844 => 'R',
+ 67845 => 'R',
+ 67846 => 'R',
+ 67847 => 'R',
+ 67848 => 'R',
+ 67849 => 'R',
+ 67850 => 'R',
+ 67851 => 'R',
+ 67852 => 'R',
+ 67853 => 'R',
+ 67854 => 'R',
+ 67855 => 'R',
+ 67856 => 'R',
+ 67857 => 'R',
+ 67858 => 'R',
+ 67859 => 'R',
+ 67860 => 'R',
+ 67861 => 'R',
+ 67862 => 'R',
+ 67863 => 'R',
+ 67864 => 'R',
+ 67865 => 'R',
+ 67871 => 'ON',
+ 68096 => 'R',
+ 68097 => 'NSM',
+ 68098 => 'NSM',
+ 68099 => 'NSM',
+ 68101 => 'NSM',
+ 68102 => 'NSM',
+ 68108 => 'NSM',
+ 68109 => 'NSM',
+ 68110 => 'NSM',
+ 68111 => 'NSM',
+ 68112 => 'R',
+ 68113 => 'R',
+ 68114 => 'R',
+ 68115 => 'R',
+ 68117 => 'R',
+ 68118 => 'R',
+ 68119 => 'R',
+ 68121 => 'R',
+ 68122 => 'R',
+ 68123 => 'R',
+ 68124 => 'R',
+ 68125 => 'R',
+ 68126 => 'R',
+ 68127 => 'R',
+ 68128 => 'R',
+ 68129 => 'R',
+ 68130 => 'R',
+ 68131 => 'R',
+ 68132 => 'R',
+ 68133 => 'R',
+ 68134 => 'R',
+ 68135 => 'R',
+ 68136 => 'R',
+ 68137 => 'R',
+ 68138 => 'R',
+ 68139 => 'R',
+ 68140 => 'R',
+ 68141 => 'R',
+ 68142 => 'R',
+ 68143 => 'R',
+ 68144 => 'R',
+ 68145 => 'R',
+ 68146 => 'R',
+ 68147 => 'R',
+ 68152 => 'NSM',
+ 68153 => 'NSM',
+ 68154 => 'NSM',
+ 68159 => 'NSM',
+ 68160 => 'R',
+ 68161 => 'R',
+ 68162 => 'R',
+ 68163 => 'R',
+ 68164 => 'R',
+ 68165 => 'R',
+ 68166 => 'R',
+ 68167 => 'R',
+ 68176 => 'R',
+ 68177 => 'R',
+ 68178 => 'R',
+ 68179 => 'R',
+ 68180 => 'R',
+ 68181 => 'R',
+ 68182 => 'R',
+ 68183 => 'R',
+ 68184 => 'R',
+ 73728 => 'L',
+ 73729 => 'L',
+ 73730 => 'L',
+ 73731 => 'L',
+ 73732 => 'L',
+ 73733 => 'L',
+ 73734 => 'L',
+ 73735 => 'L',
+ 73736 => 'L',
+ 73737 => 'L',
+ 73738 => 'L',
+ 73739 => 'L',
+ 73740 => 'L',
+ 73741 => 'L',
+ 73742 => 'L',
+ 73743 => 'L',
+ 73744 => 'L',
+ 73745 => 'L',
+ 73746 => 'L',
+ 73747 => 'L',
+ 73748 => 'L',
+ 73749 => 'L',
+ 73750 => 'L',
+ 73751 => 'L',
+ 73752 => 'L',
+ 73753 => 'L',
+ 73754 => 'L',
+ 73755 => 'L',
+ 73756 => 'L',
+ 73757 => 'L',
+ 73758 => 'L',
+ 73759 => 'L',
+ 73760 => 'L',
+ 73761 => 'L',
+ 73762 => 'L',
+ 73763 => 'L',
+ 73764 => 'L',
+ 73765 => 'L',
+ 73766 => 'L',
+ 73767 => 'L',
+ 73768 => 'L',
+ 73769 => 'L',
+ 73770 => 'L',
+ 73771 => 'L',
+ 73772 => 'L',
+ 73773 => 'L',
+ 73774 => 'L',
+ 73775 => 'L',
+ 73776 => 'L',
+ 73777 => 'L',
+ 73778 => 'L',
+ 73779 => 'L',
+ 73780 => 'L',
+ 73781 => 'L',
+ 73782 => 'L',
+ 73783 => 'L',
+ 73784 => 'L',
+ 73785 => 'L',
+ 73786 => 'L',
+ 73787 => 'L',
+ 73788 => 'L',
+ 73789 => 'L',
+ 73790 => 'L',
+ 73791 => 'L',
+ 73792 => 'L',
+ 73793 => 'L',
+ 73794 => 'L',
+ 73795 => 'L',
+ 73796 => 'L',
+ 73797 => 'L',
+ 73798 => 'L',
+ 73799 => 'L',
+ 73800 => 'L',
+ 73801 => 'L',
+ 73802 => 'L',
+ 73803 => 'L',
+ 73804 => 'L',
+ 73805 => 'L',
+ 73806 => 'L',
+ 73807 => 'L',
+ 73808 => 'L',
+ 73809 => 'L',
+ 73810 => 'L',
+ 73811 => 'L',
+ 73812 => 'L',
+ 73813 => 'L',
+ 73814 => 'L',
+ 73815 => 'L',
+ 73816 => 'L',
+ 73817 => 'L',
+ 73818 => 'L',
+ 73819 => 'L',
+ 73820 => 'L',
+ 73821 => 'L',
+ 73822 => 'L',
+ 73823 => 'L',
+ 73824 => 'L',
+ 73825 => 'L',
+ 73826 => 'L',
+ 73827 => 'L',
+ 73828 => 'L',
+ 73829 => 'L',
+ 73830 => 'L',
+ 73831 => 'L',
+ 73832 => 'L',
+ 73833 => 'L',
+ 73834 => 'L',
+ 73835 => 'L',
+ 73836 => 'L',
+ 73837 => 'L',
+ 73838 => 'L',
+ 73839 => 'L',
+ 73840 => 'L',
+ 73841 => 'L',
+ 73842 => 'L',
+ 73843 => 'L',
+ 73844 => 'L',
+ 73845 => 'L',
+ 73846 => 'L',
+ 73847 => 'L',
+ 73848 => 'L',
+ 73849 => 'L',
+ 73850 => 'L',
+ 73851 => 'L',
+ 73852 => 'L',
+ 73853 => 'L',
+ 73854 => 'L',
+ 73855 => 'L',
+ 73856 => 'L',
+ 73857 => 'L',
+ 73858 => 'L',
+ 73859 => 'L',
+ 73860 => 'L',
+ 73861 => 'L',
+ 73862 => 'L',
+ 73863 => 'L',
+ 73864 => 'L',
+ 73865 => 'L',
+ 73866 => 'L',
+ 73867 => 'L',
+ 73868 => 'L',
+ 73869 => 'L',
+ 73870 => 'L',
+ 73871 => 'L',
+ 73872 => 'L',
+ 73873 => 'L',
+ 73874 => 'L',
+ 73875 => 'L',
+ 73876 => 'L',
+ 73877 => 'L',
+ 73878 => 'L',
+ 73879 => 'L',
+ 73880 => 'L',
+ 73881 => 'L',
+ 73882 => 'L',
+ 73883 => 'L',
+ 73884 => 'L',
+ 73885 => 'L',
+ 73886 => 'L',
+ 73887 => 'L',
+ 73888 => 'L',
+ 73889 => 'L',
+ 73890 => 'L',
+ 73891 => 'L',
+ 73892 => 'L',
+ 73893 => 'L',
+ 73894 => 'L',
+ 73895 => 'L',
+ 73896 => 'L',
+ 73897 => 'L',
+ 73898 => 'L',
+ 73899 => 'L',
+ 73900 => 'L',
+ 73901 => 'L',
+ 73902 => 'L',
+ 73903 => 'L',
+ 73904 => 'L',
+ 73905 => 'L',
+ 73906 => 'L',
+ 73907 => 'L',
+ 73908 => 'L',
+ 73909 => 'L',
+ 73910 => 'L',
+ 73911 => 'L',
+ 73912 => 'L',
+ 73913 => 'L',
+ 73914 => 'L',
+ 73915 => 'L',
+ 73916 => 'L',
+ 73917 => 'L',
+ 73918 => 'L',
+ 73919 => 'L',
+ 73920 => 'L',
+ 73921 => 'L',
+ 73922 => 'L',
+ 73923 => 'L',
+ 73924 => 'L',
+ 73925 => 'L',
+ 73926 => 'L',
+ 73927 => 'L',
+ 73928 => 'L',
+ 73929 => 'L',
+ 73930 => 'L',
+ 73931 => 'L',
+ 73932 => 'L',
+ 73933 => 'L',
+ 73934 => 'L',
+ 73935 => 'L',
+ 73936 => 'L',
+ 73937 => 'L',
+ 73938 => 'L',
+ 73939 => 'L',
+ 73940 => 'L',
+ 73941 => 'L',
+ 73942 => 'L',
+ 73943 => 'L',
+ 73944 => 'L',
+ 73945 => 'L',
+ 73946 => 'L',
+ 73947 => 'L',
+ 73948 => 'L',
+ 73949 => 'L',
+ 73950 => 'L',
+ 73951 => 'L',
+ 73952 => 'L',
+ 73953 => 'L',
+ 73954 => 'L',
+ 73955 => 'L',
+ 73956 => 'L',
+ 73957 => 'L',
+ 73958 => 'L',
+ 73959 => 'L',
+ 73960 => 'L',
+ 73961 => 'L',
+ 73962 => 'L',
+ 73963 => 'L',
+ 73964 => 'L',
+ 73965 => 'L',
+ 73966 => 'L',
+ 73967 => 'L',
+ 73968 => 'L',
+ 73969 => 'L',
+ 73970 => 'L',
+ 73971 => 'L',
+ 73972 => 'L',
+ 73973 => 'L',
+ 73974 => 'L',
+ 73975 => 'L',
+ 73976 => 'L',
+ 73977 => 'L',
+ 73978 => 'L',
+ 73979 => 'L',
+ 73980 => 'L',
+ 73981 => 'L',
+ 73982 => 'L',
+ 73983 => 'L',
+ 73984 => 'L',
+ 73985 => 'L',
+ 73986 => 'L',
+ 73987 => 'L',
+ 73988 => 'L',
+ 73989 => 'L',
+ 73990 => 'L',
+ 73991 => 'L',
+ 73992 => 'L',
+ 73993 => 'L',
+ 73994 => 'L',
+ 73995 => 'L',
+ 73996 => 'L',
+ 73997 => 'L',
+ 73998 => 'L',
+ 73999 => 'L',
+ 74000 => 'L',
+ 74001 => 'L',
+ 74002 => 'L',
+ 74003 => 'L',
+ 74004 => 'L',
+ 74005 => 'L',
+ 74006 => 'L',
+ 74007 => 'L',
+ 74008 => 'L',
+ 74009 => 'L',
+ 74010 => 'L',
+ 74011 => 'L',
+ 74012 => 'L',
+ 74013 => 'L',
+ 74014 => 'L',
+ 74015 => 'L',
+ 74016 => 'L',
+ 74017 => 'L',
+ 74018 => 'L',
+ 74019 => 'L',
+ 74020 => 'L',
+ 74021 => 'L',
+ 74022 => 'L',
+ 74023 => 'L',
+ 74024 => 'L',
+ 74025 => 'L',
+ 74026 => 'L',
+ 74027 => 'L',
+ 74028 => 'L',
+ 74029 => 'L',
+ 74030 => 'L',
+ 74031 => 'L',
+ 74032 => 'L',
+ 74033 => 'L',
+ 74034 => 'L',
+ 74035 => 'L',
+ 74036 => 'L',
+ 74037 => 'L',
+ 74038 => 'L',
+ 74039 => 'L',
+ 74040 => 'L',
+ 74041 => 'L',
+ 74042 => 'L',
+ 74043 => 'L',
+ 74044 => 'L',
+ 74045 => 'L',
+ 74046 => 'L',
+ 74047 => 'L',
+ 74048 => 'L',
+ 74049 => 'L',
+ 74050 => 'L',
+ 74051 => 'L',
+ 74052 => 'L',
+ 74053 => 'L',
+ 74054 => 'L',
+ 74055 => 'L',
+ 74056 => 'L',
+ 74057 => 'L',
+ 74058 => 'L',
+ 74059 => 'L',
+ 74060 => 'L',
+ 74061 => 'L',
+ 74062 => 'L',
+ 74063 => 'L',
+ 74064 => 'L',
+ 74065 => 'L',
+ 74066 => 'L',
+ 74067 => 'L',
+ 74068 => 'L',
+ 74069 => 'L',
+ 74070 => 'L',
+ 74071 => 'L',
+ 74072 => 'L',
+ 74073 => 'L',
+ 74074 => 'L',
+ 74075 => 'L',
+ 74076 => 'L',
+ 74077 => 'L',
+ 74078 => 'L',
+ 74079 => 'L',
+ 74080 => 'L',
+ 74081 => 'L',
+ 74082 => 'L',
+ 74083 => 'L',
+ 74084 => 'L',
+ 74085 => 'L',
+ 74086 => 'L',
+ 74087 => 'L',
+ 74088 => 'L',
+ 74089 => 'L',
+ 74090 => 'L',
+ 74091 => 'L',
+ 74092 => 'L',
+ 74093 => 'L',
+ 74094 => 'L',
+ 74095 => 'L',
+ 74096 => 'L',
+ 74097 => 'L',
+ 74098 => 'L',
+ 74099 => 'L',
+ 74100 => 'L',
+ 74101 => 'L',
+ 74102 => 'L',
+ 74103 => 'L',
+ 74104 => 'L',
+ 74105 => 'L',
+ 74106 => 'L',
+ 74107 => 'L',
+ 74108 => 'L',
+ 74109 => 'L',
+ 74110 => 'L',
+ 74111 => 'L',
+ 74112 => 'L',
+ 74113 => 'L',
+ 74114 => 'L',
+ 74115 => 'L',
+ 74116 => 'L',
+ 74117 => 'L',
+ 74118 => 'L',
+ 74119 => 'L',
+ 74120 => 'L',
+ 74121 => 'L',
+ 74122 => 'L',
+ 74123 => 'L',
+ 74124 => 'L',
+ 74125 => 'L',
+ 74126 => 'L',
+ 74127 => 'L',
+ 74128 => 'L',
+ 74129 => 'L',
+ 74130 => 'L',
+ 74131 => 'L',
+ 74132 => 'L',
+ 74133 => 'L',
+ 74134 => 'L',
+ 74135 => 'L',
+ 74136 => 'L',
+ 74137 => 'L',
+ 74138 => 'L',
+ 74139 => 'L',
+ 74140 => 'L',
+ 74141 => 'L',
+ 74142 => 'L',
+ 74143 => 'L',
+ 74144 => 'L',
+ 74145 => 'L',
+ 74146 => 'L',
+ 74147 => 'L',
+ 74148 => 'L',
+ 74149 => 'L',
+ 74150 => 'L',
+ 74151 => 'L',
+ 74152 => 'L',
+ 74153 => 'L',
+ 74154 => 'L',
+ 74155 => 'L',
+ 74156 => 'L',
+ 74157 => 'L',
+ 74158 => 'L',
+ 74159 => 'L',
+ 74160 => 'L',
+ 74161 => 'L',
+ 74162 => 'L',
+ 74163 => 'L',
+ 74164 => 'L',
+ 74165 => 'L',
+ 74166 => 'L',
+ 74167 => 'L',
+ 74168 => 'L',
+ 74169 => 'L',
+ 74170 => 'L',
+ 74171 => 'L',
+ 74172 => 'L',
+ 74173 => 'L',
+ 74174 => 'L',
+ 74175 => 'L',
+ 74176 => 'L',
+ 74177 => 'L',
+ 74178 => 'L',
+ 74179 => 'L',
+ 74180 => 'L',
+ 74181 => 'L',
+ 74182 => 'L',
+ 74183 => 'L',
+ 74184 => 'L',
+ 74185 => 'L',
+ 74186 => 'L',
+ 74187 => 'L',
+ 74188 => 'L',
+ 74189 => 'L',
+ 74190 => 'L',
+ 74191 => 'L',
+ 74192 => 'L',
+ 74193 => 'L',
+ 74194 => 'L',
+ 74195 => 'L',
+ 74196 => 'L',
+ 74197 => 'L',
+ 74198 => 'L',
+ 74199 => 'L',
+ 74200 => 'L',
+ 74201 => 'L',
+ 74202 => 'L',
+ 74203 => 'L',
+ 74204 => 'L',
+ 74205 => 'L',
+ 74206 => 'L',
+ 74207 => 'L',
+ 74208 => 'L',
+ 74209 => 'L',
+ 74210 => 'L',
+ 74211 => 'L',
+ 74212 => 'L',
+ 74213 => 'L',
+ 74214 => 'L',
+ 74215 => 'L',
+ 74216 => 'L',
+ 74217 => 'L',
+ 74218 => 'L',
+ 74219 => 'L',
+ 74220 => 'L',
+ 74221 => 'L',
+ 74222 => 'L',
+ 74223 => 'L',
+ 74224 => 'L',
+ 74225 => 'L',
+ 74226 => 'L',
+ 74227 => 'L',
+ 74228 => 'L',
+ 74229 => 'L',
+ 74230 => 'L',
+ 74231 => 'L',
+ 74232 => 'L',
+ 74233 => 'L',
+ 74234 => 'L',
+ 74235 => 'L',
+ 74236 => 'L',
+ 74237 => 'L',
+ 74238 => 'L',
+ 74239 => 'L',
+ 74240 => 'L',
+ 74241 => 'L',
+ 74242 => 'L',
+ 74243 => 'L',
+ 74244 => 'L',
+ 74245 => 'L',
+ 74246 => 'L',
+ 74247 => 'L',
+ 74248 => 'L',
+ 74249 => 'L',
+ 74250 => 'L',
+ 74251 => 'L',
+ 74252 => 'L',
+ 74253 => 'L',
+ 74254 => 'L',
+ 74255 => 'L',
+ 74256 => 'L',
+ 74257 => 'L',
+ 74258 => 'L',
+ 74259 => 'L',
+ 74260 => 'L',
+ 74261 => 'L',
+ 74262 => 'L',
+ 74263 => 'L',
+ 74264 => 'L',
+ 74265 => 'L',
+ 74266 => 'L',
+ 74267 => 'L',
+ 74268 => 'L',
+ 74269 => 'L',
+ 74270 => 'L',
+ 74271 => 'L',
+ 74272 => 'L',
+ 74273 => 'L',
+ 74274 => 'L',
+ 74275 => 'L',
+ 74276 => 'L',
+ 74277 => 'L',
+ 74278 => 'L',
+ 74279 => 'L',
+ 74280 => 'L',
+ 74281 => 'L',
+ 74282 => 'L',
+ 74283 => 'L',
+ 74284 => 'L',
+ 74285 => 'L',
+ 74286 => 'L',
+ 74287 => 'L',
+ 74288 => 'L',
+ 74289 => 'L',
+ 74290 => 'L',
+ 74291 => 'L',
+ 74292 => 'L',
+ 74293 => 'L',
+ 74294 => 'L',
+ 74295 => 'L',
+ 74296 => 'L',
+ 74297 => 'L',
+ 74298 => 'L',
+ 74299 => 'L',
+ 74300 => 'L',
+ 74301 => 'L',
+ 74302 => 'L',
+ 74303 => 'L',
+ 74304 => 'L',
+ 74305 => 'L',
+ 74306 => 'L',
+ 74307 => 'L',
+ 74308 => 'L',
+ 74309 => 'L',
+ 74310 => 'L',
+ 74311 => 'L',
+ 74312 => 'L',
+ 74313 => 'L',
+ 74314 => 'L',
+ 74315 => 'L',
+ 74316 => 'L',
+ 74317 => 'L',
+ 74318 => 'L',
+ 74319 => 'L',
+ 74320 => 'L',
+ 74321 => 'L',
+ 74322 => 'L',
+ 74323 => 'L',
+ 74324 => 'L',
+ 74325 => 'L',
+ 74326 => 'L',
+ 74327 => 'L',
+ 74328 => 'L',
+ 74329 => 'L',
+ 74330 => 'L',
+ 74331 => 'L',
+ 74332 => 'L',
+ 74333 => 'L',
+ 74334 => 'L',
+ 74335 => 'L',
+ 74336 => 'L',
+ 74337 => 'L',
+ 74338 => 'L',
+ 74339 => 'L',
+ 74340 => 'L',
+ 74341 => 'L',
+ 74342 => 'L',
+ 74343 => 'L',
+ 74344 => 'L',
+ 74345 => 'L',
+ 74346 => 'L',
+ 74347 => 'L',
+ 74348 => 'L',
+ 74349 => 'L',
+ 74350 => 'L',
+ 74351 => 'L',
+ 74352 => 'L',
+ 74353 => 'L',
+ 74354 => 'L',
+ 74355 => 'L',
+ 74356 => 'L',
+ 74357 => 'L',
+ 74358 => 'L',
+ 74359 => 'L',
+ 74360 => 'L',
+ 74361 => 'L',
+ 74362 => 'L',
+ 74363 => 'L',
+ 74364 => 'L',
+ 74365 => 'L',
+ 74366 => 'L',
+ 74367 => 'L',
+ 74368 => 'L',
+ 74369 => 'L',
+ 74370 => 'L',
+ 74371 => 'L',
+ 74372 => 'L',
+ 74373 => 'L',
+ 74374 => 'L',
+ 74375 => 'L',
+ 74376 => 'L',
+ 74377 => 'L',
+ 74378 => 'L',
+ 74379 => 'L',
+ 74380 => 'L',
+ 74381 => 'L',
+ 74382 => 'L',
+ 74383 => 'L',
+ 74384 => 'L',
+ 74385 => 'L',
+ 74386 => 'L',
+ 74387 => 'L',
+ 74388 => 'L',
+ 74389 => 'L',
+ 74390 => 'L',
+ 74391 => 'L',
+ 74392 => 'L',
+ 74393 => 'L',
+ 74394 => 'L',
+ 74395 => 'L',
+ 74396 => 'L',
+ 74397 => 'L',
+ 74398 => 'L',
+ 74399 => 'L',
+ 74400 => 'L',
+ 74401 => 'L',
+ 74402 => 'L',
+ 74403 => 'L',
+ 74404 => 'L',
+ 74405 => 'L',
+ 74406 => 'L',
+ 74407 => 'L',
+ 74408 => 'L',
+ 74409 => 'L',
+ 74410 => 'L',
+ 74411 => 'L',
+ 74412 => 'L',
+ 74413 => 'L',
+ 74414 => 'L',
+ 74415 => 'L',
+ 74416 => 'L',
+ 74417 => 'L',
+ 74418 => 'L',
+ 74419 => 'L',
+ 74420 => 'L',
+ 74421 => 'L',
+ 74422 => 'L',
+ 74423 => 'L',
+ 74424 => 'L',
+ 74425 => 'L',
+ 74426 => 'L',
+ 74427 => 'L',
+ 74428 => 'L',
+ 74429 => 'L',
+ 74430 => 'L',
+ 74431 => 'L',
+ 74432 => 'L',
+ 74433 => 'L',
+ 74434 => 'L',
+ 74435 => 'L',
+ 74436 => 'L',
+ 74437 => 'L',
+ 74438 => 'L',
+ 74439 => 'L',
+ 74440 => 'L',
+ 74441 => 'L',
+ 74442 => 'L',
+ 74443 => 'L',
+ 74444 => 'L',
+ 74445 => 'L',
+ 74446 => 'L',
+ 74447 => 'L',
+ 74448 => 'L',
+ 74449 => 'L',
+ 74450 => 'L',
+ 74451 => 'L',
+ 74452 => 'L',
+ 74453 => 'L',
+ 74454 => 'L',
+ 74455 => 'L',
+ 74456 => 'L',
+ 74457 => 'L',
+ 74458 => 'L',
+ 74459 => 'L',
+ 74460 => 'L',
+ 74461 => 'L',
+ 74462 => 'L',
+ 74463 => 'L',
+ 74464 => 'L',
+ 74465 => 'L',
+ 74466 => 'L',
+ 74467 => 'L',
+ 74468 => 'L',
+ 74469 => 'L',
+ 74470 => 'L',
+ 74471 => 'L',
+ 74472 => 'L',
+ 74473 => 'L',
+ 74474 => 'L',
+ 74475 => 'L',
+ 74476 => 'L',
+ 74477 => 'L',
+ 74478 => 'L',
+ 74479 => 'L',
+ 74480 => 'L',
+ 74481 => 'L',
+ 74482 => 'L',
+ 74483 => 'L',
+ 74484 => 'L',
+ 74485 => 'L',
+ 74486 => 'L',
+ 74487 => 'L',
+ 74488 => 'L',
+ 74489 => 'L',
+ 74490 => 'L',
+ 74491 => 'L',
+ 74492 => 'L',
+ 74493 => 'L',
+ 74494 => 'L',
+ 74495 => 'L',
+ 74496 => 'L',
+ 74497 => 'L',
+ 74498 => 'L',
+ 74499 => 'L',
+ 74500 => 'L',
+ 74501 => 'L',
+ 74502 => 'L',
+ 74503 => 'L',
+ 74504 => 'L',
+ 74505 => 'L',
+ 74506 => 'L',
+ 74507 => 'L',
+ 74508 => 'L',
+ 74509 => 'L',
+ 74510 => 'L',
+ 74511 => 'L',
+ 74512 => 'L',
+ 74513 => 'L',
+ 74514 => 'L',
+ 74515 => 'L',
+ 74516 => 'L',
+ 74517 => 'L',
+ 74518 => 'L',
+ 74519 => 'L',
+ 74520 => 'L',
+ 74521 => 'L',
+ 74522 => 'L',
+ 74523 => 'L',
+ 74524 => 'L',
+ 74525 => 'L',
+ 74526 => 'L',
+ 74527 => 'L',
+ 74528 => 'L',
+ 74529 => 'L',
+ 74530 => 'L',
+ 74531 => 'L',
+ 74532 => 'L',
+ 74533 => 'L',
+ 74534 => 'L',
+ 74535 => 'L',
+ 74536 => 'L',
+ 74537 => 'L',
+ 74538 => 'L',
+ 74539 => 'L',
+ 74540 => 'L',
+ 74541 => 'L',
+ 74542 => 'L',
+ 74543 => 'L',
+ 74544 => 'L',
+ 74545 => 'L',
+ 74546 => 'L',
+ 74547 => 'L',
+ 74548 => 'L',
+ 74549 => 'L',
+ 74550 => 'L',
+ 74551 => 'L',
+ 74552 => 'L',
+ 74553 => 'L',
+ 74554 => 'L',
+ 74555 => 'L',
+ 74556 => 'L',
+ 74557 => 'L',
+ 74558 => 'L',
+ 74559 => 'L',
+ 74560 => 'L',
+ 74561 => 'L',
+ 74562 => 'L',
+ 74563 => 'L',
+ 74564 => 'L',
+ 74565 => 'L',
+ 74566 => 'L',
+ 74567 => 'L',
+ 74568 => 'L',
+ 74569 => 'L',
+ 74570 => 'L',
+ 74571 => 'L',
+ 74572 => 'L',
+ 74573 => 'L',
+ 74574 => 'L',
+ 74575 => 'L',
+ 74576 => 'L',
+ 74577 => 'L',
+ 74578 => 'L',
+ 74579 => 'L',
+ 74580 => 'L',
+ 74581 => 'L',
+ 74582 => 'L',
+ 74583 => 'L',
+ 74584 => 'L',
+ 74585 => 'L',
+ 74586 => 'L',
+ 74587 => 'L',
+ 74588 => 'L',
+ 74589 => 'L',
+ 74590 => 'L',
+ 74591 => 'L',
+ 74592 => 'L',
+ 74593 => 'L',
+ 74594 => 'L',
+ 74595 => 'L',
+ 74596 => 'L',
+ 74597 => 'L',
+ 74598 => 'L',
+ 74599 => 'L',
+ 74600 => 'L',
+ 74601 => 'L',
+ 74602 => 'L',
+ 74603 => 'L',
+ 74604 => 'L',
+ 74605 => 'L',
+ 74606 => 'L',
+ 74752 => 'L',
+ 74753 => 'L',
+ 74754 => 'L',
+ 74755 => 'L',
+ 74756 => 'L',
+ 74757 => 'L',
+ 74758 => 'L',
+ 74759 => 'L',
+ 74760 => 'L',
+ 74761 => 'L',
+ 74762 => 'L',
+ 74763 => 'L',
+ 74764 => 'L',
+ 74765 => 'L',
+ 74766 => 'L',
+ 74767 => 'L',
+ 74768 => 'L',
+ 74769 => 'L',
+ 74770 => 'L',
+ 74771 => 'L',
+ 74772 => 'L',
+ 74773 => 'L',
+ 74774 => 'L',
+ 74775 => 'L',
+ 74776 => 'L',
+ 74777 => 'L',
+ 74778 => 'L',
+ 74779 => 'L',
+ 74780 => 'L',
+ 74781 => 'L',
+ 74782 => 'L',
+ 74783 => 'L',
+ 74784 => 'L',
+ 74785 => 'L',
+ 74786 => 'L',
+ 74787 => 'L',
+ 74788 => 'L',
+ 74789 => 'L',
+ 74790 => 'L',
+ 74791 => 'L',
+ 74792 => 'L',
+ 74793 => 'L',
+ 74794 => 'L',
+ 74795 => 'L',
+ 74796 => 'L',
+ 74797 => 'L',
+ 74798 => 'L',
+ 74799 => 'L',
+ 74800 => 'L',
+ 74801 => 'L',
+ 74802 => 'L',
+ 74803 => 'L',
+ 74804 => 'L',
+ 74805 => 'L',
+ 74806 => 'L',
+ 74807 => 'L',
+ 74808 => 'L',
+ 74809 => 'L',
+ 74810 => 'L',
+ 74811 => 'L',
+ 74812 => 'L',
+ 74813 => 'L',
+ 74814 => 'L',
+ 74815 => 'L',
+ 74816 => 'L',
+ 74817 => 'L',
+ 74818 => 'L',
+ 74819 => 'L',
+ 74820 => 'L',
+ 74821 => 'L',
+ 74822 => 'L',
+ 74823 => 'L',
+ 74824 => 'L',
+ 74825 => 'L',
+ 74826 => 'L',
+ 74827 => 'L',
+ 74828 => 'L',
+ 74829 => 'L',
+ 74830 => 'L',
+ 74831 => 'L',
+ 74832 => 'L',
+ 74833 => 'L',
+ 74834 => 'L',
+ 74835 => 'L',
+ 74836 => 'L',
+ 74837 => 'L',
+ 74838 => 'L',
+ 74839 => 'L',
+ 74840 => 'L',
+ 74841 => 'L',
+ 74842 => 'L',
+ 74843 => 'L',
+ 74844 => 'L',
+ 74845 => 'L',
+ 74846 => 'L',
+ 74847 => 'L',
+ 74848 => 'L',
+ 74849 => 'L',
+ 74850 => 'L',
+ 74864 => 'L',
+ 74865 => 'L',
+ 74866 => 'L',
+ 74867 => 'L',
+ 118784 => 'L',
+ 118785 => 'L',
+ 118786 => 'L',
+ 118787 => 'L',
+ 118788 => 'L',
+ 118789 => 'L',
+ 118790 => 'L',
+ 118791 => 'L',
+ 118792 => 'L',
+ 118793 => 'L',
+ 118794 => 'L',
+ 118795 => 'L',
+ 118796 => 'L',
+ 118797 => 'L',
+ 118798 => 'L',
+ 118799 => 'L',
+ 118800 => 'L',
+ 118801 => 'L',
+ 118802 => 'L',
+ 118803 => 'L',
+ 118804 => 'L',
+ 118805 => 'L',
+ 118806 => 'L',
+ 118807 => 'L',
+ 118808 => 'L',
+ 118809 => 'L',
+ 118810 => 'L',
+ 118811 => 'L',
+ 118812 => 'L',
+ 118813 => 'L',
+ 118814 => 'L',
+ 118815 => 'L',
+ 118816 => 'L',
+ 118817 => 'L',
+ 118818 => 'L',
+ 118819 => 'L',
+ 118820 => 'L',
+ 118821 => 'L',
+ 118822 => 'L',
+ 118823 => 'L',
+ 118824 => 'L',
+ 118825 => 'L',
+ 118826 => 'L',
+ 118827 => 'L',
+ 118828 => 'L',
+ 118829 => 'L',
+ 118830 => 'L',
+ 118831 => 'L',
+ 118832 => 'L',
+ 118833 => 'L',
+ 118834 => 'L',
+ 118835 => 'L',
+ 118836 => 'L',
+ 118837 => 'L',
+ 118838 => 'L',
+ 118839 => 'L',
+ 118840 => 'L',
+ 118841 => 'L',
+ 118842 => 'L',
+ 118843 => 'L',
+ 118844 => 'L',
+ 118845 => 'L',
+ 118846 => 'L',
+ 118847 => 'L',
+ 118848 => 'L',
+ 118849 => 'L',
+ 118850 => 'L',
+ 118851 => 'L',
+ 118852 => 'L',
+ 118853 => 'L',
+ 118854 => 'L',
+ 118855 => 'L',
+ 118856 => 'L',
+ 118857 => 'L',
+ 118858 => 'L',
+ 118859 => 'L',
+ 118860 => 'L',
+ 118861 => 'L',
+ 118862 => 'L',
+ 118863 => 'L',
+ 118864 => 'L',
+ 118865 => 'L',
+ 118866 => 'L',
+ 118867 => 'L',
+ 118868 => 'L',
+ 118869 => 'L',
+ 118870 => 'L',
+ 118871 => 'L',
+ 118872 => 'L',
+ 118873 => 'L',
+ 118874 => 'L',
+ 118875 => 'L',
+ 118876 => 'L',
+ 118877 => 'L',
+ 118878 => 'L',
+ 118879 => 'L',
+ 118880 => 'L',
+ 118881 => 'L',
+ 118882 => 'L',
+ 118883 => 'L',
+ 118884 => 'L',
+ 118885 => 'L',
+ 118886 => 'L',
+ 118887 => 'L',
+ 118888 => 'L',
+ 118889 => 'L',
+ 118890 => 'L',
+ 118891 => 'L',
+ 118892 => 'L',
+ 118893 => 'L',
+ 118894 => 'L',
+ 118895 => 'L',
+ 118896 => 'L',
+ 118897 => 'L',
+ 118898 => 'L',
+ 118899 => 'L',
+ 118900 => 'L',
+ 118901 => 'L',
+ 118902 => 'L',
+ 118903 => 'L',
+ 118904 => 'L',
+ 118905 => 'L',
+ 118906 => 'L',
+ 118907 => 'L',
+ 118908 => 'L',
+ 118909 => 'L',
+ 118910 => 'L',
+ 118911 => 'L',
+ 118912 => 'L',
+ 118913 => 'L',
+ 118914 => 'L',
+ 118915 => 'L',
+ 118916 => 'L',
+ 118917 => 'L',
+ 118918 => 'L',
+ 118919 => 'L',
+ 118920 => 'L',
+ 118921 => 'L',
+ 118922 => 'L',
+ 118923 => 'L',
+ 118924 => 'L',
+ 118925 => 'L',
+ 118926 => 'L',
+ 118927 => 'L',
+ 118928 => 'L',
+ 118929 => 'L',
+ 118930 => 'L',
+ 118931 => 'L',
+ 118932 => 'L',
+ 118933 => 'L',
+ 118934 => 'L',
+ 118935 => 'L',
+ 118936 => 'L',
+ 118937 => 'L',
+ 118938 => 'L',
+ 118939 => 'L',
+ 118940 => 'L',
+ 118941 => 'L',
+ 118942 => 'L',
+ 118943 => 'L',
+ 118944 => 'L',
+ 118945 => 'L',
+ 118946 => 'L',
+ 118947 => 'L',
+ 118948 => 'L',
+ 118949 => 'L',
+ 118950 => 'L',
+ 118951 => 'L',
+ 118952 => 'L',
+ 118953 => 'L',
+ 118954 => 'L',
+ 118955 => 'L',
+ 118956 => 'L',
+ 118957 => 'L',
+ 118958 => 'L',
+ 118959 => 'L',
+ 118960 => 'L',
+ 118961 => 'L',
+ 118962 => 'L',
+ 118963 => 'L',
+ 118964 => 'L',
+ 118965 => 'L',
+ 118966 => 'L',
+ 118967 => 'L',
+ 118968 => 'L',
+ 118969 => 'L',
+ 118970 => 'L',
+ 118971 => 'L',
+ 118972 => 'L',
+ 118973 => 'L',
+ 118974 => 'L',
+ 118975 => 'L',
+ 118976 => 'L',
+ 118977 => 'L',
+ 118978 => 'L',
+ 118979 => 'L',
+ 118980 => 'L',
+ 118981 => 'L',
+ 118982 => 'L',
+ 118983 => 'L',
+ 118984 => 'L',
+ 118985 => 'L',
+ 118986 => 'L',
+ 118987 => 'L',
+ 118988 => 'L',
+ 118989 => 'L',
+ 118990 => 'L',
+ 118991 => 'L',
+ 118992 => 'L',
+ 118993 => 'L',
+ 118994 => 'L',
+ 118995 => 'L',
+ 118996 => 'L',
+ 118997 => 'L',
+ 118998 => 'L',
+ 118999 => 'L',
+ 119000 => 'L',
+ 119001 => 'L',
+ 119002 => 'L',
+ 119003 => 'L',
+ 119004 => 'L',
+ 119005 => 'L',
+ 119006 => 'L',
+ 119007 => 'L',
+ 119008 => 'L',
+ 119009 => 'L',
+ 119010 => 'L',
+ 119011 => 'L',
+ 119012 => 'L',
+ 119013 => 'L',
+ 119014 => 'L',
+ 119015 => 'L',
+ 119016 => 'L',
+ 119017 => 'L',
+ 119018 => 'L',
+ 119019 => 'L',
+ 119020 => 'L',
+ 119021 => 'L',
+ 119022 => 'L',
+ 119023 => 'L',
+ 119024 => 'L',
+ 119025 => 'L',
+ 119026 => 'L',
+ 119027 => 'L',
+ 119028 => 'L',
+ 119029 => 'L',
+ 119040 => 'L',
+ 119041 => 'L',
+ 119042 => 'L',
+ 119043 => 'L',
+ 119044 => 'L',
+ 119045 => 'L',
+ 119046 => 'L',
+ 119047 => 'L',
+ 119048 => 'L',
+ 119049 => 'L',
+ 119050 => 'L',
+ 119051 => 'L',
+ 119052 => 'L',
+ 119053 => 'L',
+ 119054 => 'L',
+ 119055 => 'L',
+ 119056 => 'L',
+ 119057 => 'L',
+ 119058 => 'L',
+ 119059 => 'L',
+ 119060 => 'L',
+ 119061 => 'L',
+ 119062 => 'L',
+ 119063 => 'L',
+ 119064 => 'L',
+ 119065 => 'L',
+ 119066 => 'L',
+ 119067 => 'L',
+ 119068 => 'L',
+ 119069 => 'L',
+ 119070 => 'L',
+ 119071 => 'L',
+ 119072 => 'L',
+ 119073 => 'L',
+ 119074 => 'L',
+ 119075 => 'L',
+ 119076 => 'L',
+ 119077 => 'L',
+ 119078 => 'L',
+ 119082 => 'L',
+ 119083 => 'L',
+ 119084 => 'L',
+ 119085 => 'L',
+ 119086 => 'L',
+ 119087 => 'L',
+ 119088 => 'L',
+ 119089 => 'L',
+ 119090 => 'L',
+ 119091 => 'L',
+ 119092 => 'L',
+ 119093 => 'L',
+ 119094 => 'L',
+ 119095 => 'L',
+ 119096 => 'L',
+ 119097 => 'L',
+ 119098 => 'L',
+ 119099 => 'L',
+ 119100 => 'L',
+ 119101 => 'L',
+ 119102 => 'L',
+ 119103 => 'L',
+ 119104 => 'L',
+ 119105 => 'L',
+ 119106 => 'L',
+ 119107 => 'L',
+ 119108 => 'L',
+ 119109 => 'L',
+ 119110 => 'L',
+ 119111 => 'L',
+ 119112 => 'L',
+ 119113 => 'L',
+ 119114 => 'L',
+ 119115 => 'L',
+ 119116 => 'L',
+ 119117 => 'L',
+ 119118 => 'L',
+ 119119 => 'L',
+ 119120 => 'L',
+ 119121 => 'L',
+ 119122 => 'L',
+ 119123 => 'L',
+ 119124 => 'L',
+ 119125 => 'L',
+ 119126 => 'L',
+ 119127 => 'L',
+ 119128 => 'L',
+ 119129 => 'L',
+ 119130 => 'L',
+ 119131 => 'L',
+ 119132 => 'L',
+ 119133 => 'L',
+ 119134 => 'L',
+ 119135 => 'L',
+ 119136 => 'L',
+ 119137 => 'L',
+ 119138 => 'L',
+ 119139 => 'L',
+ 119140 => 'L',
+ 119141 => 'L',
+ 119142 => 'L',
+ 119143 => 'NSM',
+ 119144 => 'NSM',
+ 119145 => 'NSM',
+ 119146 => 'L',
+ 119147 => 'L',
+ 119148 => 'L',
+ 119149 => 'L',
+ 119150 => 'L',
+ 119151 => 'L',
+ 119152 => 'L',
+ 119153 => 'L',
+ 119154 => 'L',
+ 119155 => 'BN',
+ 119156 => 'BN',
+ 119157 => 'BN',
+ 119158 => 'BN',
+ 119159 => 'BN',
+ 119160 => 'BN',
+ 119161 => 'BN',
+ 119162 => 'BN',
+ 119163 => 'NSM',
+ 119164 => 'NSM',
+ 119165 => 'NSM',
+ 119166 => 'NSM',
+ 119167 => 'NSM',
+ 119168 => 'NSM',
+ 119169 => 'NSM',
+ 119170 => 'NSM',
+ 119171 => 'L',
+ 119172 => 'L',
+ 119173 => 'NSM',
+ 119174 => 'NSM',
+ 119175 => 'NSM',
+ 119176 => 'NSM',
+ 119177 => 'NSM',
+ 119178 => 'NSM',
+ 119179 => 'NSM',
+ 119180 => 'L',
+ 119181 => 'L',
+ 119182 => 'L',
+ 119183 => 'L',
+ 119184 => 'L',
+ 119185 => 'L',
+ 119186 => 'L',
+ 119187 => 'L',
+ 119188 => 'L',
+ 119189 => 'L',
+ 119190 => 'L',
+ 119191 => 'L',
+ 119192 => 'L',
+ 119193 => 'L',
+ 119194 => 'L',
+ 119195 => 'L',
+ 119196 => 'L',
+ 119197 => 'L',
+ 119198 => 'L',
+ 119199 => 'L',
+ 119200 => 'L',
+ 119201 => 'L',
+ 119202 => 'L',
+ 119203 => 'L',
+ 119204 => 'L',
+ 119205 => 'L',
+ 119206 => 'L',
+ 119207 => 'L',
+ 119208 => 'L',
+ 119209 => 'L',
+ 119210 => 'NSM',
+ 119211 => 'NSM',
+ 119212 => 'NSM',
+ 119213 => 'NSM',
+ 119214 => 'L',
+ 119215 => 'L',
+ 119216 => 'L',
+ 119217 => 'L',
+ 119218 => 'L',
+ 119219 => 'L',
+ 119220 => 'L',
+ 119221 => 'L',
+ 119222 => 'L',
+ 119223 => 'L',
+ 119224 => 'L',
+ 119225 => 'L',
+ 119226 => 'L',
+ 119227 => 'L',
+ 119228 => 'L',
+ 119229 => 'L',
+ 119230 => 'L',
+ 119231 => 'L',
+ 119232 => 'L',
+ 119233 => 'L',
+ 119234 => 'L',
+ 119235 => 'L',
+ 119236 => 'L',
+ 119237 => 'L',
+ 119238 => 'L',
+ 119239 => 'L',
+ 119240 => 'L',
+ 119241 => 'L',
+ 119242 => 'L',
+ 119243 => 'L',
+ 119244 => 'L',
+ 119245 => 'L',
+ 119246 => 'L',
+ 119247 => 'L',
+ 119248 => 'L',
+ 119249 => 'L',
+ 119250 => 'L',
+ 119251 => 'L',
+ 119252 => 'L',
+ 119253 => 'L',
+ 119254 => 'L',
+ 119255 => 'L',
+ 119256 => 'L',
+ 119257 => 'L',
+ 119258 => 'L',
+ 119259 => 'L',
+ 119260 => 'L',
+ 119261 => 'L',
+ 119296 => 'ON',
+ 119297 => 'ON',
+ 119298 => 'ON',
+ 119299 => 'ON',
+ 119300 => 'ON',
+ 119301 => 'ON',
+ 119302 => 'ON',
+ 119303 => 'ON',
+ 119304 => 'ON',
+ 119305 => 'ON',
+ 119306 => 'ON',
+ 119307 => 'ON',
+ 119308 => 'ON',
+ 119309 => 'ON',
+ 119310 => 'ON',
+ 119311 => 'ON',
+ 119312 => 'ON',
+ 119313 => 'ON',
+ 119314 => 'ON',
+ 119315 => 'ON',
+ 119316 => 'ON',
+ 119317 => 'ON',
+ 119318 => 'ON',
+ 119319 => 'ON',
+ 119320 => 'ON',
+ 119321 => 'ON',
+ 119322 => 'ON',
+ 119323 => 'ON',
+ 119324 => 'ON',
+ 119325 => 'ON',
+ 119326 => 'ON',
+ 119327 => 'ON',
+ 119328 => 'ON',
+ 119329 => 'ON',
+ 119330 => 'ON',
+ 119331 => 'ON',
+ 119332 => 'ON',
+ 119333 => 'ON',
+ 119334 => 'ON',
+ 119335 => 'ON',
+ 119336 => 'ON',
+ 119337 => 'ON',
+ 119338 => 'ON',
+ 119339 => 'ON',
+ 119340 => 'ON',
+ 119341 => 'ON',
+ 119342 => 'ON',
+ 119343 => 'ON',
+ 119344 => 'ON',
+ 119345 => 'ON',
+ 119346 => 'ON',
+ 119347 => 'ON',
+ 119348 => 'ON',
+ 119349 => 'ON',
+ 119350 => 'ON',
+ 119351 => 'ON',
+ 119352 => 'ON',
+ 119353 => 'ON',
+ 119354 => 'ON',
+ 119355 => 'ON',
+ 119356 => 'ON',
+ 119357 => 'ON',
+ 119358 => 'ON',
+ 119359 => 'ON',
+ 119360 => 'ON',
+ 119361 => 'ON',
+ 119362 => 'NSM',
+ 119363 => 'NSM',
+ 119364 => 'NSM',
+ 119365 => 'ON',
+ 119552 => 'ON',
+ 119553 => 'ON',
+ 119554 => 'ON',
+ 119555 => 'ON',
+ 119556 => 'ON',
+ 119557 => 'ON',
+ 119558 => 'ON',
+ 119559 => 'ON',
+ 119560 => 'ON',
+ 119561 => 'ON',
+ 119562 => 'ON',
+ 119563 => 'ON',
+ 119564 => 'ON',
+ 119565 => 'ON',
+ 119566 => 'ON',
+ 119567 => 'ON',
+ 119568 => 'ON',
+ 119569 => 'ON',
+ 119570 => 'ON',
+ 119571 => 'ON',
+ 119572 => 'ON',
+ 119573 => 'ON',
+ 119574 => 'ON',
+ 119575 => 'ON',
+ 119576 => 'ON',
+ 119577 => 'ON',
+ 119578 => 'ON',
+ 119579 => 'ON',
+ 119580 => 'ON',
+ 119581 => 'ON',
+ 119582 => 'ON',
+ 119583 => 'ON',
+ 119584 => 'ON',
+ 119585 => 'ON',
+ 119586 => 'ON',
+ 119587 => 'ON',
+ 119588 => 'ON',
+ 119589 => 'ON',
+ 119590 => 'ON',
+ 119591 => 'ON',
+ 119592 => 'ON',
+ 119593 => 'ON',
+ 119594 => 'ON',
+ 119595 => 'ON',
+ 119596 => 'ON',
+ 119597 => 'ON',
+ 119598 => 'ON',
+ 119599 => 'ON',
+ 119600 => 'ON',
+ 119601 => 'ON',
+ 119602 => 'ON',
+ 119603 => 'ON',
+ 119604 => 'ON',
+ 119605 => 'ON',
+ 119606 => 'ON',
+ 119607 => 'ON',
+ 119608 => 'ON',
+ 119609 => 'ON',
+ 119610 => 'ON',
+ 119611 => 'ON',
+ 119612 => 'ON',
+ 119613 => 'ON',
+ 119614 => 'ON',
+ 119615 => 'ON',
+ 119616 => 'ON',
+ 119617 => 'ON',
+ 119618 => 'ON',
+ 119619 => 'ON',
+ 119620 => 'ON',
+ 119621 => 'ON',
+ 119622 => 'ON',
+ 119623 => 'ON',
+ 119624 => 'ON',
+ 119625 => 'ON',
+ 119626 => 'ON',
+ 119627 => 'ON',
+ 119628 => 'ON',
+ 119629 => 'ON',
+ 119630 => 'ON',
+ 119631 => 'ON',
+ 119632 => 'ON',
+ 119633 => 'ON',
+ 119634 => 'ON',
+ 119635 => 'ON',
+ 119636 => 'ON',
+ 119637 => 'ON',
+ 119638 => 'ON',
+ 119648 => 'L',
+ 119649 => 'L',
+ 119650 => 'L',
+ 119651 => 'L',
+ 119652 => 'L',
+ 119653 => 'L',
+ 119654 => 'L',
+ 119655 => 'L',
+ 119656 => 'L',
+ 119657 => 'L',
+ 119658 => 'L',
+ 119659 => 'L',
+ 119660 => 'L',
+ 119661 => 'L',
+ 119662 => 'L',
+ 119663 => 'L',
+ 119664 => 'L',
+ 119665 => 'L',
+ 119808 => 'L',
+ 119809 => 'L',
+ 119810 => 'L',
+ 119811 => 'L',
+ 119812 => 'L',
+ 119813 => 'L',
+ 119814 => 'L',
+ 119815 => 'L',
+ 119816 => 'L',
+ 119817 => 'L',
+ 119818 => 'L',
+ 119819 => 'L',
+ 119820 => 'L',
+ 119821 => 'L',
+ 119822 => 'L',
+ 119823 => 'L',
+ 119824 => 'L',
+ 119825 => 'L',
+ 119826 => 'L',
+ 119827 => 'L',
+ 119828 => 'L',
+ 119829 => 'L',
+ 119830 => 'L',
+ 119831 => 'L',
+ 119832 => 'L',
+ 119833 => 'L',
+ 119834 => 'L',
+ 119835 => 'L',
+ 119836 => 'L',
+ 119837 => 'L',
+ 119838 => 'L',
+ 119839 => 'L',
+ 119840 => 'L',
+ 119841 => 'L',
+ 119842 => 'L',
+ 119843 => 'L',
+ 119844 => 'L',
+ 119845 => 'L',
+ 119846 => 'L',
+ 119847 => 'L',
+ 119848 => 'L',
+ 119849 => 'L',
+ 119850 => 'L',
+ 119851 => 'L',
+ 119852 => 'L',
+ 119853 => 'L',
+ 119854 => 'L',
+ 119855 => 'L',
+ 119856 => 'L',
+ 119857 => 'L',
+ 119858 => 'L',
+ 119859 => 'L',
+ 119860 => 'L',
+ 119861 => 'L',
+ 119862 => 'L',
+ 119863 => 'L',
+ 119864 => 'L',
+ 119865 => 'L',
+ 119866 => 'L',
+ 119867 => 'L',
+ 119868 => 'L',
+ 119869 => 'L',
+ 119870 => 'L',
+ 119871 => 'L',
+ 119872 => 'L',
+ 119873 => 'L',
+ 119874 => 'L',
+ 119875 => 'L',
+ 119876 => 'L',
+ 119877 => 'L',
+ 119878 => 'L',
+ 119879 => 'L',
+ 119880 => 'L',
+ 119881 => 'L',
+ 119882 => 'L',
+ 119883 => 'L',
+ 119884 => 'L',
+ 119885 => 'L',
+ 119886 => 'L',
+ 119887 => 'L',
+ 119888 => 'L',
+ 119889 => 'L',
+ 119890 => 'L',
+ 119891 => 'L',
+ 119892 => 'L',
+ 119894 => 'L',
+ 119895 => 'L',
+ 119896 => 'L',
+ 119897 => 'L',
+ 119898 => 'L',
+ 119899 => 'L',
+ 119900 => 'L',
+ 119901 => 'L',
+ 119902 => 'L',
+ 119903 => 'L',
+ 119904 => 'L',
+ 119905 => 'L',
+ 119906 => 'L',
+ 119907 => 'L',
+ 119908 => 'L',
+ 119909 => 'L',
+ 119910 => 'L',
+ 119911 => 'L',
+ 119912 => 'L',
+ 119913 => 'L',
+ 119914 => 'L',
+ 119915 => 'L',
+ 119916 => 'L',
+ 119917 => 'L',
+ 119918 => 'L',
+ 119919 => 'L',
+ 119920 => 'L',
+ 119921 => 'L',
+ 119922 => 'L',
+ 119923 => 'L',
+ 119924 => 'L',
+ 119925 => 'L',
+ 119926 => 'L',
+ 119927 => 'L',
+ 119928 => 'L',
+ 119929 => 'L',
+ 119930 => 'L',
+ 119931 => 'L',
+ 119932 => 'L',
+ 119933 => 'L',
+ 119934 => 'L',
+ 119935 => 'L',
+ 119936 => 'L',
+ 119937 => 'L',
+ 119938 => 'L',
+ 119939 => 'L',
+ 119940 => 'L',
+ 119941 => 'L',
+ 119942 => 'L',
+ 119943 => 'L',
+ 119944 => 'L',
+ 119945 => 'L',
+ 119946 => 'L',
+ 119947 => 'L',
+ 119948 => 'L',
+ 119949 => 'L',
+ 119950 => 'L',
+ 119951 => 'L',
+ 119952 => 'L',
+ 119953 => 'L',
+ 119954 => 'L',
+ 119955 => 'L',
+ 119956 => 'L',
+ 119957 => 'L',
+ 119958 => 'L',
+ 119959 => 'L',
+ 119960 => 'L',
+ 119961 => 'L',
+ 119962 => 'L',
+ 119963 => 'L',
+ 119964 => 'L',
+ 119966 => 'L',
+ 119967 => 'L',
+ 119970 => 'L',
+ 119973 => 'L',
+ 119974 => 'L',
+ 119977 => 'L',
+ 119978 => 'L',
+ 119979 => 'L',
+ 119980 => 'L',
+ 119982 => 'L',
+ 119983 => 'L',
+ 119984 => 'L',
+ 119985 => 'L',
+ 119986 => 'L',
+ 119987 => 'L',
+ 119988 => 'L',
+ 119989 => 'L',
+ 119990 => 'L',
+ 119991 => 'L',
+ 119992 => 'L',
+ 119993 => 'L',
+ 119995 => 'L',
+ 119997 => 'L',
+ 119998 => 'L',
+ 119999 => 'L',
+ 120000 => 'L',
+ 120001 => 'L',
+ 120002 => 'L',
+ 120003 => 'L',
+ 120005 => 'L',
+ 120006 => 'L',
+ 120007 => 'L',
+ 120008 => 'L',
+ 120009 => 'L',
+ 120010 => 'L',
+ 120011 => 'L',
+ 120012 => 'L',
+ 120013 => 'L',
+ 120014 => 'L',
+ 120015 => 'L',
+ 120016 => 'L',
+ 120017 => 'L',
+ 120018 => 'L',
+ 120019 => 'L',
+ 120020 => 'L',
+ 120021 => 'L',
+ 120022 => 'L',
+ 120023 => 'L',
+ 120024 => 'L',
+ 120025 => 'L',
+ 120026 => 'L',
+ 120027 => 'L',
+ 120028 => 'L',
+ 120029 => 'L',
+ 120030 => 'L',
+ 120031 => 'L',
+ 120032 => 'L',
+ 120033 => 'L',
+ 120034 => 'L',
+ 120035 => 'L',
+ 120036 => 'L',
+ 120037 => 'L',
+ 120038 => 'L',
+ 120039 => 'L',
+ 120040 => 'L',
+ 120041 => 'L',
+ 120042 => 'L',
+ 120043 => 'L',
+ 120044 => 'L',
+ 120045 => 'L',
+ 120046 => 'L',
+ 120047 => 'L',
+ 120048 => 'L',
+ 120049 => 'L',
+ 120050 => 'L',
+ 120051 => 'L',
+ 120052 => 'L',
+ 120053 => 'L',
+ 120054 => 'L',
+ 120055 => 'L',
+ 120056 => 'L',
+ 120057 => 'L',
+ 120058 => 'L',
+ 120059 => 'L',
+ 120060 => 'L',
+ 120061 => 'L',
+ 120062 => 'L',
+ 120063 => 'L',
+ 120064 => 'L',
+ 120065 => 'L',
+ 120066 => 'L',
+ 120067 => 'L',
+ 120068 => 'L',
+ 120069 => 'L',
+ 120071 => 'L',
+ 120072 => 'L',
+ 120073 => 'L',
+ 120074 => 'L',
+ 120077 => 'L',
+ 120078 => 'L',
+ 120079 => 'L',
+ 120080 => 'L',
+ 120081 => 'L',
+ 120082 => 'L',
+ 120083 => 'L',
+ 120084 => 'L',
+ 120086 => 'L',
+ 120087 => 'L',
+ 120088 => 'L',
+ 120089 => 'L',
+ 120090 => 'L',
+ 120091 => 'L',
+ 120092 => 'L',
+ 120094 => 'L',
+ 120095 => 'L',
+ 120096 => 'L',
+ 120097 => 'L',
+ 120098 => 'L',
+ 120099 => 'L',
+ 120100 => 'L',
+ 120101 => 'L',
+ 120102 => 'L',
+ 120103 => 'L',
+ 120104 => 'L',
+ 120105 => 'L',
+ 120106 => 'L',
+ 120107 => 'L',
+ 120108 => 'L',
+ 120109 => 'L',
+ 120110 => 'L',
+ 120111 => 'L',
+ 120112 => 'L',
+ 120113 => 'L',
+ 120114 => 'L',
+ 120115 => 'L',
+ 120116 => 'L',
+ 120117 => 'L',
+ 120118 => 'L',
+ 120119 => 'L',
+ 120120 => 'L',
+ 120121 => 'L',
+ 120123 => 'L',
+ 120124 => 'L',
+ 120125 => 'L',
+ 120126 => 'L',
+ 120128 => 'L',
+ 120129 => 'L',
+ 120130 => 'L',
+ 120131 => 'L',
+ 120132 => 'L',
+ 120134 => 'L',
+ 120138 => 'L',
+ 120139 => 'L',
+ 120140 => 'L',
+ 120141 => 'L',
+ 120142 => 'L',
+ 120143 => 'L',
+ 120144 => 'L',
+ 120146 => 'L',
+ 120147 => 'L',
+ 120148 => 'L',
+ 120149 => 'L',
+ 120150 => 'L',
+ 120151 => 'L',
+ 120152 => 'L',
+ 120153 => 'L',
+ 120154 => 'L',
+ 120155 => 'L',
+ 120156 => 'L',
+ 120157 => 'L',
+ 120158 => 'L',
+ 120159 => 'L',
+ 120160 => 'L',
+ 120161 => 'L',
+ 120162 => 'L',
+ 120163 => 'L',
+ 120164 => 'L',
+ 120165 => 'L',
+ 120166 => 'L',
+ 120167 => 'L',
+ 120168 => 'L',
+ 120169 => 'L',
+ 120170 => 'L',
+ 120171 => 'L',
+ 120172 => 'L',
+ 120173 => 'L',
+ 120174 => 'L',
+ 120175 => 'L',
+ 120176 => 'L',
+ 120177 => 'L',
+ 120178 => 'L',
+ 120179 => 'L',
+ 120180 => 'L',
+ 120181 => 'L',
+ 120182 => 'L',
+ 120183 => 'L',
+ 120184 => 'L',
+ 120185 => 'L',
+ 120186 => 'L',
+ 120187 => 'L',
+ 120188 => 'L',
+ 120189 => 'L',
+ 120190 => 'L',
+ 120191 => 'L',
+ 120192 => 'L',
+ 120193 => 'L',
+ 120194 => 'L',
+ 120195 => 'L',
+ 120196 => 'L',
+ 120197 => 'L',
+ 120198 => 'L',
+ 120199 => 'L',
+ 120200 => 'L',
+ 120201 => 'L',
+ 120202 => 'L',
+ 120203 => 'L',
+ 120204 => 'L',
+ 120205 => 'L',
+ 120206 => 'L',
+ 120207 => 'L',
+ 120208 => 'L',
+ 120209 => 'L',
+ 120210 => 'L',
+ 120211 => 'L',
+ 120212 => 'L',
+ 120213 => 'L',
+ 120214 => 'L',
+ 120215 => 'L',
+ 120216 => 'L',
+ 120217 => 'L',
+ 120218 => 'L',
+ 120219 => 'L',
+ 120220 => 'L',
+ 120221 => 'L',
+ 120222 => 'L',
+ 120223 => 'L',
+ 120224 => 'L',
+ 120225 => 'L',
+ 120226 => 'L',
+ 120227 => 'L',
+ 120228 => 'L',
+ 120229 => 'L',
+ 120230 => 'L',
+ 120231 => 'L',
+ 120232 => 'L',
+ 120233 => 'L',
+ 120234 => 'L',
+ 120235 => 'L',
+ 120236 => 'L',
+ 120237 => 'L',
+ 120238 => 'L',
+ 120239 => 'L',
+ 120240 => 'L',
+ 120241 => 'L',
+ 120242 => 'L',
+ 120243 => 'L',
+ 120244 => 'L',
+ 120245 => 'L',
+ 120246 => 'L',
+ 120247 => 'L',
+ 120248 => 'L',
+ 120249 => 'L',
+ 120250 => 'L',
+ 120251 => 'L',
+ 120252 => 'L',
+ 120253 => 'L',
+ 120254 => 'L',
+ 120255 => 'L',
+ 120256 => 'L',
+ 120257 => 'L',
+ 120258 => 'L',
+ 120259 => 'L',
+ 120260 => 'L',
+ 120261 => 'L',
+ 120262 => 'L',
+ 120263 => 'L',
+ 120264 => 'L',
+ 120265 => 'L',
+ 120266 => 'L',
+ 120267 => 'L',
+ 120268 => 'L',
+ 120269 => 'L',
+ 120270 => 'L',
+ 120271 => 'L',
+ 120272 => 'L',
+ 120273 => 'L',
+ 120274 => 'L',
+ 120275 => 'L',
+ 120276 => 'L',
+ 120277 => 'L',
+ 120278 => 'L',
+ 120279 => 'L',
+ 120280 => 'L',
+ 120281 => 'L',
+ 120282 => 'L',
+ 120283 => 'L',
+ 120284 => 'L',
+ 120285 => 'L',
+ 120286 => 'L',
+ 120287 => 'L',
+ 120288 => 'L',
+ 120289 => 'L',
+ 120290 => 'L',
+ 120291 => 'L',
+ 120292 => 'L',
+ 120293 => 'L',
+ 120294 => 'L',
+ 120295 => 'L',
+ 120296 => 'L',
+ 120297 => 'L',
+ 120298 => 'L',
+ 120299 => 'L',
+ 120300 => 'L',
+ 120301 => 'L',
+ 120302 => 'L',
+ 120303 => 'L',
+ 120304 => 'L',
+ 120305 => 'L',
+ 120306 => 'L',
+ 120307 => 'L',
+ 120308 => 'L',
+ 120309 => 'L',
+ 120310 => 'L',
+ 120311 => 'L',
+ 120312 => 'L',
+ 120313 => 'L',
+ 120314 => 'L',
+ 120315 => 'L',
+ 120316 => 'L',
+ 120317 => 'L',
+ 120318 => 'L',
+ 120319 => 'L',
+ 120320 => 'L',
+ 120321 => 'L',
+ 120322 => 'L',
+ 120323 => 'L',
+ 120324 => 'L',
+ 120325 => 'L',
+ 120326 => 'L',
+ 120327 => 'L',
+ 120328 => 'L',
+ 120329 => 'L',
+ 120330 => 'L',
+ 120331 => 'L',
+ 120332 => 'L',
+ 120333 => 'L',
+ 120334 => 'L',
+ 120335 => 'L',
+ 120336 => 'L',
+ 120337 => 'L',
+ 120338 => 'L',
+ 120339 => 'L',
+ 120340 => 'L',
+ 120341 => 'L',
+ 120342 => 'L',
+ 120343 => 'L',
+ 120344 => 'L',
+ 120345 => 'L',
+ 120346 => 'L',
+ 120347 => 'L',
+ 120348 => 'L',
+ 120349 => 'L',
+ 120350 => 'L',
+ 120351 => 'L',
+ 120352 => 'L',
+ 120353 => 'L',
+ 120354 => 'L',
+ 120355 => 'L',
+ 120356 => 'L',
+ 120357 => 'L',
+ 120358 => 'L',
+ 120359 => 'L',
+ 120360 => 'L',
+ 120361 => 'L',
+ 120362 => 'L',
+ 120363 => 'L',
+ 120364 => 'L',
+ 120365 => 'L',
+ 120366 => 'L',
+ 120367 => 'L',
+ 120368 => 'L',
+ 120369 => 'L',
+ 120370 => 'L',
+ 120371 => 'L',
+ 120372 => 'L',
+ 120373 => 'L',
+ 120374 => 'L',
+ 120375 => 'L',
+ 120376 => 'L',
+ 120377 => 'L',
+ 120378 => 'L',
+ 120379 => 'L',
+ 120380 => 'L',
+ 120381 => 'L',
+ 120382 => 'L',
+ 120383 => 'L',
+ 120384 => 'L',
+ 120385 => 'L',
+ 120386 => 'L',
+ 120387 => 'L',
+ 120388 => 'L',
+ 120389 => 'L',
+ 120390 => 'L',
+ 120391 => 'L',
+ 120392 => 'L',
+ 120393 => 'L',
+ 120394 => 'L',
+ 120395 => 'L',
+ 120396 => 'L',
+ 120397 => 'L',
+ 120398 => 'L',
+ 120399 => 'L',
+ 120400 => 'L',
+ 120401 => 'L',
+ 120402 => 'L',
+ 120403 => 'L',
+ 120404 => 'L',
+ 120405 => 'L',
+ 120406 => 'L',
+ 120407 => 'L',
+ 120408 => 'L',
+ 120409 => 'L',
+ 120410 => 'L',
+ 120411 => 'L',
+ 120412 => 'L',
+ 120413 => 'L',
+ 120414 => 'L',
+ 120415 => 'L',
+ 120416 => 'L',
+ 120417 => 'L',
+ 120418 => 'L',
+ 120419 => 'L',
+ 120420 => 'L',
+ 120421 => 'L',
+ 120422 => 'L',
+ 120423 => 'L',
+ 120424 => 'L',
+ 120425 => 'L',
+ 120426 => 'L',
+ 120427 => 'L',
+ 120428 => 'L',
+ 120429 => 'L',
+ 120430 => 'L',
+ 120431 => 'L',
+ 120432 => 'L',
+ 120433 => 'L',
+ 120434 => 'L',
+ 120435 => 'L',
+ 120436 => 'L',
+ 120437 => 'L',
+ 120438 => 'L',
+ 120439 => 'L',
+ 120440 => 'L',
+ 120441 => 'L',
+ 120442 => 'L',
+ 120443 => 'L',
+ 120444 => 'L',
+ 120445 => 'L',
+ 120446 => 'L',
+ 120447 => 'L',
+ 120448 => 'L',
+ 120449 => 'L',
+ 120450 => 'L',
+ 120451 => 'L',
+ 120452 => 'L',
+ 120453 => 'L',
+ 120454 => 'L',
+ 120455 => 'L',
+ 120456 => 'L',
+ 120457 => 'L',
+ 120458 => 'L',
+ 120459 => 'L',
+ 120460 => 'L',
+ 120461 => 'L',
+ 120462 => 'L',
+ 120463 => 'L',
+ 120464 => 'L',
+ 120465 => 'L',
+ 120466 => 'L',
+ 120467 => 'L',
+ 120468 => 'L',
+ 120469 => 'L',
+ 120470 => 'L',
+ 120471 => 'L',
+ 120472 => 'L',
+ 120473 => 'L',
+ 120474 => 'L',
+ 120475 => 'L',
+ 120476 => 'L',
+ 120477 => 'L',
+ 120478 => 'L',
+ 120479 => 'L',
+ 120480 => 'L',
+ 120481 => 'L',
+ 120482 => 'L',
+ 120483 => 'L',
+ 120484 => 'L',
+ 120485 => 'L',
+ 120488 => 'L',
+ 120489 => 'L',
+ 120490 => 'L',
+ 120491 => 'L',
+ 120492 => 'L',
+ 120493 => 'L',
+ 120494 => 'L',
+ 120495 => 'L',
+ 120496 => 'L',
+ 120497 => 'L',
+ 120498 => 'L',
+ 120499 => 'L',
+ 120500 => 'L',
+ 120501 => 'L',
+ 120502 => 'L',
+ 120503 => 'L',
+ 120504 => 'L',
+ 120505 => 'L',
+ 120506 => 'L',
+ 120507 => 'L',
+ 120508 => 'L',
+ 120509 => 'L',
+ 120510 => 'L',
+ 120511 => 'L',
+ 120512 => 'L',
+ 120513 => 'L',
+ 120514 => 'L',
+ 120515 => 'L',
+ 120516 => 'L',
+ 120517 => 'L',
+ 120518 => 'L',
+ 120519 => 'L',
+ 120520 => 'L',
+ 120521 => 'L',
+ 120522 => 'L',
+ 120523 => 'L',
+ 120524 => 'L',
+ 120525 => 'L',
+ 120526 => 'L',
+ 120527 => 'L',
+ 120528 => 'L',
+ 120529 => 'L',
+ 120530 => 'L',
+ 120531 => 'L',
+ 120532 => 'L',
+ 120533 => 'L',
+ 120534 => 'L',
+ 120535 => 'L',
+ 120536 => 'L',
+ 120537 => 'L',
+ 120538 => 'L',
+ 120539 => 'L',
+ 120540 => 'L',
+ 120541 => 'L',
+ 120542 => 'L',
+ 120543 => 'L',
+ 120544 => 'L',
+ 120545 => 'L',
+ 120546 => 'L',
+ 120547 => 'L',
+ 120548 => 'L',
+ 120549 => 'L',
+ 120550 => 'L',
+ 120551 => 'L',
+ 120552 => 'L',
+ 120553 => 'L',
+ 120554 => 'L',
+ 120555 => 'L',
+ 120556 => 'L',
+ 120557 => 'L',
+ 120558 => 'L',
+ 120559 => 'L',
+ 120560 => 'L',
+ 120561 => 'L',
+ 120562 => 'L',
+ 120563 => 'L',
+ 120564 => 'L',
+ 120565 => 'L',
+ 120566 => 'L',
+ 120567 => 'L',
+ 120568 => 'L',
+ 120569 => 'L',
+ 120570 => 'L',
+ 120571 => 'L',
+ 120572 => 'L',
+ 120573 => 'L',
+ 120574 => 'L',
+ 120575 => 'L',
+ 120576 => 'L',
+ 120577 => 'L',
+ 120578 => 'L',
+ 120579 => 'L',
+ 120580 => 'L',
+ 120581 => 'L',
+ 120582 => 'L',
+ 120583 => 'L',
+ 120584 => 'L',
+ 120585 => 'L',
+ 120586 => 'L',
+ 120587 => 'L',
+ 120588 => 'L',
+ 120589 => 'L',
+ 120590 => 'L',
+ 120591 => 'L',
+ 120592 => 'L',
+ 120593 => 'L',
+ 120594 => 'L',
+ 120595 => 'L',
+ 120596 => 'L',
+ 120597 => 'L',
+ 120598 => 'L',
+ 120599 => 'L',
+ 120600 => 'L',
+ 120601 => 'L',
+ 120602 => 'L',
+ 120603 => 'L',
+ 120604 => 'L',
+ 120605 => 'L',
+ 120606 => 'L',
+ 120607 => 'L',
+ 120608 => 'L',
+ 120609 => 'L',
+ 120610 => 'L',
+ 120611 => 'L',
+ 120612 => 'L',
+ 120613 => 'L',
+ 120614 => 'L',
+ 120615 => 'L',
+ 120616 => 'L',
+ 120617 => 'L',
+ 120618 => 'L',
+ 120619 => 'L',
+ 120620 => 'L',
+ 120621 => 'L',
+ 120622 => 'L',
+ 120623 => 'L',
+ 120624 => 'L',
+ 120625 => 'L',
+ 120626 => 'L',
+ 120627 => 'L',
+ 120628 => 'L',
+ 120629 => 'L',
+ 120630 => 'L',
+ 120631 => 'L',
+ 120632 => 'L',
+ 120633 => 'L',
+ 120634 => 'L',
+ 120635 => 'L',
+ 120636 => 'L',
+ 120637 => 'L',
+ 120638 => 'L',
+ 120639 => 'L',
+ 120640 => 'L',
+ 120641 => 'L',
+ 120642 => 'L',
+ 120643 => 'L',
+ 120644 => 'L',
+ 120645 => 'L',
+ 120646 => 'L',
+ 120647 => 'L',
+ 120648 => 'L',
+ 120649 => 'L',
+ 120650 => 'L',
+ 120651 => 'L',
+ 120652 => 'L',
+ 120653 => 'L',
+ 120654 => 'L',
+ 120655 => 'L',
+ 120656 => 'L',
+ 120657 => 'L',
+ 120658 => 'L',
+ 120659 => 'L',
+ 120660 => 'L',
+ 120661 => 'L',
+ 120662 => 'L',
+ 120663 => 'L',
+ 120664 => 'L',
+ 120665 => 'L',
+ 120666 => 'L',
+ 120667 => 'L',
+ 120668 => 'L',
+ 120669 => 'L',
+ 120670 => 'L',
+ 120671 => 'L',
+ 120672 => 'L',
+ 120673 => 'L',
+ 120674 => 'L',
+ 120675 => 'L',
+ 120676 => 'L',
+ 120677 => 'L',
+ 120678 => 'L',
+ 120679 => 'L',
+ 120680 => 'L',
+ 120681 => 'L',
+ 120682 => 'L',
+ 120683 => 'L',
+ 120684 => 'L',
+ 120685 => 'L',
+ 120686 => 'L',
+ 120687 => 'L',
+ 120688 => 'L',
+ 120689 => 'L',
+ 120690 => 'L',
+ 120691 => 'L',
+ 120692 => 'L',
+ 120693 => 'L',
+ 120694 => 'L',
+ 120695 => 'L',
+ 120696 => 'L',
+ 120697 => 'L',
+ 120698 => 'L',
+ 120699 => 'L',
+ 120700 => 'L',
+ 120701 => 'L',
+ 120702 => 'L',
+ 120703 => 'L',
+ 120704 => 'L',
+ 120705 => 'L',
+ 120706 => 'L',
+ 120707 => 'L',
+ 120708 => 'L',
+ 120709 => 'L',
+ 120710 => 'L',
+ 120711 => 'L',
+ 120712 => 'L',
+ 120713 => 'L',
+ 120714 => 'L',
+ 120715 => 'L',
+ 120716 => 'L',
+ 120717 => 'L',
+ 120718 => 'L',
+ 120719 => 'L',
+ 120720 => 'L',
+ 120721 => 'L',
+ 120722 => 'L',
+ 120723 => 'L',
+ 120724 => 'L',
+ 120725 => 'L',
+ 120726 => 'L',
+ 120727 => 'L',
+ 120728 => 'L',
+ 120729 => 'L',
+ 120730 => 'L',
+ 120731 => 'L',
+ 120732 => 'L',
+ 120733 => 'L',
+ 120734 => 'L',
+ 120735 => 'L',
+ 120736 => 'L',
+ 120737 => 'L',
+ 120738 => 'L',
+ 120739 => 'L',
+ 120740 => 'L',
+ 120741 => 'L',
+ 120742 => 'L',
+ 120743 => 'L',
+ 120744 => 'L',
+ 120745 => 'L',
+ 120746 => 'L',
+ 120747 => 'L',
+ 120748 => 'L',
+ 120749 => 'L',
+ 120750 => 'L',
+ 120751 => 'L',
+ 120752 => 'L',
+ 120753 => 'L',
+ 120754 => 'L',
+ 120755 => 'L',
+ 120756 => 'L',
+ 120757 => 'L',
+ 120758 => 'L',
+ 120759 => 'L',
+ 120760 => 'L',
+ 120761 => 'L',
+ 120762 => 'L',
+ 120763 => 'L',
+ 120764 => 'L',
+ 120765 => 'L',
+ 120766 => 'L',
+ 120767 => 'L',
+ 120768 => 'L',
+ 120769 => 'L',
+ 120770 => 'L',
+ 120771 => 'L',
+ 120772 => 'L',
+ 120773 => 'L',
+ 120774 => 'L',
+ 120775 => 'L',
+ 120776 => 'L',
+ 120777 => 'L',
+ 120778 => 'L',
+ 120779 => 'L',
+ 120782 => 'EN',
+ 120783 => 'EN',
+ 120784 => 'EN',
+ 120785 => 'EN',
+ 120786 => 'EN',
+ 120787 => 'EN',
+ 120788 => 'EN',
+ 120789 => 'EN',
+ 120790 => 'EN',
+ 120791 => 'EN',
+ 120792 => 'EN',
+ 120793 => 'EN',
+ 120794 => 'EN',
+ 120795 => 'EN',
+ 120796 => 'EN',
+ 120797 => 'EN',
+ 120798 => 'EN',
+ 120799 => 'EN',
+ 120800 => 'EN',
+ 120801 => 'EN',
+ 120802 => 'EN',
+ 120803 => 'EN',
+ 120804 => 'EN',
+ 120805 => 'EN',
+ 120806 => 'EN',
+ 120807 => 'EN',
+ 120808 => 'EN',
+ 120809 => 'EN',
+ 120810 => 'EN',
+ 120811 => 'EN',
+ 120812 => 'EN',
+ 120813 => 'EN',
+ 120814 => 'EN',
+ 120815 => 'EN',
+ 120816 => 'EN',
+ 120817 => 'EN',
+ 120818 => 'EN',
+ 120819 => 'EN',
+ 120820 => 'EN',
+ 120821 => 'EN',
+ 120822 => 'EN',
+ 120823 => 'EN',
+ 120824 => 'EN',
+ 120825 => 'EN',
+ 120826 => 'EN',
+ 120827 => 'EN',
+ 120828 => 'EN',
+ 120829 => 'EN',
+ 120830 => 'EN',
+ 120831 => 'EN',
+ 131072 => 'L',
+ 173782 => 'L',
+ 194560 => 'L',
+ 194561 => 'L',
+ 194562 => 'L',
+ 194563 => 'L',
+ 194564 => 'L',
+ 194565 => 'L',
+ 194566 => 'L',
+ 194567 => 'L',
+ 194568 => 'L',
+ 194569 => 'L',
+ 194570 => 'L',
+ 194571 => 'L',
+ 194572 => 'L',
+ 194573 => 'L',
+ 194574 => 'L',
+ 194575 => 'L',
+ 194576 => 'L',
+ 194577 => 'L',
+ 194578 => 'L',
+ 194579 => 'L',
+ 194580 => 'L',
+ 194581 => 'L',
+ 194582 => 'L',
+ 194583 => 'L',
+ 194584 => 'L',
+ 194585 => 'L',
+ 194586 => 'L',
+ 194587 => 'L',
+ 194588 => 'L',
+ 194589 => 'L',
+ 194590 => 'L',
+ 194591 => 'L',
+ 194592 => 'L',
+ 194593 => 'L',
+ 194594 => 'L',
+ 194595 => 'L',
+ 194596 => 'L',
+ 194597 => 'L',
+ 194598 => 'L',
+ 194599 => 'L',
+ 194600 => 'L',
+ 194601 => 'L',
+ 194602 => 'L',
+ 194603 => 'L',
+ 194604 => 'L',
+ 194605 => 'L',
+ 194606 => 'L',
+ 194607 => 'L',
+ 194608 => 'L',
+ 194609 => 'L',
+ 194610 => 'L',
+ 194611 => 'L',
+ 194612 => 'L',
+ 194613 => 'L',
+ 194614 => 'L',
+ 194615 => 'L',
+ 194616 => 'L',
+ 194617 => 'L',
+ 194618 => 'L',
+ 194619 => 'L',
+ 194620 => 'L',
+ 194621 => 'L',
+ 194622 => 'L',
+ 194623 => 'L',
+ 194624 => 'L',
+ 194625 => 'L',
+ 194626 => 'L',
+ 194627 => 'L',
+ 194628 => 'L',
+ 194629 => 'L',
+ 194630 => 'L',
+ 194631 => 'L',
+ 194632 => 'L',
+ 194633 => 'L',
+ 194634 => 'L',
+ 194635 => 'L',
+ 194636 => 'L',
+ 194637 => 'L',
+ 194638 => 'L',
+ 194639 => 'L',
+ 194640 => 'L',
+ 194641 => 'L',
+ 194642 => 'L',
+ 194643 => 'L',
+ 194644 => 'L',
+ 194645 => 'L',
+ 194646 => 'L',
+ 194647 => 'L',
+ 194648 => 'L',
+ 194649 => 'L',
+ 194650 => 'L',
+ 194651 => 'L',
+ 194652 => 'L',
+ 194653 => 'L',
+ 194654 => 'L',
+ 194655 => 'L',
+ 194656 => 'L',
+ 194657 => 'L',
+ 194658 => 'L',
+ 194659 => 'L',
+ 194660 => 'L',
+ 194661 => 'L',
+ 194662 => 'L',
+ 194663 => 'L',
+ 194664 => 'L',
+ 194665 => 'L',
+ 194666 => 'L',
+ 194667 => 'L',
+ 194668 => 'L',
+ 194669 => 'L',
+ 194670 => 'L',
+ 194671 => 'L',
+ 194672 => 'L',
+ 194673 => 'L',
+ 194674 => 'L',
+ 194675 => 'L',
+ 194676 => 'L',
+ 194677 => 'L',
+ 194678 => 'L',
+ 194679 => 'L',
+ 194680 => 'L',
+ 194681 => 'L',
+ 194682 => 'L',
+ 194683 => 'L',
+ 194684 => 'L',
+ 194685 => 'L',
+ 194686 => 'L',
+ 194687 => 'L',
+ 194688 => 'L',
+ 194689 => 'L',
+ 194690 => 'L',
+ 194691 => 'L',
+ 194692 => 'L',
+ 194693 => 'L',
+ 194694 => 'L',
+ 194695 => 'L',
+ 194696 => 'L',
+ 194697 => 'L',
+ 194698 => 'L',
+ 194699 => 'L',
+ 194700 => 'L',
+ 194701 => 'L',
+ 194702 => 'L',
+ 194703 => 'L',
+ 194704 => 'L',
+ 194705 => 'L',
+ 194706 => 'L',
+ 194707 => 'L',
+ 194708 => 'L',
+ 194709 => 'L',
+ 194710 => 'L',
+ 194711 => 'L',
+ 194712 => 'L',
+ 194713 => 'L',
+ 194714 => 'L',
+ 194715 => 'L',
+ 194716 => 'L',
+ 194717 => 'L',
+ 194718 => 'L',
+ 194719 => 'L',
+ 194720 => 'L',
+ 194721 => 'L',
+ 194722 => 'L',
+ 194723 => 'L',
+ 194724 => 'L',
+ 194725 => 'L',
+ 194726 => 'L',
+ 194727 => 'L',
+ 194728 => 'L',
+ 194729 => 'L',
+ 194730 => 'L',
+ 194731 => 'L',
+ 194732 => 'L',
+ 194733 => 'L',
+ 194734 => 'L',
+ 194735 => 'L',
+ 194736 => 'L',
+ 194737 => 'L',
+ 194738 => 'L',
+ 194739 => 'L',
+ 194740 => 'L',
+ 194741 => 'L',
+ 194742 => 'L',
+ 194743 => 'L',
+ 194744 => 'L',
+ 194745 => 'L',
+ 194746 => 'L',
+ 194747 => 'L',
+ 194748 => 'L',
+ 194749 => 'L',
+ 194750 => 'L',
+ 194751 => 'L',
+ 194752 => 'L',
+ 194753 => 'L',
+ 194754 => 'L',
+ 194755 => 'L',
+ 194756 => 'L',
+ 194757 => 'L',
+ 194758 => 'L',
+ 194759 => 'L',
+ 194760 => 'L',
+ 194761 => 'L',
+ 194762 => 'L',
+ 194763 => 'L',
+ 194764 => 'L',
+ 194765 => 'L',
+ 194766 => 'L',
+ 194767 => 'L',
+ 194768 => 'L',
+ 194769 => 'L',
+ 194770 => 'L',
+ 194771 => 'L',
+ 194772 => 'L',
+ 194773 => 'L',
+ 194774 => 'L',
+ 194775 => 'L',
+ 194776 => 'L',
+ 194777 => 'L',
+ 194778 => 'L',
+ 194779 => 'L',
+ 194780 => 'L',
+ 194781 => 'L',
+ 194782 => 'L',
+ 194783 => 'L',
+ 194784 => 'L',
+ 194785 => 'L',
+ 194786 => 'L',
+ 194787 => 'L',
+ 194788 => 'L',
+ 194789 => 'L',
+ 194790 => 'L',
+ 194791 => 'L',
+ 194792 => 'L',
+ 194793 => 'L',
+ 194794 => 'L',
+ 194795 => 'L',
+ 194796 => 'L',
+ 194797 => 'L',
+ 194798 => 'L',
+ 194799 => 'L',
+ 194800 => 'L',
+ 194801 => 'L',
+ 194802 => 'L',
+ 194803 => 'L',
+ 194804 => 'L',
+ 194805 => 'L',
+ 194806 => 'L',
+ 194807 => 'L',
+ 194808 => 'L',
+ 194809 => 'L',
+ 194810 => 'L',
+ 194811 => 'L',
+ 194812 => 'L',
+ 194813 => 'L',
+ 194814 => 'L',
+ 194815 => 'L',
+ 194816 => 'L',
+ 194817 => 'L',
+ 194818 => 'L',
+ 194819 => 'L',
+ 194820 => 'L',
+ 194821 => 'L',
+ 194822 => 'L',
+ 194823 => 'L',
+ 194824 => 'L',
+ 194825 => 'L',
+ 194826 => 'L',
+ 194827 => 'L',
+ 194828 => 'L',
+ 194829 => 'L',
+ 194830 => 'L',
+ 194831 => 'L',
+ 194832 => 'L',
+ 194833 => 'L',
+ 194834 => 'L',
+ 194835 => 'L',
+ 194836 => 'L',
+ 194837 => 'L',
+ 194838 => 'L',
+ 194839 => 'L',
+ 194840 => 'L',
+ 194841 => 'L',
+ 194842 => 'L',
+ 194843 => 'L',
+ 194844 => 'L',
+ 194845 => 'L',
+ 194846 => 'L',
+ 194847 => 'L',
+ 194848 => 'L',
+ 194849 => 'L',
+ 194850 => 'L',
+ 194851 => 'L',
+ 194852 => 'L',
+ 194853 => 'L',
+ 194854 => 'L',
+ 194855 => 'L',
+ 194856 => 'L',
+ 194857 => 'L',
+ 194858 => 'L',
+ 194859 => 'L',
+ 194860 => 'L',
+ 194861 => 'L',
+ 194862 => 'L',
+ 194863 => 'L',
+ 194864 => 'L',
+ 194865 => 'L',
+ 194866 => 'L',
+ 194867 => 'L',
+ 194868 => 'L',
+ 194869 => 'L',
+ 194870 => 'L',
+ 194871 => 'L',
+ 194872 => 'L',
+ 194873 => 'L',
+ 194874 => 'L',
+ 194875 => 'L',
+ 194876 => 'L',
+ 194877 => 'L',
+ 194878 => 'L',
+ 194879 => 'L',
+ 194880 => 'L',
+ 194881 => 'L',
+ 194882 => 'L',
+ 194883 => 'L',
+ 194884 => 'L',
+ 194885 => 'L',
+ 194886 => 'L',
+ 194887 => 'L',
+ 194888 => 'L',
+ 194889 => 'L',
+ 194890 => 'L',
+ 194891 => 'L',
+ 194892 => 'L',
+ 194893 => 'L',
+ 194894 => 'L',
+ 194895 => 'L',
+ 194896 => 'L',
+ 194897 => 'L',
+ 194898 => 'L',
+ 194899 => 'L',
+ 194900 => 'L',
+ 194901 => 'L',
+ 194902 => 'L',
+ 194903 => 'L',
+ 194904 => 'L',
+ 194905 => 'L',
+ 194906 => 'L',
+ 194907 => 'L',
+ 194908 => 'L',
+ 194909 => 'L',
+ 194910 => 'L',
+ 194911 => 'L',
+ 194912 => 'L',
+ 194913 => 'L',
+ 194914 => 'L',
+ 194915 => 'L',
+ 194916 => 'L',
+ 194917 => 'L',
+ 194918 => 'L',
+ 194919 => 'L',
+ 194920 => 'L',
+ 194921 => 'L',
+ 194922 => 'L',
+ 194923 => 'L',
+ 194924 => 'L',
+ 194925 => 'L',
+ 194926 => 'L',
+ 194927 => 'L',
+ 194928 => 'L',
+ 194929 => 'L',
+ 194930 => 'L',
+ 194931 => 'L',
+ 194932 => 'L',
+ 194933 => 'L',
+ 194934 => 'L',
+ 194935 => 'L',
+ 194936 => 'L',
+ 194937 => 'L',
+ 194938 => 'L',
+ 194939 => 'L',
+ 194940 => 'L',
+ 194941 => 'L',
+ 194942 => 'L',
+ 194943 => 'L',
+ 194944 => 'L',
+ 194945 => 'L',
+ 194946 => 'L',
+ 194947 => 'L',
+ 194948 => 'L',
+ 194949 => 'L',
+ 194950 => 'L',
+ 194951 => 'L',
+ 194952 => 'L',
+ 194953 => 'L',
+ 194954 => 'L',
+ 194955 => 'L',
+ 194956 => 'L',
+ 194957 => 'L',
+ 194958 => 'L',
+ 194959 => 'L',
+ 194960 => 'L',
+ 194961 => 'L',
+ 194962 => 'L',
+ 194963 => 'L',
+ 194964 => 'L',
+ 194965 => 'L',
+ 194966 => 'L',
+ 194967 => 'L',
+ 194968 => 'L',
+ 194969 => 'L',
+ 194970 => 'L',
+ 194971 => 'L',
+ 194972 => 'L',
+ 194973 => 'L',
+ 194974 => 'L',
+ 194975 => 'L',
+ 194976 => 'L',
+ 194977 => 'L',
+ 194978 => 'L',
+ 194979 => 'L',
+ 194980 => 'L',
+ 194981 => 'L',
+ 194982 => 'L',
+ 194983 => 'L',
+ 194984 => 'L',
+ 194985 => 'L',
+ 194986 => 'L',
+ 194987 => 'L',
+ 194988 => 'L',
+ 194989 => 'L',
+ 194990 => 'L',
+ 194991 => 'L',
+ 194992 => 'L',
+ 194993 => 'L',
+ 194994 => 'L',
+ 194995 => 'L',
+ 194996 => 'L',
+ 194997 => 'L',
+ 194998 => 'L',
+ 194999 => 'L',
+ 195000 => 'L',
+ 195001 => 'L',
+ 195002 => 'L',
+ 195003 => 'L',
+ 195004 => 'L',
+ 195005 => 'L',
+ 195006 => 'L',
+ 195007 => 'L',
+ 195008 => 'L',
+ 195009 => 'L',
+ 195010 => 'L',
+ 195011 => 'L',
+ 195012 => 'L',
+ 195013 => 'L',
+ 195014 => 'L',
+ 195015 => 'L',
+ 195016 => 'L',
+ 195017 => 'L',
+ 195018 => 'L',
+ 195019 => 'L',
+ 195020 => 'L',
+ 195021 => 'L',
+ 195022 => 'L',
+ 195023 => 'L',
+ 195024 => 'L',
+ 195025 => 'L',
+ 195026 => 'L',
+ 195027 => 'L',
+ 195028 => 'L',
+ 195029 => 'L',
+ 195030 => 'L',
+ 195031 => 'L',
+ 195032 => 'L',
+ 195033 => 'L',
+ 195034 => 'L',
+ 195035 => 'L',
+ 195036 => 'L',
+ 195037 => 'L',
+ 195038 => 'L',
+ 195039 => 'L',
+ 195040 => 'L',
+ 195041 => 'L',
+ 195042 => 'L',
+ 195043 => 'L',
+ 195044 => 'L',
+ 195045 => 'L',
+ 195046 => 'L',
+ 195047 => 'L',
+ 195048 => 'L',
+ 195049 => 'L',
+ 195050 => 'L',
+ 195051 => 'L',
+ 195052 => 'L',
+ 195053 => 'L',
+ 195054 => 'L',
+ 195055 => 'L',
+ 195056 => 'L',
+ 195057 => 'L',
+ 195058 => 'L',
+ 195059 => 'L',
+ 195060 => 'L',
+ 195061 => 'L',
+ 195062 => 'L',
+ 195063 => 'L',
+ 195064 => 'L',
+ 195065 => 'L',
+ 195066 => 'L',
+ 195067 => 'L',
+ 195068 => 'L',
+ 195069 => 'L',
+ 195070 => 'L',
+ 195071 => 'L',
+ 195072 => 'L',
+ 195073 => 'L',
+ 195074 => 'L',
+ 195075 => 'L',
+ 195076 => 'L',
+ 195077 => 'L',
+ 195078 => 'L',
+ 195079 => 'L',
+ 195080 => 'L',
+ 195081 => 'L',
+ 195082 => 'L',
+ 195083 => 'L',
+ 195084 => 'L',
+ 195085 => 'L',
+ 195086 => 'L',
+ 195087 => 'L',
+ 195088 => 'L',
+ 195089 => 'L',
+ 195090 => 'L',
+ 195091 => 'L',
+ 195092 => 'L',
+ 195093 => 'L',
+ 195094 => 'L',
+ 195095 => 'L',
+ 195096 => 'L',
+ 195097 => 'L',
+ 195098 => 'L',
+ 195099 => 'L',
+ 195100 => 'L',
+ 195101 => 'L',
+ 917505 => 'BN',
+ 917536 => 'BN',
+ 917537 => 'BN',
+ 917538 => 'BN',
+ 917539 => 'BN',
+ 917540 => 'BN',
+ 917541 => 'BN',
+ 917542 => 'BN',
+ 917543 => 'BN',
+ 917544 => 'BN',
+ 917545 => 'BN',
+ 917546 => 'BN',
+ 917547 => 'BN',
+ 917548 => 'BN',
+ 917549 => 'BN',
+ 917550 => 'BN',
+ 917551 => 'BN',
+ 917552 => 'BN',
+ 917553 => 'BN',
+ 917554 => 'BN',
+ 917555 => 'BN',
+ 917556 => 'BN',
+ 917557 => 'BN',
+ 917558 => 'BN',
+ 917559 => 'BN',
+ 917560 => 'BN',
+ 917561 => 'BN',
+ 917562 => 'BN',
+ 917563 => 'BN',
+ 917564 => 'BN',
+ 917565 => 'BN',
+ 917566 => 'BN',
+ 917567 => 'BN',
+ 917568 => 'BN',
+ 917569 => 'BN',
+ 917570 => 'BN',
+ 917571 => 'BN',
+ 917572 => 'BN',
+ 917573 => 'BN',
+ 917574 => 'BN',
+ 917575 => 'BN',
+ 917576 => 'BN',
+ 917577 => 'BN',
+ 917578 => 'BN',
+ 917579 => 'BN',
+ 917580 => 'BN',
+ 917581 => 'BN',
+ 917582 => 'BN',
+ 917583 => 'BN',
+ 917584 => 'BN',
+ 917585 => 'BN',
+ 917586 => 'BN',
+ 917587 => 'BN',
+ 917588 => 'BN',
+ 917589 => 'BN',
+ 917590 => 'BN',
+ 917591 => 'BN',
+ 917592 => 'BN',
+ 917593 => 'BN',
+ 917594 => 'BN',
+ 917595 => 'BN',
+ 917596 => 'BN',
+ 917597 => 'BN',
+ 917598 => 'BN',
+ 917599 => 'BN',
+ 917600 => 'BN',
+ 917601 => 'BN',
+ 917602 => 'BN',
+ 917603 => 'BN',
+ 917604 => 'BN',
+ 917605 => 'BN',
+ 917606 => 'BN',
+ 917607 => 'BN',
+ 917608 => 'BN',
+ 917609 => 'BN',
+ 917610 => 'BN',
+ 917611 => 'BN',
+ 917612 => 'BN',
+ 917613 => 'BN',
+ 917614 => 'BN',
+ 917615 => 'BN',
+ 917616 => 'BN',
+ 917617 => 'BN',
+ 917618 => 'BN',
+ 917619 => 'BN',
+ 917620 => 'BN',
+ 917621 => 'BN',
+ 917622 => 'BN',
+ 917623 => 'BN',
+ 917624 => 'BN',
+ 917625 => 'BN',
+ 917626 => 'BN',
+ 917627 => 'BN',
+ 917628 => 'BN',
+ 917629 => 'BN',
+ 917630 => 'BN',
+ 917631 => 'BN',
+ 917760 => 'NSM',
+ 917761 => 'NSM',
+ 917762 => 'NSM',
+ 917763 => 'NSM',
+ 917764 => 'NSM',
+ 917765 => 'NSM',
+ 917766 => 'NSM',
+ 917767 => 'NSM',
+ 917768 => 'NSM',
+ 917769 => 'NSM',
+ 917770 => 'NSM',
+ 917771 => 'NSM',
+ 917772 => 'NSM',
+ 917773 => 'NSM',
+ 917774 => 'NSM',
+ 917775 => 'NSM',
+ 917776 => 'NSM',
+ 917777 => 'NSM',
+ 917778 => 'NSM',
+ 917779 => 'NSM',
+ 917780 => 'NSM',
+ 917781 => 'NSM',
+ 917782 => 'NSM',
+ 917783 => 'NSM',
+ 917784 => 'NSM',
+ 917785 => 'NSM',
+ 917786 => 'NSM',
+ 917787 => 'NSM',
+ 917788 => 'NSM',
+ 917789 => 'NSM',
+ 917790 => 'NSM',
+ 917791 => 'NSM',
+ 917792 => 'NSM',
+ 917793 => 'NSM',
+ 917794 => 'NSM',
+ 917795 => 'NSM',
+ 917796 => 'NSM',
+ 917797 => 'NSM',
+ 917798 => 'NSM',
+ 917799 => 'NSM',
+ 917800 => 'NSM',
+ 917801 => 'NSM',
+ 917802 => 'NSM',
+ 917803 => 'NSM',
+ 917804 => 'NSM',
+ 917805 => 'NSM',
+ 917806 => 'NSM',
+ 917807 => 'NSM',
+ 917808 => 'NSM',
+ 917809 => 'NSM',
+ 917810 => 'NSM',
+ 917811 => 'NSM',
+ 917812 => 'NSM',
+ 917813 => 'NSM',
+ 917814 => 'NSM',
+ 917815 => 'NSM',
+ 917816 => 'NSM',
+ 917817 => 'NSM',
+ 917818 => 'NSM',
+ 917819 => 'NSM',
+ 917820 => 'NSM',
+ 917821 => 'NSM',
+ 917822 => 'NSM',
+ 917823 => 'NSM',
+ 917824 => 'NSM',
+ 917825 => 'NSM',
+ 917826 => 'NSM',
+ 917827 => 'NSM',
+ 917828 => 'NSM',
+ 917829 => 'NSM',
+ 917830 => 'NSM',
+ 917831 => 'NSM',
+ 917832 => 'NSM',
+ 917833 => 'NSM',
+ 917834 => 'NSM',
+ 917835 => 'NSM',
+ 917836 => 'NSM',
+ 917837 => 'NSM',
+ 917838 => 'NSM',
+ 917839 => 'NSM',
+ 917840 => 'NSM',
+ 917841 => 'NSM',
+ 917842 => 'NSM',
+ 917843 => 'NSM',
+ 917844 => 'NSM',
+ 917845 => 'NSM',
+ 917846 => 'NSM',
+ 917847 => 'NSM',
+ 917848 => 'NSM',
+ 917849 => 'NSM',
+ 917850 => 'NSM',
+ 917851 => 'NSM',
+ 917852 => 'NSM',
+ 917853 => 'NSM',
+ 917854 => 'NSM',
+ 917855 => 'NSM',
+ 917856 => 'NSM',
+ 917857 => 'NSM',
+ 917858 => 'NSM',
+ 917859 => 'NSM',
+ 917860 => 'NSM',
+ 917861 => 'NSM',
+ 917862 => 'NSM',
+ 917863 => 'NSM',
+ 917864 => 'NSM',
+ 917865 => 'NSM',
+ 917866 => 'NSM',
+ 917867 => 'NSM',
+ 917868 => 'NSM',
+ 917869 => 'NSM',
+ 917870 => 'NSM',
+ 917871 => 'NSM',
+ 917872 => 'NSM',
+ 917873 => 'NSM',
+ 917874 => 'NSM',
+ 917875 => 'NSM',
+ 917876 => 'NSM',
+ 917877 => 'NSM',
+ 917878 => 'NSM',
+ 917879 => 'NSM',
+ 917880 => 'NSM',
+ 917881 => 'NSM',
+ 917882 => 'NSM',
+ 917883 => 'NSM',
+ 917884 => 'NSM',
+ 917885 => 'NSM',
+ 917886 => 'NSM',
+ 917887 => 'NSM',
+ 917888 => 'NSM',
+ 917889 => 'NSM',
+ 917890 => 'NSM',
+ 917891 => 'NSM',
+ 917892 => 'NSM',
+ 917893 => 'NSM',
+ 917894 => 'NSM',
+ 917895 => 'NSM',
+ 917896 => 'NSM',
+ 917897 => 'NSM',
+ 917898 => 'NSM',
+ 917899 => 'NSM',
+ 917900 => 'NSM',
+ 917901 => 'NSM',
+ 917902 => 'NSM',
+ 917903 => 'NSM',
+ 917904 => 'NSM',
+ 917905 => 'NSM',
+ 917906 => 'NSM',
+ 917907 => 'NSM',
+ 917908 => 'NSM',
+ 917909 => 'NSM',
+ 917910 => 'NSM',
+ 917911 => 'NSM',
+ 917912 => 'NSM',
+ 917913 => 'NSM',
+ 917914 => 'NSM',
+ 917915 => 'NSM',
+ 917916 => 'NSM',
+ 917917 => 'NSM',
+ 917918 => 'NSM',
+ 917919 => 'NSM',
+ 917920 => 'NSM',
+ 917921 => 'NSM',
+ 917922 => 'NSM',
+ 917923 => 'NSM',
+ 917924 => 'NSM',
+ 917925 => 'NSM',
+ 917926 => 'NSM',
+ 917927 => 'NSM',
+ 917928 => 'NSM',
+ 917929 => 'NSM',
+ 917930 => 'NSM',
+ 917931 => 'NSM',
+ 917932 => 'NSM',
+ 917933 => 'NSM',
+ 917934 => 'NSM',
+ 917935 => 'NSM',
+ 917936 => 'NSM',
+ 917937 => 'NSM',
+ 917938 => 'NSM',
+ 917939 => 'NSM',
+ 917940 => 'NSM',
+ 917941 => 'NSM',
+ 917942 => 'NSM',
+ 917943 => 'NSM',
+ 917944 => 'NSM',
+ 917945 => 'NSM',
+ 917946 => 'NSM',
+ 917947 => 'NSM',
+ 917948 => 'NSM',
+ 917949 => 'NSM',
+ 917950 => 'NSM',
+ 917951 => 'NSM',
+ 917952 => 'NSM',
+ 917953 => 'NSM',
+ 917954 => 'NSM',
+ 917955 => 'NSM',
+ 917956 => 'NSM',
+ 917957 => 'NSM',
+ 917958 => 'NSM',
+ 917959 => 'NSM',
+ 917960 => 'NSM',
+ 917961 => 'NSM',
+ 917962 => 'NSM',
+ 917963 => 'NSM',
+ 917964 => 'NSM',
+ 917965 => 'NSM',
+ 917966 => 'NSM',
+ 917967 => 'NSM',
+ 917968 => 'NSM',
+ 917969 => 'NSM',
+ 917970 => 'NSM',
+ 917971 => 'NSM',
+ 917972 => 'NSM',
+ 917973 => 'NSM',
+ 917974 => 'NSM',
+ 917975 => 'NSM',
+ 917976 => 'NSM',
+ 917977 => 'NSM',
+ 917978 => 'NSM',
+ 917979 => 'NSM',
+ 917980 => 'NSM',
+ 917981 => 'NSM',
+ 917982 => 'NSM',
+ 917983 => 'NSM',
+ 917984 => 'NSM',
+ 917985 => 'NSM',
+ 917986 => 'NSM',
+ 917987 => 'NSM',
+ 917988 => 'NSM',
+ 917989 => 'NSM',
+ 917990 => 'NSM',
+ 917991 => 'NSM',
+ 917992 => 'NSM',
+ 917993 => 'NSM',
+ 917994 => 'NSM',
+ 917995 => 'NSM',
+ 917996 => 'NSM',
+ 917997 => 'NSM',
+ 917998 => 'NSM',
+ 917999 => 'NSM',
+ 983040 => 'L',
+ 1048573 => 'L',
+ 1048576 => 'L',
+ 1114109 => 'L'
+);
+
+/**
+* Mirror unicode characters.
+* For information on bidi mirroring, see UAX #9: Bidirectional Algorithm, at http://www.unicode.org/unicode/reports/tr9/
+*/
+$unicode_mirror = array(
+0x0028 => 0x0029,
+0x0029 => 0x0028,
+0x003C => 0x003E,
+0x003E => 0x003C,
+0x005B => 0x005D,
+0x005D => 0x005B,
+0x007B => 0x007D,
+0x007D => 0x007B,
+0x00AB => 0x00BB,
+0x00BB => 0x00AB,
+0x0F3A => 0x0F3B,
+0x0F3B => 0x0F3A,
+0x0F3C => 0x0F3D,
+0x0F3D => 0x0F3C,
+0x169B => 0x169C,
+0x169C => 0x169B,
+0x2018 => 0x2019,
+0x2019 => 0x2018,
+0x201C => 0x201D,
+0x201D => 0x201C,
+0x2039 => 0x203A,
+0x203A => 0x2039,
+0x2045 => 0x2046,
+0x2046 => 0x2045,
+0x207D => 0x207E,
+0x207E => 0x207D,
+0x208D => 0x208E,
+0x208E => 0x208D,
+0x2208 => 0x220B,
+0x2209 => 0x220C,
+0x220A => 0x220D,
+0x220B => 0x2208,
+0x220C => 0x2209,
+0x220D => 0x220A,
+0x2215 => 0x29F5,
+0x223C => 0x223D,
+0x223D => 0x223C,
+0x2243 => 0x22CD,
+0x2252 => 0x2253,
+0x2253 => 0x2252,
+0x2254 => 0x2255,
+0x2255 => 0x2254,
+0x2264 => 0x2265,
+0x2265 => 0x2264,
+0x2266 => 0x2267,
+0x2267 => 0x2266,
+0x2268 => 0x2269,
+0x2269 => 0x2268,
+0x226A => 0x226B,
+0x226B => 0x226A,
+0x226E => 0x226F,
+0x226F => 0x226E,
+0x2270 => 0x2271,
+0x2271 => 0x2270,
+0x2272 => 0x2273,
+0x2273 => 0x2272,
+0x2274 => 0x2275,
+0x2275 => 0x2274,
+0x2276 => 0x2277,
+0x2277 => 0x2276,
+0x2278 => 0x2279,
+0x2279 => 0x2278,
+0x227A => 0x227B,
+0x227B => 0x227A,
+0x227C => 0x227D,
+0x227D => 0x227C,
+0x227E => 0x227F,
+0x227F => 0x227E,
+0x2280 => 0x2281,
+0x2281 => 0x2280,
+0x2282 => 0x2283,
+0x2283 => 0x2282,
+0x2284 => 0x2285,
+0x2285 => 0x2284,
+0x2286 => 0x2287,
+0x2287 => 0x2286,
+0x2288 => 0x2289,
+0x2289 => 0x2288,
+0x228A => 0x228B,
+0x228B => 0x228A,
+0x228F => 0x2290,
+0x2290 => 0x228F,
+0x2291 => 0x2292,
+0x2292 => 0x2291,
+0x2298 => 0x29B8,
+0x22A2 => 0x22A3,
+0x22A3 => 0x22A2,
+0x22A6 => 0x2ADE,
+0x22A8 => 0x2AE4,
+0x22A9 => 0x2AE3,
+0x22AB => 0x2AE5,
+0x22B0 => 0x22B1,
+0x22B1 => 0x22B0,
+0x22B2 => 0x22B3,
+0x22B3 => 0x22B2,
+0x22B4 => 0x22B5,
+0x22B5 => 0x22B4,
+0x22B6 => 0x22B7,
+0x22B7 => 0x22B6,
+0x22C9 => 0x22CA,
+0x22CA => 0x22C9,
+0x22CB => 0x22CC,
+0x22CC => 0x22CB,
+0x22CD => 0x2243,
+0x22D0 => 0x22D1,
+0x22D1 => 0x22D0,
+0x22D6 => 0x22D7,
+0x22D7 => 0x22D6,
+0x22D8 => 0x22D9,
+0x22D9 => 0x22D8,
+0x22DA => 0x22DB,
+0x22DB => 0x22DA,
+0x22DC => 0x22DD,
+0x22DD => 0x22DC,
+0x22DE => 0x22DF,
+0x22DF => 0x22DE,
+0x22E0 => 0x22E1,
+0x22E1 => 0x22E0,
+0x22E2 => 0x22E3,
+0x22E3 => 0x22E2,
+0x22E4 => 0x22E5,
+0x22E5 => 0x22E4,
+0x22E6 => 0x22E7,
+0x22E7 => 0x22E6,
+0x22E8 => 0x22E9,
+0x22E9 => 0x22E8,
+0x22EA => 0x22EB,
+0x22EB => 0x22EA,
+0x22EC => 0x22ED,
+0x22ED => 0x22EC,
+0x22F0 => 0x22F1,
+0x22F1 => 0x22F0,
+0x22F2 => 0x22FA,
+0x22F3 => 0x22FB,
+0x22F4 => 0x22FC,
+0x22F6 => 0x22FD,
+0x22F7 => 0x22FE,
+0x22FA => 0x22F2,
+0x22FB => 0x22F3,
+0x22FC => 0x22F4,
+0x22FD => 0x22F6,
+0x22FE => 0x22F7,
+0x2308 => 0x2309,
+0x2309 => 0x2308,
+0x230A => 0x230B,
+0x230B => 0x230A,
+0x2329 => 0x232A,
+0x232A => 0x2329,
+0x2768 => 0x2769,
+0x2769 => 0x2768,
+0x276A => 0x276B,
+0x276B => 0x276A,
+0x276C => 0x276D,
+0x276D => 0x276C,
+0x276E => 0x276F,
+0x276F => 0x276E,
+0x2770 => 0x2771,
+0x2771 => 0x2770,
+0x2772 => 0x2773,
+0x2773 => 0x2772,
+0x2774 => 0x2775,
+0x2775 => 0x2774,
+0x27C3 => 0x27C4,
+0x27C4 => 0x27C3,
+0x27C5 => 0x27C6,
+0x27C6 => 0x27C5,
+0x27D5 => 0x27D6,
+0x27D6 => 0x27D5,
+0x27DD => 0x27DE,
+0x27DE => 0x27DD,
+0x27E2 => 0x27E3,
+0x27E3 => 0x27E2,
+0x27E4 => 0x27E5,
+0x27E5 => 0x27E4,
+0x27E6 => 0x27E7,
+0x27E7 => 0x27E6,
+0x27E8 => 0x27E9,
+0x27E9 => 0x27E8,
+0x27EA => 0x27EB,
+0x27EB => 0x27EA,
+0x2983 => 0x2984,
+0x2984 => 0x2983,
+0x2985 => 0x2986,
+0x2986 => 0x2985,
+0x2987 => 0x2988,
+0x2988 => 0x2987,
+0x2989 => 0x298A,
+0x298A => 0x2989,
+0x298B => 0x298C,
+0x298C => 0x298B,
+0x298D => 0x2990,
+0x298E => 0x298F,
+0x298F => 0x298E,
+0x2990 => 0x298D,
+0x2991 => 0x2992,
+0x2992 => 0x2991,
+0x2993 => 0x2994,
+0x2994 => 0x2993,
+0x2995 => 0x2996,
+0x2996 => 0x2995,
+0x2997 => 0x2998,
+0x2998 => 0x2997,
+0x29B8 => 0x2298,
+0x29C0 => 0x29C1,
+0x29C1 => 0x29C0,
+0x29C4 => 0x29C5,
+0x29C5 => 0x29C4,
+0x29CF => 0x29D0,
+0x29D0 => 0x29CF,
+0x29D1 => 0x29D2,
+0x29D2 => 0x29D1,
+0x29D4 => 0x29D5,
+0x29D5 => 0x29D4,
+0x29D8 => 0x29D9,
+0x29D9 => 0x29D8,
+0x29DA => 0x29DB,
+0x29DB => 0x29DA,
+0x29F5 => 0x2215,
+0x29F8 => 0x29F9,
+0x29F9 => 0x29F8,
+0x29FC => 0x29FD,
+0x29FD => 0x29FC,
+0x2A2B => 0x2A2C,
+0x2A2C => 0x2A2B,
+0x2A2D => 0x2A2E,
+0x2A2E => 0x2A2D,
+0x2A34 => 0x2A35,
+0x2A35 => 0x2A34,
+0x2A3C => 0x2A3D,
+0x2A3D => 0x2A3C,
+0x2A64 => 0x2A65,
+0x2A65 => 0x2A64,
+0x2A79 => 0x2A7A,
+0x2A7A => 0x2A79,
+0x2A7D => 0x2A7E,
+0x2A7E => 0x2A7D,
+0x2A7F => 0x2A80,
+0x2A80 => 0x2A7F,
+0x2A81 => 0x2A82,
+0x2A82 => 0x2A81,
+0x2A83 => 0x2A84,
+0x2A84 => 0x2A83,
+0x2A8B => 0x2A8C,
+0x2A8C => 0x2A8B,
+0x2A91 => 0x2A92,
+0x2A92 => 0x2A91,
+0x2A93 => 0x2A94,
+0x2A94 => 0x2A93,
+0x2A95 => 0x2A96,
+0x2A96 => 0x2A95,
+0x2A97 => 0x2A98,
+0x2A98 => 0x2A97,
+0x2A99 => 0x2A9A,
+0x2A9A => 0x2A99,
+0x2A9B => 0x2A9C,
+0x2A9C => 0x2A9B,
+0x2AA1 => 0x2AA2,
+0x2AA2 => 0x2AA1,
+0x2AA6 => 0x2AA7,
+0x2AA7 => 0x2AA6,
+0x2AA8 => 0x2AA9,
+0x2AA9 => 0x2AA8,
+0x2AAA => 0x2AAB,
+0x2AAB => 0x2AAA,
+0x2AAC => 0x2AAD,
+0x2AAD => 0x2AAC,
+0x2AAF => 0x2AB0,
+0x2AB0 => 0x2AAF,
+0x2AB3 => 0x2AB4,
+0x2AB4 => 0x2AB3,
+0x2ABB => 0x2ABC,
+0x2ABC => 0x2ABB,
+0x2ABD => 0x2ABE,
+0x2ABE => 0x2ABD,
+0x2ABF => 0x2AC0,
+0x2AC0 => 0x2ABF,
+0x2AC1 => 0x2AC2,
+0x2AC2 => 0x2AC1,
+0x2AC3 => 0x2AC4,
+0x2AC4 => 0x2AC3,
+0x2AC5 => 0x2AC6,
+0x2AC6 => 0x2AC5,
+0x2ACD => 0x2ACE,
+0x2ACE => 0x2ACD,
+0x2ACF => 0x2AD0,
+0x2AD0 => 0x2ACF,
+0x2AD1 => 0x2AD2,
+0x2AD2 => 0x2AD1,
+0x2AD3 => 0x2AD4,
+0x2AD4 => 0x2AD3,
+0x2AD5 => 0x2AD6,
+0x2AD6 => 0x2AD5,
+0x2ADE => 0x22A6,
+0x2AE3 => 0x22A9,
+0x2AE4 => 0x22A8,
+0x2AE5 => 0x22AB,
+0x2AEC => 0x2AED,
+0x2AED => 0x2AEC,
+0x2AF7 => 0x2AF8,
+0x2AF8 => 0x2AF7,
+0x2AF9 => 0x2AFA,
+0x2AFA => 0x2AF9,
+0x2E02 => 0x2E03,
+0x2E03 => 0x2E02,
+0x2E04 => 0x2E05,
+0x2E05 => 0x2E04,
+0x2E09 => 0x2E0A,
+0x2E0A => 0x2E09,
+0x2E0C => 0x2E0D,
+0x2E0D => 0x2E0C,
+0x2E1C => 0x2E1D,
+0x2E1D => 0x2E1C,
+0x3008 => 0x3009,
+0x3009 => 0x3008,
+0x300A => 0x300B,
+0x300B => 0x300A,
+0x300C => 0x300D,
+0x300D => 0x300C,
+0x300E => 0x300F,
+0x300F => 0x300E,
+0x3010 => 0x3011,
+0x3011 => 0x3010,
+0x3014 => 0x3015,
+0x3015 => 0x3014,
+0x3016 => 0x3017,
+0x3017 => 0x3016,
+0x3018 => 0x3019,
+0x3019 => 0x3018,
+0x301A => 0x301B,
+0x301B => 0x301A,
+0x301D => 0x301E,
+0x301E => 0x301D,
+0xFE59 => 0xFE5A,
+0xFE5A => 0xFE59,
+0xFE5B => 0xFE5C,
+0xFE5C => 0xFE5B,
+0xFE5D => 0xFE5E,
+0xFE5E => 0xFE5D,
+0xFE64 => 0xFE65,
+0xFE65 => 0xFE64,
+0xFF08 => 0xFF09,
+0xFF09 => 0xFF08,
+0xFF1C => 0xFF1E,
+0xFF1E => 0xFF1C,
+0xFF3B => 0xFF3D,
+0xFF3D => 0xFF3B,
+0xFF5B => 0xFF5D,
+0xFF5D => 0xFF5B,
+0xFF5F => 0xFF60,
+0xFF60 => 0xFF5F,
+0xFF62 => 0xFF63,
+0xFF63 => 0xFF62);
+
+/**
+ * Arabic shape subtitutions
+ * char code => isolated, final, initial, medial
+ */
+$unicode_arlet = array(
+ 1569 => array(65152),
+ 1570 => array(65153, 65154),
+ 1571 => array(65155, 65156),
+ 1572 => array(65157, 65158),
+ 1573 => array(65159, 65160),
+ 1574 => array(65161, 65162, 65163, 65164),
+ 1575 => array(65165, 65166),
+ 1576 => array(65167, 65168, 65169, 65170),
+ 1577 => array(65171, 65172),
+ 1578 => array(65173, 65174, 65175, 65176),
+ 1579 => array(65177, 65178, 65179, 65180),
+ 1580 => array(65181, 65182, 65183, 65184),
+ 1581 => array(65185, 65186, 65187, 65188),
+ 1582 => array(65189, 65190, 65191, 65192),
+ 1583 => array(65193, 65194),
+ 1584 => array(65195, 65196),
+ 1585 => array(65197, 65198),
+ 1586 => array(65199, 65200),
+ 1587 => array(65201, 65202, 65203, 65204),
+ 1588 => array(65205, 65206, 65207, 65208),
+ 1589 => array(65209, 65210, 65211, 65212),
+ 1590 => array(65213, 65214, 65215, 65216),
+ 1591 => array(65217, 65218, 65219, 65220),
+ 1592 => array(65221, 65222, 65223, 65224),
+ 1593 => array(65225, 65226, 65227, 65228),
+ 1594 => array(65229, 65230, 65231, 65232),
+ 1601 => array(65233, 65234, 65235, 65236),
+ 1602 => array(65237, 65238, 65239, 65240),
+ 1603 => array(65241, 65242, 65243, 65244),
+ 1604 => array(65245, 65246, 65247, 65248),
+ 1605 => array(65249, 65250, 65251, 65252),
+ 1606 => array(65253, 65254, 65255, 65256),
+ 1607 => array(65257, 65258, 65259, 65260),
+ 1608 => array(65261, 65262),
+ 1609 => array(65263, 65264, 64488, 64489),
+ 1610 => array(65265, 65266, 65267, 65268),
+ 1649 => array(64336, 64337),
+ 1655 => array(64477),
+ 1657 => array(64358, 64359, 64360, 64361),
+ 1658 => array(64350, 64351, 64352, 64353),
+ 1659 => array(64338, 64339, 64340, 64341),
+ 1662 => array(64342, 64343, 64344, 64345),
+ 1663 => array(64354, 64355, 64356, 64357),
+ 1664 => array(64346, 64347, 64348, 64349),
+ 1667 => array(64374, 64375, 64376, 64377),
+ 1668 => array(64370, 64371, 64372, 64373),
+ 1670 => array(64378, 64379, 64380, 64381),
+ 1671 => array(64382, 64383, 64384, 64385),
+ 1672 => array(64392, 64393),
+ 1676 => array(64388, 64389),
+ 1677 => array(64386, 64387),
+ 1678 => array(64390, 64391),
+ 1681 => array(64396, 64397),
+ 1688 => array(64394, 64395),
+ 1700 => array(64362, 64363, 64364, 64365),
+ 1702 => array(64366, 64367, 64368, 64369),
+ 1705 => array(64398, 64399, 64400, 64401),
+ 1709 => array(64467, 64468, 64469, 64470),
+ 1711 => array(64402, 64403, 64404, 64405),
+ 1713 => array(64410, 64411, 64412, 64413),
+ 1715 => array(64406, 64407, 64408, 64409),
+ 1722 => array(64414, 64415),
+ 1723 => array(64416, 64417, 64418, 64419),
+ 1726 => array(64426, 64427, 64428, 64429),
+ 1728 => array(64420, 64421),
+ 1729 => array(64422, 64423, 64424, 64425),
+ 1733 => array(64480, 64481),
+ 1734 => array(64473, 64474),
+ 1735 => array(64471, 64472),
+ 1736 => array(64475, 64476),
+ 1737 => array(64482, 64483),
+ 1739 => array(64478, 64479),
+ 1740 => array(64508, 64509, 64510, 64511),
+ 1744 => array(64484, 64485, 64486, 64487),
+ 1746 => array(64430, 64431),
+ 1747 => array(64432, 64433),
+ 8204 => array(00000),
+ 8205 => array(00000, 00000, 00000, 00000)
+);
+
+//============================================================+
+// END OF FILE
+//============================================================+
+?> \ No newline at end of file
diff --git a/libraries/transformations.lib.php b/libraries/transformations.lib.php
new file mode 100644
index 0000000000..edd9652d07
--- /dev/null
+++ b/libraries/transformations.lib.php
@@ -0,0 +1,249 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Set of functions used with the relation and pdf feature
+ *
+ * @version $Id$
+ */
+
+/**
+ * returns array of options from string with options separated by comma, removes quotes
+ *
+ * <code>
+ * PMA_transformation_getOptions("'option ,, quoted',abd,'2,3',");
+ * // array {
+ * // 'option ,, quoted',
+ * // 'abc',
+ * // '2,3',
+ * // '',
+ * // }
+ * </code>
+ *
+ * @uses preg_split()
+ * @uses array_shift()
+ * @uses trim()
+ * @uses rtrim()
+ * @uses ltrim()
+ * @uses strlen()
+ * @uses substr()
+ * @uses stripslashes()
+ * @param string $option_string comma separated options
+ * @return array options
+ */
+function PMA_transformation_getOptions($option_string)
+{
+ $result = array();
+
+ if (! strlen($option_string)
+ || ! $transform_options = preg_split('/,/', $option_string)) {
+ return $result;
+ }
+
+ while (($option = array_shift($transform_options)) !== null) {
+ $trimmed = trim($option);
+ if (strlen($trimmed) > 1
+ && $trimmed[0] == "'"
+ && $trimmed[strlen($trimmed) - 1] == "'") {
+ // '...'
+ $option = substr($trimmed, 1, -1);
+ } elseif (isset($trimmed[0]) && $trimmed[0] == "'") {
+ // '...,
+ $trimmed = ltrim($option);
+ while (($option = array_shift($transform_options)) !== null) {
+ // ...,
+ $trimmed .= ',' . $option;
+ $rtrimmed = rtrim($trimmed);
+ if ($rtrimmed[strlen($rtrimmed) - 1] == "'") {
+ // ,...'
+ break;
+ }
+ }
+ $option = substr($rtrimmed, 1, -1);
+ }
+ $result[] = stripslashes($option);
+ }
+
+ return $result;
+}
+
+/**
+ * Gets all available MIME-types
+ *
+ * @access public
+ * @author Garvin Hicking <me@supergarv.de>
+ * @uses opendir()
+ * @uses readdir()
+ * @uses closedir()
+ * @uses sort()
+ * @uses preg_match()
+ * @uses explode()
+ * @uses str_replace()
+ * @staticvar array mimetypes
+ * @return array array[mimetype], array[transformation]
+ */
+function PMA_getAvailableMIMEtypes()
+{
+ static $stack = null;
+
+ if (null !== $stack) {
+ return $stack;
+ }
+
+ $stack = array();
+ $filestack = array();
+
+ $handle = opendir('./libraries/transformations');
+
+ if (! $handle) {
+ return $stack;
+ }
+
+ while ($file = readdir($handle)) {
+ $filestack[] = $file;
+ }
+
+ closedir($handle);
+ sort($filestack);
+
+ foreach ($filestack as $file) {
+ if (preg_match('|^.*__.*\.inc\.php$|', $file)) {
+ // File contains transformation functions.
+ $base = explode('__', str_replace('.inc.php', '', $file));
+ $mimetype = str_replace('_', '/', $base[0]);
+ $stack['mimetype'][$mimetype] = $mimetype;
+
+ $stack['transformation'][] = $mimetype . ': ' . $base[1];
+ $stack['transformation_file'][] = $file;
+
+ } elseif (preg_match('|^.*\.inc\.php$|', $file)) {
+ // File is a plain mimetype, no functions.
+ $base = str_replace('.inc.php', '', $file);
+
+ if ($base != 'global') {
+ $mimetype = str_replace('_', '/', $base);
+ $stack['mimetype'][$mimetype] = $mimetype;
+ $stack['empty_mimetype'][$mimetype] = $mimetype;
+ }
+ }
+ }
+
+ return $stack;
+}
+
+/**
+ * Gets the mimetypes for all columns of a table
+ *
+ * @uses $GLOBALS['controllink']
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_fetch_result()
+ * @author Mike Beck <mikebeck@users.sourceforge.net>
+ * @author Garvin Hicking <me@supergarv.de>
+ * @access public
+ * @param string $db the name of the db to check for
+ * @param string $table the name of the table to check for
+ * @param string $strict whether to include only results having a mimetype set
+ * @return array [field_name][field_key] = field_value
+ */
+function PMA_getMIME($db, $table, $strict = false)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if (! $cfgRelation['commwork']) {
+ return false;
+ }
+
+ $com_qry = '
+ SELECT `column_name`,
+ `mimetype`,
+ `transformation`,
+ `transformation_options`
+ FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info']) . '
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($table) . '\'
+ AND ( `mimetype` != \'\'' . (!$strict ? '
+ OR `transformation` != \'\'
+ OR `transformation_options` != \'\'' : '') . ')';
+ return PMA_DBI_fetch_result($com_qry, 'column_name', null, $GLOBALS['controllink']);
+} // end of the 'PMA_getMIME()' function
+
+/**
+ * Set a single mimetype to a certain value.
+ *
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_query_as_cu()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_DBI_free_result()
+ * @uses strlen()
+ * @access public
+ * @param string $db the name of the db
+ * @param string $table the name of the table
+ * @param string $key the name of the column
+ * @param string $mimetype the mimetype of the column
+ * @param string $transformation the transformation of the column
+ * @param string $transformation_options the transformation options of the column
+ * @param string $forcedelete force delete, will erase any existing comments for this column
+ * @return boolean true, if comment-query was made.
+ */
+function PMA_setMIME($db, $table, $key, $mimetype, $transformation,
+ $transformation_options, $forcedelete = false)
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if (! $cfgRelation['commwork']) {
+ return false;
+ }
+
+ $test_qry = '
+ SELECT `mimetype`,
+ `comment`
+ FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info']) . '
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($table) . '\'
+ AND `column_name` = \'' . PMA_sqlAddslashes($key) . '\'';
+ $test_rs = PMA_query_as_cu($test_qry, true, PMA_DBI_QUERY_STORE);
+
+ if ($test_rs && PMA_DBI_num_rows($test_rs) > 0) {
+ $row = @PMA_DBI_fetch_assoc($test_rs);
+ PMA_DBI_free_result($test_rs);
+
+ if (! $forcedelete
+ && (strlen($mimetype) || strlen($transformation)
+ || strlen($transformation_options) || strlen($row['comment']))) {
+ $upd_query = '
+ UPDATE ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info']) . '
+ SET `mimetype` = \'' . PMA_sqlAddslashes($mimetype) . '\',
+ `transformation` = \'' . PMA_sqlAddslashes($transformation) . '\',
+ `transformation_options` = \'' . PMA_sqlAddslashes($transformation_options) . '\'';
+ } else {
+ $upd_query = 'DELETE FROM ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info']);
+ }
+ $upd_query .= '
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($db) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($table) . '\'
+ AND `column_name` = \'' . PMA_sqlAddslashes($key) . '\'';
+ } elseif (strlen($mimetype) || strlen($transformation)
+ || strlen($transformation_options)) {
+ $upd_query = 'INSERT INTO ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['column_info'])
+ . ' (db_name, table_name, column_name, mimetype, transformation, transformation_options) '
+ . ' VALUES('
+ . '\'' . PMA_sqlAddslashes($db) . '\','
+ . '\'' . PMA_sqlAddslashes($table) . '\','
+ . '\'' . PMA_sqlAddslashes($key) . '\','
+ . '\'' . PMA_sqlAddslashes($mimetype) . '\','
+ . '\'' . PMA_sqlAddslashes($transformation) . '\','
+ . '\'' . PMA_sqlAddslashes($transformation_options) . '\')';
+ }
+
+ if (isset($upd_query)){
+ return PMA_query_as_cu($upd_query);
+ } else {
+ return false;
+ }
+} // end of 'PMA_setMIME()' function
+?>
diff --git a/libraries/transformations/README b/libraries/transformations/README
new file mode 100644
index 0000000000..ab6a16aa39
--- /dev/null
+++ b/libraries/transformations/README
@@ -0,0 +1,4 @@
+TRANSFORMATION USAGE (Garvin Hicking, <me@supergarv.de>)
+====================
+
+See the Documentation.html for complete instructions on how to use transformation plugins.
diff --git a/libraries/transformations/TEMPLATE b/libraries/transformations/TEMPLATE
new file mode 100644
index 0000000000..f3000adb6c
--- /dev/null
+++ b/libraries/transformations/TEMPLATE
@@ -0,0 +1,28 @@
+<?php
+/* $Id$ */
+// vim: expandtab sw=4 ts=4 sts=4:
+
+/**
+ * Plugin function TEMPLATE (Garvin Hicking).
+ * -----------------------------------------
+ *
+ * For instructions, read the /Documentation.html file.
+ *
+ * The string [ENTER_FILENAME_HERE] shall be substituted with the filename without the '.inc.php'
+ * extension. For further information regarding naming conventions see the /Documentation.html file.
+ */
+
+function PMA_transformation_[ENTER_FILENAME_HERE]($buffer, $options = array(), $meta = '') {
+ // possibly use a global transform and feed it with special options:
+ // include('./libraries/transformations/global.inc.php');
+
+ // further operations on $buffer using the $options[] array.
+
+ // You can evaluate the propagated $meta Object. It's contained fields are described in http://www.php.net/mysql_fetch_field.
+ // This stored information can be used to get the field information about the transformed field.
+ // $meta->mimetype contains the original MimeType of the field (i.e. 'text/plain', 'image/jpeg' etc.)
+
+ return $buffer;
+}
+
+?>
diff --git a/libraries/transformations/TEMPLATE_MIMETYPE b/libraries/transformations/TEMPLATE_MIMETYPE
new file mode 100644
index 0000000000..75c7f7d74d
--- /dev/null
+++ b/libraries/transformations/TEMPLATE_MIMETYPE
@@ -0,0 +1,13 @@
+<?php
+/* $Id$ */
+// vim: expandtab sw=4 ts=4 sts=4:
+
+/**
+ * MIME-Init function TEMPLATE (Garvin Hicking).
+ * -----------------------------------------
+ *
+ * This files serves no function. It's only kept here to add a mimetype value for selection.
+ * You can still use global or other mimetype's transforms with this mimetype.
+ */
+
+?>
diff --git a/libraries/transformations/application_octetstream__download.inc.php b/libraries/transformations/application_octetstream__download.inc.php
new file mode 100644
index 0000000000..b53cbcdba1
--- /dev/null
+++ b/libraries/transformations/application_octetstream__download.inc.php
@@ -0,0 +1,44 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_application_octetstream__download(&$buffer, $options = array(), $meta = '') {
+ global $row, $fields_meta;
+
+ if (isset($options[0]) && !empty($options[0])) {
+ $cn = $options[0]; // filename
+ } else {
+ if (isset($options[1]) && !empty($options[1])) {
+ foreach($fields_meta as $key => $val) {
+ if ($val->name == $options[1]) {
+ $pos = $key;
+ break;
+ }
+ }
+ if (isset($pos)) {
+ $cn = $row[$pos];
+ }
+ }
+ if (empty($cn)) {
+ $cn = 'binary_file.dat';
+ }
+ }
+
+ return
+ sprintf(
+ '<a href="transformation_wrapper.php%s&amp;ct=application/octet-stream&amp;cn=%s" title="%s">%s</a>',
+
+ $options['wrapper_link'],
+ urlencode($cn),
+ htmlspecialchars($cn),
+ htmlspecialchars($cn)
+ );
+}
+
+?>
diff --git a/libraries/transformations/application_octetstream__hex.inc.php b/libraries/transformations/application_octetstream__hex.inc.php
new file mode 100644
index 0000000000..38c0e0e9d0
--- /dev/null
+++ b/libraries/transformations/application_octetstream__hex.inc.php
@@ -0,0 +1,28 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_application_octetstream__hex($buffer, $options = array(), $meta = '') {
+ // possibly use a global transform and feed it with special options:
+ // include './libraries/transformations/global.inc.php';
+ if (!isset($options[0])) {
+ $options[0] = 2;
+ } else {
+ $options[0] = (int)$options[0];
+ }
+
+ if ($options[0] < 1) {
+ return bin2hex($buffer);
+ } else {
+ return chunk_split(bin2hex($buffer), $options[0], ' ');
+ }
+
+}
+
+?>
diff --git a/libraries/transformations/generator.sh b/libraries/transformations/generator.sh
new file mode 100755
index 0000000000..0d0d6fa7ba
--- /dev/null
+++ b/libraries/transformations/generator.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+# $Id$
+#
+# Shell script that adds a new function file using a template. Should not be called directly
+# but instead by template_Generator.sh and template_generator_mimetype.sh
+#
+#
+# $1: Template
+# $2: Filename
+# $3: (optional) Description
+
+if [ $# == 0 ]
+then
+ echo "Please call template_generator.sh or template_generator_mimetype.sh instead"
+ echo ""
+ exit 65
+fi
+functionupper="`echo $2 | tr [:lower:] [:upper:]`"
+functionlower="`echo $2 | tr [:upper:] [:lower:]`"
+
+cat $1 | sed "s/\[ENTER_FILENAME_HERE\]/$functionupper/" | sed "s/\[enter_filename_here\]/$functionlower/" >> $2.inc.php
+
+if [ "$3" ]
+then
+ echo ""
+ echo "To do later:"
+ echo "cd ../../lang"
+ echo "./add_message.sh '\$strTransformation_${functionlower}' '$3'"
+ echo ""
+fi
+
+echo "Created $2.inc.php"
+echo ""
diff --git a/libraries/transformations/global.inc.php b/libraries/transformations/global.inc.php
new file mode 100644
index 0000000000..6648b7b31e
--- /dev/null
+++ b/libraries/transformations/global.inc.php
@@ -0,0 +1,50 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * GLOBAL Plugin function (Garvin Hicking).
+ * ---------------
+ *
+ * THIS FILE PROVIDES BASIC FUNCTIONS TO USE IN OTHER PLUGINS!
+ *
+ * The basic filename usage for any plugin, residing in the libraries/transformations directory is:
+ *
+ * -- <mime_type>_<mime_subtype>__<transformation_name>.inc.php
+ *
+ * The function name has to be the like above filename:
+ *
+ * -- function PMA_transformation_<mime_type>_<mime_subtype>__<transformation_name>.inc.php
+ *
+ * Please use short and expressive names. For now, special characters which aren't allowed in
+ * filenames or functions should not be used.
+ *
+ * Please provide a comment for your function, what it does and what parameters are available.
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_global_plain($buffer, $options = array(), $meta = '') {
+ return htmlspecialchars($buffer);
+}
+
+function PMA_transformation_global_html($buffer, $options = array(), $meta = '') {
+ return $buffer;
+}
+
+function PMA_transformation_global_html_replace($buffer, $options = array(), $meta = '') {
+ if (!isset($options['string'])) {
+ $options['string'] = '';
+ }
+
+ if (isset($options['regex']) && isset($options['regex_replace'])) {
+ $buffer = preg_replace('@' . str_replace('@', '\@', $options['regex']) . '@si', $options['regex_replace'], $buffer);
+ }
+
+ // Replace occurences of [__BUFFER__] with actual text
+ $return = str_replace("[__BUFFER__]", $buffer, $options['string']);
+ return $return;
+}
+
+?>
diff --git a/libraries/transformations/image_jpeg__inline.inc.php b/libraries/transformations/image_jpeg__inline.inc.php
new file mode 100644
index 0000000000..37f9270a0f
--- /dev/null
+++ b/libraries/transformations/image_jpeg__inline.inc.php
@@ -0,0 +1,24 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_image_jpeg__inline($buffer, $options = array(), $meta = '') {
+ require_once './libraries/transformations/global.inc.php';
+
+ if (PMA_IS_GD2) {
+ $transform_options = array ('string' => '<a href="transformation_wrapper.php' . $options['wrapper_link'] . '" target="_blank"><img src="transformation_wrapper.php' . $options['wrapper_link'] . '&amp;resize=jpeg&amp;newWidth=' . (isset($options[0]) ? $options[0] : '100') . '&amp;newHeight=' . (isset($options[1]) ? $options[1] : 100) . '" alt="[__BUFFER__]" border="0" /></a>');
+ } else {
+ $transform_options = array ('string' => '<img src="transformation_wrapper.php' . $options['wrapper_link'] . '" alt="[__BUFFER__]" width="320" height="240" />');
+ }
+ $buffer = PMA_transformation_global_html_replace($buffer, $transform_options);
+
+ return $buffer;
+}
+
+?>
diff --git a/libraries/transformations/image_jpeg__link.inc.php b/libraries/transformations/image_jpeg__link.inc.php
new file mode 100644
index 0000000000..f81a492f5a
--- /dev/null
+++ b/libraries/transformations/image_jpeg__link.inc.php
@@ -0,0 +1,20 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_image_jpeg__link($buffer, $options = array(), $meta = '') {
+ require_once './libraries/transformations/global.inc.php';
+
+ $transform_options = array ('string' => '<a href="transformation_wrapper.php' . $options['wrapper_link'] . '" alt="[__BUFFER__]">[BLOB]</a>');
+ $buffer = PMA_transformation_global_html_replace($buffer, $transform_options);
+
+ return $buffer;
+}
+
+?>
diff --git a/libraries/transformations/image_png__inline.inc.php b/libraries/transformations/image_png__inline.inc.php
new file mode 100644
index 0000000000..39f31574f6
--- /dev/null
+++ b/libraries/transformations/image_png__inline.inc.php
@@ -0,0 +1,24 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_image_png__inline($buffer, $options = array(), $meta = '') {
+ require_once './libraries/transformations/global.inc.php';
+
+ if (PMA_IS_GD2) {
+ $transform_options = array ('string' => '<a href="transformation_wrapper.php' . $options['wrapper_link'] . '" target="_blank"><img src="transformation_wrapper.php' . $options['wrapper_link'] . '&amp;resize=png&amp;newWidth=' . (isset($options[0]) ? $options[0] : '100') . '&amp;newHeight=' . (isset($options[1]) ? $options[1] : 100) . '" alt="[__BUFFER__]" border="0" /></a>');
+ } else {
+ $transform_options = array ('string' => '<img src="transformation_wrapper.php' . $options['wrapper_link'] . '" alt="[__BUFFER__]" width="320" height="240" />');
+ }
+ $buffer = PMA_transformation_global_html_replace($buffer, $transform_options);
+
+ return $buffer;
+}
+
+?>
diff --git a/libraries/transformations/template_generator.sh b/libraries/transformations/template_generator.sh
new file mode 100755
index 0000000000..084559a510
--- /dev/null
+++ b/libraries/transformations/template_generator.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# $Id$
+#
+# Shell script that adds a new mimetype with transform function.
+#
+# The filename should contain either 'mimetype_subtype' or 'mimetype'.
+# The suffix '.inc.php' is appended automatically!
+#
+# The 'description' parameter will add a new entry in the language file. Watch out for
+# special escaping.
+#
+# Example: template_generator.sh 'filename' 'description'
+#
+if [ $# == 0 ]
+then
+ echo "Usage: template_generator.sh 'filename' 'description'"
+ echo ""
+ exit 65
+fi
+
+
+
+./generator.sh 'TEMPLATE' "$1" "$2"
+echo " "
+echo "New TRANSFORM FUNCTION $1.inc.php added."
diff --git a/libraries/transformations/template_generator_mimetype.sh b/libraries/transformations/template_generator_mimetype.sh
new file mode 100755
index 0000000000..edee55f2c5
--- /dev/null
+++ b/libraries/transformations/template_generator_mimetype.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+# $Id$
+#
+# Shell script that adds a new mimetype without transform function.
+#
+# The filename should contain either 'mimetype_subtype' or 'mimetype'.
+# The suffix '.inc.php' is appended automatically!
+#
+# Example: template_generator_mimetype.sh 'filename'
+#
+if [ $# == 0 ]
+then
+ echo "Usage: template_generator_mimetype.sh 'filename'"
+ echo ""
+ exit 65
+fi
+
+./generator.sh 'TEMPLATE_MIMETYPE' "$1"
+echo " "
+echo "New MIMETYPE $1.inc.php added."
diff --git a/libraries/transformations/text_plain__dateformat.inc.php b/libraries/transformations/text_plain__dateformat.inc.php
new file mode 100644
index 0000000000..bc3d7ec182
--- /dev/null
+++ b/libraries/transformations/text_plain__dateformat.inc.php
@@ -0,0 +1,96 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_text_plain__dateformat($buffer, $options = array(), $meta = '') {
+ // possibly use a global transform and feed it with special options:
+ // include './libraries/transformations/global.inc.php';
+
+ // further operations on $buffer using the $options[] array.
+ if (empty($options[0])) {
+ $options[0] = 0;
+ }
+
+ if (empty($options[2])) {
+ $options[2] = 'local';
+ } else {
+ $options[2] = strtolower($options[2]);
+ }
+
+ if (empty($options[1])) {
+ if ($options[2] == 'local') {
+ $options[1] = $GLOBALS['datefmt'];
+ } else {
+ $options[1] = 'Y-m-d H:i:s';
+ }
+ }
+
+ $timestamp = -1;
+
+ // INT columns will be treated as UNIX timestamps
+ // and need to be detected before the verification for
+ // MySQL TIMESTAMP
+ if ($meta->type == 'int') {
+ $timestamp = $buffer;
+
+ // Detect TIMESTAMP(6 | 8 | 10 | 12 | 14)
+ // TIMESTAMP (2 | 4) not supported here.
+ // (Note: prior to MySQL 4.1, TIMESTAMP has a display size, for example
+ // TIMESTAMP(8) means YYYYMMDD)
+ } else if (preg_match('/^(\d{2}){3,7}$/', $buffer)) {
+
+ if (strlen($buffer) == 14 || strlen($buffer) == 8) {
+ $offset = 4;
+ } else {
+ $offset = 2;
+ }
+
+ $d = array();
+ $d['year'] = substr($buffer, 0, $offset);
+ $d['month'] = substr($buffer, $offset, 2);
+ $d['day'] = substr($buffer, $offset + 2, 2);
+ $d['hour'] = substr($buffer, $offset + 4, 2);
+ $d['minute'] = substr($buffer, $offset + 6, 2);
+ $d['second'] = substr($buffer, $offset + 8, 2);
+
+ if (checkdate($d['month'], $d['day'], $d['year'])) {
+ $timestamp = mktime($d['hour'], $d['minute'], $d['second'], $d['month'], $d['day'], $d['year']);
+ }
+ // If all fails, assume one of the dozens of valid strtime() syntaxes (http://www.gnu.org/manual/tar-1.12/html_chapter/tar_7.html)
+ } else {
+ if (preg_match('/^[0-9]\d{1,9}$/', $buffer)) {
+ $timestamp = (int)$buffer;
+ } else {
+ $timestamp = strtotime($buffer);
+ }
+ }
+
+ // If all above failed, maybe it's a Unix timestamp already?
+ if ($timestamp < 0 && preg_match('/^[1-9]\d{1,9}$/', $buffer)) {
+ $timestamp = $buffer;
+ }
+
+ // Reformat a valid timestamp
+ if ($timestamp >= 0) {
+ $timestamp -= $options[0] * 60 * 60;
+ $source = $buffer;
+ if ($options[2] == 'local') {
+ $text = PMA_localisedDate($timestamp, $options[1]);
+ } elseif ($options[2] == 'utc') {
+ $text = gmdate($options[1], $timestamp);
+ } else {
+ $text = 'INVALID DATE TYPE';
+ }
+ $buffer = '<dfn onclick="alert(\'' . $source . '\');" title="' . $source . '">' . $text . '</dfn>';
+ }
+
+ return $buffer;
+}
+
+?>
diff --git a/libraries/transformations/text_plain__external.inc.php b/libraries/transformations/text_plain__external.inc.php
new file mode 100644
index 0000000000..2342362b56
--- /dev/null
+++ b/libraries/transformations/text_plain__external.inc.php
@@ -0,0 +1,97 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_text_plain__external_nowrap($options = array()) {
+ if (!isset($options[3]) || $options[3] == '') {
+ $nowrap = true;
+ } elseif ($options[3] == '1' || $options[3] == 1) {
+ $nowrap = true;
+ } else {
+ $nowrap = false;
+ }
+
+ return $nowrap;
+}
+
+function PMA_transformation_text_plain__external($buffer, $options = array(), $meta = '') {
+ // possibly use a global transform and feed it with special options:
+ // include './libraries/transformations/global.inc.php';
+
+ // further operations on $buffer using the $options[] array.
+
+ $allowed_programs = array();
+
+ //
+ // WARNING:
+ //
+ // It's up to administrator to allow anything here. Note that users may
+ // specify any parameters, so when programs allow output redirection or
+ // any other possibly dangerous operations, you should write wrapper
+ // script that will publish only functions you really want.
+ //
+ // Add here program definitions like (note that these are NOT safe
+ // programs):
+ //
+ //$allowed_programs[0] = '/usr/local/bin/tidy';
+ //$allowed_programs[1] = '/usr/local/bin/validate';
+
+ // no-op when no allowed programs
+ if (count($allowed_programs) == 0) {
+ return $buffer;
+ }
+
+ if (!isset($options[0]) || $options[0] == '' || !isset($allowed_programs[$options[0]])) {
+ $program = $allowed_programs[0];
+ } else {
+ $program = $allowed_programs[$options[0]];
+ }
+
+ if (!isset($options[1]) || $options[1] == '') {
+ $poptions = '-f /dev/null -i -wrap -q';
+ } else {
+ $poptions = $options[1];
+ }
+
+ if (!isset($options[2]) || $options[2] == '') {
+ $options[2] = 1;
+ }
+
+ if (!isset($options[3]) || $options[3] == '') {
+ $options[3] = 1;
+ }
+
+ // needs PHP >= 4.3.0
+ $newstring = '';
+ $descriptorspec = array(
+ 0 => array("pipe", "r"),
+ 1 => array("pipe", "w")
+ );
+ $process = proc_open($program . ' ' . $poptions, $descriptorspec, $pipes);
+ if (is_resource($process)) {
+ fwrite($pipes[0], $buffer);
+ fclose($pipes[0]);
+
+ while (!feof($pipes[1])) {
+ $newstring .= fgets($pipes[1], 1024);
+ }
+ fclose($pipes[1]);
+ // we don't currently use the return value
+ $return_value = proc_close($process);
+ }
+
+ if ($options[2] == 1 || $options[2] == '2') {
+ $retstring = htmlspecialchars($newstring);
+ } else {
+ $retstring = $newstring;
+ }
+
+ return $retstring;
+}
+?>
diff --git a/libraries/transformations/text_plain__formatted.inc.php b/libraries/transformations/text_plain__formatted.inc.php
new file mode 100644
index 0000000000..7277a4d984
--- /dev/null
+++ b/libraries/transformations/text_plain__formatted.inc.php
@@ -0,0 +1,15 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_text_plain__formatted($buffer, $options = array(), $meta = '') {
+ return $buffer;
+}
+
+?>
diff --git a/libraries/transformations/text_plain__imagelink.inc.php b/libraries/transformations/text_plain__imagelink.inc.php
new file mode 100644
index 0000000000..729a066a74
--- /dev/null
+++ b/libraries/transformations/text_plain__imagelink.inc.php
@@ -0,0 +1,19 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_text_plain__imagelink($buffer, $options = array(), $meta = '') {
+ require_once './libraries/transformations/global.inc.php';
+
+ $transform_options = array ('string' => '<a href="' . (isset($options[0]) ? $options[0] : '') . $buffer . '" target="_blank"><img src="' . (isset($options[0]) ? $options[0] : '') . $buffer . '" border="0" width="' . (isset($options[1]) ? $options[1] : 100) . '" height="' . (isset($options[2]) ? $options[2] : 50) . '" />' . $buffer . '</a>');
+ $buffer = PMA_transformation_global_html_replace($buffer, $transform_options);
+ return $buffer;
+}
+
+?>
diff --git a/libraries/transformations/text_plain__link.inc.php b/libraries/transformations/text_plain__link.inc.php
new file mode 100644
index 0000000000..abe05f220e
--- /dev/null
+++ b/libraries/transformations/text_plain__link.inc.php
@@ -0,0 +1,24 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_text_plain__link($buffer, $options = array(), $meta = '') {
+ require_once './libraries/transformations/global.inc.php';
+
+// $transform_options = array ('string' => '<a href="' . (isset($options[0]) ? $options[0] : '') . '%1$s" title="' . (isset($options[1]) ? $options[1] : '%1$s') . '">' . (isset($options[1]) ? $options[1] : '%1$s') . '</a>');
+
+ $transform_options = array ('string' => '<a href="' . (isset($options[0]) ? $options[0] : '') . $buffer . '" title="' . (isset($options[1]) ? $options[1] : '') . '">' . (isset($options[1]) ? $options[1] : $buffer) . '</a>');
+
+ $buffer = PMA_transformation_global_html_replace($buffer, $transform_options);
+
+ return $buffer;
+
+}
+
+?>
diff --git a/libraries/transformations/text_plain__longToIpv4.inc.php b/libraries/transformations/text_plain__longToIpv4.inc.php
new file mode 100644
index 0000000000..ed12badad7
--- /dev/null
+++ b/libraries/transformations/text_plain__longToIpv4.inc.php
@@ -0,0 +1,22 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id: text_plain__dateformat.inc.php 10239 2007-04-01 09:51:41Z cybot_tm $
+ */
+
+/**
+ * returns IPv4 address
+ *
+ * @see http://php.net/long2ip
+ */
+function PMA_transformation_text_plain__longToIpv4($buffer, $options = array(), $meta = '')
+{
+ if ($buffer < 0 || $buffer > 4294967295) {
+ return $buffer;
+ }
+
+ return long2ip($buffer);
+}
+
+?>
diff --git a/libraries/transformations/text_plain__sql.inc.php b/libraries/transformations/text_plain__sql.inc.php
new file mode 100644
index 0000000000..f4007e7085
--- /dev/null
+++ b/libraries/transformations/text_plain__sql.inc.php
@@ -0,0 +1,18 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_text_plain__sql($buffer, $options = array(), $meta = '') {
+ $result = PMA_SQP_formatHtml(PMA_SQP_parse($buffer));
+ // Need to clear error state not to break subsequent queries display.
+ PMA_SQP_resetError();
+ return $result;
+}
+
+?>
diff --git a/libraries/transformations/text_plain__substr.inc.php b/libraries/transformations/text_plain__substr.inc.php
new file mode 100644
index 0000000000..958e956f90
--- /dev/null
+++ b/libraries/transformations/text_plain__substr.inc.php
@@ -0,0 +1,50 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+function PMA_transformation_text_plain__substr($buffer, $options = array(), $meta = '') {
+ // possibly use a global transform and feed it with special options:
+ // include './libraries/transformations/global.inc.php';
+
+ // further operations on $buffer using the $options[] array.
+ if (!isset($options[0]) || $options[0] == '') {
+ $options[0] = 0;
+ }
+
+ if (!isset($options[1]) || $options[1] == '') {
+ $options[1] = 'all';
+ }
+
+ if (!isset($options[2]) || $options[2] == '') {
+ $options[2] = '...';
+ }
+
+ $newtext = '';
+ if ($options[1] != 'all') {
+ $newtext = PMA_substr($buffer, $options[0], $options[1]);
+ } else {
+ $newtext = PMA_substr($buffer, $options[0]);
+ }
+
+ $length = strlen($newtext);
+ $baselength = strlen($buffer);
+ if ($length != $baselength) {
+ if ($options[0] != 0) {
+ $newtext = $options[2] . $newtext;
+ }
+
+ if (($length + $options[0]) != $baselength) {
+ $newtext .= $options[2];
+ }
+ }
+
+ return $newtext;
+}
+
+?>
diff --git a/libraries/url_generating.lib.php b/libraries/url_generating.lib.php
new file mode 100644
index 0000000000..8521c6d6ae
--- /dev/null
+++ b/libraries/url_generating.lib.php
@@ -0,0 +1,319 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * URL/hidden inputs generating.
+ *
+ * @version $Id$
+ */
+
+/**
+ * Generates text with hidden inputs.
+ *
+ * @see PMA_generate_common_url()
+ * @uses PMA_getHiddenFields
+ * @param string optional database name
+ * (can also be an array of parameters)
+ * @param string optional table name
+ * @param int indenting level
+ * @param string do not generate a hidden field for this parameter
+ * (can be an array of strings)
+ *
+ * @return string string with input fields
+ *
+ * @global string the current language
+ * @global string the current conversion charset
+ * @global string the current connection collation
+ * @global string the current server
+ * @global array the configuration array
+ * @global boolean whether recoding is allowed or not
+ *
+ * @access public
+ *
+ * @author nijel
+ */
+function PMA_generate_common_hidden_inputs($db = '', $table = '', $indent = 0, $skip = array())
+{
+ if (is_array($db)) {
+ $params =& $db;
+ $_indent = empty($table) ? $indent : $table;
+ $_skip = empty($indent) ? $skip : $indent;
+ $indent =& $_indent;
+ $skip =& $_skip;
+ } else {
+ $params = array();
+ if (strlen($db)) {
+ $params['db'] = $db;
+ }
+ if (strlen($table)) {
+ $params['table'] = $table;
+ }
+ }
+
+ if (! empty($GLOBALS['server'])
+ && $GLOBALS['server'] != $GLOBALS['cfg']['ServerDefault']) {
+ $params['server'] = $GLOBALS['server'];
+ }
+ if (empty($_COOKIE['pma_lang'])
+ && ! empty($GLOBALS['lang'])) {
+ $params['lang'] = $GLOBALS['lang'];
+ }
+ if (empty($_COOKIE['pma_charset'])
+ && ! empty($GLOBALS['convcharset'])) {
+ $params['convcharset'] = $GLOBALS['convcharset'];
+ }
+ if (empty($_COOKIE['pma_collation_connection'])
+ && ! empty($GLOBALS['collation_connection'])) {
+ $params['collation_connection'] = $GLOBALS['collation_connection'];
+ }
+
+ $params['token'] = $_SESSION[' PMA_token '];
+
+ if (! is_array($skip)) {
+ if (isset($params[$skip])) {
+ unset($params[$skip]);
+ }
+ } else {
+ foreach ($skip as $skipping) {
+ if (isset($params[$skipping])) {
+ unset($params[$skipping]);
+ }
+ }
+ }
+
+ return PMA_getHiddenFields($params);
+}
+
+/**
+ * create hidden form fields from array with name => value
+ *
+ * <code>
+ * $values = array(
+ * 'aaa' => aaa,
+ * 'bbb' => array(
+ * 'bbb_0',
+ * 'bbb_1',
+ * ),
+ * 'ccc' => array(
+ * 'a' => 'ccc_a',
+ * 'b' => 'ccc_b',
+ * ),
+ * );
+ * echo PMA_getHiddenFields($values);
+ *
+ * // produces:
+ * <input type="hidden" name="aaa" Value="aaa" />
+ * <input type="hidden" name="bbb[0]" Value="bbb_0" />
+ * <input type="hidden" name="bbb[1]" Value="bbb_1" />
+ * <input type="hidden" name="ccc[a]" Value="ccc_a" />
+ * <input type="hidden" name="ccc[b]" Value="ccc_b" />
+ * </code>
+ *
+ * @param array $values
+ * @param string $pre
+ * @return string form fields of type hidden
+ */
+function PMA_getHiddenFields($values, $pre = '')
+{
+ $fields = '';
+
+ foreach ($values as $name => $value) {
+ if (! empty($pre)) {
+ $name = $pre. '[' . $name . ']';
+ }
+
+ if (is_array($value)) {
+ $fields .= PMA_getHiddenFields($value, $name);
+ } else {
+ // do not generate an ending "\n" because
+ // PMA_generate_common_hidden_inputs() is sometimes called
+ // from a JS document.write()
+ $fields .= '<input type="hidden" name="' . htmlspecialchars($name)
+ . '" value="' . htmlspecialchars($value) . '" />';
+ }
+ }
+
+ return $fields;
+}
+
+/**
+ * Generates text with URL parameters.
+ *
+ * <code>
+ * // OLD derepecated style
+ * // note the ?
+ * echo 'script.php?' . PMA_generate_common_url('mysql', 'rights');
+ * // produces with cookies enabled:
+ * // script.php?db=mysql&amp;table=rights
+ * // with cookies disabled:
+ * // script.php?server=1&amp;lang=en-utf-8&amp;db=mysql&amp;table=rights
+ *
+ * // NEW style
+ * $params['myparam'] = 'myvalue';
+ * $params['db'] = 'mysql';
+ * $params['table'] = 'rights';
+ * // note the missing ?
+ * echo 'script.php' . PMA_generate_common_url($params);
+ * // produces with cookies enabled:
+ * // script.php?myparam=myvalue&amp;db=mysql&amp;table=rights
+ * // with cookies disabled:
+ * // script.php?server=1&amp;lang=en-utf-8&amp;myparam=myvalue&amp;db=mysql&amp;table=rights
+ *
+ * // note the missing ?
+ * echo 'script.php' . PMA_generate_common_url();
+ * // produces with cookies enabled:
+ * // script.php
+ * // with cookies disabled:
+ * // script.php?server=1&amp;lang=en-utf-8
+ * </code>
+ *
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['cfg']['ServerDefault']
+ * @uses $_COOKIE['pma_lang']
+ * @uses $GLOBALS['lang']
+ * @uses $_COOKIE['pma_charset']
+ * @uses $GLOBALS['convcharset']
+ * @uses $_COOKIE['pma_collation_connection']
+ * @uses $GLOBALS['collation_connection']
+ * @uses $_SESSION[' PMA_token ']
+ * @uses PMA_get_arg_separator()
+ * @uses is_array()
+ * @uses strlen()
+ * @uses htmlentities()
+ * @uses urlencode()
+ * @uses implode()
+ * @param mixed assoc. array with url params or optional string with database name
+ * if first param is an array there is also an ? prefixed to the url
+ *
+ * @param string - if first param is array: 'html' to use htmlspecialchars()
+ * on the resulting URL (for a normal URL displayed in HTML)
+ * or something else to avoid using htmlspecialchars() (for
+ * a URL sent via a header); if not set,'html' is assumed
+ * - if first param is not array: optional table name
+ *
+ * @param string - if first param is array: optional character to
+ * use instead of '?'
+ * - if first param is not array: optional character to use
+ * instead of '&amp;' for dividing URL parameters
+ * @return string string with URL parameters
+ * @access public
+ * @author nijel
+ */
+function PMA_generate_common_url()
+{
+ $args = func_get_args();
+
+ if (isset($args[0]) && is_array($args[0])) {
+ // new style
+ $params = $args[0];
+
+ if (isset($args[1])) {
+ $encode = $args[1];
+ } else {
+ $encode = 'html';
+ }
+
+ if (isset($args[2])) {
+ $questionmark = $args[2];
+ } else {
+ $questionmark = '?';
+ }
+ } else {
+ // old style
+
+ if (PMA_isValid($args[0])) {
+ $params['db'] = $args[0];
+ }
+
+ if (PMA_isValid($args[1])) {
+ $params['table'] = $args[1];
+ }
+
+ if (isset($args[2]) && $args[2] !== '&amp;') {
+ $encode = 'text';
+ } else {
+ $encode = 'html';
+ }
+
+ $questionmark = '';
+ }
+
+ $separator = PMA_get_arg_separator();
+
+ if (isset($GLOBALS['server'])
+ && $GLOBALS['server'] != $GLOBALS['cfg']['ServerDefault']) {
+ $params['server'] = $GLOBALS['server'];
+ }
+
+ if (empty($_COOKIE['pma_lang'])
+ && ! empty($GLOBALS['lang'])) {
+ $params['lang'] = $GLOBALS['lang'];
+ }
+ if (empty($_COOKIE['pma_charset'])
+ && ! empty($GLOBALS['convcharset'])) {
+ $params['convcharset'] = $GLOBALS['convcharset'];
+ }
+ if (empty($_COOKIE['pma_collation_connection'])
+ && ! empty($GLOBALS['collation_connection'])) {
+ $params['collation_connection'] = $GLOBALS['collation_connection'];
+ }
+
+ if (isset($_SESSION[' PMA_token '])) {
+ $params['token'] = $_SESSION[' PMA_token '];
+ }
+
+ if (empty($params)) {
+ return '';
+ }
+
+ $query = $questionmark . http_build_query($params, null, $separator);
+
+ if ($encode === 'html') {
+ $query = htmlspecialchars($query);
+ }
+
+ return $query;
+}
+
+/**
+ * Returns url separator
+ *
+ * extracted from arg_separator.input as set in php.ini
+ * we do not use arg_separator.output to avoid problems with &amp; and &
+ *
+ * @uses ini_get()
+ * @uses strpos()
+ * @uses strlen()
+ * @param string whether to encode separator or not, currently 'none' or 'html'
+ * @return string character used for separating url parts usally ; or &
+ * @access public
+ * @author nijel
+ */
+function PMA_get_arg_separator($encode = 'none')
+{
+ static $separator = null;
+
+ if (null === $separator) {
+ // use seperators defined by php, but prefer ';'
+ // as recommended by W3C
+ $php_arg_separator_input = ini_get('arg_separator.input');
+ if (strpos($php_arg_separator_input, ';') !== false) {
+ $separator = ';';
+ } elseif (strlen($php_arg_separator_input) > 0) {
+ $separator = $php_arg_separator_input{0};
+ } else {
+ $separator = '&';
+ }
+ }
+
+ switch ($encode) {
+ case 'html':
+ return htmlentities($separator);
+ break;
+ case 'text' :
+ case 'none' :
+ default :
+ return $separator;
+ }
+}
+
+?>
diff --git a/libraries/zip.lib.php b/libraries/zip.lib.php
new file mode 100644
index 0000000000..2d377cc081
--- /dev/null
+++ b/libraries/zip.lib.php
@@ -0,0 +1,190 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Zip file creation class.
+ * Makes zip files.
+ *
+ * Based on :
+ *
+ * http://www.zend.com/codex.php?id=535&single=1
+ * By Eric Mueller <eric@themepark.com>
+ *
+ * http://www.zend.com/codex.php?id=470&single=1
+ * by Denis125 <webmaster@atlant.ru>
+ *
+ * a patch from Peter Listiak <mlady@users.sourceforge.net> for last modified
+ * date and time of the compressed file
+ *
+ * Official ZIP file format: http://www.pkware.com/appnote.txt
+ *
+ * @access public
+ */
+class zipfile
+{
+ /**
+ * Array to store compressed data
+ *
+ * @var array $datasec
+ */
+ var $datasec = array();
+
+ /**
+ * Central directory
+ *
+ * @var array $ctrl_dir
+ */
+ var $ctrl_dir = array();
+
+ /**
+ * End of central directory record
+ *
+ * @var string $eof_ctrl_dir
+ */
+ var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
+
+ /**
+ * Last offset position
+ *
+ * @var integer $old_offset
+ */
+ var $old_offset = 0;
+
+
+ /**
+ * Converts an Unix timestamp to a four byte DOS date and time format (date
+ * in high two bytes, time in low two bytes allowing magnitude comparison).
+ *
+ * @param integer the current Unix timestamp
+ *
+ * @return integer the current date in a four byte DOS format
+ *
+ * @access private
+ */
+ function unix2DosTime($unixtime = 0) {
+ $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
+
+ if ($timearray['year'] < 1980) {
+ $timearray['year'] = 1980;
+ $timearray['mon'] = 1;
+ $timearray['mday'] = 1;
+ $timearray['hours'] = 0;
+ $timearray['minutes'] = 0;
+ $timearray['seconds'] = 0;
+ } // end if
+
+ return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) |
+ ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);
+ } // end of the 'unix2DosTime()' method
+
+
+ /**
+ * Adds "file" to archive
+ *
+ * @param string file contents
+ * @param string name of the file in the archive (may contains the path)
+ * @param integer the current timestamp
+ *
+ * @access public
+ */
+ function addFile($data, $name, $time = 0)
+ {
+ $name = str_replace('\\', '/', $name);
+
+ $dtime = dechex($this->unix2DosTime($time));
+ $hexdtime = '\x' . $dtime[6] . $dtime[7]
+ . '\x' . $dtime[4] . $dtime[5]
+ . '\x' . $dtime[2] . $dtime[3]
+ . '\x' . $dtime[0] . $dtime[1];
+ eval('$hexdtime = "' . $hexdtime . '";');
+
+ $fr = "\x50\x4b\x03\x04";
+ $fr .= "\x14\x00"; // ver needed to extract
+ $fr .= "\x00\x00"; // gen purpose bit flag
+ $fr .= "\x08\x00"; // compression method
+ $fr .= $hexdtime; // last mod time and date
+
+ // "local file header" segment
+ $unc_len = strlen($data);
+ $crc = crc32($data);
+ $zdata = gzcompress($data);
+ $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug
+ $c_len = strlen($zdata);
+ $fr .= pack('V', $crc); // crc32
+ $fr .= pack('V', $c_len); // compressed filesize
+ $fr .= pack('V', $unc_len); // uncompressed filesize
+ $fr .= pack('v', strlen($name)); // length of filename
+ $fr .= pack('v', 0); // extra field length
+ $fr .= $name;
+
+ // "file data" segment
+ $fr .= $zdata;
+
+ // "data descriptor" segment (optional but necessary if archive is not
+ // served as file)
+ // nijel(2004-10-19): this seems not to be needed at all and causes
+ // problems in some cases (bug #1037737)
+ //$fr .= pack('V', $crc); // crc32
+ //$fr .= pack('V', $c_len); // compressed filesize
+ //$fr .= pack('V', $unc_len); // uncompressed filesize
+
+ // add this entry to array
+ $this -> datasec[] = $fr;
+
+ // now add to central directory record
+ $cdrec = "\x50\x4b\x01\x02";
+ $cdrec .= "\x00\x00"; // version made by
+ $cdrec .= "\x14\x00"; // version needed to extract
+ $cdrec .= "\x00\x00"; // gen purpose bit flag
+ $cdrec .= "\x08\x00"; // compression method
+ $cdrec .= $hexdtime; // last mod time & date
+ $cdrec .= pack('V', $crc); // crc32
+ $cdrec .= pack('V', $c_len); // compressed filesize
+ $cdrec .= pack('V', $unc_len); // uncompressed filesize
+ $cdrec .= pack('v', strlen($name)); // length of filename
+ $cdrec .= pack('v', 0); // extra field length
+ $cdrec .= pack('v', 0); // file comment length
+ $cdrec .= pack('v', 0); // disk number start
+ $cdrec .= pack('v', 0); // internal file attributes
+ $cdrec .= pack('V', 32); // external file attributes - 'archive' bit set
+
+ $cdrec .= pack('V', $this -> old_offset); // relative offset of local header
+ $this -> old_offset += strlen($fr);
+
+ $cdrec .= $name;
+
+ // optional extra field, file comment goes here
+ // save to central directory
+ $this -> ctrl_dir[] = $cdrec;
+ } // end of the 'addFile()' method
+
+
+ /**
+ * Dumps out file
+ *
+ * @return string the zipped file
+ *
+ * @access public
+ */
+ function file()
+ {
+ $data = implode('', $this -> datasec);
+ $ctrldir = implode('', $this -> ctrl_dir);
+
+ return
+ $data .
+ $ctrldir .
+ $this -> eof_ctrl_dir .
+ pack('v', sizeof($this -> ctrl_dir)) . // total # of entries "on this disk"
+ pack('v', sizeof($this -> ctrl_dir)) . // total # of entries overall
+ pack('V', strlen($ctrldir)) . // size of central dir
+ pack('V', strlen($data)) . // offset to start of central dir
+ "\x00\x00"; // .zip file comment length
+ } // end of the 'file()' method
+
+} // end of the 'zipfile' class
+?>
diff --git a/libraries/zip_extension.lib.php b/libraries/zip_extension.lib.php
new file mode 100644
index 0000000000..a079016ba9
--- /dev/null
+++ b/libraries/zip_extension.lib.php
@@ -0,0 +1,69 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/* $Id: $ */
+
+// interface for the zip extension
+
+/**
+ * Gets zip file contents
+ *
+ * @param string $file
+ * @return array ($error_message, $file_data); $error_message
+ * is empty if no error
+ * @author lem9
+ */
+
+function PMA_getZipContents($file)
+{
+ $error_message = '';
+ $file_data = '';
+ $zip_handle = zip_open($file);
+ if (is_resource($zip_handle)) {
+ $first_zip_entry = zip_read($zip_handle);
+ if (false === $first_zip_entry) {
+ $error_message = $GLOBALS['strNoFilesFoundInZip'];
+ } else {
+ zip_entry_open($zip_handle, $first_zip_entry, 'r');
+ $file_data = zip_entry_read($first_zip_entry, zip_entry_filesize($first_zip_entry));
+ zip_entry_close($first_zip_entry);
+ }
+ } else {
+ $error_message = $GLOBALS['strErrorInZipFile'] . ' ' . PMA_getZipError($zip_handle);
+ }
+ zip_close($zip_handle);
+ return (array('error' => $error_message, 'data' => $file_data));
+}
+
+
+/**
+ * Gets zip error message
+ *
+ * @param integer error code
+ * @return string error message
+ * @author lem9
+ */
+function PMA_getZipError($code)
+{
+ // I don't think this needs translation
+ switch ($code) {
+ case ZIPARCHIVE::ER_MULTIDISK:
+ $message = 'Multi-disk zip archives not supported';
+ break;
+ case ZIPARCHIVE::ER_READ:
+ $message = 'Read error';
+ break;
+ case ZIPARCHIVE::ER_CRC:
+ $message = 'CRC error';
+ break;
+ case ZIPARCHIVE::ER_NOZIP:
+ $message = 'Not a zip archive';
+ break;
+ case ZIPARCHIVE::ER_INCONS:
+ $message = 'Zip archive inconsistent';
+ break;
+ default:
+ $message = $code;
+ }
+ return $message;
+}
+?>
diff --git a/license.php b/license.php
new file mode 100644
index 0000000000..91927f41ae
--- /dev/null
+++ b/license.php
@@ -0,0 +1,17 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Simple script to set correct charset for the license
+ *
+ * Note: please do not fold this script into a general script
+ * that would read any file using a GET parameter, it would open a hole
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+header('Content-type: text/plain; charset=iso-8859-1');
+readfile('LICENSE');
+?>
diff --git a/main.php b/main.php
new file mode 100644
index 0000000000..cc41fca50d
--- /dev/null
+++ b/main.php
@@ -0,0 +1,356 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries and displays a top message if required
+ */
+define('PMA_MOORAINBOW', true);
+require_once './libraries/common.inc.php';
+$GLOBALS['js_include'][] = 'mootools.js';
+$GLOBALS['js_include'][] = 'mooRainbow/mooRainbow.js';
+$GLOBALS['js_include'][] = 'mootools-domready-rainbow.js';
+
+// Handles some variables that may have been sent by the calling script
+$GLOBALS['db'] = '';
+$GLOBALS['table'] = '';
+$show_query = '1';
+require_once './libraries/header.inc.php';
+
+// Any message to display?
+if (! empty($message)) {
+ PMA_showMessage($message);
+ unset($message);
+}
+
+$common_url_query = PMA_generate_common_url('', '');
+
+// when $server > 0, a server has been chosen so we can display
+// all MySQL-related information
+if ($server > 0) {
+ require './libraries/server_common.inc.php';
+ require './libraries/StorageEngine.class.php';
+ require './libraries/server_links.inc.php';
+
+ // Use the verbose name of the server instead of the hostname
+ // if a value is set
+ $server_info = '';
+ if (! empty($cfg['Server']['verbose'])) {
+ $server_info .= htmlspecialchars($cfg['Server']['verbose']);
+ if ($GLOBALS['cfg']['ShowServerInfo']) {
+ $server_info .= ' (';
+ }
+ }
+ if ($GLOBALS['cfg']['ShowServerInfo'] || empty($cfg['Server']['verbose'])) {
+ $server_info .= PMA_DBI_get_host_info();
+ }
+ if (! empty($cfg['Server']['verbose']) && $GLOBALS['cfg']['ShowServerInfo']) {
+ $server_info .= ')';
+ }
+ $mysql_cur_user_and_host = PMA_DBI_fetch_value('SELECT USER();');
+
+ // should we add the port info here?
+ $short_server_info = (!empty($GLOBALS['cfg']['Server']['verbose'])
+ ? $GLOBALS['cfg']['Server']['verbose']
+ : $GLOBALS['cfg']['Server']['host']);
+}
+
+echo '<div id="maincontainer">' . "\n";
+echo '<div id="main_pane_left">';
+
+if ($server > 0
+ || (! $cfg['LeftDisplayServers'] && count($cfg['Servers']) > 1)) {
+ echo '<div class="group">';
+ echo '<h2>' . $strActions . '</h2>';
+ echo '<ul>';
+
+ /**
+ * Displays the MySQL servers choice form
+ */
+ if (! $cfg['LeftDisplayServers']
+ && (count($cfg['Servers']) > 1 || $server == 0 && count($cfg['Servers']) == 1)) {
+ echo '<li id="li_select_server">';
+ require_once './libraries/select_server.lib.php';
+ PMA_select_server(true, true);
+ echo '</li>';
+ }
+
+ /**
+ * Displays the mysql server related links
+ */
+ if ($server > 0) {
+ require_once './libraries/check_user_privileges.lib.php';
+
+ // Logout for advanced authentication
+ if ($cfg['Server']['auth_type'] != 'config') {
+ if ($cfg['ShowChgPassword']) {
+ PMA_printListItem($strChangePassword, 'li_change_password',
+ './user_password.php?' . $common_url_query);
+ }
+
+ $http_logout = ($cfg['Server']['auth_type'] == 'http')
+ ? '<a href="./Documentation.html#login_bug" target="documentation">'
+ . ($cfg['ReplaceHelpImg'] ? '<img class="icon" src="' . $pmaThemeImage . 'b_info.png" width="11" height="11" alt="Info" />' : '(*)') . '</a>'
+ : '';
+ PMA_printListItem('<strong>' . $strLogout . '</strong> ' . $http_logout,
+ 'li_log_out',
+ './index.php?' . $common_url_query . '&amp;old_usr=' . urlencode($PHP_AUTH_USER), null, '_parent');
+ } // end if
+ } // end of if ($server > 0)
+
+ echo '</ul>';
+ echo '</div>';
+}
+
+
+if ($server > 0) {
+ echo '<div class="group">';
+ echo '<h2>MySQL ' . $short_server_info . '</h2>';
+ echo '<ul>' . "\n";
+
+ if ($cfg['ShowCreateDb']) {
+ echo '<li id="li_create_database">';
+ require './libraries/display_create_database.lib.php';
+ echo '</li>' . "\n";
+ }
+
+ echo ' <li id="li_select_mysql_collation">';
+ echo ' <form method="post" action="index.php" target="_parent">' . "\n"
+ . PMA_generate_common_hidden_inputs(null, null, 4, 'collation_connection')
+ . ' <label for="select_collation_connection">' . "\n"
+ . ' ' . $strMySQLConnectionCollation . ': ' . "\n"
+ . ' </label>' . "\n"
+ . PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'collation_connection', 'select_collation_connection', $collation_connection, true, 4, true)
+ . ' <noscript><input type="submit" value="' . $strGo . '" /></noscript>' . "\n"
+ // put the doc link in the form so that it appears on the same line
+ . PMA_showMySQLDocu('MySQL_Database_Administration', 'Charset-connection') . "\n"
+ . ' </form>' . "\n"
+ . ' </li>' . "\n";
+
+ echo ' </ul>';
+ echo ' </div>';
+}
+
+echo '<div class="group">';
+echo '<h2>' . $strInterface . '</h2>';
+echo ' <ul>';
+
+// Displays language selection combo
+if (empty($cfg['Lang'])) {
+ echo '<li id="li_select_lang">';
+ require_once './libraries/display_select_lang.lib.php';
+ PMA_select_language();
+ echo '</li>';
+}
+
+// added by Michael Keck <mail_at_michaelkeck_dot_de>
+// ThemeManager if available
+
+if ($GLOBALS['cfg']['ThemeManager']) {
+ echo '<li id="li_select_theme">';
+ echo $_SESSION['PMA_Theme_Manager']->getHtmlSelectBox();
+ echo '</li>';
+?>
+ <script type="text/javascript">
+ //<![CDATA[
+ document.write('<li id="li_custom_color">');
+ document.write('<?php echo PMA_escapeJsString($strCustomColor) . ': '; ?>');
+ document.write('<img id="myRainbow" src="js/mooRainbow/images/rainbow.png" alt="[r]" width="16" height="16" />');
+ document.write('<form name="rainbowform" id="rainbowform" method="post" action="index.php" target="_parent">');
+ document.write('<?php echo PMA_generate_common_hidden_inputs(); ?>');
+ document.write('<input type="hidden" name="custom_color" />');
+ document.write('<input type="hidden" name="custom_color_rgb" />');
+ document.write('<input type="submit" name="custom_color_reset" value="<?php echo $strReset; ?>" />');
+ document.write('</form>');
+ document.write('</li>');
+ //]]>
+ </script>
+ <?php
+}
+echo '<li id="li_select_fontsize">';
+echo PMA_Config::getFontsizeForm();
+echo '</li>';
+
+echo '</ul>';
+echo '</div>';
+
+
+echo '</div>';
+echo '<div id="main_pane_right">';
+
+
+if ($server > 0) {
+ echo '<div class="group">';
+ echo '<h2>MySQL</h2>';
+ echo '<ul>' . "\n";
+ PMA_printListItem($strServer . ': ' . $server_info, 'li_server_info');
+ PMA_printListItem($strServerVersion . ': ' . PMA_MYSQL_STR_VERSION, 'li_server_version');
+ if ($GLOBALS['cfg']['ShowServerInfo']) {
+ PMA_printListItem($strProtocolVersion . ': ' . PMA_DBI_get_proto_info(),
+ 'li_mysql_proto');
+ PMA_printListItem($strUser . ': ' . htmlspecialchars($mysql_cur_user_and_host),
+ 'li_user_info');
+ }
+
+ echo ' <li id="li_select_mysql_charset">';
+ echo ' ' . $strMySQLCharset . ': '
+ . ' <span xml:lang="en" dir="ltr">'
+ . ' ' . $mysql_charsets_descriptions[$mysql_charset_map[strtolower($charset)]] . "\n"
+ . ' (' . $mysql_charset_map[strtolower($charset)] . ')' . "\n"
+ . ' </span>' . "\n"
+ . ' </li>' . "\n";
+ echo ' </ul>';
+ echo ' </div>';
+}
+
+
+echo '<div class="group">';
+echo '<h2>' . $strWebServer . '</h2>';
+echo '<ul>';
+PMA_printListItem($_SERVER['SERVER_SOFTWARE'], 'li_web_server_software');
+
+if ($server > 0) {
+ PMA_printListItem($strMysqlClientVersion . ': ' . PMA_DBI_get_client_info(),
+ 'li_mysql_client_version');
+ PMA_printListItem($strPHPExtension . ': ' . $GLOBALS['cfg']['Server']['extension'],
+ 'li_used_php_extension');
+}
+
+if ($cfg['ShowPhpInfo']) {
+ PMA_printListItem($strShowPHPInfo, 'li_phpinfo', './phpinfo.php?' . $common_url_query);
+}
+echo ' </ul>';
+echo ' </div>';
+
+echo '<div class="group">';
+echo '<h2>phpMyAdmin</h2>';
+echo '<ul>';
+PMA_printListItem($strVersionInformation . ': ' . PMA_VERSION, 'li_pma_version');
+PMA_printListItem($strDocu, 'li_pma_docs', 'Documentation.html', null, '_blank');
+PMA_printListItem($strWiki, 'li_pma_wiki', 'http://wiki.cihar.com', null, '_blank');
+
+// does not work if no target specified, don't know why
+PMA_printListItem($strHomepageOfficial, 'li_pma_homepage', 'http://www.phpMyAdmin.net/', null, '_blank');
+?>
+ <li><bdo xml:lang="en" dir="ltr">
+ [<a href="changelog.php" target="_blank">ChangeLog</a>]
+ [<a href="http://phpmyadmin.svn.sourceforge.net/viewvc/phpmyadmin/"
+ target="_blank">Subversion</a>]
+ [<a href="http://sourceforge.net/mail/?group_id=23067"
+ target="_blank">Lists</a>]
+ </bdo>
+ </li>
+ </ul>
+ </div>
+
+</div>
+
+<?php
+/**
+ * BUG: MSIE needs two <br /> here, otherwise it will not extend the outer div to the
+ * full height of the inner divs
+ */
+?>
+<br class="clearfloat" />
+<br class="clearfloat" />
+</div>
+
+<?php
+/**
+ * Warning if using the default MySQL privileged account
+ * modified: 2004-05-05 mkkeck
+ */
+if ($server != 0
+ && $cfg['Server']['user'] == 'root'
+ && $cfg['Server']['password'] == '') {
+ trigger_error($strInsecureMySQL, E_USER_WARNING);
+}
+
+/**
+ * Nijel: As we try to handle charsets by ourself, mbstring overloads just
+ * break it, see bug 1063821.
+ */
+if (@extension_loaded('mbstring') && @ini_get('mbstring.func_overload') > 1) {
+ trigger_error($strMbOverloadWarning, E_USER_WARNING);
+}
+
+/**
+ * Nijel: mbstring is used for handling multibyte inside parser, so it is good
+ * to tell user something might be broken without it, see bug #1063149.
+ */
+if (! @extension_loaded('mbstring')) {
+ trigger_error($strMbExtensionMissing, E_USER_WARNING);
+}
+
+/**
+ * Check if user does not have defined blowfish secret and it is being used.
+ */
+if (!empty($_SESSION['auto_blowfish_secret']) &&
+ empty($GLOBALS['cfg']['blowfish_secret'])) {
+ trigger_error($strSecretRequired, E_USER_WARNING);
+}
+
+/**
+ * Warning about different MySQL library and server version
+ * (a difference on the third digit does not count).
+ * If someday there is a constant that we can check about mysqlnd, we can use it instead
+ * of strpos().
+ * If no default server is set, PMA_DBI_get_client_info() is not defined yet.
+ */
+if (function_exists('PMA_DBI_get_client_info')) {
+ $_client_info = PMA_DBI_get_client_info();
+ if ($server > 0 && strpos($_client_info, 'mysqlnd') === false && substr(PMA_MYSQL_CLIENT_API, 0, 3) != substr(PMA_MYSQL_INT_VERSION, 0, 3)) {
+ trigger_error(PMA_sanitize(sprintf($strMysqlLibDiffersServerVersion,
+ $_client_info,
+ substr(PMA_MYSQL_STR_VERSION, 0, strpos(PMA_MYSQL_STR_VERSION . '-', '-')))),
+ E_USER_NOTICE);
+ }
+ unset($_client_info);
+}
+
+/**
+ * Warning about Suhosin
+ */
+if ($cfg['SuhosinDisableWarning'] == false && @ini_get('suhosin.request.max_value_length')) {
+ trigger_error(PMA_sanitize(sprintf($strSuhosin, '[a@./Documentation.html#faq1_38@_blank]', '[/a]')), E_USER_WARNING);
+ }
+
+/**
+ * prints list item for main page
+ *
+ * @param string $name displayed text
+ * @param string $id id, used for css styles
+ * @param string $url make item as link with $url as target
+ * @param string $mysql_help_page display a link to MySQL's manual
+ * @param string $target special target for $url
+ */
+function PMA_printListItem($name, $id = null, $url = null, $mysql_help_page = null, $target = null)
+{
+ echo '<li id="' . $id . '">';
+ if (null !== $url) {
+ echo '<a href="' . $url . '"';
+ if (null !== $target) {
+ echo ' target="' . $target . '"';
+ }
+ echo '>';
+ }
+
+ echo $name;
+
+ if (null !== $url) {
+ echo '</a>' . "\n";
+ }
+ if (null !== $mysql_help_page) {
+ echo PMA_showMySQLDocu('', $mysql_help_page);
+ }
+ echo '</li>';
+}
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/navigation.php b/navigation.php
new file mode 100644
index 0000000000..70928a0bd0
--- /dev/null
+++ b/navigation.php
@@ -0,0 +1,680 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * the navigation frame - displays server, db and table selection tree
+ *
+ * @version $Id$
+ * @uses $GLOBALS['pma']->databases
+ * @uses $GLOBALS['server']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['available_languages']
+ * @uses $GLOBALS['lang']
+ * @uses $GLOBALS['text_dir']
+ * @uses $GLOBALS['charset']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['strNoDatabases']
+ * @uses $GLOBALS['strDatabase']
+ * @uses $GLOBALS['strGo']
+ * @uses $GLOBALS['strSelectADb']
+ * @uses $GLOBALS['strNoTablesFound']
+ * @uses $GLOBALS['cfg']['LeftFrameLight']
+ * @uses $GLOBALS['cfg']['ShowTooltip']
+ * @uses $GLOBALS['cfg']['ShowTooltipAliasDB']
+ * @uses $GLOBALS['cfg']['DefaultTabDatabase']
+ * @uses $GLOBALS['cfgRelation']['commwork']) {
+ * @uses PMA_List_Database::getSingleItem()
+ * @uses PMA_List_Database::getHtmlSelectGrouped()
+ * @uses PMA_List_Database::getGroupedDetails()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_getDbComment();
+ * @uses PMA_getTableCount()
+ * @uses PMA_getTableList()
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_outBufferPre()
+ * @uses session_write_close()
+ * @uses strlen()
+ * @uses session_write_close()
+ * @uses is_array()
+ * @uses implode()
+ * @uses htmlspecialchars()
+ */
+
+/**
+ * Gets a core script and starts output buffering work
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * finish and cleanup navigation.php script execution
+ *
+ * @uses $GLOBALS['controllink'] to close it
+ * @uses $GLOBALS['userlink'] to close it
+ * @access private only to be used in navigation.php
+ */
+function PMA_exitNavigationFrame()
+{
+ echo '</body></html>';
+ exit;
+}
+
+// keep the offset of the db list in session before closing it
+if (! isset($_SESSION['userconf']['navi_limit_offset'])) {
+ $_SESSION['userconf']['navi_limit_offset'] = 0;
+}
+if (! isset($_SESSION['userconf']['table_limit_offset']) || $_SESSION['userconf']['table_limit_offset_db'] != $db) {
+ $_SESSION['userconf']['table_limit_offset'] = 0;
+ $_SESSION['userconf']['table_limit_offset_db'] = $db;
+}
+if (isset($_REQUEST['pos'])) {
+ if (isset($_REQUEST['tpos'])) {
+ $_SESSION['userconf']['table_limit_offset'] = (int) $_REQUEST['pos'];
+ }
+ else {
+ $_SESSION['userconf']['navi_limit_offset'] = (int) $_REQUEST['pos'];
+ }
+}
+$pos = $_SESSION['userconf']['navi_limit_offset'];
+$tpos = $_SESSION['userconf']['table_limit_offset'];
+// free the session file, for the other frames to be loaded
+// but only if debugging is not enabled
+if (empty($_SESSION['debug'])) {
+ session_write_close();
+}
+
+/**
+ * the output compression library
+ */
+require_once './libraries/ob.lib.php';
+
+PMA_outBufferPre();
+
+/*
+ * selects the database if there is only one on current server
+ */
+if ($GLOBALS['server'] && ! strlen($GLOBALS['db'])) {
+ $GLOBALS['db'] = $GLOBALS['pma']->databases->getSingleItem();
+}
+
+$db_start = $GLOBALS['db'];
+
+/**
+ * the relation library
+ */
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * garvin: For re-usability, moved http-headers to a seperate file.
+ * It can now be included by libraries/header.inc.php, querywindow.php.
+ */
+require_once './libraries/header_http.inc.php';
+
+/*
+ * Displays the frame
+ */
+// xml declaration moves IE into quirks mode, making much trouble with CSS
+/* echo '<?xml version="1.0" encoding="' . $GLOBALS['charset'] . '"?>'; */
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="<?php echo $available_languages[$lang][2]; ?>"
+ lang="<?php echo $available_languages[$lang][2]; ?>"
+ dir="<?php echo $GLOBALS['text_dir']; ?>">
+
+<head>
+ <link rel="icon" href="./favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+ <title>phpMyAdmin</title>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=<?php echo $GLOBALS['charset']; ?>" />
+ <base target="frame_content" />
+ <link rel="stylesheet" type="text/css"
+ href="phpmyadmin.css.php?<?php echo PMA_generate_common_url('', ''); ?>&amp;js_frame=left&amp;nocache=<?php echo $_SESSION['PMA_Config']->getThemeUniqueValue(); ?>" />
+ <script type="text/javascript" src="js/navigation.js"></script>
+ <script type="text/javascript" src="js/functions.js"></script>
+ <script type="text/javascript">
+ // <![CDATA[
+ var image_minus = '<?php echo $GLOBALS['pmaThemeImage']; ?>b_minus.png';
+ var image_plus = '<?php echo $GLOBALS['pmaThemeImage']; ?>b_plus.png';
+
+ // INIT PMA_setFrameSize
+ var onloadCnt = 0;
+ var onLoadHandler = window.onload;
+ var resizeHandler = window.onresize;
+ window.document.onresize = resizeHandler;
+ window.onload = function() {
+ if (onloadCnt == 0) {
+ if (typeof(onLoadHandler) == "function") {
+ onLoadHandler();
+ }
+ if (typeof(PMA_setFrameSize) != 'undefined' && typeof(PMA_setFrameSize) == 'function') {
+ PMA_setFrameSize();
+ }
+ onloadCnt++;
+ }
+ };
+ window.onresize = function() {
+ if (typeof(resizeHandler) == "function") {
+ resizeHandler();
+ }
+ if (typeof(PMA_saveFrameSize) != 'undefined' && typeof(PMA_saveFrameSize) == 'function') {
+ PMA_saveFrameSize();
+ }
+ };
+ // ]]>
+ </script>
+ <?php
+ /*
+ * remove horizontal scroll bar bug in IE 6 by forcing a vertical scroll bar
+ */
+ ?>
+ <!--[if IE 6]>
+ <style type="text/css">
+ /* <![CDATA[ */
+ html {
+ overflow-y: scroll;
+ }
+ /* ]]> */
+ </style>
+ <![endif]-->
+</head>
+
+<body id="body_leftFrame">
+<?php
+require './libraries/navigation_header.inc.php';
+if (! $GLOBALS['server']) {
+ // no server selected
+ PMA_exitNavigationFrame();
+} elseif (! count($GLOBALS['pma']->databases)) {
+ // no database available, so we break here
+ echo '<p>' . $GLOBALS['strNoDatabases'] . '</p>';
+ PMA_exitNavigationFrame();
+} elseif ($GLOBALS['cfg']['LeftFrameLight'] && count($GLOBALS['pma']->databases) > 1) {
+ $list = $cfg['DisplayDatabasesList'];
+ if ($list === 'auto') {
+ if (empty($GLOBALS['db'])) {
+ $list = true;
+ } else {
+ $list = false;
+ }
+ }
+ if (!$list) {
+ // more than one database available and LeftFrameLight is true
+ // display db selectbox
+ //
+ // Light mode -> beginning of the select combo for databases
+ // Note: When javascript is active, the frameset will be changed from
+ // within navigation.php. With no JS (<noscript>) the whole frameset will
+ // be rebuilt with the new target frame.
+ ?>
+
+ <div id="databaseList">
+ <form method="post" action="index.php" target="_parent" id="left">
+ <label for="lightm_db"><?php echo $GLOBALS['strDatabase']; ?></label>
+ <?php
+ echo PMA_generate_common_hidden_inputs() . "\n";
+ echo $GLOBALS['pma']->databases->getHtmlSelectGrouped(true, $_SESSION['userconf']['navi_limit_offset'], $GLOBALS['cfg']['MaxDbList']) . "\n";
+ echo '<noscript>' . "\n"
+ .'<input type="submit" name="Go" value="' . $GLOBALS['strGo'] . '" />' . "\n"
+ .'</noscript>' . "\n"
+ .'</form>' . "\n";
+ } else {
+ if (! empty($db)) {
+ echo '<div id="databaseList">' . "\n";
+ }
+ echo $GLOBALS['pma']->databases->getHtmlListGrouped(true, $_SESSION['userconf']['navi_limit_offset'], $GLOBALS['cfg']['MaxDbList']) . "\n";
+ }
+ $_url_params = array('pos' => $pos);
+ PMA_listNavigator(count($GLOBALS['pma']->databases), $pos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxDbList']);
+ if (! empty($db)) {
+ echo '</div>' . "\n";
+ }
+}
+?>
+
+<div id="left_tableList">
+<?php
+// Don't display expansible/collapsible database info if:
+// 1. $GLOBALS['server'] == 0 (no server selected)
+// This is the case when there are multiple servers and
+// '$GLOBALS['cfg']['ServerDefault'] = 0' is set. In that case, we want the welcome
+// screen to appear with no database info displayed.
+// 2. there is only one database available (ie either only one database exists
+// or $GLOBALS['cfg']['Servers']['only_db'] is defined and is not an array)
+// In this case, the database should not be collapsible/expandable
+
+$img_plus = '<img class="icon" id="el%dImg" src="' . $pmaThemeImage . 'b_plus.png"'
+ .' width="9" height="9" alt="+" />';
+$img_minus = '<img class="icon" id="el%dImg" src="' . $pmaThemeImage . 'b_minus.png"'
+ .' width="9" height="9" alt="-" />';
+
+$href_left = '<a onclick="if (toggle(\'%d\')) return false;"'
+ .' href="navigation.php?%s" target="_self">';
+
+$element_counter = 0;
+
+
+if ($GLOBALS['cfg']['LeftFrameLight'] && strlen($GLOBALS['db'])) {
+ $table_list = PMA_getTableList($GLOBALS['db']);
+ $table_count = count($table_list);
+
+ // show selected databasename as link to DefaultTabDatabase-page
+ // with table count in ()
+ $common_url_query = PMA_generate_common_url($GLOBALS['db']);
+
+ $db_tooltip = '';
+
+ if ($GLOBALS['cfg']['ShowTooltip']
+ && $GLOBALS['cfgRelation']['commwork']) {
+ $_db_tooltip = PMA_getDbComment($GLOBALS['db']);
+ if ($_db_tooltip) {
+ $db_tooltip = $_db_tooltip;
+ }
+ }
+
+ $disp_name = $GLOBALS['db'];
+ if ($db_tooltip && $GLOBALS['cfg']['ShowTooltipAliasDB']) {
+ $disp_name = $db_tooltip;
+ $disp_name_cut = $db_tooltip;
+ $db_tooltip = $GLOBALS['db'];
+ }
+
+ ?>
+ <p><a class="item"
+ href="<?php echo $GLOBALS['cfg']['DefaultTabDatabase'] . '?' . $common_url_query; ?>"
+ title="<?php echo htmlspecialchars($db_tooltip); ?>" >
+ <?php
+ if ($GLOBALS['text_dir'] === 'rtl') {
+ echo ' <bdo dir="ltr">(' . $table_count . ')</bdo> ';
+ }
+ echo '<span class="navi_dbName">' . htmlspecialchars($disp_name) . '</span>';
+ if ($GLOBALS['text_dir'] === 'ltr') {
+ echo ' <bdo dir="ltr">(' . $table_count . ')</bdo> ';
+ }
+ echo '</a></p>';
+
+ /**
+ * This helps reducing the navi panel size; in the right panel,
+ * user can find a navigator to page thru all tables.
+ *
+ */
+ $table_list = array_slice($table_list, $tpos, $cfg['MaxTableList']);
+ if (! empty($table_list)) {
+ // upper table list paginator
+ if (count($table_list) <= $GLOBALS['cfg']['MaxTableList'] && $table_count > $GLOBALS['cfg']['MaxTableList']) {
+ $_url_params = array(
+ 'tpos' => 'true',
+ 'pos' => $tpos,
+ 'db' => $GLOBALS['db']
+ );
+ PMA_listNavigator($table_count, $tpos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxTableList']);
+ }
+ PMA_displayTableList($table_list, true, '', $GLOBALS['db']);
+ // lower table list paginator
+ if (count($table_list) <= $GLOBALS['cfg']['MaxTableList'] && $table_count > $GLOBALS['cfg']['MaxTableList']) {
+ PMA_listNavigator($table_count, $tpos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxTableList']);
+ }
+ } else {
+ echo $GLOBALS['strNoTablesFound'];
+ }
+ unset($table_list);
+} elseif ($GLOBALS['cfg']['LeftFrameLight']) {
+ echo '<p>' . $GLOBALS['strSelectADb'] . '</p>' . "\n";
+} else {
+ echo '<div id="databaseList">' . "\n";
+ $_url_params = array('pos' => $pos);
+ PMA_listNavigator(count($GLOBALS['pma']->databases), $pos, $_url_params, 'navigation.php', 'frame_navigation', $GLOBALS['cfg']['MaxDbList']);
+ echo '</div>' . "\n";
+
+ $common_url_query = PMA_generate_common_url();
+ PMA_displayDbList($GLOBALS['pma']->databases->getGroupedDetails($_SESSION['userconf']['navi_limit_offset'],$GLOBALS['cfg']['MaxDbList']), $_SESSION['userconf']['navi_limit_offset'],$GLOBALS['cfg']['MaxDbList']);
+}
+
+/**
+ * displays collapsable db list
+ *
+ * @uses $_REQUEST['dbgroup']
+ * @uses $GLOBALS['cfg']['DefaultTabDatabase']
+ * @uses $GLOBALS['strSelectADb']
+ * @uses strpos()
+ * @uses urlencode()
+ * @uses printf()
+ * @uses htmlspecialchars()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_getTableList()
+ * @uses PMA_displayTableList()
+ * @global $element_counter
+ * @global $img_minus
+ * @global $img_plus
+ * @global $href_left
+ * @global $db_start
+ * @global $common_url_query
+ * @param array $ext_dblist extended db list
+ * @param integer $offset
+ * @param integer $count
+ */
+function PMA_displayDbList($ext_dblist, $offset, $count) {
+ global $element_counter, $img_minus, $img_plus, $href_left,
+ $db_start, $common_url_query;
+
+ // get table list, for all databases
+ // doing this in one step takes advantage of a single query with information_schema!
+ $tables_full = PMA_DBI_get_tables_full($GLOBALS['pma']->databases->getLimitedItems($offset, $count));
+
+ $url_dbgroup = '';
+ echo '<ul id="leftdatabaselist">';
+ $close_db_group = false;
+ foreach ($ext_dblist as $group => $db_group) {
+ if (count($GLOBALS['pma']->databases) > 1) {
+ if ($close_db_group) {
+ $url_dbgroup = '';
+ echo '</ul>';
+ echo '</li>';
+ $close_db_group = false;
+ }
+ if (count($db_group) > 1) {
+ $close_db_group = true;
+ $url_dbgroup = '&amp;dbgroup=' . urlencode($group);
+ $common_url_query = PMA_generate_common_url() . $url_dbgroup;
+ $element_counter++;
+ echo '<li class="dbgroup">';
+ if ((! empty($_REQUEST['dbgroup']) && $_REQUEST['dbgroup'] == $group)
+ || $db_start == $group || strpos($db_start, $group) === 0) {
+ // display + only if this db(group) is not preselected
+ printf($href_left, $element_counter, PMA_generate_common_url());
+ printf($img_minus, $element_counter);
+ } else {
+ printf($href_left, $element_counter, $common_url_query);
+ printf($img_plus, $element_counter);
+ }
+ echo '</a> ' . $group . "\n";
+ if ((! empty($_REQUEST['dbgroup']) && $_REQUEST['dbgroup'] == $group)
+ || $db_start == $group || strpos($db_start, $group) === 0) {
+ echo '<ul id="subel' . $element_counter . '">' . "\n";
+ } else {
+ echo '<ul id="subel' . $element_counter . '"'
+ .' style="display: none">' . "\n";
+ }
+ }
+ }
+ foreach ($db_group as $db) {
+ $common_url_query = PMA_generate_common_url($db['name']) . $url_dbgroup;
+
+ $element_counter++;
+ // Displays the database name
+ echo '<li>' . "\n";
+
+ if (count($GLOBALS['pma']->databases) > 1) {
+ // only with more than one db we need collapse ...
+ if ($db_start != $db['name'] || $db['num_tables'] < 1) {
+ // display + only if this db is not preselected
+ // or table count is 0
+ printf($href_left, $element_counter, $common_url_query);
+ printf($img_plus, $element_counter);
+ } else {
+ printf($href_left, $element_counter,
+ PMA_generate_common_url() . $url_dbgroup);
+ printf($img_minus, $element_counter);
+ }
+ echo '</a>';
+
+ // ... and we need to refresh both frames on db selection
+ ?>
+ <a class="item"
+ id="<?php echo htmlspecialchars($db['name']); ?>"
+ href="index.php?<?php echo $common_url_query; ?>"
+ target="_parent"
+ title="<?php echo htmlspecialchars($db['comment']); ?>"
+ onclick="
+ if (! toggle('<?php echo $element_counter; ?>', true))
+ window.parent.goTo('./navigation.php?<?php echo $common_url_query; ?>');
+ window.parent.goTo('./<?php echo $GLOBALS['cfg']['DefaultTabDatabase']
+ . '?' . $common_url_query; ?>', 'main');
+ return false;">
+ <?php
+ if ($GLOBALS['text_dir'] === 'rtl') {
+ echo ' <bdo dir="ltr">(' . $db['num_tables'] . ')</bdo> ';
+ }
+ echo htmlspecialchars($db['disp_name']);
+ if ($GLOBALS['text_dir'] === 'ltr') {
+ echo ' <bdo dir="ltr">(' . $db['num_tables'] . ')</bdo> ';
+ }
+ ?>
+ </a>
+ <?php
+ } else {
+ // with only 1 db available we dont need to refresh left frame
+ // on db selection, only phpmain
+ ?>
+ <a href="<?php echo $GLOBALS['cfg']['DefaultTabDatabase']
+ . '?' . $common_url_query; ?>"
+ id="<?php echo htmlspecialchars($db['name']); ?>"
+ title="<?php echo htmlspecialchars($db['comment']); ?>">
+ <?php
+ if ($GLOBALS['text_dir'] === 'rtl') {
+ echo ' <bdo dir="ltr">(' . $db['num_tables'] . ')</bdo> ';
+ }
+ echo htmlspecialchars($db['disp_name']);
+ if ($GLOBALS['text_dir'] === 'ltr') {
+ echo ' <bdo dir="ltr">(' . $db['num_tables'] . ')</bdo> ';
+ }
+ ?>
+ </a>
+ <?php
+ }
+ if ($db['num_tables']) {
+ if (isset($tables_full[$db['name']])) {
+ $tables = PMA_getTableList($db['name'], $tables_full[$db['name']]);
+ } elseif (isset($tables_full[strtolower($db['name'])])) {
+ // on windows with lower_case_table_names = 1
+ // MySQL returns
+ // with SHOW DATABASES or information_schema.SCHEMATA: `Test`
+ // but information_schema.TABLES gives `test`
+ // bug #1436171
+ // sf.net/tracker/?func=detail&aid=1436171&group_id=23067&atid=377408
+ $tables = PMA_getTableList($db['name'], $tables_full[strtolower($db['name'])]);
+ } else {
+ $tables = PMA_getTableList($db['name']);
+ }
+ $child_visible =
+ (bool) (count($GLOBALS['pma']->databases) === 1 || $db_start == $db['name']);
+ PMA_displayTableList($tables, $child_visible, '', $db['name']);
+ } elseif ($GLOBALS['cfg']['LeftFrameLight']) {
+ // no tables and LeftFrameLight:
+ // display message no tables in selected db
+ echo '<p>' . $GLOBALS['strSelectADb'] . '</p>' . "\n";
+ }
+ echo '</li>' . "\n";
+ } // end foreach db
+ } // end foreach group
+
+ if ($close_db_group) {
+ $url_dbgroup = '';
+ echo '</ul>';
+ echo '</li>';
+ $close_db_group = false;
+ }
+
+ echo '</ul>' . "\n";
+}
+
+/**
+ * display unordered list of tables
+ * calls itself recursively if table in given list
+ * is a list itself
+ *
+ * @uses is_array()
+ * @uses count()
+ * @uses urlencode()
+ * @uses strpos()
+ * @uses printf()
+ * @uses htmlspecialchars()
+ * @uses strlen()
+ * @uses is_array()
+ * @uses PMA_displayTableList()
+ * @uses $_REQUEST['tbl_group']
+ * @uses $GLOBALS['common_url_query']
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['pmaThemeImage']
+ * @uses $GLOBALS['cfg']['LeftFrameTableSeparator']
+ * @uses $GLOBALS['cfg']['DefaultTabDatabase']
+ * @uses $GLOBALS['cfg']['DefaultTabTable']
+ * @uses $GLOBALS['strRows']
+ * @uses $GLOBALS['strBrowse']
+ * @global integer the element counter
+ * @global string html code for '-' image
+ * @global string html code for '+' image
+ * @global string html code for self link
+ * @param array $tables array of tables/tablegroups
+ * @param boolean $visible whether the list is visible or not
+ * @param string $tab_group_full full tab group name
+ * @param string $table_db db of this table
+ */
+function PMA_displayTableList($tables, $visible = false,
+ $tab_group_full = '', $table_db = '')
+{
+ if (! is_array($tables) || count($tables) === 0) {
+ return;
+ }
+
+ global $element_counter, $img_minus, $img_plus, $href_left;
+ $sep = $GLOBALS['cfg']['LeftFrameTableSeparator'];
+
+ if ($visible) {
+ echo '<ul id="subel' . $element_counter . '">';
+ } else {
+ echo '<ul id="subel' . $element_counter . '" style="display: none">';
+ }
+ foreach ($tables as $group => $table) {
+ if (isset($table['is' . $sep . 'group'])) {
+ $common_url_query = $GLOBALS['common_url_query']
+ . '&amp;tbl_group=' . urlencode($tab_group_full . $group);
+
+ $element_counter++;
+ echo '<li>' . "\n";
+ if ($visible
+ && ((isset($_REQUEST['tbl_group'])
+ && (strpos($_REQUEST['tbl_group'], $group) === 0
+ || strpos($_REQUEST['tbl_group'], $sep . $group) !== false))
+ || strpos($GLOBALS['table'], $group) === 0)) {
+ printf($href_left, $element_counter,
+ $GLOBALS['common_url_query'] . '&amp;tbl_group=' . $tab_group_full);
+ printf($img_minus, $element_counter);
+ } else {
+ printf($href_left, $element_counter, $common_url_query);
+ printf($img_plus, $element_counter);
+ }
+ echo '</a>';
+ ?>
+ <a href="index.php?<?php echo $common_url_query; ?>"
+ target="_parent"
+ onclick="
+ if (! toggle('<?php echo $element_counter; ?>', true))
+ window.parent.goTo('./navigation.php?<?php echo $common_url_query; ?>');
+ window.parent.goTo('./<?php echo $GLOBALS['cfg']['DefaultTabDatabase']
+ . '?' . $common_url_query; ?>', 'main');
+ return false;">
+ <?php
+ if ($GLOBALS['text_dir'] === 'rtl') {
+ echo ' <bdo dir="ltr">(' . $table['tab' . $sep . 'count'] . ')</bdo> ';
+ }
+ echo htmlspecialchars(substr($group, 0, strlen($group) - strlen($sep)));
+ if ($GLOBALS['text_dir'] === 'ltr') {
+ echo ' <bdo dir="ltr">(' . $table['tab' . $sep . 'count'] . ')</bdo> ';
+ }
+ ?>
+ </a>
+ <?php
+
+ unset($table['is' . $sep . 'group']);
+ unset($table['tab' . $sep . 'group']);
+ unset($table['tab' . $sep . 'count']);
+
+ if ($visible &&
+ ((isset($_REQUEST['tbl_group'])
+ && (strpos($_REQUEST['tbl_group'], $group) === 0
+ || strpos($_REQUEST['tbl_group'], $sep . $group) !== false))
+ || strpos($GLOBALS['table'], $group) === 0)) {
+ PMA_displayTableList($table, true,
+ $tab_group_full . $group, $table_db);
+ } else {
+ PMA_displayTableList($table, false, '', $table_db);
+ }
+ echo '</li>' . "\n";
+ } elseif (is_array($table)) {
+ // quick access icon next to each table name
+ echo '<li>' . "\n";
+ echo '<a title="'
+ . htmlspecialchars(PMA_getTitleForTarget($GLOBALS['cfg']['LeftDefaultTabTable']))
+ . ': ' . htmlspecialchars($table['Comment'])
+ .' (' . PMA_formatNumber($table['Rows'], 0) . ' ' . $GLOBALS['strRows'] . ')"'
+ .' id="quick_' . htmlspecialchars($table_db . '.' . $table['Name']) . '"'
+ .' href="' . $GLOBALS['cfg']['LeftDefaultTabTable'] . '?'
+ . $GLOBALS['common_url_query']
+ .'&amp;table=' . urlencode($table['Name'])
+ .'&amp;goto=' . $GLOBALS['cfg']['LeftDefaultTabTable']
+ . '" >'
+ .'<img class="icon"';
+ if ('VIEW' === strtoupper($table['Comment'])) {
+ echo ' src="' . $GLOBALS['pmaThemeImage'] . 's_views.png"';
+ } else {
+ echo ' src="' . $GLOBALS['pmaThemeImage'] . 'b_sbrowse.png"';
+ }
+ echo ' id="icon_' . htmlspecialchars($table_db . '.' . $table['Name']) . '"'
+ .' width="10" height="10" alt="' . $GLOBALS['strBrowse'] . '" /></a>' . "\n";
+
+ // link for the table name itself
+ $href = $GLOBALS['cfg']['DefaultTabTable'] . '?'
+ .$GLOBALS['common_url_query'] . '&amp;table='
+ .urlencode($table['Name']) . '&amp;pos=0';
+ echo '<a href="' . $href
+ . '" title="' . htmlspecialchars(PMA_getTitleForTarget($GLOBALS['cfg']['DefaultTabTable']) . ': ' . $table['Comment']
+ .' (' . PMA_formatNumber($table['Rows'], 0) . ' ' . $GLOBALS['strRows']) . ')"'
+ .' id="' . htmlspecialchars($table_db . '.' . $table['Name']) . '">'
+ // preserve spaces in table name
+ . str_replace(' ', '&nbsp;', htmlspecialchars($table['disp_name'])) . '</a>';
+ echo '</li>' . "\n";
+ }
+ }
+ echo '</ul>';
+}
+
+/**
+ * get the action word corresponding to a script name
+ * in order to display it as a title in navigation panel
+ *
+ * @uses switch()
+ * @uses $GLOBALS
+ * @param string a valid value for $cfg['LeftDefaultTabTable']
+ * or $cfg['DefaultTabTable']
+ */
+function PMA_getTitleForTarget($target) {
+ switch ($target) {
+ case 'tbl_structure.php':
+ $message = 'strStructure';
+ break;
+ case 'tbl_sql.php':
+ $message = 'strSQL';
+ break;
+ case 'tbl_select.php':
+ $message = 'strSearch';
+ break;
+ case 'tbl_change.php':
+ $message = 'strInsert';
+ break;
+ case 'sql.php':
+ $message = 'strBrowse';
+ break;
+ default:
+ $message = '';
+ }
+ return $GLOBALS[$message];
+}
+
+echo '</div>' . "\n";
+
+PMA_exitNavigationFrame();
+?>
diff --git a/pdf_pages.php b/pdf_pages.php
new file mode 100644
index 0000000000..7457aca59c
--- /dev/null
+++ b/pdf_pages.php
@@ -0,0 +1,573 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/db_common.inc.php';
+require './libraries/StorageEngine.class.php';
+
+/**
+ * Settings for relation stuff
+ */
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+// This is to avoid "Command out of sync" errors. Before switching this to
+// a value of 0 (for MYSQLI_USE_RESULT), please check the logic
+// to free results wherever needed.
+$query_default_option = PMA_DBI_QUERY_STORE;
+
+/**
+ * Now in ./libraries/relation.lib.php we check for all tables
+ * that we need, but if we don't find them we are quiet about it
+ * so people can work without.
+ * This page is absolutely useless if you didn't set up your tables
+ * correctly, so it is a good place to see which tables we can and
+ * complain ;-)
+ */
+if (!$cfgRelation['relwork']) {
+ echo sprintf($strNotSet, 'relation', 'config.inc.php') . '<br />' . "\n"
+ . '<a href="./Documentation.html#relation" target="documentation">' . $strDocu . '</a>' . "\n";
+ require_once './libraries/footer.inc.php';
+}
+
+if (!$cfgRelation['displaywork']) {
+ echo sprintf($strNotSet, 'table_info', 'config.inc.php') . '<br />' . "\n"
+ . '<a href="./Documentation.html#table_info" target="documentation">' . $strDocu . '</a>' . "\n";
+ require_once './libraries/footer.inc.php';
+}
+
+if (!isset($cfgRelation['table_coords'])){
+ echo sprintf($strNotSet, 'table_coords', 'config.inc.php') . '<br />' . "\n"
+ . '<a href="./Documentation.html#table_coords" target="documentation">' . $strDocu . '</a>' . "\n";
+ exit();
+}
+if (!isset($cfgRelation['pdf_pages'])) {
+ echo sprintf($strNotSet, 'pdf_page', 'config.inc.php') . '<br />' . "\n"
+ . '<a href="./Documentation.html#pdf_pages" target="documentation">' . $strDocu . '</a>' . "\n";
+ exit();
+}
+
+if ($cfgRelation['pdfwork']) {
+ // Now is the time to work on all changes
+ if (isset($do)) {
+ switch ($do) {
+ case 'choosepage':
+ if ($action_choose=="1") {
+ $ch_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND pdf_page_number = ' . $chpage;
+ PMA_query_as_cu($ch_query, FALSE, $query_default_option);
+
+ $ch_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND page_nr = ' . $chpage;
+ PMA_query_as_cu($ch_query, FALSE, $query_default_option);
+
+ unset($chpage);
+ }
+ break;
+ case 'createpage':
+ $pdf_page_number = PMA_REL_create_page($newpage, $cfgRelation, $db, $query_default_option);
+
+ // A u t o m a t i c l a y o u t
+ // ================================
+ if (isset($auto_layout_internal) || isset($auto_layout_foreign)) {
+ $all_tables = array();
+ }
+
+ if (isset($auto_layout_foreign)) {
+ // get the tables list
+ $tables = PMA_DBI_get_tables_full($db);
+ // find the ones who support FOREIGN KEY; it's not
+ // important that we group together InnoDB tables
+ // and PBXT tables, as this logic is just to put
+ // the tables on the layout, not to determine relations
+ $foreignkey_tables = array();
+ foreach($tables as $table_name => $table_properties) {
+ if (PMA_foreignkey_supported($table_properties['ENGINE'])) {
+ $foreignkey_tables[] = $table_name;
+ }
+ }
+ $all_tables = $foreignkey_tables;
+ // could be improved by finding the tables which have the
+ // most references keys and placing them at the beginning
+ // of the array (so that they are all center of schema)
+ unset($tables, $foreignkey_tables);
+ } // endif auto_layout_foreign
+
+ if (isset($auto_layout_internal)) {
+ // get the tables that have relations, by descending
+ // number of links
+ $master_tables = 'SELECT COUNT(master_table), master_table'
+ . ' FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE master_db = \'' . $db . '\''
+ . ' GROUP BY master_table'
+ . ' ORDER BY ' . PMA_backquote('COUNT(master_table)') . ' DESC ';
+ $master_tables_rs = PMA_query_as_cu($master_tables, FALSE, $query_default_option);
+ if ($master_tables_rs && PMA_DBI_num_rows($master_tables_rs) > 0) {
+ // first put all the master tables at beginning
+ // of the list, so they are near the center of
+ // the schema
+ while (list(, $master_table) = PMA_DBI_fetch_row($master_tables_rs)) {
+ $all_tables[] = $master_table;
+ }
+
+ // then for each master, add its foreigns into an array
+ // of foreign tables, if not already there
+ // (a foreign might be foreign for more than
+ // one table, and might be a master itself)
+
+ $foreign_tables = array();
+ foreach ($all_tables AS $master_table) {
+ $foreigners = PMA_getForeigners($db, $master_table);
+ foreach ($foreigners AS $foreigner) {
+ if (!in_array($foreigner['foreign_table'], $foreign_tables)) {
+ $foreign_tables[] = $foreigner['foreign_table'];
+ }
+ }
+ }
+
+ // then merge the arrays
+ foreach ($foreign_tables AS $foreign_table) {
+ if (!in_array($foreign_table, $all_tables)) {
+ $all_tables[] = $foreign_table;
+ }
+ }
+ } // endif there are master tables
+ } // endif auto_layout_internal
+
+ if (isset($auto_layout_internal) || isset($auto_layout_foreign)) {
+ // now generate the coordinates for the schema,
+ // in a clockwise spiral
+
+ $pos_x = 300;
+ $pos_y = 300;
+ $delta = 110;
+ $delta_mult = 1.10;
+ $direction = "right";
+ foreach ($all_tables AS $current_table) {
+
+ // save current table's coordinates
+ $insert_query = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords']) . ' '
+ . '(db_name, table_name, pdf_page_number, x, y) '
+ . 'VALUES (\'' . PMA_sqlAddslashes($db) . '\', \'' . PMA_sqlAddslashes($current_table) . '\',' . $pdf_page_number . ',' . $pos_x . ',' . $pos_y . ')';
+ PMA_query_as_cu($insert_query, FALSE, $query_default_option);
+
+ // compute for the next table
+ switch ($direction) {
+ case 'right':
+ $pos_x += $delta;
+ $direction = "down";
+ $delta *= $delta_mult;
+ break;
+ case 'down':
+ $pos_y += $delta;
+ $direction = "left";
+ $delta *= $delta_mult;
+ break;
+ case 'left':
+ $pos_x -= $delta;
+ $direction = "up";
+ $delta *= $delta_mult;
+ break;
+ case 'up':
+ $pos_y -= $delta;
+ $direction = "right";
+ $delta *= $delta_mult;
+ break;
+ } // end switch
+ } // end foreach
+ } // end if some auto-layout to do
+
+ $chpage = $pdf_page_number;
+
+ break;
+
+ case 'edcoord':
+ for ($i = 0; $i < $c_table_rows; $i++) {
+ $arrvalue = 'c_table_' . $i;
+ $arrvalue = $$arrvalue;
+ if (!isset($arrvalue['x']) || $arrvalue['x'] == '') {
+ $arrvalue['x'] = 0;
+ }
+ if (!isset($arrvalue['y']) || $arrvalue['y'] == '') {
+ $arrvalue['y'] = 0;
+ }
+ if (isset($arrvalue['name']) && $arrvalue['name'] != '--') {
+ $test_query = 'SELECT * FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($arrvalue['name']) . '\''
+ . ' AND pdf_page_number = ' . $chpage;
+ $test_rs = PMA_query_as_cu($test_query, FALSE, $query_default_option);
+ if ($test_rs && PMA_DBI_num_rows($test_rs) > 0) {
+ if (isset($arrvalue['delete']) && $arrvalue['delete'] == 'y') {
+ $ch_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($arrvalue['name']) . '\''
+ . ' AND pdf_page_number = ' . $chpage;
+ } else {
+ $ch_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords']) . ' '
+ . 'SET x = ' . $arrvalue['x'] . ', y= ' . $arrvalue['y']
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($arrvalue['name']) . '\''
+ . ' AND pdf_page_number = ' . $chpage;
+ }
+ } else {
+ $ch_query = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords']) . ' '
+ . '(db_name, table_name, pdf_page_number, x, y) '
+ . 'VALUES (\'' . PMA_sqlAddslashes($db) . '\', \'' . PMA_sqlAddslashes($arrvalue['name']) . '\',' . $chpage . ',' . $arrvalue['x'] . ',' . $arrvalue['y'] . ')';
+ }
+ PMA_query_as_cu($ch_query, FALSE, $query_default_option);
+ } // end if
+ } // end for
+ break;
+ case 'deleteCrap':
+ foreach ($delrow AS $current_row) {
+ $d_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords']) . ' ' . "\n"
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'' . "\n"
+ . ' AND table_name = \'' . PMA_sqlAddslashes($current_row) . '\'' . "\n"
+ . ' AND pdf_page_number = ' . $chpage;
+ PMA_query_as_cu($d_query, FALSE, $query_default_option);
+ }
+ break;
+ } // end switch
+ } // end if (isset($do))
+
+ // We will need an array of all tables in this db
+ $selectboxall = array('--');
+ $alltab_rs = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
+ while ($val = @PMA_DBI_fetch_row($alltab_rs)) {
+ $selectboxall[] = $val[0];
+ }
+
+ // Now first show some possibility to choose a page for the pdf
+ $page_query = 'SELECT * FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'';
+ $page_rs = PMA_query_as_cu($page_query, FALSE, $query_default_option);
+
+ if ($page_rs && PMA_DBI_num_rows($page_rs) > 0) {
+ ?>
+<form method="get" action="pdf_pages.php" name="selpage">
+ <fieldset>
+ <legend>
+ <?php echo $strChoosePage . "\n"; ?>
+ </legend>
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="do" value="choosepage" />
+ <select name="chpage" onchange="this.form.submit()">
+ <?php
+ while ($curr_page = PMA_DBI_fetch_assoc($page_rs)) {
+ echo "\n" . ' '
+ . '<option value="' . $curr_page['page_nr'] . '"';
+ if (isset($chpage) && $chpage == $curr_page['page_nr']) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $curr_page['page_nr'] . ': ' . $curr_page['page_descr'] . '</option>';
+ } // end while
+ echo "\n";
+ ?>
+ </select>
+<?php
+ $choices = array(
+ '0' => $strEdit,
+ '1' => $strDelete);
+ PMA_generate_html_radio('action_choose', $choices, '0', false);
+ unset($choices);
+?>
+ <input type="submit" value="<?php echo $strGo; ?>" /><br />
+ </fieldset>
+</form>
+ <?php
+ }
+ echo "\n";
+
+ // Possibility to create a new page:
+ ?>
+<form method="post" action="pdf_pages.php" name="crpage">
+ <fieldset>
+ <legend>
+ <?php echo $strCreatePage . "\n"; ?>
+ </legend>
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="do" value="createpage" />
+ <input type="text" name="newpage" size="20" maxlength="50" />
+ <input type="checkbox" name="auto_layout_internal" />
+<?php echo '(' . $strAutomaticLayout . ' / ' . $strInternalRelations . ')';
+ if (PMA_StorageEngine::isValid('InnoDB') || PMA_StorageEngine::isValid('PBXT')) {
+ echo '<input type="checkbox" name="auto_layout_foreign" />'
+ . '(' . $strAutomaticLayout . ' / FOREIGN KEY)';
+ }
+?>
+ <input type="submit" value="<?php echo $strGo; ?>" />
+ </fieldset>
+</form>
+ <?php
+ // Now if we already have chosen a page number then we should show the
+ // tables involved
+ if (isset($chpage) && $chpage > 0) {
+ echo "\n";
+ ?>
+<hr />
+
+<h2><?php echo $strSelectTables ;?></h2>
+
+<?php
+$page_query = 'SELECT * FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND pdf_page_number = ' . $chpage;
+$page_rs = PMA_query_as_cu($page_query, FALSE, $query_default_option);
+$array_sh_page = array();
+$draginit = '';
+$reset_draginit = '';
+$i = 0;
+while ($temp_sh_page = @PMA_DBI_fetch_assoc($page_rs)) {
+ $array_sh_page[] = $temp_sh_page;
+}
+
+// garvin: Display WYSIWYG-PDF parts?
+if ($cfg['WYSIWYG-PDF']) {
+ if (!isset($_POST['with_field_names']) && !isset($_POST['showwysiwyg'])) {
+ $with_field_names = TRUE;
+ }
+?>
+<script type="text/javascript" src="./js/dom-drag.js"></script>
+<form method="post" action="pdf_pages.php" name="dragdrop">
+<input type="button" name="dragdrop" value="<?php echo $strToggleScratchboard; ?>" onclick="ToggleDragDrop('pdflayout');" />
+ <input type="button" name="dragdropreset" value="<?php echo $strReset; ?>" onclick="resetDrag();" />
+</form>
+<div id="pdflayout" class="pdflayout" style="visibility: hidden;">
+<?php
+foreach ($array_sh_page AS $key => $temp_sh_page) {
+ $drag_x = $temp_sh_page['x'];
+ $drag_y = $temp_sh_page['y'];
+
+ $draginit .= ' Drag.init(getElement("table_' . $i . '"), null, 0, parseInt(myid.style.width)-2, 0, parseInt(myid.style.height)-5);' . "\n";
+ $draginit .= ' getElement("table_' . $i . '").onDrag = function (x, y) { document.edcoord.elements["c_table_' . $i . '[x]"].value = parseInt(x); document.edcoord.elements["c_table_' . $i . '[y]"].value = parseInt(y) }' . "\n";
+ $draginit .= ' getElement("table_' . $i . '").style.left = "' . $drag_x . 'px";' . "\n";
+ $draginit .= ' getElement("table_' . $i . '").style.top = "' . $drag_y . 'px";' . "\n";
+ $reset_draginit .= ' getElement("table_' . $i . '").style.left = "2px";' . "\n";
+ $reset_draginit .= ' getElement("table_' . $i . '").style.top = "' . (15 * $i) . 'px";' . "\n";
+ $reset_draginit .= ' document.edcoord.elements["c_table_' . $i . '[x]"].value = "2"' . "\n";
+ $reset_draginit .= ' document.edcoord.elements["c_table_' . $i . '[y]"].value = "' . (15 * $i) . '"' . "\n";
+
+ $local_query = 'SHOW FIELDS FROM '
+ . PMA_backquote($temp_sh_page['table_name'])
+ . ' FROM ' . PMA_backquote($db);
+ $fields_rs = PMA_DBI_query($local_query);
+ unset($local_query);
+ $fields_cnt = PMA_DBI_num_rows($fields_rs);
+
+ echo '<div id="table_' . $i . '" class="pdflayout_table"><u>' . $temp_sh_page['table_name'] . '</u>';
+ if (isset($with_field_names)) {
+ while ($row = PMA_DBI_fetch_assoc($fields_rs)) {
+ echo '<br />' . htmlspecialchars($row['Field']) . "\n";
+ }
+ }
+ echo '</div>' . "\n";
+ PMA_DBI_free_result($fields_rs);
+ unset($fields_rs);
+
+ $i++;
+}
+?>
+</div>
+<script type="text/javascript">
+//<![CDATA[
+function init() {
+ refreshLayout();
+ myid = getElement('pdflayout');
+ <?php echo $draginit; ?>
+}
+
+function resetDrag() {
+ <?php echo $reset_draginit; ?>
+}
+//]]>
+</script>
+<?php
+} // end if WYSIWYG-PDF
+?>
+
+<form method="post" action="pdf_pages.php" name="edcoord">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="chpage" value="<?php echo $chpage; ?>" />
+ <input type="hidden" name="do" value="edcoord" />
+ <table border="0">
+ <tr>
+ <th><?php echo $strTable; ?></th>
+ <th><?php echo $strDelete; ?></th>
+ <th>X</th>
+ <th>Y</th>
+ </tr>
+ <?php
+ if (isset($ctable)) {
+ unset($ctable);
+ }
+
+
+ $i = 0;
+ $odd_row = true;
+ foreach ($array_sh_page AS $dummy_sh_page => $sh_page) {
+ $_mtab = $sh_page['table_name'];
+ $tabExist[$_mtab] = FALSE;
+ echo "\n" . ' <tr class="';
+ if ($odd_row) {
+ echo 'odd';
+ } else {
+ echo 'even';
+ }
+ echo '">';
+ $odd_row != $odd_row;
+ echo "\n" . ' <td>'
+ . "\n" . ' <select name="c_table_' . $i . '[name]">';
+ foreach ($selectboxall AS $key => $value) {
+ echo "\n" . ' <option value="' . $value . '"';
+ if ($value == $sh_page['table_name']) {
+ echo ' selected="selected"';
+ $tabExist[$_mtab] = TRUE;
+ }
+ echo '>' . $value . '</option>';
+ } // end while
+ echo "\n" . ' </select>'
+ . "\n" . ' </td>';
+ echo "\n" . ' <td>'
+ . "\n" . ' <input type="checkbox" name="c_table_' . $i . '[delete]" value="y" />' . $strDelete;
+ echo "\n" . ' </td>';
+ echo "\n" . ' <td>'
+ . "\n" . ' <input type="text" ' . ($cfg['WYSIWYG-PDF'] ? 'onchange="dragPlace(' . $i . ', \'x\', this.value)"' : '') . ' name="c_table_' . $i . '[x]" value="' . $sh_page['x'] . '" />';
+ echo "\n" . ' </td>';
+ echo "\n" . ' <td>'
+ . "\n" . ' <input type="text" ' . ($cfg['WYSIWYG-PDF'] ? 'onchange="dragPlace(' . $i . ', \'y\', this.value)"' : '') . ' name="c_table_' . $i . '[y]" value="' . $sh_page['y'] . '" />';
+ echo "\n" . ' </td>';
+ echo "\n" . ' </tr>';
+ $i++;
+ } // end while
+ // Do one more empty row
+ echo "\n" . ' <tr class="';
+ if ($odd_row) {
+ echo 'odd';
+ } else {
+ echo 'even';
+ }
+ $odd_row != $odd_row;
+ echo '">';
+ echo "\n" . ' <td>'
+ . "\n" . ' <select name="c_table_' . $i . '[name]">';
+ foreach ($selectboxall AS $key => $value) {
+ echo "\n" . ' <option value="' . $value . '">' . $value . '</option>';
+ }
+ echo "\n" . ' </select>'
+ . "\n" . ' </td>';
+ echo "\n" . ' <td>'
+ . "\n" . ' <input type="checkbox" name="c_table_' . $i . '[delete]" value="y" />' . $strDelete;
+ echo "\n" . ' </td>';
+ echo "\n" . ' <td>'
+ . "\n" . ' <input type="text" name="c_table_' . $i . '[x]" value="' . (isset($sh_page['x'])?$sh_page['x']:'') . '" />';
+ echo "\n" . ' </td>';
+ echo "\n" . ' <td>'
+ . "\n" . ' <input type="text" name="c_table_' . $i . '[y]" value="' . (isset($sh_page['y'])?$sh_page['y']:'') . '" />';
+ echo "\n" . ' </td>';
+ echo "\n" . ' </tr>';
+ echo "\n" . ' </table>' . "\n";
+
+ echo "\n" . ' <input type="hidden" name="c_table_rows" value="' . ($i + 1) . '" />';
+ echo ($cfg['WYSIWYG-PDF'] ? "\n" . ' <input type="hidden" name="showwysiwyg" value="' . ((isset($showwysiwyg) && $showwysiwyg == '1') ? '1' : '0') . '" />' : '');
+ echo "\n" . ' <input type="checkbox" name="with_field_names" ' . (isset($with_field_names) ? 'checked="checked"' : ''). ' />' . $strColumnNames . '<br />';
+ echo "\n" . ' <input type="submit" value="' . $strSave . '" />';
+ echo "\n" . '</form>' . "\n\n";
+ } // end if
+
+ // Check if there are tables that need to be deleted,
+ // if there are, ask the user for allowance
+ $_strtrans = '';
+ $_strname = '';
+ $shoot = FALSE;
+ if (!empty($tabExist) && is_array($tabExist)) {
+ foreach ($tabExist AS $key => $value) {
+ if (!$value) {
+ $_strtrans .= '<input type="hidden" name="delrow[]" value="' . $key . '" />' . "\n";
+ $_strname .= '<li>' . $key . '</li>' . "\n";
+ $shoot = TRUE;
+ }
+ }
+ if ($shoot) {
+ echo '<form action="pdf_pages.php" method="post">' . "\n"
+ . PMA_generate_common_hidden_inputs($db, $table)
+ . '<input type="hidden" name="do" value="deleteCrap" />' . "\n"
+ . '<input type="hidden" name="chpage" value="' . $chpage . '" />' . "\n"
+ . $strDelOld
+ . '<ul>' . "\n"
+ . $_strname
+ . '</ul>' . "\n"
+ . $_strtrans
+ . '<input type="submit" value="' . $strGo . '" />' . "\n"
+ . '</form>';
+ }
+ }
+ // ------------------------------------
+ // d i s p l a y p d f s c h e m a
+ // ------------------------------------
+
+ if (isset($do)
+ && ($do == 'edcoord'
+ || ($do == 'choosepage' && isset($chpage))
+ || ($do == 'createpage' && isset($chpage)))) {
+ ?>
+<form method="post" action="pdf_schema.php" name="pdfoptions">
+ <?php echo PMA_generate_common_hidden_inputs($db); ?>
+ <input type="hidden" name="pdf_page_number" value="<?php echo $chpage; ?>" />
+
+ <?php echo '<br /><strong>' . $strDisplayPDF . '</strong>'; ?>:&nbsp;<br />
+ <input type="checkbox" name="show_grid" id="show_grid_opt" /><label for="show_grid_opt"><?php echo $strShowGrid; ?></label><br />
+ <input type="checkbox" name="show_color" id="show_color_opt" checked="checked" /><label for="show_color_opt"><?php echo $strShowColor; ?></label><br />
+ <input type="checkbox" name="show_table_dimension" id="show_table_dim_opt" /><label for="show_table_dim_opt"><?php echo $strShowTableDimension; ?></label><br />
+ <input type="checkbox" name="all_tab_same_wide" id="all_tab_same_wide" /><label for="all_tab_same_wide"><?php echo $strAllTableSameWidth; ?></label><br />
+ <input type="checkbox" name="with_doc" id="with_doc" checked="checked" /><label for="with_doc"><?php echo $strDataDict; ?></label>
+ <br />
+ <label for="orientation_opt"><?php echo $strShowDatadictAs; ?></label>
+ <select id="orientation_opt" name="orientation" <?php echo ($cfg['WYSIWYG-PDF'] ? 'onchange="refreshDragOption(\'pdflayout\');"' : ''); ?>>
+ <option value="L"><?php echo $strLandscape;?></option>
+ <option value="P"><?php echo $strPortrait;?></option>
+ </select><br />
+
+ <label for="paper_opt"><?php echo $strPaperSize; ?></label>
+ <select id="paper_opt" name="paper" <?php echo ($cfg['WYSIWYG-PDF'] ? 'onchange="refreshDragOption(\'pdflayout\');"' : ''); ?>>
+<?php
+ foreach ($cfg['PDFPageSizes'] AS $key => $val) {
+ echo '<option value="' . $val . '"';
+ if ($val == $cfg['PDFDefaultPageSize']) {
+ echo ' selected="selected"';
+ }
+ echo ' >' . $val . '</option>' . "\n";
+ }
+?>
+ </select><br />
+ &nbsp;&nbsp;<input type="submit" value="<?php echo $strGo; ?>" />
+</form>
+<?php
+ if ((isset($showwysiwyg) && $showwysiwyg == '1')) {
+?>
+<script type="text/javascript">
+//<![CDATA[
+ToggleDragDrop('pdflayout');
+//]]>
+</script>
+<?php
+ }
+ } // end if
+} // end if ($cfgRelation['pdfwork'])
+
+
+/**
+ * Displays the footer
+ */
+echo "\n";
+require_once './libraries/footer.inc.php';
+?>
diff --git a/pdf_schema.php b/pdf_schema.php
new file mode 100644
index 0000000000..0113cbaa45
--- /dev/null
+++ b/pdf_schema.php
@@ -0,0 +1,1396 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Contributed by Maxime Delorme and merged by lem9
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core scripts
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Settings for relation stuff
+ */
+require_once './libraries/relation.lib.php';
+require_once './libraries/transformations.lib.php';
+require_once './libraries/Index.class.php';
+
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Now in ./libraries/relation.lib.php we check for all tables
+ * that we need, but if we don't find them we are quiet about it
+ * so people can work without.
+ * This page is absolutely useless if you didn't set up your tables
+ * correctly, so it is a good place to see which tables we can and
+ * complain ;-)
+ */
+if (!$cfgRelation['pdfwork']) {
+ echo '<font color="red">' . $strError . '</font><br />' . "\n";
+ $url_to_goto = '<a href="' . $cfg['PmaAbsoluteUri'] . 'chk_rel.php?' . $url_query . '">';
+ echo sprintf($strRelationNotWorking, $url_to_goto, '</a>') . "\n";
+}
+
+/**
+ * Font used in PDF.
+ *
+ * @todo Make this configuratble (at least Sans/Serif).
+ */
+define('PMA_PDF_FONT', 'DejaVuSans');
+require_once './libraries/tcpdf/tcpdf.php';
+
+/**
+ * Extends the "FPDF" class and prepares the work
+ *
+ * @access public
+ * @see FPDF
+ */
+class PMA_PDF extends TCPDF {
+ /**
+ * Defines private properties
+ */
+ var $x_min;
+ var $y_min;
+ var $l_marg = 10;
+ var $t_marg = 10;
+ var $scale;
+ var $PMA_links;
+ var $Outlines = array();
+ var $def_outlines;
+ var $Alias = array();
+ var $widths;
+
+ public function getFh()
+ {
+ return $this->fh;
+ }
+
+ public function getFw()
+ {
+ return $this->fw;
+ }
+
+ public function setCMargin($c_margin)
+ {
+ $this->cMargin = $c_margin;
+ }
+
+ function SetAlias($name, $value)
+ {
+ $this->Alias[$name] = $value ;
+ }
+
+ function _putpages()
+ {
+ if (count($this->Alias) > 0) {
+ $nb = $this->page;
+ foreach ($this->Alias AS $alias => $value) {
+ for ($n = 1;$n <= $nb;$n++)
+ $this->pages[$n]=str_replace($alias, $value, $this->pages[$n]);
+ }
+ }
+ parent::_putpages();
+ }
+
+ /**
+ * Sets the scaling factor, defines minimum coordinates and margins
+ *
+ * @param double $ The scaling factor
+ * @param double $ The minimum X coordinate
+ * @param double $ The minimum Y coordinate
+ * @param double $ The left margin
+ * @param double $ The top margin
+ * @access public
+ */
+ function PMA_PDF_setScale($scale = 1, $x_min = 0, $y_min = 0, $l_marg = -1, $t_marg = -1)
+ {
+ $this->scale = $scale;
+ $this->x_min = $x_min;
+ $this->y_min = $y_min;
+ if ($this->l_marg != -1) {
+ $this->l_marg = $l_marg;
+ }
+ if ($this->t_marg != -1) {
+ $this->t_marg = $t_marg;
+ }
+ } // end of the "PMA_PDF_setScale" function
+ /**
+ * Outputs a scaled cell
+ *
+ * @param double $ The cell width
+ * @param double $ The cell height
+ * @param string $ The text to output
+ * @param mixed $ Whether to add borders or not
+ * @param integer $ Where to put the cursor once the output is done
+ * @param string $ Align mode
+ * @param integer $ Whether to fill the cell with a color or not
+ * @access public
+ * @see FPDF::Cell()
+ */
+ function PMA_PDF_cellScale($w, $h = 0, $txt = '', $border = 0, $ln = 0, $align = '', $fill = 0, $link = '')
+ {
+ $h = $h / $this->scale;
+ $w = $w / $this->scale;
+ $this->Cell($w, $h, $txt, $border, $ln, $align, $fill, $link);
+ } // end of the "PMA_PDF_cellScale" function
+ /**
+ * Draws a scaled line
+ *
+ * @param double $ The horizontal position of the starting point
+ * @param double $ The vertical position of the starting point
+ * @param double $ The horizontal position of the ending point
+ * @param double $ The vertical position of the ending point
+ * @access public
+ * @see FPDF::Line()
+ */
+ function PMA_PDF_lineScale($x1, $y1, $x2, $y2)
+ {
+ $x1 = ($x1 - $this->x_min) / $this->scale + $this->l_marg;
+ $y1 = ($y1 - $this->y_min) / $this->scale + $this->t_marg;
+ $x2 = ($x2 - $this->x_min) / $this->scale + $this->l_marg;
+ $y2 = ($y2 - $this->y_min) / $this->scale + $this->t_marg;
+ $this->Line($x1, $y1, $x2, $y2);
+ } // end of the "PMA_PDF_lineScale" function
+ /**
+ * Sets x and y scaled positions
+ *
+ * @param double $ The x position
+ * @param double $ The y position
+ * @access public
+ * @see FPDF::SetXY()
+ */
+ function PMA_PDF_setXyScale($x, $y)
+ {
+ $x = ($x - $this->x_min) / $this->scale + $this->l_marg;
+ $y = ($y - $this->y_min) / $this->scale + $this->t_marg;
+ $this->SetXY($x, $y);
+ } // end of the "PMA_PDF_setXyScale" function
+ /**
+ * Sets the X scaled positions
+ *
+ * @param double $ The x position
+ * @access public
+ * @see FPDF::SetX()
+ */
+ function PMA_PDF_setXScale($x)
+ {
+ $x = ($x - $this->x_min) / $this->scale + $this->l_marg;
+ $this->SetX($x);
+ } // end of the "PMA_PDF_setXScale" function
+ /**
+ * Sets the scaled font size
+ *
+ * @param double $ The font size (in points)
+ * @access public
+ * @see FPDF::SetFontSize()
+ */
+ function PMA_PDF_setFontSizeScale($size)
+ {
+ // Set font size in points
+ $size = $size / $this->scale;
+ $this->SetFontSize($size);
+ } // end of the "PMA_PDF_setFontSizeScale" function
+ /**
+ * Sets the scaled line width
+ *
+ * @param double $ The line width
+ * @access public
+ * @see FPDF::SetLineWidth()
+ */
+ function PMA_PDF_setLineWidthScale($width)
+ {
+ $width = $width / $this->scale;
+ $this->SetLineWidth($width);
+ } // end of the "PMA_PDF_setLineWidthScale" function
+ /**
+ * Displays an error message
+ *
+ * @param string $ the error mesage
+ * @global array the PMA configuration array
+ * @global integer the current server id
+ * @global string the current language
+ * @global string the charset to convert to
+ * @global string the current database name
+ * @global string the current charset
+ * @global string the current text direction
+ * @global string a localized string
+ * @global string an other localized string
+ * @access public
+ */
+ function PMA_PDF_die($error_message = '')
+ {
+ global $cfg;
+ global $server, $lang, $convcharset, $db;
+ global $charset, $text_dir, $strRunning, $strDatabase;
+
+ require_once './libraries/header.inc.php';
+
+ echo '<p><strong>PDF - ' . $GLOBALS['strError'] . '</strong></p>' . "\n";
+ if (!empty($error_message)) {
+ $error_message = htmlspecialchars($error_message);
+ }
+ echo '<p>' . "\n";
+ echo ' ' . $error_message . "\n";
+ echo '</p>' . "\n";
+
+ echo '<a href="db_structure.php?' . PMA_generate_common_url($db)
+ . '">' . $GLOBALS['strBack'] . '</a>';
+ echo "\n";
+
+ require_once './libraries/footer.inc.php';
+ } // end of the "PMA_PDF_die()" function
+ /**
+ * Aliases the "Error()" function from the FPDF class to the
+ * "PMA_PDF_die()" one
+ *
+ * @param string $ the error mesage
+ * @access public
+ * @see PMA_PDF_die
+ */
+ function Error($error_message = '')
+ {
+ $this->PMA_PDF_die($error_message);
+ } // end of the "Error()" method
+ function Header()
+ {
+ // $datefmt
+ // We only show this if we find something in the new pdf_pages table
+
+ // This function must be named "Header" to work with the FPDF library
+ global $cfgRelation, $db, $pdf_page_number, $with_doc;
+ if ($with_doc) {
+ $test_query = 'SELECT * FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND page_nr = \'' . $pdf_page_number . '\'';
+ $test_rs = PMA_query_as_cu($test_query);
+ $pages = @PMA_DBI_fetch_assoc($test_rs);
+ $this->SetFont('', 'B', 14);
+ $this->Cell(0, 6, ucfirst($pages['page_descr']), 'B', 1, 'C');
+ $this->SetFont('', '');
+ $this->Ln();
+ }
+ }
+ function Footer()
+ {
+ // This function must be named "Footer" to work with the FPDF library
+ global $with_doc;
+ if ($with_doc) {
+ $this->SetY(-15);
+ $this->SetFont('', '', 14);
+ $this->Cell(0, 6, $GLOBALS['strPageNumber'] . ' ' . $this->PageNo() . '/{nb}', 'T', 0, 'C');
+ $this->Cell(0, 6, PMA_localisedDate(), 0, 1, 'R');
+ $this->SetY(20);
+ }
+ }
+ function Bookmark($txt, $level = 0, $y = 0)
+ {
+ // Add a bookmark
+ $this->Outlines[0][] = $level;
+ $this->Outlines[1][] = $txt;
+ $this->Outlines[2][] = $this->page;
+ if ($y == -1) {
+ $y = $this->GetY();
+ }
+ $this->Outlines[3][] = round($this->hPt - $y * $this->k, 2);
+ }
+
+ function _putbookmarks()
+ {
+ if (count($this->Outlines) > 0) {
+ // Save object number
+ $memo_n = $this->n;
+ // Take the number of sub elements for an outline
+ $nb_outlines = sizeof($this->Outlines[0]);
+ $first_level = array();
+ $parent = array();
+ $parent[0] = 1;
+ for ($i = 0; $i < $nb_outlines; $i++) {
+ $level = $this->Outlines[0][$i];
+ $kids = 0;
+ $last = -1;
+ $prev = -1;
+ $next = -1;
+ if ($i > 0) {
+ $cursor = $i-1;
+ // Take the previous outline in the same level
+ while ($this->Outlines[0][$cursor] > $level && $cursor > 0)
+ $cursor--;
+ if ($this->Outlines[0][$cursor] == $level) {
+ $prev = $cursor;
+ }
+ }
+ if ($i < $nb_outlines-1) {
+ $cursor = $i + 1;
+ while (isset($this->Outlines[0][$cursor]) && $this->Outlines[0][$cursor] > $level) {
+ // Take the immediate kid in level + 1
+ if ($this->Outlines[0][$cursor] == $level + 1) {
+ $kids++;
+ $last = $cursor;
+ }
+ $cursor++;
+ }
+ $cursor = $i + 1;
+ // Take the next outline in the same level
+ while ($this->Outlines[0][$cursor] > $level && ($cursor + 1 < sizeof($this->Outlines[0])))
+ $cursor++;
+ if ($this->Outlines[0][$cursor] == $level) {
+ $next = $cursor;
+ }
+ }
+ $this->_newobj();
+ $parent[$level + 1] = $this->n;
+ if ($level == 0) {
+ $first_level[] = $this->n;
+ }
+ $this->_out('<<');
+ $this->_out('/Title (' . $this->Outlines[1][$i] . ')');
+ $this->_out('/Parent ' . $parent[$level] . ' 0 R');
+ if ($prev != -1) {
+ $this->_out('/Prev ' . ($memo_n + $prev + 1) . ' 0 R');
+ }
+ if ($next != -1) {
+ $this->_out('/Next ' . ($this->n + $next - $i) . ' 0 R');
+ }
+ $this->_out('/Dest [' . (1 + (2 * $this->Outlines[2][$i])) . ' 0 R /XYZ null ' . $this->Outlines[3][$i] . ' null]');
+ if ($kids > 0) {
+ $this->_out('/First ' . ($this->n + 1) . ' 0 R');
+ $this->_out('/Last ' . ($this->n + $last - $i) . ' 0 R');
+ $this->_out('/Count -' . $kids);
+ }
+ $this->_out('>>');
+ $this->_out('endobj');
+ }
+ // First page of outlines
+ $this->_newobj();
+ $this->def_outlines = $this->n;
+ $this->_out('<<');
+ $this->_out('/Type');
+ $this->_out('/Outlines');
+ $this->_out('/First ' . $first_level[0] . ' 0 R');
+ $this->_out('/Last ' . $first_level[sizeof($first_level)-1] . ' 0 R');
+ $this->_out('/Count ' . sizeof($first_level));
+ $this->_out('>>');
+ $this->_out('endobj');
+ }
+ }
+
+ function _putresources()
+ {
+ parent::_putresources();
+ $this->_putbookmarks();
+ }
+
+ function _putcatalog()
+ {
+ parent::_putcatalog();
+ if (count($this->Outlines) > 0) {
+ $this->_out('/Outlines ' . $this->def_outlines . ' 0 R');
+ $this->_out('/PageMode /UseOutlines');
+ }
+ }
+ function SetWidths($w)
+ {
+ // column widths
+ $this->widths = $w;
+ }
+
+ function Row($data, $links)
+ {
+ // line height
+ $nb = 0;
+ $data_cnt = count($data);
+ for ($i = 0;$i < $data_cnt;$i++)
+ $nb = max($nb, $this->NbLines($this->widths[$i], $data[$i]));
+ $il = $this->FontSize;
+ $h = ($il + 1) * $nb;
+ // page break if necessary
+ $this->CheckPageBreak($h);
+ // draw the cells
+ $data_cnt = count($data);
+ for ($i = 0;$i < $data_cnt;$i++) {
+ $w = $this->widths[$i];
+ // save current position
+ $x = $this->GetX();
+ $y = $this->GetY();
+ // draw the border
+ $this->Rect($x, $y, $w, $h);
+ if (isset($links[$i])) {
+ $this->Link($x, $y, $w, $h, $links[$i]);
+ }
+ // print text
+ $this->MultiCell($w, $il + 1, $data[$i], 0, 'L');
+ // go to right side
+ $this->SetXY($x + $w, $y);
+ }
+ // go to line
+ $this->Ln($h);
+ }
+
+ function CheckPageBreak($h)
+ {
+ // if height h overflows, manual page break
+ if ($this->GetY() + $h > $this->PageBreakTrigger) {
+ $this->AddPage($this->CurOrientation);
+ }
+ }
+
+ function NbLines($w, $txt)
+ {
+ // compute number of lines used by a multicell of width w
+ $cw = &$this->CurrentFont['cw'];
+ if ($w == 0) {
+ $w = $this->w - $this->rMargin - $this->x;
+ }
+ $wmax = ($w-2 * $this->cMargin) * 1000 / $this->FontSize;
+ $s = str_replace("\r", '', $txt);
+ $nb = strlen($s);
+ if ($nb > 0 and $s[$nb-1] == "\n") {
+ $nb--;
+ }
+ $sep = -1;
+ $i = 0;
+ $j = 0;
+ $l = 0;
+ $nl = 1;
+ while ($i < $nb) {
+ $c = $s[$i];
+ if ($c == "\n") {
+ $i++;
+ $sep = -1;
+ $j = $i;
+ $l = 0;
+ $nl++;
+ continue;
+ }
+ if ($c == ' ') {
+ $sep = $i;
+ }
+ $l += isset($cw[ord($c)])?$cw[ord($c)]:0 ;
+ if ($l > $wmax) {
+ if ($sep == -1) {
+ if ($i == $j) {
+ $i++;
+ }
+ } else {
+ $i = $sep + 1;
+ }
+ $sep = -1;
+ $j = $i;
+ $l = 0;
+ $nl++;
+ } else {
+ $i++;
+ }
+ }
+ return $nl;
+ }
+} // end of the "PMA_PDF" class
+
+
+/**
+ * Draws tables schema
+ *
+ * @access private
+ * @see PMA_RT
+ */
+class PMA_RT_Table {
+ /**
+ * Defines private properties
+ */
+ var $nb_fiels;
+ var $table_name;
+ var $width = 0;
+ var $height;
+ var $fields = array();
+ var $height_cell = 6;
+ var $x, $y;
+ var $primary = array();
+
+ /**
+ * Sets the width of the table
+ *
+ * @param integer $ The font size
+ * @global object The current PDF document
+ * @access private
+ * @see PMA_PDF
+ */
+ function PMA_RT_Table_setWidth($ff)
+ {
+ // this looks buggy to me... does it really work if
+ // there are fields that require wider cells than the name of the table?
+ global $pdf;
+
+ foreach ($this->fields AS $field) {
+ $this->width = max($this->width, $pdf->GetStringWidth($field));
+ }
+ $this->width += $pdf->GetStringWidth(' ');
+ $pdf->SetFont($ff, 'B');
+ $this->width = max($this->width, $pdf->GetStringWidth(' ' . $this->table_name));
+ $pdf->SetFont($ff, '');
+ } // end of the "PMA_RT_Table_setWidth()" method
+ /**
+ * Sets the height of the table
+ *
+ * @access private
+ */
+ function PMA_RT_Table_setHeight()
+ {
+ $this->height = (count($this->fields) + 1) * $this->height_cell;
+ } // end of the "PMA_RT_Table_setHeight()" method
+ /**
+ * Do draw the table
+ *
+ * @param boolean $ Whether to display table position or not
+ * @param integer $ The font size
+ * @param boolean $ Whether to display color
+ * @param integer $ The max. with among tables
+ * @global object The current PDF document
+ * @access private
+ * @see PMA_PDF
+ */
+ function PMA_RT_Table_draw($show_info, $ff, $setcolor = 0)
+ {
+ global $pdf, $with_doc;
+
+ $pdf->PMA_PDF_setXyScale($this->x, $this->y);
+ $pdf->SetFont($ff, 'B');
+ if ($setcolor) {
+ $pdf->SetTextColor(200);
+ $pdf->SetFillColor(0, 0, 128);
+ }
+ if ($with_doc) {
+ $pdf->SetLink($pdf->PMA_links['RT'][$this->table_name]['-'], -1);
+ } else {
+ $pdf->PMA_links['doc'][$this->table_name]['-'] = '';
+ }
+
+ if ($show_info) {
+ $pdf->PMA_PDF_cellScale($this->width, $this->height_cell, sprintf('%.0f', $this->width) . 'x' . sprintf('%.0f', $this->height) . ' ' . $this->table_name, 1, 1, 'C', $setcolor, $pdf->PMA_links['doc'][$this->table_name]['-']);
+ } else {
+ $pdf->PMA_PDF_cellScale($this->width, $this->height_cell, $this->table_name, 1, 1, 'C', $setcolor, $pdf->PMA_links['doc'][$this->table_name]['-']);
+ }
+ $pdf->PMA_PDF_setXScale($this->x);
+ $pdf->SetFont($ff, '');
+ $pdf->SetTextColor(0);
+ $pdf->SetFillColor(255);
+
+ foreach ($this->fields AS $field) {
+ // loic1 : PHP3 fix
+ // if (in_array($field, $this->primary)) {
+ if ($setcolor) {
+ if (in_array($field, $this->primary)) {
+ $pdf->SetFillColor(215, 121, 123);
+ }
+ if ($field == $this->displayfield) {
+ $pdf->SetFillColor(142, 159, 224);
+ }
+ }
+ if ($with_doc) {
+ $pdf->SetLink($pdf->PMA_links['RT'][$this->table_name][$field], -1);
+ } else {
+ $pdf->PMA_links['doc'][$this->table_name][$field] = '';
+ }
+
+ $pdf->PMA_PDF_cellScale($this->width, $this->height_cell, ' ' . $field, 1, 1, 'L', $setcolor, $pdf->PMA_links['doc'][$this->table_name][$field]);
+ $pdf->PMA_PDF_setXScale($this->x);
+ $pdf->SetFillColor(255);
+ } // end while
+ /*if ($pdf->PageNo() > 1) {
+ $pdf->PMA_PDF_die($GLOBALS['strScaleFactorSmall']);
+ } */
+ } // end of the "PMA_RT_Table_draw()" method
+ /**
+ * The "PMA_RT_Table" constructor
+ *
+ * @param string $ The table name
+ * @param integer $ The font size
+ * @param integer $ The max. with among tables
+ * @global object The current PDF document
+ * @global integer The current page number (from the
+ * $cfg['Servers'][$i]['table_coords'] table)
+ * @global array The relations settings
+ * @global string The current db name
+ * @access private
+ * @see PMA_PDF, PMA_RT_Table::PMA_RT_Table_setWidth,
+ PMA_RT_Table::PMA_RT_Table_setHeight
+ */
+ function __construct($table_name, $ff, &$same_wide_width, $show_keys)
+ {
+ global $pdf, $pdf_page_number, $cfgRelation, $db;
+
+ $this->table_name = $table_name;
+ $sql = 'DESCRIBE ' . PMA_backquote($table_name);
+ $result = PMA_DBI_try_query($sql, null, PMA_DBI_QUERY_STORE);
+ if (!$result || !PMA_DBI_num_rows($result)) {
+ $pdf->PMA_PDF_die(sprintf($GLOBALS['strPdfInvalidTblName'], $table_name));
+ }
+ // load fields
+ //check to see if it will load all fields or only the foreign keys
+ if ($show_keys) {
+ $indexes = PMA_Index::getFromTable($this->table_name, $db);
+ $all_columns = array();
+ foreach ($indexes as $index) {
+ $all_columns = array_merge($all_columns, array_flip(array_keys($index->getColumns())));
+ }
+ $this->fields = array_keys($all_columns);
+ } else {
+ while ($row = PMA_DBI_fetch_row($result)) {
+ $this->fields[] = $row[0];
+ }
+ }
+ // height and width
+ $this->PMA_RT_Table_setWidth($ff);
+ $this->PMA_RT_Table_setHeight();
+ if ($same_wide_width < $this->width) {
+ $same_wide_width = $this->width;
+ }
+ // x and y
+ $sql = 'SELECT x, y FROM '
+ . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table_name) . '\''
+ . ' AND pdf_page_number = ' . $pdf_page_number;
+ $result = PMA_query_as_cu($sql, false, PMA_DBI_QUERY_STORE);
+
+ if (!$result || !PMA_DBI_num_rows($result)) {
+ $pdf->PMA_PDF_die(sprintf($GLOBALS['strConfigureTableCoord'], $table_name));
+ }
+ list($this->x, $this->y) = PMA_DBI_fetch_row($result);
+ $this->x = (double) $this->x;
+ $this->y = (double) $this->y;
+ // displayfield
+ $this->displayfield = PMA_getDisplayField($db, $table_name);
+ // index
+ $result = PMA_DBI_query('SHOW INDEX FROM ' . PMA_backquote($table_name) . ';', null, PMA_DBI_QUERY_STORE);
+ if (PMA_DBI_num_rows($result) > 0) {
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ if ($row['Key_name'] == 'PRIMARY') {
+ $this->primary[] = $row['Column_name'];
+ }
+ }
+ } // end if
+ } // end of the "PMA_RT_Table()" method
+} // end class "PMA_RT_Table"
+/**
+ * Draws relation links
+ *
+ * @access private
+ * @see PMA_RT
+ */
+class PMA_RT_Relation {
+ /**
+ * Defines private properties
+ */
+ var $x_src, $y_src;
+ var $src_dir ;
+ var $dest_dir;
+ var $x_dest, $y_dest;
+ var $w_tick = 5;
+
+ /**
+ * Gets arrows coordinates
+ *
+ * @param string $ The current table name
+ * @param string $ The relation column name
+ * @return array Arrows coordinates
+ * @access private
+ */
+ function PMA_RT_Relation_getXy($table, $column)
+ {
+ $pos = array_search($column, $table->fields);
+ // x_left, x_right, y
+ return array($table->x, $table->x + + $table->width, $table->y + ($pos + 1.5) * $table->height_cell);
+ } // end of the "PMA_RT_Relation_getXy()" method
+ /**
+ * Do draws relation links
+ *
+ * @param boolean $ Whether to use one color per relation or not
+ * @param integer $ The id of the link to draw
+ * @global object The current PDF document
+ * @access private
+ * @see PMA_PDF
+ */
+ function PMA_RT_Relation_draw($change_color, $i)
+ {
+ global $pdf;
+
+ if ($change_color) {
+ $d = $i % 6;
+ $j = ($i - $d) / 6;
+ $j = $j % 4;
+ $j++;
+ $case = array(
+ array(1, 0, 0),
+ array(0, 1, 0),
+ array(0, 0, 1),
+ array(1, 1, 0),
+ array(1, 0, 1),
+ array(0, 1, 1)
+ );
+ list ($a, $b, $c) = $case[$d];
+ $e = (1 - ($j - 1) / 6);
+ $pdf->SetDrawColor($a * 255 * $e, $b * 255 * $e, $c * 255 * $e);
+ } else {
+ $pdf->SetDrawColor(0);
+ } // end if... else...
+ $pdf->PMA_PDF_setLineWidthScale(0.2);
+ $pdf->PMA_PDF_lineScale($this->x_src, $this->y_src, $this->x_src + $this->src_dir * $this->w_tick, $this->y_src);
+ $pdf->PMA_PDF_lineScale($this->x_dest + $this->dest_dir * $this->w_tick, $this->y_dest, $this->x_dest, $this->y_dest);
+ $pdf->PMA_PDF_setLineWidthScale(0.1);
+ $pdf->PMA_PDF_lineScale($this->x_src + $this->src_dir * $this->w_tick, $this->y_src, $this->x_dest + $this->dest_dir * $this->w_tick, $this->y_dest);
+ // arrow
+ $root2 = 2 * sqrt(2);
+ $pdf->PMA_PDF_lineScale($this->x_src + $this->src_dir * $this->w_tick * 0.75, $this->y_src, $this->x_src + $this->src_dir * (0.75 - 1 / $root2) * $this->w_tick, $this->y_src + $this->w_tick / $root2);
+ $pdf->PMA_PDF_lineScale($this->x_src + $this->src_dir * $this->w_tick * 0.75, $this->y_src, $this->x_src + $this->src_dir * (0.75 - 1 / $root2) * $this->w_tick, $this->y_src - $this->w_tick / $root2);
+
+ $pdf->PMA_PDF_lineScale($this->x_dest + $this->dest_dir * $this->w_tick / 2, $this->y_dest, $this->x_dest + $this->dest_dir * (0.5 + 1 / $root2) * $this->w_tick, $this->y_dest + $this->w_tick / $root2);
+ $pdf->PMA_PDF_lineScale($this->x_dest + $this->dest_dir * $this->w_tick / 2, $this->y_dest, $this->x_dest + $this->dest_dir * (0.5 + 1 / $root2) * $this->w_tick, $this->y_dest - $this->w_tick / $root2);
+ $pdf->SetDrawColor(0);
+ } // end of the "PMA_RT_Relation_draw()" method
+ /**
+ * The "PMA_RT_Relation" constructor
+ *
+ * @param string $ The master table name
+ * @param string $ The relation field in the master table
+ * @param string $ The foreign table name
+ * @param string $ The relation field in the foreign table
+ * @access private
+ * @see PMA_RT_Relation::PMA_RT_Relation_getXy
+ */
+ function __construct($master_table, $master_field, $foreign_table, $foreign_field)
+ {
+ $src_pos = $this->PMA_RT_Relation_getXy($master_table, $master_field);
+ $dest_pos = $this->PMA_RT_Relation_getXy($foreign_table, $foreign_field);
+ $src_left = $src_pos[0] - $this->w_tick;
+ $src_right = $src_pos[1] + $this->w_tick;
+ $dest_left = $dest_pos[0] - $this->w_tick;
+ $dest_right = $dest_pos[1] + $this->w_tick;
+
+ $d1 = abs($src_left - $dest_left);
+ $d2 = abs($src_right - $dest_left);
+ $d3 = abs($src_left - $dest_right);
+ $d4 = abs($src_right - $dest_right);
+ $d = min($d1, $d2, $d3, $d4);
+
+ if ($d == $d1) {
+ $this->x_src = $src_pos[0];
+ $this->src_dir = -1;
+ $this->x_dest = $dest_pos[0];
+ $this->dest_dir = -1;
+ } elseif ($d == $d2) {
+ $this->x_src = $src_pos[1];
+ $this->src_dir = 1;
+ $this->x_dest = $dest_pos[0];
+ $this->dest_dir = -1;
+ } elseif ($d == $d3) {
+ $this->x_src = $src_pos[0];
+ $this->src_dir = -1;
+ $this->x_dest = $dest_pos[1];
+ $this->dest_dir = 1;
+ } else {
+ $this->x_src = $src_pos[1];
+ $this->src_dir = 1;
+ $this->x_dest = $dest_pos[1];
+ $this->dest_dir = 1;
+ }
+ $this->y_src = $src_pos[2];
+ $this->y_dest = $dest_pos[2];
+ } // end of the "PMA_RT_Relation()" method
+} // end of the "PMA_RT_Relation" class
+/**
+ * Draws and send the database schema
+ *
+ * @access public
+ * @see PMA_PDF
+ */
+class PMA_RT {
+ /**
+ * Defines private properties
+ */
+ var $tables = array();
+ var $relations = array();
+ var $ff = PMA_PDF_FONT;
+ var $x_max = 0;
+ var $y_max = 0;
+ var $scale;
+ var $x_min = 100000;
+ var $y_min = 100000;
+ var $t_marg = 10;
+ var $b_marg = 10;
+ var $l_marg = 10;
+ var $r_marg = 10;
+ var $tablewidth;
+ var $same_wide = 0;
+
+ /**
+ * Sets X and Y minimum and maximum for a table cell
+ *
+ * @param string $ The table name
+ * @access private
+ */
+ function PMA_RT_setMinMax($table)
+ {
+ $this->x_max = max($this->x_max, $table->x + $table->width);
+ $this->y_max = max($this->y_max, $table->y + $table->height);
+ $this->x_min = min($this->x_min, $table->x);
+ $this->y_min = min($this->y_min, $table->y);
+ } // end of the "PMA_RT_setMinMax()" method
+ /**
+ * Defines relation objects
+ *
+ * @param string $ The master table name
+ * @param string $ The relation field in the master table
+ * @param string $ The foreign table name
+ * @param string $ The relation field in the foreign table
+ * @access private
+ * @see PMA_RT_setMinMax
+ */
+ function PMA_RT_addRelation($master_table, $master_field, $foreign_table, $foreign_field)
+ {
+ if (!isset($this->tables[$master_table])) {
+ $this->tables[$master_table] = new PMA_RT_Table($master_table, $this->ff, $this->tablewidth);
+ $this->PMA_RT_setMinMax($this->tables[$master_table]);
+ }
+ if (!isset($this->tables[$foreign_table])) {
+ $this->tables[$foreign_table] = new PMA_RT_Table($foreign_table, $this->ff, $this->tablewidth);
+ $this->PMA_RT_setMinMax($this->tables[$foreign_table]);
+ }
+ $this->relations[] = new PMA_RT_Relation($this->tables[$master_table], $master_field, $this->tables[$foreign_table], $foreign_field);
+ } // end of the "PMA_RT_addRelation()" method
+ /**
+ * Draws the grid
+ *
+ * @global object the current PMA_PDF instance
+ * @access private
+ * @see PMA_PDF
+ */
+ function PMA_RT_strokeGrid()
+ {
+ global $pdf;
+
+ $pdf->SetMargins(0, 0);
+ $pdf->SetDrawColor(200, 200, 200);
+ // Draws horizontal lines
+ for ($l = 0; $l < 21; $l++) {
+ $pdf->line(0, $l * 10, $pdf->fh, $l * 10);
+ // Avoid duplicates
+ if ($l > 0) {
+ $pdf->SetXY(0, $l * 10);
+ $label = (string) sprintf('%.0f', ($l * 10 - $this->t_marg) * $this->scale + $this->y_min);
+ $pdf->Cell(5, 5, ' ' . $label);
+ } // end if
+ } // end for
+ // Draws vertical lines
+ for ($j = 0; $j < 30 ;$j++) {
+ $pdf->line($j * 10, 0, $j * 10, $pdf->fw);
+ $pdf->SetXY($j * 10, 0);
+ $label = (string) sprintf('%.0f', ($j * 10 - $this->l_marg) * $this->scale + $this->x_min);
+ $pdf->Cell(5, 7, $label);
+ } // end for
+ } // end of the "PMA_RT_strokeGrid()" method
+ /**
+ * Draws relation arrows
+ *
+ * @param boolean $ Whether to use one color per relation or not
+ * @access private
+ * @see PMA_RT_Relation::PMA_RT_Relation_draw()
+ */
+ function PMA_RT_drawRelations($change_color)
+ {
+ $i = 0;
+ foreach ($this->relations AS $relation) {
+ $relation->PMA_RT_Relation_draw($change_color, $i);
+ $i++;
+ } // end while
+ } // end of the "PMA_RT_drawRelations()" method
+ /**
+ * Draws tables
+ *
+ * @param boolean $ Whether to display table position or not
+ * @access private
+ * @see PMA_RT_Table::PMA_RT_Table_draw()
+ */
+ function PMA_RT_drawTables($show_info, $draw_color = 0)
+ {
+ foreach ($this->tables AS $table) {
+ $table->PMA_RT_Table_draw($show_info, $this->ff, $draw_color);
+ }
+ } // end of the "PMA_RT_drawTables()" method
+ /**
+ * Ouputs the PDF document to a file
+ *
+ * @global object The current PDF document
+ * @global string The current database name
+ * @global integer The current page number (from the
+ * $cfg['Servers'][$i]['table_coords'] table)
+ * @access private
+ * @see PMA_PDF
+ */
+ function PMA_RT_showRt()
+ {
+ global $pdf, $db, $pdf_page_number, $cfgRelation;
+
+ $pdf->SetFontSize(14);
+ $pdf->SetLineWidth(0.2);
+ $pdf->SetDisplayMode('fullpage');
+ // Get the name of this pdfpage to use as filename (Mike Beck)
+ $_name_sql = 'SELECT page_descr FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages'])
+ . ' WHERE page_nr = ' . $pdf_page_number;
+ $_name_rs = PMA_query_as_cu($_name_sql);
+ if ($_name_rs) {
+ $_name_row = PMA_DBI_fetch_row($_name_rs);
+ $filename = $_name_row[0] . '.pdf';
+ }
+ // i don't know if there is a chance for this to happen, but rather be on the safe side:
+ if (empty($filename)) {
+ $filename = $pdf_page_number . '.pdf';
+ }
+ // $pdf->Output($db . '_' . $filename, TRUE);
+ $pdf->Output($db . '_' . $filename, 'I'); // destination: Inline
+ } // end of the "PMA_RT_showRt()" method
+ /**
+ * The "PMA_RT" constructor
+ *
+ * @param mixed $ The scaling factor
+ * @param integer $ The page number to draw (from the
+ * $cfg['Servers'][$i]['table_coords'] table)
+ * @param boolean $ Whether to display table position or not
+ * @param boolean $ Was originally whether to use one color per
+ * relation or not, now enables/disables color
+ * everywhere, due to some problems printing with color
+ * @param boolean $ Whether to draw grids or not
+ * @param boolean $ Whether all tables should have the same width or not
+ * @param boolean $ Wheter to show all field or only the keys
+ * @global object The current PDF document
+ * @global string The current db name
+ * @global array The relations settings
+ * @access private
+ * @see PMA_PDF
+ */
+ function __construct($which_rel, $show_info = 0, $change_color = 0, $show_grid = 0, $all_tab_same_wide = 0, $orientation = 'L', $paper = 'A4', $show_keys = 0)
+ {
+ global $pdf, $db, $cfgRelation, $with_doc;
+
+ $this->same_wide = $all_tab_same_wide;
+ // Initializes a new document
+ $pdf = new PMA_PDF('L', 'mm', $paper);
+ $pdf->SetTitle(sprintf($GLOBALS['strPdfDbSchema'], $GLOBALS['db'], $which_rel));
+ $pdf->setCMargin(0);
+ $pdf->Open();
+ $pdf->SetAuthor('phpMyAdmin ' . PMA_VERSION);
+ $pdf->AliasNbPages();
+ $pdf->AddFont('DejaVuSans', '', 'dejavusans.php');
+ $pdf->AddFont('DejaVuSans', 'B', 'dejavusansb.php');
+ $pdf->AddFont('DejaVuSerif', '', 'dejavuserif.php');
+ $pdf->AddFont('DejaVuSerif', 'B', 'dejavuserifb.php');
+ $this->ff = PMA_PDF_FONT;
+ $pdf->SetFont($this->ff, '', 14);
+ $pdf->SetAutoPageBreak('auto');
+ // Gets tables on this page
+ $tab_sql = 'SELECT table_name FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND pdf_page_number = ' . $which_rel;
+ $tab_rs = PMA_query_as_cu($tab_sql, null, PMA_DBI_QUERY_STORE);
+ if (!$tab_rs || !PMA_DBI_num_rows($tab_rs) > 0) {
+ $pdf->PMA_PDF_die($GLOBALS['strPdfNoTables']);
+ // die('No tables');
+ } while ($curr_table = @PMA_DBI_fetch_assoc($tab_rs)) {
+ $alltables[] = PMA_sqlAddslashes($curr_table['table_name']);
+ // $intable = '\'' . implode('\', \'', $alltables) . '\'';
+ }
+ // make doc //
+ if ($with_doc) {
+ $pdf->SetAutoPageBreak('auto', 15);
+ $pdf->setCMargin(1);
+ PMA_RT_DOC($alltables);
+ $pdf->SetAutoPageBreak('auto');
+ $pdf->setCMargin(0);
+ }
+
+ $pdf->Addpage();
+
+ if ($with_doc) {
+ $pdf->SetLink($pdf->PMA_links['RT']['-'], -1);
+ $pdf->Bookmark($GLOBALS['strRelationalSchema']);
+ $pdf->SetAlias('{00}', $pdf->PageNo()) ;
+ $this->t_marg = 18;
+ $this->b_marg = 18;
+ }
+
+ /* snip */
+
+ foreach ($alltables AS $table) {
+ if (!isset($this->tables[$table])) {
+ $this->tables[$table] = new PMA_RT_Table($table, $this->ff, $this->tablewidth, $show_keys);
+ }
+
+ if ($this->same_wide) {
+ $this->tables[$table]->width = $this->tablewidth;
+ }
+ $this->PMA_RT_setMinMax($this->tables[$table]);
+ }
+ // Defines the scale factor
+ $this->scale = ceil(
+ max(
+ ($this->x_max - $this->x_min) / ($pdf->getFh() - $this->r_marg - $this->l_marg),
+ ($this->y_max - $this->y_min) / ($pdf->getFw() - $this->t_marg - $this->b_marg))
+ * 100) / 100;
+
+ $pdf->PMA_PDF_setScale($this->scale, $this->x_min, $this->y_min, $this->l_marg, $this->t_marg);
+ // Builds and save the PDF document
+ $pdf->PMA_PDF_setLineWidthScale(0.1);
+
+ if ($show_grid) {
+ $pdf->SetFontSize(10);
+ $this->PMA_RT_strokeGrid();
+ }
+ $pdf->PMA_PDF_setFontSizeScale(14);
+ // $sql = 'SELECT * FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ // . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\' '
+ // . ' AND foreign_db = \'' . PMA_sqlAddslashes($db) . '\' '
+ // . ' AND master_table IN (' . $intable . ')'
+ // . ' AND foreign_table IN (' . $intable . ')';
+ // $result = PMA_query_as_cu($sql);
+
+ // lem9:
+ // previous logic was checking master tables and foreign tables
+ // but I think that looping on every table of the pdf page as a master
+ // and finding its foreigns is OK (then we can support innodb)
+ $seen_a_relation = false;
+ foreach ($alltables AS $one_table) {
+ $exist_rel = PMA_getForeigners($db, $one_table, '', 'both');
+ if ($exist_rel) {
+ $seen_a_relation = true;
+ foreach ($exist_rel AS $master_field => $rel) {
+ // put the foreign table on the schema only if selected
+ // by the user
+ // (do not use array_search() because we would have to
+ // to do a === FALSE and this is not PHP3 compatible)
+ if (in_array($rel['foreign_table'], $alltables)) {
+ $this->PMA_RT_addRelation($one_table, $master_field, $rel['foreign_table'], $rel['foreign_field']);
+ }
+ } // end while
+ } // end if
+ } // end while
+ // loic1: also show tables without relations
+ // $norelations = TRUE;
+ // if ($result && PMA_DBI_num_rows($result) > 0) {
+ // $norelations = FALSE;
+ // while ($row = PMA_DBI_fetch_assoc($result)) {
+ // $this->PMA_RT_addRelation($row['master_table'], $row['master_field'], $row['foreign_table'], $row['foreign_field']);
+ // }
+ // }
+ // if ($norelations == FALSE) {
+ if ($seen_a_relation) {
+ $this->PMA_RT_drawRelations($change_color);
+ }
+
+ $this->PMA_RT_drawTables($show_info, $change_color);
+
+ $this->PMA_RT_showRt();
+ } // end of the "PMA_RT()" method
+} // end of the "PMA_RT" class
+
+function PMA_RT_DOC($alltables)
+{
+ global $db, $pdf, $orientation, $paper;
+ // TOC
+ $pdf->addpage($GLOBALS['orientation']);
+ $pdf->Cell(0, 9, $GLOBALS['strTableOfContents'], 1, 0, 'C');
+ $pdf->Ln(15);
+ $i = 1;
+ foreach ($alltables AS $table) {
+ $pdf->PMA_links['doc'][$table]['-'] = $pdf->AddLink();
+ $pdf->SetX(10);
+ // $pdf->Ln(1);
+ $pdf->Cell(0, 6, $GLOBALS['strPageNumber'] . ' {' . sprintf("%02d", $i) . '}', 0, 0, 'R', 0, $pdf->PMA_links['doc'][$table]['-']);
+ $pdf->SetX(10);
+ $pdf->Cell(0, 6, $i . ' ' . $table, 0, 1, 'L', 0, $pdf->PMA_links['doc'][$table]['-']);
+ // $pdf->Ln(1);
+ $result = PMA_DBI_query('SHOW FIELDS FROM ' . PMA_backquote($table) . ';');
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ $pdf->SetX(20);
+ $field_name = $row['Field'];
+ $pdf->PMA_links['doc'][$table][$field_name] = $pdf->AddLink();
+ // $pdf->Cell(0, 6, $field_name,0,1,'L',0, $pdf->PMA_links['doc'][$table][$field_name]);
+ }
+ $lasttable = $table;
+ $i++;
+ }
+ $pdf->PMA_links['RT']['-'] = $pdf->AddLink();
+ $pdf->SetX(10);
+ $pdf->Cell(0, 6, $GLOBALS['strPageNumber'] . ' {00}', 0, 0, 'R', 0, $pdf->PMA_links['doc'][$lasttable]['-']);
+ $pdf->SetX(10);
+ $pdf->Cell(0, 6, $i . ' ' . $GLOBALS['strRelationalSchema'], 0, 1, 'L', 0, $pdf->PMA_links['RT']['-']);
+ $z = 0;
+ foreach ($alltables AS $table) {
+ $z++;
+ $pdf->addpage($GLOBALS['orientation']);
+ $pdf->Bookmark($table);
+ $pdf->SetAlias('{' . sprintf("%02d", $z) . '}', $pdf->PageNo()) ;
+ $pdf->PMA_links['RT'][$table]['-'] = $pdf->AddLink();
+ $pdf->SetLink($pdf->PMA_links['doc'][$table]['-'], -1);
+ $pdf->SetFont('', 'B', 18);
+ $pdf->Cell(0, 8, $z . ' ' . $table, 1, 1, 'C', 0, $pdf->PMA_links['RT'][$table]['-']);
+ $pdf->SetFont('', '', 8);
+ $pdf->ln();
+
+ $cfgRelation = PMA_getRelationsParam();
+ $comments = PMA_getComments($db, $table);
+ if ($cfgRelation['mimework']) {
+ $mime_map = PMA_getMIME($db, $table, true);
+ }
+
+ /**
+ * Gets table informations
+ */
+ $result = PMA_DBI_query('SHOW TABLE STATUS LIKE \'' . PMA_sqlAddslashes($table, true) . '\';', null, PMA_DBI_QUERY_STORE);
+ $showtable = PMA_DBI_fetch_assoc($result);
+ $num_rows = (isset($showtable['Rows']) ? $showtable['Rows'] : 0);
+ $show_comment = (isset($showtable['Comment']) ? $showtable['Comment'] : '');
+ $create_time = (isset($showtable['Create_time']) ? PMA_localisedDate(strtotime($showtable['Create_time'])) : '');
+ $update_time = (isset($showtable['Update_time']) ? PMA_localisedDate(strtotime($showtable['Update_time'])) : '');
+ $check_time = (isset($showtable['Check_time']) ? PMA_localisedDate(strtotime($showtable['Check_time'])) : '');
+
+ PMA_DBI_free_result($result);
+ unset($result);
+
+ /**
+ * Gets table keys and retains them
+ */
+ $result = PMA_DBI_query('SHOW KEYS FROM ' . PMA_backquote($table) . ';');
+ $primary = '';
+ $indexes = array();
+ $lastIndex = '';
+ $indexes_info = array();
+ $indexes_data = array();
+ $pk_array = array(); // will be use to emphasis prim. keys in the table
+ // view
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ // Backups the list of primary keys
+ if ($row['Key_name'] == 'PRIMARY') {
+ $primary .= $row['Column_name'] . ', ';
+ $pk_array[$row['Column_name']] = 1;
+ }
+ // Retains keys informations
+ if ($row['Key_name'] != $lastIndex) {
+ $indexes[] = $row['Key_name'];
+ $lastIndex = $row['Key_name'];
+ }
+ $indexes_info[$row['Key_name']]['Sequences'][] = $row['Seq_in_index'];
+ $indexes_info[$row['Key_name']]['Non_unique'] = $row['Non_unique'];
+ if (isset($row['Cardinality'])) {
+ $indexes_info[$row['Key_name']]['Cardinality'] = $row['Cardinality'];
+ }
+ // I don't know what does following column mean....
+ // $indexes_info[$row['Key_name']]['Packed'] = $row['Packed'];
+ $indexes_info[$row['Key_name']]['Comment'] = $row['Comment'];
+
+ $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Column_name'] = $row['Column_name'];
+ if (isset($row['Sub_part'])) {
+ $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Sub_part'] = $row['Sub_part'];
+ }
+ } // end while
+ if ($result) {
+ PMA_DBI_free_result($result);
+ }
+
+ /**
+ * Gets fields properties
+ */
+ $result = PMA_DBI_query('SHOW FIELDS FROM ' . PMA_backquote($table) . ';', null, PMA_DBI_QUERY_STORE);
+ $fields_cnt = PMA_DBI_num_rows($result);
+ // Check if we can use Relations (Mike Beck)
+ if (!empty($cfgRelation['relation'])) {
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+
+ if (count($res_rel) > 0) {
+ $have_rel = true;
+ } else {
+ $have_rel = false;
+ }
+ } else {
+ $have_rel = false;
+ } // end if
+ /**
+ * Displays the comments of the table if MySQL >= 3.23
+ */
+
+ $break = false;
+ if (!empty($show_comment)) {
+ $pdf->Cell(0, 3, $GLOBALS['strTableComments'] . ' : ' . $show_comment, 0, 1);
+ $break = true;
+ }
+
+ if (!empty($create_time)) {
+ $pdf->Cell(0, 3, $GLOBALS['strStatCreateTime'] . ': ' . $create_time, 0, 1);
+ $break = true;
+ }
+
+ if (!empty($update_time)) {
+ $pdf->Cell(0, 3, $GLOBALS['strStatUpdateTime'] . ': ' . $update_time, 0, 1);
+ $break = true;
+ }
+
+ if (!empty($check_time)) {
+ $pdf->Cell(0, 3, $GLOBALS['strStatCheckTime'] . ': ' . $check_time, 0, 1);
+ $break = true;
+ }
+
+ if ($break == true) {
+ $pdf->Cell(0, 3, '', 0, 1);
+ $pdf->Ln();
+ }
+
+ $pdf->SetFont('', 'B');
+ if (isset($orientation) && $orientation == 'L') {
+ $pdf->Cell(25, 8, ucfirst($GLOBALS['strField']), 1, 0, 'C');
+ $pdf->Cell(20, 8, ucfirst($GLOBALS['strType']), 1, 0, 'C');
+ $pdf->Cell(20, 8, ucfirst($GLOBALS['strAttr']), 1, 0, 'C');
+ $pdf->Cell(10, 8, ucfirst($GLOBALS['strNull']), 1, 0, 'C');
+ $pdf->Cell(20, 8, ucfirst($GLOBALS['strDefault']), 1, 0, 'C');
+ $pdf->Cell(25, 8, ucfirst($GLOBALS['strExtra']), 1, 0, 'C');
+ $pdf->Cell(45, 8, ucfirst($GLOBALS['strLinksTo']), 1, 0, 'C');
+
+ if ($paper == 'A4') {
+ $comments_width = 67;
+ } else {
+ // this is really intended for 'letter'
+ /**
+ * @todo find optimal width for all formats
+ */
+ $comments_width = 50;
+ }
+ $pdf->Cell($comments_width, 8, ucfirst($GLOBALS['strComments']), 1, 0, 'C');
+ $pdf->Cell(45, 8, 'MIME', 1, 1, 'C');
+ $pdf->SetWidths(array(25, 20, 20, 10, 20, 25, 45, $comments_width, 45));
+ } else {
+ $pdf->Cell(20, 8, ucfirst($GLOBALS['strField']), 1, 0, 'C');
+ $pdf->Cell(20, 8, ucfirst($GLOBALS['strType']), 1, 0, 'C');
+ $pdf->Cell(20, 8, ucfirst($GLOBALS['strAttr']), 1, 0, 'C');
+ $pdf->Cell(10, 8, ucfirst($GLOBALS['strNull']), 1, 0, 'C');
+ $pdf->Cell(15, 8, ucfirst($GLOBALS['strDefault']), 1, 0, 'C');
+ $pdf->Cell(15, 8, ucfirst($GLOBALS['strExtra']), 1, 0, 'C');
+ $pdf->Cell(30, 8, ucfirst($GLOBALS['strLinksTo']), 1, 0, 'C');
+ $pdf->Cell(30, 8, ucfirst($GLOBALS['strComments']), 1, 0, 'C');
+ $pdf->Cell(30, 8, 'MIME', 1, 1, 'C');
+ $pdf->SetWidths(array(20, 20, 20, 10, 15, 15, 30, 30, 30));
+ }
+ $pdf->SetFont('', '');
+
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ if (preg_match('@^(set|enum)\((.+)\)$@i', $type, $tmp)) {
+ $tmp[2] = substr(preg_replace("@([^,])''@", "\\1\\'", ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type_nowrap = ' nowrap="nowrap"';
+ $type = preg_replace('@BINARY@i', '', $type);
+ $type = preg_replace('@ZEROFILL@i', '', $type);
+ $type = preg_replace('@UNSIGNED@i', '', $type);
+ if (empty($type)) {
+ $type = '&nbsp;';
+ }
+
+ $binary = stristr($row['Type'], 'BINARY');
+ $unsigned = stristr($row['Type'], 'UNSIGNED');
+ $zerofill = stristr($row['Type'], 'ZEROFILL');
+ }
+ $strAttribute = ' ';
+ if ($binary) {
+ $strAttribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $strAttribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $strAttribute = 'UNSIGNED ZEROFILL';
+ }
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != '' && $row['Null'] != 'NO') {
+ $row['Default'] = 'NULL';
+ }
+ }
+ $field_name = $row['Field'];
+ // $pdf->Ln();
+ $pdf->PMA_links['RT'][$table][$field_name] = $pdf->AddLink();
+ $pdf->Bookmark($field_name, 1, -1);
+ $pdf->SetLink($pdf->PMA_links['doc'][$table][$field_name], -1);
+ $pdf_row = array($field_name,
+ $type,
+ $strAttribute,
+ ($row['Null'] == '' || $row['Null'] == 'NO') ? $GLOBALS['strNo'] : $GLOBALS['strYes'],
+ ((isset($row['Default'])) ? $row['Default'] : ''),
+ $row['Extra'],
+ ((isset($res_rel[$field_name])) ? $res_rel[$field_name]['foreign_table'] . ' -> ' . $res_rel[$field_name]['foreign_field'] : ''),
+ ((isset($comments[$field_name])) ? $comments[$field_name] : ''),
+ ((isset($mime_map) && isset($mime_map[$field_name])) ? str_replace('_', '/', $mime_map[$field_name]['mimetype']) : '')
+ );
+ $links[0] = $pdf->PMA_links['RT'][$table][$field_name];
+ if (isset($res_rel[$field_name]['foreign_table']) AND
+ isset($res_rel[$field_name]['foreign_field']) AND
+ isset($pdf->PMA_links['doc'][$res_rel[$field_name]['foreign_table']][$res_rel[$field_name]['foreign_field']])
+ )
+ {
+ $links[6] = $pdf->PMA_links['doc'][$res_rel[$field_name]['foreign_table']][$res_rel[$field_name]['foreign_field']];
+ } else {
+ unset($links[6]);
+ }
+ $pdf->Row($pdf_row, $links);
+
+ /*$pdf->Cell(20, 8, $field_name, 1, 0, 'L', 0, $pdf->PMA_links['RT'][$table][$field_name]);
+ //echo ' ' . $field_name . '&nbsp;' . "\n";
+ }
+ $pdf->Cell(20, 8, $type, 1, 0, 'L');
+ $pdf->Cell(20, 8, $strAttribute, 1, 0, 'L');
+ $pdf->Cell(15, 8, , 1, 0, 'L');
+ $pdf->Cell(15, 8, ((isset($row['Default'])) ? $row['Default'] : ''),1,0,'L');
+ $pdf->Cell(15, 8, $row['Extra'], 1, 0, 'L');
+ if ($have_rel) {
+ if (isset($res_rel[$field_name])) {
+ $pdf->Cell(30, 8, $res_rel[$field_name]['foreign_table'] . ' -> ' . $res_rel[$field_name]['foreign_field'],1,0,'L');
+ }
+ }
+ if ($cfgRelation['commwork']) {
+ if (isset($comments[$field_name])) {
+ $pdf->Cell(0, 8, $comments[$field_name], 1, 0, 'L');
+ }
+ } */
+ } // end while
+ $pdf->SetFont('', '', 14);
+ PMA_DBI_free_result($result);
+ } //end each
+} // end function PMA_RT_DOC
+
+/**
+ * Main logic
+ */
+if (!isset($pdf_page_number)) {
+ $pdf_page_number = 1;
+}
+
+$show_grid = (isset($show_grid) && $show_grid == 'on') ? 1 : 0;
+$show_color = (isset($show_color) && $show_color == 'on') ? 1 : 0;
+$show_table_dimension = (isset($show_table_dimension) && $show_table_dimension == 'on') ? 1 : 0;
+$all_tab_same_wide = (isset($all_tab_same_wide) && $all_tab_same_wide == 'on') ? 1 : 0;
+$with_doc = (isset($with_doc) && $with_doc == 'on') ? 1 : 0;
+$orientation = (isset($orientation) && $orientation == 'P') ? 'P' : 'L';
+$paper = isset($paper) ? $paper : 'A4';
+$show_keys = (isset($show_keys) && $show_keys == 'on') ? 1 : 0;
+PMA_DBI_select_db($db);
+
+$rt = new PMA_RT($pdf_page_number, $show_table_dimension, $show_color, $show_grid, $all_tab_same_wide, $orientation, $paper, $show_keys);
+
+?>
diff --git a/phpinfo.php b/phpinfo.php
new file mode 100644
index 0000000000..56a4c9cdae
--- /dev/null
+++ b/phpinfo.php
@@ -0,0 +1,21 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets core libraries and defines some variables
+ */
+define('PMA_MINIMUM_COMMON', true);
+require_once './libraries/common.inc.php';
+
+
+/**
+ * Displays PHP information
+ */
+if ($GLOBALS['cfg']['ShowPhpInfo']) {
+ phpinfo();
+}
+?>
diff --git a/phpmyadmin.css.php b/phpmyadmin.css.php
new file mode 100644
index 0000000000..32ae550682
--- /dev/null
+++ b/phpmyadmin.css.php
@@ -0,0 +1,41 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+// sometimes, we lose $_REQUEST['js_frame']
+define('PMA_FRAME', empty($_REQUEST['js_frame']) ? 'right' : $_REQUEST['js_frame']);
+
+define('PMA_MINIMUM_COMMON', true);
+require_once './libraries/common.inc.php';
+require_once './libraries/sqlparser.lib.php';
+
+// MSIE 6 (at least some unpatched versions) has problems loading CSS
+// when zlib_compression is on
+if (PMA_USR_BROWSER_AGENT == 'IE' && PMA_USR_BROWSER_VER == '6'
+ && (ini_get('zlib.output_compression'))) {
+ @ini_set('zlib.output_compression', 'Off');
+}
+
+if ($GLOBALS['text_dir'] === 'ltr') {
+ $right = 'right';
+ $left = 'left';
+} else {
+ $right = 'left';
+ $left = 'right';
+}
+
+// Send correct type:
+header('Content-Type: text/css; charset=UTF-8');
+
+// Cache output in client - the nocache query parameter makes sure that this
+// file is reloaded when config changes
+header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT');
+
+$_SESSION['PMA_Theme_Manager']->printCss(PMA_FRAME);
+?>
diff --git a/pmd/images/2leftarrow.png b/pmd/images/2leftarrow.png
new file mode 100644
index 0000000000..ee9113f143
--- /dev/null
+++ b/pmd/images/2leftarrow.png
Binary files differ
diff --git a/pmd/images/2leftarrow_m.png b/pmd/images/2leftarrow_m.png
new file mode 100644
index 0000000000..2c20f9c605
--- /dev/null
+++ b/pmd/images/2leftarrow_m.png
Binary files differ
diff --git a/pmd/images/2rightarrow.png b/pmd/images/2rightarrow.png
new file mode 100644
index 0000000000..618a01306e
--- /dev/null
+++ b/pmd/images/2rightarrow.png
Binary files differ
diff --git a/pmd/images/2rightarrow_m.png b/pmd/images/2rightarrow_m.png
new file mode 100644
index 0000000000..e6daa4ef2e
--- /dev/null
+++ b/pmd/images/2rightarrow_m.png
Binary files differ
diff --git a/pmd/images/ang_direct.png b/pmd/images/ang_direct.png
new file mode 100644
index 0000000000..588037f43e
--- /dev/null
+++ b/pmd/images/ang_direct.png
Binary files differ
diff --git a/pmd/images/bord.png b/pmd/images/bord.png
new file mode 100644
index 0000000000..aea1e190fe
--- /dev/null
+++ b/pmd/images/bord.png
Binary files differ
diff --git a/pmd/images/bottom.png b/pmd/images/bottom.png
new file mode 100644
index 0000000000..17192d2535
--- /dev/null
+++ b/pmd/images/bottom.png
Binary files differ
diff --git a/pmd/images/def.png b/pmd/images/def.png
new file mode 100644
index 0000000000..b068a65915
--- /dev/null
+++ b/pmd/images/def.png
Binary files differ
diff --git a/pmd/images/display_field.png b/pmd/images/display_field.png
new file mode 100644
index 0000000000..b38ceda535
--- /dev/null
+++ b/pmd/images/display_field.png
Binary files differ
diff --git a/pmd/images/downarrow1.png b/pmd/images/downarrow1.png
new file mode 100644
index 0000000000..f0d0cba516
--- /dev/null
+++ b/pmd/images/downarrow1.png
Binary files differ
diff --git a/pmd/images/downarrow2.png b/pmd/images/downarrow2.png
new file mode 100644
index 0000000000..10fdbe76a8
--- /dev/null
+++ b/pmd/images/downarrow2.png
Binary files differ
diff --git a/pmd/images/downarrow2_m.png b/pmd/images/downarrow2_m.png
new file mode 100644
index 0000000000..ccf89f0932
--- /dev/null
+++ b/pmd/images/downarrow2_m.png
Binary files differ
diff --git a/pmd/images/exec.png b/pmd/images/exec.png
new file mode 100644
index 0000000000..fc14700f94
--- /dev/null
+++ b/pmd/images/exec.png
Binary files differ
diff --git a/pmd/images/exec_small.png b/pmd/images/exec_small.png
new file mode 100644
index 0000000000..27edd1e601
--- /dev/null
+++ b/pmd/images/exec_small.png
Binary files differ
diff --git a/pmd/images/favicon.ico b/pmd/images/favicon.ico
new file mode 100644
index 0000000000..828acd9f76
--- /dev/null
+++ b/pmd/images/favicon.ico
Binary files differ
diff --git a/pmd/images/grid.png b/pmd/images/grid.png
new file mode 100644
index 0000000000..63a32597b0
--- /dev/null
+++ b/pmd/images/grid.png
Binary files differ
diff --git a/pmd/images/help.png b/pmd/images/help.png
new file mode 100644
index 0000000000..ec00b3b9e2
--- /dev/null
+++ b/pmd/images/help.png
Binary files differ
diff --git a/pmd/images/help_relation.png b/pmd/images/help_relation.png
new file mode 100644
index 0000000000..f6fbafafe7
--- /dev/null
+++ b/pmd/images/help_relation.png
Binary files differ
diff --git a/pmd/images/pdf.png b/pmd/images/pdf.png
new file mode 100644
index 0000000000..39e6dbac38
--- /dev/null
+++ b/pmd/images/pdf.png
Binary files differ
diff --git a/pmd/images/relation.png b/pmd/images/relation.png
new file mode 100644
index 0000000000..8b0e29ade1
--- /dev/null
+++ b/pmd/images/relation.png
Binary files differ
diff --git a/pmd/images/reload.png b/pmd/images/reload.png
new file mode 100644
index 0000000000..529554b29f
--- /dev/null
+++ b/pmd/images/reload.png
Binary files differ
diff --git a/pmd/images/resize.png b/pmd/images/resize.png
new file mode 100644
index 0000000000..b457e2cbf8
--- /dev/null
+++ b/pmd/images/resize.png
Binary files differ
diff --git a/pmd/images/rightarrow1.png b/pmd/images/rightarrow1.png
new file mode 100644
index 0000000000..a028377468
--- /dev/null
+++ b/pmd/images/rightarrow1.png
Binary files differ
diff --git a/pmd/images/rightarrow2.png b/pmd/images/rightarrow2.png
new file mode 100644
index 0000000000..b1061e40a6
--- /dev/null
+++ b/pmd/images/rightarrow2.png
Binary files differ
diff --git a/pmd/images/save.png b/pmd/images/save.png
new file mode 100644
index 0000000000..8ff8c6119a
--- /dev/null
+++ b/pmd/images/save.png
Binary files differ
diff --git a/pmd/images/table.png b/pmd/images/table.png
new file mode 100644
index 0000000000..69b0c011c2
--- /dev/null
+++ b/pmd/images/table.png
Binary files differ
diff --git a/pmd/images/uparrow2_m.png b/pmd/images/uparrow2_m.png
new file mode 100644
index 0000000000..05b2c369cf
--- /dev/null
+++ b/pmd/images/uparrow2_m.png
Binary files differ
diff --git a/pmd/scripts/ajax.js b/pmd/scripts/ajax.js
new file mode 100644
index 0000000000..0f47bab21f
--- /dev/null
+++ b/pmd/scripts/ajax.js
@@ -0,0 +1,134 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+var http_request = false;
+var xmldoc;
+var textdoc;
+
+/**
+ *
+ */
+function makeRequest(url, parameters)
+{
+ http_request = false;
+ if (window.XMLHttpRequest) {
+ // Mozilla, Safari,...
+ http_request = new XMLHttpRequest();
+ if (http_request.overrideMimeType) {
+ http_request.overrideMimeType('text/xml');
+ }
+ } else if (window.ActiveXObject) {
+ // IE
+ try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); }
+ catch (e) {
+ try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); }
+ catch (e) {}
+ }
+ }
+
+ if (!http_request) {
+ alert('Giving up :( Cannot create an XMLHTTP instance');
+ return false;
+ }
+
+ http_request.onreadystatechange = alertContents;
+ http_request.open('POST', url, true);
+ http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+ http_request.setRequestHeader("Content-length", parameters.length);
+ http_request.setRequestHeader("Connection", "close");
+ http_request.send(parameters);
+ return true;
+}
+
+/**
+ *
+ */
+function alertContents()
+{
+ if (http_request.readyState == 1) {
+ document.getElementById("layer_action").style.left = (document.body.clientWidth + document.body.scrollLeft - 85) + 'px';
+ document.getElementById("layer_action").style.top = (document.body.scrollTop + 10) + 'px';
+ document.getElementById("layer_action").style.visibility = 'visible'; document.getElementById("layer_action").innerHTML = 'Loading...';
+ }
+ if (http_request.readyState == 2) {
+ document.getElementById("layer_action").innerHTML = 'Loaded';
+ }
+ if (http_request.readyState == 3) {
+ document.getElementById("layer_action").innerHTML = 'Loading 99%';
+ }
+ if (http_request.readyState == 4) {
+ if (http_request.status == 200) {
+ textdoc = http_request.responseText;
+ //alert(textdoc);
+ xmldoc = http_request.responseXML;
+ PrintXML();
+ //document.getElementById("layer_action").style.visibility = 'hidden';
+ } else {
+ alert('There was a problem with the request.');
+ }
+ }
+}
+
+function layer_alert(text)
+{
+ document.getElementById("layer_action").innerHTML = text;
+ document.getElementById("layer_action").style.left = (document.body.clientWidth + document.body.scrollLeft - 20 - document.getElementById("layer_action").offsetWidth) + 'px';
+ document.getElementById("layer_action").style.visibility = 'visible';
+ setTimeout(function(){document.getElementById("layer_action").style.visibility = 'hidden';}, 2000);
+}
+
+/**
+ *
+ */
+function PrintXML()
+{
+ var root = xmldoc.getElementsByTagName('root').item(0); //root
+ //alert(xmldoc.getElementsByTagName('root').item(1));
+ if (root == null) {
+ // if error
+ myWin=window.open('','Report','width=400, height=250, resizable=1, scrollbars=1, status=1');
+ var tmp = myWin.document;
+ tmp.write(textdoc);
+ tmp.close();
+ } else {
+ //alert(xmldoc.getElementsByTagName('root')[0]);
+ //alert(root.attributes[0].nodeValue);
+ //alert(xmldoc.getElementsByTagName('root')[0].attributes[0].nodeValue);
+ //xmldoc.getElementsByTagName('root')[0].getAttribute("act")
+
+ if (root.getAttribute('act') == 'save_pos') {
+ layer_alert(strLang[root.getAttribute('return')]);
+ }
+ if (root.getAttribute('act') == 'relation_upd') {
+ layer_alert(strLang[root.getAttribute('return')]);
+ if (root.getAttribute('b') == '1') {
+ contr.splice(root.getAttribute('K'), 1);
+ Re_load();
+ }
+ }
+ if (root.getAttribute('act') == 'relation_new') {
+ layer_alert(strLang[root.getAttribute('return')]);
+ if (root.getAttribute('b') == '1') {
+ var i = contr.length;
+ var t1 = root.getAttribute('DB1') + '.' + root.getAttribute('T1');
+ var f1 = root.getAttribute('F1');
+ var t2 = root.getAttribute('DB2') + '.' + root.getAttribute('T2');
+ var f2 = root.getAttribute('F2');
+ contr[i] = new Array();
+ contr[i][''] = new Array();
+ contr[i][''][t2] = new Array();
+ contr[i][''][t2][f2] = new Array();
+ contr[i][''][t2][f2][0] = t1;
+ contr[i][''][t2][f2][1] = f1;
+ Re_load();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/pmd/scripts/iecanvas.js b/pmd/scripts/iecanvas.js
new file mode 100644
index 0000000000..3735029a77
--- /dev/null
+++ b/pmd/scripts/iecanvas.js
@@ -0,0 +1,151 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+if (!window.all) // if IE
+{
+ document.attachEvent("onreadystatechange", // document load
+ function ()
+ {
+ if (document.readyState == "complete")
+ {
+ var el = document.getElementById("canvas");
+ var outerHTML = el.outerHTML;
+ var newEl = document.createElement(outerHTML);
+ el.parentNode.replaceChild(newEl, el);
+ el = newEl;
+ el.getContext = function () {
+ if (this.cont) return this.cont;
+ return this.cont = new PMD_2D(this);
+ };
+
+ el.style.width = el.attributes.width.nodeValue + "px";
+ el.style.height = el.attributes.height.nodeValue + "px";
+ }
+ }
+ );
+
+//*****************************************************************************************************
+
+ function convert_style(str) {
+ var m = Array();
+ m = str.match(/.*\((\d*),(\d*),(\d*),(\d*)\)/);
+ for(var i = 1; i<=3; i++ )
+ m[i] = (m[i]*1).toString(16).length < 2 ? '0' + (m[i]*1).toString(16) : (m[i]*1).toString(16);
+ return ['#' + m[1] + m[2] + m[3], 1];
+ }
+//------------------------------------------------------------------------------
+ function PMD_2D(th) {
+ this.element_ = th;
+ this.pmd_arr = Array();
+ this.strokeStyle;
+ this.fillStyle;
+ this.lineWidth;
+
+ this.closePath = function() {
+ this.pmd_arr.push({type: "close"});
+ }
+
+ this.clearRect = function() {
+ this.element_.innerHTML = "";
+ this.pmd_arr = [];
+ }
+
+ this.beginPath = function() {
+ this.pmd_arr = [];
+ }
+
+ this.moveTo = function(aX, aY) {
+ this.pmd_arr.push({type: "moveTo", x: aX, y: aY});
+ }
+
+ this.lineTo = function(aX, aY) {
+ this.pmd_arr.push({type: "lineTo", x: aX, y: aY});
+ }
+
+ this.arc = function(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {
+ if (!aClockwise) {
+ var t = aStartAngle;
+ aStartAngle = aEndAngle;
+ aEndAngle = t;
+ }
+
+ var xStart = aX + (Math.cos(aStartAngle) * aRadius);
+ var yStart = aY + (Math.sin(aStartAngle) * aRadius);
+
+ var xEnd = aX + (Math.cos(aEndAngle) * aRadius);
+ var yEnd = aY + (Math.sin(aEndAngle) * aRadius);
+
+ this.pmd_arr.push({type: "arc", x: aX, y: aY,
+ radius: aRadius, xStart: xStart, yStart: yStart, xEnd: xEnd, yEnd: yEnd});
+ }
+
+ this.rect = function(aX, aY, aW, aH) {
+ this.moveTo(aX, aY);
+ this.lineTo(aX + aW, aY);
+ this.lineTo(aX + aW, aY + aH);
+ this.lineTo(aX, aY + aH);
+ this.closePath();
+ }
+
+ this.fillRect = function(aX, aY, aW, aH) {
+ this.beginPath();
+ this.moveTo(aX, aY);
+ this.lineTo(aX + aW, aY);
+ this.lineTo(aX + aW, aY + aH);
+ this.lineTo(aX, aY + aH);
+ this.closePath();
+ this.stroke(true);
+ }
+
+ this.stroke = function(aFill) {
+ var Str = Array();
+ var a = convert_style(aFill ? this.fillStyle : this.strokeStyle);
+ var color = a[0];
+
+ Str.push('<v:shape',
+ ' fillcolor="', color, '"',
+ ' filled="', Boolean(aFill), '"',
+ ' style="position:absolute;width:10;height:10;"',
+ ' coordorigin="0 0" coordsize="10 10"',
+ ' stroked="', !aFill, '"',
+ ' strokeweight="', this.lineWidth, '"',
+ ' strokecolor="', color, '"',
+ ' path="');
+
+ for (var i = 0; i < this.pmd_arr.length; i++) {
+ var p = this.pmd_arr[i];
+
+ if (p.type == "moveTo") {
+ Str.push(" m ");
+ Str.push(Math.floor(p.x), ",",Math.floor(p.y));
+ } else if (p.type == "lineTo") {
+ Str.push(" l ");
+ Str.push(Math.floor(p.x), ",",Math.floor(p.y));
+ } else if (p.type == "close") {
+ Str.push(" x ");
+ } else if (p.type == "arc") {
+ Str.push(" ar ");
+ Str.push(Math.floor(p.x - p.radius), ",",
+ Math.floor(p.y - p.radius), " ",
+ Math.floor(p.x + p.radius), ",",
+ Math.floor(p.y + p.radius), " ",
+ Math.floor(p.xStart), ",", Math.floor(p.yStart), " ",
+ Math.floor(p.xEnd), ",", Math.floor(p.yEnd));
+ }
+ }
+
+ Str.push(' ">');
+ Str.push("</v:shape>");
+
+ this.element_.insertAdjacentHTML("beforeEnd", Str.join(""));
+ this.pmd_arr = Array();
+ }
+ };
+}
diff --git a/pmd/scripts/move.js b/pmd/scripts/move.js
new file mode 100644
index 0000000000..b0e493057c
--- /dev/null
+++ b/pmd/scripts/move.js
@@ -0,0 +1,923 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ * @author Ivan A Kirillov (Ivan.A.Kirillov@gmail.com)
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ * init
+ */
+var dx, dy, dy2;
+var cur_click;
+// update in Main()
+var sm_x = 2, sm_y = 2;
+var sm_s = 0;
+var sm_add = 10;
+var s_left = 0;
+var s_right = 0;
+var ON_relation = 0;
+var ON_grid = 0;
+var ON_display_field = 0;
+// relation_style: 0 - angular 1 - direct
+var ON_angular_direct = 1;
+var click_field = 0;
+var link_relation = "";
+var id_hint;
+var canvas_width = 0;
+var canvas_height = 0;
+var osn_tab_width = 0;
+var osn_tab_height = 0;
+var height_field = 7;
+var Glob_X, Glob_Y;
+var timeoutID;
+var layer_menu_cur_click = 0;
+var step = 10;
+var old_class;
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+
+
+//window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
+//---CROSS
+document.onmousedown = MouseDown;
+document.onmouseup = MouseUp;
+document.onmousemove = MouseMove;
+
+var isIE = document.all && !window.opera;
+var isNN = !document.all && document.getElementById;
+var isN4 = document.layers;
+
+if (isIE) {
+ window.onscroll = General_scroll;
+ document.onselectstart = function () {return false;};
+}
+
+//document.onmouseup = function(){General_scroll_end();}
+function MouseDown(e)
+{
+ var offsetx, offsety;
+ if (cur_click != null) {
+ offsetx = isIE ? event.clientX + document.body.scrollLeft : e.pageX;
+ offsety = isIE ? event.clientY + document.body.scrollTop : e.pageY;
+ dx = offsetx - parseInt(cur_click.style.left);
+ dy = offsety - parseInt(cur_click.style.top);
+ //alert(" dx = " + dx + " dy = " +dy);
+ document.getElementById("canvas").style.visibility = 'hidden';
+ /*
+ var left = parseInt(cur_click.style.left);
+ var top = parseInt(cur_click.style.top);
+ dx = e.pageX - left;
+ dy = e.pageY - top;
+
+ alert(" dx = " + dx + " dy = " +dy);
+ */
+ cur_click.style.zIndex = 2;
+ }
+ if (layer_menu_cur_click) {
+ offsetx = isIE ? event.clientX + document.body.scrollLeft : e.pageX;
+ dx = offsetx - parseInt(document.getElementById("layer_menu").style.width);
+ }
+}
+
+function MouseMove(e)
+{
+ //Glob_X = e.pageX;
+ //Glob_Y = e.pageY;
+ Glob_X = isIE ? event.clientX + document.body.scrollLeft : e.pageX;
+ Glob_Y = isIE ? event.clientY + document.body.scrollTop : e.pageY;
+
+ //mouseX = (bw.ns4||bw.ns6)? e.pageX: bw.ie&&bw.win&&!bw.ie4? (event.clientX-2)+document.body.scrollLeft : event.clientX+document.body.scrollLeft;
+ //mouseY = (bw.ns4||bw.ns6)? e.pageY: bw.ie&&bw.win&&!bw.ie4? (event.clientY-2)+document.body.scrollTop : event.clientY+document.body.scrollTop;
+
+ //window.status = "X = "+ Glob_X + " Y = "+ Glob_Y;
+
+ if (cur_click != null) {
+ var mGx = Glob_X - dx;
+ var mGy = Glob_Y - dy;
+ mGx = mGx > 0 ? mGx : 0;
+ mGy = mGy > 0 ? mGy : 0;
+
+ if (ON_grid) {
+ mGx = mGx % step < step / 2 ? mGx - mGx % step : mGx - mGx % step + step;
+ mGy = mGy % step < step / 2 ? mGy - mGy % step : mGy - mGy % step + step;
+ }
+
+ cur_click.style.left = mGx + 'px';
+ cur_click.style.top = mGy + 'px';
+ }
+
+ if (ON_relation || ON_display_field) {
+ document.getElementById('hint').style.left = (Glob_X + 20) + 'px';
+ document.getElementById('hint').style.top = (Glob_Y + 20) + 'px';
+ }
+
+ if (layer_menu_cur_click) {
+ document.getElementById("layer_menu").style.width = ((Glob_X - dx) >= 150 ? Glob_X - dx : 150) + 'px';
+ //document.getElementById("layer_menu").style.height = Glob_Y - dy>=200?Glob_Y - dy:200;
+ //document.getElementById("id_scroll_tab").style.height = Glob_Y - dy2;
+ }
+}
+
+function MouseUp(e)
+{
+ if (cur_click != null) {
+ document.getElementById("canvas").style.visibility = 'visible';
+ Re_load();
+ cur_click.style.zIndex = 1;
+ cur_click = null;
+ }
+ layer_menu_cur_click = 0;
+ //window.releaseEvents(Event.MOUSEMOVE);
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+
+
+//function ToInt(s)
+//{
+// return s.substring(0,s.length-2)*1; //re = /(\d+)\w*/; newstr = str.replace(re, "$1");
+//}
+
+function Canvas_pos()
+{
+ canvas_width = document.getElementById('canvas').width = osn_tab_width - 3;
+ canvas_height = document.getElementById('canvas').height = osn_tab_height - 3;
+
+ if (isIE) {
+ document.getElementById('canvas').style.width = ((osn_tab_width - 3)?(osn_tab_width - 3):0) + 'px';
+ document.getElementById('canvas').style.height = ((osn_tab_height - 3)?(osn_tab_height - 3):0) + 'px';
+ }
+}
+
+function Osn_tab_pos()
+{
+ osn_tab_width = parseInt(document.getElementById('osn_tab').style.width);
+ osn_tab_height = parseInt(document.getElementById('osn_tab').style.height);
+}
+
+
+function Main()
+{
+ //alert( document.getElementById('osn_tab').offsetTop);
+ //---CROSS
+ if (isIE) {
+ document.getElementById('top_menu').style.position = 'absolute';
+ document.getElementById('layer_menu').style.position = 'absolute';
+ }
+
+ document.getElementById("layer_menu").style.top = -1000 + 'px'; //fast scroll
+ sm_x += document.getElementById('osn_tab').offsetLeft;
+ sm_y += document.getElementById('osn_tab').offsetTop;
+ Osn_tab_pos();
+ Canvas_pos();
+ Small_tab_refresh();
+ Re_load();
+ id_hint = document.getElementById('hint');
+ if (isIE) {
+ General_scroll();
+ }
+}
+
+
+//-------------------------------- new -----------------------------------------
+function Rezize_osn_tab()
+{
+ var max_X = 0;
+ var max_Y = 0;
+ for (key in j_tabs) {
+ var k_x = parseInt(document.getElementById(key).style.left) + document.getElementById(key).offsetWidth;
+ var k_y = parseInt(document.getElementById(key).style.top) + document.getElementById(key).offsetHeight;
+ max_X = max_X < k_x ? k_x : max_X;
+ max_Y = max_Y < k_y ? k_y : max_Y;
+ }
+
+ osn_tab_width = max_X + 50;
+ osn_tab_height = max_Y + 50;
+ Canvas_pos();
+ document.getElementById('osn_tab').style.width = osn_tab_width + 'px';
+ document.getElementById('osn_tab').style.height = osn_tab_height + 'px';
+}
+//------------------------------------------------------------------------------
+
+/**
+ * refreshes display, must be called after state changes
+ */
+function Re_load()
+{
+ Rezize_osn_tab();
+ var n;
+ var x1;
+ var x2;
+ var a = new Array();
+ Clear();
+ for (K in contr)
+ for (key in contr[K]) // contr name
+ for (key2 in contr[K][key]) // table name
+ for (key3 in contr[K][key][key2]) // field name
+ {
+ if (!document.getElementById("check_vis_" + key2).checked ||
+ !document.getElementById("check_vis_" + contr[K][key][key2][key3][0]).checked) {
+ // if hide
+ continue;
+ }
+ var x1_left = document.getElementById(key2).offsetLeft+1;
+ var x1_right = x1_left + document.getElementById(key2).offsetWidth;
+ var x2_left = document.getElementById(contr[K][key][key2][key3][0]).offsetLeft;
+ var x2_right = x2_left + document.getElementById(contr[K][key][key2][key3][0]).offsetWidth;
+ a[0] = Math.abs(x1_left - x2_left);
+ a[1] = Math.abs(x1_left - x2_right);
+ a[2] = Math.abs(x1_right - x2_left);
+ a[3] = Math.abs(x1_right - x2_right);
+ n = s_left = s_right = 0;
+ for (var i = 1; i < 4; i++) {
+ if (a[n] > a[i]) {
+ n = i;
+ }
+ }
+ if (n == 1) {
+ x1 = x1_left - sm_s;
+ x2 = x2_right + sm_s;
+ if (x1 < x2) {
+ n = 0;
+ }
+ }
+ if (n == 2) {
+ x1 = x1_right + sm_s;
+ x2 = x2_left - sm_s;
+ if (x1 > x2) {
+ n = 0;
+ }
+ }
+ if (n == 3) {
+ x1 = x1_right + sm_s;
+ x2 = x2_right + sm_s;
+ s_right = 1;
+ }
+ if (n == 0) {
+ x1 = x1_left - sm_s;
+ x2 = x2_left - sm_s;
+ s_left = 1;
+ }
+ //alert(key2 + "." + key3);
+
+ var row_offset_top = 0;
+ //alert('id_tbody_' + key2);
+ //alert(document.getElementById('id_hide_tbody_' + key2));
+ var tab_hide_button = document.getElementById('id_hide_tbody_' + key2);
+
+ //alert(tab_hide_button.innerHTML);
+ if (tab_hide_button.innerHTML == 'v') {
+ row_offset_top = document.getElementById(key2 + "." + key3).offsetTop;
+ }
+
+ var y1 = document.getElementById(key2).offsetTop
+ + row_offset_top
+ + height_field;
+ //alert(1);
+
+ row_offset_top = 0;
+ var tab_hide_button = document.getElementById('id_hide_tbody_' + contr[K][key][key2][key3][0]);
+ if (tab_hide_button.innerHTML == 'v') {
+ row_offset_top = document.getElementById(contr[K][key][key2][key3][0]
+ + '.' + contr[K][key][key2][key3][1]).offsetTop;
+ }
+
+ var y2 =
+ document.getElementById(contr[K][key][key2][key3][0]).offsetTop
+ + row_offset_top
+ + height_field;
+
+ //alert(y1 + ' - ' + key2 + "." + key3);
+ Line0(x1 - sm_x, y1 - sm_y, x2 - sm_x, y2 - sm_y, "rgba(0,100,150,1)");
+ }
+}
+
+/**
+ * draws a line from x1:y1 to x2:y2 with color
+ */
+function Line(x1, y1, x2, y2, color_line)
+{
+ var canvas = document.getElementById("canvas");
+ var ctx = canvas.getContext("2d");
+ ctx.strokeStyle = color_line;
+ ctx.lineWidth = 1;
+ ctx.beginPath();
+ ctx.moveTo(x1, y1);
+ ctx.lineTo(x2, y2);
+ ctx.stroke();
+}
+
+/**
+ * draws a relation/constraint line, whether angular or not
+ */
+function Line0(x1, y1, x2, y2, color_line)
+{
+ Circle(x1, y1, 3, 3, "rgba(0,0,255,1)");
+ Rect(x2 - 1, y2 - 2, 4, 4, "rgba(0,0,255,1)");
+
+ if (ON_angular_direct) {
+ Line2(x1, y1, x2, y2, color_line);
+ } else {
+ Line3(x1, y1, x2, y2, color_line);
+ }
+}
+
+/**
+ * draws a angualr relation/constraint line
+ */
+function Line2(x1, y1, x2, y2, color_line)
+{
+ var x1_ = x1;
+ var x2_ = x2;
+
+ if (s_right) {
+ x1_ += sm_add;
+ x2_ += sm_add;
+ } else if (s_left) {
+ x1_ -= sm_add;
+ x2_ -= sm_add;
+ } else if (x1 < x2) {
+ x1_ += sm_add;
+ x2_ -= sm_add;
+ } else {
+ x1_ -= sm_add;
+ x2_ += sm_add;
+ }
+
+ Line(x1, y1, x1_, y1, color_line);
+ Line(x2, y2, x2_, y2, color_line);
+ Line(x1_, y1, x2_, y2, color_line);
+}
+
+/**
+ * draws a relation/constraint line
+ */
+function Line3(x1, y1, x2, y2, color_line)
+{
+ var x1_ = x1;
+ var x2_ = x2;
+
+ if (s_right) {
+ if (x1 < x2) {
+ x1_ += x2 - x1 + sm_add;
+ x2_ += sm_add;
+ } else {
+ x2_ += x1 - x2 + sm_add;
+ x1_ += sm_add;
+ }
+
+ Line(x1, y1, x1_, y1, color_line);
+ Line(x2, y2, x2_, y2, color_line);
+ Line(x1_, y1, x2_, y2, color_line);
+ return;
+ }
+ if (s_left) {
+ if (x1 < x2) {
+ x2_ -= x2 - x1 + sm_add;
+ x1_ -= sm_add;
+ } else {
+ x1_ -= x1 - x2 + sm_add;
+ x2_ -= sm_add;
+ }
+
+ Line(x1, y1, x1_, y1, color_line);
+ Line(x2, y2, x2_, y2, color_line);
+ Line(x1_, y1, x2_, y2, color_line);
+ return;
+ }
+
+ var x_s = (x1 + x2) / 2;
+ Line(x1, y1, x_s, y1, color_line);
+ Line(x_s, y2, x2, y2, color_line);
+ Line(x_s, y1, x_s, y2, color_line);
+}
+
+function Circle(x, y, r, w, color)
+{
+ var ctx = document.getElementById('canvas').getContext('2d');
+ ctx.beginPath();
+ ctx.moveTo(x, y);
+ ctx.lineWidth = w;
+ ctx.strokeStyle = color;
+ ctx.arc(x, y, r, 0, 2 * Math.PI, true);
+ ctx.stroke();
+}
+
+function Clear()
+{
+ var canvas = document.getElementById("canvas");
+ var ctx = canvas.getContext("2d");
+ ctx.clearRect(0, 0, canvas_width, canvas_height);
+}
+
+function Rect(x1, y1, w, h, color)
+{
+ var ctx = document.getElementById('canvas').getContext('2d');
+ ctx.fillStyle = color;
+ ctx.fillRect(x1, y1, w, h);
+}
+
+//------------------------------ SAVE ------------------------------------------
+function Save(url) // (del?) no for pdf
+{
+ for (key in j_tabs) {
+ document.getElementById('t_x_' + key + '_').value = parseInt(document.getElementById(key).style.left);
+ document.getElementById('t_y_' + key + '_').value = parseInt(document.getElementById(key).style.top);
+ document.getElementById('t_v_' + key + '_').value = document.getElementById('id_tbody_' + key).style.display == 'none' ? 0 : 1;
+ document.getElementById('t_h_' + key + '_').value = document.getElementById('check_vis_' + key).checked ? 1 : 0;
+ }
+ document.form1.action = url;
+ document.form1.submit();
+}
+
+function Get_url_pos()
+{
+ var poststr = '';
+ for (key in j_tabs) {
+ poststr += '&t_x[' + key + ']=' + parseInt(document.getElementById(key).style.left);
+ poststr += '&t_y[' + key + ']=' + parseInt(document.getElementById(key).style.top);
+ poststr += '&t_v[' + key + ']=' + (document.getElementById('id_tbody_' + key).style.display == 'none' ? 0 : 1);
+ poststr += '&t_h[' + key + ']=' + (document.getElementById('check_vis_' + key).checked ? 1 : 0);
+ }
+ return poststr;
+}
+
+function Save2()
+{
+ var poststr = 'IS_AJAX=1&server='+server+'&db=' + db + '&token=' + token + '&die_save_pos=1';
+ poststr += Get_url_pos();
+ makeRequest('pmd_save_pos.php', poststr);
+}
+
+function Grid()
+{
+ if (!ON_grid) {
+ ON_grid = 1;
+ document.getElementById('grid_button').className = 'M_butt_Selected_down';
+ } else {
+ document.getElementById('grid_button').className = 'M_butt';
+ ON_grid = 0;
+ }
+}
+
+function Angular_direct()
+{
+ if (ON_angular_direct) {
+ ON_angular_direct = 0;
+ document.getElementById('angular_direct_button').className = 'M_butt_Selected_down';
+ } else {
+ ON_angular_direct = 1;
+ document.getElementById('angular_direct_button').className = 'M_butt';
+ }
+ Re_load();
+}
+//++++++++++++++++++++++++++++++ RELATION ++++++++++++++++++++++++++++++++++++++
+function Start_relation()
+{
+ if (ON_display_field) {
+ return;
+ }
+
+ if (!ON_relation) {
+ document.getElementById('foreign_relation').style.display = '';
+ ON_relation = 1;
+ document.getElementById('hint').innerHTML = LangSelectReferencedKey;
+ document.getElementById('hint').style.visibility = "visible";
+ document.getElementById('rel_button').className = 'M_butt_Selected_down';
+ } else {
+ document.getElementById('hint').innerHTML = "";
+ document.getElementById('hint').style.visibility = "hidden";
+ document.getElementById('rel_button').className = 'M_butt';
+ click_field = 0;
+ ON_relation = 0;
+ }
+}
+
+function Click_field(T, f, PK) // table field
+{
+ if (ON_relation) {
+ if (!click_field) {
+ //.style.display=='none' .style.visibility = "hidden"
+ if (!PK) {
+ alert(LangPleaseSelectPrimaryOrUniqueKey);
+ return;// 0;
+ }//PK
+ if (j_tabs[db + '.' + T] != '1') {
+ document.getElementById('foreign_relation').style.display = 'none';
+ }
+ click_field = 1;
+ link_relation = "T1=" + T + "&F1=" + f;
+ document.getElementById('hint').innerHTML = LangSelectForeignKey;
+ } else {
+ Start_relation(); // hidden hint...
+ if (j_tabs[db + '.' + T] != '1' || !PK) {
+ document.getElementById('foreign_relation').style.display = 'none';
+ }
+ var left = Glob_X - (document.getElementById('layer_new_relation').offsetWidth>>1);
+ document.getElementById('layer_new_relation').style.left = left + 'px';
+ var top = Glob_Y - document.getElementById('layer_new_relation').offsetHeight - 10;
+ document.getElementById('layer_new_relation').style.top = top + 'px';
+ document.getElementById('layer_new_relation').style.visibility = "visible";
+ link_relation += '&T2=' + T + '&F2=' + f;
+ }
+ }
+
+ if (ON_display_field) {
+ // if is display field
+ if (display_field[T] == f) {
+ //alert(T);
+ //s = '';for(k in display_field)s += k + ' = ' + display_field[k] + ',';alert(s);
+ old_class = 'tab_field';
+ //display_field.splice(T, 1);
+ delete display_field[T];
+ //s = '';for(k in display_field)s += k + ' = ' + display_field[k] + ', ';alert(s);
+ //n = 0;for(k in display_field)n++;alert(n);
+ } else {
+ old_class = 'tab_field_3';
+ if (display_field[T]) {
+ document.getElementById('id_tr_' + T + '.' + display_field[T]).className = 'tab_field';
+ //display_field.splice(T, 1);
+ delete display_field[T];
+ }
+ display_field[T] = f;
+ }
+ ON_display_field = 0;
+ document.getElementById('hint').innerHTML = "";
+ document.getElementById('hint').style.visibility = "hidden";
+ document.getElementById('display_field_button').className = 'M_butt';
+ makeRequest('pmd_display_field.php', 'T=' + T + '&F=' + f + '&server=' + server + '&db=' + db + '&token=' + token);
+ }
+}
+
+function New_relation()
+{
+ document.getElementById('layer_new_relation').style.visibility = 'hidden';
+ link_relation += '&server=' + server + '&db=' + db + '&token=' + token + '&die_save_pos=0';
+ link_relation += '&on_delete=' + document.getElementById('on_delete').value + '&on_update=' + document.getElementById('on_update').value;
+ link_relation += Get_url_pos();
+
+ //alert(link_relation);
+ makeRequest('pmd_relation_new.php', link_relation);
+}
+
+//-------------------------- create tables -------------------------------------
+
+function Start_table_new()
+{
+ window.location.href = 'db_operations.php?server=' + server + '&db=' + db + '&token=' + token;
+}
+
+function Start_tab_upd(table)
+{
+ window.location.href = 'tbl_structure.php?server=' + server + '&db=' + db + '&token=' + token + '&table=' + table;
+}
+//--------------------------- hide tables --------------------------------------
+
+function Small_tab_all(id_this) // max/min all tables
+{
+ if (id_this.alt == "v") {
+ for (key in j_tabs) {
+ if (document.getElementById('id_hide_tbody_'+key).innerHTML == "v") {
+ Small_tab(key, 0);
+ }
+ }
+ id_this.alt = ">";
+ id_this.src = "pmd/images/rightarrow1.png";
+ } else {
+ for (key in j_tabs) {
+ if (document.getElementById('id_hide_tbody_'+key).innerHTML != "v") {
+ Small_tab(key, 0);
+ }
+ }
+ id_this.alt = "v";
+ id_this.src = "pmd/images/downarrow1.png";
+ }
+ Re_load();
+}
+
+function Small_tab_invert() // invert max/min all tables
+{
+ for (key in j_tabs) {
+ Small_tab(key, 0);
+ }
+ Re_load();
+}
+
+function Small_tab_refresh()
+{
+ for (key in j_tabs) {
+ if(document.getElementById('id_hide_tbody_'+key).innerHTML != "v") {
+ Small_tab(key, 0);
+ Small_tab(key, 0);
+ }
+ }
+}
+
+function Small_tab(t, re_load)
+{
+ var id = document.getElementById('id_tbody_' + t);
+ var id_this = document.getElementById('id_hide_tbody_' + t);
+ var id_t = document.getElementById(t);
+
+ id_t.style.width = id_t.offsetWidth + 'px';
+ if (id_this.innerHTML == "v") {
+ //---CROSS
+ id.style.display = 'none';
+ id_this.innerHTML = '>';
+ } else {
+ id.style.display = '';
+ id_this.innerHTML = 'v';
+ }
+ if (re_load) {
+ Re_load();
+ }
+}
+//------------------------------------------------------------------------------
+function Select_tab(t)
+{
+ var id_zag = document.getElementById('id_zag_' + t);
+ if (id_zag.className != 'tab_zag_3') {
+ document.getElementById('id_zag_' + t).className = 'tab_zag_2';
+ } else {
+ document.getElementById('id_zag_' + t).className = 'tab_zag';
+ }
+ //----------
+ var id_t = document.getElementById(t);
+ window.scrollTo(parseInt(id_t.style.left) - 300, parseInt(id_t.style.top) - 300);
+
+ setTimeout(function(){document.getElementById('id_zag_' + t).className = 'tab_zag';}, 800);
+}
+//------------------------------------------------------------------------------
+
+function Canvas_click(id)
+{
+ var n = 0;
+ var relation_name = 0;
+ var selected = 0;
+ var a = new Array();
+ var Key0, Key1, Key2, Key3, Key, x1, x2;
+ Clear();
+ for (K in contr)
+ for (key in contr[K])
+ for (key2 in contr[K][key])
+ for (key3 in contr[K][key][key2]) {
+ if (!document.getElementById("check_vis_"+key2).checked ||
+ !document.getElementById("check_vis_"+contr[K][key][key2][key3][0]).checked) continue; // if hide
+ var x1_left = document.getElementById(key2).offsetLeft + 1;//document.getElementById(key2+"."+key3).offsetLeft;
+ var x1_right = x1_left + document.getElementById(key2).offsetWidth;
+ var x2_left = document.getElementById(contr[K][key][key2][key3][0]).offsetLeft;//+document.getElementById(contr[K][key2][key3][0]+"."+contr[K][key2][key3][1]).offsetLeft
+ var x2_right = x2_left + document.getElementById(contr[K][key][key2][key3][0]).offsetWidth;
+ a[0] = Math.abs(x1_left - x2_left);
+ a[1] = Math.abs(x1_left - x2_right);
+ a[2] = Math.abs(x1_right - x2_left);
+ a[3] = Math.abs(x1_right - x2_right);
+ n = s_left = s_right = 0;
+ for (var i = 1; i < 4; i++) {
+ if (a[n] > a[i]) {
+ n = i;
+ }
+ }
+ if (n == 1) {
+ x1 = x1_left - sm_s;
+ x2 = x2_right + sm_s;
+ if (x1 < x2) {
+ n = 0;
+ }
+ }
+ if (n == 2) {
+ x1 = x1_right + sm_s;
+ x2 = x2_left - sm_s;
+ if (x1 > x2) {
+ n = 0;
+ }
+ }
+ if (n == 3) {
+ x1 = x1_right + sm_s;
+ x2 = x2_right + sm_s;
+ s_right = 1;
+ }
+ if (n == 0) {
+ x1 = x1_left - sm_s;
+ x2 = x2_left - sm_s;
+ s_left = 1;
+ }
+
+ var y1 = document.getElementById(key2).offsetTop + document.getElementById(key2+"."+key3).offsetTop + height_field;
+ var y2 = document.getElementById(contr[K][key][key2][key3][0]).offsetTop +
+ document.getElementById(contr[K][key][key2][key3][0]+"."+contr[K][key][key2][key3][1]).offsetTop + height_field;
+ if (!selected && Glob_X > x1 - 10 && Glob_X < x1 + 10 && Glob_Y > y1 - 7 && Glob_Y < y1 + 7) {
+ Line0(x1 - sm_x, y1 - sm_y, x2 - sm_x, y2 - sm_y, "rgba(255,0,0,1)");
+ selected = 1; // Rect(x1-sm_x,y1-sm_y,10,10,"rgba(0,255,0,1)");
+ relation_name = key; //
+ Key0 = contr[K][key][key2][key3][0];
+ Key1 = contr[K][key][key2][key3][1];
+ Key2 = key2; Key3 = key3;
+ Key = K;
+ } else {
+ Line0(x1 - sm_x, y1 - sm_y, x2 - sm_x, y2 - sm_y, "rgba(0,100,150,1)");
+ }
+ }
+ if (selected) {
+ // select relations
+ //alert(Key0+' - '+Key1+' - '+Key2+' - '+Key3);
+ var left = Glob_X - (document.getElementById('layer_upd_relation').offsetWidth>>1);
+ document.getElementById('layer_upd_relation').style.left = left + 'px';
+ var top = Glob_Y - document.getElementById('layer_upd_relation').offsetHeight - 10;
+ document.getElementById('layer_upd_relation').style.top = top + 'px';
+ document.getElementById('layer_upd_relation').style.visibility = 'visible';
+ link_relation = 'T1=' + Key0 + '&F1=' + Key1 + '&T2=' + Key2 + '&F2=' + Key3 + '&K=' + Key;
+ }
+}
+
+function Upd_relation()
+{
+ document.getElementById('layer_upd_relation').style.visibility = 'hidden';
+ link_relation += '&server=' + server + '&db=' + db + '&token=' + token + '&die_save_pos=0';
+ link_relation += Get_url_pos();
+ makeRequest('pmd_relation_upd.php', link_relation);
+}
+
+function VisibleTab(id, t_n)
+{
+ if (id.checked) {
+ document.getElementById(t_n).style.visibility = 'visible';
+ } else {
+ document.getElementById(t_n).style.visibility = 'hidden';
+ }
+ Re_load();
+}
+
+function Hide_tab_all(id_this) // max/min all tables
+{
+ if (id_this.alt == 'v') {
+ id_this.alt = '>';
+ id_this.src = "pmd/images/rightarrow1.png";
+ } else {
+ id_this.alt = 'v';
+ id_this.src = "pmd/images/downarrow1.png";
+ }
+ var E = document.form1;
+ for (i = 0; i < E.elements.length; i++) {
+ if (E.elements[i].type == "checkbox" && E.elements[i].id.substring(0, 10) == 'check_vis_') {
+ if (id_this.alt == 'v') {
+ E.elements[i].checked = true;
+ document.getElementById(E.elements[i].value).style.visibility = 'visible';
+ } else {
+ E.elements[i].checked = false;
+ document.getElementById(E.elements[i].value).style.visibility = 'hidden';
+ }
+ }
+ }
+ Re_load();
+}
+
+function in_array_k(x, m)
+{
+ var b = 0;
+ for (u in m) {
+ if (x == u) {
+ b=1;
+ break;
+ }
+ }
+ return b;
+}
+
+function No_have_constr(id_this)
+{
+ var a = new Array();
+ for (K in contr)
+ for (key in contr[K]) // contr name
+ for (key2 in contr[K][key]) // table name
+ for (key3 in contr[K][key][key2]) // field name
+ a[key2] = a[contr[K][key][key2][key3][0]] = 1; // exist constr
+
+
+ if (id_this.alt == 'v') {
+ id_this.alt = '>';
+ id_this.src = "pmd/images/rightarrow2.png";
+ } else {
+ id_this.alt = 'v';
+ id_this.src = "pmd/images/downarrow2.png";
+ }
+ var E = document.form1;
+ for (i = 0; i < E.elements.length; i++) {
+ if (E.elements[i].type == "checkbox" && E.elements[i].id.substring(0, 10) == 'check_vis_')
+ {
+ if (!in_array_k(E.elements[i].value, a))
+ if (id_this.alt == 'v') {
+ E.elements[i].checked = true;
+ document.getElementById(E.elements[i].value).style.visibility = 'visible';
+ } else {
+ E.elements[i].checked = false;
+ document.getElementById(E.elements[i].value).style.visibility = 'hidden';
+ }
+ }
+ }
+}
+
+function Help()
+{
+ var WinHelp = window.open("pmd_help.php", "wind1", "top=200,left=400,width=300,height=200,resizable=yes,scrollbars=yes,menubar=no");
+}
+
+function PDF_save()
+{
+ // var WinPDF =
+ // window.open("pmd_pdf.php?token="+token+"&db="+db,"wind1", "top=200,left=200,width=200,height=100,resizable=yes,scrollbars=yes,menubar=no");
+ Save('pmd_pdf.php?server=' + server + '&token=' + token + '&db=' + db);
+}
+
+function General_scroll()
+{
+ /*
+ if (!document.getElementById('show_relation_olways').checked) {
+ document.getElementById("canvas").style.visibility = 'hidden';
+ clearTimeout(timeoutID);
+ timeoutID = setTimeout(General_scroll_end, 500);
+ }
+ */
+ //if (timeoutID)
+ clearTimeout(timeoutID);
+ timeoutID = setTimeout
+ (
+ function()
+ {
+ document.getElementById('top_menu').style.left = document.body.scrollLeft + 'px';
+ document.getElementById('top_menu').style.top = document.body.scrollTop + 'px';
+ document.getElementById('layer_menu').style.left = document.body.scrollLeft + 'px';
+ document.getElementById('layer_menu').style.top = (document.body.scrollTop + document.getElementById('top_menu').offsetHeight) + 'px';
+ }
+ ,200
+ );
+}
+
+/*
+function General_scroll_end()
+{
+ document.getElementById('layer_menu').style.left = document.body.scrollLeft;
+ document.getElementById('layer_menu').style.top = document.body.scrollTop + document.getElementById('top_menu').offsetHeight;
+ if (isIE) {
+ document.getElementById('layer_menu').style.left = document.body.scrollLeft;
+ document.getElementById('layer_menu').style.top = document.body.scrollTop + document.getElementById('top_menu').offsetHeight;
+ }
+ document.getElementById("canvas").style.visibility = 'visible';
+}
+*/
+
+function Show_left_menu(id_this) // max/min all tables
+{
+ if (id_this.alt == "v") {
+ document.getElementById("layer_menu").style.top = document.getElementById('top_menu').offsetHeight + 'px';
+ document.getElementById("layer_menu").style.visibility = 'visible';
+ id_this.alt = ">";
+ id_this.src = "pmd/images/uparrow2_m.png";
+ if (isIE) {
+ General_scroll();
+ }
+ } else {
+ document.getElementById("layer_menu").style.top = -1000 + 'px'; //fast scroll
+ document.getElementById("layer_menu").style.visibility = 'hidden';
+ id_this.alt = "v";
+ id_this.src = "pmd/images/downarrow2_m.png";
+ }
+}
+//------------------------------------------------------------------------------
+function Top_menu_right(id_this)
+{
+ if (id_this.alt == ">") {
+ document.getElementById('top_menu').style.marginLeft = document.getElementById('top_menu').offsetWidth + 'px'; // = 350
+ id_this.alt = "<";
+ id_this.src = "pmd/images/2leftarrow_m.png";
+ } else {
+ document.getElementById('top_menu').style.marginLeft = 0;
+ id_this.alt = ">";
+ id_this.src = "pmd/images/2rightarrow_m.png";
+ }
+}
+//------------------------------------------------------------------------------
+function Start_display_field()
+{
+ if (ON_relation) {
+ return;
+ }
+ if (!ON_display_field) {
+ ON_display_field = 1;
+ document.getElementById('hint').innerHTML = LangChangeDisplay;
+ document.getElementById('hint').style.visibility = "visible";
+ document.getElementById('display_field_button').className = 'M_butt_Selected_down';//'#FFEE99';gray #AAAAAA
+
+ if (isIE) { // correct for IE
+ document.getElementById('display_field_button').className = 'M_butt_Selected_down_IE';
+ }
+ } else {
+ document.getElementById('hint').innerHTML = "";
+ document.getElementById('hint').style.visibility = "hidden";
+ document.getElementById('display_field_button').className = 'M_butt';
+ ON_display_field = 0;
+ }
+}
diff --git a/pmd/styles/default/images/1.png b/pmd/styles/default/images/1.png
new file mode 100644
index 0000000000..d459b0129d
--- /dev/null
+++ b/pmd/styles/default/images/1.png
Binary files differ
diff --git a/pmd/styles/default/images/2.png b/pmd/styles/default/images/2.png
new file mode 100644
index 0000000000..1839f285eb
--- /dev/null
+++ b/pmd/styles/default/images/2.png
Binary files differ
diff --git a/pmd/styles/default/images/3.png b/pmd/styles/default/images/3.png
new file mode 100644
index 0000000000..9675a12d07
--- /dev/null
+++ b/pmd/styles/default/images/3.png
Binary files differ
diff --git a/pmd/styles/default/images/4.png b/pmd/styles/default/images/4.png
new file mode 100644
index 0000000000..9001dbaa61
--- /dev/null
+++ b/pmd/styles/default/images/4.png
Binary files differ
diff --git a/pmd/styles/default/images/5.png b/pmd/styles/default/images/5.png
new file mode 100644
index 0000000000..bd0c434452
--- /dev/null
+++ b/pmd/styles/default/images/5.png
Binary files differ
diff --git a/pmd/styles/default/images/6.png b/pmd/styles/default/images/6.png
new file mode 100644
index 0000000000..f09fce8d99
--- /dev/null
+++ b/pmd/styles/default/images/6.png
Binary files differ
diff --git a/pmd/styles/default/images/7.png b/pmd/styles/default/images/7.png
new file mode 100644
index 0000000000..bbdfc0f9f6
--- /dev/null
+++ b/pmd/styles/default/images/7.png
Binary files differ
diff --git a/pmd/styles/default/images/8.png b/pmd/styles/default/images/8.png
new file mode 100644
index 0000000000..f9f60240ee
--- /dev/null
+++ b/pmd/styles/default/images/8.png
Binary files differ
diff --git a/pmd/styles/default/images/FieldKey_small.png b/pmd/styles/default/images/FieldKey_small.png
new file mode 100644
index 0000000000..02304c43cc
--- /dev/null
+++ b/pmd/styles/default/images/FieldKey_small.png
Binary files differ
diff --git a/pmd/styles/default/images/Field_small.png b/pmd/styles/default/images/Field_small.png
new file mode 100644
index 0000000000..fef085698f
--- /dev/null
+++ b/pmd/styles/default/images/Field_small.png
Binary files differ
diff --git a/pmd/styles/default/images/Field_small_char.png b/pmd/styles/default/images/Field_small_char.png
new file mode 100644
index 0000000000..04d6d971fa
--- /dev/null
+++ b/pmd/styles/default/images/Field_small_char.png
Binary files differ
diff --git a/pmd/styles/default/images/Field_small_date.png b/pmd/styles/default/images/Field_small_date.png
new file mode 100644
index 0000000000..1df1b3b6c3
--- /dev/null
+++ b/pmd/styles/default/images/Field_small_date.png
Binary files differ
diff --git a/pmd/styles/default/images/Field_small_int.png b/pmd/styles/default/images/Field_small_int.png
new file mode 100644
index 0000000000..99f5966d79
--- /dev/null
+++ b/pmd/styles/default/images/Field_small_int.png
Binary files differ
diff --git a/pmd/styles/default/images/Header.png b/pmd/styles/default/images/Header.png
new file mode 100644
index 0000000000..89e2b6f88a
--- /dev/null
+++ b/pmd/styles/default/images/Header.png
Binary files differ
diff --git a/pmd/styles/default/images/Header_Linked.png b/pmd/styles/default/images/Header_Linked.png
new file mode 100644
index 0000000000..d8181ba839
--- /dev/null
+++ b/pmd/styles/default/images/Header_Linked.png
Binary files differ
diff --git a/pmd/styles/default/images/left_panel_butt.png b/pmd/styles/default/images/left_panel_butt.png
new file mode 100644
index 0000000000..16c2fc6907
--- /dev/null
+++ b/pmd/styles/default/images/left_panel_butt.png
Binary files differ
diff --git a/pmd/styles/default/images/left_panel_tab.png b/pmd/styles/default/images/left_panel_tab.png
new file mode 100644
index 0000000000..fe85629332
--- /dev/null
+++ b/pmd/styles/default/images/left_panel_tab.png
Binary files differ
diff --git a/pmd/styles/default/images/small_tab.png b/pmd/styles/default/images/small_tab.png
new file mode 100644
index 0000000000..8ca5e76603
--- /dev/null
+++ b/pmd/styles/default/images/small_tab.png
Binary files differ
diff --git a/pmd/styles/default/images/top_panel.png b/pmd/styles/default/images/top_panel.png
new file mode 100644
index 0000000000..513b979b91
--- /dev/null
+++ b/pmd/styles/default/images/top_panel.png
Binary files differ
diff --git a/pmd/styles/default/style1.css b/pmd/styles/default/style1.css
new file mode 100644
index 0000000000..ff6e48f816
--- /dev/null
+++ b/pmd/styles/default/style1.css
@@ -0,0 +1,380 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+body {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ background-color: #EAEEF0;
+ color: #000000;
+ margin: 0;
+}
+
+img {
+ border: 0;
+}
+
+.input_tab {
+ background-color: #A6C7E1;
+ color: #000000;
+}
+
+table {
+ font-size: 12px;
+}
+
+#canvas {
+ background-color: #FFFFFF;
+ color: #000000;
+}
+
+canvas {
+ display: inline-block;
+ overflow: hidden;
+ text-align: left;
+}
+
+canvas * {
+ behavior: url(#default#VML);
+}
+
+.tab {
+ background-color: #FFFFFF;
+ color: #000000;
+ border-collapse: collapse;
+ border: 1px solid #AAAAAA;
+ font-family: Tahoma, sans-serif;
+ font-size: 10px;
+ z-index: 1;
+ -moz-user-select: none;
+}
+
+.tab_zag {
+ background-image: url(images/Header.png);
+ background-repeat: repeat-x;
+ text-align: center;
+ cursor: move;
+ padding: 1px;
+ font-weight: bold;
+}
+
+.tab_zag_2 {
+ background-image: url(images/Header_Linked.png);
+ background-repeat: repeat-x;
+ text-align: center;
+ cursor: move;
+ padding: 1px;
+ font-weight: bold;
+}
+
+.tab_field {
+ background: #FFFFFF;
+ color: #000000;
+ cursor: default;
+}
+
+.tab_field_2 {
+ background-color: #CCFFCC;
+ color: #000000;
+ background-repeat: repeat-x;
+ cursor: default;
+}
+
+.tab_field_3 {
+ background-color: #FFE6E6; /*#DDEEFF*/
+ color: #000000;
+ cursor: default;
+}
+
+#hint {
+ white-space: nowrap;
+ position: absolute;
+ background-color: #99FF99;
+ color: #000000;
+ left: 200px;
+ top: 50px;
+ z-index: 3;
+ border: #00CC66 solid 1px;
+ visibility: hidden;
+}
+
+form {
+ margin: 0;
+}
+
+.scroll_tab {
+ overflow: auto;
+ width: 100%;
+ height: 500px;
+}
+
+.Tabs {
+ cursor: default;
+ font-family: Tahoma, sans-serif;
+ font-size: 10px;
+ color: #0055bb;
+ white-space: nowrap;
+ text-decoration: none;
+ text-indent: 3px;
+ font-weight: bold;
+ margin-left: 2px;
+ text-align: left;
+ background-color: #FFFFFF;
+ background-image: url(images/left_panel_butt.png);
+ border: #CCCCCC solid 1px;
+}
+
+.Tabs2 {
+ cursor: default;
+ font-family: Tahoma, sans-serif;
+ font-size: 10px;
+ color: #0055bb;
+ background: #FFEE99;
+ text-indent: 3px;
+ font-weight: bold;
+ white-space: nowrap;
+ text-decoration: none;
+ border: #9999FF solid 1px;
+ text-align: left;
+}
+
+.owner {
+ font-family: Tahoma, sans-serif;
+ font-size: 9px;
+ font-weight: normal;
+/* background-color: #ffffff;*/
+ color: #888888;
+}
+
+.small_tab {
+ vertical-align: top;
+ background-color: #0064ea;
+ color: #FFFFFF;
+ background-image: url(images/small_tab.png);
+ cursor: default;
+ text-align: center;
+ font-weight: bold;
+ padding-left: 2px;
+ padding-right: 2px;
+ width: 1px;
+ text-decoration: none;
+}
+
+.small_tab2 {
+ vertical-align: top;
+ color: #FFFFFF;
+ background-color: #FF9966;
+ cursor: default;
+ padding-left: 2px;
+ padding-right: 2px;
+ text-align: center;
+ font-weight: bold;
+ width: 1px;
+ text-decoration: none;
+}
+
+.small_tab_pref {
+ background-image: url(images/Header.png);
+ background-repeat: repeat-x;
+ text-align: center;
+ width: 1px;
+}
+
+.small_tab_pref2 {
+ vertical-align: top;
+ color: #FFFFFF;
+ background-color: #FF9966;
+ cursor: default;
+ text-align: center;
+ font-weight: bold;
+ width: 1px;
+ text-decoration: none;
+}
+
+input, select, textarea {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ border: #6699CC solid 1px;
+ background-color: #FFFFFF;
+ color: #000000;
+}
+
+.butt {
+ border: #4477aa solid 1px;
+ font-size: 11px;
+ font-weight: bold;
+ height: 19px;
+ width: 70px;
+ background-color: #FFFFFF;
+ color: #000000;
+ vertical-align: baseline;
+}
+
+.L_butt2_1 {
+ font-size: 12px;
+ padding: 1px;
+ text-decoration: none;
+ background-color: #ffffff;
+ color: #000000;
+ vertical-align: middle;
+ cursor: default;
+}
+
+.L_butt2_2 {
+ font-size: 12px;
+ padding: 0;
+ border: #0099CC solid 1px;
+ background: #FFEE99;
+ text-decoration: none;
+ color: #000000;
+ cursor: default;
+}
+
+/* ---------------------------------------------------------------------------*/
+.bor {
+ width: 10px;
+ height: 10px;
+}
+
+.frams1 {
+ background: url(images/1.png) no-repeat right bottom;
+}
+
+.frams2 {
+ background: url(images/2.png) no-repeat left bottom;
+}
+
+.frams3 {
+ background: url(images/3.png) no-repeat left top;
+}
+
+.frams4 {
+ background: url(images/4.png) no-repeat right top;
+}
+
+.frams5 {
+ background: url(images/5.png) repeat-x center bottom;
+}
+
+.frams6 {
+ background: url(images/6.png) repeat-y left;
+}
+
+.frams7 {
+ background: url(images/7.png) repeat-x top;
+}
+
+.frams8 {
+ background: url(images/8.png) repeat-y right;
+}
+
+#osn_tab {
+ background-color: #FFFFFF;
+ color: #000000;
+ border: #A9A9A9 solid 1px;
+}
+
+.header {
+/* width: 350px; */
+ background-color: #EAEEF0;
+ color: #000000;
+ text-align: center;
+ font-weight: bold;
+ left: 0;
+ top: 0;
+ position: fixed;
+ margin: 0;
+ z-index: 1001;
+ padding: 0;
+ background-image: url(images/top_panel.png);
+ background-position: top;
+ background-repeat: repeat-x;
+ border-right: #999999 solid 1px;
+/* border-bottom:#999999 solid 1px;*/
+ border-left: #999999 solid 1px;
+ height: 28px;
+}
+
+.header a {
+ display: block;
+ float: left;
+ margin: 3px 1px 4px 1px;
+ height: 20px;
+ border: 1px dotted #ffffff;
+}
+
+.header .M_bord {
+ display: block;
+ float: left;
+ margin: 4px;
+ height: 20px;
+ width: 2px;
+}
+
+.header a.first {
+ margin-right: 1em;
+}
+
+.header a.last {
+ margin-left: 1em;
+}
+
+a.M_butt_Selected_down_IE,
+a.M_butt_Selected_down {
+ border: 1px solid #C0C0BB;
+ background-color: #99FF99;
+ color: #000000;
+}
+
+a.M_butt_Selected_down_IE:hover,
+a.M_butt_Selected_down:hover,
+a.M_butt:hover {
+ border: 1px solid #0099CC;
+ background-color: #FFEE99;
+ color: #000000;
+}
+
+#layer_menu {
+ left: 0;
+ top: 28px;
+ width: 150px;
+ position: fixed;
+ z-index: 1000;
+ background-color: #EAEEF0;
+ border: #999999 solid 1px;
+}
+
+#layer_action {
+ position: absolute;
+ left: 638px;
+ top: 52px;
+ z-index: 1000;
+ background-color: #CCFF99;
+ padding: 3px;
+ border: #009933 solid 1px;
+ white-space: nowrap;
+ font-weight: bold;
+}
+
+#layer_upd_relation {
+ position: absolute;
+ left: 637px;
+ top: 224px;
+ z-index: 1000;
+}
+
+#layer_new_relation {
+ position: absolute;
+ left: 636px;
+ top: 85px;
+ z-index: 1000;
+ width: 153px;
+}
+
+#layer_menu_sizer {
+ background-image: url(../../images/resize.png);
+ cursor: nw-resize;
+ width: 16px;
+ height: 16px;
+} \ No newline at end of file
diff --git a/pmd_common.php b/pmd_common.php
new file mode 100644
index 0000000000..d52ee67ca3
--- /dev/null
+++ b/pmd_common.php
@@ -0,0 +1,298 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @author Ivan A Kirillov (Ivan.A.Kirillov@gmail.com)
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+// not understand
+require_once './libraries/header_http.inc.php';
+
+$GLOBALS['PMD']['STYLE'] = 'default';
+
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+$GLOBALS['script_display_field'] =
+ '<script type="text/javascript">' . "\n" .
+ '// <![CDATA[' . "\n" .
+ 'var display_field = new Array();' . "\n";
+
+/**
+ * retrieves table info and stores it in $GLOBALS['PMD']
+ *
+ * @uses $GLOBALS['script_display_field']
+ * @uses $GLOBALS['PMD'] to fill it
+ * @uses $GLOBALS['db']
+ * @uses PMA_DBI_get_tables_full()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_getDisplayField()
+ * @uses urlencode()
+ * @uses htmlspecialchars()
+ * @uses strtoupper()
+ * @uses urlencode()
+ */
+function get_tabs()
+{
+ $GLOBALS['PMD']['TABLE_NAME'] = array();// that foreach no error
+ $GLOBALS['PMD']['OWNER'] = array();
+ $GLOBALS['PMD']['TABLE_NAME_SMALL'] = array();
+
+ $tables = PMA_DBI_get_tables_full($GLOBALS['db']);
+ // seems to be needed later
+ PMA_DBI_select_db($GLOBALS['db']);
+ $i = 0;
+ foreach ($tables as $one_table) {
+ $GLOBALS['PMD']['TABLE_NAME'][$i] = $GLOBALS['db'] . "." . $one_table['TABLE_NAME'];
+ $GLOBALS['PMD']['OWNER'][$i] = $GLOBALS['db'];
+ $GLOBALS['PMD']['TABLE_NAME_SMALL'][$i] = $one_table['TABLE_NAME'];
+
+ $GLOBALS['PMD_URL']['TABLE_NAME'][$i] = urlencode($GLOBALS['db'] . "." . $one_table['TABLE_NAME']);
+ $GLOBALS['PMD_URL']['OWNER'][$i] = urlencode($GLOBALS['db']);
+ $GLOBALS['PMD_URL']['TABLE_NAME_SMALL'][$i] = urlencode($one_table['TABLE_NAME']);
+
+ $GLOBALS['PMD_OUT']['TABLE_NAME'][$i] = htmlspecialchars($GLOBALS['db'] . "." . $one_table['TABLE_NAME'], ENT_QUOTES);
+ $GLOBALS['PMD_OUT']['OWNER'][$i] = htmlspecialchars($GLOBALS['db'], ENT_QUOTES);
+ $GLOBALS['PMD_OUT']['TABLE_NAME_SMALL'][$i] = htmlspecialchars($one_table['TABLE_NAME'], ENT_QUOTES);
+
+ $GLOBALS['PMD']['TABLE_TYPE'][$i] = strtoupper($one_table['ENGINE']);
+
+ $DF = PMA_getDisplayField($GLOBALS['db'], $one_table['TABLE_NAME']);
+ if ($DF != '') {
+ $GLOBALS['script_display_field'] .= " display_field['"
+ . $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i] . "'] = '"
+ . urlencode($DF) . "';\n";
+ }
+
+ $i++;
+ }
+
+ $GLOBALS['script_display_field'] .=
+ '// ]]>' . "\n" .
+ '</script>' . "\n";
+ // return $GLOBALS['PMD']; // many bases // not use ??????
+}
+
+/**
+ * retrieves table column info
+ *
+ * @uses $GLOBALS['db']
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_num_rows()
+ * @uses PMA_backquote()
+ * @uses count()
+ * @return array table column nfo
+ */
+function get_tab_info()
+{
+ PMA_DBI_select_db($GLOBALS['db']);
+ $tab_column = array();
+ for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) {
+ $fields_rs = PMA_DBI_query('SHOW FULL FIELDS FROM '.PMA_backquote($GLOBALS['PMD']["TABLE_NAME_SMALL"][$i]), NULL, PMA_DBI_QUERY_STORE);
+ $j = 0;
+ while ($row = PMA_DBI_fetch_assoc($fields_rs)) {
+ $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_ID'][$j] = $j;
+ $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_NAME'][$j] = $row['Field'];
+ $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['TYPE'][$j] = $row['Type'];
+ $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['NULLABLE'][$j] = $row['Null'];
+ $j++;
+ }
+ }
+ return $tab_column;
+}
+
+/**
+ * returns JavaScript code for intializing vars
+ *
+ * @uses $GLOBALS['db']
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_DBI_query()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_getForeigners()
+ * @uses urlencode()
+ * @uses count()
+ * @uses in_array()
+ * @return string JavaScript code
+ */
+function get_script_contr()
+{
+ PMA_DBI_select_db($GLOBALS['db']);
+ $con["C_NAME"] = array();
+ $i = 0;
+ $alltab_rs = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($GLOBALS['db']), NULL, PMA_DBI_QUERY_STORE);
+ while ($val = @PMA_DBI_fetch_row($alltab_rs)) {
+ $row = PMA_getForeigners($GLOBALS['db'], $val[0], '', 'internal');
+ //echo "<br> internal ".$GLOBALS['db']." - ".$val[0]." - ";
+ //print_r($row);
+ if ($row !== false) {
+ foreach ($row as $field => $value) {
+ $con['C_NAME'][$i] = '';
+ $con['DTN'][$i] = urlencode($GLOBALS['db'] . "." . $val[0]);
+ $con['DCN'][$i] = urlencode($field);
+ $con['STN'][$i] = urlencode($value['foreign_db'] . "." . $value['foreign_table']);
+ $con['SCN'][$i] = urlencode($value['foreign_field']);
+ $i++;
+ }
+ }
+ $row = PMA_getForeigners($GLOBALS['db'], $val[0], '', 'foreign');
+ //echo "<br> INNO ";
+ //print_r($row);
+ if ($row !== false) {
+ foreach ($row as $field => $value) {
+ $con['C_NAME'][$i] = '';
+ $con['DTN'][$i] = urlencode($GLOBALS['db'].".".$val[0]);
+ $con['DCN'][$i] = urlencode($field);
+ $con['STN'][$i] = urlencode($value['foreign_db'].".".$value['foreign_table']);
+ $con['SCN'][$i] = urlencode($value['foreign_field']);
+ $i++;
+ }
+ }
+ }
+
+ $ti = 0;
+ $script_contr =
+ '<script type="text/javascript">' . "\n" .
+ '// <![CDATA[' . "\n" .
+ 'var contr = new Array();' . "\n";
+ for ($i = 0; $i < count($con["C_NAME"]); $i++) {
+ $js_var = ' contr[' . $ti . ']';
+ $script_contr .= $js_var . " = new Array();\n";
+ $js_var .= "['" . $con['C_NAME'][$i] . "']";
+ $script_contr .= $js_var . " = new Array();\n";
+ if (in_array($con['DTN'][$i], $GLOBALS['PMD_URL']["TABLE_NAME"])
+ && in_array($con['STN'][$i], $GLOBALS['PMD_URL']["TABLE_NAME"])) {
+ $js_var .= "['" . $con['DTN'][$i] . "']";
+ $script_contr .= $js_var . " = new Array();\n";
+ $m_col = array();//}
+ $js_var .= "['" . $con['DCN'][$i] . "']";
+ $script_contr .= $js_var . " = new Array();\n";//}
+ $script_contr .= $js_var . "[0] = '" . $con['STN'][$i] . "';\n"; //
+ $script_contr .= $js_var . "[1] = '" . $con['SCN'][$i] . "';\n"; //
+ }
+ $ti++;
+ }
+ $script_contr .=
+ '// ]]>' . "\n" .
+ '</script>' . "\n";
+ return $script_contr;
+}
+
+/**
+ * @uses get_all_keys()
+ * @return array unique or primary indizes
+ */
+function get_pk_or_unique_keys()
+{
+ return get_all_keys(true);
+}
+
+/**
+ * returns all indizes
+ *
+ * @uses $GLOBALS['PMD']
+ * @uses PMA_Index::getFromTable()
+ * @uses PMA_Index->isUnique()
+ * @uses PMA_Index->getColumns()
+ * @param boolean whether to include ony unique ones
+ * @return array indizes
+ */
+function get_all_keys($unique_only = false)
+{
+ require_once './libraries/Index.class.php';
+
+ $keys = array();
+
+ foreach ($GLOBALS['PMD']['TABLE_NAME_SMALL'] as $I => $table) {
+ $schema = $GLOBALS['PMD']['OWNER'][$I];
+ // for now, take into account only the first index segment
+ foreach (PMA_Index::getFromTable($table, $schema) as $index) {
+ if ($unique_only && ! $index->isUnique()) {
+ continue;
+ }
+ $column = key($index->getColumns());
+ $keys[$schema . '.' .$table . '.' . $column] = 1;
+ }
+ }
+
+ return $keys;
+}
+
+/**
+ *
+ *
+ * @uses $GLOBALS['PMD']
+ * @uses count()
+ * @uses in_array()
+ * @return array ???
+ */
+function get_script_tabs()
+{
+ $script_tabs =
+ '<script type="text/javascript">' . "\n" .
+ '// <![CDATA[' . "\n" .
+ 'var j_tabs = new Array();' . "\n";
+ for ($i = 0; $i < count($GLOBALS['PMD']['TABLE_NAME']); $i++) {
+ $script_tabs .= "j_tabs['" . $GLOBALS['PMD_URL']['TABLE_NAME'][$i] . "'] = '"
+ . (PMA_foreignkey_supported($GLOBALS['PMD']['TABLE_TYPE'][$i]) ? '1' : '0') . "';\n";
+ }
+ $script_tabs .=
+ '// ]]>' . "\n" .
+ '</script>' . "\n";
+ return $script_tabs;
+}
+
+/**
+ * @uses $GLOBALS['controllink']
+ * @uses $cfgRelation['designerwork']
+ * @uses $cfgRelation['db']
+ * @uses $cfgRelation['designer_coords']
+ * @uses PMA_DBI_QUERY_STORE
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_backquote()
+ * @uses PMA_DBI_fetch_result()
+ * @uses count()
+ * @return array table positions and sizes
+ */
+function get_tab_pos()
+{
+ $cfgRelation = PMA_getRelationsParam();
+
+ if (! $cfgRelation['designerwork']) {
+ return null;
+ }
+
+ $query = "
+ SELECT CONCAT_WS('.', `db_name`, `table_name`) AS `name`,
+ `x` AS `X`,
+ `y` AS `Y`,
+ `v` AS `V`,
+ `h` AS `H`
+ FROM " . PMA_backquote($cfgRelation['db']) . "." . PMA_backquote($cfgRelation['designer_coords']);
+ $tab_pos = PMA_DBI_fetch_result($query, 'name', null, $GLOBALS['controllink'], PMA_DBI_QUERY_STORE);
+ return count($tab_pos) ? $tab_pos : null;
+}
+
+/**
+ * returns distinct values from $GLOBALS['PMD']['OWNER']
+ *
+ * @uses array_values()
+ * @uses array_unique()
+ * @uses $GLOBALS['PMD']['OWNER']
+ * @return array owner
+ */
+function get_owners()
+{
+ return array_values(array_unique($GLOBALS['PMD']['OWNER']));
+}
+
+get_tabs();
+?>
diff --git a/pmd_display_field.php b/pmd_display_field.php
new file mode 100644
index 0000000000..28e2000c52
--- /dev/null
+++ b/pmd_display_field.php
@@ -0,0 +1,50 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @author Ivan A Kirillov (Ivan.A.Kirillov@gmail.com)
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+include_once 'pmd_common.php';
+require_once './libraries/relation.lib.php';
+
+
+$table = $T;
+$display_field = $F;
+
+if ($cfgRelation['displaywork']) {
+
+ $disp = PMA_getDisplayField($db, $table);
+ if ($disp) {
+ if ($display_field != $disp) {
+ $upd_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' SET display_field = \'' . PMA_sqlAddslashes($display_field) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ } else {
+ $upd_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ }
+ } elseif ($display_field != '') {
+ $upd_query = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . '(db_name, table_name, display_field) '
+ . ' VALUES('
+ . '\'' . PMA_sqlAddslashes($db) . '\','
+ . '\'' . PMA_sqlAddslashes($table) . '\','
+ . '\'' . PMA_sqlAddslashes($display_field) . '\')';
+ }
+
+ if (isset($upd_query)) {
+ $upd_rs = PMA_query_as_cu($upd_query);
+ }
+} // end if
+
+header("Content-Type: text/xml; charset=utf-8");
+header("Cache-Control: no-cache");
+die("<root act='save_pos' return='strModifications'></root>");
+?>
diff --git a/pmd_general.php b/pmd_general.php
new file mode 100644
index 0000000000..479284ea22
--- /dev/null
+++ b/pmd_general.php
@@ -0,0 +1,407 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @author Ivan A Kirillov (Ivan.A.Kirillov@gmail.com)
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+require_once "./pmd_common.php";
+
+$tab_column = get_tab_info();
+$script_tabs = get_script_tabs();
+$script_contr = get_script_contr();
+$tab_pos = get_tab_pos();
+$tables_pk_or_unique_keys = get_pk_or_unique_keys();
+$tables_all_keys = get_all_keys();
+$hidden = "hidden";
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $GLOBALS['available_languages'][$GLOBALS['lang']][2]; ?>" lang="<?php echo $GLOBALS['available_languages'][$GLOBALS['lang']][2]; ?>" dir="<?php echo $GLOBALS['text_dir']; ?>">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset ?>" />
+ <link rel="icon" href="pmd/images/favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="pmd/images/favicon.ico" type="image/x-icon" />
+ <link rel="stylesheet" type="text/css" href="pmd/styles/<?php echo $GLOBALS['PMD']['STYLE'] ?>/style1.css" />
+ <title>Designer</title>
+ <script type="text/javascript">
+ // <![CDATA[
+<?php
+echo '
+ var server = "' . PMA_escapeJsString($server) . '";
+ var db = "' . PMA_escapeJsString($db) . '";
+ var token = "' . PMA_escapeJsString($token) . '";
+ var LangSelectReferencedKey = "' . PMA_escapeJsString($strSelectReferencedKey) . '";
+ var LangSelectForeignKey = "' . PMA_escapeJsString($strSelectForeignKey) . '";
+ var LangPleaseSelectPrimaryOrUniqueKey = "' . PMA_escapeJsString($strPleaseSelectPrimaryOrUniqueKey) . '";
+ var LangIEnotSupport = "' . PMA_escapeJsString($strIEUnsupported) . '";
+ var LangChangeDisplay = "' . PMA_escapeJsString($strChangeDisplay) . '";
+
+ var strLang = Array();
+ strLang["strModifications"] = "' . PMA_escapeJsString($strModifications) . '";
+ strLang["strRelationDeleted"] = "' . PMA_escapeJsString($strRelationDeleted) . '";
+ strLang["strForeignKeyRelationAdded"] = "' . PMA_escapeJsString($strForeignKeyRelationAdded). '";
+ strLang["strGeneralRelationFeat:strDisabled"] = "' . PMA_escapeJsString($strGeneralRelationFeat . ' : ' . $strDisabled) . '";
+ strLang["strInternalRelationAdded"] = "' . PMA_escapeJsString($strInternalRelationAdded) . '";
+ strLang["strErrorRelationAdded"] = "' . PMA_escapeJsString($strErrorRelationAdded) . '";
+ strLang["strErrorRelationExists"] = "' . PMA_escapeJsString($strErrorRelationExists) . '";
+ strLang["strErrorSaveTable"] = "' . PMA_escapeJsString($strErrorSaveTable) . '";';
+?>
+
+ // ]]>
+ </script>
+ <script src="pmd/scripts/ajax.js" type="text/javascript"></script>
+ <script src="pmd/scripts/move.js" type="text/javascript"></script>
+ <!--[if IE]>
+ <script src="pmd/scripts/iecanvas.js" type="text/javascript"></script>
+ <![endif]-->
+<?php
+echo $script_tabs . $script_contr . $script_display_field;
+?>
+
+</head>
+<body onload="Main()" class="general_body" id="pmd_body">
+
+<div class="header" id="top_menu">
+ <a href="javascript:Show_left_menu(document.getElementById('key_Show_left_menu'));"
+ onmousedown="return false;" class="M_butt first" target="_self">
+ <img id='key_Show_left_menu' title="<?php echo $strShowHideLeftMenu; ?>"
+ alt="v" src="pmd/images/downarrow2_m.png" /></a>
+ <a href="javascript:Save2();" onmousedown="return false;"
+ class="M_butt" target="_self"
+ ><img title="<?php echo $strSavePosition ?>" src="pmd/images/save.png" alt=""
+ /></a><a href="javascript:Start_table_new();" onmousedown="return false;"
+ class="M_butt" target="_self"
+ ><img title="<?php echo $strCreateTable ?>" src="pmd/images/table.png" alt=""
+ /></a><a href="javascript:Start_relation();" onmousedown="return false;"
+ class="M_butt" id="rel_button" target="_self"
+ ><img title="<?php echo $strCreateRelation ?>" src="pmd/images/relation.png" alt=""
+ /></a><a href="javascript:Start_display_field();" onmousedown="return false;"
+ class="M_butt" id="display_field_button" target="_self"
+ ><img title="<?php echo $strChangeDisplay ?>" src="pmd/images/display_field.png" alt=""
+ /></a><a href="javascript:location.reload();" onmousedown="return false;"
+ class="M_butt" target="_self"
+ ><img title="<?php echo $strReload; ?>" src="pmd/images/reload.png" alt=""
+ /></a><a href="javascript:Help();" onmousedown="return false;"
+ class="M_butt" target="_self"
+ ><img title="<?php echo $strHelp; ?>" src="pmd/images/help.png" alt=""
+ /></a><img class="M_bord" src="pmd/images/bord.png" alt=""
+ /><a href="javascript:Angular_direct();" onmousedown="return false;"
+ class="M_butt" id="angular_direct_button" target="_self"
+ ><img title="<?php echo $strAngularLinks . ' / ' . $strDirectLinks; ?>"
+ src="pmd/images/ang_direct.png" alt=""
+ /></a><a href="javascript:Grid();" onmousedown="return false;"
+ class="M_butt" id="grid_button" target="_self"
+ ><img title="<?php echo $strSnapToGrid ?>" src="pmd/images/grid.png" alt=""
+ /></a><img class="M_bord" src="pmd/images/bord.png" alt=""
+ /><a href="javascript:Small_tab_all(document.getElementById('key_SB_all'));"
+ onmousedown="return false;" class="M_butt" target="_self"
+ ><img id='key_SB_all' title="<?php echo $strSmallBigAll; ?>" alt="v"
+ src="pmd/images/downarrow1.png"
+ /></a><a href="javascript:Small_tab_invert();" onmousedown="return false;"
+ class="M_butt" target="_self"
+ ><img title="<?php echo $strToggleSmallBig; ?>" alt="key" src="pmd/images/bottom.png"
+ /></a><img class="M_bord" src="pmd/images/bord.png" alt=""
+ /><a href="javascript:PDF_save();" onmousedown="return false;"
+ class="M_butt" target="_self"
+ ><img src="pmd/images/pdf.png" alt="key" width="20" height="20"
+ title="<?php echo $strImportExportCoords; ?>" /></a>
+ <a href="javascript:Top_menu_right(document.getElementById('key_Left_Right'));"
+ onmousedown="return false;" class="M_butt last" target="_self">
+ <img src="pmd/images/2rightarrow_m.png" id="key_Left_Right" alt=">"
+ title="<?php echo $strMoveMenu; ?>" /></a>
+</div>
+
+<div id="osn_tab">
+ <CANVAS id="canvas" width="100" height="100" onclick="Canvas_click(this)"></CANVAS>
+</div>
+
+<form action="" method="post" name="form1">
+<div id="layer_menu" style="visibility:<?php echo $hidden ?>;">
+<div align="center" style="padding-top:5px;">
+ <a href="javascript:Hide_tab_all(document.getElementById('key_HS_all'));"
+ onmousedown="return false;" class="M_butt" target="_self">
+ <img title="<?php echo $strHideShowAll; ?>" alt="v"
+ src="pmd/images/downarrow1.png" id='key_HS_all' /></a>
+ <a href="javascript:No_have_constr(document.getElementById('key_HS'));"
+ onmousedown="return false;" class="M_butt" target="_self">
+ <img title="<?php echo $strHideShowNoRelation; ?>" alt="v"
+ src="pmd/images/downarrow2.png" id='key_HS' /></a>
+</div>
+
+<div id="id_scroll_tab" class="scroll_tab">
+ <table width="100%" style="padding-left: 3px;">
+<?php
+for ($i = 0; $i < count($GLOBALS['PMD']['TABLE_NAME']); $i++) {
+ ?>
+ <tr><td title="<?php echo $strStructure; ?>" width="1px"
+ onmouseover="this.className='L_butt2_2'"
+ onmouseout="this.className='L_butt2_1'">
+ <img onclick="Start_tab_upd('<?php echo $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i]; ?>');"
+ src="pmd/images/exec.png" alt="" /></td>
+ <td width="1px">
+ <input onclick="VisibleTab(this,'<?php echo $GLOBALS['PMD_URL']["TABLE_NAME"][$i]; ?>')"
+ title="<?php echo $strHide ?>"
+ id="check_vis_<?php echo $GLOBALS['PMD_URL']["TABLE_NAME"][$i]; ?>"
+ style="margin:0px;" type="checkbox"
+ value="<?php echo $GLOBALS['PMD_URL']["TABLE_NAME"][$i]; ?>"
+ <?php
+ if (isset($tab_pos[$GLOBALS['PMD']["TABLE_NAME"][$i]])) {
+ echo $tab_pos[$GLOBALS['PMD']["TABLE_NAME"][$i]]["H"] ? 'checked="checked"' : '';
+ } else {
+ echo 'checked="checked"';
+ }
+ ?> /></td>
+ <td class="Tabs" onmouseover="this.className='Tabs2'"
+ onmouseout="this.className='Tabs'"
+ onclick="Select_tab('<?php echo $GLOBALS['PMD_URL']["TABLE_NAME"][$i]; ?>');">
+ <?php echo $GLOBALS['PMD_OUT']["TABLE_NAME"][$i]; ?></td>
+ </tr>
+ <?php
+}
+?>
+ </table>
+</div>
+
+<div align="center">
+ <?php echo $strNumberOfTables ?>: <?php echo count($GLOBALS['PMD']['TABLE_NAME']) ?>
+</div>
+<div align="right">
+ <div id="layer_menu_sizer" onmousedown="layer_menu_cur_click=1">
+ </div>
+</div>
+</div>
+<?php
+for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) {
+ $t_n = $GLOBALS['PMD']["TABLE_NAME"][$i];
+ $t_n_url = $GLOBALS['PMD_URL']["TABLE_NAME"][$i];
+
+ ?>
+<input name="t_x[<?php echo $t_n_url ?>]" type="hidden" id="t_x_<?php echo $t_n_url ?>_" />
+<input name="t_y[<?php echo $t_n_url ?>]" type="hidden" id="t_y_<?php echo $t_n_url ?>_" />
+<input name="t_v[<?php echo $t_n_url ?>]" type="hidden" id="t_v_<?php echo $t_n_url ?>_" />
+<input name="t_h[<?php echo $t_n_url ?>]" type="hidden" id="t_h_<?php echo $t_n_url ?>_" />
+
+<table id="<?php echo $t_n_url ?>" cellpadding="0" cellspacing="0" class="tab"
+ style="position: absolute;
+ left: <?php if (isset($tab_pos[$t_n])) echo $tab_pos[$t_n]["X"]; else echo rand(180, 800); ?>px;
+ top: <?php if (isset($tab_pos[$t_n])) echo $tab_pos[$t_n]["Y"]; else echo rand(30, 500); ?>px;
+ visibility: <?php if (isset($tab_pos[$t_n])) echo $tab_pos[$t_n]["H"] ? "visible" : "hidden"; ?>;
+ ">
+<thead>
+<tr>
+ <td class="small_tab" onmouseover="this.className='small_tab2';"
+ onmouseout="this.className='small_tab';"
+ id="id_hide_tbody_<?php echo $t_n_url ?>"
+ onclick="Small_tab('<?php echo $t_n_url ?>', 1)"><?php
+ // no space alloawd here, between tags and content !!!
+ // JavaScript function does require this
+ if (! isset($tab_pos[$t_n]) || ! empty($tab_pos[$t_n]["V"])) {
+ echo 'v';
+ } else {
+ echo '&gt;';
+ }
+ ?></td>
+ <td class="small_tab_pref" onmouseover="this.className='small_tab_pref2';"
+ onmouseout="this.className='small_tab_pref';"
+ onclick="Start_tab_upd('<?php echo $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i]; ?>');">
+ <img src="pmd/images/exec_small.png" alt="" /></td>
+ <td nowrap="nowrap" id="id_zag_<?php echo $t_n_url ?>" class="tab_zag"
+ onmousedown="cur_click=document.getElementById('<?php echo $t_n_url ?>');"
+ onmouseover="this.className = 'tab_zag_2'"
+ onmouseout="this.className = 'tab_zag'">
+ <span class='owner'>
+ <?php
+ echo $GLOBALS['PMD_OUT']["OWNER"][$i];
+ echo '.</span>';
+ echo $GLOBALS['PMD_OUT']["TABLE_NAME_SMALL"][$i];
+ ?></td>
+</tr>
+</thead>
+<tbody id="id_tbody_<?php echo $t_n_url ?>"
+ <?php if (! isset($tab_pos[$t_n])) echo 'style="display: none;"'; ?>>
+ <?php
+ $display_field = PMA_getDisplayField($db, $GLOBALS['PMD']["TABLE_NAME_SMALL"][$i]);
+ for ($j = 0; $j < count($tab_column[$t_n]["COLUMN_ID"]); $j++) {
+ ?>
+<tr id="id_tr_<?php
+ echo $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i] . '.'
+ . urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]) ?>"
+ <?php
+ if ($display_field == $tab_column[$t_n]["COLUMN_NAME"][$j]) {
+ echo ' class="tab_field_3" ';
+ } else {
+ echo ' class="tab_field" ';
+ }
+ ?>
+ onmouseover="old_class = this.className; this.className = 'tab_field_2';"
+ onmouseout="this.className = old_class;"
+ onmousedown="Click_field('<?php
+ echo $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i]."','".urlencode($tab_column[$t_n]["COLUMN_NAME"][$j])."',";
+ if (! PMA_foreignkey_supported($GLOBALS['PMD']['TABLE_TYPE'][$i])) {
+ echo (isset($tables_pk_or_unique_keys[$t_n . "." . $tab_column[$t_n]["COLUMN_NAME"][$j]]) ? 1 : 0);
+ } else {
+ // if foreign keys are supported, it's not necessary that the
+ // index is a primary key
+ echo (isset($tables_all_keys[$t_n.".".$tab_column[$t_n]["COLUMN_NAME"][$j]]) ? 1 : 0);
+ }
+ ?>)">
+ <td width="10px" colspan="3"
+ id="<?php echo $t_n_url.".".urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]) ?>">
+ <div style="white-space:nowrap">
+ <?php
+ if (isset($tables_pk_or_unique_keys[$t_n.".".$tab_column[$t_n]["COLUMN_NAME"][$j]])) {
+ ?>
+ <img src="pmd/styles/<?php echo $GLOBALS['PMD']['STYLE'];?>/images/FieldKey_small.png"
+ alt="*" />
+ <?php
+ } else {
+ ?>
+ <img src="pmd/styles/<?php echo $GLOBALS['PMD']['STYLE']?>/images/Field_small<?php
+ if (strstr($tab_column[$t_n]["TYPE"][$j],'char')
+ || strstr($tab_column[$t_n]["TYPE"][$j],'text')) {
+ echo '_char';
+ } elseif (strstr($tab_column[$t_n]["TYPE"][$j],'int')
+ || strstr($tab_column[$t_n]["TYPE"][$j],'float')
+ || strstr($tab_column[$t_n]["TYPE"][$j],'double')
+ || strstr($tab_column[$t_n]["TYPE"][$j],'decimal')) {
+ echo '_int';
+ } elseif (strstr($tab_column[$t_n]["TYPE"][$j],'date')
+ || strstr($tab_column[$t_n]["TYPE"][$j],'time')
+ || strstr($tab_column[$t_n]["TYPE"][$j],'year')) {
+ echo '_date';
+ }
+ ?>.png" alt="*" />
+ <?php
+ }
+ echo htmlspecialchars($tab_column[$t_n]["COLUMN_NAME"][$j]
+ . " : " . $tab_column[$t_n]["TYPE"][$j], ENT_QUOTES);
+ ?>
+ </div>
+ </td>
+</tr>
+ <?php
+ }
+ ?>
+</tbody>
+</table>
+ <?php
+}
+?>
+</form>
+<div id="hint"></div>
+<div id='layer_action' style="visibility:<?php echo $hidden ?>;">Load...</div>
+
+<table id="layer_new_relation" style="visibility:<?php echo $hidden ?>;"
+ width="5%" border="0" cellpadding="0" cellspacing="0">
+<tbody>
+<tr>
+ <td class="frams1" width="10px"></td>
+ <td class="frams5" width="99%" ></td>
+ <td class="frams2" width="10px"><div class="bor"></div></td>
+</tr>
+<tr>
+ <td class="frams8"></td>
+ <td class="input_tab">
+ <table width="168" border="0" align="center" cellpadding="2" cellspacing="0">
+ <thead>
+ <tr>
+ <td colspan="2" align="center" nowrap="nowrap"><strong><?php echo $strCreateRelation; ?></strong></td>
+ </tr>
+ </thead>
+ <tbody id="foreign_relation">
+ <tr>
+ <td colspan="2" align="center" nowrap="nowrap"><strong>FOREIGN KEY</strong></td>
+ </tr>
+ <tr>
+ <td width="58" nowrap="nowrap">on delete</td>
+ <td width="102"><select name="on_delete" id="on_delete">
+ <option value="nix" selected="selected">--</option>
+ <option value="CASCADE">CASCADE</option>
+ <option value="SET NULL">SET NULL</option>
+ <option value="NO ACTION">NO ACTION</option>
+ <option value="RESTRICT">RESTRICT</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">on update</td>
+ <td><select name="on_update" id="on_update">
+ <option value="nix" selected="selected">--</option>
+ <option value="CASCADE">CASCADE</option>
+ <option value="SET NULL">SET NULL</option>
+ <option value="NO ACTION">NO ACTION</option>
+ <option value="RESTRICT">RESTRICT</option>
+ </select>
+ </td>
+ </tr>
+ </tbody>
+ <tbody>
+ <tr>
+ <td colspan="2" align="center" nowrap="nowrap">
+ <input type="button" class="butt" name="Button"
+ value="<?php echo $strOK; ?>" onclick="New_relation()" />
+ <input type="button" class="butt" name="Button"
+ value="<?php echo $strCancel; ?>"
+ onclick="document.getElementById('layer_new_relation').style.visibility = 'hidden';" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ <td class="frams6"></td>
+</tr>
+<tr>
+ <td class="frams4"><div class="bor"></div></td>
+ <td class="frams7"></td>
+ <td class="frams3"></td>
+</tr>
+</tbody>
+</table>
+
+<table id="layer_upd_relation" style="visibility:<?PHP echo $hidden ?>;"
+ width="5%" border="0" cellpadding="0" cellspacing="0">
+<tbody>
+<tr>
+ <td class="frams1" width="10px"></td>
+ <td class="frams5" width="99%"></td>
+ <td class="frams2" width="10px"><div class="bor"></div></td>
+</tr>
+<tr>
+ <td class="frams8"></td>
+ <td class="input_tab">
+ <table width="100%" border="0" align="center" cellpadding="2" cellspacing="0">
+ <tr>
+ <td colspan="3" align="center" nowrap="nowrap"><strong><?php echo $strDeleteRelation; ?></strong></td>
+ </tr>
+ <tr>
+ <td colspan="3" align="center" nowrap="nowrap">
+ <input name="Button" type="button" class="butt"
+ onclick="Upd_relation()" value="<?php echo $strDelete; ?>" />
+ <input type="button" class="butt" name="Button"
+ value="<?php echo $strCancel; ?>"
+ onclick="document.getElementById('layer_upd_relation').style.visibility = 'hidden'; Re_load();" />
+ </td>
+ </tr>
+ </table></td>
+ <td class="frams6"></td>
+</tr>
+<tr>
+ <td class="frams4"><div class="bor"></div></td>
+ <td class="frams7"></td>
+ <td class="frams3"></td>
+</tr>
+</tbody>
+</table>
+<!-- cache images -->
+<img src="pmd/images/2leftarrow_m.png" width="0" height="0" alt="" />
+<img src="pmd/images/rightarrow1.png" width="0" height="0" alt="" />
+<img src="pmd/images/rightarrow2.png" width="0" height="0" alt="" />
+<img src="pmd/images/uparrow2_m.png" width="0" height="0" alt="" />
+</body>
+</html>
diff --git a/pmd_help.php b/pmd_help.php
new file mode 100644
index 0000000000..4a1e407020
--- /dev/null
+++ b/pmd_help.php
@@ -0,0 +1,32 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+require_once 'pmd_common.php';
+?>
+<html>
+<head>
+<?php if(0){ ?>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
+<link rel="stylesheet" type="text/css" href="./libraries/pmd/styles/default/style1.css">
+<?php } ?>
+<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $charset ?>" />
+<link rel="stylesheet" type="text/css" href="./libraries/pmd/styles/<?php echo $GLOBALS['PMD']['STYLE'] ?>/style1.css">
+<title>Designer</title>
+</head>
+
+<body>
+<?php
+ echo '<p>' . $GLOBALS['strToSelectRelation'] . '<br />';
+ echo '<img src="pmd/images/help_relation.png" border="1"></p>';
+ echo '<p>' . $GLOBALS['strDesignerHelpDisplayField'] . '</p>';
+?>
+</body>
+</html>
diff --git a/pmd_pdf.php b/pmd_pdf.php
new file mode 100644
index 0000000000..ae72741d92
--- /dev/null
+++ b/pmd_pdf.php
@@ -0,0 +1,105 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+include_once 'pmd_common.php';
+if (! isset($scale)) {
+ $no_die_save_pos = 1;
+ include_once 'pmd_save_pos.php';
+}
+require_once './libraries/relation.lib.php';
+
+if (isset($scale) && ! isset($createpage)) {
+ if (empty($pdf_page_number)) {
+ die("<script>alert('Pages not found!');history.go(-2);</script>");
+ }
+
+ $pmd_table = PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['designer_coords']);
+ $pma_table = PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_coords']);
+
+ if (isset($exp)) {
+
+ $sql = "REPLACE INTO " . $pma_table . " (db_name, table_name, pdf_page_number, x, y) SELECT db_name, table_name, " . $pdf_page_number . ", ROUND(x/" . $scale . ") , ROUND(y/" . $scale . ") y FROM " . $pmd_table . " WHERE db_name = '" . $db . "'";
+
+ PMA_query_as_cu($sql,TRUE,PMA_DBI_QUERY_STORE);
+ }
+
+ if (isset($imp)) {
+ PMA_query_as_cu(
+ 'UPDATE ' . $pma_table . ',' . $pmd_table .
+ ' SET ' . $pmd_table . '.`x`= ' . $pma_table . '.`x` * '. $scale . ',
+ ' . $pmd_table . '.`y`= ' . $pma_table . '.`y` * '.$scale.'
+ WHERE
+ ' . $pmd_table . '.`db_name`=' . $pma_table . '.`db_name`
+ AND
+ ' . $pmd_table . '.`table_name` = ' . $pma_table . '.`table_name`
+ AND
+ ' . $pmd_table . '.`db_name`=\''.$db.'\'
+ AND pdf_page_number = '.$pdf_page_number.';',TRUE,PMA_DBI_QUERY_STORE); }
+
+ die("<script>alert('$strModifications');history.go(-2);</script>");
+}
+if (isset($createpage)) {
+ /*
+ * @see pdf_pages.php
+ */
+ $query_default_option = PMA_DBI_QUERY_STORE;
+
+ $pdf_page_number = PMA_REL_create_page($newpage, $cfgRelation, $db, $query_default_option);
+}
+// no need to use pmd/styles
+require_once './libraries/header_meta_style.inc.php';
+?>
+</head>
+<body>
+<br>
+<div>
+ <form name="form1" method="post" action="pmd_pdf.php">
+<?php echo PMA_generate_common_hidden_inputs($db); ?>
+ <div>
+ <fieldset><legend><?php echo $GLOBALS['strExport'] . '/' . $GLOBALS['strImport']; ?></legend>
+ <p><?php echo $strExportImportToScale; ?>:
+ <select name="scale">
+ <option value="1">1:1</option>
+ <option value="2">1:2</option>
+ <option value="3" selected>1:3 (<?php echo $strRecommended; ?>)</option>
+ <option value="4">1:4</option>
+ <option value="5">1:5</option>
+ </select>
+ </p>
+ <p><?php echo $strToFromPage; ?>:
+
+ <select name="pdf_page_number">
+ <?php
+ $table_info_result = PMA_query_as_cu('SELECT * FROM '.PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['pdf_pages']).'
+ WHERE db_name = \''.$db.'\'');
+ while($page = PMA_DBI_fetch_assoc($table_info_result))
+ {
+ ?>
+ <option value="<?php echo $page['page_nr'] ?>"><?php echo $page['page_descr'] ?></option>
+ <?php
+ }
+ ?>
+ </select>
+ <input type="submit" name="exp" value="<?php echo $strExport; ?>">
+ <input type="submit" name="imp" value="<?php echo $strImport; ?>">
+ </fieldset>
+ </div>
+ <div>
+ <fieldset><legend><?php echo $GLOBALS['strCreatePage']; ?></legend>
+ <input type="text" name="newpage" />
+ <input type="submit" name="createpage" value="<?php echo $strGo; ?>">
+ </fieldset>
+ </div>
+ </form>
+</div>
+</body>
+</html>
+
diff --git a/pmd_relation_new.php b/pmd_relation_new.php
new file mode 100644
index 0000000000..4e435f60cc
--- /dev/null
+++ b/pmd_relation_new.php
@@ -0,0 +1,107 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+include_once 'pmd_common.php';
+$die_save_pos = 0;
+include_once 'pmd_save_pos.php';
+require_once './libraries/relation.lib.php';
+extract($_POST, EXTR_SKIP);
+
+$tables = PMA_DBI_get_tables_full($db, $T1);
+$type_T1 = strtoupper($tables[$T1]['ENGINE']);
+$tables = PMA_DBI_get_tables_full($db, $T2);
+//print_r($tables);
+//die();
+$type_T2 = strtoupper($tables[$T2]['ENGINE']);
+
+// native foreign key
+if (PMA_foreignkey_supported($type_T1) && PMA_foreignkey_supported($type_T2) && $type_T1 == $type_T2) {
+ // relation exists?
+ $existrel_foreign = PMA_getForeigners($db, $T2, '', 'foreign');
+ if (isset($existrel_foreign[$F2])
+ && isset($existrel_foreign[$F2]['constraint'])) {
+ PMD_return(0,'strErrorRelationExists');
+ }
+// note: in InnoDB, the index does not requires to be on a PRIMARY
+// or UNIQUE key
+// improve: check all other requirements for InnoDB relations
+ $result = PMA_DBI_query('SHOW INDEX FROM ' . PMA_backquote($T1) . ';');
+ $index_array1 = array(); // will be use to emphasis prim. keys in the table view
+ while ($row = PMA_DBI_fetch_assoc($result))
+ $index_array1[$row['Column_name']] = 1;
+ PMA_DBI_free_result($result);
+
+ $result = PMA_DBI_query('SHOW INDEX FROM ' . PMA_backquote($T2) . ';');
+ $index_array2 = array(); // will be used to emphasis prim. keys in the table view
+ while ($row = PMA_DBI_fetch_assoc($result))
+ $index_array2[$row['Column_name']] = 1;
+ PMA_DBI_free_result($result);
+
+ if (! empty($index_array1[$F1]) && ! empty($index_array2[$F2])) {
+ $upd_query = 'ALTER TABLE ' . PMA_backquote($T2)
+ . ' ADD FOREIGN KEY ('
+ . PMA_backquote($F2) . ')'
+ . ' REFERENCES '
+ . PMA_backquote($db) . '.'
+ . PMA_backquote($T1) . '('
+ . PMA_backquote($F1) . ')';
+
+ if ($on_delete != 'nix') {
+ $upd_query .= ' ON DELETE ' . $on_delete;
+ }
+ if ($on_update != 'nix') {
+ $upd_query .= ' ON UPDATE ' . $on_update;
+ }
+ PMA_DBI_try_query($upd_query) or PMD_return(0,'strErrorRelationAdded');
+ PMD_return(1,'strForeignKeyRelationAdded');
+ }
+
+// internal (pmadb) relation
+} else {
+ if ($GLOBALS['cfgRelation']['relwork'] == false) {
+ PMD_return(0, 'strGeneralRelationFeat:strDisabled');
+ } else {
+ // no need to recheck if the keys are primary or unique at this point,
+ // this was checked on the interface part
+
+ $q = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . '(master_db, master_table, master_field, foreign_db, foreign_table, foreign_field)'
+ . ' values('
+ . '\'' . PMA_sqlAddslashes($db) . '\', '
+ . '\'' . PMA_sqlAddslashes($T2) . '\', '
+ . '\'' . PMA_sqlAddslashes($F2) . '\', '
+ . '\'' . PMA_sqlAddslashes($db) . '\', '
+ . '\'' . PMA_sqlAddslashes($T1) . '\','
+ . '\'' . PMA_sqlAddslashes($F1) . '\')';
+
+ if (PMA_query_as_cu($q , false, PMA_DBI_QUERY_STORE)) {
+ PMD_return(1, 'strInternalRelationAdded');
+ } else {
+ PMD_return(0, 'strErrorRelationAdded');
+ }
+ }
+}
+
+function PMD_return($b,$ret)
+{
+ global $db,$T1,$F1,$T2,$F2;
+ header("Content-Type: text/xml; charset=utf-8");//utf-8 .$_GLOBALS['charset']
+ header("Cache-Control: no-cache");
+ die('<root act="relation_new" return="'.$ret.'" b="'.$b.
+ '" DB1="'.urlencode($db).
+ '" T1="'.urlencode($T1).
+ '" F1="'.urlencode($F1).
+ '" DB2="'.urlencode($db).
+ '" T2="'.urlencode($T2).
+ '" F2="'.urlencode($F2).
+ '"></root>');
+}
+?>
diff --git a/pmd_relation_upd.php b/pmd_relation_upd.php
new file mode 100644
index 0000000000..49ba898ff9
--- /dev/null
+++ b/pmd_relation_upd.php
@@ -0,0 +1,58 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+include_once 'pmd_common.php';
+require_once './libraries/relation.lib.php';
+extract($_POST, EXTR_SKIP);
+extract($_GET, EXTR_SKIP);
+$die_save_pos = 0;
+include_once 'pmd_save_pos.php';
+list($DB1,$T1) = explode(".",$T1);
+list($DB2,$T2) = explode(".",$T2);
+
+$tables = PMA_DBI_get_tables_full($db, $T1);
+$type_T1 = strtoupper($tables[$T1]['ENGINE']);
+$tables = PMA_DBI_get_tables_full($db, $T2);
+$type_T2 = strtoupper($tables[$T2]['ENGINE']);
+
+if (PMA_foreignkey_supported($type_T1) && PMA_foreignkey_supported($type_T2) && $type_T1 == $type_T2) {
+ // InnoDB
+ $existrel_foreign = PMA_getForeigners($DB2, $T2, '', 'foreign');
+
+ if (isset($existrel_foreign[$F2]['constraint'])) {
+ $upd_query = 'ALTER TABLE ' . PMA_backquote($T2)
+ . ' DROP FOREIGN KEY '
+ . PMA_backquote($existrel_foreign[$F2]['constraint']);
+ $upd_rs = PMA_DBI_query($upd_query);
+ }
+} else {
+ // internal relations
+ PMA_query_as_cu('DELETE FROM '
+ . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.'
+ . $cfg['Server']['relation'].' WHERE '
+ . 'master_db = \'' . PMA_sqlAddslashes($DB2) . '\''
+ . ' AND master_table = \'' . PMA_sqlAddslashes($T2) . '\''
+ . ' AND master_field = \'' . PMA_sqlAddslashes($F2) . '\''
+ . ' AND foreign_db = \'' . PMA_sqlAddslashes($DB1) . '\''
+ . ' AND foreign_table = \'' . PMA_sqlAddslashes($T1) . '\''
+ . ' AND foreign_field = \'' . PMA_sqlAddslashes($F1) . '\''
+ , FALSE, PMA_DBI_QUERY_STORE);
+}
+PMD_return(1, 'strRelationDeleted');
+
+function PMD_return($b,$ret)
+{
+ global $K;
+ header("Content-Type: text/xml; charset=utf-8");
+ header("Cache-Control: no-cache");
+ die('<root act="relation_upd" return="'.$ret.'" b="'.$b.'" K="'.$K.'"></root>');
+}
+?>
diff --git a/pmd_save_pos.php b/pmd_save_pos.php
new file mode 100644
index 0000000000..55501f48ad
--- /dev/null
+++ b/pmd_save_pos.php
@@ -0,0 +1,57 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ * @package phpMyAdmin-Designer
+ */
+
+/**
+ *
+ */
+include_once 'pmd_common.php';
+require_once './libraries/relation.lib.php';
+
+$cfgRelation = PMA_getRelationsParam();
+
+if (! $cfgRelation['designerwork']) {
+ PMD_err_sav();
+}
+
+foreach ($t_x as $key => $value) {
+ $KEY = empty($IS_AJAX) ? urldecode($key) : $key; // table name decode (post PDF exp/imp)
+ list($DB,$TAB) = explode(".", $KEY);
+ PMA_query_as_cu('DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['designer_coords']) . '
+ WHERE `db_name` = \'' . PMA_sqlAddslashes($DB) . '\'
+ AND `table_name` = \'' . PMA_sqlAddslashes($TAB) . '\'', true, PMA_DBI_QUERY_STORE);
+
+ PMA_query_as_cu('INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($GLOBALS['cfgRelation']['designer_coords']) . '
+ (db_name, table_name, x, y, v, h)
+ VALUES ('
+ . '\'' . PMA_sqlAddslashes($DB) . '\', '
+ . '\'' . PMA_sqlAddslashes($TAB) . '\', '
+ . '\'' . PMA_sqlAddslashes($t_x[$key]) . '\', '
+ . '\'' . PMA_sqlAddslashes($t_y[$key]) . '\', '
+ . '\'' . PMA_sqlAddslashes($t_v[$key]) . '\', '
+ . '\'' . PMA_sqlAddslashes($t_h[$key]) . '\''
+ . ')', true, PMA_DBI_QUERY_STORE);
+}
+//----------------------------------------------------------------------------
+
+function PMD_err_sav() {
+ global $die_save_pos; // if this file included
+ if (! empty($die_save_pos)) {
+ header("Content-Type: text/xml; charset=utf-8");
+ header("Cache-Control: no-cache");
+ die('<root act="save_pos" return="strErrorSaveTable"></root>');
+ }
+}
+
+if(! empty($die_save_pos)) {
+ header("Content-Type: text/xml; charset=utf-8");
+ header("Cache-Control: no-cache");
+?>
+<root act='save_pos' return='<?php echo 'strModifications'; ?>'></root>
+<?php
+}
+?>
diff --git a/print.css b/print.css
new file mode 100644
index 0000000000..54543dce2f
--- /dev/null
+++ b/print.css
@@ -0,0 +1,69 @@
+.print_ignore {
+ display: none;
+}
+
+body, table, th, td {
+ color: #000000;
+ background-color: #ffffff;
+ font-size: 8pt;
+}
+
+img {
+ border: 0;
+}
+
+table, th, td {
+ border-width: 0.1em;
+ border-color: #000000;
+ border-style: solid;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+th, td {
+ padding: 0.2em;
+}
+
+th {
+ font-weight: bold;
+ background-color: #e5e5e5;
+}
+
+@media print {
+ .print_ignore {
+ display: none;
+ }
+
+ body, table, th, td {
+ color: #000000;
+ background-color: #ffffff;
+ font-size: 8pt;
+ }
+
+ img {
+ border: 0;
+ }
+
+ table, th, td {
+ border-width: 1px;
+ border-color: #000000;
+ border-style: solid;
+ }
+
+ table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
+
+ th, td {
+ padding: 0.2em;
+ }
+
+ th {
+ font-weight: bold;
+ background-color: #e5e5e5;
+ }
+} \ No newline at end of file
diff --git a/querywindow.php b/querywindow.php
new file mode 100644
index 0000000000..f3946aa894
--- /dev/null
+++ b/querywindow.php
@@ -0,0 +1,273 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * this file is register_globals save
+ *
+ * @todo move JavaScript out of here into .js files
+ * @uses $cfg['QueryWindowDefTab']
+ * @uses $cfg['PropertiesIconic']
+ * @uses $cfg['QueryHistoryDB']
+ * @uses $cfg['Server']['user']
+ * @uses $cfg['AllowUserDropDatabase']
+ * @uses $cfg['Confirm']
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['strSQL']
+ * @uses $GLOBALS['strImportFiles']
+ * @uses $GLOBALS['strQuerySQLHistory']
+ * @uses $GLOBALS['strAll']
+ * @uses $GLOBALS['strChange']
+ * @uses $GLOBALS['strFormEmpty']
+ * @uses $GLOBALS['strNotNumber']
+ * @uses $GLOBALS['strNoDropDatabases']
+ * @uses $GLOBALS['strDoYouReally']
+ * @uses $GLOBALS['strQuerySQLHistory']
+ * @uses PMA_isSuperuser()
+ * @uses PMA_outBufferPre()
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_isValid()
+ * @uses PMA_ifSetOr()
+ * @uses PMA_getHistory()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_escapeJsString()
+ * @uses PMA_getTabs()
+ * @uses PMA_sqlQueryForm()
+ * @uses PMA_jsFormat()
+ * @uses in_array()
+ * @uses strlen()
+ * @uses preg_replace()
+ * @uses htmlspecialchars()
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+$is_superuser = PMA_isSuperuser();
+
+/**
+ * Gets a core script and starts output buffering work
+ */
+require_once './libraries/sql_query_form.lib.php';
+
+/**
+ * starts output buffering if requested and supported
+ */
+require_once './libraries/ob.lib.php';
+PMA_outBufferPre();
+
+/**
+ * load relations
+ */
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * load bookmark support
+ */
+require_once './libraries/bookmark.lib.php';
+
+$querydisplay_tabs = array(
+ 'sql',
+ 'files',
+ 'history',
+ 'full',
+);
+
+if (isset($_REQUEST['querydisplay_tab'])
+ && in_array($_REQUEST['querydisplay_tab'], $querydisplay_tabs)) {
+ $querydisplay_tab = $_REQUEST['querydisplay_tab'];
+} else {
+ $querydisplay_tab = $GLOBALS['cfg']['QueryWindowDefTab'];
+}
+
+/**
+ * $_REQUEST['no_js'] is set if open new window by JavaScript failed
+ * so this page is loaded in main frame
+ */
+$no_js = PMA_ifSetOr($_REQUEST['no_js'], false);
+
+if ($no_js) {
+ $querydisplay_tab = 'full';
+ $tabs = false;
+} else {
+ $tabs = array();
+ $tabs['sql']['icon'] = 'b_sql.png';
+ $tabs['sql']['text'] = $GLOBALS['strSQL'];
+ $tabs['sql']['fragment'] = '#';
+ $tabs['sql']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'sql\');return false;"';
+ $tabs['sql']['active'] = (bool) ($querydisplay_tab == 'sql');
+ $tabs['import']['icon'] = 'b_import.png';
+ $tabs['import']['text'] = $GLOBALS['strImportFiles'];
+ $tabs['import']['fragment'] = '#';
+ $tabs['import']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'files\');return false;"';
+ $tabs['import']['active'] = (bool) ($querydisplay_tab == 'files');
+ $tabs['history']['icon'] = 'b_bookmark.png';
+ $tabs['history']['text'] = $GLOBALS['strQuerySQLHistory'];
+ $tabs['history']['fragment'] = '#';
+ $tabs['history']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'history\');return false;"';
+ $tabs['history']['active'] = (bool) ($querydisplay_tab == 'history');
+
+ if ($GLOBALS['cfg']['QueryWindowDefTab'] == 'full') {
+ $tabs['all']['text'] = $GLOBALS['strAll'];
+ $tabs['all']['fragment'] = '#';
+ $tabs['all']['attr'] = 'onclick="javascript:PMA_querywindowCommit(\'full\');return false;"';
+ $tabs['all']['active'] = (bool) ($querydisplay_tab == 'full');
+ }
+}
+
+if ($GLOBALS['cfg']['PropertiesIconic']) {
+ $titles['Change'] =
+ '<img class="icon" width="16" height="16" src="' . $pmaThemeImage
+ . 'b_edit.png" alt="' . $GLOBALS['strChange'] . '" title="' . $GLOBALS['strChange']
+ . '" />';
+
+ if ('both' === $GLOBALS['cfg']['PropertiesIconic']) {
+ $titles['Change'] .= $GLOBALS['strChange'];
+ }
+} else {
+ $titles['Change'] = $GLOBALS['strChange'];
+}
+
+$url_query = PMA_generate_common_url($db, $table);
+
+if (! empty($sql_query)) {
+ $show_query = 1;
+}
+
+if ($no_js) {
+ // ... we redirect to appropriate query sql page
+ // works only full if $db and $table is also stored/grabbed from $_COOKIE
+ if (strlen($table)) {
+ require './tbl_sql.php';
+ } elseif (strlen($db)) {
+ require './db_sql.php';
+ } else {
+ require './server_sql.php';
+ }
+ exit;
+}
+
+/**
+ * Defines the query to be displayed in the query textarea
+ */
+if (! empty($show_query)) {
+ $query_to_display = $sql_query;
+} else {
+ $query_to_display = '';
+}
+$sql_query = '';
+
+/**
+ * prepare JavaScript functionality
+ */
+$js_include[] = 'common.js';
+$js_include[] = 'functions.js';
+$js_include[] = 'querywindow.js';
+
+if (PMA_isValid($_REQUEST['auto_commit'], 'identical', 'true')) {
+ $js_events[] = array(
+ 'object' => 'window',
+ 'event' => 'load',
+ 'function' => 'PMA_queryAutoCommit',
+ );
+}
+if (PMA_isValid($_REQUEST['init'])) {
+ $js_events[] = array(
+ 'object' => 'window',
+ 'event' => 'load',
+ 'function' => 'PMA_querywindowResize',
+ );
+}
+// always set focus to the textarea
+if ($querydisplay_tab == 'sql' || $querydisplay_tab == 'full') {
+ $js_events[] = array(
+ 'object' => 'window',
+ 'event' => 'load',
+ 'function' => 'PMA_querywindowSetFocus',
+ );
+}
+
+/**
+ * start HTTP/HTML output
+ */
+require_once './libraries/header_http.inc.php';
+require_once './libraries/header_meta_style.inc.php';
+require_once './libraries/header_scripts.inc.php';
+?>
+</head>
+
+<body id="bodyquerywindow">
+<div id="querywindowcontainer">
+<?php
+
+if ($tabs) {
+ echo PMA_getTabs($tabs);
+ unset($tabs);
+}
+
+PMA_sqlQueryForm($query_to_display, $querydisplay_tab);
+
+// Hidden forms and query frame interaction stuff
+
+$_sql_history = PMA_getHistory($GLOBALS['cfg']['Server']['user']);
+if (! empty($_sql_history)
+ && ($querydisplay_tab == 'history' || $querydisplay_tab == 'full')) {
+ $tab = $querydisplay_tab != 'full' ? 'sql' : 'full';
+ echo $GLOBALS['strQuerySQLHistory'] . ':<br />' . "\n"
+ .'<ul>';
+ foreach ($_sql_history as $query) {
+ echo '<li>' . "\n";
+
+ // edit link
+ $url_params = array(
+ 'querydisplay_tab' => $tab,
+ 'sql_query' => $query['sqlquery'],
+ 'db' => $query['db'],
+ 'table' => $query['table'],
+ );
+ echo '<a href="querywindow.php' . PMA_generate_common_url($url_params)
+ . '">' . $titles['Change'] . '</a>';
+
+ // execute link
+ $url_params['auto_commit'] = 'true';
+ echo '<a href="import.php' . PMA_generate_common_url($url_params) . '"'
+ . ' target="frame_content">';
+
+ if (! empty($query['db'])) {
+ echo '[';
+ echo htmlspecialchars(PMA_backquote($query['db']));
+ if (! empty($query['table'])) {
+ echo '.' . htmlspecialchars(PMA_backquote($query['table']));
+ }
+ echo '] ';
+ }
+ if (strlen($query['sqlquery']) > 120) {
+ echo '<span title="' . htmlspecialchars($query['sqlquery']) . '">';
+ echo htmlspecialchars(substr($query['sqlquery'], 0, 50)) . ' [...] ';
+ echo htmlspecialchars(substr($query['sqlquery'], -50));
+ echo '</span>';
+ } else {
+ echo htmlspecialchars($query['sqlquery']);
+ }
+ echo '</a>' . "\n";
+ echo '</li>' . "\n";
+ }
+ unset($tab, $_sql_history, $query);
+ echo '</ul>' . "\n";
+}
+?>
+<form action="querywindow.php" method="post" name="hiddenqueryform"
+ id="hiddenqueryform">
+ <?php echo PMA_generate_common_hidden_inputs('', ''); ?>
+ <input type="hidden" name="db" value="<?php echo htmlspecialchars($db); ?>" />
+ <input type="hidden" name="table" value="<?php echo htmlspecialchars($table); ?>" />
+ <input type="hidden" name="sql_query" value="" />
+ <input type="hidden" name="querydisplay_tab" value="<?php echo $querydisplay_tab; ?>" />
+</form>
+</div>
+</body>
+</html>
diff --git a/readme.php b/readme.php
new file mode 100644
index 0000000000..34fecce0eb
--- /dev/null
+++ b/readme.php
@@ -0,0 +1,17 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Simple script to set correct charset for the readme
+ *
+ * Note: please do not fold this script into a general script
+ * that would read any file using a GET parameter, it would open a hole
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+header('Content-type: text/plain; charset=utf-8');
+readfile('README');
+?>
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000000..c2aab7e039
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: / \ No newline at end of file
diff --git a/scripts/check_lang.php b/scripts/check_lang.php
new file mode 100644
index 0000000000..4ecf9070b0
--- /dev/null
+++ b/scripts/check_lang.php
@@ -0,0 +1,61 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * This test script checks all the language files to ensure there is no errors
+ * inside and nothing is displayed on screen (eg no extra no blank line).
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+$failed = array();
+$passed = array();
+
+// 1. Do check
+$languageDirectory = dir('../lang');
+while ($name = $languageDirectory->read()) {
+ if (strpos($name, '.inc.php')) {
+ // 1.1 Checks parse errors and extra blank line
+ include '../lang/' . $name;
+ header('X-Ping: pong');
+ // 1.1 Checks "^M"
+ $content = fread(fopen('../lang/' . $name, 'r'), filesize('../lang/' . $name));
+ if ($pos = strpos(' ' . $content, "\015")) {
+ $failed[] = $name;
+ } else {
+ $passed[] = $name;
+ }
+ } // end if
+} // end while
+$languageDirectory->close();
+
+// 2. Checking results
+$start = '';
+$failed_cnt = count($failed);
+sort($failed);
+$passed_cnt = count($passed);
+sort($passed);
+echo ($failed_cnt + $passed_cnt) . ' language files were checked.<br /><br />' . "\n";
+if ($failed_cnt) {
+ echo '&nbsp;&nbsp;1.&nbsp;' . $failed_cnt . ' contain(s) some "^M":<br />' . "\n";
+ for ($i = 0; $i < $failed_cnt; $i++) {
+ echo '&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;' . $failed[$i] . '<br />' . "\n";
+ } // end for
+ if ($passed_cnt) {
+ echo '<br />' . "\n";
+ echo '&nbsp;&nbsp;2.&nbsp;' . $passed_cnt . ' seems right:<br />' . "\n";
+ $start = '&nbsp;&nbsp;';
+ }
+} // end if
+if ($passed_cnt) {
+ if (!$failed_cnt) {
+ echo 'They all passed checkings:<br />' . "\n";
+ }
+ for ($i = 0; $i < $passed_cnt; $i++) {
+ echo $start . '&nbsp;&nbsp;-&nbsp;' . $passed[$i] . '<br />' . "\n";
+ } // end for
+} // end if
+?>
diff --git a/scripts/convertcfg.pl b/scripts/convertcfg.pl
new file mode 100755
index 0000000000..1b636a161e
--- /dev/null
+++ b/scripts/convertcfg.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# Configuration converter
+# Converts from old-style (Pre-2.3) configuration files to new format found in PMA-2.3
+#
+# Takes input from STDIN, sends output to STDOUT
+#
+# By Robin Johnson robbat2@users.sourceforge.net
+# Many thanks to Patrick Lougheed pat@tfsb.org
+#
+
+while(<>)
+{ s/\$cfg(\w+)/\$cfg\[\'$1\'\]/g;
+ print;
+ }
+
+
diff --git a/scripts/create-release.sh b/scripts/create-release.sh
new file mode 100755
index 0000000000..6d42c396b4
--- /dev/null
+++ b/scripts/create-release.sh
@@ -0,0 +1,279 @@
+#!/bin/sh
+#
+# $Id$
+# vim: expandtab sw=4 ts=4 sts=4:
+#
+# 2005-09-13, lem9@users.sourceforge.net
+# - no longer create a config.default.php from config.inc.php
+#
+# 2005-06-12, lem9@users.sourceforge.net
+# - cvs server name changed to cvs, because cvs1 no longer works from
+# shell.sourceforge.net
+#
+# 2003-08-23, nijel@users.sourceforge.net:
+# - support for creating snapshots outside sourceforge:
+# * cvs server name can be read from environment variable cvsserver
+# * do not change to directories as used on sourceforge if $2 is local
+#
+# 2003-08-13, nijel@users.sourceforge.net:
+# - config.default -> config.default.php
+#
+# 2004-08-09, lem9@users.sourceforge.net:
+# - remember to create a new bug tracking group
+#
+# 2004-06-07 rabus@users.sourceforge.net
+# - create backup config file
+#
+# 2004-04-29, lem9@users.sourceforge.net:
+# - keep only the previous cvs directory created
+#
+# 2004-04-16, lem9@users.sourceforge.net:
+# - daily snapshot when called with first parameter "snapshot"
+# - remove directory used for the checkout
+#
+# 2003-11-18, nijel@users.sourceforge.net:
+# - switch php3 -> php
+#
+# 2003-10-10, nijel@users.sourceforge.net:
+# - cvsserver set on just one place to ease testing
+# - echoes md5 sums to include on download page
+#
+# 2003-06-22, robbat2@users.sourceforge.net:
+# - Moved to using updatedocs.sh for updating documentation
+# - Make tarring faster by re-arranging ops
+#
+# 2003-01-17, rabus@users.sourceforge.net:
+# - Changed the CVS hostname to cvs1 because cvs1.sourceforge.net is now blocked
+# for the SF shell servers, too. Note: The script now works on the SF shell
+# servers ONLY!
+#
+# 2002-11-22, rabus@users.sourceforge.net:
+# - changed the CVS server dns to cvs1.sourceforge.net
+# (cvs.phpmyadmin.sourceforge.net does not work at the SF shell anymore).
+#
+# 2002-10-03, rabus@users.sourceforge.net:
+# - more detailed instructions
+#
+# 2002-09-08, robbat2@users.sourceforge.net:
+# - Tweaked final instruction list
+#
+# 2002-06-17, lem9@users.sourceforge.net:
+# - I option to tar for bzip2 is deprecated, use j
+#
+# 2002-27-04, loic@phpmyadmin.net:
+# - added the cvs branch feature
+#
+# 2001-08-08, swix@users.sourceforge.net:
+# - created script
+# - added release todo list
+#
+
+KITS="all-languages english"
+COMPRESSIONS="zip-7z tbz tgz 7z"
+
+if [ $# = 0 ]
+then
+ echo "Usages:"
+ echo " create-release.sh <version> [from_branch]"
+ echo " create-release.sh snapshot [sf]"
+ echo " (no spaces allowed!)"
+ echo ""
+ echo "Examples:"
+ echo " create-release.sh 2.9.0-rc1 branches/QA_2_9"
+ echo " create-release.sh 2.9.0 tags/RELEASE_2_9_0"
+ exit 65
+fi
+
+branch='trunk'
+
+if [ "$1" = "snapshot" ] ; then
+ mode="snapshot"
+ date_snapshot=`date +%Y%m%d-%H%M%S`
+ target=$date_snapshot
+else
+ if [ "$#" -ge 2 ] ; then
+ branch="$2"
+ fi
+ target="$1"
+ cat <<END
+
+Please ensure you have:
+ 1. incremented rc count or version in subversion :
+ - in libraries/Config.class.php PMA_Config::__constructor() the line
+ " \$this->set( 'PMA_VERSION', '$1' ); "
+ - in Documentation.html the 2 lines
+ " <title>phpMyAdmin $1 - Documentation</title> "
+ " <h1>phpMyAdmin $1 Documentation</h1> "
+ - in translators.html
+ - in README
+ 2. checked that all language files are valid (use
+ the "./scripts/check_lang.php" script to do it).
+
+Continue (y/n)?
+END
+ read do_release
+
+ if [ "$do_release" != 'y' ]; then
+ exit
+ fi
+fi
+
+if [ "$mode" = "snapshot" -a "$2" = "sf" ] ; then
+ # Goto project dir
+ cd /home/groups/p/ph/phpmyadmin/htdocs
+
+ # Keep one previous version of the cvs directory
+ if [ -e svn-prev ] ; then
+ rm -rf svn-prev
+ fi
+ mv svn svn-prev
+fi
+
+# Do SVNcheckout
+mkdir -p ./svn
+cd svn
+
+echo "Exporting repository from subversion"
+
+svn export -q https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/$branch/phpMyAdmin
+
+if [ $? -ne 0 ] ; then
+ echo "Subversion checkout failed, bailing out"
+ exit 2
+fi
+
+# Cleanup release dir
+LC_ALL=C date -u > phpMyAdmin/RELEASE-DATE-${target}
+
+# Building Documentation.txt
+LC_ALL=C w3m -dump phpMyAdmin/Documentation.html > phpMyAdmin/Documentation.txt
+
+# Renaming directory
+mv phpMyAdmin phpMyAdmin-$target
+
+# Prepare all kits
+for kit in $KITS ; do
+ # Copy all files
+ name=phpMyAdmin-$target-$kit
+ cp -r phpMyAdmin-$target $name
+
+ # Cleanup translations
+ cd phpMyAdmin-$target-$kit
+ scripts/lang-cleanup.sh $kit
+ cd ..
+
+ # Prepare distributions
+ for comp in $COMPRESSIONS ; do
+ case $comp in
+ tbz|tgz)
+ echo "Creating $name.tar"
+ tar cf $name.tar $name
+ if [ $comp = tbz ] ; then
+ echo "Creating $name.tar.bz2"
+ bzip2 -9k $name.tar
+ fi
+ if [ $comp = tgz ] ; then
+ echo "Creating $name.tar.gz"
+ gzip -9c $name.tar > $name.tar.gz
+ fi
+ rm $name.tar
+ ;;
+ zip)
+ echo "Creating $name.zip"
+ zip -q -9 -r $name.zip $name
+ ;;
+ zip-7z)
+ echo "Creating $name.zip"
+ 7za a -bd -tzip $name.zip $name > /dev/null
+ ;;
+ 7z)
+ echo "Creating $name.7z"
+ 7za a -bd $name.7z $name > /dev/null
+ ;;
+ *)
+ echo "WARNING: ignoring compression '$comp', not known!"
+ ;;
+ esac
+ done
+
+ # Remove directory with current dist set
+ rm -rf $name
+done
+
+# Cleanup
+rm -rf phpMyAdmin-${target}
+
+if [ "$mode" != "snapshot" ]
+then
+
+
+echo ""
+echo ""
+echo ""
+echo "Files:"
+echo "------"
+
+ls -la *.gz *.zip *.bz2 *.7z
+
+echo
+echo "MD5 sums:"
+echo "--------"
+
+md5sum *.{gz,zip,bz2,7z} | sed "s/\([^ ]*\)[ ]*\([^ ]*\)/\$md5sum['\2'] = '\1';/"
+
+echo
+echo "Sizes:"
+echo "------"
+
+ls -l --block-size=k *.{gz,zip,bz2,7z} | sed -r "s/[a-z-]+[[:space:]]+[0-9]+[[:space:]]+[^[:space:]]+[[:space:]]+[^[:space:]]+[[:space:]]+([0-9]*)K.*[[:space:]]([^[:space:]]+)\$/\$size['\2'] = \1;/"
+
+echo
+echo "Add these to /home/groups/p/ph/phpmyadmin/htdocs/home_page/files.inc.php on sf"
+
+cat <<END
+
+
+Todo now:
+---------
+ 1. tag the subversion tree with the new revision number for a plain release
+ or a release candidate:
+ version 2.7.0 gets two tags: RELEASE_2_7_0 and STABLE
+ version 2.7.1-rc1 gets RELEASE_2_7_1RC1 and TESTING
+
+ 2. upload the files to SF (procedure explained on the sf.net Admin/File Releases page)
+ 3. add files to SF files page (cut and paste changelog since last release)
+ 4. add SF news item to phpMyAdmin project
+ 5. update web page:
+ - add MD5s and file sizes to /home/groups/p/ph/phpmyadmin/htdocs/home_page/includes/list_files.inc.php
+ - add release to /home/groups/p/ph/phpmyadmin/htdocs/home_page/includes/list_release.inc.php
+ 6. announce release on freshmeat (http://freshmeat.net/projects/phpmyadmin/)
+ 7. send a short mail (with list of major changes) to
+ phpmyadmin-devel@lists.sourceforge.net
+ phpmyadmin-news@lists.sourceforge.net
+ phpmyadmin-users@lists.sourceforge.net
+
+ Don't forget to update the Description section in the announcement,
+ based on Documentation.html.
+
+ 8. increment rc count or version in subversion :
+ - in libraries/Config.class.php PMA_Config::__constructor() the line
+ " $this->set( 'PMA_VERSION', '2.7.1-dev' ); "
+ - in Documentation.html the 2 lines
+ " <title>phpMyAdmin 2.2.2-rc1 - Documentation</title> "
+ " <h1>phpMyAdmin 2.2.2-rc1 Documentation</h1> "
+ - in translators.html
+
+ 9. add a group for bug tracking this new version, at
+ https://sourceforge.net/tracker/admin/index.php?group_id=23067&atid=377408&add_group=1
+
+10. the end :-)
+
+END
+
+fi
+
+# Removed due to not needed thanks to clever scripting by Robbat2
+# 9. update the demo subdirectory:
+# - in htdocs, cvs update phpMyAdmin
+# - and don't forget to give write rights for the updated scripts to the
+# whole group
diff --git a/scripts/create_tables.sql b/scripts/create_tables.sql
new file mode 100644
index 0000000000..d20b4af73a
--- /dev/null
+++ b/scripts/create_tables.sql
@@ -0,0 +1,174 @@
+-- --------------------------------------------------------
+-- SQL Commands to set up the pmadb as described in Documentation.html.
+--
+-- This file is meant for use with MySQL 5 and above!
+--
+-- This script expects the user pma to already be existing. If we would put a
+-- line here to create him too many users might just use this script and end
+-- up with having the same password for the controluser.
+--
+-- This user "pma" must be defined in config.inc.php (controluser/controlpass)
+--
+-- Please don't forget to set up the tablenames in config.inc.php
+--
+-- $Id$
+
+-- --------------------------------------------------------
+
+--
+-- Database : `phpmyadmin`
+--
+CREATE DATABASE IF NOT EXISTS `phpmyadmin`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+USE phpmyadmin;
+
+-- --------------------------------------------------------
+
+--
+-- Privileges
+--
+-- (activate this statement if necessary)
+-- GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
+-- 'pma'@localhost;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_bookmark`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_bookmark` (
+ `id` int(11) NOT NULL auto_increment,
+ `dbase` varchar(255) NOT NULL default '',
+ `user` varchar(255) NOT NULL default '',
+ `label` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
+ `query` text NOT NULL,
+ PRIMARY KEY (`id`)
+)
+ ENGINE=MyISAM COMMENT='Bookmarks'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_column_info`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_column_info` (
+ `id` int(5) unsigned NOT NULL auto_increment,
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `column_name` varchar(64) NOT NULL default '',
+ `comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
+ `mimetype` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
+ `transformation` varchar(255) NOT NULL default '',
+ `transformation_options` varchar(255) NOT NULL default '',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
+)
+ ENGINE=MyISAM COMMENT='Column information for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_history`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_history` (
+ `id` bigint(20) unsigned NOT NULL auto_increment,
+ `username` varchar(64) NOT NULL default '',
+ `db` varchar(64) NOT NULL default '',
+ `table` varchar(64) NOT NULL default '',
+ `timevalue` timestamp(14) NOT NULL,
+ `sqlquery` text NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `username` (`username`,`db`,`table`,`timevalue`)
+)
+ ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_pdf_pages`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_pdf_pages` (
+ `db_name` varchar(64) NOT NULL default '',
+ `page_nr` int(10) unsigned NOT NULL auto_increment,
+ `page_descr` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
+ PRIMARY KEY (`page_nr`),
+ KEY `db_name` (`db_name`)
+)
+ ENGINE=MyISAM COMMENT='PDF relation pages for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_relation`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_relation` (
+ `master_db` varchar(64) NOT NULL default '',
+ `master_table` varchar(64) NOT NULL default '',
+ `master_field` varchar(64) NOT NULL default '',
+ `foreign_db` varchar(64) NOT NULL default '',
+ `foreign_table` varchar(64) NOT NULL default '',
+ `foreign_field` varchar(64) NOT NULL default '',
+ PRIMARY KEY (`master_db`,`master_table`,`master_field`),
+ KEY `foreign_field` (`foreign_db`,`foreign_table`)
+)
+ ENGINE=MyISAM COMMENT='Relation table'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_table_coords`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_table_coords` (
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `pdf_page_number` int(11) NOT NULL default '0',
+ `x` float unsigned NOT NULL default '0',
+ `y` float unsigned NOT NULL default '0',
+ PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
+)
+ ENGINE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_table_info`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_table_info` (
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `display_field` varchar(64) NOT NULL default '',
+ PRIMARY KEY (`db_name`,`table_name`)
+)
+ ENGINE=MyISAM COMMENT='Table information for phpMyAdmin'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_designer_coords`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_designer_coords` (
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `x` INT,
+ `y` INT,
+ `v` TINYINT,
+ `h` TINYINT,
+ PRIMARY KEY (`db_name`,`table_name`)
+)
+ ENGINE=MyISAM COMMENT='Table coordinates for Designer'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
diff --git a/scripts/decode_bug.php b/scripts/decode_bug.php
new file mode 100644
index 0000000000..7dea1e249b
--- /dev/null
+++ b/scripts/decode_bug.php
@@ -0,0 +1,105 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Parser BUG decoder
+ *
+ * This is the parser bug decoder system
+ * Throw the bug data in teh query box, and hit submit for output.
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ *
+ * @version $Id$
+ * @package phpMyAdmin-debug
+ */
+
+/**
+ * Displays the form
+ */
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+
+<head>
+ <link rel="icon" href="./favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <title>phpMyAdmin - Parser BUG decoder</title>
+ <style type="text/css">
+ <!--
+ body, p {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: medium;
+ }
+ h1 {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: large;
+ font-weight: bold;
+ color: #000066;
+ }
+ //-->
+ </style>
+</head>
+
+
+<body bgcolor="#FFFFFF">
+<h1>Parser BUG decoder</h1>
+<br />
+
+<form method="post" action="./decode_bug.php">
+ <input type="hidden" name="bar" value="<?php echo rand(); ?>" />
+ Encoded bug report:<br />
+ <textarea name="bug_encoded" cols="72" rows="10"></textarea>
+ <br /><br />
+ <input type="submit" />
+</form>
+<hr />
+
+<?php
+/**
+ * If the form has been submitted -> decodes the bug report
+ */
+
+/**
+ * Display the decoded bug report in ASCII format
+ *
+ * @param string the text data
+ *
+ * @return string the text enclosed by "<pre>...</pre>" tags
+ *
+ * @access public
+ */
+function PMA_printDecodedBug($textdata)
+{
+ return '<pre>' . htmlspecialchars($textdata) . '</pre><br />';
+} // end of the "PMA_printDecodedBug()" function
+
+
+if (!empty($_POST) && isset($_POST['bug_encoded'])) {
+ $bug_encoded = $_POST['bug_encoded'];
+}
+
+if (!empty($bug_encoded)) {
+ if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
+ $bug_encoded = stripslashes($bug_encoded);
+ }
+
+ $bug_encoded = ereg_replace('[[:space:]]', '', $bug_encoded);
+ $bug_decoded = base64_decode($bug_encoded);
+ if (substr($bug_encoded, 0, 2) == 'eN') {
+ if (function_exists('gzuncompress')) {
+ $result = PMA_printDecodedBug(gzuncompress($bug_decoded));
+ } else {
+ $result = 'Error: &quot;gzuncompress()&quot; is unavailable!' . "\n";
+ }
+ } else {
+ $result = PMA_printDecodedBug($bug_decoded);
+ } // end if... else...
+
+ echo '<p>Decoded:</p>' . "\n"
+ . $result . "\n";
+} // end if
+?>
+</body>
+
+</html>
diff --git a/scripts/find_unused_messages.sh b/scripts/find_unused_messages.sh
new file mode 100755
index 0000000000..b0fd26eb18
--- /dev/null
+++ b/scripts/find_unused_messages.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# Simple script to find unused message strings by Michal Čihař
+
+tmp1=`mktemp`
+tmp2=`mktemp`
+grep -o '\<str[A-Z][a-zA-Z0-9_]*\>' lang/english-iso-8859-1.inc.php \
+ | grep -Ev '^str(Transformation_|ShowStatus)' | sort -u > $tmp1
+grep -ho '\<str[A-Z][a-zA-Z0-9_]*\>' `find . -type f -a -name '*.php' -a -not -path '*/lang/*'` \
+ | grep -Ev '^str(Transformation_|ShowStatus)' | sort -u > $tmp2
+
+echo Please note that you need to check results of this script, it doesn\'t
+echo understand PHP, it only tries to find what looks like message name.
+
+echo
+echo Used messages not present in english language file:
+echo '(this contains generated messages and composed message names, so these'
+echo 'are not necessary a errors!)'
+echo
+
+# filter out known false positives
+diff $tmp1 $tmp2 | awk '/^>/ {print $2}' | grep -Ev '(strEncto|strXkana|strDBLink|strPrivDesc|strPrivDescProcess|strTableListOptions|strMissingParameter|strAttribute|strDoSelectAll)'
+
+echo
+echo Not used messages present in english language file:
+echo
+
+diff $tmp1 $tmp2 | awk '/^</ {print $2}'
+
+
+rm -f $tmp1 $tmp2
diff --git a/scripts/lang-cleanup.sh b/scripts/lang-cleanup.sh
new file mode 100755
index 0000000000..d8688e9cd5
--- /dev/null
+++ b/scripts/lang-cleanup.sh
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# $Id$
+# vim: expandtab sw=4 ts=4 sts=4:
+#
+# Script for removing language selection from phpMyAdmin
+
+if [ $# -lt 1 ] ; then
+ echo "Usage: lang-cleanup.sh type ..."
+ echo "Type can be one of:"
+ echo " all-languages - nothing will be done"
+ echo " all-languages-utf-8-only - non utf-8 languages will be deleted"
+ echo " language - keeps utf-8 version of language"
+ echo " language-charset - keeps this exact language"
+ echo
+ echo "Types can be entered multiple times, all matched languages will be kept"
+ exit 1
+fi
+
+# Construct expressions for find
+match=""
+for type in "$@" ; do
+ case $type in
+ all-languages)
+ match="$match -and -false"
+ ;;
+ all-languages-utf-8-only)
+ match="$match -and -not -name *-utf-8.inc.php"
+ ;;
+ *)
+ if [ -f lang/$type-utf-8.inc.php ] ; then
+ match="$match -and -not -name $type-utf-8.inc.php"
+ elif [ -f lang/$type.inc.php ] ; then
+ match="$match -and -not -name $type.inc.php"
+ else
+ echo "ERROR: $type seems to be wrong!"
+ exit 2
+ fi
+ ;;
+ esac
+done
+
+# Delete unvanted languages
+find lang -name \*.inc.php $match -print0 | xargs -0r rm
+
+# Cleanup libraries/select_lang.lib.php
+
+# Find languages we have
+langmatch="$(awk -F, \
+ 'BEGIN { pr = 1 } ;
+ /^\);/ { pr = 1 } ;
+ {if(!pr) print $2;};
+ /^\$available_languages/ { pr = 0 };' \
+ libraries/select_lang.lib.php \
+ | tr -d \' \
+ | while read lng ; do if [ -f lang/$lng.inc.php ] ; then echo $lng ; fi ; done \
+ | tr '\n' '|' \
+ | sed 's/|$//' \
+ )"
+
+# Prepare working copy
+tmp=`mktemp libraries/select_lang.lib.php.XXXX`
+cat libraries/select_lang.lib.php > $tmp
+
+# Remove languages we don't have
+awk -F, \
+ 'BEGIN { pr = 1 } ;
+ /^\);/ { pr = 1 } ;
+ {if(pr) print $0;};
+ /'$langmatch'/ {if (!pr) print $0;};
+ /^\$available_languages/ { pr = 0 };' \
+ $tmp > libraries/select_lang.lib.php
+
+# Final cleanup
+rm -f $tmp
+
diff --git a/scripts/remove_control_m.sh b/scripts/remove_control_m.sh
new file mode 100755
index 0000000000..432c149c7a
--- /dev/null
+++ b/scripts/remove_control_m.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# $Id$
+#
+# Script to remove ^M from files for DOS <-> UNIX conversions
+#
+
+if [ $# != 1 ]
+then
+ echo "Usage: remove_control_m.sh <extension of files>"
+ echo ""
+ echo "Example: remove_control_m.sh php3"
+ exit
+fi
+
+for i in `find . -name "*.$1"`
+ do
+ echo $i
+ tr -d '\015' < $i > ${i}.new
+ rm $i
+ mv ${i}.new $i
+ done;
+
diff --git a/scripts/signon.php b/scripts/signon.php
new file mode 100644
index 0000000000..f9e38bceda
--- /dev/null
+++ b/scripts/signon.php
@@ -0,0 +1,56 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Single signon for phpMyAdmin
+ *
+ * This is just example how to use single signon with phpMyAdmin, it is
+ * not intended to be perfect code and look, only shows how you can
+ * integrate this functionality in your application.
+ *
+ * @version $Id$
+ * @package phpMyAdmin
+ * @subpacke Example
+ */
+
+/* Was data posted? */
+if (isset($_POST['user'])) {
+ /* Need to have cookie visible from parent directory */
+ session_set_cookie_params(0, '/', '', 0);
+ /* Create signon session */
+ $session_name = 'SignonSession';
+ session_name($session_name);
+ session_start();
+ /* Store there credentials */
+ $_SESSION['PMA_single_signon_user'] = $_POST['user'];
+ $_SESSION['PMA_single_signon_password'] = $_POST['password'];
+ $_SESSION['PMA_single_signon_host'] = $_POST['host'];
+ $id = session_id();
+ /* Close that session */
+ session_write_close();
+ /* Redirect to phpMyAdmin (should use absolute URL here!) */
+ header('Location: ../index.php');
+} else {
+ /* Show simple form */
+ header('Content-Type: text/html; charset=utf-8');
+ echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
+ ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
+<head>
+ <link rel="icon" href="../favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
+ <title>phpMyAdmin single signon example</title>
+</head>
+<body>
+<form action="signon.php" method="post">
+Username: <input type="text" name="user" /><br />
+Password: <input type="password" name="password" /><br />
+Host: (will use the one from config.inc.php by default) <input type="text" name="host" /><br />
+<input type="submit" />
+</form>
+</body>
+</html>
+<?php
+}
+?>
diff --git a/scripts/upgrade.pl b/scripts/upgrade.pl
new file mode 100755
index 0000000000..c9e625e16c
--- /dev/null
+++ b/scripts/upgrade.pl
@@ -0,0 +1,223 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# upgrade.pl - automatic phpmyadmin upgrader
+#
+#
+# 2005-05-08, swix@users.sourceforge.net:
+# - created script
+#
+# 2005-10-29 swix@users.sourceforge.net:
+# - some fixes & improvements
+#
+
+use strict;
+my $source_url = "http://phpmyadmin.net/home_page/version.php";
+
+
+#
+# usage
+#
+
+if (!$ARGV[0] || (($ARGV[0] eq "--force") && !$ARGV[1])) {
+ print "\n";
+ print "usage: $0 [--force] <target_directory>\n\n";
+ print " The location specified by <target_directory> will be backed up and replaced\n";
+ print " by the latest stable version of phpMyAdmin.\n";
+ print " Your config.inc.php file will be preserved.\n\n";
+ exit(0);
+}
+
+my $forced;
+my $targetdirectory;
+
+if ($ARGV[0] eq "--force") {
+ $forced = 1;
+ $targetdirectory = $ARGV[1];
+} else {
+ $forced = 0;
+ $targetdirectory = $ARGV[0];
+}
+
+if ($targetdirectory =~ /^(.*)\/$/) {
+ # remove trailing slash, if any
+ $targetdirectory = $1;
+}
+
+if (!-d $targetdirectory) {
+ print "error: target directory ($targetdirectory) does not exists\n";
+ exit(0);
+}
+
+if (!-f "$targetdirectory/config.inc.php") {
+ print "error: target directory doesn't seem to contain phpMyAdmin\n";
+ exit(0);
+}
+
+
+#
+# get current release information
+#
+
+my $version;
+my $filename;
+my $directory;
+my $releasedate;
+my @urls;
+my @today;
+my $installedversion;
+
+if (open(LATEST, "wget -o /dev/null -O - $source_url|")) {
+
+ $version = <LATEST>; chomp($version);
+ $releasedate = <LATEST>; chomp($releasedate);
+ $filename = "phpMyAdmin-" . $version . "-all-languages.tar.gz";
+ $directory = "phpMyAdmin-" . $version . "-all-languages";
+
+ my $i = 0;
+
+ while (my $line = <LATEST>) {
+ chomp($line);
+ if ($line =~ /http/) {
+ $urls[$i++] = $line;
+ }
+ }
+
+ close(LATEST);
+
+} else {
+
+ print "error: open of $source_url failed.\n";
+ exit(0);
+
+}
+
+
+if (-d $directory) {
+ print "error: target directory ($directory) already exists, exiting\n";
+ exit(0);
+}
+
+#
+# check the installed version
+#
+
+if (open(DEFINES, $targetdirectory .'/libraries/Config.class.php')) {
+ my $versionStatus = 0;
+ $installedversion = "unknownversion";
+
+ while (my $line = <DEFINES>) {
+
+ next unless $line =~ /'PMA_VERSION',\ '(.*)?'\);$/;
+ $installedversion = $1;
+
+ # take care of "pl", "rc" and "dev": dev < rc < pl
+
+ my $converted_installedversion = $installedversion;
+ $converted_installedversion =~ s/dev/aaa/g;
+ $converted_installedversion =~ s/rc/bbb/g;
+ $converted_installedversion =~ s/pl/ccc/g;
+
+ my $converted_version = $version;
+ $converted_version =~ s/dev/aaa/g;
+ $converted_version =~ s/rc/bbb/g;
+ $converted_version =~ s/pl/ccc/g;
+
+ if ($converted_installedversion gt $converted_version && !$forced) {
+ print "Local version ($installedversion) newer than latest stable release ($version), not updating. (use \"--force\")\n";
+ exit(0);
+
+ } elsif ($installedversion eq $version && !$forced) {
+ print "Local version ($version) already up to date, not updating (you can use \"--force\")\n";
+ exit(0);
+
+ } else {
+ $versionStatus = 1;
+ }
+ }
+ if (!$versionStatus && !$forced) {
+ print "Old version could not be identified, not updating (use \"--force\" if you are sure) \n";
+ exit(0);
+ }
+}
+
+#
+# ask for confirmation
+#
+
+print "\n";
+print "phpMyAdmin upgrade summary:\n";
+print "---------------------------\n";
+print " phpMyAdmin Path: $targetdirectory\n";
+print " Installed version: $installedversion\n";
+print " Upgraded version: $version\n\n";
+print "Proceed with upgrade? [Y/n] ";
+my $kbdinput = <STDIN>; chomp($kbdinput);
+if (lc(substr($kbdinput,0,1)) ne "y" && length($kbdinput) >= 1) {
+ print "Aborting.\n";
+ exit(0);
+} else {
+ print "Proceeding...\n\n";
+}
+
+
+#
+# get file
+#
+
+if (!-f $filename) {
+
+ print "getting phpMyAdmin $version\n";
+ foreach my $url (@urls) {
+
+ print "trying $url...\n";
+ system("wget -o /dev/null $url");
+ if (-f $filename) {
+ print "-> ok\n";
+ last;
+ }
+ }
+} else {
+ print "already got $filename, not downloading\n";
+}
+
+
+if (!-f $filename) {
+ print "error: $filename download failed\n";
+ exit(0);
+}
+
+
+
+#
+# setup
+#
+
+print "installing...\n";
+
+system("tar xzf $filename");
+if (!$directory) {
+ print "error: $directory still not exists after untar...\n";
+ exit(0);
+}
+
+@today = localtime(time); $today[4]++; $today[5]+=1900;
+my $timestamp = sprintf("%04d%02d%02d%02d%02d", $today[5], $today[4], $today[3], $today[2], $today[1]);
+
+my $backupdir = $targetdirectory . "-" . $timestamp . "-" . $installedversion;
+print "- backup directory: $backupdir\n";
+
+system("cp $directory/config.inc.php $directory/config.inc-dist.php");
+print "- original distribution config.inc.php renamed to config.inc-dist.php\n";
+
+system("cp $targetdirectory/config.inc.php $directory/config.inc.php");
+print "- previous config.inc.php copied to the new setup\n";
+
+system("mv $targetdirectory $backupdir");
+system("mv $directory $targetdirectory");
+system("rm $filename");
+
+print "\ndone! phpMyAdmin $version installed in $targetdirectory\n";
+print "backup of your old installation in $backupdir\n";
+print "Enjoy! :-)\n\n";
diff --git a/scripts/upgrade_tables_mysql_4_1_2+.sql b/scripts/upgrade_tables_mysql_4_1_2+.sql
new file mode 100644
index 0000000000..3ab0e7401a
--- /dev/null
+++ b/scripts/upgrade_tables_mysql_4_1_2+.sql
@@ -0,0 +1,164 @@
+-- -------------------------------------------------------------
+-- SQL Commands to upgrade pmadb for normal phpMyAdmin operation
+-- with MySQL 4.1.2 and above.
+--
+-- This file is meant for use with MySQL 4.1.2 and above!
+-- For older MySQL releases, please use create_tables.sql
+--
+-- If you are running one MySQL 4.1.0 or 4.1.1, please create the tables using
+-- create_tables.sql, then use this script.
+--
+-- Please don't forget to set up the tablenames in config.inc.php
+--
+-- $Id$
+
+-- --------------------------------------------------------
+
+--
+-- Database : `phpmyadmin`
+--
+ALTER DATABASE `phpmyadmin`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+USE phpmyadmin;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_bookmark`
+--
+ALTER TABLE `pma_bookmark`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE `pma_bookmark`
+ CHANGE `dbase` `dbase` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_bookmark`
+ CHANGE `user` `user` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_bookmark`
+ CHANGE `label` `label` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
+ALTER TABLE `pma_bookmark`
+ CHANGE `query` `query` TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_column_info`
+--
+
+ALTER TABLE `pma_column_info`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE `pma_column_info`
+ CHANGE `db_name` `db_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_column_info`
+ CHANGE `table_name` `table_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_column_info`
+ CHANGE `column_name` `column_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_column_info`
+ CHANGE `comment` `comment` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
+ALTER TABLE `pma_column_info`
+ CHANGE `mimetype` `mimetype` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
+ALTER TABLE `pma_column_info`
+ CHANGE `transformation` `transformation` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_column_info`
+ CHANGE `transformation_options` `transformation_options` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_history`
+--
+ALTER TABLE `pma_history`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE `pma_history`
+ CHANGE `username` `username` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_history`
+ CHANGE `db` `db` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_history`
+ CHANGE `table` `table` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_history`
+ CHANGE `sqlquery` `sqlquery` TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_pdf_pages`
+--
+
+ALTER TABLE `pma_pdf_pages`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE `pma_pdf_pages`
+ CHANGE `db_name` `db_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_pdf_pages`
+ CHANGE `page_descr` `page_descr` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_relation`
+--
+ALTER TABLE `pma_relation`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE `pma_relation`
+ CHANGE `master_db` `master_db` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_relation`
+ CHANGE `master_table` `master_table` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_relation`
+ CHANGE `master_field` `master_field` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_relation`
+ CHANGE `foreign_db` `foreign_db` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_relation`
+ CHANGE `foreign_table` `foreign_table` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_relation`
+ CHANGE `foreign_field` `foreign_field` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_table_coords`
+--
+
+ALTER TABLE `pma_table_coords`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE `pma_table_coords`
+ CHANGE `db_name` `db_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_table_coords`
+ CHANGE `table_name` `table_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_table_info`
+--
+
+ALTER TABLE `pma_table_info`
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+ALTER TABLE `pma_table_info`
+ CHANGE `db_name` `db_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_table_info`
+ CHANGE `table_name` `table_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+ALTER TABLE `pma_table_info`
+ CHANGE `display_field` `display_field` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `pma_designer_coords`
+--
+
+CREATE TABLE IF NOT EXISTS `pma_designer_coords` (
+ `db_name` varchar(64) NOT NULL default '',
+ `table_name` varchar(64) NOT NULL default '',
+ `x` INT,
+ `y` INT,
+ `v` TINYINT,
+ `h` TINYINT,
+ PRIMARY KEY (`db_name`,`table_name`)
+)
+ ENGINE=MyISAM COMMENT='Table coordinates for Designer'
+ DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
diff --git a/server_binlog.php b/server_binlog.php
new file mode 100644
index 0000000000..762f12938f
--- /dev/null
+++ b/server_binlog.php
@@ -0,0 +1,252 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * display the binary logs and the content of the selected
+ *
+ * @uses $cfg['MainPageIconic']
+ * @uses $cfg['NavigationBarIconic']
+ * @uses $cfg['MaxRows']
+ * @uses $cfg['LimitChars']
+ * @uses $pmaThemeImage
+ * @uses $GLOBALS['strBinaryLog']
+ * @uses $GLOBALS['strGo']
+ * @uses $GLOBALS['strTruncateQueries']
+ * @uses $GLOBALS['strShowFullQueries']
+ * @uses $GLOBALS['strBinLogName']
+ * @uses $GLOBALS['strBinLogPosition']
+ * @uses $GLOBALS['strBinLogEventType']
+ * @uses $GLOBALS['strBinLogServerId']
+ * @uses $GLOBALS['strBinLogOriginalPosition']
+ * @uses $GLOBALS['strBinLogInfo']
+ * @uses $GLOBALS['strFiles']
+ * @uses $GLOBALS['strPrevious']
+ * @uses $GLOBALS['strNext']
+ * @uses $binary_logs
+ * @uses PMA_generate_common_hidden_inputs()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_formatByteDown()
+ * @uses PMA_DBI_fetch_assoc()
+ * @uses PMA_strlen()
+ * @uses PMA_substr()
+ * @uses $_REQUEST['pos']
+ * @uses $_REQUEST['log']
+ * @uses $_REQUEST['dontlimitchars']
+ * @uses count()
+ * @uses array_key_exists()
+ * @uses implode()
+ * @uses htmlspecialchars()
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work, provides $binary_logs
+ */
+require_once './libraries/server_common.inc.php';
+
+/**
+ * Displays the links
+ */
+require_once './libraries/server_links.inc.php';
+
+$url_params = array();
+
+/**
+ * Need to find the real end of rows?
+ */
+if (! isset($_REQUEST['pos'])) {
+ $pos = 0;
+} else {
+ /* We need this to be a integer */
+ $pos = (int) $_REQUEST['pos'];
+}
+
+if (! isset($_REQUEST['log']) || ! array_key_exists($_REQUEST['log'], $binary_logs)) {
+ $_REQUEST['log'] = '';
+} else {
+ $url_params['log'] = $_REQUEST['log'];
+}
+
+$sql_query = 'SHOW BINLOG EVENTS';
+if (! empty($_REQUEST['log'])) {
+ $sql_query .= ' IN \'' . $_REQUEST['log'] . '\'';
+}
+if ($GLOBALS['cfg']['MaxRows'] !== 'all') {
+ $sql_query .= ' LIMIT ' . $pos . ', ' . (int) $GLOBALS['cfg']['MaxRows'];
+}
+
+/**
+ * Sends the query
+ */
+$result = PMA_DBI_query($sql_query);
+
+/**
+ * prepare some vars for displaying the result table
+ */
+// Gets the list of fields properties
+if (isset($result) && $result) {
+ $num_rows = PMA_DBI_num_rows($result);
+} else {
+ $num_rows = 0;
+}
+
+if (empty($_REQUEST['dontlimitchars'])) {
+ $dontlimitchars = false;
+} else {
+ $dontlimitchars = true;
+ $url_params['dontlimitchars'] = 1;
+}
+
+/**
+ * Displays the sub-page heading
+ */
+echo '<h2>' . "\n"
+ . ($GLOBALS['cfg']['MainPageIconic'] ? '<img src="' . $pmaThemeImage . 's_process.png" width="16" height="16" border="0" hspace="2" align="middle" alt="" />' : '')
+ . ' ' . $GLOBALS['strBinaryLog'] . "\n"
+ . '</h2>' . "\n";
+
+/**
+ * Display log selector.
+ */
+if (count($binary_logs) > 1) {
+ echo '<form action="server_binlog.php" method="get">';
+ echo PMA_generate_common_hidden_inputs($url_params);
+ echo '<fieldset><legend>';
+ echo $GLOBALS['strSelectBinaryLog'];
+ echo '</legend><select name="log">';
+ $full_size = 0;
+ foreach ($binary_logs as $each_log) {
+ echo '<option value="' . $each_log['Log_name'] . '"';
+ if ($each_log['Log_name'] == $_REQUEST['log']) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $each_log['Log_name'];
+ if (isset($each_log['File_size'])) {
+ $full_size += $each_log['File_size'];
+ echo ' (' . implode(' ', PMA_formatByteDown($each_log['File_size'], 3, 2)) . ')';
+ }
+ echo '</option>';
+ }
+ echo '</select> ';
+ echo count($binary_logs) . ' ' . $GLOBALS['strFiles'] . ', ';
+ if ($full_size > 0) {
+ echo implode(' ', PMA_formatByteDown($full_size));
+ }
+ echo '</fieldset>';
+ echo '<fieldset class="tblFooters">';
+ echo '<input type="submit" value="' . $GLOBALS['strGo'] . '" />';
+ echo '</fieldset>';
+ echo '</form>';
+}
+
+PMA_Message::success()->display();
+
+/**
+ * Displays the page
+ */
+?>
+<table border="0" cellpadding="2" cellspacing="1">
+<thead>
+<tr>
+ <td colspan="6" align="center">
+<?php
+// we do not now how much rows are in the binlog
+// so we can just force 'NEXT' button
+if ($pos > 0) {
+ $this_url_params = $url_params;
+ if ($pos > $GLOBALS['cfg']['MaxRows']) {
+ $this_url_params['pos'] = $pos - $GLOBALS['cfg']['MaxRows'];
+ }
+
+ echo '<a href="./server_binlog.php' . PMA_generate_common_url($this_url_params) . '"';
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ echo ' title="' . $GLOBALS['strPrevious'] . '">';
+ } else {
+ echo '>' . $GLOBALS['strPrevious'];
+ } // end if... else...
+ echo ' &lt; </a> - ';
+}
+
+$this_url_params = $url_params;
+if ($pos > 0) {
+ $this_url_params['pos'] = $pos;
+}
+if ($dontlimitchars) {
+ unset($this_url_params['dontlimitchars']);
+ ?>
+ <a href="./server_binlog.php<?php echo PMA_generate_common_url($this_url_params); ?>"
+ title="<?php $GLOBALS['strTruncateQueries']; ?>">
+ <img src="<?php echo $pmaThemeImage; ?>s_partialtext.png"
+ width="50" height="20" border="0"
+ alt="<?php echo $GLOBALS['strTruncateQueries']; ?>" /></a>
+ <?php
+} else {
+ $this_url_params['dontlimitchars'] = 1;
+ ?>
+ <a href="./server_binlog.php<?php echo PMA_generate_common_url($this_url_params); ?>"
+ title="<?php $GLOBALS['strShowFullQueries']; ?>">
+ <img src="<?php echo $pmaThemeImage; ?>s_fulltext.png"
+ width="50" height="20" border="0"
+ alt="<?php echo $GLOBALS['strShowFullQueries']; ?>" /></a>
+ <?php
+}
+// we do not now how much rows are in the binlog
+// so we can just force 'NEXT' button
+if ($num_rows >= $GLOBALS['cfg']['MaxRows']) {
+ $this_url_params = $url_params;
+ $this_url_params['pos'] = $pos + $GLOBALS['cfg']['MaxRows'];
+ echo ' - <a href="./server_binlog.php' . PMA_generate_common_url($this_url_params) . '"';
+ if ($GLOBALS['cfg']['NavigationBarIconic']) {
+ echo ' title="' . $GLOBALS['strNext'] . '">';
+ } else {
+ echo '>' . $GLOBALS['strNext'];
+ } // end if... else...
+ echo ' &gt; </a>';
+}
+?>
+ </td>
+</tr>
+<tr>
+ <th><?php echo $GLOBALS['strBinLogName']; ?></th>
+ <th><?php echo $GLOBALS['strBinLogPosition']; ?></th>
+ <th><?php echo $GLOBALS['strBinLogEventType']; ?></th>
+ <th><?php echo $GLOBALS['strBinLogServerId']; ?></th>
+ <th><?php echo $GLOBALS['strBinLogOriginalPosition']; ?></th>
+ <th><?php echo $GLOBALS['strBinLogInfo']; ?></th>
+</tr>
+</thead>
+<tbody>
+<?php
+$odd_row = true;
+while ($value = PMA_DBI_fetch_assoc($result)) {
+ if (! $dontlimitchars && PMA_strlen($value['Info']) > $GLOBALS['cfg']['LimitChars']) {
+ $value['Info'] = PMA_substr($value['Info'], 0, $GLOBALS['cfg']['LimitChars']) . '...';
+ }
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <td>&nbsp;<?php echo $value['Log_name']; ?>&nbsp;</td>
+ <td align="right">&nbsp;<?php echo $value['Pos']; ?>&nbsp;</td>
+ <td>&nbsp;<?php echo $value['Event_type']; ?>&nbsp;</td>
+ <td align="right">&nbsp;<?php echo $value['Server_id']; ?>&nbsp;</td>
+ <td align="right">&nbsp;<?php echo isset($value['Orig_log_pos']) ? $value['Orig_log_pos'] : $value['End_log_pos']; ?>&nbsp;</td>
+ <td>&nbsp;<?php echo htmlspecialchars($value['Info']); ?>&nbsp;</td>
+</tr>
+ <?php
+ $odd_row = !$odd_row;
+}
+?>
+</tbody>
+</table>
+<?php
+
+
+/**
+ * Sends the footer
+ */
+require_once './libraries/footer.inc.php';
+
+?>
diff --git a/server_collations.php b/server_collations.php
new file mode 100644
index 0000000000..ca425efa58
--- /dev/null
+++ b/server_collations.php
@@ -0,0 +1,96 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * requirements
+ */
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work
+ */
+require './libraries/server_common.inc.php';
+
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+
+/**
+ * Displays the sub-page heading
+ */
+echo '<h2>' . "\n"
+ . ' ' . ($GLOBALS['cfg']['MainPageIconic']
+ ? '<img class="icon" src="'. $GLOBALS['pmaThemeImage'] . 's_asci.png" alt="" />'
+ : '')
+ . '' . $strCharsetsAndCollations . "\n"
+ . '</h2>' . "\n";
+
+/**
+ * Includes the required charset library
+ */
+require_once './libraries/mysql_charsets.lib.php';
+
+
+/**
+ * Outputs the result
+ */
+echo '<div id="div_mysql_charset_collations">' . "\n"
+ . '<table class="data">' . "\n"
+ . '<tr><th>' . $strCollation . '</th>' . "\n"
+ . ' <th>' . $strDescription . '</th>' . "\n"
+ . '</tr>' . "\n";
+
+$i = 0;
+$table_row_count = count($mysql_charsets) + $mysql_collations_count;
+
+foreach ($mysql_charsets as $current_charset) {
+ if ($i >= $table_row_count / 2) {
+ $i = 0;
+ echo '</table>' . "\n"
+ . '<table class="data">' . "\n"
+ . '<tr><th>' . $strCollation . '</th>' . "\n"
+ . ' <th>' . $strDescription . '</th>' . "\n"
+ . '</tr>' . "\n";
+ }
+ $i++;
+ echo '<tr><th colspan="2" align="right">' . "\n"
+ . ' ' . htmlspecialchars($current_charset) . "\n"
+ . (empty($mysql_charsets_descriptions[$current_charset])
+ ? ''
+ : ' (<i>' . htmlspecialchars(
+ $mysql_charsets_descriptions[$current_charset]) . '</i>)' . "\n")
+ . ' </th>' . "\n"
+ . '</tr>' . "\n";
+ $odd_row = true;
+ foreach ($mysql_collations[$current_charset] as $current_collation) {
+ $i++;
+ echo '<tr class="'
+ . ($odd_row ? 'odd' : 'even')
+ . ($mysql_default_collations[$current_charset] == $current_collation
+ ? ' marked'
+ : '')
+ . ($mysql_collations_available[$current_collation] ? '' : ' disabled')
+ . '">' . "\n"
+ . ' <td>' . htmlspecialchars($current_collation) . '</td>' . "\n"
+ . ' <td>' . PMA_getCollationDescr($current_collation) . '</td>' . "\n"
+ . '</tr>' . "\n";
+ $odd_row = !$odd_row;
+ }
+}
+unset($table_row_count);
+echo '</table>' . "\n"
+ . '</div>' . "\n";
+
+require_once './libraries/footer.inc.php';
+
+?>
diff --git a/server_databases.php b/server_databases.php
new file mode 100644
index 0000000000..d076d3b7df
--- /dev/null
+++ b/server_databases.php
@@ -0,0 +1,351 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Does the common work
+ */
+require_once './libraries/common.inc.php';
+
+
+$GLOBALS['js_include'][] = 'functions.js';
+require './libraries/server_common.inc.php';
+
+/**
+ * avoids 'undefined index' errors
+ */
+if (empty($_REQUEST['sort_by'])) {
+ $sort_by = 'SCHEMA_NAME';
+} else {
+ $sort_by = PMA_sanitize($_REQUEST['sort_by']);
+}
+
+if (isset($_REQUEST['sort_order'])
+ && strtolower($_REQUEST['sort_order']) == 'desc') {
+ $sort_order = 'desc';
+} else {
+ $sort_order = 'asc';
+}
+
+$dbstats = empty($_REQUEST['dbstats']) ? 0 : 1;
+$pos = empty($_REQUEST['pos']) ? 0 : (int) $_REQUEST['pos'];
+
+
+/**
+ * Drops multiple databases
+ */
+
+// workaround for IE behavior (it returns some coordinates based on where
+// the mouse was on the Drop image):
+if (isset($_REQUEST['drop_selected_dbs_x'])) {
+ $_REQUEST['drop_selected_dbs'] = true;
+}
+
+if ((isset($_REQUEST['drop_selected_dbs']) || isset($_REQUEST['query_type']))
+ && ($is_superuser || $cfg['AllowUserDropDatabase'])) {
+ if (! isset($_REQUEST['selected_dbs']) && ! isset($_REQUEST['query_type'])) {
+ $message = PMA_Message::error('strNoDatabasesSelected');
+ } else {
+ $action = 'server_databases.php';
+ $submit_mult = 'drop_db' ;
+ $err_url = 'server_databases.php?' . PMA_generate_common_url();
+ if (isset($_REQUEST['selected_dbs'])) {
+ $selected_db = $_REQUEST['selected_dbs'];
+ }
+ require './libraries/mult_submits.inc.php';
+ unset($action, $submit_mult, $err_url, $selected_db);
+ if (empty($message)) {
+ $message = PMA_Message::success('strDatabasesDropped');
+ if ($mult_btn == $strYes) {
+ $message->addParam(count($selected));
+ } else {
+ $message->addParam(0);
+ }
+ }
+
+ }
+}
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+
+/**
+ * Displays the sub-page heading
+ */
+echo '<h2>' . "\n"
+ . ($GLOBALS['cfg']['MainPageIconic']
+ ? '<img class="icon" src="' . $pmaThemeImage . 's_db.png" width="16"'
+ .' height="16" alt="" />'
+ : '')
+ . ($dbstats ? $strDatabasesStats : $strDatabases) . "\n"
+ .'</h2>' . "\n";
+
+/**
+ * Gets the databases list
+ */
+if ($server > 0) {
+ $databases = PMA_DBI_get_databases_full(null, $dbstats, null, $sort_by,
+ $sort_order, $pos, true);
+ $databases_count = count($GLOBALS['pma']->databases);
+} else {
+ $databases_count = 0;
+}
+
+
+/**
+ * Displays the page
+ */
+if ($databases_count > 0) {
+ reset($databases);
+ $first_database = current($databases);
+ // table col order
+ $column_order['DEFAULT_COLLATION_NAME'] = array(
+ 'disp_name' => $strCollation,
+ 'description_function' => 'PMA_getCollationDescr',
+ 'format' => 'string',
+ 'footer' => PMA_getServerCollation(),
+ );
+ $column_order['SCHEMA_TABLES'] = array(
+ 'disp_name' => $strNumTables,
+ 'format' => 'number',
+ 'footer' => 0,
+ );
+ $column_order['SCHEMA_TABLE_ROWS'] = array(
+ 'disp_name' => $strRows,
+ 'format' => 'number',
+ 'footer' => 0,
+ );
+ $column_order['SCHEMA_DATA_LENGTH'] = array(
+ 'disp_name' => $strData,
+ 'format' => 'byte',
+ 'footer' => 0,
+ );
+ $column_order['SCHEMA_INDEX_LENGTH'] = array(
+ 'disp_name' => $strIndexes,
+ 'format' => 'byte',
+ 'footer' => 0,
+ );
+ $column_order['SCHEMA_LENGTH'] = array(
+ 'disp_name' => $strTotalUC,
+ 'format' => 'byte',
+ 'footer' => 0,
+ );
+ $column_order['SCHEMA_DATA_FREE'] = array(
+ 'disp_name' => $strOverhead,
+ 'format' => 'byte',
+ 'footer' => 0,
+ );
+
+ $_url_params = array(
+ 'pos' => $pos,
+ 'dbstats' => $dbstats,
+ 'sort_by' => $sort_by,
+ 'sort_order' => $sort_order,
+ );
+
+ PMA_listNavigator($databases_count, $pos, $_url_params, 'server_databases.php', 'frame_content', $GLOBALS['cfg']['MaxDbList']);
+
+ $_url_params['pos'] = $pos;
+
+ echo '<form action="./server_databases.php" method="post" name="dbStatsForm" id="dbStatsForm">' . "\n"
+ . PMA_generate_common_hidden_inputs($_url_params);
+
+ $_url_params['sort_by'] = 'SCHEMA_NAME';
+ $_url_params['sort_order'] = ($sort_by == 'SCHEMA_NAME' && $sort_order == 'asc') ? 'desc' : 'asc';
+
+ echo '<table id="tabledatabases" class="data">' . "\n"
+ . '<thead>' . "\n"
+ . '<tr>' . "\n"
+ . ($is_superuser || $cfg['AllowUserDropDatabase'] ? ' <th>&nbsp;</th>' . "\n" : '')
+ . ' <th><a href="./server_databases.php' . PMA_generate_common_url($_url_params) . '">' . "\n"
+ . ' ' . $strDatabase . "\n"
+ . ($sort_by == 'SCHEMA_NAME' ? ' <img class="icon" src="' . $pmaThemeImage . 's_' . $sort_order . '.png" width="11" height="9" alt="' . ($sort_order == 'asc' ? $strAscending : $strDescending) . '" />' . "\n" : '')
+ . ' </a></th>' . "\n";
+ $table_columns = 3;
+ foreach ($column_order as $stat_name => $stat) {
+ if (array_key_exists($stat_name, $first_database)) {
+ if ($stat['format'] === 'byte') {
+ $table_columns += 2;
+ $colspan = ' colspan="2"';
+ } else {
+ $table_columns++;
+ $colspan = '';
+ }
+ $_url_params['sort_by'] = $stat_name;
+ $_url_params['sort_order'] = ($sort_by == $stat_name && $sort_order == 'desc') ? 'asc' : 'desc';
+ echo ' <th' . $colspan . '>'
+ .'<a href="./server_databases.php' . PMA_generate_common_url($_url_params) . '">' . "\n"
+ .' ' . $stat['disp_name'] . "\n"
+ .($sort_by == $stat_name ? ' <img class="icon" src="' . $pmaThemeImage . 's_' . $sort_order . '.png" width="11" height="9" alt="' . ($sort_order == 'asc' ? $strAscending : $strDescending) . '" />' . "\n" : '')
+ .' </a></th>' . "\n";
+ }
+ }
+ if ($is_superuser) {
+ echo ' <th>' . ($cfg['PropertiesIconic'] ? '&nbsp;' : $strAction) . "\n"
+ . ' </th>' . "\n";
+ }
+ echo '</tr>' . "\n"
+ . '</thead>' . "\n"
+ . '<tbody>' . "\n";
+
+ $odd_row = true;
+ foreach ($databases as $current) {
+ echo '<tr class="' . ($odd_row ? 'odd' : 'even') . '">' . "\n";
+ $odd_row = ! $odd_row;
+
+ if ($is_superuser || $cfg['AllowUserDropDatabase']) {
+ echo ' <td class="tool">' . "\n";
+ if ($current['SCHEMA_NAME'] != 'mysql'
+ && $current['SCHEMA_NAME'] != 'information_schema') {
+ echo ' <input type="checkbox" name="selected_dbs[]" title="' . htmlspecialchars($current['SCHEMA_NAME']) . '" value="' . htmlspecialchars($current['SCHEMA_NAME']) . '" ' . (empty($checkall) ? '' : 'checked="checked" ') . '/>' . "\n";
+ } else {
+ echo ' <input type="checkbox" name="selected_dbs[]" title="' . htmlspecialchars($current['SCHEMA_NAME']) . '" value="' . htmlspecialchars($current['SCHEMA_NAME']) . '" disabled="disabled"/>' . "\n";
+ }
+ echo ' </td>' . "\n";
+ }
+ echo ' <td class="name">' . "\n"
+ . ' <a onclick="'
+ . 'if (window.parent.openDb && window.parent.openDb(\'' . PMA_jsFormat($current['SCHEMA_NAME'], false) . '\')) return false;'
+ . '" href="index.php?' . $url_query . '&amp;db='
+ . urlencode($current['SCHEMA_NAME']) . '" title="'
+ . sprintf($strJumpToDB, htmlspecialchars($current['SCHEMA_NAME']))
+ . '" target="_parent">' . "\n"
+ . ' ' . htmlspecialchars($current['SCHEMA_NAME']) . "\n"
+ . ' </a>' . "\n"
+ . ' </td>' . "\n";
+
+ foreach ($column_order as $stat_name => $stat) {
+ if (array_key_exists($stat_name, $current)) {
+ if (is_numeric($stat['footer'])) {
+ $column_order[$stat_name]['footer'] += $current[$stat_name];
+ }
+ if ($stat['format'] === 'byte') {
+ list($value, $unit) = PMA_formatByteDown($current[$stat_name], 3, 1);
+ } elseif ($stat['format'] === 'number') {
+ $value = PMA_formatNumber($current[$stat_name], 0);
+ } else {
+ $value = htmlentities($current[$stat_name], 0);
+ }
+ echo ' <td class="value">';
+ if (isset($stat['description_function'])) {
+ echo '<dfn title="' . $stat['description_function']($current[$stat_name]) . '">';
+ }
+ echo $value;
+ if (isset($stat['description_function'])) {
+ echo '</dfn>';
+ }
+ echo '</td>' . "\n";
+ if ($stat['format'] === 'byte') {
+ echo ' <td class="unit">' . $unit . '</td>' . "\n";
+ }
+ }
+ }
+
+ if ($is_superuser) {
+ echo ' <td class="tool">' . "\n"
+ . ' <a onclick="
+ // <![CDATA[
+ if (window.parent.setDb) window.parent.setDb(\'' . PMA_jsFormat($current['SCHEMA_NAME']) . '\');
+ // ]]>" href="./server_privileges.php?' . $url_query
+ . '&amp;checkprivs=' . urlencode($current['SCHEMA_NAME'])
+ . '" title="' . sprintf($strCheckPrivsLong, htmlspecialchars($current['SCHEMA_NAME']))
+ . '">'. "\n"
+ . ' '
+ . ($cfg['PropertiesIconic']
+ ? '<img class="icon" src="' . $pmaThemeImage . 's_rights.png" width="16" height="16" alt=" ' . $strCheckPrivs . '" /> '
+ : $strCheckPrivs) . "\n"
+ . ' </a></td>' . "\n";
+ }
+ echo '</tr>' . "\n";
+ } // end foreach ($databases as $key => $current)
+ unset($current, $odd_row);
+
+ echo '<tr>' . "\n";
+ if ($is_superuser || $cfg['AllowUserDropDatabase']) {
+ echo ' <th>&nbsp;</th>' . "\n";
+ }
+ echo ' <th>' . $strTotalUC . ': ' . $databases_count . '</th>' . "\n";
+ foreach ($column_order as $stat_name => $stat) {
+ if (array_key_exists($stat_name, $first_database)) {
+ if ($stat['format'] === 'byte') {
+ list($value, $unit) = PMA_formatByteDown($stat['footer'], 3, 1);
+ } elseif ($stat['format'] === 'number') {
+ $value = PMA_formatNumber($stat['footer'], 0);
+ } else {
+ $value = htmlentities($stat['footer'], 0);
+ }
+ echo ' <th class="value">';
+ if (isset($stat['description_function'])) {
+ echo '<dfn title="' . $stat['description_function']($stat['footer']) . '">';
+ }
+ echo $value;
+ if (isset($stat['description_function'])) {
+ echo '</dfn>';
+ }
+ echo '</th>' . "\n";
+ if ($stat['format'] === 'byte') {
+ echo ' <th class="unit">' . $unit . '</th>' . "\n";
+ }
+ }
+ }
+ if ($is_superuser) {
+ echo ' <th>&nbsp;</th>' . "\n";
+ }
+ echo '</tr>' . "\n";
+ echo '</tbody>' . "\n"
+ .'</table>' . "\n";
+ unset($column_order, $stat_name, $stat, $databases, $table_columns);
+
+ if ($is_superuser || $cfg['AllowUserDropDatabase']) {
+ $common_url_query = PMA_generate_common_url() . '&amp;sort_by=' . $sort_by . '&amp;sort_order=' . $sort_order . '&amp;dbstats=' . $dbstats;
+ echo '<img class="selectallarrow" src="' . $pmaThemeImage . 'arrow_' . $text_dir . '.png" width="38" height="22" alt="' . $strWithChecked . '" />' . "\n"
+ . '<a href="./server_databases.php?' . $common_url_query . '&amp;checkall=1" onclick="if (markAllRows(\'tabledatabases\')) return false;">' . "\n"
+ . ' ' . $strCheckAll . '</a> / ' . "\n"
+ . '<a href="./server_databases.php?' . $common_url_query . '" onclick="if (unMarkAllRows(\'tabledatabases\')) return false;">' . "\n"
+ . ' ' . $strUncheckAll . '</a>' . "\n"
+ . '<i>' . $strWithChecked . '</i>' . "\n";
+ PMA_buttonOrImage('drop_selected_dbs', 'mult_submit', 'drop_selected_dbs', $strDrop, 'b_deltbl.png');
+ }
+
+ echo '<ul><li id="li_switch_dbstats"><strong>' . "\n";
+ if (empty($dbstats)) {
+ echo ' <a href="./server_databases.php?' . $url_query . '&amp;dbstats=1"'
+ .' title="' . $strDatabasesStatsEnable . '">' . "\n"
+ .' ' . $strDatabasesStatsEnable;
+ } else {
+ echo ' <a href="./server_databases.php?' . $url_query . '"'
+ .' title="' . $strDatabasesStatsDisable . '">' . "\n"
+ .' ' . $strDatabasesStatsDisable;
+ }
+ echo '</a></strong><br />' . "\n";
+ PMA_Message::warning('strDatabasesStatsHeavyTraffic')->display();
+ echo '</li>' . "\n"
+ .'</ul>' . "\n";
+ echo '</form>';
+} else {
+ echo $strNoDatabases;
+}
+unset($databases_count);
+
+/**
+ * Create new database.
+ */
+if ($cfg['ShowCreateDb']) {
+ echo '<ul><li id="li_create_database">' . "\n";
+ require './libraries/display_create_database.lib.php';
+ echo ' </li>' . "\n";
+ echo '</ul>' . "\n";
+}
+
+/**
+ * Sends the footer
+ */
+require_once './libraries/footer.inc.php';
+
+?>
diff --git a/server_engines.php b/server_engines.php
new file mode 100644
index 0000000000..02a65fcad8
--- /dev/null
+++ b/server_engines.php
@@ -0,0 +1,149 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * display list of server enignes and additonal information about them
+ *
+ * @version $Id$
+ * @todo falcon storage enginge is not listed under dev.mysql.com/doc/refman but dev.mysql.com/doc/falcon/
+ */
+
+/**
+ *
+ */
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+
+/**
+ * requirements
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work
+ */
+require './libraries/server_common.inc.php';
+require './libraries/StorageEngine.class.php';
+
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+/**
+ * Did the user request information about a certain storage engine?
+ */
+if (empty($_REQUEST['engine'])
+ || ! PMA_StorageEngine::isValid($_REQUEST['engine'])) {
+
+ /**
+ * Displays the sub-page heading
+ */
+ echo '<h2>' . "\n"
+ . ($GLOBALS['cfg']['MainPageIconic']
+ ? '<img class="icon" src="' . $pmaThemeImage . 'b_engine.png"'
+ .' width="16" height="16" alt="" />' : '')
+ . "\n" . $strStorageEngines . "\n"
+ . '</h2>' . "\n";
+
+
+ /**
+ * Displays the table header
+ */
+ echo '<table>' . "\n"
+ . '<thead>' . "\n"
+ . '<tr><th>' . $strStorageEngine . '</th>' . "\n"
+ . ' <th>' . $strDescription . '</th>' . "\n"
+ . '</tr>' . "\n"
+ . '</thead>' . "\n"
+ . '<tbody>' . "\n";
+
+
+ /**
+ * Listing the storage engines
+ */
+ $odd_row = true;
+ foreach (PMA_StorageEngine::getStorageEngines() as $engine => $details) {
+ echo '<tr class="'
+ . ($odd_row ? 'odd' : 'even')
+ . ($details['Support'] == 'NO' || $details['Support'] == 'DISABLED'
+ ? ' disabled'
+ : '')
+ . '">' . "\n"
+ . ' <td><a href="./server_engines.php'
+ . PMA_generate_common_url(array('engine' => $engine)) . '">' . "\n"
+ . ' ' . htmlspecialchars($details['Engine']) . "\n"
+ . ' </a></td>' . "\n"
+ . ' <td>' . htmlspecialchars($details['Comment']) . '</td>' . "\n"
+ . '</tr>' . "\n";
+ $odd_row = !$odd_row;
+ }
+ unset($odd_row, $engine, $details);
+ echo '</tbody>' . "\n"
+ . '</table>' . "\n";
+
+} else {
+
+ /**
+ * Displays details about a given Storage Engine
+ */
+
+ $engine_plugin = PMA_StorageEngine::getEngine($_REQUEST['engine']);
+ echo '<h2>' . "\n"
+ . ($GLOBALS['cfg']['MainPageIconic']
+ ? '<img class="icon" src="' . $pmaThemeImage . 'b_engine.png"'
+ .' width="16" height="16" alt="" />' : '')
+ . ' ' . htmlspecialchars($engine_plugin->getTitle()) . "\n"
+ . ' ' . PMA_showMySQLDocu('', $engine_plugin->getMysqlHelpPage()) . "\n"
+ . '</h2>' . "\n\n";
+ echo '<p>' . "\n"
+ . ' <em>' . "\n"
+ . ' ' . htmlspecialchars($engine_plugin->getComment()) . "\n"
+ . ' </em>' . "\n"
+ . '</p>' . "\n\n";
+ $infoPages = $engine_plugin->getInfoPages();
+ if (!empty($infoPages) && is_array($infoPages)) {
+ echo '<p>' . "\n"
+ . ' <strong>[</strong>' . "\n";
+ if (empty($_REQUEST['page'])) {
+ echo ' <strong>' . $strServerTabVariables . '</strong>' . "\n";
+ } else {
+ echo ' <a href="./server_engines.php'
+ . PMA_generate_common_url(array('engine' => $_REQUEST['engine'])) . '">'
+ . $strServerTabVariables . '</a>' . "\n";
+ }
+ foreach ($infoPages as $current => $label) {
+ echo ' <strong>|</strong>' . "\n";
+ if (isset($_REQUEST['page']) && $_REQUEST['page'] == $current) {
+ echo ' <strong>' . $label . '</strong>' . "\n";
+ } else {
+ echo ' <a href="./server_engines.php'
+ . PMA_generate_common_url(
+ array('engine' => $_REQUEST['engine'], 'page' => $current))
+ . '">' . htmlspecialchars($label) . '</a>' . "\n";
+ }
+ }
+ unset($current, $label);
+ echo ' <strong>]</strong>' . "\n"
+ . '</p>' . "\n\n";
+ }
+ unset($infoPages, $page_output);
+ if (!empty($_REQUEST['page'])) {
+ $page_output = $engine_plugin->getPage($_REQUEST['page']);
+ }
+ if (!empty($page_output)) {
+ echo $page_output;
+ } else {
+ echo '<p> ' . $engine_plugin->getSupportInformationMessage() . "\n"
+ . '</p>' . "\n"
+ . $engine_plugin->getHtmlVariables();
+ }
+}
+
+/**
+ * Sends the footer
+ */
+require_once './libraries/footer.inc.php';
+
+?>
diff --git a/server_export.php b/server_export.php
new file mode 100644
index 0000000000..bc39f43c8d
--- /dev/null
+++ b/server_export.php
@@ -0,0 +1,53 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Does the common work
+ */
+require_once './libraries/common.inc.php';
+
+$GLOBALS['js_include'][] = 'functions.js';
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+$export_page_title = $strViewDumpDatabases . "\n";
+$checkall_url = 'server_export.php?'
+ . PMA_generate_common_url()
+ . '&amp;goto=db_export.php';
+
+$multi_values = '<div align="center">';
+$multi_values .= '<a href="' . $checkall_url . '&amp;selectall=1" onclick="setSelectOptions(\'dump\', \'db_select[]\', true); return false;">' . $strSelectAll . '</a>
+ /
+ <a href="' . $checkall_url . '" onclick="setSelectOptions(\'dump\', \'db_select[]\', false); return false;">' . $strUnselectAll . '</a><br />';
+
+$multi_values .= '<select name="db_select[]" size="6" multiple="multiple">';
+$multi_values .= "\n";
+
+foreach ($GLOBALS['pma']->databases as $current_db) {
+ if (!empty($selectall) || (isset($tmp_select) && strpos(' ' . $tmp_select, '|' . $current_db . '|'))) {
+ $is_selected = ' selected="selected"';
+ } else {
+ $is_selected = '';
+ }
+ $current_db = htmlspecialchars($current_db);
+ $multi_values .= ' <option value="' . $current_db . '"' . $is_selected . '>' . $current_db . '</option>' . "\n";
+} // end while
+$multi_values .= "\n";
+$multi_values .= '</select></div><br />';
+
+$export_type = 'server';
+require_once './libraries/display_export.lib.php';
+
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/server_import.php b/server_import.php
new file mode 100644
index 0000000000..4622ab9822
--- /dev/null
+++ b/server_import.php
@@ -0,0 +1,31 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work
+ */
+require './libraries/server_common.inc.php';
+
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+$import_type = 'server';
+require './libraries/display_import.lib.php';
+/**
+ * Displays the footer
+ */
+require './libraries/footer.inc.php';
+?>
+
diff --git a/server_privileges.php b/server_privileges.php
new file mode 100644
index 0000000000..b3255ba775
--- /dev/null
+++ b/server_privileges.php
@@ -0,0 +1,2082 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work
+ */
+$GLOBALS['js_include'][] = 'server_privileges.js';
+$GLOBALS['js_include'][] = 'functions.js';
+require './libraries/server_common.inc.php';
+
+
+/**
+ * Checks if a dropdown box has been used for selecting a database / table
+ */
+if (PMA_isValid($_REQUEST['pred_tablename'])) {
+ $tablename = $_REQUEST['pred_tablename'];
+ unset($pred_tablename);
+} elseif (PMA_isValid($_REQUEST['tablename'])) {
+ $tablename = $_REQUEST['tablename'];
+} else {
+ unset($tablename);
+}
+
+if (PMA_isValid($_REQUEST['pred_dbname'])) {
+ $dbname = $_REQUEST['pred_dbname'];
+ unset($pred_dbname);
+} elseif (PMA_isValid($_REQUEST['dbname'])) {
+ $dbname = $_REQUEST['dbname'];
+} else {
+ unset($dbname);
+ unset($tablename);
+}
+
+if (isset($dbname)) {
+ $db_and_table = PMA_backquote(PMA_unescape_mysql_wildcards($dbname)) . '.';
+ if (isset($tablename)) {
+ $db_and_table .= PMA_backquote($tablename);
+ } else {
+ $db_and_table .= '*';
+ }
+} else {
+ $db_and_table = '*.*';
+}
+
+// check if given $dbanem is a wildcard or not
+if (isset($dbname)) {
+ //if (preg_match('/\\\\(?:_|%)/i', $dbname)) {
+ if (preg_match('/(?<!\\\\)(?:_|%)/i', $dbname)) {
+ $dbname_is_wildcard = true;
+ } else {
+ $dbname_is_wildcard = false;
+ }
+}
+
+/**
+ * Checks if the user is allowed to do what he tries to...
+ */
+if (!$is_superuser) {
+ require './libraries/server_links.inc.php';
+ echo '<h2>' . "\n"
+ . PMA_getIcon('b_usrlist.png')
+ . $GLOBALS['strPrivileges'] . "\n"
+ . '</h2>' . "\n";
+ PMA_Message::error('strNoPrivileges')->display();
+ require_once './libraries/footer.inc.php';
+}
+
+/**
+ * Generates a condition on the user name
+ *
+ * @param string the user's initial
+ * @return string the generated condition
+ */
+function PMA_RangeOfUsers($initial = '')
+{
+ // strtolower() is used because the User field
+ // might be BINARY, so LIKE would be case sensitive
+ if (!empty($initial)) {
+ $ret = " WHERE `User` LIKE '" . $initial . "%'"
+ . " OR `User` LIKE '" . strtolower($initial) . "%'";
+ } else {
+ $ret = '';
+ }
+ return $ret;
+} // end function
+
+/**
+ * Extracts the privilege information of a priv table row
+ *
+ * @param array $row the row
+ * @param boolean $enableHTML add <dfn> tag with tooltips
+ *
+ * @global ressource $user_link the database connection
+ *
+ * @return array
+ */
+function PMA_extractPrivInfo($row = '', $enableHTML = FALSE)
+{
+ $grants = array(
+ array('Select_priv', 'SELECT', $GLOBALS['strPrivDescSelect']),
+ array('Insert_priv', 'INSERT', $GLOBALS['strPrivDescInsert']),
+ array('Update_priv', 'UPDATE', $GLOBALS['strPrivDescUpdate']),
+ array('Delete_priv', 'DELETE', $GLOBALS['strPrivDescDelete']),
+ array('Create_priv', 'CREATE', $GLOBALS['strPrivDescCreateDb']),
+ array('Drop_priv', 'DROP', $GLOBALS['strPrivDescDropDb']),
+ array('Reload_priv', 'RELOAD', $GLOBALS['strPrivDescReload']),
+ array('Shutdown_priv', 'SHUTDOWN', $GLOBALS['strPrivDescShutdown']),
+ array('Process_priv', 'PROCESS', $GLOBALS['strPrivDescProcess']),
+ array('File_priv', 'FILE', $GLOBALS['strPrivDescFile']),
+ array('References_priv', 'REFERENCES', $GLOBALS['strPrivDescReferences']),
+ array('Index_priv', 'INDEX', $GLOBALS['strPrivDescIndex']),
+ array('Alter_priv', 'ALTER', $GLOBALS['strPrivDescAlter']),
+ array('Show_db_priv', 'SHOW DATABASES', $GLOBALS['strPrivDescShowDb']),
+ array('Super_priv', 'SUPER', $GLOBALS['strPrivDescSuper']),
+ array('Create_tmp_table_priv', 'CREATE TEMPORARY TABLES', $GLOBALS['strPrivDescCreateTmpTable']),
+ array('Lock_tables_priv', 'LOCK TABLES', $GLOBALS['strPrivDescLockTables']),
+ array('Repl_slave_priv', 'REPLICATION SLAVE', $GLOBALS['strPrivDescReplSlave']),
+ array('Repl_client_priv', 'REPLICATION CLIENT', $GLOBALS['strPrivDescReplClient']),
+ array('Create_view_priv', 'CREATE VIEW', $GLOBALS['strPrivDescCreateView']),
+ array('Event_priv', 'EVENT', $GLOBALS['strPrivDescEvent']),
+ array('Trigger_priv', 'TRIGGER', $GLOBALS['strPrivDescTrigger']),
+ // for table privs:
+ array('Create View_priv', 'CREATE VIEW', $GLOBALS['strPrivDescCreateView']),
+ array('Show_view_priv', 'SHOW VIEW', $GLOBALS['strPrivDescShowView']),
+ // for table privs:
+ array('Show view_priv', 'SHOW VIEW', $GLOBALS['strPrivDescShowView']),
+ array('Create_routine_priv', 'CREATE ROUTINE', $GLOBALS['strPrivDescCreateRoutine']),
+ array('Alter_routine_priv', 'ALTER ROUTINE', $GLOBALS['strPrivDescAlterRoutine']),
+ array('Create_user_priv', 'CREATE USER', $GLOBALS['strPrivDescCreateUser']),
+ array('Execute_priv', 'EXECUTE', $GLOBALS['strPrivDescExecute5']),
+ );
+
+ if (!empty($row) && isset($row['Table_priv'])) {
+ $row1 = PMA_DBI_fetch_single_row(
+ 'SHOW COLUMNS FROM `mysql`.`tables_priv` LIKE \'Table_priv\';',
+ 'ASSOC', $GLOBALS['userlink']);
+ $av_grants = explode('\',\'', substr($row1['Type'], 5, strlen($row1['Type']) - 7));
+ unset($row1);
+ $users_grants = explode(',', $row['Table_priv']);
+ foreach ($av_grants as $current_grant) {
+ $row[$current_grant . '_priv'] = in_array($current_grant, $users_grants) ? 'Y' : 'N';
+ }
+ unset($current_grant);
+ unset($av_grants);
+ unset($users_grants);
+ }
+ $privs = array();
+ $allPrivileges = TRUE;
+ foreach ($grants as $current_grant) {
+ if ((!empty($row) && isset($row[$current_grant[0]]))
+ || (empty($row) && isset($GLOBALS[$current_grant[0]]))) {
+ if ((!empty($row) && $row[$current_grant[0]] == 'Y')
+ || (empty($row)
+ && ($GLOBALS[$current_grant[0]] == 'Y'
+ || (is_array($GLOBALS[$current_grant[0]])
+ && count($GLOBALS[$current_grant[0]]) == $GLOBALS['column_count']
+ && empty($GLOBALS[$current_grant[0] . '_none'])))))
+ {
+ if ($enableHTML) {
+ $privs[] = '<dfn title="' . $current_grant[2] . '">' . $current_grant[1] . '</dfn>';
+ } else {
+ $privs[] = $current_grant[1];
+ }
+ } elseif (!empty($GLOBALS[$current_grant[0]])
+ && is_array($GLOBALS[$current_grant[0]])
+ && empty($GLOBALS[$current_grant[0] . '_none'])) {
+ if ($enableHTML) {
+ $priv_string = '<dfn title="' . $current_grant[2] . '">' . $current_grant[1] . '</dfn>';
+ } else {
+ $priv_string = $current_grant[1];
+ }
+ $privs[] = $priv_string . ' (`' . join('`, `', $GLOBALS[$current_grant[0]]) . '`)';
+ } else {
+ $allPrivileges = FALSE;
+ }
+ }
+ }
+ if (empty($privs)) {
+ if ($enableHTML) {
+ $privs[] = '<dfn title="' . $GLOBALS['strPrivDescUsage'] . '">USAGE</dfn>';
+ } else {
+ $privs[] = 'USAGE';
+ }
+ } elseif ($allPrivileges && (!isset($GLOBALS['grant_count']) || count($privs) == $GLOBALS['grant_count'])) {
+ if ($enableHTML) {
+ $privs = array('<dfn title="' . $GLOBALS['strPrivDescAllPrivileges'] . '">ALL PRIVILEGES</dfn>');
+ } else {
+ $privs = array('ALL PRIVILEGES');
+ }
+ }
+ return $privs;
+} // end of the 'PMA_extractPrivInfo()' function
+
+/**
+ * Displays on which column(s) a table-specific privilege is granted
+ */
+function PMA_display_column_privs($columns, $row, $name_for_select,
+ $priv_for_header, $name, $name_for_dfn, $name_for_current)
+{
+ echo ' <div class="item" id="div_item_' . $name . '">' . "\n"
+ . ' <label for="select_' . $name . '_priv">' . "\n"
+ . ' <tt><dfn title="' . $name_for_dfn . '">'
+ . $priv_for_header . '</dfn></tt>' . "\n"
+ . ' </label><br />' . "\n"
+ . ' <select id="select_' . $name . '_priv" name="'
+ . $name_for_select . '[]" multiple="multiple" size="8">' . "\n";
+
+ foreach ($columns as $current_column => $current_column_privileges) {
+ echo ' <option value="' . htmlspecialchars($current_column) . '"';
+ if ($row[$name_for_select] == 'Y' || $current_column_privileges[$name_for_current]) {
+ echo ' selected="selected"';
+ }
+ echo '>' . htmlspecialchars($current_column) . '</option>' . "\n";
+ }
+
+ echo ' </select>' . "\n"
+ . ' <i>' . $GLOBALS['strOr'] . '</i>' . "\n"
+ . ' <label for="checkbox_' . $name_for_select
+ . '_none"><input type="checkbox"'
+ . (empty($GLOBALS['checkall']) ? '' : ' checked="checked"')
+ . ' name="' . $name_for_select . '_none" id="checkbox_'
+ . $name_for_select . '_none" title="' . $GLOBALS['strNone'] . '" />'
+ . $GLOBALS['strNone'] . '</label>' . "\n"
+ . ' </div>' . "\n";
+} // end function
+
+
+/**
+ * Displays the privileges form table
+ *
+ * @param string $db the database
+ * @param string $table the table
+ * @param boolean $submit wheather to display the submit button or not
+ * @global array $cfg the phpMyAdmin configuration
+ * @global ressource $user_link the database connection
+ *
+ * @return void
+ */
+function PMA_displayPrivTable($db = '*', $table = '*', $submit = TRUE)
+{
+ if ($db == '*') {
+ $table = '*';
+ }
+
+ if (isset($GLOBALS['username'])) {
+ $username = $GLOBALS['username'];
+ $hostname = $GLOBALS['hostname'];
+ if ($db == '*') {
+ $sql_query =
+ "SELECT * FROM `mysql`.`user`"
+ ." WHERE `User` = '" . PMA_sqlAddslashes($username) . "'"
+ ." AND `Host` = '" . PMA_sqlAddslashes($hostname) . "';";
+ } elseif ($table == '*') {
+ $sql_query =
+ "SELECT * FROM `mysql`.`db`"
+ ." WHERE `User` = '" . PMA_sqlAddslashes($username) . "'"
+ ." AND `Host` = '" . PMA_sqlAddslashes($hostname) . "'"
+ ." AND '" . PMA_unescape_mysql_wildcards($db) . "'"
+ ." LIKE `Db`;";
+ } else {
+ $sql_query =
+ "SELECT `Table_priv`"
+ ." FROM `mysql`.`tables_priv`"
+ ." WHERE `User` = '" . PMA_sqlAddslashes($username) . "'"
+ ." AND `Host` = '" . PMA_sqlAddslashes($hostname) . "'"
+ ." AND `Db` = '" . PMA_unescape_mysql_wildcards($db) . "'"
+ ." AND `Table_name` = '" . PMA_sqlAddslashes($table) . "';";
+ }
+ $row = PMA_DBI_fetch_single_row($sql_query);
+ }
+ if (empty($row)) {
+ if ($table == '*') {
+ if ($db == '*') {
+ $sql_query = 'SHOW COLUMNS FROM `mysql`.`user`;';
+ } elseif ($table == '*') {
+ $sql_query = 'SHOW COLUMNS FROM `mysql`.`db`;';
+ }
+ $res = PMA_DBI_query($sql_query);
+ while ($row1 = PMA_DBI_fetch_row($res)) {
+ if (substr($row1[0], 0, 4) == 'max_') {
+ $row[$row1[0]] = 0;
+ } else {
+ $row[$row1[0]] = 'N';
+ }
+ }
+ PMA_DBI_free_result($res);
+ } else {
+ $row = array('Table_priv' => '');
+ }
+ }
+ if (isset($row['Table_priv'])) {
+ $row1 = PMA_DBI_fetch_single_row(
+ 'SHOW COLUMNS FROM `mysql`.`tables_priv` LIKE \'Table_priv\';',
+ 'ASSOC', $GLOBALS['userlink']);
+ // note: in MySQL 5.0.3 we get "Create View', 'Show view';
+ // the View for Create is spelled with uppercase V
+ // the view for Show is spelled with lowercase v
+ // and there is a space between the words
+
+ $av_grants = explode('\',\'', substr($row1['Type'], strpos($row1['Type'], '(') + 2, strpos($row1['Type'], ')') - strpos($row1['Type'], '(') - 3));
+ unset($row1);
+ $users_grants = explode(',', $row['Table_priv']);
+
+ foreach ($av_grants as $current_grant) {
+ $row[$current_grant . '_priv'] = in_array($current_grant, $users_grants) ? 'Y' : 'N';
+ }
+ unset($row['Table_priv'], $current_grant, $av_grants, $users_grants);
+
+ // get collumns
+ $res = PMA_DBI_try_query('SHOW COLUMNS FROM `' . PMA_unescape_mysql_wildcards($db) . '`.`' . $table . '`;');
+ $columns = array();
+ if ($res) {
+ while ($row1 = PMA_DBI_fetch_row($res)) {
+ $columns[$row1[0]] = array(
+ 'Select' => FALSE,
+ 'Insert' => FALSE,
+ 'Update' => FALSE,
+ 'References' => FALSE
+ );
+ }
+ PMA_DBI_free_result($res);
+ }
+ unset($res, $row1);
+ }
+ // t a b l e - s p e c i f i c p r i v i l e g e s
+ if (! empty($columns)) {
+ $res = PMA_DBI_query(
+ 'SELECT `Column_name`, `Column_priv`'
+ .' FROM `mysql`.`columns_priv`'
+ .' WHERE `User`'
+ .' = \'' . PMA_sqlAddslashes($username) . "'"
+ .' AND `Host`'
+ .' = \'' . PMA_sqlAddslashes($hostname) . "'"
+ .' AND `Db`'
+ .' = \'' . PMA_unescape_mysql_wildcards($db) . "'"
+ .' AND `Table_name`'
+ .' = \'' . PMA_sqlAddslashes($table) . '\';');
+
+ while ($row1 = PMA_DBI_fetch_row($res)) {
+ $row1[1] = explode(',', $row1[1]);
+ foreach ($row1[1] as $current) {
+ $columns[$row1[0]][$current] = TRUE;
+ }
+ }
+ PMA_DBI_free_result($res);
+ unset($res, $row1, $current);
+
+ echo '<input type="hidden" name="grant_count" value="' . count($row) . '" />' . "\n"
+ . '<input type="hidden" name="column_count" value="' . count($columns) . '" />' . "\n"
+ . '<fieldset id="fieldset_user_priv">' . "\n"
+ . ' <legend>' . $GLOBALS['strTblPrivileges']
+ . PMA_showHint($GLOBALS['strEnglishPrivileges'])
+ . '</legend>' . "\n";
+
+
+
+ // privs that are attached to a specific column
+ PMA_display_column_privs($columns, $row, 'Select_priv',
+ 'SELECT', 'select', $GLOBALS['strPrivDescSelect'], 'Select');
+
+ PMA_display_column_privs($columns, $row, 'Insert_priv',
+ 'INSERT', 'insert', $GLOBALS['strPrivDescInsert'], 'Insert');
+
+ PMA_display_column_privs($columns, $row, 'Update_priv',
+ 'UPDATE', 'update', $GLOBALS['strPrivDescUpdate'], 'Update');
+
+ PMA_display_column_privs($columns, $row, 'References_priv',
+ 'REFERENCES', 'references', $GLOBALS['strPrivDescReferences'], 'References');
+
+ // privs that are not attached to a specific column
+
+ echo ' <div class="item">' . "\n";
+ foreach ($row as $current_grant => $current_grant_value) {
+ if (in_array(substr($current_grant, 0, (strlen($current_grant) - 5)),
+ array('Select', 'Insert', 'Update', 'References'))) {
+ continue;
+ }
+ // make a substitution to match the messages variables;
+ // also we must substitute the grant we get, because we can't generate
+ // a form variable containing blanks (those would get changed to
+ // an underscore when receiving the POST)
+ if ($current_grant == 'Create View_priv') {
+ $tmp_current_grant = 'CreateView_priv';
+ $current_grant = 'Create_view_priv';
+ } elseif ($current_grant == 'Show view_priv') {
+ $tmp_current_grant = 'ShowView_priv';
+ $current_grant = 'Show_view_priv';
+ } else {
+ $tmp_current_grant = $current_grant;
+ }
+
+ echo ' <div class="item">' . "\n"
+ . ' <input type="checkbox"'
+ . (empty($GLOBALS['checkall']) ? '' : ' checked="checked"')
+ . ' name="' . $current_grant . '" id="checkbox_' . $current_grant
+ . '" value="Y" '
+ . ($current_grant_value == 'Y' ? 'checked="checked" ' : '')
+ . 'title="';
+
+ echo (isset($GLOBALS['strPrivDesc' . substr($tmp_current_grant, 0, (strlen($tmp_current_grant) - 5))])
+ ? $GLOBALS['strPrivDesc' . substr($tmp_current_grant, 0, (strlen($tmp_current_grant) - 5))]
+ : $GLOBALS['strPrivDesc' . substr($tmp_current_grant, 0, (strlen($tmp_current_grant) - 5)) . 'Tbl']) . '"/>' . "\n";
+
+ echo ' <label for="checkbox_' . $current_grant
+ . '"><tt><dfn title="'
+ . (isset($GLOBALS['strPrivDesc' . substr($tmp_current_grant, 0, (strlen($tmp_current_grant) - 5))])
+ ? $GLOBALS['strPrivDesc' . substr($tmp_current_grant, 0, (strlen($tmp_current_grant) - 5))]
+ : $GLOBALS['strPrivDesc' . substr($tmp_current_grant, 0, (strlen($tmp_current_grant) - 5)) . 'Tbl'])
+ . '">' . strtoupper(substr($current_grant, 0, strlen($current_grant) - 5)) . '</dfn></tt></label>' . "\n"
+ . ' </div>' . "\n";
+ } // end foreach ()
+
+ echo ' </div>' . "\n";
+ // for Safari 2.0.2
+ echo ' <div class="clearfloat"></div>' . "\n";
+
+ } else {
+
+ // g l o b a l o r d b - s p e c i f i c
+ //
+ // d a t a
+ $privTable[0] = array(
+ array('Select', 'SELECT', $GLOBALS['strPrivDescSelect']),
+ array('Insert', 'INSERT', $GLOBALS['strPrivDescInsert']),
+ array('Update', 'UPDATE', $GLOBALS['strPrivDescUpdate']),
+ array('Delete', 'DELETE', $GLOBALS['strPrivDescDelete'])
+ );
+ if ($db == '*') {
+ $privTable[0][] = array('File', 'FILE', $GLOBALS['strPrivDescFile']);
+ }
+
+ // s t r u c t u r e
+ $privTable[1] = array(
+ array('Create', 'CREATE', ($table == '*' ? $GLOBALS['strPrivDescCreateDb'] : $GLOBALS['strPrivDescCreateTbl'])),
+ array('Alter', 'ALTER', $GLOBALS['strPrivDescAlter']),
+ array('Index', 'INDEX', $GLOBALS['strPrivDescIndex']),
+ array('Drop', 'DROP', ($table == '*' ? $GLOBALS['strPrivDescDropDb'] : $GLOBALS['strPrivDescDropTbl'])),
+ array('Create_tmp_table', 'CREATE TEMPORARY TABLES', $GLOBALS['strPrivDescCreateTmpTable']),
+ array('Show_view', 'SHOW VIEW', $GLOBALS['strPrivDescShowView']),
+ array('Create_routine', 'CREATE ROUTINE', $GLOBALS['strPrivDescCreateRoutine']),
+ array('Alter_routine', 'ALTER ROUTINE', $GLOBALS['strPrivDescAlterRoutine']),
+ array('Execute', 'EXECUTE', $GLOBALS['strPrivDescExecute5']),
+ );
+ // this one is for a db-specific priv: Create_view_priv
+ if (isset($row['Create_view_priv'])) {
+ $privTable[1][] = array('Create_view', 'CREATE VIEW', $GLOBALS['strPrivDescCreateView']);
+ }
+ // this one is for a table-specific priv: Create View_priv
+ if (isset($row['Create View_priv'])) {
+ $privTable[1][] = array('Create View', 'CREATE VIEW', $GLOBALS['strPrivDescCreateView']);
+ }
+ if (isset($row['Event_priv'])) {
+ // MySQL 5.1.6
+ $privTable[1][] = array('Event', 'EVENT', $GLOBALS['strPrivDescEvent']);
+ $privTable[1][] = array('Trigger', 'TRIGGER', $GLOBALS['strPrivDescTrigger']);
+ }
+
+ // a d m i n i s t r a t i o n
+ $privTable[2] = array(
+ array('Grant', 'GRANT', $GLOBALS['strPrivDescGrant']),
+ );
+ if ($db == '*') {
+ $privTable[2][] = array('Super', 'SUPER', $GLOBALS['strPrivDescSuper']);
+ $privTable[2][] = array('Process', 'PROCESS', $GLOBALS['strPrivDescProcess']);
+ $privTable[2][] = array('Reload', 'RELOAD', $GLOBALS['strPrivDescReload']);
+ $privTable[2][] = array('Shutdown', 'SHUTDOWN', $GLOBALS['strPrivDescShutdown']);
+ $privTable[2][] = array('Show_db', 'SHOW DATABASES', $GLOBALS['strPrivDescShowDb']);
+ }
+ $privTable[2][] = array('Lock_tables', 'LOCK TABLES', $GLOBALS['strPrivDescLockTables']);
+ $privTable[2][] = array('References', 'REFERENCES', $GLOBALS['strPrivDescReferences']);
+ if ($db == '*') {
+ $privTable[2][] = array('Repl_client', 'REPLICATION CLIENT', $GLOBALS['strPrivDescReplClient']);
+ $privTable[2][] = array('Repl_slave', 'REPLICATION SLAVE', $GLOBALS['strPrivDescReplSlave']);
+ $privTable[2][] = array('Create_user', 'CREATE USER', $GLOBALS['strPrivDescCreateUser']);
+ }
+ echo '<input type="hidden" name="grant_count" value="'
+ . (count($privTable[0]) + count($privTable[1]) + count($privTable[2]) - (isset($row['Grant_priv']) ? 1 : 0))
+ . '" />' . "\n"
+ . '<fieldset id="fieldset_user_global_rights">' . "\n"
+ . ' <legend>' . "\n"
+ . ' '
+ . ($db == '*'
+ ? $GLOBALS['strGlobalPrivileges']
+ : ($table == '*'
+ ? $GLOBALS['strDbPrivileges']
+ : $GLOBALS['strTblPrivileges'])) . "\n"
+ . ' (<a href="server_privileges.php?'
+ . $GLOBALS['url_query'] . '&amp;checkall=1" onclick="setCheckboxes(\'usersForm\', true); return false;">'
+ . $GLOBALS['strCheckAll'] . '</a> /' . "\n"
+ . ' <a href="server_privileges.php?'
+ . $GLOBALS['url_query'] . '" onclick="setCheckboxes(\'usersForm\', false); return false;">'
+ . $GLOBALS['strUncheckAll'] . '</a>)' . "\n"
+ . ' </legend>' . "\n"
+ . ' <p><small><i>' . $GLOBALS['strEnglishPrivileges'] . '</i></small></p>' . "\n"
+ . ' <fieldset>' . "\n"
+ . ' <legend>' . $GLOBALS['strData'] . '</legend>' . "\n";
+ foreach ($privTable[0] as $priv)
+ {
+ echo ' <div class="item">' . "\n"
+ . ' <input type="checkbox"'
+ . (empty($GLOBALS['checkall']) ? '' : ' checked="checked"')
+ . ' name="' . $priv[0] . '_priv" id="checkbox_' . $priv[0]
+ . '_priv" value="Y" '
+ . ($row[$priv[0] . '_priv'] == 'Y' ? 'checked="checked" ' : '')
+ . 'title="' . $priv[2] . '"/>' . "\n"
+ . ' <label for="checkbox_' . $priv[0]
+ . '_priv"><tt><dfn title="' . $priv[2] . '">' . $priv[1]
+ . '</dfn></tt></label>' . "\n"
+ . ' </div>' . "\n";
+ }
+ echo ' </fieldset>' . "\n"
+ . ' <fieldset>' . "\n"
+ . ' <legend>' . $GLOBALS['strStructure'] . '</legend>' . "\n";
+ foreach ($privTable[1] as $priv)
+ {
+ echo ' <div class="item">' . "\n"
+ . ' <input type="checkbox"'
+ . (empty($GLOBALS['checkall']) ? '' : ' checked="checked"')
+ . ' name="' . $priv[0] . '_priv" id="checkbox_' . $priv[0]
+ . '_priv" value="Y" '
+ . ($row[$priv[0] . '_priv'] == 'Y' ? 'checked="checked" ' : '')
+ . 'title="' . $priv[2] . '"/>' . "\n"
+ . ' <label for="checkbox_' . $priv[0]
+ . '_priv"><tt><dfn title="' . $priv[2] . '">' . $priv[1]
+ . '</dfn></tt></label>' . "\n"
+ . ' </div>' . "\n";
+ }
+ echo ' </fieldset>' . "\n"
+ . ' <fieldset>' . "\n"
+ . ' <legend>' . $GLOBALS['strAdministration'] . '</legend>' . "\n";
+ foreach ($privTable[2] as $priv)
+ {
+ echo ' <div class="item">' . "\n"
+ . ' <input type="checkbox"'
+ . (empty($GLOBALS['checkall']) ? '' : ' checked="checked"')
+ . ' name="' . $priv[0] . '_priv" id="checkbox_' . $priv[0]
+ . '_priv" value="Y" '
+ . ($row[$priv[0] . '_priv'] == 'Y' ? 'checked="checked" ' : '')
+ . 'title="' . $priv[2] . '"/>' . "\n"
+ . ' <label for="checkbox_' . $priv[0]
+ . '_priv"><tt><dfn title="' . $priv[2] . '">' . $priv[1]
+ . '</dfn></tt></label>' . "\n"
+ . ' </div>' . "\n";
+ }
+
+ echo ' </fieldset>' . "\n";
+ // The "Resource limits" box is not displayed for db-specific privs
+ if ($db == '*') {
+ echo ' <fieldset>' . "\n"
+ . ' <legend>' . $GLOBALS['strResourceLimits'] . '</legend>' . "\n"
+ . ' <p><small><i>' . $GLOBALS['strZeroRemovesTheLimit'] . '</i></small></p>' . "\n"
+ . ' <div class="item">' . "\n"
+ . ' <label for="text_max_questions"><tt><dfn title="'
+ . $GLOBALS['strPrivDescMaxQuestions'] . '">MAX QUERIES PER HOUR</dfn></tt></label>' . "\n"
+ . ' <input type="text" name="max_questions" id="text_max_questions" value="'
+ . $row['max_questions'] . '" size="11" maxlength="11" title="' . $GLOBALS['strPrivDescMaxQuestions'] . '" />' . "\n"
+ . ' </div>' . "\n"
+ . ' <div class="item">' . "\n"
+ . ' <label for="text_max_updates"><tt><dfn title="'
+ . $GLOBALS['strPrivDescMaxUpdates'] . '">MAX UPDATES PER HOUR</dfn></tt></label>' . "\n"
+ . ' <input type="text" name="max_updates" id="text_max_updates" value="'
+ . $row['max_updates'] . '" size="11" maxlength="11" title="' . $GLOBALS['strPrivDescMaxUpdates'] . '" />' . "\n"
+ . ' </div>' . "\n"
+ . ' <div class="item">' . "\n"
+ . ' <label for="text_max_connections"><tt><dfn title="'
+ . $GLOBALS['strPrivDescMaxConnections'] . '">MAX CONNECTIONS PER HOUR</dfn></tt></label>' . "\n"
+ . ' <input type="text" name="max_connections" id="text_max_connections" value="'
+ . $row['max_connections'] . '" size="11" maxlength="11" title="' . $GLOBALS['strPrivDescMaxConnections'] . '" />' . "\n"
+ . ' </div>' . "\n"
+ . ' <div class="item">' . "\n"
+ . ' <label for="text_max_user_connections"><tt><dfn title="'
+ . $GLOBALS['strPrivDescMaxUserConnections'] . '">MAX USER_CONNECTIONS</dfn></tt></label>' . "\n"
+ . ' <input type="text" name="max_user_connections" id="text_max_user_connections" value="'
+ . $row['max_user_connections'] . '" size="11" maxlength="11" title="' . $GLOBALS['strPrivDescMaxUserConnections'] . '" />' . "\n"
+ . ' </div>' . "\n"
+ . ' </fieldset>' . "\n";
+ }
+ // for Safari 2.0.2
+ echo ' <div class="clearfloat"></div>' . "\n";
+ }
+ echo '</fieldset>' . "\n";
+ if ($submit) {
+ echo '<fieldset id="fieldset_user_privtable_footer" class="tblFooters">' . "\n"
+ . ' <input type="submit" name="update_privs" value="' . $GLOBALS['strGo'] . '" />' . "\n"
+ . '</fieldset>' . "\n";
+ }
+} // end of the 'PMA_displayPrivTable()' function
+
+
+/**
+ * Displays the fields used by the "new user" form as well as the
+ * "change login information / copy user" form.
+ *
+ * @param string $mode are we creating a new user or are we just
+ * changing one? (allowed values: 'new', 'change')
+ * @global array $cfg the phpMyAdmin configuration
+ * @global ressource $user_link the database connection
+ *
+ * @return void
+ */
+function PMA_displayLoginInformationFields($mode = 'new')
+{
+ // Get user/host name lengths
+ $fields_info = PMA_DBI_get_fields('mysql', 'user');
+ $username_length = 16;
+ $hostname_length = 41;
+ foreach ($fields_info as $key => $val) {
+ if ($val['Field'] == 'User') {
+ strtok($val['Type'], '()');
+ $v = strtok('()');
+ if (is_int($v)) {
+ $username_length = $v;
+ }
+ } elseif ($val['Field'] == 'Host') {
+ strtok($val['Type'], '()');
+ $v = strtok('()');
+ if (is_int($v)) {
+ $hostname_length = $v;
+ }
+ }
+ }
+ unset($fields_info);
+
+ if (isset($GLOBALS['username']) && strlen($GLOBALS['username']) === 0) {
+ $GLOBALS['pred_username'] = 'any';
+ }
+ echo '<fieldset id="fieldset_add_user_login">' . "\n"
+ . '<legend>' . $GLOBALS['strLoginInformation'] . '</legend>' . "\n"
+ . '<div class="item">' . "\n"
+ . '<label for="select_pred_username">' . "\n"
+ . ' ' . $GLOBALS['strUserName'] . ':' . "\n"
+ . '</label>' . "\n"
+ . '<span class="options">' . "\n"
+ . ' <select name="pred_username" id="select_pred_username" title="' . $GLOBALS['strUserName'] . '"' . "\n"
+ . ' onchange="if (this.value == \'any\') { username.value = \'\'; } else if (this.value == \'userdefined\') { username.focus(); username.select(); }">' . "\n"
+ . ' <option value="any"' . ((isset($GLOBALS['pred_username']) && $GLOBALS['pred_username'] == 'any') ? ' selected="selected"' : '') . '>' . $GLOBALS['strAnyUser'] . '</option>' . "\n"
+ . ' <option value="userdefined"' . ((!isset($GLOBALS['pred_username']) || $GLOBALS['pred_username'] == 'userdefined') ? ' selected="selected"' : '') . '>' . $GLOBALS['strUseTextField'] . ':</option>' . "\n"
+ . ' </select>' . "\n"
+ . '</span>' . "\n"
+ . '<input type="text" name="username" maxlength="'
+ . $username_length . '" title="' . $GLOBALS['strUserName'] . '"'
+ . (empty($GLOBALS['username'])
+ ? ''
+ : ' value="' . (isset($GLOBALS['new_username'])
+ ? $GLOBALS['new_username']
+ : $GLOBALS['username']) . '"')
+ . ' onchange="pred_username.value = \'userdefined\';" />' . "\n"
+ . '</div>' . "\n"
+ . '<div class="item">' . "\n"
+ . '<label for="select_pred_hostname">' . "\n"
+ . ' ' . $GLOBALS['strHost'] . ':' . "\n"
+ . '</label>' . "\n"
+ . '<span class="options">' . "\n"
+ . ' <select name="pred_hostname" id="select_pred_hostname" title="' . $GLOBALS['strHost'] . '"' . "\n";
+ $_current_user = PMA_DBI_fetch_value('SELECT USER();');
+ if (! empty($_current_user)) {
+ $thishost = str_replace("'", '', substr($_current_user, (strrpos($_current_user, '@') + 1)));
+ if ($thishost == 'localhost' || $thishost == '127.0.0.1') {
+ unset($thishost);
+ }
+ }
+ echo ' onchange="if (this.value == \'any\') { hostname.value = \'%\'; } else if (this.value == \'localhost\') { hostname.value = \'localhost\'; } '
+ . (empty($thishost) ? '' : 'else if (this.value == \'thishost\') { hostname.value = \'' . addslashes(htmlspecialchars($thishost)) . '\'; } ')
+ . 'else if (this.value == \'hosttable\') { hostname.value = \'\'; } else if (this.value == \'userdefined\') { hostname.focus(); hostname.select(); }">' . "\n";
+ unset($_current_user);
+
+ // when we start editing a user, $GLOBALS['pred_hostname'] is not defined
+ if (!isset($GLOBALS['pred_hostname']) && isset($GLOBALS['hostname'])) {
+ switch (strtolower($GLOBALS['hostname'])) {
+ case 'localhost':
+ case '127.0.0.1':
+ $GLOBALS['pred_hostname'] = 'localhost';
+ break;
+ case '%':
+ $GLOBALS['pred_hostname'] = 'any';
+ break;
+ default:
+ $GLOBALS['pred_hostname'] = 'userdefined';
+ break;
+ }
+ }
+ echo ' <option value="any"'
+ . ((isset($GLOBALS['pred_hostname']) && $GLOBALS['pred_hostname'] == 'any')
+ ? ' selected="selected"' : '') . '>' . $GLOBALS['strAnyHost']
+ . '</option>' . "\n"
+ . ' <option value="localhost"'
+ . ((isset($GLOBALS['pred_hostname']) && $GLOBALS['pred_hostname'] == 'localhost')
+ ? ' selected="selected"' : '') . '>' . $GLOBALS['strLocalhost']
+ . '</option>' . "\n";
+ if (!empty($thishost)) {
+ echo ' <option value="thishost"'
+ . ((isset($GLOBALS['pred_hostname']) && $GLOBALS['pred_hostname'] == 'thishost')
+ ? ' selected="selected"' : '') . '>' . $GLOBALS['strThisHost']
+ . '</option>' . "\n";
+ }
+ unset($thishost);
+ echo ' <option value="hosttable"'
+ . ((isset($GLOBALS['pred_hostname']) && $GLOBALS['pred_hostname'] == 'hosttable')
+ ? ' selected="selected"' : '') . '>' . $GLOBALS['strUseHostTable']
+ . '</option>' . "\n"
+ . ' <option value="userdefined"'
+ . ((isset($GLOBALS['pred_hostname']) && $GLOBALS['pred_hostname'] == 'userdefined')
+ ? ' selected="selected"' : '')
+ . '>' . $GLOBALS['strUseTextField'] . ':</option>' . "\n"
+ . ' </select>' . "\n"
+ . '</span>' . "\n"
+ . '<input type="text" name="hostname" maxlength="'
+ . $hostname_length . '" value="'
+ . (isset($GLOBALS['hostname']) ? $GLOBALS['hostname'] : '')
+ . '" title="' . $GLOBALS['strHost']
+ . '" onchange="pred_hostname.value = \'userdefined\';" />' . "\n"
+ . '</div>' . "\n"
+ . '<div class="item">' . "\n"
+ . '<label for="select_pred_password">' . "\n"
+ . ' ' . $GLOBALS['strPassword'] . ':' . "\n"
+ . '</label>' . "\n"
+ . '<span class="options">' . "\n"
+ . ' <select name="pred_password" id="select_pred_password" title="'
+ . $GLOBALS['strPassword'] . '"' . "\n"
+ . ' onchange="if (this.value == \'none\') { pma_pw.value = \'\'; pma_pw2.value = \'\'; } else if (this.value == \'userdefined\') { pma_pw.focus(); pma_pw.select(); }">' . "\n"
+ . ($mode == 'change' ? ' <option value="keep" selected="selected">' . $GLOBALS['strKeepPass'] . '</option>' . "\n" : '')
+ . ' <option value="none"';
+ if (isset($GLOBALS['username']) && $mode != 'change') {
+ echo ' selected="selected"';
+ }
+ echo '>' . $GLOBALS['strNoPassword'] . '</option>' . "\n"
+ . ' <option value="userdefined"' . (isset($GLOBALS['username']) ? '' : ' selected="selected"') . '>' . $GLOBALS['strUseTextField'] . ':</option>' . "\n"
+ . ' </select>' . "\n"
+ . '</span>' . "\n"
+ . '<input type="password" id="text_pma_pw" name="pma_pw" title="' . $GLOBALS['strPassword'] . '" onchange="pred_password.value = \'userdefined\';" />' . "\n"
+ . '</div>' . "\n"
+ . '<div class="item">' . "\n"
+ . '<label for="text_pma_pw2">' . "\n"
+ . ' ' . $GLOBALS['strReType'] . ':' . "\n"
+ . '</label>' . "\n"
+ . '<span class="options">&nbsp;</span>' . "\n"
+ . '<input type="password" name="pma_pw2" id="text_pma_pw2" title="' . $GLOBALS['strReType'] . '" onchange="pred_password.value = \'userdefined\';" />' . "\n"
+ . '</div>' . "\n"
+ . '<div class="item">' . "\n"
+ . '<label for="button_generate_password">' . "\n"
+ . ' ' . $GLOBALS['strGeneratePassword'] . ':' . "\n"
+ . '</label>' . "\n"
+ . '<span class="options">' . "\n"
+ . ' <input type="button" id="button_generate_password" value="' . $GLOBALS['strGenerate'] . '" onclick="suggestPassword()" />' . "\n"
+ . ' <input type="button" id="button_copy_password" value="' . $GLOBALS['strCopy'] . '" onclick="suggestPasswordCopy(this.form)" />' . "\n"
+ . '</span>' . "\n"
+ . '<input type="text" name="generated_pw" id="generated_pw" />' . "\n"
+ . '</div>' . "\n"
+ . '</fieldset>' . "\n";
+} // end of the 'PMA_displayUserAndHostFields()' function
+
+
+/**
+ * Changes / copies a user, part I
+ */
+if (isset($_REQUEST['change_copy'])) {
+ $user_host_condition =
+ ' WHERE `User`'
+ .' = \'' . PMA_sqlAddslashes($old_username) . "'"
+ .' AND `Host`'
+ .' = \'' . $old_hostname . '\';';
+ $row = PMA_DBI_fetch_single_row('SELECT * FROM `mysql`.`user` ' . $user_host_condition);
+ if (! $row) {
+ PMA_Message::notice('strNoUsersFound')->display();
+ unset($_REQUEST['change_copy']);
+ } else {
+ extract($row, EXTR_OVERWRITE);
+ // Recent MySQL versions have the field "Password" in mysql.user,
+ // so the previous extract creates $Password but this script
+ // uses $password
+ if (!isset($password) && isset($Password)) {
+ $password = $Password;
+ }
+ $queries = array();
+ }
+}
+
+
+/**
+ * Adds a user
+ * (Changes / copies a user, part II)
+ */
+if (isset($_REQUEST['adduser_submit']) || isset($_REQUEST['change_copy'])) {
+ $sql_query = '';
+ if ($pred_username == 'any') {
+ $username = '';
+ }
+ switch ($pred_hostname) {
+ case 'any':
+ $hostname = '%';
+ break;
+ case 'localhost':
+ $hostname = 'localhost';
+ break;
+ case 'hosttable':
+ $hostname = '';
+ break;
+ case 'thishost':
+ $_user_name = PMA_DBI_fetch_value('SELECT USER()');
+ $hostname = substr($_user_name, (strrpos($_user_name, '@') + 1));
+ unset($_user_name);
+ break;
+ }
+ $sql = "SELECT '1' FROM `mysql`.`user`"
+ . " WHERE `User` = '" . PMA_sqlAddslashes($username) . "'"
+ . " AND `Host` = '" . PMA_sqlAddslashes($hostname) . "';";
+ if (PMA_DBI_fetch_value($sql) == 1) {
+ $message = PMA_Message::error('strUserAlreadyExists');
+ $message->addParam('[i]\'' . $username . '\'@\'' . $hostname . '\'[/i]');
+ $_REQUEST['adduser'] = true;
+ } else {
+
+ $create_user_real = 'CREATE USER \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\'';
+
+ $real_sql_query =
+ 'GRANT ' . join(', ', PMA_extractPrivInfo()) . ' ON *.* TO \''
+ . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\'';
+ if ($pred_password != 'none' && $pred_password != 'keep') {
+ $sql_query = $real_sql_query . ' IDENTIFIED BY \'***\'';
+ $real_sql_query .= ' IDENTIFIED BY \'' . PMA_sqlAddslashes($pma_pw) . '\'';
+ if (isset($create_user_real)) {
+ $create_user_show = $create_user_real . ' IDENTIFIED BY \'***\'';
+ $create_user_real .= ' IDENTIFIED BY \'' . PMA_sqlAddslashes($pma_pw) . '\'';
+ }
+ } else {
+ if ($pred_password == 'keep' && !empty($password)) {
+ $real_sql_query .= ' IDENTIFIED BY PASSWORD \'' . $password . '\'';
+ if (isset($create_user_real)) {
+ $create_user_real .= ' IDENTIFIED BY PASSWORD \'' . $password . '\'';
+ }
+ }
+ $sql_query = $real_sql_query;
+ if (isset($create_user_real)) {
+ $create_user_show = $create_user_real;
+ }
+ }
+ /**
+ * @todo similar code appears twice in this script
+ */
+ if ((isset($Grant_priv) && $Grant_priv == 'Y')
+ || (isset($max_questions) || isset($max_connections)
+ || isset($max_updates) || isset($max_user_connections))) {
+ $real_sql_query .= ' WITH';
+ $sql_query .= ' WITH';
+ if (isset($Grant_priv) && $Grant_priv == 'Y') {
+ $real_sql_query .= ' GRANT OPTION';
+ $sql_query .= ' GRANT OPTION';
+ }
+ if (isset($max_questions)) {
+ // avoid negative values
+ $max_questions = max(0, (int)$max_questions);
+ $real_sql_query .= ' MAX_QUERIES_PER_HOUR ' . $max_questions;
+ $sql_query .= ' MAX_QUERIES_PER_HOUR ' . $max_questions;
+ }
+ if (isset($max_connections)) {
+ $max_connections = max(0, (int)$max_connections);
+ $real_sql_query .= ' MAX_CONNECTIONS_PER_HOUR ' . $max_connections;
+ $sql_query .= ' MAX_CONNECTIONS_PER_HOUR ' . $max_connections;
+ }
+ if (isset($max_updates)) {
+ $max_updates = max(0, (int)$max_updates);
+ $real_sql_query .= ' MAX_UPDATES_PER_HOUR ' . $max_updates;
+ $sql_query .= ' MAX_UPDATES_PER_HOUR ' . $max_updates;
+ }
+ if (isset($max_user_connections)) {
+ $max_user_connections = max(0, (int)$max_user_connections);
+ $real_sql_query .= ' MAX_USER_CONNECTIONS ' . $max_user_connections;
+ $sql_query .= ' MAX_USER_CONNECTIONS ' . $max_user_connections;
+ }
+ }
+ if (isset($create_user_real)) {
+ $create_user_real .= ';';
+ $create_user_show .= ';';
+ }
+ $real_sql_query .= ';';
+ $sql_query .= ';';
+ if (empty($_REQUEST['change_copy'])) {
+ $_error = false;
+
+ if (isset($create_user_real)) {
+ if (! PMA_DBI_try_query($create_user_real)) {
+ $_error = true;
+ }
+ $sql_query = $create_user_show . $sql_query;
+ }
+
+ if ($_error || ! PMA_DBI_try_query($real_sql_query)) {
+ $_REQUEST['createdb'] = false;
+ $message = PMA_Message::rawError(PMA_DBI_getError());
+ } else {
+ $message = PMA_Message::success('strAddUserMessage');
+ }
+
+ switch (PMA_ifSetOr($_REQUEST['createdb'], '0')) {
+ case '1' :
+ $q = 'CREATE DATABASE IF NOT EXISTS '
+ . PMA_backquote(PMA_sqlAddslashes($username)) . ';';
+ $sql_query .= $q;
+ if (! PMA_DBI_try_query($q)) {
+ $message = PMA_Message::rawError(PMA_DBI_getError());
+ break;
+ }
+ $GLOBALS['reload'] = TRUE;
+ PMA_reloadNavigation();
+
+ $q = 'GRANT ALL PRIVILEGES ON '
+ . PMA_backquote(PMA_sqlAddslashes($username)) . '.* TO \''
+ . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\';';
+ $sql_query .= $q;
+ if (! PMA_DBI_try_query($q)) {
+ $message = PMA_Message::rawError(PMA_DBI_getError());
+ }
+ break;
+ case '2' :
+ $q = 'GRANT ALL PRIVILEGES ON '
+ . PMA_backquote(PMA_sqlAddslashes($username) . '\_%') . '.* TO \''
+ . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\';';
+ $sql_query .= $q;
+ if (! PMA_DBI_try_query($q)) {
+ $message = PMA_Message::rawError(PMA_DBI_getError());
+ }
+ break;
+ case '0' :
+ default :
+ break;
+ }
+ } else {
+ if (isset($create_user_real)) {
+ $queries[] = $create_user_real;
+ }
+ $queries[] = $real_sql_query;
+ // we put the query containing the hidden password in
+ // $queries_for_display, at the same position occupied
+ // by the real query in $queries
+ $tmp_count = count($queries);
+ if (isset($create_user_real)) {
+ $queries_for_display[$tmp_count - 2] = $create_user_show;
+ }
+ $queries_for_display[$tmp_count - 1] = $sql_query;
+ }
+ unset($res, $real_sql_query);
+ }
+}
+
+
+/**
+ * Changes / copies a user, part III
+ */
+if (isset($_REQUEST['change_copy'])) {
+ $user_host_condition =
+ ' WHERE `User`'
+ .' = \'' . PMA_sqlAddslashes($old_username) . "'"
+ .' AND `Host`'
+ .' = \'' . $old_hostname . '\';';
+ $res = PMA_DBI_query('SELECT * FROM `mysql`.`db`' . $user_host_condition);
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ $queries[] =
+ 'GRANT ' . join(', ', PMA_extractPrivInfo($row))
+ .' ON `' . $row['Db'] . '`.*'
+ .' TO \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\''
+ . ($row['Grant_priv'] == 'Y' ? ' WITH GRANT OPTION;' : ';');
+ }
+ PMA_DBI_free_result($res);
+ $res = PMA_DBI_query(
+ 'SELECT `Db`, `Table_name`, `Table_priv`'
+ .' FROM `mysql`.`tables_priv`' . $user_host_condition,
+ $GLOBALS['userlink'], PMA_DBI_QUERY_STORE);
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+
+ $res2 = PMA_DBI_QUERY(
+ 'SELECT `Column_name`, `Column_priv`'
+ .' FROM `mysql`.`columns_priv`'
+ .' WHERE `User`'
+ .' = \'' . PMA_sqlAddslashes($old_username) . "'"
+ .' AND `Host`'
+ .' = \'' . $old_hostname . '\''
+ .' AND `Db`'
+ .' = \'' . $row['Db'] . "'"
+ .' AND `Table_name`'
+ .' = \'' . $row['Table_name'] . "'"
+ .';',
+ null, PMA_DBI_QUERY_STORE);
+
+ $tmp_privs1 = PMA_extractPrivInfo($row);
+ $tmp_privs2 = array(
+ 'Select' => array(),
+ 'Insert' => array(),
+ 'Update' => array(),
+ 'References' => array()
+ );
+
+ while ($row2 = PMA_DBI_fetch_assoc($res2)) {
+ $tmp_array = explode(',', $row2['Column_priv']);
+ if (in_array('Select', $tmp_array)) {
+ $tmp_privs2['Select'][] = $row2['Column_name'];
+ }
+ if (in_array('Insert', $tmp_array)) {
+ $tmp_privs2['Insert'][] = $row2['Column_name'];
+ }
+ if (in_array('Update', $tmp_array)) {
+ $tmp_privs2['Update'][] = $row2['Column_name'];
+ }
+ if (in_array('References', $tmp_array)) {
+ $tmp_privs2['References'][] = $row2['Column_name'];
+ }
+ unset($tmp_array);
+ }
+ if (count($tmp_privs2['Select']) > 0 && !in_array('SELECT', $tmp_privs1)) {
+ $tmp_privs1[] = 'SELECT (`' . join('`, `', $tmp_privs2['Select']) . '`)';
+ }
+ if (count($tmp_privs2['Insert']) > 0 && !in_array('INSERT', $tmp_privs1)) {
+ $tmp_privs1[] = 'INSERT (`' . join('`, `', $tmp_privs2['Insert']) . '`)';
+ }
+ if (count($tmp_privs2['Update']) > 0 && !in_array('UPDATE', $tmp_privs1)) {
+ $tmp_privs1[] = 'UPDATE (`' . join('`, `', $tmp_privs2['Update']) . '`)';
+ }
+ if (count($tmp_privs2['References']) > 0 && !in_array('REFERENCES', $tmp_privs1)) {
+ $tmp_privs1[] = 'REFERENCES (`' . join('`, `', $tmp_privs2['References']) . '`)';
+ }
+ unset($tmp_privs2);
+ $queries[] =
+ 'GRANT ' . join(', ', $tmp_privs1)
+ . ' ON `' . $row['Db'] . '`.`' . $row['Table_name']
+ . '` TO \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\''
+ . (in_array('Grant', explode(',', $row['Table_priv'])) ? ' WITH GRANT OPTION;' : ';');
+ }
+}
+
+
+/**
+ * Updates privileges
+ */
+if (!empty($update_privs)) {
+ // escaping a wildcard character in a GRANT is only accepted at the global
+ // or database level, not at table level; this is why I remove
+ // the escaping character
+ // Note: in the phpMyAdmin list of Database-specific privileges,
+ // we will have for example
+ // test\_db SELECT (this one is for privileges on a db level)
+ // test_db USAGE (this one is for table-specific privileges)
+ //
+ // It looks curious but reflects the way MySQL works
+
+ $sql_query0 =
+ 'REVOKE ALL PRIVILEGES ON ' . $db_and_table
+ . ' FROM \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\';';
+ if (!isset($Grant_priv) || $Grant_priv != 'Y') {
+ $sql_query1 =
+ 'REVOKE GRANT OPTION ON ' . $db_and_table
+ . ' FROM \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\';';
+ } else {
+ $sql_query1 = '';
+ }
+ $sql_query2 =
+ 'GRANT ' . join(', ', PMA_extractPrivInfo())
+ . ' ON ' . $db_and_table
+ . ' TO \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\'';
+
+ /**
+ * @todo similar code appears twice in this script
+ */
+ if ((isset($Grant_priv) && $Grant_priv == 'Y')
+ || (! isset($dbname)
+ && (isset($max_questions) || isset($max_connections)
+ || isset($max_updates) || isset($max_user_connections))))
+ {
+ $sql_query2 .= 'WITH';
+ if (isset($Grant_priv) && $Grant_priv == 'Y') {
+ $sql_query2 .= ' GRANT OPTION';
+ }
+ if (isset($max_questions)) {
+ $max_questions = max(0, (int)$max_questions);
+ $sql_query2 .= ' MAX_QUERIES_PER_HOUR ' . $max_questions;
+ }
+ if (isset($max_connections)) {
+ $max_connections = max(0, (int)$max_connections);
+ $sql_query2 .= ' MAX_CONNECTIONS_PER_HOUR ' . $max_connections;
+ }
+ if (isset($max_updates)) {
+ $max_updates = max(0, (int)$max_updates);
+ $sql_query2 .= ' MAX_UPDATES_PER_HOUR ' . $max_updates;
+ }
+ if (isset($max_user_connections)) {
+ $max_user_connections = max(0, (int)$max_user_connections);
+ $sql_query2 .= ' MAX_USER_CONNECTIONS ' . $max_user_connections;
+ }
+ }
+ $sql_query2 .= ';';
+ if (!PMA_DBI_try_query($sql_query0)) {
+ // this query may fail, but this does not matter :o)
+ // a case when it can fail is when the admin does not have all
+ // privileges: he can't do a REVOKE ALL PRIVILEGES !
+ // so at least we display the error
+ echo PMA_DBI_getError();
+ $sql_query0 = '';
+ }
+ if (isset($sql_query1) && !PMA_DBI_try_query($sql_query1)) {
+ // this one may fail, too...
+ $sql_query1 = '';
+ }
+ PMA_DBI_query($sql_query2);
+ $sql_query = $sql_query0 . ' ' . $sql_query1 . ' ' . $sql_query2;
+ $message = PMA_Message::success('strUpdatePrivMessage');
+ $message->addParam('\'' . $username . '\'@\'' . $hostname . '\'');
+}
+
+
+/**
+ * Revokes Privileges
+ */
+if (isset($_REQUEST['revokeall'])) {
+
+ $sql_query0 =
+ 'REVOKE ALL PRIVILEGES ON ' . $db_and_table
+ . ' FROM \'' . $username . '\'@\'' . $hostname . '\';';
+ $sql_query1 =
+ 'REVOKE GRANT OPTION ON ' . $db_and_table
+ . ' FROM \'' . $username . '\'@\'' . $hostname . '\';';
+ PMA_DBI_query($sql_query0);
+ if (!PMA_DBI_try_query($sql_query1)) {
+ // this one may fail, too...
+ $sql_query1 = '';
+ }
+ $sql_query = $sql_query0 . ' ' . $sql_query1;
+ $message = PMA_Message::success('strRevokeMessage');
+ $message->addParam('\'' . $username . '\'@\'' . $hostname . '\'');
+ if (! isset($tablename)) {
+ unset($dbname);
+ } else {
+ unset($tablename);
+ }
+}
+
+
+/**
+ * Updates the password
+ */
+if (isset($_REQUEST['change_pw'])) {
+ // similar logic in user_password.php
+ $message = '';
+
+ if ($nopass == 0 && isset($pma_pw) && isset($pma_pw2)) {
+ if ($pma_pw != $pma_pw2) {
+ $message = PMA_Message::error('strPasswordNotSame');
+ } elseif (empty($pma_pw) || empty($pma_pw2)) {
+ $message = PMA_Message::error('strPasswordEmpty');
+ }
+ } // end if
+
+ // here $nopass could be == 1
+ if (empty($message)) {
+
+ $hashing_function = (!empty($pw_hash) && $pw_hash == 'old' ? 'OLD_' : '')
+ . 'PASSWORD';
+
+ // in $sql_query which will be displayed, hide the password
+ $sql_query = 'SET PASSWORD FOR \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\' = ' . (($pma_pw == '') ? '\'\'' : $hashing_function . '(\'' . preg_replace('@.@s', '*', $pma_pw) . '\')');
+ $local_query = 'SET PASSWORD FOR \'' . PMA_sqlAddslashes($username) . '\'@\'' . $hostname . '\' = ' . (($pma_pw == '') ? '\'\'' : $hashing_function . '(\'' . PMA_sqlAddslashes($pma_pw) . '\')');
+ PMA_DBI_try_query($local_query)
+ or PMA_mysqlDie(PMA_DBI_getError(), $sql_query, FALSE, $err_url);
+ $message = PMA_Message::success('strPasswordChanged');
+ $message->addParam('\'' . $username . '\'@\'' . $hostname . '\'');
+ }
+}
+
+
+/**
+ * Deletes users
+ * (Changes / copies a user, part IV)
+ */
+$user_host_separator = chr(27);
+
+if (isset($_REQUEST['delete']) || (isset($_REQUEST['change_copy']) && $_REQUEST['mode'] < 4)) {
+ if (isset($_REQUEST['change_copy'])) {
+ $selected_usr = array($old_username . $user_host_separator . $old_hostname);
+ } else {
+ $selected_usr = $_REQUEST['selected_usr'];
+ $queries = array();
+ }
+ foreach ($selected_usr as $each_user) {
+ list($this_user, $this_host) = explode($user_host_separator, $each_user);
+ $queries[] = '# ' . sprintf($GLOBALS['strDeleting'], '\'' . $this_user . '\'@\'' . $this_host . '\'') . ' ...';
+ $queries[] = 'DROP USER \'' . PMA_sqlAddslashes($this_user) . '\'@\'' . $this_host . '\';';
+
+ if (isset($_REQUEST['drop_users_db'])) {
+ $queries[] = 'DROP DATABASE IF EXISTS ' . PMA_backquote($this_user) . ';';
+ $GLOBALS['reload'] = TRUE;
+ PMA_reloadNavigation();
+ }
+ }
+ if (empty($_REQUEST['change_copy'])) {
+ if (empty($queries)) {
+ $message = PMA_Message::error('strDeleteNoUsersSelected');
+ } else {
+ if ($_REQUEST['mode'] == 3) {
+ $queries[] = '# ' . $GLOBALS['strReloadingThePrivileges'] . ' ...';
+ $queries[] = 'FLUSH PRIVILEGES;';
+ }
+ $drop_user_error = '';
+ foreach ($queries as $sql_query) {
+ if ($sql_query{0} != '#') {
+ if (! PMA_DBI_try_query($sql_query, $GLOBALS['userlink'])) {
+ $drop_user_error .= PMA_DBI_getError() . "\n";
+ }
+ }
+ }
+ $sql_query = join("\n", $queries);
+ if (! empty($drop_user_error)) {
+ $message = PMA_Message::rawError($drop_user_error);
+ } else {
+ $message = PMA_Message::success('strUsersDeleted');
+ }
+ }
+ unset($queries);
+ }
+}
+
+
+/**
+ * Changes / copies a user, part V
+ */
+if (isset($_REQUEST['change_copy'])) {
+ $tmp_count = 0;
+ foreach ($queries as $sql_query) {
+ if ($sql_query{0} != '#') {
+ PMA_DBI_query($sql_query);
+ }
+ // when there is a query containing a hidden password, take it
+ // instead of the real query sent
+ if (isset($queries_for_display[$tmp_count])) {
+ $queries[$tmp_count] = $queries_for_display[$tmp_count];
+ }
+ $tmp_count++;
+ }
+ $message = PMA_Message::success();
+ $sql_query = join("\n", $queries);
+}
+
+
+/**
+ * Reloads the privilege tables into memory
+ */
+if (isset($_REQUEST['flush_privileges'])) {
+ $sql_query = 'FLUSH PRIVILEGES;';
+ PMA_DBI_query($sql_query);
+ $message = PMA_Message::success('strPrivilegesReloaded');
+}
+
+
+/**
+ * Displays the links
+ */
+if (isset($viewing_mode) && $viewing_mode == 'db') {
+ $db = $checkprivs;
+ $url_query .= '&amp;goto=db_operations.php';
+
+ // Gets the database structure
+ $sub_part = '_structure';
+ require './libraries/db_info.inc.php';
+ echo "\n";
+} else {
+ require './libraries/server_links.inc.php';
+}
+
+
+/**
+ * defines some standard links
+ */
+$link_edit = '<a href="server_privileges.php?' . $GLOBALS['url_query']
+ . '&amp;username=%s'
+ . '&amp;hostname=%s'
+ . '&amp;dbname=%s'
+ . '&amp;tablename=%s">'
+ . PMA_getIcon('b_usredit.png', $GLOBALS['strEditPrivileges'])
+ . '</a>';
+
+$link_revoke = '<a href="server_privileges.php?' . $GLOBALS['url_query']
+ . '&amp;username=%s'
+ . '&amp;hostname=%s'
+ . '&amp;dbname=%s'
+ . '&amp;tablename=%s'
+ . '&amp;revokeall=1">'
+ . PMA_getIcon('b_usrdrop.png', $GLOBALS['strRevoke'])
+ . '</a>';
+
+/**
+ * Displays the page
+ */
+if (empty($_REQUEST['adduser']) && (! isset($checkprivs) || ! strlen($checkprivs))) {
+ if (! isset($username)) {
+ // No username is given --> display the overview
+ echo '<h2>' . "\n"
+ . PMA_getIcon('b_usrlist.png')
+ . $GLOBALS['strUserOverview'] . "\n"
+ . '</h2>' . "\n";
+
+ $sql_query =
+ 'SELECT *,' .
+ " IF(`Password` = _latin1 '', 'N', 'Y') AS 'Password'" .
+ ' FROM `mysql`.`user`';
+
+ $sql_query .= (isset($initial) ? PMA_RangeOfUsers($initial) : '');
+
+ $sql_query .= ' ORDER BY `User` ASC, `Host` ASC;';
+ $res = PMA_DBI_try_query($sql_query, null, PMA_DBI_QUERY_STORE);
+
+ if (! $res) {
+ // the query failed! This may have two reasons:
+ // - the user does not have enough privileges
+ // - the privilege tables use a structure of an earlier version.
+ // so let's try a more simple query
+
+ $sql_query = 'SELECT * FROM `mysql`.`user`';
+ $res = PMA_DBI_try_query($sql_query, null, PMA_DBI_QUERY_STORE);
+
+ if (!$res) {
+ PMA_Message::error('strNoPrivileges')->display();
+ PMA_DBI_free_result($res);
+ unset($res);
+ } else {
+ // rabus: This message is hardcoded because I will replace it by
+ // a automatic repair feature soon.
+ $raw = 'Your privilege table structure seems to be older than'
+ . ' this MySQL version!<br />'
+ . 'Please run the script <tt>mysql_fix_privilege_tables</tt>'
+ . ' that should be included in your MySQL server distribution'
+ . ' to solve this problem!';
+ PMA_Message::rawError($raw)->display();
+ }
+ } else {
+
+ // we also want users not in table `user` but in other table
+ $tables = PMA_DBI_fetch_result('SHOW TABLES FROM `mysql`;');
+
+ $tables_to_search_for_users = array(
+ 'user', 'db', 'tables_priv', 'columns_priv', 'procs_priv',
+ );
+
+ $db_rights_sqls = array();
+ foreach ($tables_to_search_for_users as $table_search_in) {
+ if (in_array($table_search_in, $tables)) {
+ $db_rights_sqls[] = 'SELECT DISTINCT `User`, `Host` FROM `mysql`.`' . $table_search_in . '` ' . (isset($initial) ? PMA_RangeOfUsers($initial) : '');
+ }
+ }
+
+ $user_defaults = array(
+ 'User' => '',
+ 'Host' => '%',
+ 'Password' => '?',
+ 'Grant_priv' => 'N',
+ 'privs' => array('USAGE'),
+ );
+
+ // for all initials, even non A-Z
+ $array_initials = array();
+ // for the rights
+ $db_rights = array();
+
+ $db_rights_sql = '(' . implode(') UNION (', $db_rights_sqls) . ')'
+ .' ORDER BY `User` ASC, `Host` ASC';
+
+ $db_rights_result = PMA_DBI_query($db_rights_sql);
+
+ while ($db_rights_row = PMA_DBI_fetch_assoc($db_rights_result)) {
+ $db_rights_row = array_merge($user_defaults, $db_rights_row);
+ $db_rights[$db_rights_row['User']][$db_rights_row['Host']] =
+ $db_rights_row;
+ }
+ PMA_DBI_free_result($db_rights_result);
+ unset($db_rights_sql, $db_rights_sqls, $db_rights_result, $db_rights_row);
+ ksort($db_rights);
+
+ /**
+ * Displays the initials
+ */
+
+ // initialize to FALSE the letters A-Z
+ for ($letter_counter = 1; $letter_counter < 27; $letter_counter++) {
+ if (! isset($array_initials[chr($letter_counter + 64)])) {
+ $array_initials[chr($letter_counter + 64)] = FALSE;
+ }
+ }
+
+ $initials = PMA_DBI_try_query('SELECT DISTINCT UPPER(LEFT(`User`,1)) FROM `user` ORDER BY `User` ASC', null, PMA_DBI_QUERY_STORE);
+ while (list($tmp_initial) = PMA_DBI_fetch_row($initials)) {
+ $array_initials[$tmp_initial] = TRUE;
+ }
+
+ // Display the initials, which can be any characters, not
+ // just letters. For letters A-Z, we add the non-used letters
+ // as greyed out.
+
+ uksort($array_initials, "strnatcasecmp");
+
+ echo '<table cellspacing="5"><tr>';
+ foreach ($array_initials as $tmp_initial => $initial_was_found) {
+ if ($initial_was_found) {
+ echo '<td><a href="server_privileges.php?' . $GLOBALS['url_query'] . '&amp;initial=' . urlencode($tmp_initial) . '">' . $tmp_initial . '</a></td>' . "\n";
+ } else {
+ echo '<td>' . $tmp_initial . '</td>';
+ }
+ }
+ echo '<td><a href="server_privileges.php?' . $GLOBALS['url_query'] . '&amp;showall=1">[' . $GLOBALS['strShowAll'] . ']</a></td>' . "\n";
+ echo '</tr></table>';
+
+ /**
+ * Display the user overview
+ * (if less than 50 users, display them immediately)
+ */
+
+ if (isset($initial) || isset($showall) || PMA_DBI_num_rows($res) < 50) {
+
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ $row['privs'] = PMA_extractPrivInfo($row, true);
+ $db_rights[$row['User']][$row['Host']] = $row;
+ }
+ @PMA_DBI_free_result($res);
+ unset($res);
+
+ echo '<form name="usersForm" id="usersForm" action="server_privileges.php" method="post">' . "\n"
+ . PMA_generate_common_hidden_inputs('', '')
+ . ' <table id="tableuserrights" class="data">' . "\n"
+ . ' <thead>' . "\n"
+ . ' <tr><td></td>' . "\n"
+ . ' <th>' . $GLOBALS['strUser'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strHost'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strPassword'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strGlobalPrivileges'] . ' '
+ . PMA_showHint($GLOBALS['strEnglishPrivileges']) . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strGrantOption'] . '</th>' . "\n"
+ . ' ' . ($GLOBALS['cfg']['PropertiesIconic'] ? '<td></td>' : '<th>' . $GLOBALS['strAction'] . '</th>') . "\n";
+ echo ' </tr>' . "\n";
+ echo ' </thead>' . "\n";
+ echo ' <tbody>' . "\n";
+ $odd_row = true;
+ $index_checkbox = -1;
+ foreach ($db_rights as $user) {
+ $index_checkbox++;
+ ksort($user);
+ foreach ($user as $host) {
+ $index_checkbox++;
+ echo ' <tr class="' . ($odd_row ? 'odd' : 'even') . '">' . "\n"
+ . ' <td><input type="checkbox" name="selected_usr[]" id="checkbox_sel_users_'
+ . $index_checkbox . '" value="'
+ . str_replace(chr(27), '&#27;', htmlspecialchars($host['User'] . $user_host_separator . $host['Host']))
+ . '"'
+ . (empty($GLOBALS['checkall']) ? '' : ' checked="checked"')
+ . ' /></td>' . "\n"
+ . ' <td><label for="checkbox_sel_users_' . $index_checkbox . '">' . (empty($host['User']) ? '<span style="color: #FF0000">' . $GLOBALS['strAny'] . '</span>' : htmlspecialchars($host['User'])) . '</label></td>' . "\n"
+ . ' <td>' . htmlspecialchars($host['Host']) . '</td>' . "\n";
+ echo ' <td>';
+ switch ($host['Password']) {
+ case 'Y':
+ echo $GLOBALS['strYes'];
+ break;
+ case 'N':
+ echo '<span style="color: #FF0000">' . $GLOBALS['strNo'] . '</span>';
+ break;
+ // this happens if this is a definition not coming from mysql.user
+ default:
+ echo '--'; // in future version, replace by "not present"
+ break;
+ } // end switch
+ echo '</td>' . "\n"
+ . ' <td><tt>' . "\n"
+ . ' ' . implode(',' . "\n" . ' ', $host['privs']) . "\n"
+ . ' </tt></td>' . "\n"
+ . ' <td>' . ($host['Grant_priv'] == 'Y' ? $GLOBALS['strYes'] : $GLOBALS['strNo']) . '</td>' . "\n"
+ . ' <td align="center">';
+ printf($link_edit, urlencode($host['User']),
+ urlencode($host['Host']), '', '');
+ echo '</td>' . "\n"
+ . ' </tr>' . "\n";
+ $odd_row = ! $odd_row;
+ }
+ }
+
+ unset($user, $host, $odd_row);
+ echo ' </tbody></table>' . "\n"
+ .'<img class="selectallarrow"'
+ .' src="' . $pmaThemeImage . 'arrow_' . $text_dir . '.png"'
+ .' width="38" height="22"'
+ .' alt="' . $GLOBALS['strWithChecked'] . '" />' . "\n"
+ .'<a href="server_privileges.php?' . $GLOBALS['url_query'] . '&amp;checkall=1"'
+ .' onclick="if (markAllRows(\'usersForm\')) return false;">'
+ . $GLOBALS['strCheckAll'] . '</a>' . "\n"
+ .'/' . "\n"
+ .'<a href="server_privileges.php?' . $GLOBALS['url_query'] . '"'
+ .' onclick="if (unMarkAllRows(\'usersForm\')) return false;">'
+ . $GLOBALS['strUncheckAll'] . '</a>' . "\n";
+
+ // add/delete user fieldset
+ echo ' <fieldset id="fieldset_add_user">' . "\n"
+ . ' <a href="server_privileges.php?' . $GLOBALS['url_query'] . '&amp;adduser=1">' . "\n"
+ . PMA_getIcon('b_usradd.png')
+ . ' ' . $GLOBALS['strAddUser'] . '</a>' . "\n"
+ . ' </fieldset>' . "\n"
+ . ' <fieldset id="fieldset_delete_user">'
+ . ' <legend>' . "\n"
+ . PMA_getIcon('b_usrdrop.png')
+ . ' ' . $GLOBALS['strRemoveSelectedUsers'] . '' . "\n"
+ . ' </legend>' . "\n"
+ . ' <input type="hidden" name="mode" value="2" />' . "\n"
+ . '(' . $GLOBALS['strRevokeAndDelete'] . ')<br />' . "\n"
+ . ' <input type="checkbox" title="' . $GLOBALS['strDropUsersDb'] . '" name="drop_users_db" id="checkbox_drop_users_db" />' . "\n"
+ . ' <label for="checkbox_drop_users_db" title="' . $GLOBALS['strDropUsersDb'] . '">' . "\n"
+ . ' ' . $GLOBALS['strDropUsersDb'] . "\n"
+ . ' </label>' . "\n"
+ . ' </fieldset>' . "\n"
+ . ' <fieldset id="fieldset_delete_user_footer" class="tblFooters">' . "\n"
+ . ' <input type="submit" name="delete" value="' . $GLOBALS['strGo'] . '" id="buttonGo" />' . "\n"
+ . ' </fieldset>' . "\n";
+ } else {
+
+ unset ($row);
+ echo ' <fieldset id="fieldset_add_user">' . "\n"
+ . ' <a href="server_privileges.php?' . $GLOBALS['url_query'] . '&amp;adduser=1">' . "\n"
+ . PMA_getIcon('b_usradd.png')
+ . ' ' . $GLOBALS['strAddUser'] . '</a>' . "\n"
+ . ' </fieldset>' . "\n";
+ } // end if (display overview)
+ echo '</form>' . "\n";
+ $flushnote = new PMA_Message('strFlushPrivilegesNote', PMA_Message::NOTICE);
+ $flushnote->addParam('<a href="server_privileges.php?' . $GLOBALS['url_query'] . '&amp;flush_privileges=1">', false);
+ $flushnote->addParam('</a>', false);
+ $flushnote->display();
+ }
+
+
+ } else {
+
+ // A user was selected -> display the user's properties
+
+ echo '<h2>' . "\n"
+ . PMA_getIcon('b_usredit.png')
+ . $GLOBALS['strUser'] . ' <i><a href="server_privileges.php?'
+ . $GLOBALS['url_query'] . '&amp;username=' . urlencode($username)
+ . '&amp;hostname=' . urlencode($hostname) . '">\''
+ . htmlspecialchars($username) . '\'@\'' . htmlspecialchars($hostname)
+ . '\'</a></i>' . "\n";
+ if (isset($dbname)) {
+ if ($dbname_is_wildcard) {
+ echo ' - ' . $GLOBALS['strDatabases'];
+ } else {
+ echo ' - ' . $GLOBALS['strDatabase'];
+ }
+ $url_dbname = urlencode(str_replace('\_', '_', $dbname));
+ echo ' <i><a href="' . $GLOBALS['cfg']['DefaultTabDatabase'] . '?'
+ . $GLOBALS['url_query'] . '&amp;db=' . $url_dbname . '&amp;reload=1">'
+ . htmlspecialchars($dbname) . '</a></i>' . "\n";
+ if (isset($tablename)) {
+ echo ' - ' . $GLOBALS['strTable'] . ' <i><a href="'
+ . $GLOBALS['cfg']['DefaultTabTable'] . '?' . $GLOBALS['url_query']
+ . '&amp;db=' . $url_dbname . '&amp;table=' . urlencode($tablename)
+ . '&amp;reload=1">' . htmlspecialchars($tablename) . '</a></i>'
+ . "\n";
+ }
+ unset($url_dbname);
+ }
+ echo ' : ' . $GLOBALS['strEditPrivileges'] . '</h2>' . "\n";
+
+ $sql = "SELECT '1' FROM `mysql`.`user`"
+ . " WHERE `User` = '" . PMA_sqlAddslashes($username) . "'"
+ . " AND `Host` = '" . PMA_sqlAddslashes($hostname) . "';";
+ $user_does_not_exists = (bool) ! PMA_DBI_fetch_value($sql);
+ unset($sql);
+ if ($user_does_not_exists) {
+ PMA_Message::warning('strUserNotFound')->display();
+ PMA_displayLoginInformationFields();
+ //require_once './libraries/footer.inc.php';
+ }
+
+ echo '<form name="usersForm" id="usersForm" action="server_privileges.php" method="post">' . "\n";
+ $_params = array(
+ 'username' => $username,
+ 'hostname' => $hostname,
+ );
+ if (isset($dbname)) {
+ $_params['dbname'] = $dbname;
+ if (isset($tablename)) {
+ $_params['tablename'] = $tablename;
+ }
+ }
+ echo PMA_generate_common_hidden_inputs($_params);
+
+ PMA_displayPrivTable(PMA_ifSetOr($dbname, '*', 'length'),
+ PMA_ifSetOr($tablename, '*', 'length'));
+
+ echo '</form>' . "\n";
+
+ if (! isset($tablename) && empty($dbname_is_wildcard)) {
+
+ // no table name was given, display all table specific rights
+ // but only if $dbname contains no wildcards
+
+ // table header
+ echo '<form action="server_privileges.php" method="post">' . "\n"
+ . PMA_generate_common_hidden_inputs('', '')
+ . '<input type="hidden" name="username" value="' . htmlspecialchars($username) . '" />' . "\n"
+ . '<input type="hidden" name="hostname" value="' . htmlspecialchars($hostname) . '" />' . "\n"
+ . '<fieldset>' . "\n"
+ . '<legend>' . (! isset($dbname) ? $GLOBALS['strDbPrivileges'] : $GLOBALS['strTblPrivileges']) . '</legend>' . "\n"
+ . '<table class="data">' . "\n"
+ . '<thead>' . "\n"
+ . '<tr><th>' . (! isset($dbname) ? $GLOBALS['strDatabase'] : $GLOBALS['strTable']) . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strPrivileges'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strGrantOption'] . '</th>' . "\n"
+ . ' <th>' . (! isset($dbname) ? $GLOBALS['strTblPrivileges'] : $GLOBALS['strColumnPrivileges']) . '</th>' . "\n"
+ . ' <th colspan="2">' . $GLOBALS['strAction'] . '</th>' . "\n"
+ . '</tr>' . "\n"
+ . '</thead>' . "\n"
+ . '<tbody>' . "\n";
+
+ $user_host_condition =
+ ' WHERE `User`'
+ . ' = \'' . PMA_sqlAddslashes($username) . "'"
+ . ' AND `Host`'
+ . ' = \'' . PMA_sqlAddslashes($hostname) . "'";
+
+ // table body
+ // get data
+
+ // we also want privielgs for this user not in table `db` but in other table
+ $tables = PMA_DBI_fetch_result('SHOW TABLES FROM `mysql`;');
+ if (! isset($dbname)) {
+
+ // no db name given, so we want all privs for the given user
+
+ $tables_to_search_for_users = array(
+ 'tables_priv', 'columns_priv',
+ );
+
+ $db_rights_sqls = array();
+ foreach ($tables_to_search_for_users as $table_search_in) {
+ if (in_array($table_search_in, $tables)) {
+ $db_rights_sqls[] = '
+ SELECT DISTINCT `Db`
+ FROM `mysql`.`' . $table_search_in . '`
+ ' . $user_host_condition;
+ }
+ }
+
+ $user_defaults = array(
+ 'Db' => '',
+ 'Grant_priv' => 'N',
+ 'privs' => array('USAGE'),
+ 'Table_privs' => true,
+ );
+
+ // for the rights
+ $db_rights = array();
+
+ $db_rights_sql = '(' . implode(') UNION (', $db_rights_sqls) . ')'
+ .' ORDER BY `Db` ASC';
+
+ $db_rights_result = PMA_DBI_query($db_rights_sql);
+
+ while ($db_rights_row = PMA_DBI_fetch_assoc($db_rights_result)) {
+ $db_rights_row = array_merge($user_defaults, $db_rights_row);
+ // only Db names in the table `mysql`.`db` uses wildcards
+ // as we are in the db specific rights display we want
+ // all db names escaped, also from other sources
+ $db_rights_row['Db'] = PMA_escape_mysql_wildcards(
+ $db_rights_row['Db']);
+ $db_rights[$db_rights_row['Db']] = $db_rights_row;
+ }
+
+ PMA_DBI_free_result($db_rights_result);
+ unset($db_rights_sql, $db_rights_sqls, $db_rights_result, $db_rights_row);
+
+ $sql_query = 'SELECT * FROM `mysql`.`db`' . $user_host_condition . ' ORDER BY `Db` ASC';
+ $res = PMA_DBI_query($sql_query);
+ $sql_query = '';
+
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ if (isset($db_rights[$row['Db']])) {
+ $db_rights[$row['Db']] = array_merge($db_rights[$row['Db']], $row);
+ } else {
+ $db_rights[$row['Db']] = $row;
+ }
+ // there are db specific rights for this user
+ // so we can drop this db rights
+ $db_rights[$row['Db']]['can_delete'] = true;
+ }
+ PMA_DBI_free_result($res);
+ unset($row, $res);
+
+ } else {
+
+ // db name was given,
+ // so we want all user specific rights for this db
+
+ $user_host_condition .=
+ ' AND `Db`'
+ .' LIKE \'' . $dbname . "'";
+
+ $tables_to_search_for_users = array(
+ 'columns_priv',
+ );
+
+ $db_rights_sqls = array();
+ foreach ($tables_to_search_for_users as $table_search_in) {
+ if (in_array($table_search_in, $tables)) {
+ $db_rights_sqls[] = '
+ SELECT DISTINCT `Table_name`
+ FROM `mysql`.`' . $table_search_in . '`
+ ' . $user_host_condition;
+ }
+ }
+
+ $user_defaults = array(
+ 'Table_name' => '',
+ 'Grant_priv' => 'N',
+ 'privs' => array('USAGE'),
+ 'Column_priv' => true,
+ );
+
+ // for the rights
+ $db_rights = array();
+
+ $db_rights_sql = '(' . implode(') UNION (', $db_rights_sqls) . ')'
+ .' ORDER BY `Table_name` ASC';
+
+ $db_rights_result = PMA_DBI_query($db_rights_sql);
+
+ while ($db_rights_row = PMA_DBI_fetch_assoc($db_rights_result)) {
+ $db_rights_row = array_merge($user_defaults, $db_rights_row);
+ $db_rights[$db_rights_row['Table_name']] = $db_rights_row;
+ }
+ PMA_DBI_free_result($db_rights_result);
+ unset($db_rights_sql, $db_rights_sqls, $db_rights_result, $db_rights_row);
+
+ $sql_query =
+ 'SELECT `Table_name`,'
+ .' `Table_priv`,'
+ .' IF(`Column_priv` = _latin1 \'\', 0, 1)'
+ .' AS \'Column_priv\''
+ .' FROM `mysql`.`tables_priv`'
+ . $user_host_condition
+ .' ORDER BY `Table_name` ASC;';
+ $res = PMA_DBI_query($sql_query);
+ $sql_query = '';
+
+ while ($row = PMA_DBI_fetch_assoc($res)) {
+ if (isset($db_rights[$row['Table_name']])) {
+ $db_rights[$row['Table_name']] = array_merge($db_rights[$row['Table_name']], $row);
+ } else {
+ $db_rights[$row['Table_name']] = $row;
+ }
+ }
+ PMA_DBI_free_result($res);
+ unset($row, $res);
+ }
+ ksort($db_rights);
+
+ // display rows
+ if (count($db_rights) < 1) {
+ echo '<tr class="odd">' . "\n"
+ . ' <td colspan="6"><center><i>' . $GLOBALS['strNone'] . '</i></center></td>' . "\n"
+ . '</tr>' . "\n";
+ } else {
+ $odd_row = true;
+ $found_rows = array();
+ //while ($row = PMA_DBI_fetch_assoc($res)) {
+ foreach ($db_rights as $row) {
+ $found_rows[] = (! isset($dbname)) ? $row['Db'] : $row['Table_name'];
+
+ echo '<tr class="' . ($odd_row ? 'odd' : 'even') . '">' . "\n"
+ . ' <td>' . htmlspecialchars((! isset($dbname)) ? $row['Db'] : $row['Table_name']) . '</td>' . "\n"
+ . ' <td><tt>' . "\n"
+ . ' ' . join(',' . "\n" . ' ', PMA_extractPrivInfo($row, TRUE)) . "\n"
+ . ' </tt></td>' . "\n"
+ . ' <td>' . ((((! isset($dbname)) && $row['Grant_priv'] == 'Y') || (isset($dbname) && in_array('Grant', explode(',', $row['Table_priv'])))) ? $GLOBALS['strYes'] : $GLOBALS['strNo']) . '</td>' . "\n"
+ . ' <td>';
+ if (! empty($row['Table_privs']) || ! empty ($row['Column_priv'])) {
+ echo $GLOBALS['strYes'];
+ } else {
+ echo $GLOBALS['strNo'];
+ }
+ echo '</td>' . "\n"
+ . ' <td>';
+ printf($link_edit, urlencode($username),
+ urlencode($hostname),
+ urlencode((! isset($dbname)) ? $row['Db'] : $dbname),
+ urlencode((! isset($dbname)) ? '' : $row['Table_name']));
+ echo '</td>' . "\n"
+ . ' <td>';
+ if (! empty($row['can_delete']) || isset($row['Table_name']) && strlen($row['Table_name'])) {
+ printf($link_revoke, urlencode($username),
+ urlencode($hostname),
+ urlencode((! isset($dbname)) ? $row['Db'] : $dbname),
+ urlencode((! isset($dbname)) ? '' : $row['Table_name']));
+ }
+ echo '</td>' . "\n"
+ . '</tr>' . "\n";
+ $odd_row = ! $odd_row;
+ } // end while
+ }
+ unset($row);
+ echo '</tbody>' . "\n"
+ . '</table>' . "\n";
+
+ if (! isset($dbname)) {
+
+ // no database name was give, display select db
+
+ if (! empty($found_rows)) {
+ $pred_db_array = array_diff(
+ PMA_DBI_fetch_result('SHOW DATABASES;'),
+ $found_rows);
+ } else {
+ $pred_db_array =PMA_DBI_fetch_result('SHOW DATABASES;');
+ }
+
+ echo ' <label for="text_dbname">' . $GLOBALS['strAddPrivilegesOnDb'] . ':</label>' . "\n";
+ if (!empty($pred_db_array)) {
+ echo ' <select name="pred_dbname" onchange="this.form.submit();">' . "\n"
+ . ' <option value="" selected="selected">' . $GLOBALS['strUseTextField'] . ':</option>' . "\n";
+ foreach ($pred_db_array as $current_db) {
+ $current_db = PMA_escape_mysql_wildcards($current_db);
+ echo ' <option value="' . htmlspecialchars($current_db) . '">'
+ . htmlspecialchars($current_db) . '</option>' . "\n";
+ }
+ echo ' </select>' . "\n";
+ }
+ echo ' <input type="text" id="text_dbname" name="dbname" />' . "\n"
+ . PMA_showHint($GLOBALS['strEscapeWildcards']);
+ } else {
+ echo ' <input type="hidden" name="dbname" value="' . htmlspecialchars($dbname) . '"/>' . "\n"
+ . ' <label for="text_tablename">' . $GLOBALS['strAddPrivilegesOnTbl'] . ':</label>' . "\n";
+ if ($res = @PMA_DBI_try_query('SHOW TABLES FROM ' . PMA_backquote($dbname) . ';', null, PMA_DBI_QUERY_STORE)) {
+ $pred_tbl_array = array();
+ while ($row = PMA_DBI_fetch_row($res)) {
+ if (!isset($found_rows) || !in_array($row[0], $found_rows)) {
+ $pred_tbl_array[] = $row[0];
+ }
+ }
+ PMA_DBI_free_result($res);
+ unset($res, $row);
+ if (!empty($pred_tbl_array)) {
+ echo ' <select name="pred_tablename" onchange="this.form.submit();">' . "\n"
+ . ' <option value="" selected="selected">' . $GLOBALS['strUseTextField'] . ':</option>' . "\n";
+ foreach ($pred_tbl_array as $current_table) {
+ echo ' <option value="' . htmlspecialchars($current_table) . '">' . htmlspecialchars($current_table) . '</option>' . "\n";
+ }
+ echo ' </select>' . "\n";
+ }
+ } else {
+ unset($res);
+ }
+ echo ' <input type="text" id="text_tablename" name="tablename" />' . "\n";
+ }
+ echo '</fieldset>' . "\n";
+ echo '<fieldset class="tblFooters">' . "\n"
+ . ' <input type="submit" value="' . $GLOBALS['strGo'] . '" />'
+ . '</fieldset>' . "\n"
+ . '</form>' . "\n";
+ }
+
+ if (! isset($dbname) && ! $user_does_not_exists) {
+ require_once './libraries/display_change_password.lib.php';
+
+ echo '<form action="server_privileges.php" method="post" onsubmit="return checkPassword(this);">' . "\n"
+ . PMA_generate_common_hidden_inputs('', '')
+ . '<input type="hidden" name="old_username" value="' . htmlspecialchars($username) . '" />' . "\n"
+ . '<input type="hidden" name="old_hostname" value="' . htmlspecialchars($hostname) . '" />' . "\n"
+ . '<fieldset id="fieldset_change_copy_user">' . "\n"
+ . ' <legend>' . $GLOBALS['strChangeCopyUser'] . '</legend>' . "\n";
+ PMA_displayLoginInformationFields('change');
+ echo ' <fieldset>' . "\n"
+ . ' <legend>' . $GLOBALS['strChangeCopyMode'] . '</legend>' . "\n";
+ $choices = array(
+ '4' => $GLOBALS['strChangeCopyModeCopy'],
+ '1' => $GLOBALS['strChangeCopyModeJustDelete'],
+ '2' => $GLOBALS['strChangeCopyModeRevoke'],
+ '3' => $GLOBALS['strChangeCopyModeDeleteAndReload']);
+ PMA_generate_html_radio('mode', $choices, '4', true);
+ unset($choices);
+
+ echo ' </fieldset>' . "\n"
+ . '</fieldset>' . "\n"
+ . '<fieldset id="fieldset_change_copy_user_footer" class="tblFooters">' . "\n"
+ . ' <input type="submit" name="change_copy" value="' . $GLOBALS['strGo'] . '" />' . "\n"
+ . '</fieldset>' . "\n"
+ . '</form>' . "\n";
+ }
+ }
+} elseif (isset($_REQUEST['adduser'])) {
+ // Add a new user
+ $GLOBALS['url_query'] .= '&amp;adduser=1';
+ echo '<h2>' . "\n"
+ . PMA_getIcon('b_usradd.png') . $GLOBALS['strAddUser'] . "\n"
+ . '</h2>' . "\n"
+ . '<form name="usersForm" id="usersForm" action="server_privileges.php" method="post" onsubmit="return checkAddUser(this);">' . "\n"
+ . PMA_generate_common_hidden_inputs('', '');
+ PMA_displayLoginInformationFields('new');
+ echo '<fieldset id="fieldset_add_user_database">' . "\n"
+ . '<legend>' . $GLOBALS['strCreateUserDatabase'] . '</legend>' . "\n";
+
+ $choices = array(
+ '0' => $GLOBALS['strCreateUserDatabaseNone'],
+ '1' => $GLOBALS['strCreateUserDatabaseName'],
+ '2' => $GLOBALS['strCreateUserDatabaseWildcard']);
+ PMA_generate_html_radio('createdb', $choices, '0', true);
+ unset($choices);
+
+ echo '</fieldset>' . "\n";
+ PMA_displayPrivTable('*', '*', FALSE);
+ echo ' <fieldset id="fieldset_add_user_footer" class="tblFooters">' . "\n"
+ . ' <input type="submit" name="adduser_submit" value="' . $GLOBALS['strGo'] . '" />' . "\n"
+ . ' </fieldset>' . "\n"
+ . '</form>' . "\n";
+} else {
+ // check the privileges for a particular database.
+ echo '<table id="tablespecificuserrights" class="data">' . "\n"
+ . '<caption class="tblHeaders">' . "\n"
+ . PMA_getIcon('b_usrcheck.png')
+ . ' ' . sprintf($GLOBALS['strUsersHavingAccessToDb'], '<a href="' . $GLOBALS['cfg']['DefaultTabDatabase'] . '?' . PMA_generate_common_url($checkprivs) . '">' . htmlspecialchars($checkprivs) . '</a>') . "\n"
+ . '</caption>' . "\n"
+ . '<thead>' . "\n"
+ . ' <tr><th>' . $GLOBALS['strUser'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strHost'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strType'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strPrivileges'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strGrantOption'] . '</th>' . "\n"
+ . ' <th>' . $GLOBALS['strAction'] . '</th>' . "\n"
+ . ' </tr>' . "\n"
+ . '</thead>' . "\n"
+ . '<tbody>' . "\n";
+ $odd_row = TRUE;
+ unset($row, $row1, $row2);
+
+ // now, we build the table...
+ $list_of_privileges =
+ '`User`, '
+ . '`Host`, '
+ . '`Select_priv`, '
+ . '`Insert_priv`, '
+ . '`Update_priv`, '
+ . '`Delete_priv`, '
+ . '`Create_priv`, '
+ . '`Drop_priv`, '
+ . '`Grant_priv`, '
+ . '`Index_priv`, '
+ . '`Alter_priv`, '
+ . '`References_priv`, '
+ . '`Create_tmp_table_priv`, '
+ . '`Lock_tables_priv`, '
+ . '`Create_view_priv`, '
+ . '`Show_view_priv`, '
+ . '`Create_routine_priv`, '
+ . '`Alter_routine_priv`, '
+ . '`Execute_priv`';
+
+ $list_of_compared_privileges =
+ '`Select_priv` = \'N\''
+ . ' AND `Insert_priv` = \'N\''
+ . ' AND `Update_priv` = \'N\''
+ . ' AND `Delete_priv` = \'N\''
+ . ' AND `Create_priv` = \'N\''
+ . ' AND `Drop_priv` = \'N\''
+ . ' AND `Grant_priv` = \'N\''
+ . ' AND `References_priv` = \'N\''
+ . ' AND `Create_tmp_table_priv` = \'N\''
+ . ' AND `Lock_tables_priv` = \'N\''
+ . ' AND `Create_view_priv` = \'N\''
+ . ' AND `Show_view_priv` = \'N\''
+ . ' AND `Create_routine_priv` = \'N\''
+ . ' AND `Alter_routine_priv` = \'N\''
+ . ' AND `Execute_priv` = \'N\'';
+
+ if (PMA_MYSQL_INT_VERSION >= 50106) {
+ $list_of_privileges .=
+ ', `Event_priv`, '
+ . '`Trigger_priv`';
+ $list_of_compared_privileges .=
+ ' AND `Event_priv` = \'N\''
+ . ' AND `Trigger_priv` = \'N\'';
+ }
+
+ $sql_query =
+ '(SELECT ' . $list_of_privileges . ', `Db`'
+ .' FROM `mysql`.`db`'
+ .' WHERE \'' . PMA_sqlAddslashes($checkprivs) . "'"
+ .' LIKE `Db`'
+ .' AND NOT (' . $list_of_compared_privileges. ')) '
+ .'UNION '
+ .'(SELECT ' . $list_of_privileges . ', \'*\' AS `Db`'
+ .' FROM `mysql`.`user` '
+ .' WHERE NOT (' . $list_of_compared_privileges . ')) '
+ .' ORDER BY `User` ASC,'
+ .' `Host` ASC,'
+ .' `Db` ASC;';
+ $res = PMA_DBI_query($sql_query);
+ $row = PMA_DBI_fetch_assoc($res);
+ if ($row) {
+ $found = TRUE;
+ }
+
+ if ($found) {
+ while (TRUE) {
+ // prepare the current user
+ $current_privileges = array();
+ $current_user = $row['User'];
+ $current_host = $row['Host'];
+ while ($row && $current_user == $row['User'] && $current_host == $row['Host']) {
+ $current_privileges[] = $row;
+ $row = PMA_DBI_fetch_assoc($res);
+ }
+ echo ' <tr class="' . ($odd_row ? 'odd' : 'even') . '">' . "\n"
+ . ' <td';
+ if (count($current_privileges) > 1) {
+ echo ' rowspan="' . count($current_privileges) . '"';
+ }
+ echo '>' . (empty($current_user) ? '<span style="color: #FF0000">' . $GLOBALS['strAny'] . '</span>' : htmlspecialchars($current_user)) . "\n"
+ . ' </td>' . "\n"
+ . ' <td';
+ if (count($current_privileges) > 1) {
+ echo ' rowspan="' . count($current_privileges) . '"';
+ }
+ echo '>' . htmlspecialchars($current_host) . '</td>' . "\n";
+ foreach ($current_privileges as $current) {
+ echo ' <td>' . "\n"
+ . ' ';
+ if (!isset($current['Db']) || $current['Db'] == '*') {
+ echo $GLOBALS['strGlobal'];
+ } elseif ($current['Db'] == PMA_escape_mysql_wildcards($checkprivs)) {
+ echo $GLOBALS['strDbSpecific'];
+ } else {
+ echo $GLOBALS['strWildcard'], ': <tt>' . htmlspecialchars($current['Db']) . '</tt>';
+ }
+ echo "\n"
+ . ' </td>' . "\n"
+ . ' <td>' . "\n"
+ . ' <tt>' . "\n"
+ . ' ' . join(',' . "\n" . ' ', PMA_extractPrivInfo($current, TRUE)) . "\n"
+ . ' </tt>' . "\n"
+ . ' </td>' . "\n"
+ . ' <td>' . "\n"
+ . ' ' . ($current['Grant_priv'] == 'Y' ? $GLOBALS['strYes'] : $GLOBALS['strNo']) . "\n"
+ . ' </td>' . "\n"
+ . ' <td>' . "\n";
+ printf($link_edit, urlencode($current_user),
+ urlencode($current_host),
+ urlencode(! isset($current['Db']) || $current['Db'] == '*' ? '' : $current['Db']),
+ '');
+ echo '</td>' . "\n"
+ . ' </tr>' . "\n";
+ }
+ if (empty($row) && empty($row1) && empty($row2)) {
+ break;
+ }
+ $odd_row = ! $odd_row;
+ }
+ } else {
+ echo ' <tr class="odd">' . "\n"
+ . ' <td colspan="6">' . "\n"
+ . ' ' . $GLOBALS['strNoUsersFound'] . "\n"
+ . ' </td>' . "\n"
+ . ' </tr>' . "\n";
+ }
+ echo '</tbody>' . "\n"
+ . '</table>' . "\n";
+} // end if (empty($_REQUEST['adduser']) && empty($checkprivs)) ... elseif ... else ...
+
+
+/**
+ * Displays the footer
+ */
+echo "\n\n";
+require_once './libraries/footer.inc.php';
+
+?>
diff --git a/server_processlist.php b/server_processlist.php
new file mode 100644
index 0000000000..d0195b0a4a
--- /dev/null
+++ b/server_processlist.php
@@ -0,0 +1,92 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/server_common.inc.php';
+require './libraries/server_links.inc.php';
+
+
+/**
+ * Kills a selected process
+ */
+if (!empty($_REQUEST['kill'])) {
+ if (PMA_DBI_try_query('KILL ' . $_REQUEST['kill'] . ';')) {
+ $message = PMA_Message::success('strThreadSuccessfullyKilled');
+ } else {
+ $message = PMA_Message::error('strCouldNotKill');
+ }
+ $message->addParam($_REQUEST['kill']);
+ $message->display();
+}
+
+$url_params = array();
+
+if (! empty($_REQUEST['full'])) {
+ $sql_query = 'SHOW FULL PROCESSLIST';
+ $url_params['full'] = 1;
+ $full_text_link = 'server_processlist.php' . PMA_generate_common_url(array(), 'html', '?');
+} else {
+ $sql_query = 'SHOW PROCESSLIST';
+ $full_text_link = 'server_processlist.php' . PMA_generate_common_url(array('full' => 1));
+}
+$result = PMA_DBI_query($sql_query);
+
+/**
+ * Displays the page
+ */
+?>
+<table id="tableprocesslist" class="data">
+<thead>
+<tr><td><a href="<?php echo $full_text_link; ?>"
+ title="<?php echo empty($full) ? $strShowFullQueries : $strTruncateQueries; ?>">
+ <img src="<?php echo $pmaThemeImage . 's_' . (empty($_REQUEST['full']) ? 'full' : 'partial'); ?>text.png"
+ width="50" height="20" alt="<?php echo empty($_REQUEST['full']) ? $strShowFullQueries : $strTruncateQueries; ?>" />
+ </a></td>
+ <th><?php echo $strId; ?></th>
+ <th><?php echo $strUser; ?></th>
+ <th><?php echo $strHost; ?></th>
+ <th><?php echo $strDatabase; ?></th>
+ <th><?php echo $strCommand; ?></th>
+ <th><?php echo $strTime; ?></th>
+ <th><?php echo $strStatus; ?></th>
+ <th><?php echo $strSQLQuery; ?></th>
+</tr>
+</thead>
+<tbody>
+<?php
+$odd_row = true;
+while($process = PMA_DBI_fetch_assoc($result)) {
+ $url_params['kill'] = $process['Id'];
+ $kill_process = 'server_processlist.php' . PMA_generate_common_url($url_params);
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <td><a href="<?php echo $kill_process ; ?>"><?php echo $strKill; ?></a></td>
+ <td class="value"><?php echo $process['Id']; ?></td>
+ <td><?php echo $process['User']; ?></td>
+ <td><?php echo $process['Host']; ?></td>
+ <td><?php echo ((! isset($process['db']) || ! strlen($process['db'])) ? '<i>' . $strNone . '</i>' : $process['db']); ?></td>
+ <td><?php echo $process['Command']; ?></td>
+ <td class="value"><?php echo $process['Time']; ?></td>
+ <td><?php echo (empty($process['State']) ? '---' : $process['State']); ?></td>
+ <td><?php echo (empty($process['Info']) ? '---' : PMA_SQP_formatHtml(PMA_SQP_parse($process['Info']))); ?></td>
+</tr>
+ <?php
+ $odd_row = ! $odd_row;
+}
+?>
+</tbody>
+</table>
+<?php
+
+/**
+ * Sends the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/server_sql.php b/server_sql.php
new file mode 100644
index 0000000000..de6bd7f9b3
--- /dev/null
+++ b/server_sql.php
@@ -0,0 +1,36 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work
+ */
+$GLOBALS['js_include'][] = 'functions.js';
+require_once './libraries/server_common.inc.php';
+require_once './libraries/sql_query_form.lib.php';
+
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+
+/**
+ * Query box, bookmark, insert data from textfile
+ */
+PMA_sqlQueryForm();
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/server_status.php b/server_status.php
new file mode 100644
index 0000000000..78c91b3f7b
--- /dev/null
+++ b/server_status.php
@@ -0,0 +1,682 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * displays status variables with descriptions and some hints an optmizing
+ * + reset status variables
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work
+ */
+require './libraries/server_common.inc.php';
+
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+
+/**
+ * Displays the sub-page heading
+ */
+echo '<div id="serverstatus">' . "\n";
+echo '<h2>' . "\n"
+ . ($GLOBALS['cfg']['MainPageIconic']
+ ? '<img class="icon" src="' . $GLOBALS['pmaThemeImage'] .
+ 's_status.png" width="16" height="16" alt="" />'
+ : '')
+ . $strServerStatus . "\n"
+ . '</h2>' . "\n";
+
+
+/**
+ * flush status variables if requested
+ */
+if (isset($_REQUEST['flush'])) {
+ $_flush_commands = array(
+ 'STATUS',
+ 'TABLES',
+ 'QUERY CACHE',
+ );
+
+ if (in_array($_REQUEST['flush'], $_flush_commands)) {
+ PMA_DBI_query('FLUSH ' . $_REQUEST['flush'] . ';');
+ }
+ unset($_flush_commands);
+}
+
+
+/**
+ * get status from server
+ */
+$server_status = PMA_DBI_fetch_result('SHOW GLOBAL STATUS', 0, 1);
+
+
+/**
+ * for some calculations we require also some server settings
+ */
+$server_variables = PMA_DBI_fetch_result('SHOW GLOBAL VARIABLES', 0, 1);
+
+
+/**
+ * starttime calculation
+ */
+$start_time = PMA_DBI_fetch_value(
+ 'SELECT UNIX_TIMESTAMP() - ' . $server_status['Uptime']);
+
+
+/**
+ * cleanup some deprecated values
+ */
+$deprecated = array(
+ 'Com_prepare_sql' => 'Com_stmt_prepare',
+ 'Com_execute_sql' => 'Com_stmt_execute',
+ 'Com_dealloc_sql' => 'Com_stmt_close',
+);
+
+foreach ($deprecated as $old => $new) {
+ if (isset($server_status[$old])
+ && isset($server_status[$new])) {
+ unset($server_status[$old]);
+ }
+}
+unset($deprecated);
+
+
+/**
+ * calculate some values
+ */
+// Key_buffer_fraction
+if (isset($server_status['Key_blocks_unused'])
+ && isset($server_variables['key_cache_block_size'])
+ && isset($server_variables['key_buffer_size'])) {
+ $server_status['Key_buffer_fraction_%'] =
+ 100
+ - $server_status['Key_blocks_unused']
+ * $server_variables['key_cache_block_size']
+ / $server_variables['key_buffer_size']
+ * 100;
+} elseif (
+ isset($server_status['Key_blocks_used'])
+ && isset($server_variables['key_buffer_size'])) {
+ $server_status['Key_buffer_fraction_%'] =
+ $server_status['Key_blocks_used']
+ * 1024
+ / $server_variables['key_buffer_size'];
+ }
+
+// Ratio for key read/write
+if (isset($server_status['Key_writes'])
+ && isset($server_status['Key_write_requests'])
+ && $server_status['Key_write_requests'] > 0)
+ $server_status['Key_write_ratio_%'] = 100 * $server_status['Key_writes'] / $server_status['Key_write_requests'];
+
+if (isset($server_status['Key_reads'])
+ && isset($server_status['Key_read_requests'])
+ && $server_status['Key_read_requests'] > 0)
+ $server_status['Key_read_ratio_%'] = 100 * $server_status['Key_reads'] / $server_status['Key_read_requests'];
+
+// Threads_cache_hitrate
+if (isset($server_status['Threads_created'])
+ && isset($server_status['Connections'])
+ && $server_status['Connections'] > 0) {
+ $server_status['Threads_cache_hitrate_%'] =
+ 100
+ - $server_status['Threads_created']
+ / $server_status['Connections']
+ * 100;
+}
+
+
+/**
+ * define some alerts
+ */
+// name => max value before alert
+$alerts = array(
+ // lower is better
+ // variable => max value
+ 'Aborted_clients' => 0,
+ 'Aborted_connects' => 0,
+
+ 'Binlog_cache_disk_use' => 0,
+
+ 'Created_tmp_disk_tables' => 0,
+
+ 'Handler_read_rnd' => 0,
+ 'Handler_read_rnd_next' => 0,
+
+ 'Innodb_buffer_pool_pages_dirty' => 0,
+ 'Innodb_buffer_pool_reads' => 0,
+ 'Innodb_buffer_pool_wait_free' => 0,
+ 'Innodb_log_waits' => 0,
+ 'Innodb_row_lock_time_avg' => 10, // ms
+ 'Innodb_row_lock_time_max' => 50, // ms
+ 'Innodb_row_lock_waits' => 0,
+
+ 'Slow_queries' => 0,
+ 'Delayed_errors' => 0,
+ 'Select_full_join' => 0,
+ 'Select_range_check' => 0,
+ 'Sort_merge_passes' => 0,
+ 'Opened_tables' => 0,
+ 'Table_locks_waited' => 0,
+ 'Qcache_lowmem_prunes' => 0,
+ 'Slow_launch_threads' => 0,
+
+ // depends on Key_read_requests
+ // normaly lower then 1:0.01
+ 'Key_reads' => (0.01 * $server_status['Key_read_requests']),
+ // depends on Key_write_requests
+ // normaly nearly 1:1
+ 'Key_writes' => (0.9 * $server_status['Key_write_requests']),
+
+ 'Key_buffer_fraction' => 0.5,
+
+ // alert if more than 95% of thread cache is in use
+ 'Threads_cached' => 0.95 * $server_variables['thread_cache_size']
+
+ // higher is better
+ // variable => min value
+ //'Handler read key' => '> ',
+);
+
+
+/**
+ * split variables in sections
+ */
+$allocations = array(
+ // variable name => section
+
+ 'Com_' => 'com',
+ 'Innodb_' => 'innodb',
+ 'Ndb_' => 'ndb',
+ 'Ssl_' => 'ssl',
+ 'Handler_' => 'handler',
+ 'Qcache_' => 'qcache',
+ 'Threads_' => 'threads',
+ 'Slow_launch_threads' => 'threads',
+
+ 'Binlog_cache_' => 'binlog_cache',
+ 'Created_tmp_' => 'created_tmp',
+ 'Key_' => 'key',
+
+ 'Delayed_' => 'delayed',
+ 'Not_flushed_delayed_rows' => 'delayed',
+
+ 'Flush_commands' => 'query',
+ 'Last_query_cost' => 'query',
+ 'Slow_queries' => 'query',
+
+ 'Select_' => 'select',
+ 'Sort_' => 'sort',
+
+ 'Open_tables' => 'table',
+ 'Opened_tables' => 'table',
+ 'Table_locks_' => 'table',
+
+ 'Rpl_status' => 'repl',
+ 'Slave_' => 'repl',
+
+ 'Tc_' => 'tc',
+);
+
+$sections = array(
+ // section => section name (description)
+ 'com' => array('title' => ''),
+ 'query' => array('title' => $strSQLQuery),
+ 'innodb' => array('title' => 'InnoDB'),
+ 'ndb' => array('title' => 'NDB'),
+ 'ssl' => array('title' => 'SSL'),
+ 'handler' => array('title' => $strHandler),
+ 'qcache' => array('title' => $strQueryCache),
+ 'threads' => array('title' => $strThreads),
+ 'binlog_cache' => array('title' => $strBinaryLog),
+ 'created_tmp' => array('title' => $strTempData),
+ 'delayed' => array('title' => $strServerStatusDelayedInserts),
+ 'key' => array('title' => $strKeyCache),
+ 'select' => array('title' => $strJoins),
+ 'repl' => array('title' => $strReplication),
+ 'sort' => array('title' => $strSorting),
+ 'table' => array('title' => $strNumTables),
+ 'tc' => array('title' => $strTransactionCoordinator),
+);
+
+
+/**
+ * define some needfull links/commands
+ */
+// variable or section name => (name => url)
+$links = array();
+
+$links['table'][$strFlushTables]
+ = $PMA_PHP_SELF . '?flush=TABLES&amp;' . PMA_generate_common_url();
+$links['table'][$strShowOpenTables]
+ = 'sql.php?sql_query=' . urlencode('SHOW OPEN TABLES') .
+ '&amp;goto=server_status.php&amp;' . PMA_generate_common_url();
+
+$links['repl'][$strShowSlaveHosts]
+ = 'sql.php?sql_query=' . urlencode('SHOW SLAVE HOSTS') .
+ '&amp;goto=server_status.php&amp;' . PMA_generate_common_url();
+$links['repl'][$strShowSlaveStatus]
+ = 'sql.php?sql_query=' . urlencode('SHOW SLAVE STATUS') .
+ '&amp;goto=server_status.php&amp;' . PMA_generate_common_url();
+$links['repl']['doc'] = 'replication';
+
+$links['qcache'][$strFlushQueryCache]
+ = $PMA_PHP_SELF . '?flush=' . urlencode('QUERY CACHE') . '&amp;' .
+ PMA_generate_common_url();
+$links['qcache']['doc'] = 'query_cache';
+
+$links['threads'][$strMySQLShowProcess]
+ = 'server_processlist.php?' . PMA_generate_common_url();
+$links['threads']['doc'] = 'mysql_threads';
+
+$links['key']['doc'] = 'myisam_key_cache';
+
+$links['binlog_cache']['doc'] = 'binary_log';
+
+$links['Slow_queries']['doc'] = 'slow_query_log';
+
+$links['innodb'][$strServerTabVariables]
+ = 'server_engines.php?engine=InnoDB&amp;' . PMA_generate_common_url();
+$links['innodb'][$strInnodbStat]
+ = 'server_engines.php?engine=InnoDB&amp;page=Status&amp;' .
+ PMA_generate_common_url();
+$links['innodb']['doc'] = 'innodb';
+
+
+// sort status vars into arrays
+foreach ($server_status as $name => $value) {
+ if (isset($allocations[$name])) {
+ $sections[$allocations[$name]]['vars'][$name] = $value;
+ unset($server_status[$name]);
+ } else {
+ foreach ($allocations as $filter => $section) {
+ if (preg_match('/^' . $filter . '/', $name)
+ && isset($server_status[$name])) {
+ unset($server_status[$name]);
+ $sections[$section]['vars'][$name] = $value;
+ }
+ }
+ }
+}
+unset($name, $value, $filter, $section, $allocations);
+
+// rest
+$sections['all']['vars'] =& $server_status;
+
+$hour_factor = 3600 / $server_status['Uptime'];
+
+/**
+ * start output
+ */
+?>
+<div id="statuslinks">
+ <a href="<?php echo
+ $PMA_PHP_SELF . '?' . PMA_generate_common_url(); ?>"
+ ><?php echo $strRefresh; ?></a>
+ <a href="<?php echo
+ $PMA_PHP_SELF . '?flush=STATUS&amp;' . PMA_generate_common_url(); ?>"
+ ><?php echo $strShowStatusReset; ?></a>
+ <?php echo PMA_showMySQLDocu('server_status_variables','server_status_variables'); ?>
+</div>
+
+<p>
+<?php
+echo sprintf($strServerStatusUptime,
+ PMA_timespanFormat($server_status['Uptime']),
+ PMA_localisedDate($start_time)) . "\n";
+?>
+</p>
+
+<div id="sectionlinks">
+<?php
+foreach ($sections as $section_name => $section) {
+ if (! empty($section['vars']) && ! empty($section['title'])) {
+ echo '<a href="' . $PMA_PHP_SELF . '?' .
+ PMA_generate_common_url() . '#' . $section_name . '">' .
+ $section['title'] . '</a>' . "\n";
+ }
+}
+?>
+</div>
+
+<h3><?php echo $strServerTrafficNotes; ?></h3>
+
+<table id="serverstatustraffic" class="data">
+<thead>
+<tr>
+ <th colspan="2"><?php echo $strTraffic . '&nbsp;' . PMA_showHint($strStatisticsOverrun); ?></th>
+ <th>&oslash; <?php echo $strPerHour; ?></th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+ <th class="name"><?php echo $strReceived; ?></th>
+ <td class="value"><?php echo
+ implode(' ',
+ PMA_formatByteDown($server_status['Bytes_received'], 4)); ?></td>
+ <td class="value"><?php echo
+ implode(' ',
+ PMA_formatByteDown(
+ $server_status['Bytes_received'] * $hour_factor, 4)); ?></td>
+</tr>
+<tr class="even">
+ <th class="name"><?php echo $strSent; ?></th>
+ <td class="value"><?php echo
+ implode(' ',
+ PMA_formatByteDown($server_status['Bytes_sent'], 4)); ?></td>
+ <td class="value"><?php echo
+ implode(' ',
+ PMA_formatByteDown(
+ $server_status['Bytes_sent'] * $hour_factor, 4)); ?></td>
+</tr>
+<tr class="odd">
+ <th class="name"><?php echo $strTotalUC; ?></th>
+ <td class="value"><?php echo
+ implode(' ',
+ PMA_formatByteDown(
+ $server_status['Bytes_received'] + $server_status['Bytes_sent'], 4)
+ ); ?></td>
+ <td class="value"><?php echo
+ implode(' ',
+ PMA_formatByteDown(
+ ($server_status['Bytes_received'] + $server_status['Bytes_sent'])
+ * $hour_factor, 4)
+ ); ?></td>
+</tr>
+</tbody>
+</table>
+
+<table id="serverstatusconnections" class="data">
+<thead>
+<tr>
+ <th colspan="2"><?php echo $strConnections; ?></th>
+ <th>&oslash; <?php echo $strPerHour; ?></th>
+ <th>%</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+ <th class="name"><?php echo $strMaxConnects; ?></th>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Max_used_connections'], 0); ?> </td>
+ <td class="value">--- </td>
+ <td class="value">--- </td>
+</tr>
+<tr class="even">
+ <th class="name"><?php echo $strFailedAttempts; ?></th>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Aborted_connects'], 4, 0); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Aborted_connects'] * $hour_factor,
+ 4, 2); ?></td>
+ <td class="value"><?php echo
+ $server_status['Connections'] > 0
+ ? PMA_formatNumber(
+ $server_status['Aborted_connects'] * 100 / $server_status['Connections'],
+ 0, 2) . '%'
+ : '--- '; ?></td>
+</tr>
+<tr class="odd">
+ <th class="name"><?php echo $strAbortedClients; ?></th>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Aborted_clients'], 4, 0); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Aborted_clients'] * $hour_factor,
+ 4, 2); ?></td>
+ <td class="value"><?php echo
+ $server_status['Connections'] > 0
+ ? PMA_formatNumber(
+ $server_status['Aborted_clients'] * 100 / $server_status['Connections'],
+ 0, 2) . '%'
+ : '--- '; ?></td>
+</tr>
+<tr class="even">
+ <th class="name"><?php echo $strTotalUC; ?></th>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Connections'], 4, 0); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Connections'] * $hour_factor,
+ 4, 2); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber(100, 0, 2); ?>%</td>
+</tr>
+</tbody>
+</table>
+
+<hr class="clearfloat" />
+
+<h3><?php echo
+ sprintf($strQueryStatistics,
+ PMA_formatNumber($server_status['Questions'], 0)); ?></h3>
+
+<table id="serverstatusqueriessummary" class="data">
+<thead>
+<tr>
+ <th><?php echo $strTotalUC; ?></th>
+ <th>&oslash; <?php echo $strPerHour; ?></th>
+ <th>&oslash; <?php echo $strPerMinute; ?></th>
+ <th>&oslash; <?php echo $strPerSecond; ?></th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Questions'], 4, 0); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber($server_status['Questions'] * $hour_factor,
+ 3, 2); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber(
+ $server_status['Questions'] * 60 / $server_status['Uptime'],
+ 3, 2); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber(
+ $server_status['Questions'] / $server_status['Uptime'],
+ 3, 2); ?></td>
+</tr>
+</tbody>
+</table>
+
+<div id="serverstatusqueriesdetails">
+<?php
+// number of tables to split values into
+$tables = 2;
+$rows_per_table = (int) ceil(count($sections['com']['vars']) / $tables);
+$current_table = 0;
+$odd_row = true;
+$countRows = 0;
+$perc_factor = 100 / ($server_status['Questions'] - $server_status['Connections']);
+foreach ($sections['com']['vars'] as $name => $value) {
+ $current_table++;
+ if ($countRows === 0 || $countRows === $rows_per_table) {
+ $odd_row = true;
+ if ($countRows === $rows_per_table) {
+ echo ' </tbody>' . "\n";
+ echo ' </table>' . "\n";
+ }
+?>
+ <table id="serverstatusqueriesdetails<?php echo $current_table; ?>" class="data">
+ <col class="namecol" />
+ <col class="valuecol" span="3" />
+ <thead>
+ <tr><th colspan="2"><?php echo $strQueryType; ?></th>
+ <th>&oslash; <?php echo $strPerHour; ?></th>
+ <th>%</th>
+ </tr>
+ </thead>
+ <tbody>
+<?php
+ } else {
+ $odd_row = !$odd_row;
+ }
+ $countRows++;
+
+// For the percentage column, use Questions - Connections, because
+// the number of connections is not an item of the Query types
+// but is included in Questions. Then the total of the percentages is 100.
+ $name = str_replace('Com_', '', $name);
+ $name = str_replace('_', ' ', $name);
+?>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo htmlspecialchars($name); ?></th>
+ <td class="value"><?php echo PMA_formatNumber($value, 4, 0); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber($value * $hour_factor, 4, 2); ?></td>
+ <td class="value"><?php echo
+ PMA_formatNumber($value * $perc_factor, 0, 2); ?>%</td>
+ </tr>
+<?php
+}
+?>
+ </tbody>
+ </table>
+</div>
+
+<div id="serverstatussection">
+<?php
+//Unset used variables
+unset(
+ $tables, $rows_per_table, $current_table, $countRows, $perc_factor,
+ $hour_factor, $sections['com'],
+ $server_status['Aborted_clients'], $server_status['Aborted_connects'],
+ $server_status['Max_used_connections'], $server_status['Bytes_received'],
+ $server_status['Bytes_sent'], $server_status['Connections'],
+ $server_status['Questions'], $server_status['Uptime']
+);
+
+foreach ($sections as $section_name => $section) {
+ if (! empty($section['vars'])) {
+?>
+ <table class="data" id="serverstatussection<?php echo $section_name; ?>">
+ <caption class="tblHeaders">
+ <a class="top"
+ href="<?php echo $PMA_PHP_SELF . '?' .
+ PMA_generate_common_url() . '#serverstatus'; ?>"
+ name="<?php echo $section_name; ?>"><?php echo $strPos1; ?>
+ <?php echo
+ ($GLOBALS['cfg']['MainPageIconic']
+ ? '<img src="' . $GLOBALS['pmaThemeImage'] .
+ 's_asc.png" width="11" height="9" align="middle" alt="" />'
+ : ''); ?>
+ </a>
+<?php
+if (! empty($section['title'])) {
+ echo $section['title'];
+}
+?>
+ </caption>
+ <col class="namecol" />
+ <col class="valuecol" />
+ <col class="descrcol" />
+ <thead>
+ <tr>
+ <th><?php echo $strVar; ?></th>
+ <th><?php echo $strValue; ?></th>
+ <th><?php echo $strDescription; ?></th>
+ </tr>
+ </thead>
+<?php
+ if (! empty($links[$section_name])) {
+?>
+ <tfoot>
+ <tr class="tblFooters">
+ <th colspan="3" class="tblFooters">
+<?php
+ foreach ($links[$section_name] as $link_name => $link_url) {
+ if ('doc' == $link_name) {
+ echo PMA_showMySQLDocu($link_url, $link_url);
+ } else {
+ echo '<a href="' . $link_url . '">' . $link_name . '</a>' . "\n";
+ }
+ }
+ unset($link_url, $link_name);
+?>
+ </th>
+ </tr>
+ </tfoot>
+<?php
+ }
+?>
+ <tbody>
+<?php
+ $odd_row = false;
+ foreach ($section['vars'] as $name => $value) {
+ $odd_row = !$odd_row;
+?>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo htmlspecialchars($name); ?></th>
+ <td class="value"><?php
+ if (isset($alerts[$name])) {
+ if ($value > $alerts[$name]) {
+ echo '<span class="attention">';
+ } else {
+ echo '<span class="allfine">';
+ }
+ }
+ if ('%' === substr($name, -1, 1)) {
+ echo PMA_formatNumber($value, 0, 2) . ' %';
+ } elseif (is_numeric($value) && $value == (int) $value) {
+ echo PMA_formatNumber($value, 4, 0);
+ } elseif (is_numeric($value)) {
+ echo PMA_formatNumber($value, 4, 2);
+ } else {
+ echo htmlspecialchars($value);
+ }
+ if (isset($alerts[$name])) {
+ echo '</span>';
+ }
+ ?></td>
+ <td class="descr">
+ <?php
+ if (isset($GLOBALS['strShowStatus' . $name . 'Descr'])) {
+ echo $GLOBALS['strShowStatus' . $name . 'Descr'];
+ }
+
+ if (isset($links[$name])) {
+ foreach ($links[$name] as $link_name => $link_url) {
+ if ('doc' == $link_name) {
+ echo PMA_showMySQLDocu($link_url, $link_url);
+ } else {
+ echo ' <a href="' . $link_url . '">' . $link_name . '</a>' .
+ "\n";
+ }
+ }
+ unset($link_url, $link_name);
+ }
+ ?>
+ </td>
+ </tr>
+<?php
+ }
+ unset($name, $value);
+?>
+ </tbody>
+ </table>
+<?php
+ }
+}
+unset($section_name, $section, $sections, $server_status, $odd_row, $alerts);
+?>
+</div>
+</div>
+<?php
+
+
+/**
+ * Sends the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/server_variables.php b/server_variables.php
new file mode 100644
index 0000000000..b1e930af59
--- /dev/null
+++ b/server_variables.php
@@ -0,0 +1,111 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+require_once './libraries/common.inc.php';
+
+/**
+ * Does the common work
+ */
+require './libraries/server_common.inc.php';
+
+
+/**
+ * Displays the links
+ */
+require './libraries/server_links.inc.php';
+
+
+/**
+ * Displays the sub-page heading
+ */
+echo '<h2>' . "\n"
+ . ($cfg['MainPageIconic'] ? '<img class="icon" src="' . $pmaThemeImage . 's_vars.png" width="16" height="16" alt="" />' : '')
+ . '' . $strServerVars . "\n"
+ . '</h2>' . "\n";
+
+
+/**
+ * Sends the queries and buffers the results
+ */
+$serverVars = PMA_DBI_fetch_result('SHOW SESSION VARIABLES;', 0, 1);
+$serverVarsGlobal = PMA_DBI_fetch_result('SHOW GLOBAL VARIABLES;', 0, 1);
+
+
+/**
+ * Displays the page
+ */
+?>
+<table class="data">
+<thead>
+<tr><th><?php echo $strVar; ?></th>
+ <th>
+<?php
+echo $strSessionValue . ' / ' . $strGlobalValue;
+?>
+ </th>
+</tr>
+</thead>
+<tbody>
+<?php
+$odd_row = true;
+foreach ($serverVars as $name => $value) {
+ ?>
+<tr class="<?php
+ echo $odd_row ? 'odd' : 'even';
+ if ($serverVarsGlobal[$name] !== $value) {
+ echo ' marked';
+ }
+ ?>">
+ <th nowrap="nowrap">
+ <?php echo htmlspecialchars(str_replace('_', ' ', $name)); ?></th>
+ <td class="value"><?php
+ if (strlen($value) < 16 && is_numeric($value)) {
+ echo PMA_formatNumber($value, 0);
+ $is_numeric = true;
+ } else {
+ echo htmlspecialchars($value);
+ $is_numeric = false;
+ }
+ ?></td>
+ <?php
+ if ($serverVarsGlobal[$name] !== $value) {
+ ?>
+</tr>
+<tr class="<?php
+ echo $odd_row ? 'odd' : 'even';
+ ?> marked">
+ <td>(<?php echo $strGlobalValue; ?>)</td>
+ <td class="value"><?php
+ if ($is_numeric) {
+ echo PMA_formatNumber($serverVarsGlobal[$name], 0);
+ } else {
+ echo htmlspecialchars($serverVarsGlobal[$name]);
+ }
+ ?></td>
+ <?php } ?>
+</tr>
+ <?php
+ $odd_row = !$odd_row;
+}
+?>
+</tbody>
+</table>
+<?php
+
+
+/**
+ * Sends the footer
+ */
+require_once './libraries/footer.inc.php';
+
+?>
diff --git a/setup/config.php b/setup/config.php
new file mode 100644
index 0000000000..58073b206c
--- /dev/null
+++ b/setup/config.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Front controller for config view / download and clear
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+require './lib/common.inc.php';
+require_once './setup/lib/Form.class.php';
+require_once './setup/lib/FormDisplay.class.php';
+
+/**
+ * Returns config file contents depending on GET type value:
+ * o session - uses ConfigFile::getConfigFile()
+ * o post - uses POST textconfig value
+ *
+ * @return string
+ */
+function get_config() {
+ $type = PMA_ifSetOr($_GET['type'], 'session');
+
+ if ($type == 'session') {
+ $config = ConfigFile::getInstance()->getConfigFile();
+ } else {
+ $config = PMA_ifSetOr($_POST['textconfig'], '');
+ // make sure our eol is \n
+ $config = str_replace("\r\n", "\n", $config);
+ if ($_SESSION['eol'] == 'win') {
+ $config = str_replace("\n", "\r\n", $config);
+ }
+ }
+
+ return $config;
+}
+
+
+$form_display = new FormDisplay();
+$form_display->registerForm('_config.php');
+$form_display->save('_config.php');
+$config_file_path = ConfigFile::getInstance()->getFilePath();
+
+if (isset($_POST['eol'])) {
+ $_SESSION['eol'] = ($_POST['eol'] == 'unix') ? 'unix' : 'win';
+}
+
+if (PMA_ifSetOr($_POST['submit_clear'], '')) {
+ //
+ // Clear current config and return to main page
+ //
+ $_SESSION['ConfigFile'] = array();
+ // drop post data
+ header('HTTP/1.1 303 See Other');
+ header('Location: index.php');
+ exit;
+} elseif (PMA_ifSetOr($_POST['submit_download'], '')) {
+ //
+ // Output generated config file
+ //
+ header('Content-Type: text/plain');
+ header('Content-Disposition: attachment; filename="config.inc.php"');
+ echo get_config();
+ exit;
+} elseif (PMA_ifSetOr($_POST['submit_save'], '')) {
+ //
+ // Save generated config file on the server
+ //
+ file_put_contents($config_file_path, get_config());
+ header('HTTP/1.1 303 See Other');
+ header('Location: index.php');
+ exit;
+} elseif (PMA_ifSetOr($_POST['submit_load'], '')) {
+ //
+ // Load config file from the server
+ //
+ $cfg = array();
+ require_once $config_file_path;
+ $_SESSION['ConfigFile'] = $cfg;
+ header('HTTP/1.1 303 See Other');
+ header('Location: index.php');
+ exit;
+} elseif (PMA_ifSetOr($_POST['submit_delete'], '')) {
+ //
+ // Delete config file on the server
+ //
+ @unlink($config_file_path);
+ header('HTTP/1.1 303 See Other');
+ header('Location: index.php');
+ exit;
+} else {
+ //
+ // Show generated config file in a <textarea>
+ //
+ header('HTTP/1.1 303 See Other');
+ header('Location: index.php?page=config');
+ exit;
+}
+?> \ No newline at end of file
diff --git a/setup/frames/config.inc.php b/setup/frames/config.inc.php
new file mode 100644
index 0000000000..d2cec90c83
--- /dev/null
+++ b/setup/frames/config.inc.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Config file view and save screen
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+if (!defined('PHPMYADMIN')) {
+ exit;
+}
+
+require_once './setup/lib/FormDisplay.class.php';
+require_once './setup/lib/index.lib.php';
+
+$config_readable = false;
+$config_writable = false;
+$config_exists = false;
+check_config_rw($config_readable, $config_writable, $config_exists);
+?>
+<h2><?php echo $GLOBALS['strSetupConfigurationFile'] ?></h2>
+<?php display_form_top('config.php?type=post'); ?>
+<input type="hidden" name="eol" value="<?php echo htmlspecialchars(PMA_ifSetOr($_GET['eol'], 'unix')) ?>" />
+<?php display_fieldset_top('', '', null, array('class' => 'simple')); ?>
+<tr>
+ <td>
+ <textarea cols="50" rows="20" name="textconfig" id="textconfig" spellcheck="false"><?php
+ echo htmlspecialchars(ConfigFile::getInstance()->getConfigFile())
+ ?></textarea>
+ </td>
+</tr>
+<tr>
+ <td class="lastrow" style="text-align: left">
+ <input type="submit" name="submit_download" value="<?php echo $GLOBALS['strSetupDownload'] ?>" class="green" />
+ <input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>"<?php if (!$config_writable) echo ' disabled="disabled"' ?> />
+ &nbsp; &nbsp;
+ <input type="reset" value="<?php echo $GLOBALS['strReset'] ?>" />
+ </td>
+</tr>
+<?php
+display_fieldset_bottom_simple();
+display_form_bottom();
+?> \ No newline at end of file
diff --git a/setup/frames/form.inc.php b/setup/frames/form.inc.php
new file mode 100644
index 0000000000..acdfb15632
--- /dev/null
+++ b/setup/frames/form.inc.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Form edit view
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+if (!defined('PHPMYADMIN')) {
+ exit;
+}
+
+require_once './setup/lib/Form.class.php';
+require_once './setup/lib/FormDisplay.class.php';
+require_once './setup/lib/form_processing.lib.php';
+
+$formsets = array(
+ 'features' => array(
+ 'forms' => array('Import_export', 'Security', 'Sql_queries', 'Other_core_settings')),
+ 'left_frame' => array(
+ 'forms' => array('Left_frame', 'Left_servers', 'Left_databases', 'Left_tables')),
+ 'main_frame' => array(
+ 'forms' => array('Startup', 'Browse', 'Edit', 'Tabs', 'Sql_box')),
+ 'import' => array(
+ 'forms' => array('Import_defaults')),
+ 'export' => array(
+ 'forms' => array('Export_defaults'))
+);
+
+$formset_id = filter_input(INPUT_GET, 'formset');
+$mode = filter_input(INPUT_GET, 'mode');
+if (!isset($formsets[$formset_id])) {
+ die('Incorrect formset, check $formsets array in setup/frames/form.inc.php');
+}
+
+$formset = $formsets[$formset_id];
+if (isset($GLOBALS['strSetupFormset_' . $formset_id])) {
+ echo '<h2>' . $GLOBALS['strSetupFormset_' . $formset_id] . '</h2>';
+}
+$form_display = new FormDisplay();
+foreach ($formset['forms'] as $form_name) {
+ $form_display->registerForm($form_name);
+}
+process_formset($form_display);
+?> \ No newline at end of file
diff --git a/setup/frames/index.inc.php b/setup/frames/index.inc.php
new file mode 100644
index 0000000000..334f8b3897
--- /dev/null
+++ b/setup/frames/index.inc.php
@@ -0,0 +1,243 @@
+<?php
+/**
+ * Overview (main page)
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+if (!defined('PHPMYADMIN')) {
+ exit;
+}
+
+require_once './libraries/display_select_lang.lib.php';
+require_once './setup/lib/FormDisplay.class.php';
+require_once './setup/lib/index.lib.php';
+
+// prepare unfiltered language list
+$all_languages = PMA_langList();
+uasort($all_languages, 'PMA_language_cmp');
+
+$cf = ConfigFile::getInstance();
+$separator = PMA_get_arg_separator('html');
+
+// message handling
+messages_begin();
+
+//
+// Check phpMyAdmin version
+//
+if (isset($_GET['version_check'])) {
+ PMA_version_check();
+}
+
+//
+// Perform various security, compatibility and consistency checks
+//
+perform_config_checks();
+
+//
+// Check whether we can read/write configuration
+//
+$config_readable = false;
+$config_writable = false;
+$config_exists = false;
+check_config_rw($config_readable, $config_writable, $config_exists);
+if (!$config_writable || !$config_readable) {
+ messages_set('error', 'config_rw', 'CannotLoadConfig', PMA_lang('CannotLoadConfigMsg'));
+}
+//
+// Check https connection
+//
+$is_https = !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on';
+if (!$is_https) {
+ $text = $GLOBALS['strSetupInsecureConnectionMsg1'];
+ if (!empty($_SERVER['REQUEST_URI']) && !empty($_SERVER['HTTP_HOST'])) {
+ $text .= ' ' . PMA_lang('InsecureConnectionMsg2',
+ 'https://' . htmlspecialchars($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']));
+ }
+ messages_set('warning', 'no_https', 'InsecureConnection', $text);
+}
+?>
+
+<form id="select_lang" method="post" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']) ?>">
+ <?php echo PMA_generate_common_hidden_inputs() ?>
+ <bdo xml:lang="en" dir="ltr"><label for="lang">
+ <?php echo $GLOBALS['strLanguage'] . ($GLOBALS['strLanguage'] != 'Language' ? ' - Language' : '') ?>
+ </label></bdo><br />
+ <select id="lang" name="lang" onchange="this.form.submit();" xml:lang="en" dir="ltr">
+ <?php
+ // create language list
+ $lang_list = array();
+ foreach ($all_languages as $each_lang_key => $each_lang) {
+ if (!file_exists($GLOBALS['lang_path'] . $each_lang[1] . '.inc.php')) {
+ continue;
+ }
+
+ $lang_name = ucfirst(substr(strrchr($each_lang[0], '|'), 1));
+ // Include native name if non empty
+ if (!empty($each_lang[3])) {
+ $lang_name = $each_lang[3] . ' - ' . $lang_name;
+ }
+
+ //Is current one active?
+ $selected = ($GLOBALS['lang'] == $each_lang_key) ? ' selected="selected"' : '';
+ echo '<option value="' . $each_lang_key . '"' . $selected . '>' . $lang_name
+ . '</option>' . "\n";
+ }
+ ?>
+ </select>
+</form>
+
+<h2><?php echo $GLOBALS['strSetupOverview'] ?></h2>
+
+<?php
+// message handling
+messages_end();
+messages_show_html();
+?>
+
+<a href="#" id="show_hidden_messages" style="display:none"><?php echo $GLOBALS['strSetupShowHiddenMessages'] ?></a>
+
+<h3><?php echo $GLOBALS['strServers'] ?></h3>
+<?php
+//
+// Display server list
+//
+display_form_top('index.php', 'get', array(
+ 'page' => 'servers',
+ 'mode' => 'add'
+));
+?>
+<div class="form">
+<?php if ($cf->getServerCount() > 0): ?>
+<table cellspacing="0" class="datatable" style="table-layout: fixed">
+<tr>
+ <th>#</th>
+ <th><?php echo $GLOBALS['strName'] ?></th>
+ <th>Authentication type</th>
+ <th colspan="2">DSN</th>
+</tr>
+<?php foreach ($_SESSION['ConfigFile']['Servers'] as $id => $server): ?>
+<tr>
+ <td><?php echo $id ?></td>
+ <td><?php echo $cf->getServerName($id) ?></td>
+ <td><?php echo htmlspecialchars($cf->getValue("Servers/$id/auth_type")) ?></td>
+ <td><?php echo htmlspecialchars($cf->getServerDSN($id)) ?></td>
+ <td style="white-space: nowrap">
+ <small>
+ <a href="<?php echo "?page=servers{$separator}mode=edit{$separator}id=$id" ?>"><?php echo $GLOBALS['strEdit'] ?></a>
+ | <a href="<?php echo "?page=servers{$separator}mode=remove{$separator}id=$id" ?>"><?php echo $GLOBALS['strDelete'] ?></a>
+ </small>
+ </td>
+</tr>
+<?php endforeach; ?>
+</table>
+<?php else: ?>
+<table width="100%">
+<tr>
+ <td>
+ <i><?php echo $GLOBALS['strSetupNoServers'] ?></i>
+ </td>
+</tr>
+</table>
+<?php endif; ?>
+<table width="100%">
+<tr>
+ <td class="lastrow" style="text-align: left">
+ <input type="submit" name="submit" value="<?php echo $GLOBALS['strSetupNewServer'] ?>" />
+ </td>
+</tr>
+</table>
+</div>
+<?php
+display_form_bottom();
+?>
+
+<h3><?php echo $GLOBALS['strSetupConfigurationFile'] ?></h3>
+<?php
+//
+// Display config file settings and load/save form
+//
+$form_display = new FormDisplay();
+
+display_form_top('config.php');
+display_fieldset_top('', '', null, array('class' => 'simple'));
+
+// Display language list
+$opts = array(
+ 'doc' => $form_display->getDocLink('DefaultLang'),
+ 'wiki' => $form_display->getWikiLink('DefaultLang'),
+ 'values' => array(),
+ 'values_escaped' => true);
+foreach ($all_languages as $each_lang_key => $each_lang) {
+ if (!file_exists($GLOBALS['lang_path'] . $each_lang[1] . '.inc.php')) {
+ continue;
+ }
+ $lang_name = ucfirst(substr(strrchr($each_lang[0], '|'), 1));
+ // Include native name if non empty
+ if (!empty($each_lang[3])) {
+ $lang_name = $each_lang[3] . ' - ' . $lang_name;
+ }
+ $opts['values'][$each_lang_key] = $lang_name;
+}
+display_input('DefaultLang', $GLOBALS['strSetupDefaultLanguage'], '', 'select',
+ $cf->getValue('DefaultLang'), true, $opts);
+
+// Display server list
+$opts = array(
+ 'doc' => $form_display->getDocLink('ServerDefault'),
+ 'wiki' => $form_display->getWikiLink('ServerDefault'),
+ 'values' => array(),
+ 'values_disabled' => array());
+if ($cf->getServerCount() > 0) {
+ $opts['values']['0'] = $GLOBALS['strSetupLetUserChoose'];
+ $opts['values']['-'] = '------------------------------';
+ if ($cf->getServerCount() == 1) {
+ $opts['values_disabled'][] = '0';
+ }
+ $opts['values_disabled'][] = '-';
+
+ foreach ($_SESSION['ConfigFile']['Servers'] as $id => $server) {
+ $opts['values'][(string)$id] = $cf->getServerName($id) . " [$id]";
+ }
+} else {
+ $opts['values']['1'] = $GLOBALS['strSetupOptionNone'];
+ $opts['values_escaped'] = true;
+}
+display_input('ServerDefault', $GLOBALS['strSetupDefaultServer'], '', 'select',
+ $cf->getValue('ServerDefault'), true, $opts);
+
+// Display EOL list
+$opts = array(
+ 'values' => array(
+ 'unix' => 'UNIX / Linux (\n)',
+ 'win' => 'Windows (\r\n)'),
+ 'values_escaped' => true);
+$eol = PMA_ifSetOr($_SESSION['eol'], (PMA_IS_WINDOWS ? 'win' : 'unix'));
+display_input('eol', $GLOBALS['strSetupEndOfLine'], '', 'select',
+ $eol, true, $opts);
+?>
+<tr>
+ <td colspan="2" class="lastrow" style="text-align: left">
+ <input type="submit" name="submit_display" value="<?php echo $GLOBALS['strSetupDisplay'] ?>" />
+ <input type="submit" name="submit_download" value="<?php echo $GLOBALS['strSetupDownload'] ?>" />
+ &nbsp; &nbsp;
+ <input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>"<?php if (!$config_writable) echo ' disabled="disabled"' ?> />
+ <input type="submit" name="submit_load" value="<?php echo $GLOBALS['strSetupLoad'] ?>"<?php if (!$config_exists) echo ' disabled="disabled"' ?> />
+ <input type="submit" name="submit_delete" value="<?php echo $GLOBALS['strDelete'] ?>"<?php if (!$config_exists || !$config_writable) echo ' disabled="disabled"' ?> />
+ &nbsp; &nbsp;
+ <input type="submit" name="submit_clear" value="<?php echo $GLOBALS['strSetupClear'] ?>" class="red" />
+ </td>
+</tr>
+<?php
+display_fieldset_bottom_simple();
+display_form_bottom();
+?>
+<div id="footer">
+ <a href="http://phpmyadmin.net"><?php echo $GLOBALS['strSetupHomepageLink'] ?></a>
+ <a href="http://sourceforge.net/donate/index.php?group_id=23067"><?php echo $GLOBALS['strSetupDonateLink'] ?></a>
+ <a href="?version_check=1<?php echo "{$separator}token=" . $_SESSION[' PMA_token '] ?>"><?php echo $GLOBALS['strSetupVersionCheckLink'] ?></a>
+</div> \ No newline at end of file
diff --git a/setup/frames/menu.inc.php b/setup/frames/menu.inc.php
new file mode 100644
index 0000000000..3b61c31a06
--- /dev/null
+++ b/setup/frames/menu.inc.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Menu items
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+if (!defined('PHPMYADMIN')) {
+ exit;
+}
+
+$separator = PMA_get_arg_separator('html');
+?>
+<ul>
+ <li><a href="index.php"><?php echo $GLOBALS['strSetupOverview'] ?></a></li>
+ <li><a href="?page=form<?php echo $separator ?>formset=features"><?php echo $GLOBALS['strSetupFormset_features'] ?></a></li>
+ <li><a href="?page=form<?php echo $separator ?>formset=left_frame"><?php echo $GLOBALS['strSetupForm_Left_frame'] ?></a></li>
+ <li><a href="?page=form<?php echo $separator ?>formset=main_frame"><?php echo $GLOBALS['strSetupForm_Main_frame'] ?></a></li>
+ <li><a href="?page=form<?php echo $separator ?>formset=import"><?php echo $GLOBALS['strImport'] ?></a></li>
+ <li><a href="?page=form<?php echo $separator ?>formset=export"><?php echo $GLOBALS['strExport'] ?></a></li>
+</ul>
diff --git a/setup/frames/servers.inc.php b/setup/frames/servers.inc.php
new file mode 100644
index 0000000000..062af036cf
--- /dev/null
+++ b/setup/frames/servers.inc.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Server create and edit view
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+if (!defined('PHPMYADMIN')) {
+ exit;
+}
+
+require_once './setup/lib/Form.class.php';
+require_once './setup/lib/FormDisplay.class.php';
+require_once './setup/lib/form_processing.lib.php';
+
+$mode = filter_input(INPUT_GET, 'mode');
+$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
+
+$cf = ConfigFile::getInstance();
+$server_exists = !empty($id) && $cf->get("Servers/$id") !== null;
+
+if ($mode == 'edit' && $server_exists) {
+ $page_title = $GLOBALS['strSetupServersEdit']
+ . ' ' . $id . ' <small>(' . $cf->getServerDSN($id) . ')</small>';
+} elseif ($mode == 'remove' && $server_exists) {
+ $cf->removeServer($id);
+ header('Location: index.php');
+ exit;
+} elseif ($mode == 'revert' && $server_exists) {
+ // handled by process_formset()
+} else {
+ $page_title = $GLOBALS['strSetupServersAdd'];
+ $id = 0;
+}
+?>
+<h2><?php echo $page_title ?></h2>
+<?php
+$form_display = new FormDisplay();
+$form_display->registerForm('Server', $id);
+$form_display->registerForm('Server_login_options', $id);
+$form_display->registerForm('Server_config', $id);
+$form_display->registerForm('Server_pmadb', $id);
+process_formset($form_display);
+?> \ No newline at end of file
diff --git a/setup/index.php b/setup/index.php
new file mode 100644
index 0000000000..118eab52f2
--- /dev/null
+++ b/setup/index.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Front controller for setup script
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @copyright Copyright (c) 2008, Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+require './lib/common.inc.php';
+
+$page = filter_input(INPUT_GET, 'page');
+$page = preg_replace('/[^a-z]/', '', $page);
+if ($page === '') {
+ $page = 'index';
+}
+if (!file_exists("./setup/frames/$page.inc.php")) {
+ // it will happen only when enterung URL by hand, we don't care for these cases
+ die('Wrong GET file attribute value');
+}
+
+// send no-cache headers
+require './libraries/header_http.inc.php';
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>phpMyAdmin <?php echo $_SESSION['PMA_Config']->get('PMA_VERSION'); ?> setup</title>
+<link href="../favicon.ico" rel="icon" type="image/x-icon" />
+<link href="../favicon.ico" rel="shortcut icon" type="image/x-icon" />
+<link href="styles.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="../js/mootools.js"></script>
+<script type="text/javascript" src="scripts.js"></script>
+</head>
+<body>
+<h1><span class="blue">php</span><span class="orange">MyAdmin</span> <?php echo $_SESSION['PMA_Config']->get('PMA_VERSION'); ?> setup</h1>
+<div id="menu">
+<?php
+require './setup/frames/menu.inc.php';
+?>
+</div>
+<div id="page">
+<?php
+require "./setup/frames/$page.inc.php";
+?>
+</div>
+</body>
+</html>
diff --git a/setup/lib/ConfigFile.class.php b/setup/lib/ConfigFile.class.php
new file mode 100644
index 0000000000..a8a1c244b6
--- /dev/null
+++ b/setup/lib/ConfigFile.class.php
@@ -0,0 +1,314 @@
+<?php
+/**
+ * Config file management and generation class
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+class ConfigFile
+{
+ /**
+ * Stores default PMA config from config.default.php
+ * @var array
+ */
+ private $cfg;
+
+ /**
+ * Stores allowed values for non-standard fields
+ * @var array
+ */
+ private $cfgDb;
+
+ /**
+ * Keys which will be always written to config file
+ * @var array
+ */
+ private $persistKeys;
+
+ /**
+ * ConfigFile instance
+ * @var ConfigFile
+ */
+ private static $_instance;
+
+ /**
+ * Private constructor, use {@link getInstance()}
+ */
+ private function __construct()
+ {
+ // load default config values
+ $cfg = &$this->cfg;
+ require './libraries/config.default.php';
+
+ // load additionsl config information
+ $cfg_db = &$this->cfgDb;
+ $persist_keys = array();
+ require './setup/lib/config_info.inc.php';
+
+ // apply default values overrides
+ if (count($cfg_db['_overrides'])) {
+ foreach ($cfg_db['_overrides'] as $path => $value) {
+ array_write($path, $cfg, $value);
+ }
+ }
+
+ // checking key presence is much faster than searching so move values to keys
+ $this->persistKeys = array_flip($persist_keys);
+ }
+
+ /**
+ * Returns class instance
+ *
+ * @return ConfigFile
+ */
+ public static function getInstance()
+ {
+ if (is_null(self::$_instance)) {
+ self::$_instance = new ConfigFile();
+ }
+ return self::$_instance;
+ }
+
+ /**
+ * Sets config value
+ *
+ * @param string $path
+ * @param mixed $value
+ * @param string $canonical_path
+ */
+ public function set($path, $value, $canonical_path = null)
+ {
+ if ($canonical_path === null) {
+ $canonical_path = $this->getCanonicalPath($path);
+ }
+ // remove if the path isn't protected and it's empty or has a default value
+ $default_value = $this->getDefault($canonical_path);
+ if (!isset($this->persistKeys[$canonical_path])
+ && (($value == $default_value) || (empty($value) && empty($default_value)))) {
+ array_remove($path, $_SESSION['ConfigFile']);
+ } else {
+ array_write($path, $_SESSION['ConfigFile'], $value);
+ }
+ }
+
+ /**
+ * Returns config value or $default if it's not set
+ *
+ * @param string $path
+ * @param mixed $default
+ * @return mixed
+ */
+ public function get($path, $default = null)
+ {
+ return array_read($path, $_SESSION['ConfigFile'], $default);
+ }
+
+ /**
+ * Returns default config value or $default it it's not set ie. it doesn't
+ * exist in config.default.php ($cfg) and config_info.inc.php
+ * ($_cfg_db['_overrides'])
+ *
+ * @param string $canonical_path
+ * @param mixed $default
+ * @return mixed
+ */
+ public function getDefault($canonical_path, $default = null)
+ {
+ return array_read($canonical_path, $this->cfg, $default);
+ }
+
+ /**
+ * Returns config value, if it's not set uses the default one; returns
+ * $default if the path isn't set and doesn't contain a default value
+ *
+ * @param string $path
+ * @param mixed $default
+ * @return mixed
+ */
+ public function getValue($path, $default = null)
+ {
+ $v = array_read($path, $_SESSION['ConfigFile'], null);
+ if ($v !== null) {
+ return $v;
+ }
+ $path = $this->getCanonicalPath($path);
+ return $this->getDefault($path, $default);
+ }
+
+ /**
+ * Returns canonical path
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getCanonicalPath($path) {
+ return preg_replace('#^Servers/([\d]+)/#', 'Servers/1/', $path);
+ }
+
+ /**
+ * Returns config database entry for $path ($cfg_db in config_info.php)
+ *
+ * @param string $path
+ * @param mixed $default
+ * @return mixed
+ */
+ public function getDbEntry($path, $default = null)
+ {
+ return array_read($path, $this->cfgDb, $default);
+ }
+
+ /**
+ * Returns server count
+ *
+ * @return int
+ */
+ public function getServerCount()
+ {
+ return isset($_SESSION['ConfigFile']['Servers'])
+ ? count($_SESSION['ConfigFile']['Servers'])
+ : 0;
+ }
+
+ /**
+ * Returns DSN of given server
+ *
+ * @param integer $server
+ * @return string
+ */
+ function getServerDSN($server)
+ {
+ if (!isset($_SESSION['ConfigFile']['Servers'][$server])) {
+ return '';
+ }
+
+ $path = 'Servers/' . $server;
+ $dsn = $this->getValue("$path/extension") . '://';
+ if ($this->getValue("$path/auth_type") == 'config') {
+ $dsn .= $this->getValue("$path/user");
+ if (!$this->getValue("$path/nopassword")) {
+ $dsn .= ':***';
+ }
+ $dsn .= '@';
+ }
+ if ($this->getValue("$path/connect_type") == 'tcp') {
+ $dsn .= $this->getValue("$path/host");
+ $port = $this->getValue("$path/port");
+ if ($port) {
+ $dsn .= ':' . $port;
+ }
+ } else {
+ $dsn .= $this->getValue("$path/socket");
+ }
+ return $dsn;
+ }
+
+ /**
+ * Returns server name
+ *
+ * @param int $id
+ * @return string
+ */
+ public function getServerName($id)
+ {
+ if (!isset($_SESSION['ConfigFile']['Servers'][$id])) {
+ return '';
+ }
+ $verbose = $this->get("Servers/$id/verbose");
+ if (!empty($verbose)) {
+ return $verbose;
+ }
+ $host = $this->get("Servers/$id/host");
+ return empty($host) ? 'localhost' : $host;
+ }
+
+ /**
+ * Removes server
+ *
+ * @param int $server
+ */
+ public function removeServer($server)
+ {
+ if (!isset($_SESSION['ConfigFile']['Servers'][$server])) {
+ return;
+ }
+ $last_server = $this->getServerCount();
+
+ for ($i = $server; $i < $last_server; $i++) {
+ $_SESSION['ConfigFile']['Servers'][$i] = $_SESSION['ConfigFile']['Servers'][$i+1];
+ }
+ unset($_SESSION['ConfigFile']['Servers'][$last_server]);
+
+ if (isset($_SESSION['ConfigFile']['ServerDefault'])
+ && $_SESSION['ConfigFile']['ServerDefault'] >= 0) {
+ unset($_SESSION['ConfigFile']['ServerDefault']);
+ }
+ }
+
+ /**
+ * Returns config file path
+ *
+ * @return unknown
+ */
+ public function getFilePath()
+ {
+ return $this->getDbEntry('_config_file_path');
+ }
+
+ /**
+ * Creates config file
+ *
+ * @return string
+ */
+ public function getConfigFile()
+ {
+ $crlf = (isset($_SESSION['eol']) && $_SESSION['eol'] == 'win') ? "\r\n" : "\n";
+ $c = $_SESSION['ConfigFile'];
+
+ // header
+ $ret = '<?php' . $crlf
+ . '/*' . $crlf
+ . ' * Generated configuration file' . $crlf
+ . ' * Generated by: phpMyAdmin '
+ . $_SESSION['PMA_Config']->get('PMA_VERSION')
+ . ' setup script by Piotr Przybylski <piotrprz@gmail.com>' . $crlf
+ . ' * Date: ' . date(DATE_RFC1123) . $crlf
+ . ' */' . $crlf . $crlf;
+
+ // servers
+ if ($this->getServerCount() > 0) {
+ $ret .= "/* Servers configuration */$crlf\$i = 0;" . $crlf . $crlf;
+ foreach ($c['Servers'] as $id => $server) {
+ $ret .= '/* Server: ' . $this->getServerName($id) . " [$id] */" . $crlf
+ . '$i++;' . $crlf;
+ foreach ($server as $k => $v) {
+ $ret .= "\$cfg['Servers'][\$i]['$k'] = "
+ . var_export($v, true) . ';' . $crlf;
+ }
+ $ret .= $crlf;
+ }
+ $ret .= '/* End of servers configuration */' . $crlf . $crlf;
+ }
+ unset($c['Servers']);
+
+ // other settings
+ $persistKeys = $this->persistKeys;
+ foreach ($c as $k => $v) {
+ $ret .= "\$cfg['$k'] = " . var_export($v, true) . ';' . $crlf;
+ if (isset($persistKeys[$k])) {
+ unset($persistKeys[$k]);
+ }
+ }
+ // keep 1d array keys which are present in $persist_keys (config_info.inc.php)
+ foreach (array_keys($persistKeys) as $k) {
+ if (strpos($k, '/') === false) {
+ $ret .= "\$cfg['$k'] = " . var_export($this->getDefault($k), true) . ';' . $crlf;
+ }
+ }
+ $ret .= '?>';
+
+ return $ret;
+ }
+}
+?> \ No newline at end of file
diff --git a/setup/lib/Form.class.php b/setup/lib/Form.class.php
new file mode 100644
index 0000000000..95806e5847
--- /dev/null
+++ b/setup/lib/Form.class.php
@@ -0,0 +1,177 @@
+<?php
+/**
+ * Base class for forms, loads default configuration options, checks allowed
+ * values etc.
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+class Form
+{
+ /**
+ * Form name
+ * @var string
+ */
+ public $name;
+
+ /**
+ * Arbitrary index, doesn't affect class' behavior
+ * @var int
+ */
+ public $index;
+
+ /**
+ * Form fields (paths), filled by {@link readFormPaths()}, indexed by field name
+ * @var array
+ */
+ public $fields;
+
+ /**
+ * Stores default values for some fields (eg. pmadb tables)
+ * @var array
+ */
+ public $default;
+
+ /**
+ * Caches field types, indexed by field names
+ * @var array
+ */
+ private $fieldsTypes;
+
+ /**
+ * Cached forms
+ * @var array
+ */
+ private static $_forms;
+
+ /**
+ * Constructor, reads default config values
+ *
+ * @param string $form_name
+ * @param int $index arbitrary index, stored in Form::$index
+ */
+ public function __construct($form_name, $index = null)
+ {
+ $this->index = $index;
+ $this->loadForm($form_name);
+ }
+
+ /**
+ * Returns type of given option
+ *
+ * @param string $option_name path or field name
+ * @return string|null one of: boolean, integer, double, string, select, array
+ */
+ public function getOptionType($option_name)
+ {
+ $key = ltrim(substr($option_name, strrpos($option_name, '/')), '/');
+ return isset($this->fieldsTypes[$key])
+ ? $this->fieldsTypes[$key]
+ : null;
+ }
+
+ /**
+ * Returns allowed values for select fields
+ *
+ * @param string $option_path
+ * @return array
+ */
+ public function getOptionValueList($option_path)
+ {
+ $value = ConfigFile::getInstance()->getDbEntry($option_path);
+ if ($value === null) {
+ trigger_error("$option_path - select options not defined", E_USER_ERROR);
+ return array();
+ }
+ if (!is_array($value)) {
+ trigger_error("$option_path - not a static value list", E_USER_ERROR);
+ return array();
+ }
+ return $value;
+ }
+
+ /**
+ * array_walk callback function, reads path of form fields from
+ * array (see file comment in forms.inc.php)
+ *
+ * @param mixed $value
+ * @param mixed $key
+ * @param mixed $prefix
+ */
+ private function _readFormPathsCallback($value, $key, $prefix)
+ {
+ if (is_array($value)) {
+ $prefix .= (empty($prefix) ? '' : '/') . $key;
+ array_walk($value, array($this, '_readFormPathsCallback'), $prefix);
+ } else {
+ if (!is_int($key)) {
+ $this->default[$prefix . '/' . $key] = $value;
+ $value = $key;
+ }
+ $this->fields[] = $prefix . '/' . $value;
+ }
+ }
+
+ /**
+ * Reads form paths to {@link $fields}
+ */
+ protected function readFormPaths()
+ {
+ if (is_null(self::$_forms)) {
+ $forms =& self::$_forms;
+ require './setup/lib/forms.inc.php';
+ }
+
+ if (!isset(self::$_forms[$this->name])) {
+ return;
+ }
+
+ // flatten form fields' paths and save them to $fields
+ $this->fields = array();
+ array_walk(self::$_forms[$this->name], array($this, '_readFormPathsCallback'), '');
+
+ // $this->fields is an array of the form: [0..n] => 'field path'
+ // change numeric indexes to contain field names (last part of the path)
+ $paths = $this->fields;
+ $this->fields = array();
+ foreach ($paths as $path) {
+ $path = ltrim($path, '/');
+ $key = ltrim(substr($path, strrpos($path, '/')), '/');
+ $this->fields[$key] = $path;
+ }
+ // now $this->fields is an array of the form: 'field name' => 'field path'
+ }
+
+ /**
+ * Reads fields' types to $this->fieldsTypes
+ */
+ protected function readTypes()
+ {
+ $cf = ConfigFile::getInstance();
+ foreach ($this->fields as $name => $path) {
+ $v = $cf->getDbEntry($path);
+ if ($v !== null) {
+ $type = is_array($v) ? 'select' : $v;
+ } else {
+ $type = gettype($cf->getDefault($path));
+ }
+ $this->fieldsTypes[$name] = $type;
+ }
+ }
+
+ /**
+ * Reads form settings and prepares class to work with given subset of
+ * config file
+ *
+ * @param string $form_name
+ */
+ public function loadForm($form_name)
+ {
+ $this->name = $form_name;
+ $this->readFormPaths();
+ $this->readTypes();
+ }
+}
+?> \ No newline at end of file
diff --git a/setup/lib/FormDisplay.class.php b/setup/lib/FormDisplay.class.php
new file mode 100644
index 0000000000..120271b63b
--- /dev/null
+++ b/setup/lib/FormDisplay.class.php
@@ -0,0 +1,582 @@
+<?php
+/**
+ * Form management class, displays and processes forms
+ *
+ * Explanation of used terms:
+ * o work_path - original field path, eg. Servers/4/verbose
+ * o system_path - work_path modified so that it points to the first server, eg. Servers/1/verbose
+ * o translated_path - work_path modified for HTML field name, a path with
+ * slashes changed to hyphens, eg. Servers-4-verbose
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+require_once './setup/lib/FormDisplay.tpl.php';
+require_once './setup/lib/validate.lib.php';
+require_once './libraries/js_escape.lib.php';
+
+/**
+ * Form management class, displays and processes forms
+ */
+class FormDisplay
+{
+ /**
+ * Form list
+ * @var array
+ */
+ private $forms = array();
+
+ /**
+ * Stores validation errors, indexed by paths
+ * [ Form_name ] is an array of form errors
+ * [path] is a string storing error associated with single field
+ * @var array
+ */
+ private $errors = array();
+
+ /**
+ * Paths changed so that they can be used as HTML ids, indexed by paths
+ * @var array
+ */
+ private $translated_paths = array();
+
+ /**
+ * Server paths change indexes so we define maps from current server
+ * path to the first one, indexed by work path
+ * @var array
+ */
+ private $system_paths = array();
+
+ /**
+ * Language strings which will be sent to PMA_messages JS variable
+ * Will be looked up in $GLOBALS: str{value} or strSetup{value}
+ * @var array
+ */
+ private $js_lang_strings = array('error_nan_p', 'error_nan_nneg',
+ 'error_incorrect_port');
+
+ /**
+ * Tells whether forms have been validated
+ * @var bool
+ */
+ private $is_valdiated = true;
+
+ /**
+ * Registers form in form manager
+ *
+ * @param string $form_name
+ * @param int $server_id 0 if new server, validation; >= 1 if editing a server
+ */
+ public function registerForm($form_name, $server_id = null)
+ {
+ $this->forms[$form_name] = new Form($form_name, $server_id);
+ $this->is_valdiated = false;
+ foreach ($this->forms[$form_name]->fields as $path) {
+ $work_path = $server_id === null
+ ? $path
+ : str_replace('Servers/1/', "Servers/$server_id/", $path);
+ $this->system_paths[$work_path] = $path;
+ $this->translated_paths[$work_path] = str_replace('/', '-', $work_path);
+ }
+ }
+
+ /**
+ * Processes forms, returns true on successful save
+ *
+ * @param bool $allow_partial_save allows for partial form saving on failed validation
+ * @return boolean
+ */
+ public function process($allow_partial_save = true)
+ {
+ // gather list of forms to save
+ if (!isset($_POST['submit_save'])) {
+ return false;
+ }
+
+ // save forms
+ if (count($this->forms) > 0) {
+ return $this->save(array_keys($this->forms), $allow_partial_save);
+ }
+ return false;
+ }
+
+ /**
+ * Runs validation for all registered forms
+ */
+ private function _validate()
+ {
+ if ($this->is_valdiated) {
+ return;
+ }
+
+ $cf = ConfigFile::getInstance();
+ $paths = array();
+ $values = array();
+ foreach ($this->forms as $form) {
+ /* @var $form Form */
+ $paths[] = $form->name;
+ // collect values and paths
+ foreach ($form->fields as $path) {
+ $work_path = array_search($path, $this->system_paths);
+ $values[$path] = $cf->getValue($work_path);
+ $paths[] = $path;
+ }
+ }
+
+ // run validation
+ $errors = validate($paths, $values, false);
+
+ // change error keys from canonical paths to work paths
+ if (is_array($errors) && count($errors) > 0) {
+ $this->errors = array();
+ foreach ($errors as $path => $error_list) {
+ $work_path = array_search($path, $this->system_paths);
+ // field error
+ if (!$work_path) {
+ // form error, fix path
+ $work_path = $path;
+ }
+ $this->errors[$work_path] = $error_list;
+ }
+ }
+ $this->is_valdiated = true;
+ }
+
+
+ /**
+ * Outputs HTML for forms
+ *
+ * @param bool $tabbed_form
+ * @param bool $show_restore_default whether show "restore default" button besides the input field
+ */
+ public function display($tabbed_form = false, $show_restore_default = false)
+ {
+ static $js_lang_sent = false;
+
+ $js = array();
+ $js_default = array();
+ $tabbed_form = $tabbed_form && (count($this->forms) > 1);
+ $validators = ConfigFile::getInstance()->getDbEntry('_validators');
+
+ display_form_top();
+
+ if ($tabbed_form) {
+ $tabs = array();
+ foreach ($this->forms as $form) {
+ $tabs[$form->name] = PMA_lang("Form_$form->name");
+ }
+ display_tabs_top($tabs);
+ }
+
+ // valdiate only when we aren't displaying a "new server" form
+ $is_new_server = false;
+ foreach ($this->forms as $form) {
+ /* @var $form Form */
+ if ($form->index === 0) {
+ $is_new_server = true;
+ break;
+ }
+ }
+ if (!$is_new_server) {
+ $this->_validate();
+ }
+
+ // display forms
+ foreach ($this->forms as $form) {
+ /* @var $form Form */
+ $form_desc = isset($GLOBALS["strSetupForm_{$form->name}_desc"])
+ ? PMA_lang("Form_{$form->name}_desc")
+ : '';
+ $form_errors = isset($this->errors[$form->name])
+ ? $this->errors[$form->name] : null;
+ display_fieldset_top(PMA_lang("Form_$form->name"),
+ $form_desc, $form_errors, array('id' => $form->name));
+
+ foreach ($form->fields as $field => $path) {
+ $work_path = array_search($path, $this->system_paths);
+ $translated_path = $this->translated_paths[$work_path];
+ // display input
+ $this->_displayFieldInput($form, $field, $path, $work_path,
+ $translated_path, $show_restore_default, $js_default);
+ // register JS validators for this field
+ if (isset($validators[$path])) {
+ js_validate($translated_path, $validators[$path], $js);
+ }
+ }
+ display_fieldset_bottom();
+ }
+
+ if ($tabbed_form) {
+ display_tabs_bottom();
+ }
+ display_form_bottom();
+
+ // if not already done, send strings used for valdiation to JavaScript
+ if (!$js_lang_sent) {
+ $js_lang_sent = true;
+ $js_lang = array();
+ foreach ($this->js_lang_strings as $str) {
+ $lang = isset($GLOBALS["strSetup$str"])
+ ? $GLOBALS["strSetup$str"]
+ : filter_input($GLOBALS["str$str"]); // null if not set
+ $js_lang[] = "'$str': '" . PMA_jsFormat($lang, false) . '\'';
+ }
+ $js[] = '$extend(PMA_messages, {' . implode(",\n\t", $js_lang) . '})';
+ }
+
+ $js[] = '$extend(defaultValues, {' . implode(",\n\t", $js_default) . '})';
+ display_js($js);
+ }
+
+ /**
+ * Prepares data for input field display and outputs HTML code
+ *
+ * @param Form $form
+ * @param string $field field name as it appears in $form
+ * @param string $system_path field path, eg. Servers/1/verbose
+ * @param string $work_path work path, eg. Servers/4/verbose
+ * @param string $translated_path work path changed so that it can be used as XHTML id
+ * @param bool $show_restore_default whether show "restore default" button besides the input field
+ * @param array &$js_default array which stores JavaScript code to be displayed
+ */
+ private function _displayFieldInput(Form $form, $field, $system_path, $work_path,
+ $translated_path, $show_restore_default, array &$js_default)
+ {
+ $name = PMA_lang_name($system_path);
+ $description = PMA_lang_desc($system_path);
+
+ $cf = ConfigFile::getInstance();
+ $value = $cf->get($work_path);
+ $value_default = $cf->getDefault($system_path);
+ $value_is_default = false;
+ if ($value === null || $value === $value_default) {
+ $value = $value_default;
+ $value_is_default = true;
+ }
+
+ $opts = array(
+ 'doc' => $this->getDocLink($system_path),
+ 'wiki' => $this->getWikiLink($system_path),
+ 'show_restore_default' => $show_restore_default);
+ if (isset($form->default[$system_path])) {
+ $opts['setvalue'] = $form->default[$system_path];
+ }
+
+ if (isset($this->errors[$work_path])) {
+ $opts['errors'] = $this->errors[$work_path];
+ }
+ switch ($form->getOptionType($field)) {
+ case 'string':
+ $type = 'text';
+ break;
+ case 'double':
+ $type = 'text';
+ break;
+ case 'integer':
+ $type = 'text';
+ break;
+ case 'boolean':
+ $type = 'checkbox';
+ break;
+ case 'select':
+ $type = 'select';
+ $opts['values'] = array();
+ $values = $form->getOptionValueList($form->fields[$field]);
+ foreach ($values as $v) {
+ $opts['values'][$v] = $v;
+ }
+ break;
+ case 'array':
+ $type = 'list';
+ $value = (array) $value;
+ $value_default = (array) $value_default;
+ break;
+ case 'NULL':
+ trigger_error("Field $system_path has no type", E_USER_WARNING);
+ return;
+ }
+
+ // TrustedProxies requires changes before displaying
+ if ($system_path == 'TrustedProxies') {
+ foreach ($value as $ip => &$v) {
+ if (!preg_match('/^-\d+$/', $ip)) {
+ $v = $ip . ': ' . $v;
+ }
+ }
+ }
+
+ // send default value to form's JS
+ $js_line = '\'' . $translated_path . '\': ';
+ switch ($type) {
+ case 'text':
+ $js_line .= '\'' . PMA_escapeJsString($value_default) . '\'';
+ break;
+ case 'checkbox':
+ $js_line .= $value_default ? 'true' : 'false';
+ break;
+ case 'select':
+ $value_default_js = is_bool($value_default)
+ ? (int) $value_default
+ : $value_default;
+ $js_line .= '[\'' . PMA_escapeJsString($value_default_js) . '\']';
+ break;
+ case 'list':
+ $js_line .= '\'' . PMA_escapeJsString(implode("\n", $value_default)) . '\'';
+ break;
+ }
+ $js_default[] = $js_line;
+
+ display_input($translated_path, $name, $description, $type,
+ $value, $value_is_default, $opts);
+ }
+
+ /**
+ * Displays errors
+ */
+ public function displayErrors()
+ {
+ $this->_validate();
+ if (count($this->errors) == 0) {
+ return;
+ }
+
+ foreach ($this->errors as $system_path => $error_list) {
+ if (isset($this->system_paths[$system_path])) {
+ $path = $this->system_paths[$system_path];
+ $name = PMA_lang_name($path);
+ } else {
+ $name = $GLOBALS["strSetupForm_$system_path"];
+ }
+ display_errors($name, $error_list);
+ }
+ }
+
+ /**
+ * Reverts erroneous fields to their default values
+ */
+ public function fixErrors()
+ {
+ $this->_validate();
+ if (count($this->errors) == 0) {
+ return;
+ }
+
+ $cf = ConfigFile::getInstance();
+ foreach (array_keys($this->errors) as $work_path) {
+ if (!isset($this->system_paths[$work_path])) {
+ continue;
+ }
+ $canonical_path = $this->system_paths[$work_path];
+ $cf->set($work_path, $cf->getDefault($canonical_path));
+ }
+ }
+
+ /**
+ * Validates select field and casts $value to correct type
+ *
+ * @param string $value
+ * @param array $allowed
+ * @return bool
+ */
+ private function _validateSelect(&$value, array $allowed)
+ {
+ foreach ($allowed as $v) {
+ if ($value == $v) {
+ settype($value, gettype($v));
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Validates and saves form data to session
+ *
+ * @param array|string $forms array of form names
+ * @param bool $allow_partial_save allows for partial form saving on failed validation
+ * @return boolean true on success (no errors and all saved)
+ */
+ public function save($forms, $allow_partial_save = true)
+ {
+ $result = true;
+ $cf = ConfigFile::getInstance();
+ $forms = (array) $forms;
+
+ $values = array();
+ $to_save = array();
+ $this->errors = array();
+ foreach ($forms as $form) {
+ /* @var $form Form */
+ if (isset($this->forms[$form])) {
+ $form = $this->forms[$form];
+ } else {
+ continue;
+ }
+ // get current server id
+ $change_index = $form->index === 0
+ ? $cf->getServerCount() + 1
+ : false;
+ // grab POST values
+ foreach ($form->fields as $field => $system_path) {
+ $work_path = array_search($system_path, $this->system_paths);
+ $key = $this->translated_paths[$work_path];
+
+ // ensure the value is set
+ if (!isset($_POST[$key])) {
+ // checkboxes aren't set by browsers if they're off
+ if ($form->getOptionType($field) == 'boolean') {
+ $_POST[$key] = false;
+ } else {
+ $this->errors[$form->name][] = PMA_lang(
+ 'error_missing_field_data',
+ '<i>' . PMA_lang_name($system_path) . '</i>');
+ $result = false;
+ continue;
+ }
+ }
+
+ // cast variables to correct type
+ $type = $form->getOptionType($field);
+ switch ($type) {
+ case 'double':
+ settype($_POST[$key], 'float');
+ break;
+ case 'boolean':
+ case 'integer':
+ if ($_POST[$key] !== '') {
+ settype($_POST[$key], $type);
+ }
+ break;
+ case 'select':
+ if (!$this->_validateSelect($_POST[$key], $form->getOptionValueList($system_path))) {
+ $this->errors[$work_path][] = $GLOBALS["strstrSetuperror_incorrect_value"];
+ $result = false;
+ continue;
+ }
+ break;
+ case 'string':
+ $_POST[$key] = trim($_POST[$key]);
+ break;
+ case 'array':
+ // eliminate empty values and ensure we have an array
+ $post_values = explode("\n", $_POST[$key]);
+ $_POST[$key] = array();
+ foreach ($post_values as $v) {
+ $v = trim($v);
+ if ($v !== '') {
+ $_POST[$key][] = $v;
+ }
+ }
+ break;
+ }
+
+ // now we have value with proper type
+ $values[$system_path] = $_POST[$key];
+ if ($change_index !== false) {
+ $work_path = str_replace("Servers/$form->index/",
+ "Servers/$change_index/", $work_path);
+ }
+ $to_save[$work_path] = $system_path;
+ }
+ }
+
+ // save forms
+ if ($allow_partial_save || empty($this->errors)) {
+ foreach ($to_save as $work_path => $path) {
+ // TrustedProxies requires changes before saving
+ if ($path == 'TrustedProxies') {
+ $proxies = array();
+ $i = 0;
+ foreach ($values[$path] as $value) {
+ $matches = array();
+ if (preg_match("/^(.+):(?:[ ]?)(\\w+)$/", $value, $matches)) {
+ // correct 'IP: HTTP header' pair
+ $ip = trim($matches[1]);
+ $proxies[$ip] = trim($matches[2]);
+ } else {
+ // save also incorrect values
+ $proxies["-$i"] = $value;
+ $i++;
+ }
+ }
+ $values[$path] = $proxies;
+ }
+ $cf->set($work_path, $values[$path], $path);
+ }
+ }
+
+ // don't look for non-critical errors
+ $this->_validate();
+
+ return $result;
+ }
+
+ /**
+ * Tells whether form validation failed
+ *
+ * @return boolean
+ */
+ public function hasErrors()
+ {
+ return count($this->errors) > 0;
+ }
+
+
+ /**
+ * Returns link to documentation
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getDocLink($path)
+ {
+ $test = substr($path, 0, 6);
+ if ($test == 'Import' || $test == 'Export') {
+ return '';
+ }
+ return '../Documentation.html#cfg_' . self::_getOptName($path);
+ }
+
+ /**
+ * Returns link to wiki
+ *
+ * @param string $path
+ * @return string
+ */
+ public function getWikiLink($path)
+ {
+ $opt_name = self::_getOptName($path);
+ if (substr($opt_name, 0, 7) == 'Servers') {
+ $opt_name = substr($opt_name, 8);
+ if (strpos($opt_name, 'AllowDeny') === 0) {
+ $opt_name = str_replace('_', '_.28', $opt_name) . '.29';
+ }
+ }
+ $test = substr($path, 0, 6);
+ if ($test == 'Import') {
+ $opt_name = substr($opt_name, 7);
+ if ($opt_name == 'format') {
+ $opt_name = 'format_2';
+ }
+ }
+ if ($test == 'Export') {
+ $opt_name = substr($opt_name, 7);
+ }
+ return 'http://wiki.cihar.com/pma/Config#' . $opt_name;
+ }
+
+ /**
+ * Changes path so it can be used in URLs
+ *
+ * @param string $path
+ * @return string
+ */
+ private static function _getOptName($path)
+ {
+ return str_replace(array('Servers/1/', '/'), array('Servers/', '_'), $path);
+ }
+}
+?> \ No newline at end of file
diff --git a/setup/lib/FormDisplay.tpl.php b/setup/lib/FormDisplay.tpl.php
new file mode 100644
index 0000000000..25526cb25c
--- /dev/null
+++ b/setup/lib/FormDisplay.tpl.php
@@ -0,0 +1,294 @@
+<?php
+/**
+ * Form templates
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+/**
+ * Displays top part of the form
+ *
+ * @param string $action default: $_SERVER['REQUEST_URI']
+ * @param string $method 'post' or 'get'
+ * @param array $hidden_fields array of form hidden fields (key: field name)
+ */
+function display_form_top($action = null, $method = 'post', $hidden_fields = null)
+{
+ static $has_check_page_refresh = false;
+
+ if ($action === null) {
+ $action = $_SERVER['REQUEST_URI'];
+ }
+ if ($method != 'post') {
+ $method = 'get';
+ }
+?>
+<form method="<?php echo $method ?>" action="<?php echo htmlspecialchars($action) ?>">
+<?php
+ // we do validation on page refresh when browser remembers field values,
+ // add a field with known value which will be used for checks
+ if (!$has_check_page_refresh) {
+ $has_check_page_refresh = true;
+ echo '<input type="hidden" name="check_page_refresh" id="check_page_refresh"'
+ . ' value="" />' . "\n";
+ }
+ echo PMA_generate_common_hidden_inputs() . "\n";
+ echo PMA_getHiddenFields((array)$hidden_fields);
+}
+
+/**
+ * Displays form tabs which are given by an array indexed by fieldset id
+ * ({@link display_fieldset_top}), with values being tab titles.
+ *
+ * @param array $tabs
+ */
+function display_tabs_top($tabs) {
+?>
+<ul class="tabs">
+<?php foreach ($tabs as $tab_id => $tab_name): ?>
+ <li><a href="#<?php echo $tab_id ?>"><?php echo $tab_name ?></a></li>
+<?php endforeach; ?>
+</ul>
+<br clear="right" />
+<div class="tabs_contents">
+<?php
+}
+
+
+/**
+ * Displays top part of a fieldset
+ *
+ * @param string $title
+ * @param string $description
+ * @param array $errors
+ * @param array $attributes
+ */
+function display_fieldset_top($title = '', $description = '', $errors = null, $attributes = array())
+{
+ $attributes = array_merge(array('class' => 'optbox'), $attributes);
+ foreach ($attributes as $k => &$attr) {
+ $attr = $k . '="' . htmlspecialchars($attr) . '"';
+ }
+
+ echo '<fieldset ' . implode(' ', $attributes) . '>';
+ echo '<legend>' . $title . '</legend>';
+ if (!empty($description)) {
+ echo '<p>' . $description . '</p>';
+ }
+ // this must match with displayErrors() in scripts.js
+ if (is_array($errors) && count($errors) > 0) {
+ echo '<dl class="errors">';
+ foreach ($errors as $error) {
+ echo '<dd>' . $error . '</dd>';
+ }
+ echo '</dl>';
+ }
+?>
+<table width="100%" cellspacing="0">
+<?php
+}
+
+/**
+ * Displays input field
+ *
+ * $opts keys:
+ * o doc - (string) documentation link
+ * o errors - error array
+ * o setvalue - (string) shows button allowing to set poredefined value
+ * o show_restore_default - (boolean) whether show "restore default" button
+ * o values - key - value paris for <select> fields
+ * o values_escaped - (boolean) tells whether values array is already escaped (defaults to false)
+ * o values_disabled - (array)list of disabled values (keys from values)
+ * o wiki - (string) wiki link
+ *
+ * @param string $path
+ * @param string $name
+ * @param string $description
+ * @param string $type
+ * @param mixed $value
+ * @param bool $value_is_default
+ * @param array $opts
+ */
+function display_input($path, $name, $description = '', $type, $value, $value_is_default = true, $opts = null)
+{
+ $field_class = $value_is_default ? '' : ' class="custom"';
+ $name_id = 'name="' . $path . '" id="' . $path . '"';
+?>
+<tr>
+ <th>
+ <label for="<?php echo htmlspecialchars($path) ?>"><?php echo $name ?></label>
+ <?php if (!empty($opts['doc']) || !empty($opts['wiki'])): ?>
+ <span class="doc">
+ <?php if (!empty($opts['doc'])) { ?><a href="<?php echo $opts['doc'] ?>"><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_help.png" width="11" height="11" alt="Doc" title="<?php echo $GLOBALS['strDocu'] ?>" /></a><?php } ?>
+ <?php if (!empty($opts['wiki'])){ ?><a href="<?php echo $opts['wiki'] ?>"><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_info.png" width="11" height="11" alt="Wiki" title="Wiki" /></a><?php } ?>
+ </span>
+ <?php endif; ?>
+ <?php if (!empty($description)) { ?><small><?php echo $description ?></small><?php } ?>
+
+ </th>
+ <td>
+ <?php
+ switch ($type) {
+ case 'text':
+ echo '<input type="text" size="50" ' . $name_id . $field_class
+ . ' value="' . htmlspecialchars($value) . '" />';
+ break;
+ case 'checkbox':
+ echo '<span class="checkbox' . ($value_is_default ? '' : ' custom')
+ . '"><input type="checkbox" ' . $name_id
+ . ($value ? ' checked="checked"' : '') . ' /></span>';
+ break;
+ case 'select':
+ echo '<select ' . $name_id . $field_class . '>';
+ $escape = !(isset($opts['values_escaped']) && $opts['values_escaped']);
+ $values_disabled = isset($opts['values_disabled'])
+ ? array_flip($opts['values_disabled']) : array();
+ foreach ($opts['values'] as $opt_value => $opt_name) {
+ // set names for boolean values
+ if (is_bool($opt_name)) {
+ $opt_name = $GLOBALS['strSetup' . ($opt_value ? 'True' : 'False')];
+ }
+ // cast boolean values to integers
+ $display_value = is_bool($opt_value) ? (int) $opt_value : $opt_value;
+ // escape if necessary
+ if ($escape) {
+ $display = htmlspecialchars($opt_name);
+ $display_value = htmlspecialchars($display_value);
+ } else {
+ $display = $opt_name;
+ }
+ // compare with selected value
+ // boolean values are cast to integers when used as array keys
+ $selected = is_bool($value)
+ ? (int) $value === $opt_value
+ : $opt_value === $value;
+ echo '<option value="' . $display_value . '"'
+ . ($selected ? ' selected="selected"' : '')
+ . (isset($values_disabled[$opt_value]) ? ' disabled="disabled"' : '')
+ . '>' . $display . '</option>';
+ }
+ echo '</select>';
+ break;
+ case 'list':
+ echo '<textarea cols="40" rows="5" ' . $name_id . $field_class . '>'
+ . htmlspecialchars(implode("\n", $value))
+ . '</textarea>';
+ break;
+ }
+ if (isset($opts['setvalue']) && $opts['setvalue']) {
+ ?>
+ <a class="set-value" href="#<?php echo "$path={$opts['setvalue']}" ?>" title="<?php echo sprintf($GLOBALS['strSetupSetValue'], htmlspecialchars($opts['setvalue'])) ?>" style="display:none"><img alt="set-value" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/b_edit.png" width="16" height="16" /></a>
+ <?php
+ }
+ if (isset($opts['show_restore_default']) && $opts['show_restore_default']) {
+ ?>
+ <a class="restore-default" href="#<?php echo $path ?>" title="<?php echo $GLOBALS['strSetupRestoreDefaultValue'] ?>" style="display:none"><img alt="restore-default" src="../<?php echo $GLOBALS['cfg']['ThemePath'] ?>/original/img/s_reload.png" width="16" height="16" /></a>
+ <?php
+ }
+ // this must match with displayErrors() in scripts.js
+ if (isset($opts['errors']) && !empty($opts['errors'])) {
+ echo "\n <dl class=\"inline_errors\">";
+ foreach ($opts['errors'] as $error) {
+ echo '<dd>' . htmlspecialchars($error) . '</dd>';
+ }
+ echo '</dl>';
+ }
+ ?>
+
+ </td>
+</tr>
+<?php
+}
+
+/**
+ * Displays bottom part of a fieldset
+ *
+ * @param array $js_array
+ */
+function display_fieldset_bottom()
+{
+?>
+<tr>
+ <td colspan="2" class="lastrow">
+ <input type="submit" name="submit_save" value="<?php echo $GLOBALS['strSave'] ?>" class="green" />
+ <input type="button" name="submit_reset" value="<?php echo $GLOBALS['strReset'] ?>" />
+ </td>
+</tr>
+</table>
+</fieldset>
+
+<?php
+}
+
+/**
+ * Displays simple bottom part of a fieldset (without submit buttons)
+ */
+function display_fieldset_bottom_simple()
+{
+?>
+</table>
+</fieldset>
+
+<?php
+}
+
+/**
+ * Closes form tabs
+ */
+function display_tabs_bottom() {
+ echo "</div>\n";
+}
+
+/**
+ * Displays bottom part of the form
+ */
+function display_form_bottom()
+{
+ echo "</form>\n";
+}
+
+/**
+ * Appends JS validation code to $js_array
+ *
+ * @param string $field_id
+ * @param string $validator
+ * @param array $js_array
+ */
+function js_validate($field_id, $validator, &$js_array) {
+ $js_array[] = "validateField('$field_id', '$validator', true)";
+}
+
+/**
+ * Displays JavaScript code
+ *
+ * @param array $js_array
+ */
+function display_js($js_array) {
+ if (empty($js_array)) {
+ return;
+ }
+?>
+<script type="text/javascript">
+<?php echo implode(";\n", $js_array) . ";\n" ?>
+</script>
+<?php
+}
+
+/**
+ * Displays error list
+ *
+ * @param string $name
+ * @param array $error_list
+ */
+function display_errors($name, $error_list) {
+ echo '<dl>';
+ echo '<dt>' . htmlspecialchars($name) . '</dt>';
+ foreach ($error_list as $error) {
+ echo '<dd>' . htmlspecialchars($error) . '</dd>';
+ }
+ echo '</dl>';
+}
+?> \ No newline at end of file
diff --git a/setup/lib/common.inc.php b/setup/lib/common.inc.php
new file mode 100644
index 0000000000..654f61195b
--- /dev/null
+++ b/setup/lib/common.inc.php
@@ -0,0 +1,228 @@
+<?php
+/**
+ * Loads libraries/common.inc.php and preforms some additional actions
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+// TODO: remove
+error_reporting(E_ALL | E_STRICT);
+
+define('PMA_MINIMUM_COMMON', TRUE);
+define('PMA_SETUP', TRUE);
+chdir('..');
+
+require_once './libraries/common.inc.php';
+require_once './libraries/url_generating.lib.php';
+require_once './setup/lib/ConfigFile.class.php';
+
+// TODO: remove
+restore_error_handler();
+if ($error_handler->countErrors() > 0) {
+ $error_handler->dispAllErrors();
+}
+
+// Save current language in a cookie, required since we use PMA_MINIMUM_COMMON
+PMA_setCookie('pma_lang', $GLOBALS['lang']);
+
+if (!isset($_SESSION['ConfigFile'])) {
+ $_SESSION['ConfigFile'] = array();
+}
+
+// allows for redirection even after sending some data
+ob_start();
+
+/**
+ * Returns value of an element in $array given by $path.
+ * $path is a string describing position of an element in an associative array,
+ * eg. Servers/1/host refers to $array[Servers][1][host]
+ *
+ * @param string $path
+ * @param array $array
+ * @param mixed $default
+ * @return mixed array element or $default
+ */
+function array_read($path, $array, $default = null)
+{
+ $keys = explode('/', $path);
+ $value =& $array;
+ foreach ($keys as $key) {
+ if (!isset($value[$key])) {
+ return $default;
+ }
+ $value =& $value[$key];
+ }
+ return $value;
+}
+
+/**
+ * Stores value in an array
+ *
+ * @param string $path
+ * @param array &$array
+ * @param mixed $value
+ */
+function array_write($path, &$array, $value)
+{
+ $keys = explode('/', $path);
+ $last_key = array_pop($keys);
+ $a =& $array;
+ foreach ($keys as $key) {
+ if (!isset($a[$key])) {
+ $a[$key] = array();
+ }
+ $a =& $a[$key];
+ }
+ $a[$last_key] = $value;
+}
+
+/**
+ * Removes value from an array
+ *
+ * @param string $path
+ * @param array &$array
+ * @param mixed $value
+ */
+function array_remove($path, &$array)
+{
+ $keys = explode('/', $path);
+ $keys_last = array_pop($keys);
+ $path = array();
+ $depth = 0;
+
+ $path[0] =& $array;
+ $found = true;
+ // go as deep as required or possible
+ foreach ($keys as $key) {
+ if (!isset($path[$depth][$key])) {
+ $found = false;
+ break;
+ }
+ $depth++;
+ $path[$depth] =& $path[$depth-1][$key];
+ }
+ // if element found, remove it
+ if ($found) {
+ unset($path[$depth][$keys_last]);
+ $depth--;
+ }
+
+ // remove empty nested arrays
+ for (; $depth >= 0; $depth--) {
+ if (!isset($path[$depth+1]) || count($path[$depth+1]) == 0) {
+ unset($path[$depth][$keys[$depth]]);
+ } else {
+ break;
+ }
+ }
+}
+
+/**
+ * Returns sanitized language string, taking into account our special codes
+ * for formatting. Takes variable number of arguments.
+ * Based on PMA_sanitize from sanitize.lib.php.
+ *
+ * @param string $lang_key key in $GLOBALS WITHOUT 'strSetup' prefix
+ * @param mixed $args arguments for sprintf
+ * @return string
+ */
+function PMA_lang($lang_key)
+{
+ static $search, $replace;
+
+ // some quick cache'ing
+ if ($search === null) {
+ $replace_pairs = array(
+ '<' => '&lt;',
+ '>' => '&gt;',
+ '[em]' => '<em>',
+ '[/em]' => '</em>',
+ '[strong]' => '<strong>',
+ '[/strong]' => '</strong>',
+ '[code]' => '<code>',
+ '[/code]' => '</code>',
+ '[kbd]' => '<kbd>',
+ '[/kbd]' => '</kbd>',
+ '[br]' => '<br />',
+ '[sup]' => '<sup>',
+ '[/sup]' => '</sup>');
+ $search = array_keys($replace_pairs);
+ $replace = array_values($replace_pairs);
+ }
+ if (!isset($GLOBALS["strSetup$lang_key"])) {
+ return $lang_key;
+ }
+ $message = str_replace($search, $replace, $GLOBALS["strSetup$lang_key"]);
+ // replace [a@"$1"]$2[/a] with <a href="$1">$2</a>
+ $message = preg_replace('#\[a@("?)([^\]]+)\1\]([^\[]+)\[/a\]#e',
+ "PMA_lang_link_replace('$2', '$3')", $message);
+
+ if (func_num_args() == 1) {
+ return $message;
+ } else {
+ $args = func_get_args();
+ array_shift($args);
+ return vsprintf($message, $args);
+ }
+}
+
+/**
+ * Returns translated field name
+ *
+ * @param string $canonical_path
+ * @return string
+ */
+function PMA_lang_name($canonical_path)
+{
+ $lang_key = str_replace(
+ array('Servers/1/', '/'),
+ array('Servers/', '_'),
+ $canonical_path) . '_name';
+ return isset($GLOBALS["strSetup$lang_key"])
+ ? $GLOBALS["strSetup$lang_key"]
+ : $lang_key;
+}
+
+/**
+ * Returns translated field description
+ *
+ * @param string $canonical_path
+ * @return string
+ */
+function PMA_lang_desc($canonical_path)
+{
+ $lang_key = str_replace(
+ array('Servers/1/', '/'),
+ array('Servers/', '_'),
+ $canonical_path) . '_desc';
+ return isset($GLOBALS["strSetup$lang_key"])
+ ? PMA_lang($lang_key)
+ : '';
+}
+
+/**
+ * Wraps link in <a> tags and replaces argument separator in internal links
+ * to the one returned by PMA_get_arg_separator()
+ *
+ * @param string $link
+ * @param string $text
+ * @return string
+ */
+function PMA_lang_link_replace($link, $text)
+{
+ static $separator;
+
+ if (!isset($separator)) {
+ $separator = PMA_get_arg_separator('html');
+ }
+
+ if (!preg_match('#^http://#', $link)) {
+ $link = str_replace('&amp;', $separator, $link);
+ }
+
+ return '<a href="' . $link . '">' . $text . '</a>';
+}
+?> \ No newline at end of file
diff --git a/setup/lib/config_info.inc.php b/setup/lib/config_info.inc.php
new file mode 100644
index 0000000000..9da7c127ce
--- /dev/null
+++ b/setup/lib/config_info.inc.php
@@ -0,0 +1,141 @@
+<?php
+/**
+ * Description of options with non-standard values, list of persistent options
+ * and validator assignments.
+ *
+ * By default data types are taken from config.default.php, here we define
+ * only allowed values for select fields and type overrides.
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+$cfg_db = array();
+
+// path to config file, relative to phpMyAdmin's root path
+$cfg_db['_config_file_path'] = './config/config.inc.php';
+
+/**
+ * Value meaning:
+ * o array - select field, array contains allowed values
+ * o string - type override
+ *
+ * Use normal array, paths won't be expanded
+ */
+$cfg_db['Servers'] = array(1 => array(
+ 'port' => 'integer',
+ 'connect_type' => array('tcp', 'socket'),
+ 'extension' => array('mysql', 'mysqli'),
+ 'auth_type' => array('config', 'http', 'signon', 'cookie'),
+ 'AllowDeny' => array(
+ 'order' => array('', 'deny,allow', 'allow,deny', 'explicit')),
+ 'only_db' => 'array'));
+$cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode');
+$cfg_db['DefaultCharset'] = $GLOBALS['cfg']['AvailableCharsets'];
+$cfg_db['OBGzip'] = array('auto', true, false);
+$cfg_db['ShowTooltipAliasTB'] = array('nested', true, false);
+$cfg_db['DisplayDatabasesList'] = array('auto', true, false);
+$cfg_db['LeftLogoLinkWindow'] = array('main', 'new');
+$cfg_db['LeftDefaultTabTable'] = array(
+ 'tbl_structure.php', // fields list
+ 'tbl_sql.php', // SQL form
+ 'tbl_select.php', // search page
+ 'tbl_change.php', // insert row page
+ 'sql.php'); // browse page
+$cfg_db['NavigationBarIconic'] = array(true, false, 'both');
+$cfg_db['Order'] = array('ASC', 'DESC', 'SMART');
+$cfg_db['ProtectBinary'] = array(false, 'blob', 'all');
+$cfg_db['CharEditing'] = array('input', 'textarea');
+$cfg_db['PropertiesIconic'] = array(true, false, 'both');
+$cfg_db['DefaultTabServer'] = array(
+ 'main.php', // the welcome page (recommended for multiuser setups)
+ 'server_databases.php', // list of databases
+ 'server_status.php', // runtime information
+ 'server_variables.php', // MySQL server variables
+ 'server_privileges.php', // user management
+ 'server_processlist.php'); // process list
+$cfg_db['DefaultTabDatabase'] = array(
+ 'db_structure.php', // tables list
+ 'db_sql.php', // SQL form
+ 'db_search.php', // search query
+ 'db_operations.php'); // operations on database
+$cfg_db['DefaultTabTable'] = array(
+ 'tbl_structure.php', // fields list
+ 'tbl_sql.php', // SQL form
+ 'tbl_select.php', // search page
+ 'tbl_change.php', // insert row page
+ 'sql.php'); // browse page
+$cfg_db['QueryWindowDefTab'] = array(
+ 'sql', // SQL
+ 'files', // Import files
+ 'history', // SQL history
+ 'full'); // All (SQL and SQL history)
+$cfg_db['Import']['format'] = array(
+ 'csv', // CSV
+ 'docsql', // DocSQL
+ 'ldi', // CSV using LOAD DATA
+ 'sql'); // SQL
+$cfg_db['Import']['sql_compatibility'] = array(
+ 'NONE', 'ANSI', 'DB2', 'MAXDB', 'MYSQL323', 'MYSQL40', 'MSSQL', 'ORACLE',
+ // removed; in MySQL 5.0.33, this produces exports that
+ // can't be read by POSTGRESQL (see our bug #1596328)
+ //'POSTGRESQL',
+ 'TRADITIONAL');
+$cfg_db['Import']['ldi_local_option'] = array('auto', true, false);
+$cfg_db['Export']['format'] = array('codegen', 'csv', 'excel', 'htmlexcel',
+ 'htmlword', 'latex', 'ods', 'odt', 'pdf', 'sql', 'texytext', 'xls', 'xml',
+ 'yaml');
+$cfg_db['Export']['compression'] = array('none', 'zip', 'gzip', 'bzip2');
+$cfg_db['Export']['charset'] = array_merge(array(''), $GLOBALS['cfg']['AvailableCharsets']);
+
+/**
+ * Config options which will be placed in config file even if they are set
+ * to their default values (use only full paths)
+ */
+$persist_keys = array(
+ 'DefaultLang',
+ 'ServerDefault',
+ 'UploadDir',
+ 'SaveDir',
+ 'Servers/1/verbose',
+ 'Servers/1/host',
+ 'Servers/1/port',
+ 'Servers/1/socket',
+ 'Servers/1/extension',
+ 'Servers/1/connect_type',
+ 'Servers/1/auth_type',
+ 'Servers/1/user',
+ 'Servers/1/password');
+
+/**
+ * Default values overrides
+ * Use only full paths
+ */
+$cfg_db['_overrides'] = array();
+$cfg_db['_overrides']['Servers/1/extension'] = extension_loaded('mysqli')
+ ? 'mysqli' : 'mysql';
+
+/**
+ * Validator assignments (functions from validate.lib.php and 'validators'
+ * object in scripts.js)
+ * Use only full paths and form ids
+ */
+$cfg_db['_validators'] = array(
+ 'Server' => 'validate_server',
+ 'Server_pmadb' => 'validate_pmadb',
+ 'Servers/1/port' => 'validate_port_number',
+ 'Servers/1/hide_db' => 'validate_regex',
+ 'TrustedProxies' => 'validate_trusted_proxies',
+ 'LoginCookieValidity' => 'validate_positive_number',
+ 'LoginCookieStore' => 'validate_non_negative_number',
+ 'QueryHistoryMax' => 'validate_positive_number',
+ 'LeftFrameTableLevel' => 'validate_positive_number',
+ 'MaxRows' => 'validate_positive_number',
+ 'CharTextareaCols' => 'validate_positive_number',
+ 'CharTextareaRows' => 'validate_positive_number',
+ 'InsertRows' => 'validate_positive_number',
+ 'ForeignKeyMaxLimit' => 'validate_positive_number',
+ 'Import/skip_queries' => 'validate_non_negative_number');
+?> \ No newline at end of file
diff --git a/setup/lib/form_processing.lib.php b/setup/lib/form_processing.lib.php
new file mode 100644
index 0000000000..b3105812a0
--- /dev/null
+++ b/setup/lib/form_processing.lib.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Formset processing library
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+/**
+ * Processes forms registered in $form_display, handles error correction
+ *
+ * @param FormDisplay $form_display
+ */
+function process_formset(FormDisplay $form_display) {
+ if (filter_input(INPUT_GET, 'mode') == 'revert') {
+ // revert erroneous fields to their default values
+ $form_display->fixErrors();
+ // drop post data
+ header('HTTP/1.1 303 See Other');
+ header('Location: index.php');
+ exit;
+ }
+ if (!$form_display->process(false)) {
+ // handle form view and failed POST
+ $form_display->display(true, true);
+ } else {
+ // check for form errors
+ if ($form_display->hasErrors()) {
+ // form has errors, show warning
+ $separator = PMA_get_arg_separator('html');
+ $page = filter_input(INPUT_GET, 'page');
+ $formset = filter_input(INPUT_GET, 'formset');
+ $formset = $formset ? "{$separator}formset=$formset" : '';
+ $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
+ if ($id === null && $page == 'servers') {
+ // we've just added a new server, get it's id
+ $id = ConfigFile::getInstance()->getServerCount();
+ }
+ $id = $id ? "{$separator}id=$id" : '';
+ ?>
+ <div class="warning">
+ <h4><?php echo $GLOBALS['strSetupWarning'] ?></h4>
+ <?php echo PMA_lang('error_form') ?><br />
+ <a href="?page=<?php echo $page . $formset . $id . $separator ?>mode=revert"><?php echo PMA_lang('RevertErroneousFields') ?></a>
+ </div>
+ <?php $form_display->displayErrors() ?>
+ <a class="btn" href="index.php"><?php echo PMA_lang('IgnoreErrors') ?></a>
+ &nbsp;
+ <a class="btn" href="?page=<?php echo $page . $formset . $id . $separator ?>mode=edit"><?php echo PMA_lang('ShowForm') ?></a>
+ <?php
+ } else {
+ // drop post data
+ header('HTTP/1.1 303 See Other');
+ header('Location: index.php');
+ exit;
+ }
+ }
+}
+?> \ No newline at end of file
diff --git a/setup/lib/forms.inc.php b/setup/lib/forms.inc.php
new file mode 100644
index 0000000000..4fcbe69094
--- /dev/null
+++ b/setup/lib/forms.inc.php
@@ -0,0 +1,176 @@
+<?php
+/**
+ * List of avaible forms, each form is described as an array of fields to display.
+ * Fields MUST have their counterparts in the $cfg array.
+ *
+ * There are two possible notations:
+ * $forms['Form name'] = array('Servers' => array(1 => array('host')));
+ * can be written as
+ * $forms['Form name'] = array('Servers/1/host');
+ *
+ * You can assign default values set by special button ("set value: ..."), eg.:
+ * $forms['Server_pmadb'] = array('Servers' => array(1 => array(
+ * 'pmadb' => 'phpmyadmin')));
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+$forms = array();
+$forms['_config.php'] = array(
+ 'DefaultLang',
+ 'ServerDefault');
+$forms['Server'] = array('Servers' => array(1 => array(
+ 'verbose',
+ 'host',
+ 'port',
+ 'socket',
+ 'ssl',
+ 'connect_type',
+ 'extension',
+ 'compress',
+ 'auth_type',
+ 'user',
+ 'password',
+ 'nopassword')));
+$forms['Server_login_options'] = array('Servers' => array(1 => array(
+ 'SignonSession',
+ 'SignonURL',
+ 'LogoutURL',
+ 'auth_swekey_config' => './swekey.conf')));
+$forms['Server_config'] = array('Servers' => array(1 => array(
+ 'only_db',
+ 'hide_db',
+ 'AllowRoot',
+ 'AllowNoPasswordRoot',
+ 'DisableIS',
+ 'AllowDeny/order',
+ 'AllowDeny/rules',
+ 'ShowDatabasesCommand',
+ 'CountTables')));
+$forms['Server_pmadb'] = array('Servers' => array(1 => array(
+ 'pmadb' => 'phpmyadmin',
+ 'controluser',
+ 'controlpass',
+ 'verbose_check',
+ 'bookmarktable' => 'pma_bookmark',
+ 'relation' => 'pma_relation',
+ 'table_info' => 'pma_table_info',
+ 'table_coords' => 'pma_table_coords',
+ 'pdf_pages' => 'pma_pdf_pages',
+ 'column_info' => 'pma_column_info',
+ 'history' => 'pma_history',
+ 'designer_coords' => 'designer_coords')));
+$forms['Import_export'] = array(
+ 'UploadDir',
+ 'SaveDir',
+ 'AllowAnywhereRecoding',
+ 'DefaultCharset',
+ 'RecodingEngine',
+ 'IconvExtraParams',
+ 'ZipDump',
+ 'GZipDump',
+ 'BZipDump',
+ 'CompressOnFly');
+$forms['Security'] = array(
+ 'blowfish_secret',
+ 'ForceSSL',
+ 'CheckConfigurationPermissions',
+ 'TrustedProxies',
+ 'AllowUserDropDatabase',
+ 'AllowArbitraryServer',
+ 'LoginCookieRecall',
+ 'LoginCookieValidity',
+ 'LoginCookieStore',
+ 'LoginCookieDeleteAll');
+$forms['Sql_queries'] = array(
+ 'ShowSQL',
+ 'Confirm',
+ 'QueryHistoryDB',
+ 'QueryHistoryMax',
+ 'IgnoreMultiSubmitErrors',
+ 'VerboseMultiSubmit');
+$forms['Other_core_settings'] = array(
+ 'MaxDbList',
+ 'MaxTableList',
+ 'MaxCharactersInDisplayedSQL',
+ 'OBGzip',
+ 'PersistentConnections',
+ 'ExecTimeLimit',
+ 'MemoryLimit',
+ 'SkipLockedTables',
+ 'UseDbSearch');
+$forms['Left_frame'] = array(
+ 'LeftFrameLight',
+ 'LeftDisplayLogo',
+ 'LeftLogoLink',
+ 'LeftLogoLinkWindow',
+ 'LeftDefaultTabTable',
+ 'LeftPointerEnable');
+$forms['Left_servers'] = array(
+ 'LeftDisplayServers',
+ 'DisplayServersList');
+$forms['Left_databases'] = array(
+ 'DisplayDatabasesList',
+ 'LeftFrameDBTree',
+ 'LeftFrameDBSeparator',
+ 'ShowTooltipAliasDB');
+$forms['Left_tables'] = array(
+ 'LeftFrameTableSeparator',
+ 'LeftFrameTableLevel',
+ 'ShowTooltip',
+ 'ShowTooltipAliasTB');
+$forms['Startup'] = array(
+ 'ShowStats',
+ 'ShowPhpInfo',
+ 'ShowServerInfo',
+ 'ShowChgPassword',
+ 'ShowCreateDb',
+ 'SuggestDBName');
+$forms['Browse'] = array(
+ 'NavigationBarIconic',
+ 'ShowAll',
+ 'MaxRows',
+ 'Order',
+ 'BrowsePointerEnable',
+ 'BrowseMarkerEnable');
+$forms['Edit'] = array(
+ 'ProtectBinary',
+ 'ShowFunctionFields',
+ 'CharEditing',
+ 'CharTextareaCols',
+ 'CharTextareaRows',
+ 'InsertRows',
+ 'ForeignKeyDropdownOrder',
+ 'ForeignKeyMaxLimit');
+$forms['Tabs'] = array(
+ 'LightTabs',
+ 'PropertiesIconic',
+ 'DefaultTabServer',
+ 'DefaultTabDatabase',
+ 'DefaultTabTable',
+ 'QueryWindowDefTab');
+$forms['Sql_box'] = array('SQLQuery' => array(
+ 'Edit',
+ 'Explain',
+ 'ShowAsPHP',
+ 'Validate',
+ 'Refresh'));
+$forms['Import_defaults'] = array('Import' => array(
+ 'format',
+ 'allow_interrupt',
+ 'skip_queries'));
+$forms['Export_defaults'] = array('Export' => array(
+ 'format',
+ 'compression',
+ 'asfile',
+ 'charset',
+ 'onserver',
+ 'onserver_overwrite',
+ 'remember_file_template',
+ 'file_template_table',
+ 'file_template_database',
+ 'file_template_server'));
+?> \ No newline at end of file
diff --git a/setup/lib/index.lib.php b/setup/lib/index.lib.php
new file mode 100644
index 0000000000..df2e787e0a
--- /dev/null
+++ b/setup/lib/index.lib.php
@@ -0,0 +1,426 @@
+<?php
+
+/**
+ * Various checks and message functions used on index page.
+ *
+ * Security checks are the idea of Aung Khant <aungkhant[at]yehg.net>, http://yehg.net/lab
+ * Version check taken from the old setup script by Michal Čihař <michal@cihar.com>
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+/**
+ * Initializes message list
+ */
+function messages_begin()
+{
+ if (!isset($_SESSION['messages']) || !is_array($_SESSION['messages'])) {
+ $_SESSION['messages'] = array('error' => array(), 'warning' => array(), 'notice' => array());
+ } else {
+ // reset message states
+ foreach ($_SESSION['messages'] as &$messages) {
+ foreach ($messages as &$msg) {
+ $msg['fresh'] = false;
+ $msg['active'] = false;
+ }
+ }
+ }
+}
+
+/**
+ * Adds a new message to message list
+ *
+ * @param string $id unique message identifier
+ * @param string $type one of: notice, warning, error
+ * @param string $title language string id (in $str array)
+ * @param string $message message text
+ */
+function messages_set($type, $id, $title, $message)
+{
+ $fresh = !isset($_SESSION['messages'][$type][$id]);
+ $title = PMA_lang($title);
+ $_SESSION['messages'][$type][$id] = array(
+ 'fresh' => $fresh,
+ 'active' => true,
+ 'title' => $title,
+ 'message' => $message);
+}
+
+/**
+ * Cleans up message list
+ */
+function messages_end()
+{
+ foreach ($_SESSION['messages'] as &$messages) {
+ $remove_ids = array();
+ foreach ($messages as $id => &$msg) {
+ if ($msg['active'] == false) {
+ $remove_ids[] = $id;
+ }
+ }
+ foreach ($remove_ids as $id) {
+ unset($messages[$id]);
+ }
+ }
+}
+
+/**
+ * Prints message list, must be called after messages_end()
+ */
+function messages_show_html()
+{
+ $old_ids = array();
+ foreach ($_SESSION['messages'] as $type => $messages) {
+ foreach ($messages as $id => $msg) {
+ echo '<div class="' . $type . '" id="' . $id . '">' . '<h4>' . $msg['title'] . '</h4>' . $msg['message'] . '</div>';
+ if (!$msg['fresh'] && $type != 'error') {
+ $old_ids[] = $id;
+ }
+ }
+ }
+
+ echo "\n" . '<script type="text/javascript">';
+ foreach ($old_ids as $id) {
+ echo "\nhiddenMessages.push('$id');";
+ }
+ echo "\n</script>\n";
+}
+
+/**
+ * Checks for newest phpMyAdmin version and sets result as a new notice
+ */
+function PMA_version_check()
+{
+ // version check messages should always be visible so let's make
+ // a unique message id each time we run it
+ $message_id = uniqid('version_check');
+ // wait 3s at most for server response, it's enough to get information
+ // from a working server
+ $connection_timeout = 3;
+
+ $url = 'http://phpmyadmin.net/home_page/version.php';
+ $context = stream_context_create(array(
+ 'http' => array(
+ 'timeout' => $connection_timeout)));
+ $data = @file_get_contents($url, null, $context);
+ if ($data === false) {
+ if (function_exists('curl_init')) {
+ $ch = curl_init($url);
+ curl_setopt($ch, CURLOPT_HEADER, false);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_TIMEOUT, $connection_timeout);
+ $data = curl_exec($ch);
+ curl_close($ch);
+ } else {
+ messages_set('error', $message_id, 'VersionCheck',
+ PMA_lang('VersionCheckWrapperError'));
+ return;
+ }
+ }
+
+ if (empty($data)) {
+ messages_set('error', $message_id, 'VersionCheck',
+ PMA_lang('VersionCheckDataError'));
+ return;
+ }
+
+ /* Format: version\ndate\n(download\n)* */
+ $data_list = explode("\n", $data);
+
+ if (count($data_list) > 1) {
+ $version = $data_list[0];
+ $date = $data_list[1];
+ } else {
+ $version = $date = '';
+ }
+
+ $version_upstream = version_to_int($version);
+ if ($version_upstream === false) {
+ messages_set('error', $message_id, 'VersionCheck',
+ PMA_lang('VersionCheckInvalid'));
+ return;
+ }
+
+ $version_local = version_to_int($_SESSION['PMA_Config']->get('PMA_VERSION'));
+ if ($version_local === false) {
+ messages_set('error', $message_id, 'VersionCheck',
+ PMA_lang('VersionCheckUnparsable'));
+ return;
+ }
+
+ if ($version_upstream > $version_local) {
+ $version = htmlspecialchars($version);
+ $date = htmlspecialchars($date);
+ messages_set('notice', $message_id, 'VersionCheck',
+ PMA_lang('VersionCheckNewAvailable', $version, $date));
+ } else {
+ if ($version_local % 100 == 0) {
+ messages_set('notice', $message_id, 'VersionCheck',
+ PMA_lang('VersionCheckNewAvailableSvn', $version, $date));
+ } else {
+ messages_set('notice', $message_id, 'VersionCheck',
+ PMA_lang('VersionCheckNone'));
+ }
+ }
+}
+
+/**
+ * Calculates numerical equivalent of phpMyAdmin version string
+ *
+ * @param string version
+ * @return mixed false on failure, integer on success
+ */
+function version_to_int($version)
+{
+ $matches = array();
+ if (!preg_match('/^(\d+)\.(\d+)\.(\d+)((\.|-(pl|rc|dev|beta|alpha))(\d+)?)?$/', $version, $matches)) {
+ return false;
+ }
+ if (!empty($matches[6])) {
+ switch ($matches[6]) {
+ case 'pl':
+ $added = 60;
+ break;
+ case 'rc':
+ $added = 30;
+ break;
+ case 'beta':
+ $added = 20;
+ break;
+ case 'alpha':
+ $added = 10;
+ break;
+ case 'dev':
+ $added = 0;
+ break;
+ default:
+ messages_set('notice', 'version_match', 'VersionCheck',
+ 'Unknown version part: ' . htmlspecialchars($matches[6]));
+ $added = 0;
+ break;
+ }
+ } else {
+ $added = 50; // for final
+ }
+ if (!empty($matches[7])) {
+ $added = $added + $matches[7];
+ }
+ return $matches[1] * 1000000 + $matches[2] * 10000 + $matches[3] * 100 + $added;
+}
+
+/**
+ * Checks whether config file is readable/writable
+ *
+ * @param bool &$is_readable
+ * @param bool &$is_writable
+ * @param bool &$file_exists
+ */
+function check_config_rw(&$is_readable, &$is_writable, &$file_exists)
+{
+ $file_path = ConfigFile::getInstance()->getFilePath();
+ $file_dir = dirname($file_path);
+ $is_readable = true;
+ $is_writable = is_dir($file_dir) && is_writable($file_dir);
+ $file_exists = file_exists($file_path);
+ if ($file_exists) {
+ $is_readable = is_readable($file_path);
+ $is_writable = $is_writable && is_writable($file_path);
+ }
+}
+
+/**
+ * Performs various compatibility, security and consistency checks on current config
+ *
+ * Outputs results to message list, must be called between messages_begin()
+ * and messages_end()
+ */
+function perform_config_checks()
+{
+ $cf = ConfigFile::getInstance();
+ $blowfish_secret = $cf->get('blowfish_secret');
+ $blowfish_secret_set = false;
+ $cookie_auth_used = false;
+ for ($i = 1; $i <= $cf->getServerCount(); $i++) {
+ $cookie_auth_server = ($cf->getValue("Servers/$i/auth_type") == 'cookie');
+ $cookie_auth_used |= $cookie_auth_server;
+ $server_name = $cf->getServerName($i);
+ if ($server_name == 'localhost') {
+ $server_name .= " [$i]";
+ }
+
+ if ($cookie_auth_server && $blowfish_secret === null) {
+ $blowfish_secret = uniqid('', true);
+ $blowfish_secret_set = true;
+ $cf->set('blowfish_secret', $blowfish_secret);
+ }
+
+ //
+ // $cfg['Servers'][$i]['ssl']
+ // should be enabled if possible
+ //
+ if (!$cf->getValue("Servers/$i/ssl")) {
+ $title = PMA_lang_name('Servers/1/ssl') . " ($server_name)";
+ messages_set('notice', "Servers/$i/ssl", $title,
+ PMA_lang('ServerSslMsg'));
+ }
+
+ //
+ // $cfg['Servers'][$i]['extension']
+ // warn about using 'mysql'
+ //
+ if ($cf->getValue("Servers/$i/extension") == 'mysql') {
+ $title = PMA_lang_name('Servers/1/extension') . " ($server_name)";
+ messages_set('notice', "Servers/$i/extension", $title,
+ PMA_lang('ServerExtensionMsg'));
+ }
+
+ //
+ // $cfg['Servers'][$i]['auth_type']
+ // warn about full user credentials if 'auth_type' is 'config'
+ //
+ if ($cf->getValue("Servers/$i/auth_type") == 'config'
+ && $cf->getValue("Servers/$i/user") != ''
+ && $cf->getValue("Servers/$i/password") != '') {
+ $title = PMA_lang_name('Servers/1/auth_type') . " ($server_name)";
+ messages_set('warning', "Servers/$i/auth_type", $title,
+ PMA_lang('ServerAuthConfigMsg', $i) . ' ' .
+ PMA_lang('ServerSecurityInfoMsg', $i));
+ }
+
+ //
+ // $cfg['Servers'][$i]['AllowRoot']
+ // $cfg['Servers'][$i]['AllowNoPasswordRoot']
+ // serious security flaw
+ //
+ if ($cf->getValue("Servers/$i/AllowRoot")
+ && $cf->getValue("Servers/$i/AllowNoPasswordRoot")) {
+ $title = PMA_lang_name('Servers/1/AllowNoPasswordRoot') . " ($server_name)";
+ messages_set('warning', "Servers/$i/AllowNoPasswordRoot", $title,
+ PMA_lang('ServerNoPasswordRootMsg') . ' ' .
+ PMA_lang('ServerSecurityInfoMsg', $i));
+ }
+ }
+
+ //
+ // $cfg['blowfish_secret']
+ // it's required for 'cookie' authentication
+ //
+ if ($cookie_auth_used) {
+ if ($blowfish_secret_set) {
+ // 'cookie' auth used, blowfish_secret was generated
+ messages_set('notice', 'blowfish_secret_created', 'blowfish_secret_name',
+ PMA_lang('BlowfishSecretMsg'));
+ } else {
+ $blowfish_warnings = array();
+ // check length
+ if (strlen($blowfish_secret) < 8) {
+ // too short key
+ $blowfish_warnings[] = PMA_lang('BlowfishSecretLengthMsg');
+ }
+ // check used characters
+ $has_digits = (bool) preg_match('/\d/', $blowfish_secret);
+ $has_chars = (bool) preg_match('/\S/', $blowfish_secret);
+ $has_nonword = (bool) preg_match('/\W/', $blowfish_secret);
+ if (!$has_digits || !$has_chars || !$has_nonword) {
+ $blowfish_warnings[] = PMA_lang('BlowfishSecretCharsMsg');
+ }
+ if (!empty($blowfish_warnings)) {
+ messages_set('warning', 'blowfish_warnings' . count($blowfish_warnings),
+ 'blowfish_secret_name', implode("<br />", $blowfish_warnings));
+ }
+ }
+ }
+
+ //
+ // $cfg['ForceSSL']
+ // should be enabled if possible
+ //
+ if (!$cf->getValue('ForceSSL')) {
+ messages_set('notice', 'ForceSSL', 'ForceSSL_name',
+ PMA_lang('ForceSSLMsg'));
+ }
+
+ //
+ // $cfg['AllowArbitraryServer']
+ // should be disabled
+ //
+ if ($cf->getValue('AllowArbitraryServer')) {
+ messages_set('warning', 'AllowArbitraryServer', 'AllowArbitraryServer_name',
+ PMA_lang('AllowArbitraryServerMsg'));
+ }
+
+ //
+ // $cfg['LoginCookieValidity']
+ // should be at most 1800 (30 min)
+ //
+ if ($cf->getValue('LoginCookieValidity') > 1800) {
+ messages_set('warning', 'LoginCookieValidity', 'LoginCookieValidity_name',
+ PMA_lang('LoginCookieValidityMsg'));
+ }
+
+ //
+ // $cfg['SaveDir']
+ // should not be world-accessible
+ //
+ if ($cf->getValue('SaveDir') != '') {
+ messages_set('notice', 'SaveDir', 'SaveDir_name',
+ PMA_lang('DirectoryNotice'));
+ }
+
+ //
+ // $cfg['TempDir']
+ // should not be world-accessible
+ //
+ if ($cf->getValue('TempDir') != '') {
+ messages_set('notice', 'TempDir', 'TempDir_name',
+ PMA_lang('DirectoryNotice'));
+ }
+
+ //
+ // $cfg['GZipDump']
+ // requires zlib functions
+ //
+ if ($cf->getValue('GZipDump')
+ && (@!function_exists('gzopen') || @!function_exists('gzencode'))) {
+ messages_set('warning', 'GZipDump', 'GZipDump_name',
+ PMA_lang('GZipDumpWarning', 'gzencode'));
+ }
+
+ //
+ // $cfg['BZipDump']
+ // requires bzip2 functions
+ //
+ if ($cf->getValue('BZipDump')
+ && (!@function_exists('bzopen') || !@function_exists('bzcompress'))) {
+ $functions = @function_exists('bzopen')
+ ? '' :
+ 'bzopen';
+ $functions .= @function_exists('bzcompress')
+ ? ''
+ : ($functions ? ', ' : '') . 'bzcompress';
+ messages_set('warning', 'BZipDump', 'BZipDump_name',
+ PMA_lang('BZipDumpWarning', $functions));
+ }
+
+ //
+ // $cfg['ZipDump']
+ // requires zip_open in import
+ //
+ if ($cf->getValue('ZipDump') && !@function_exists('zip_open')) {
+ messages_set('warning', 'ZipDump_import', 'ZipDump_name',
+ PMA_lang('ZipDumpImportWarning', 'zip_open'));
+ }
+
+ //
+ // $cfg['ZipDump']
+ // requires gzcompress in export
+ //
+ if ($cf->getValue('ZipDump') && !@function_exists('gzcompress')) {
+ messages_set('warning', 'ZipDump_export', 'ZipDump_name',
+ PMA_lang('ZipDumpExportWarning', 'gzcompress'));
+ }
+}
+?> \ No newline at end of file
diff --git a/setup/lib/validate.lib.php b/setup/lib/validate.lib.php
new file mode 100644
index 0000000000..45f35617df
--- /dev/null
+++ b/setup/lib/validate.lib.php
@@ -0,0 +1,362 @@
+<?php
+/**
+ * Various validation functions
+ *
+ * Validation function takes two argument: id for which it is called
+ * and array of fields' values (usually values for entire formset, as defined
+ * in forms.inc.php).
+ * The function must always return an array with an error (or error array)
+ * assigned to a form element (formset name or field path). Even if there are
+ * no errors, key must be set with an empty value.
+ *
+ * Valdiation functions are assigned in $cfg_db['_validators'] (config_info.inc.php).
+ *
+ * @package phpMyAdmin-setup
+ * @author Piotr Przybylski <piotrprz@gmail.com>
+ * @license http://www.gnu.org/licenses/gpl.html GNU GPL 2.0
+ * @version $Id$
+ */
+
+/**
+ * Runs validation $validator_id on values $values and returns error list.
+ *
+ * Return values:
+ * o array, keys - field path or formset id, values - array of errors
+ * when $isPostSource is true values is an empty array to allow for error list
+ * cleanup in HTML documen
+ * o false - when no validators match name(s) given by $validator_id
+ *
+ * @param string|array $validator_id
+ * @param array $values
+ * @param bool $isPostSource tells whether $values are directly from POST request
+ * @return bool|array
+ */
+function validate($validator_id, &$values, $isPostSource)
+{
+ // find validators
+ $cf = ConfigFile::getInstance();
+ $validator_id = (array) $validator_id;
+ $validators = $cf->getDbEntry('_validators');
+ $vids = array();
+ foreach ($validator_id as &$vid) {
+ $vid = $cf->getCanonicalPath($vid);
+ if (isset($validators[$vid])) {
+ $vids[] = $vid;
+ }
+ }
+ if (empty($vids)) {
+ return false;
+ }
+
+ // create argument list with canonical paths and remember path mapping
+ $arguments = array();
+ $key_map = array();
+ foreach ($values as $k => $v) {
+ $k2 = $isPostSource ? str_replace('-', '/', $k) : $k;
+ $k2 = strpos($k2, '/') ? $cf->getCanonicalPath($k2) : $k2;
+ $key_map[$k2] = $k;
+ $arguments[$k2] = $v;
+ }
+
+ // validate
+ $result = array();
+ foreach ($vids as $vid) {
+ $r = call_user_func($validators[$vid], $vid, $arguments);
+ // merge results
+ if (is_array($r)) {
+ foreach ($r as $key => $error_list) {
+ // skip empty values if $isPostSource is false
+ if (!$isPostSource && empty($error_list)) {
+ continue;
+ }
+ if (!isset($result[$key])) {
+ $result[$key] = array();
+ }
+ $result[$key] = array_merge($result[$key], (array)$error_list);
+ }
+ }
+ }
+
+ // restore original paths
+ $new_result = array();
+ foreach ($result as $k => $v) {
+ $k2 = isset($key_map[$k]) ? $key_map[$k] : $k;
+ $new_result[$k2] = $v;
+ }
+ return empty($new_result) ? true : $new_result;
+}
+
+/**
+ * Ensures that $php_errormsg variable will be registered in case of an error
+ * and enables output buffering (when $start = true).
+ * Called with $start = false disables output buffering end restores
+ * html_errors and track_errors.
+ *
+ * @param boolean $start
+ */
+function test_php_errormsg($start = true)
+{
+ static $old_html_errors, $old_track_errors;
+ if ($start) {
+ $old_html_errors = ini_get('html_errors');
+ $old_track_errors = ini_get('track_errors');
+ ini_set('html_errors', false);
+ ini_set('track_errors', true);
+ ob_start();
+ } else {
+ ob_end_clean();
+ ini_set('html_errors', $old_html_errors);
+ ini_set('track_errors', $old_track_errors);
+ }
+}
+
+/**
+ * Test database connection
+ *
+ * @param string $extension 'mysql' or 'mysqli'
+ * @param string $connect_type 'tcp' or 'socket'
+ * @param string $host
+ * @param string $port
+ * @param string $socket
+ * @param string $user
+ * @param string $pass
+ * @param string $error_key
+ * @return bool|array
+ */
+function test_db_connection($extension, $connect_type, $host, $port, $socket, $user, $pass = null, $error_key = 'Server')
+{
+ // test_php_errormsg();
+ $socket = empty($socket) || $connect_type == 'tcp' ? null : ':' . $socket;
+ $port = empty($port) || $connect_type == 'socket' ? null : ':' . $port;
+ $error = null;
+ if ($extension == 'mysql') {
+ $conn = @mysql_connect($host . $socket . $port, $user, $pass);
+ if (!$conn) {
+ $error = PMA_lang('error_connection');
+ } else {
+ mysql_close($conn);
+ }
+ } else {
+ $conn = @mysqli_connect($host, $user, $pass, null, $port, $socket);
+ if (!$conn) {
+ $error = PMA_lang('error_connection');
+ } else {
+ mysqli_close($conn);
+ }
+ }
+ // test_php_errormsg(false);
+ if (isset($php_errormsg)) {
+ $error .= " - $php_errormsg";
+ }
+ return is_null($error) ? true : array($error_key => $error);
+}
+
+/**
+ * Validate server config
+ *
+ * @param string $path
+ * @param array $values
+ * @return array
+ */
+function validate_server($path, $values)
+{
+ $result = array('Server' => '', 'Servers/1/user' => '', 'Servers/1/SignonSession' => '', 'Servers/1/SignonURL' => '');
+ $error = false;
+ if ($values['Servers/1/auth_type'] == 'config' && empty($values['Servers/1/user'])) {
+ $result['Servers/1/user'] = PMA_lang('error_empty_user_for_config_auth');
+ $error = true;
+ }
+ if ($values['Servers/1/auth_type'] == 'signon' && empty($values['Servers/1/SignonSession'])) {
+ $result['Servers/1/SignonSession'] = PMA_lang('error_empty_signon_session');
+ $error = true;
+ }
+ if ($values['Servers/1/auth_type'] == 'signon' && empty($values['Servers/1/SignonURL'])) {
+ $result['Servers/1/SignonURL'] = PMA_lang('error_empty_signon_url');
+ $error = true;
+ }
+
+ if (!$error && $values['Servers/1/auth_type'] == 'config') {
+ $password = $values['Servers/1/nopassword'] ? null : $values['Servers/1/password'];
+ $test = test_db_connection($values['Servers/1/extension'], $values['Servers/1/connect_type'], $values['Servers/1/host'], $values['Servers/1/port'], $values['Servers/1/socket'], $values['Servers/1/user'], $password, 'Server');
+ if ($test !== true) {
+ $result = array_merge($result, $test);
+ }
+ }
+ return $result;
+}
+
+/**
+ * Validate pmadb config
+ *
+ * @param string $path
+ * @param array $values
+ * @return array
+ */
+function validate_pmadb($path, $values)
+{
+ $tables = array('Servers/1/bookmarktable', 'Servers/1/relation', 'Servers/1/table_info', 'Servers/1/table_coords', 'Servers/1/pdf_pages', 'Servers/1/column_info', 'Servers/1/history', 'Servers/1/designer_coords');
+ $result = array('Server_pmadb' => '', 'Servers/1/controluser' => '', 'Servers/1/controlpass' => '');
+ $error = false;
+
+ if ($values['Servers/1/pmadb'] == '') {
+ return $result;
+ }
+
+ $result = array();
+ if ($values['Servers/1/controluser'] == '') {
+ $result['Servers/1/controluser'] = PMA_lang('error_empty_pmadb_user');
+ $error = true;
+ }
+ if ($values['Servers/1/controlpass'] == '') {
+ $result['Servers/1/controlpass'] = PMA_lang('error_empty_pmadb_password');
+ $error = true;
+ }
+ if (!$error) {
+ $test = test_db_connection($values['Servers/1/extension'], $values['Servers/1/connect_type'], $values['Servers/1/host'], $values['Servers/1/port'], $values['Servers/1/socket'], $values['Servers/1/controluser'], $values['Servers/1/controlpass'], 'Server_pmadb');
+ if ($test !== true) {
+ $result = array_merge($result, $test);
+ }
+ }
+ return $result;
+}
+
+
+/**
+ * Validates regular expression
+ *
+ * @param string $path
+ * @param array $values
+ * @return array
+ */
+function validate_regex($path, $values)
+{
+ $result = array($path => '');
+
+ if ($values[$path] == '') {
+ return $result;
+ }
+
+ test_php_errormsg();
+
+ $matches = array();
+ preg_match($values[$path], '', $matches);
+ ob_end_clean();
+
+ test_php_errormsg(false);
+
+ if (isset($php_errormsg)) {
+ $error = preg_replace('/^preg_match\(\): /', '', $php_errormsg);
+ return array($path => $error);
+ }
+
+ return $result;
+}
+
+/**
+ * Validates TrustedProxies field
+ *
+ * @param string $path
+ * @param array $values
+ * @return array
+ */
+function validate_trusted_proxies($path, $values)
+{
+ $result = array($path => array());
+
+ if (empty($values[$path])) {
+ return $result;
+ }
+
+ if (is_array($values[$path])) {
+ // value already processed by FormDisplay::save
+ $lines = array();
+ foreach ($values[$path] as $ip => $v) {
+ $lines[] = preg_match('/^-\d+$/', $ip)
+ ? $v
+ : $ip . ': ' . $v;
+ }
+ } else {
+ // AJAX validation
+ $lines = explode("\n", $values[$path]);
+ }
+ foreach ($lines as $line) {
+ $line = trim($line);
+ $matches = array();
+ // we catch anything that may (or may not) be an IP
+ if (!preg_match("/^(.+):(?:[ ]?)\\w+$/", $line, $matches)) {
+ $result[$path][] = PMA_lang('error_incorrect_value') . ': ' . $line;
+ continue;
+ }
+ // now let's check whether we really have an IP address
+ if (filter_var($matches[1], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === false
+ && filter_var($matches[1], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
+ $ip = htmlspecialchars(trim($matches[1]));
+ $result[$path][] = PMA_lang('error_incorrect_ip_address', $ip);
+ continue;
+ }
+ }
+
+ return $result;
+}
+
+
+/**
+ * Tests integer value
+ *
+ * @param string $path
+ * @param array $values
+ * @param bool $allow_neg allow negative values
+ * @param bool $allow_zero allow zero
+ * @param int $max_value max allowed value
+ * @param string $error_lang_key error message key: $GLOBALS["strSetup$error_lang_key"]
+ * @return string empty string if test is successful
+ */
+function test_number($path, $values, $allow_neg, $allow_zero, $max_value, $error_lang_key)
+{
+ if ($values[$path] === '') {
+ return '';
+ }
+
+ if (intval($values[$path]) != $values[$path] || (!$allow_neg && $values[$path] < 0) || (!$allow_zero && $values[$path] == 0) || $values[$path] > $max_value) {
+ return PMA_lang($error_lang_key);
+ }
+
+ return '';
+}
+
+/**
+ * Validates port number
+ *
+ * @param string $path
+ * @param array $values
+ * @return array
+ */
+function validate_port_number($path, $values)
+{
+ return array($path => test_number($path, $values, false, false, 65536, 'error_incorrect_port'));
+}
+
+/**
+ * Validates positive number
+ *
+ * @param string $path
+ * @param array $values
+ * @return array
+ */
+function validate_positive_number($path, $values)
+{
+ return array($path => test_number($path, $values, false, false, PHP_INT_MAX, 'error_nan_p'));
+}
+
+/**
+ * Validates non-negative number
+ *
+ * @param string $path
+ * @param array $values
+ * @return array
+ */
+function validate_non_negative_number($path, $values)
+{
+ return array($path => test_number($path, $values, false, true, PHP_INT_MAX, 'error_nan_nneg'));
+}
+?> \ No newline at end of file
diff --git a/setup/scripts.js b/setup/scripts.js
new file mode 100644
index 0000000000..16b05681f9
--- /dev/null
+++ b/setup/scripts.js
@@ -0,0 +1,717 @@
+/**
+ * functions used in setup script
+ *
+ * @version $Id$
+ */
+
+// show this window in top frame
+if (top != self) {
+ window.top.location.href = location;
+}
+
+// default values for fields
+var defaultValues = {};
+
+// language strings
+var PMA_messages = {};
+
+/**
+ * Returns field type
+ *
+ * @param Element field
+ */
+function getFieldType(field) {
+ if (field.tagName == 'INPUT') {
+ return field.getProperty('type');
+ } else if (field.tagName == 'SELECT') {
+ return 'select';
+ } else if (field.tagName == 'TEXTAREA') {
+ return 'text';
+ }
+ return '';
+}
+
+/**
+ * Sets field value
+ *
+ * value must be of type:
+ * o undefined (omitted) - restore default value (form default, not PMA default)
+ * o String - if type is 'text'
+ * o boolean - if type is 'checkbox'
+ * o Array of values - if type is 'select'
+ *
+ * @param Element field
+ * @param String field_type see getFieldType
+ * @param mixed value
+ */
+function setFieldValue(field, field_type, value) {
+ switch (field_type) {
+ case 'text':
+ field.value = $defined(value) ? value : field.defaultValue;
+ break;
+ case 'checkbox':
+ field.checked = $defined(value) ? value : field.defaultChecked;
+ break;
+ case 'select':
+ var i, imax = field.options.length;
+ if (!$defined(value)) {
+ for (i = 0; i < imax; i++) {
+ field.options[i].selected = field.options[i].defaultSelected;
+ }
+ } else {
+ for (i = 0; i < imax; i++) {
+ field.options[i].selected = (value.indexOf(field.options[i].value) != -1);
+ }
+ }
+ break;
+ }
+ markField(field);
+}
+
+/**
+ * Gets field value
+ *
+ * Will return one of:
+ * o String - if type is 'text'
+ * o boolean - if type is 'checkbox'
+ * o Array of values - if type is 'select'
+ *
+ * @param Element field
+ * @param String field_type see getFieldType
+ * @return mixed
+ */
+function getFieldValue(field, field_type) {
+ switch (field_type) {
+ case 'text':
+ return field.value;
+ case 'checkbox':
+ return field.checked;
+ case 'select':
+ var i, imax = field.options.length, items = [];
+ for (i = 0; i < imax; i++) {
+ if (field.options[i].selected) {
+ items.push(field.options[i].value);
+ }
+ }
+ return items;
+ }
+}
+
+/**
+ * Returns values for all fields in fieldsets
+ */
+function getAllValues() {
+ var elements = $$('fieldset input, fieldset select, fieldset textarea');
+ var values = {}
+ var type, value;
+ for (var i = 0; i < elements.length; i++) {
+ type = getFieldType(elements[i]);
+ value = getFieldValue(elements[i], type);
+ if (typeof value != 'undefined') {
+ // we only have single selects, fatten array
+ if (type == 'select') {
+ value = value[0];
+ }
+ values[elements[i].name] = value;
+ }
+ }
+ return values;
+}
+
+/**
+ * Checks whether field has its default value
+ *
+ * @param Element field
+ * @param String type
+ * @return boolean
+ */
+function checkFieldDefault(field, type) {
+ if (!$defined(defaultValues[field.id])) {
+ return true;
+ }
+ var isDefault = true
+ var currentValue = getFieldValue(field, type);
+ if (type != 'select') {
+ isDefault = currentValue == defaultValues[field.id];
+ } else {
+ // compare arrays, will work for our representation of select values
+ if (currentValue.length != defaultValues[field.id].length) {
+ isDefault = false;
+ }
+ else {
+ for (var i = 0; i < currentValue.length; i++) {
+ if (currentValue[i] != defaultValues[field.id][i]) {
+ isDefault = false;
+ break;
+ }
+ }
+ }
+ }
+ return isDefault;
+}
+
+/**
+ * Returns element's id prefix
+ * @param Element element
+ */
+function getIdPrefix(element) {
+ return element.id.replace(/[^-]+$/, '');
+}
+
+// ------------------------------------------------------------------
+// Messages
+//
+
+// stores hidden message ids
+var hiddenMessages = [];
+
+window.addEvent('domready', function() {
+ var hidden = hiddenMessages.length;
+ for (var i = 0; i < hidden; i++) {
+ $(hiddenMessages[i]).style.display = 'none';
+ }
+ if (hidden > 0) {
+ var link = $('show_hidden_messages');
+ link.addEvent('click', function(e) {
+ e.stop();
+ for (var i = 0; i < hidden; i++) {
+ $(hiddenMessages[i]).style.display = '';
+ }
+ this.dispose();
+ });
+ link.set('html', link.get('html').replace('#MSG_COUNT', hidden));
+ link.style.display = '';
+ }
+});
+
+//
+// END: Messages
+// ------------------------------------------------------------------
+
+// ------------------------------------------------------------------
+// Form validation and field operations
+//
+
+// form validator assignments
+var validate = {};
+
+// form validator list
+var validators = {
+ /**
+ * Validates positive number
+ *
+ * @param boolean isKeyUp
+ */
+ validate_positive_number: function (isKeyUp) {
+ var result = this.value.test('^[0-9]*$') && this.value != '0';
+ return result ? true : PMA_messages['error_nan_p'];
+ },
+ /**
+ * Validates non-negative number
+ *
+ * @param boolean isKeyUp
+ */
+ validate_non_negative_number: function (isKeyUp) {
+ var result = this.value.test('^[0-9]*$');
+ return result ? true : PMA_messages['error_nan_nneg'];
+ },
+ /**
+ * Validates port number
+ *
+ * @param boolean isKeyUp
+ */
+ validate_port_number: function(isKeyUp) {
+ var result = this.value.test('^[0-9]*$') && this.value != '0';
+ if (!result || this.value > 65536) {
+ result = PMA_messages['error_incorrect_port'];
+ }
+ return result;
+ },
+ // field validators
+ _field: {
+ /**
+ * hide_db field
+ *
+ * @param boolean isKeyUp
+ */
+ hide_db: function(isKeyUp) {
+ if (!isKeyUp && this.value != '') {
+ var data = {};
+ data[this.id] = this.value;
+ ajaxValidate(this, 'Servers/1/hide_db', data);
+ }
+ return true;
+ },
+ /**
+ * TrustedProxies field
+ *
+ * @param boolean isKeyUp
+ */
+ TrustedProxies: function(isKeyUp) {
+ if (!isKeyUp && this.value != '') {
+ var data = {};
+ data[this.id] = this.value;
+ ajaxValidate(this, 'TrustedProxies', data);
+ }
+ return true;
+ },
+ },
+ // fieldset validators
+ _fieldset: {
+ /**
+ * Validates Server fieldset
+ *
+ * @param boolean isKeyUp
+ */
+ Server: function(isKeyUp) {
+ if (!isKeyUp) {
+ ajaxValidate(this, 'Server', getAllValues());
+ }
+ return true;
+ },
+ /**
+ * Validates Server_login_options fieldset
+ *
+ * @param boolean isKeyUp
+ */
+ Server_login_options: function(isKeyUp) {
+ return validators._fieldset.Server.bind(this)(isKeyUp);
+ },
+ /**
+ * Validates Server_pmadb fieldset
+ *
+ * @param boolean isKeyUp
+ */
+ Server_pmadb: function(isKeyUp) {
+ if (isKeyUp) {
+ return true;
+ }
+
+ var prefix = getIdPrefix(this.getElement('input'));
+ var pmadb_active = $(prefix + 'pmadb').value != '';
+ if (pmadb_active) {
+ ajaxValidate(this, 'Server_pmadb', getAllValues());
+ }
+
+ return true;
+ }
+ }
+}
+
+/**
+ * Calls server-side validation procedures
+ *
+ * @param Element parent input field in <fieldset> or <fieldset>
+ * @param String id validator id
+ * @param Object values values hash (element_id: value)
+ */
+function ajaxValidate(parent, id, values) {
+ // ensure that parent is a fieldset
+ if (parent.tagName != 'FIELDSET') {
+ parent = parent.getParent('fieldset');
+ if (!parent) {
+ return false;
+ }
+ }
+ // ensure that we have a Request object
+ if (typeof parent.request == 'undefined') {
+ parent.validate = {
+ request: new Request.JSON({
+ url: 'validate.php',
+ autoCancel: true,
+ onSuccess: function(response) {
+ if (response == null) {
+ return;
+ }
+ var error = {};
+ if ($type(response) != 'object') {
+ error[parent.id] = [response];
+ } else if (typeof response['error'] != 'undefined') {
+ error[parent.id] = [response['error']];
+ } else {
+ $each(response, function(value, key) {
+ error[key] = $type(value) == 'array' ? value : [value];
+ });
+ }
+ displayErrors(error);
+ }}),
+ token: parent.getParent('form').token.value
+ };
+ }
+
+ parent.validate.request.send({
+ data: {
+ token: parent.validate.token,
+ id: id,
+ values: JSON.encode(values)}
+ });
+
+ return true;
+}
+
+/**
+ * Registers validator for given field
+ *
+ * @param String id field id
+ * @param String type validator (key in validators object)
+ * @param boolean onKeyUp whether fire on key up
+ * @param mixed params validation function parameters
+ */
+function validateField(id, type, onKeyUp, params) {
+ if (typeof validators[type] == 'undefined') {
+ return;
+ }
+ if (typeof validate[id] == 'undefined') {
+ validate[id] = [];
+ }
+ validate[id].push([type, params, onKeyUp]);
+}
+
+/**
+ * Returns valdiation functions associated with form field
+ *
+ * @param String field_id form field id
+ * @param boolean onKeyUpOnly see validateField
+ * @return Array array of [function, paramseters to be passed to function]
+ */
+function getFieldValidators(field_id, onKeyUpOnly) {
+ // look for field bound validator
+ var name = field_id.match(/[^-]+$/)[0];
+ if (typeof validators._field[name] != 'undefined') {
+ return [[validators._field[name], null]];
+ }
+
+ // look for registered validators
+ var functions = [];
+ if (typeof validate[field_id] != 'undefined') {
+ // validate[field_id]: array of [type, params, onKeyUp]
+ for (var i = 0, imax = validate[field_id].length; i < imax; i++) {
+ if (onKeyUpOnly && !validate[field_id][i][2]) {
+ continue;
+ }
+ functions.push([validators[validate[field_id][i][0]], validate[field_id][i][1]]);
+ }
+ }
+
+ return functions;
+}
+
+/**
+ * Displays errors for given form fields
+ *
+ * WARNING: created DOM elements must be identical with the ones made by
+ * display_input() in FormDisplay.tpl.php!
+ *
+ * @param Object error list (key: field id, value: error array)
+ */
+function displayErrors(errors) {
+ $each(errors, function(errors, field_id) {
+ var field = $(field_id);
+ var isFieldset = field.tagName == 'FIELDSET';
+ var errorCnt = isFieldset
+ ? field.getElement('dl.errors')
+ : field.getNext('.inline_errors');
+
+ // remove empty errors (used to clear error list)
+ errors = errors.filter(function(item) {
+ return item != '';
+ });
+
+ if (errors.length) {
+ // if error container doesn't exist, create it
+ if (errorCnt === null) {
+ if (isFieldset) {
+ errorCnt = new Element('dl', {
+ 'class': 'errors'
+ });
+ errorCnt.inject(field.getElement('table'), 'before');
+ } else {
+ errorCnt = new Element('dl', {
+ 'class': 'inline_errors'
+ });
+ errorCnt.inject(field.getParent('td'), 'bottom');
+ }
+ }
+
+ var html = '';
+ for (var i = 0, imax = errors.length; i < imax; i++) {
+ html += '<dd>' + errors[i] + '</dd>';
+ }
+ errorCnt.set('html', html);
+ } else if (errorCnt !== null) {
+ // remove useless error container
+ errorCnt.dispose();
+ }
+ });
+}
+
+/**
+ * Validates fieldset and puts errors in 'errors' object
+ *
+ * @param Element field
+ * @param boolean isKeyUp
+ * @param Object errors
+ */
+function validate_fieldset(fieldset, isKeyUp, errors) {
+ if (fieldset && typeof validators._fieldset[fieldset.id] != 'undefined') {
+ var fieldset_errors = validators._fieldset[fieldset.id].bind(fieldset)(isKeyUp);
+ $each(fieldset_errors, function(field_errors, field_id) {
+ if (typeof errors[field_id] == 'undefined') {
+ errors[field_id] = [];
+ }
+ errors[field_id][$type(field_errors) == 'array' ? 'extend' : 'push'](field_errors);
+ });
+ }
+}
+
+/**
+ * Validates form field and puts errors in 'errors' object
+ *
+ * @param Element field
+ * @param boolean isKeyUp
+ * @param Object errors
+ */
+function validate_field(field, isKeyUp, errors) {
+ errors[field.id] = [];
+ var functions = getFieldValidators(field.id, isKeyUp);
+ for (var i = 0; i < functions.length; i++) {
+ var result = functions[i][0].bind(field)(isKeyUp, functions[i][1]);
+ if (result !== true) {
+ errors[field.id][$type(result) == 'array' ? 'extend' : 'push'](result);
+ }
+ }
+}
+
+/**
+ * Validates form field and parent fieldset
+ *
+ * @param Element field
+ * @param boolean isKeyUp
+ */
+function validate_field_and_fieldset(field, isKeyUp) {
+ var errors = {};
+ validate_field(field, isKeyUp, errors);
+ validate_fieldset(field.getParent('fieldset'), isKeyUp, errors);
+ displayErrors(errors);
+}
+
+/**
+ * Marks field depending on its value (system default or custom)
+ *
+ * @param Element field
+ */
+function markField(field) {
+ var type = getFieldType(field);
+ var isDefault = checkFieldDefault(field, type);
+
+ // checkboxes uses parent <span> for marking
+ var fieldMarker = (type == 'checkbox') ? field.getParent() : field;
+ setRestoreDefaultBtn(field, !isDefault);
+ fieldMarker[isDefault ? 'removeClass' : 'addClass']('custom');
+}
+
+/**
+ * Enables or disables the "restore default value" button
+ *
+ * @param Element field
+ * @param bool display
+ */
+function setRestoreDefaultBtn(field, display) {
+ var td = field.getParent('td');
+ if (!td) return;
+ var el = td.getElement('.restore-default');
+ if (!el) return;
+ el.style.display = (display ? '' : 'none');
+}
+
+window.addEvent('domready', function() {
+ var elements = $$('input[id], select[id], textarea[id]');
+ var elements_count = elements.length;
+
+ // register validators and mark custom values
+ for (var i = 0; i < elements_count; i++) {
+ var el = elements[i];
+ markField(el);
+ el.addEvent('change', function(e) {
+ validate_field_and_fieldset(this, false);
+ markField(this);
+ });
+ // text fields can be validated after each change
+ if (el.tagName == 'INPUT' && el.type == 'text') {
+ el.addEvent('keyup', function(e) {
+ validate_field_and_fieldset(this, true);
+ markField(el);
+ });
+ }
+ // disable textarea spellcheck
+ if (el.tagName == 'TEXTAREA') {
+ el.setProperty('spellcheck', false)
+ }
+ }
+
+ // check whether we've refreshed a page and browser remembered modified
+ // form values
+ var check_page_refresh = $('check_page_refresh');
+ if (!check_page_refresh || check_page_refresh.value == '1') {
+ // run all field validators
+ var errors = {};
+ for (var i = 0; i < elements_count; i++) {
+ validate_field(elements[i], false, errors);
+ }
+ // run all fieldset validators
+ $$('fieldset').each(function(el){
+ validate_fieldset(el, false, errors);
+ });
+
+ displayErrors(errors);
+ } else if (check_page_refresh) {
+ check_page_refresh.value = '1';
+ }
+});
+
+//
+// END: Form validation and field operations
+// ------------------------------------------------------------------
+
+// ------------------------------------------------------------------
+// Tabbed forms
+//
+
+/**
+ * Sets active tab
+ *
+ * @param Element tab_link
+ */
+function setTab(tab_link) {
+ var tabs_menu = tab_link.getParent('.tabs');
+
+ var links = tabs_menu.getElements('a');
+ var contents;
+ for (var i = 0, imax = links.length; i < imax; i++) {
+ contents = $(links[i].getProperty('href').substr(1));
+ if (links[i] == tab_link) {
+ links[i].addClass('active');
+ contents.style.display = 'block';
+ } else {
+ links[i].removeClass('active');
+ contents.style.display = 'none';
+ }
+ }
+ location.hash = 'tab_' + tab_link.getProperty('href').substr(1);
+}
+
+window.addEvent('domready', function() {
+ var tabs = $$('.tabs');
+ var url_tab = location.hash.match(/^#tab_.+/)
+ ? $$('a[href$="' + location.hash.substr(5) + '"]') : null;
+ if (url_tab) {
+ url_tab = url_tab[0];
+ }
+ // add tabs events and activate one tab (the first one or indicated by location hash)
+ for (var i = 0, imax = tabs.length; i < imax; i++) {
+ var links = tabs[i].getElements('a');
+ var selected_tab = links[0];
+ for (var j = 0, jmax = links.length; j < jmax; j++) {
+ links[j].addEvent('click', function(e) {
+ e.stop();
+ setTab(this);
+ });
+ if (links[j] == url_tab) {
+ selected_tab = links[j];
+ }
+ }
+ setTab(selected_tab);
+ }
+ // tab links handling, check each 200ms
+ // (works with history in FF, further browser support here would be an overkill)
+ var prev_hash = location.hash;
+ (function() {
+ if (location.hash != prev_hash) {
+ prev_hash = location.hash;
+ var url_tab = location.hash.match(/^#tab_.+/)
+ ? $$('a[href$="' + location.hash.substr(5) + '"]') : null;
+ if (url_tab) {
+ setTab(url_tab[0]);
+ }
+ }
+ }).periodical(200);
+});
+
+//
+// END: Tabbed forms
+// ------------------------------------------------------------------
+
+// ------------------------------------------------------------------
+// Form reset buttons
+//
+
+window.addEvent('domready', function() {
+ var buttons = $$('input[type=button]');
+ for (var i = 0, imax = buttons.length; i < imax; i++) {
+ buttons[i].addEvent('click', function(e) {
+ var fields = this.getParent('fieldset').getElements('input, select, textarea');
+ for (var i = 0, imax = fields.length; i < imax; i++) {
+ setFieldValue(fields[i], getFieldType(fields[i]));
+ }
+ });
+ }
+});
+
+//
+// END: Form reset buttons
+// ------------------------------------------------------------------
+
+// ------------------------------------------------------------------
+// "Restore default" and "set value" buttons
+//
+
+/**
+ * Restores field's default value
+ *
+ * @param String field_id
+ */
+function restoreField(field_id) {
+ var field = $(field_id);
+ if (!field || !$defined(defaultValues[field_id])) {
+ return;
+ }
+ setFieldValue(field, getFieldType(field), defaultValues[field_id]);
+}
+
+window.addEvent('domready', function() {
+ var buttons = $$('.restore-default, .set-value');
+ var fixIE = Browser.Engine.name == 'trident' && Browser.Engine.version == 4;
+ for (var i = 0, imax = buttons.length; i < imax; i++) {
+ buttons[i].set('opacity', 0.25);
+ if (!buttons[i].hasClass('restore-default')) {
+ // restore-default is handled by markField
+ buttons[i].style.display = '';
+ }
+ buttons[i].addEvents({
+ mouseenter: function(e) {this.set('opacity', 1);},
+ mouseleave: function(e) {this.set('opacity', 0.25);},
+ click: function(e) {
+ e.stop();
+ var href = this.getProperty('href').substr(1);
+ var field_id;
+ if (this.hasClass('restore-default')) {
+ field_id = href;
+ restoreField(field_id);
+ } else {
+ field_id = href.match(/^[^=]+/)[0];
+ var value = href.match(/=(.+)$/)[1];
+ setFieldValue($(field_id), 'text', value);
+ }
+ $(field_id).fireEvent('change');
+ }
+ });
+ // fix IE showing <img> alt text instead of link title
+ if (fixIE) {
+ buttons[i].getChildren('img')[0].alt = buttons[i].title;
+ }
+ }
+});
+
+//
+// END: "Restore default" and "set value" buttons
+// ------------------------------------------------------------------
diff --git a/setup/styles.css b/setup/styles.css
new file mode 100644
index 0000000000..0b89143286
--- /dev/null
+++ b/setup/styles.css
@@ -0,0 +1,379 @@
+/* global styles */
+
+body {
+ padding-bottom: 1em;
+}
+
+img {
+ border: 0;
+}
+
+a {
+ color: #004C96;
+}
+
+a:hover, a:active {
+ color: #000;
+}
+
+h1 {
+ font-size: 1.5em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+/* language selection box */
+
+#select_lang {
+ position: absolute;
+ right: 1em;
+ top: 1em;
+}
+
+/* menu */
+
+#menu {
+ float: left;
+ width: 200px;
+}
+
+#menu ul {
+ margin: 1em 1em 1em 0.5em;
+ padding: 0 0.5em;
+ list-style: none;
+}
+
+#menu li a {
+ padding: 3px;
+ font-weight: bold;
+ display: block;
+ color: #669;
+ text-decoration: none;
+ zoom: 1; /* IE fix */
+}
+
+#menu li a:hover, #menu li a:active {
+ color: #C00;
+}
+
+/* page contents and footer layout */
+
+#page {
+ margin-left: 200px;
+}
+
+#footer {
+ margin-top: 1em;
+}
+
+#footer a {
+ margin-right: 0.5em;
+ text-decoration: none;
+ font-size: small;
+}
+
+/* phpMyAdmin logo colors */
+
+.blue {
+ color: #7584B3;
+}
+
+.orange {
+ color: #FFAD17;
+}
+
+.red {
+ color: #C00;
+}
+
+/* main page messages */
+
+div.notice, div.warning, div.error {
+ margin: 0.5em 0;
+ padding: 10px 10px 10px 36px;
+ border: 1px solid #000;
+ background: #FFD url(../themes/original/img/b_tipp.png) no-repeat 10px 0.8em;
+}
+
+div.notice h4, div.warning h4, div.error h4 {
+ font-weight: bold;
+ font-size: large;
+ margin: 0 0 0.2em 0;
+ border-bottom: 1px solid #000;
+}
+
+div.notice {
+ border-color: #FFD700;
+ background-color: #FFD;
+ background-image: url(../themes/original/img/s_notice.png);
+}
+
+div.notice h4 {
+ border-color: #FFD700;
+}
+
+div.warning {
+ border-color: #C00;
+ background-color: #FFC;
+ background-image: url(../themes/original/img/s_warn.png);
+}
+
+div.warning h4 {
+ color: #C00;
+ border-color: #C00;
+}
+
+div.error {
+ border-color: #D00;
+ background-color: #FFC;
+ background-image: url(../themes/original/img/s_error.png);
+}
+
+div.error h4 {
+ color: #D00;
+ border-color: #D00;
+}
+
+/* form tabs */
+
+ul.tabs {
+ margin: 0;
+ padding: 0 0 7px 0;
+ list-style: none;
+ font-weight: bold;
+}
+
+ul.tabs li {
+ float: left;
+}
+
+ul.tabs li a {
+ display: block;
+ margin: 2px 2px 0;
+ padding: 2px 8px;
+ background: #DEE1FF;
+ white-space: nowrap;
+ text-decoration: none;
+ border: 1px #9AA4FF solid;
+ border-bottom: none;
+}
+
+ul.tabs li a:hover, ul.tabs li a:active, ul.tabs li a.active {
+ margin: 0;
+ padding: 2px 10px 4px;
+ background: #F7FBFF;
+}
+
+ul.tabs li a:hover, ul.tabs li a:active {
+ color: #C00;
+}
+
+.tabs_contents {
+ border-top: 2px #66B solid;
+}
+
+.tabs_contents fieldset {
+ margin-top: 0;
+ border-top: none;
+}
+
+.tabs_contents legend {
+ display: none;
+}
+
+/* "restore default value" and "set value: foo" buttons */
+
+.restore-default img, .set-value img {
+ margin-bottom: -3px;
+}
+
+/* forms */
+
+fieldset {
+ padding: 0;
+ margin-top: 1em;
+ border: 2px #DEE1FF solid;
+ background: #DEE1FF;
+}
+
+.form {
+ border: 2px #DEE1FF solid;
+}
+
+fieldset legend {
+ margin-left: 1em;
+ padding: 2px 8px;
+ font-weight: bold;
+ background: #F7FBFF;
+ border: 1px #9AA4FF solid;
+}
+
+fieldset p {
+ margin: 0;
+ padding: 0.5em;
+ background: #DEE1FF;
+}
+
+fieldset .errors { /* form error list */
+ margin: 0 -2px 1em -2px;
+ padding: 0.5em 1.5em;
+ background: #FBEAD9;
+ border: 1px #C83838 solid;
+ border-width: 1px 0;
+ list-style: none;
+ font-family: sans-serif;
+ font-size: small;
+}
+
+fieldset .inline_errors { /* field error list */
+ margin: 0.3em 0.3em 0.3em 0;
+ padding: 0;
+ list-style: none;
+ color: #9A0000;
+}
+
+fieldset table {
+ background: #FFF;
+}
+
+fieldset th {
+ width: 40%;
+ min-width: 350px;
+ padding: 0.3em 0.3em 0.3em 0.5em;
+ text-align: left;
+ vertical-align: top;
+}
+
+fieldset th small {
+ display: block;
+}
+
+fieldset .doc {
+ margin-left: 1em;
+}
+
+fieldset td {
+ padding-top: 0.3em;
+ vertical-align: top;
+}
+
+fieldset th small {
+ font-weight: normal;
+ font-family: sans-serif;
+ font-size: x-small;
+ color: #666;
+}
+
+fieldset th, fieldset td {
+ border-top: 1px #555 dotted;
+}
+
+fieldset .lastrow, .form .lastrow {
+ background: #F7FBFF;
+ padding: 0.5em;
+ text-align: center;
+}
+
+.form .lastrow {
+ border-top: 1px #555 dotted;
+}
+
+fieldset .lastrow input, .form .lastrow input {
+ font-weight: bold;
+}
+
+/* simple form, without header and legend */
+
+fieldset.simple {
+ border-top-color: #DEE1FF;
+}
+
+fieldset.simple legend {
+ display: none;
+}
+
+fieldset.simple th, fieldset.simple td {
+ border-top: none;
+ border-bottom: 1px #555 dotted;
+}
+
+fieldset.simple .lastrow {
+ border: 0;
+}
+
+/* form elements */
+
+span.checkbox {
+ padding: 2px;
+}
+
+.custom { /* customized field */
+ background: #FFC;
+}
+
+span.checkbox.custom {
+ padding: 1px;
+ border: 1px #EDEC90 solid;
+ background: #FFC;
+}
+
+input[type="text"], select, textarea {
+ border: 1px #A7A6AA solid;
+}
+
+input[type="text"]:focus, select:focus, textarea:focus {
+ border: 1px #6676FF solid;
+ background: #F7FBFF;
+}
+
+.green { /* default form button */
+ color: #080;
+}
+
+table.datatable {
+ margin: 0.5em 0 1em;
+}
+
+table.datatable th {
+ padding: 0 1em 0 0.5em;
+ border-bottom: 2px #66F solid;
+ text-align: left;
+}
+
+table.datatable td {
+ padding: 1px 0.5em;
+ border-bottom: 1px #DEE1FF solid;
+}
+
+/* textarea with config file's contents */
+
+#textconfig {
+ width: 100%;
+ border: 0;
+}
+
+/* error list */
+
+dd {
+ margin-left: 0.5em;
+}
+
+dd:before {
+ content: "\25B8 ";
+}
+
+/* links on failed validation page, when saving a form */
+
+a.btn {
+ padding: 1px 5px;
+ text-decoration: none;
+ background: #E2E8FF;
+ border: 1px #A6C8FF solid;
+ border-top-color: #AFD0FF;
+ border-left-color: #AFD0FF;
+ font-weight: bold;
+}
+
+a.btn:hover, a.btn:active {
+ background: #E6F5FF;
+ color: #004C96;
+}
diff --git a/setup/validate.php b/setup/validate.php
new file mode 100644
index 0000000000..2804c1e705
--- /dev/null
+++ b/setup/validate.php
@@ -0,0 +1,20 @@
+<?php
+require './lib/common.inc.php';
+
+$validators = array();
+require './setup/lib/validate.lib.php';
+
+header('Content-type: application/json');
+
+$vids = explode(',', filter_input(INPUT_POST, 'id'));
+$values = json_decode(filter_input(INPUT_POST, 'values'));
+if (!($values instanceof stdClass)) {
+ die('Wrong data');
+}
+$values = (array)$values;
+$result = validate($vids, $values, true);
+if ($result === false) {
+ $result = 'Wrong data or no validation for ' . $vids;
+}
+echo $result !== true ? json_encode($result) : '';
+?> \ No newline at end of file
diff --git a/show_config_errors.php b/show_config_errors.php
new file mode 100644
index 0000000000..2b6508fd03
--- /dev/null
+++ b/show_config_errors.php
@@ -0,0 +1,17 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Simple wrapper just to enable error reporting and include config
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+echo "Starting to parse config file...\n";
+
+error_reporting(E_ALL);
+require './config.inc.php';
+
+?>
diff --git a/sql.php b/sql.php
new file mode 100644
index 0000000000..7cfd12b6e4
--- /dev/null
+++ b/sql.php
@@ -0,0 +1,700 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @todo we must handle the case if sql.php is called directly with a query
+ * what returns 0 rows - to prevent cyclic redirects or includes
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+require_once './libraries/check_user_privileges.lib.php';
+require_once './libraries/bookmark.lib.php';
+
+$GLOBALS['js_include'][] = 'mootools.js';
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+// Security checkings
+if (! empty($goto)) {
+ $is_gotofile = preg_replace('@^([^?]+).*$@s', '\\1', $goto);
+ if (! @file_exists('./' . $is_gotofile)) {
+ unset($goto);
+ } else {
+ $is_gotofile = ($is_gotofile == $goto);
+ }
+} else {
+ $goto = (! strlen($table)) ? $cfg['DefaultTabDatabase'] : $cfg['DefaultTabTable'];
+ $is_gotofile = true;
+} // end if
+
+if (!isset($err_url)) {
+ $err_url = (!empty($back) ? $back : $goto)
+ . '?' . PMA_generate_common_url($db)
+ . ((strpos(' ' . $goto, 'db_') != 1 && strlen($table)) ? '&amp;table=' . urlencode($table) : '');
+} // end if
+
+// Coming from a bookmark dialog
+if (isset($fields['query'])) {
+ $sql_query = $fields['query'];
+}
+
+// This one is just to fill $db
+if (isset($fields['dbase'])) {
+ $db = $fields['dbase'];
+}
+
+// Default to browse if no query set and we have table
+// (needed for browsing from DefaultTabTable)
+if (empty($sql_query) && strlen($table) && strlen($db)) {
+ require_once './libraries/bookmark.lib.php';
+ $book_sql_query = PMA_Bookmark_get($db, '\'' . PMA_sqlAddslashes($table) . '\'',
+ 'label');
+
+ if (! empty($book_sql_query)) {
+ $sql_query = $book_sql_query;
+ } else {
+ $sql_query = 'SELECT * FROM ' . PMA_backquote($table);
+ }
+ unset($book_sql_query);
+
+ // set $goto to what will be displayed if query returns 0 rows
+ $goto = 'tbl_structure.php';
+} else {
+ // Now we can check the parameters
+ PMA_checkParameters(array('sql_query'));
+}
+
+// instead of doing the test twice
+$is_drop_database = preg_match('/DROP[[:space:]]+(DATABASE|SCHEMA)[[:space:]]+/i',
+ $sql_query);
+
+/**
+ * Check rights in case of DROP DATABASE
+ *
+ * This test may be bypassed if $is_js_confirmed = 1 (already checked with js)
+ * but since a malicious user may pass this variable by url/form, we don't take
+ * into account this case.
+ */
+if (!defined('PMA_CHK_DROP')
+ && !$cfg['AllowUserDropDatabase']
+ && $is_drop_database
+ && !$is_superuser) {
+ require_once './libraries/header.inc.php';
+ PMA_mysqlDie($strNoDropDatabases, '', '', $err_url);
+} // end if
+
+require_once './libraries/display_tbl.lib.php';
+PMA_displayTable_checkConfigParams();
+
+/**
+ * Need to find the real end of rows?
+ */
+if (isset($find_real_end) && $find_real_end) {
+ $unlim_num_rows = PMA_Table::countRecords($db, $table, true, true);
+ $_SESSION['userconf']['pos'] = @((ceil($unlim_num_rows / $_SESSION['userconf']['max_rows']) - 1) * $_SESSION['userconf']['max_rows']);
+}
+
+
+/**
+ * Bookmark add
+ */
+if (isset($store_bkm)) {
+ PMA_Bookmark_save($fields, (isset($bkm_all_users) && $bkm_all_users == 'true' ? true : false));
+ PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . $goto);
+} // end if
+
+/**
+ * Parse and analyze the query
+ */
+require_once './libraries/parse_analyze.lib.php';
+
+/**
+ * Sets or modifies the $goto variable if required
+ */
+if ($goto == 'sql.php') {
+ $is_gotofile = false;
+ $goto = 'sql.php?'
+ . PMA_generate_common_url($db, $table)
+ . '&amp;sql_query=' . urlencode($sql_query);
+} // end if
+
+
+/**
+ * Go back to further page if table should not be dropped
+ */
+if (isset($btnDrop) && $btnDrop == $strNo) {
+ if (!empty($back)) {
+ $goto = $back;
+ }
+ if ($is_gotofile) {
+ if (strpos($goto, 'db_') === 0 && strlen($table)) {
+ $table = '';
+ }
+ $active_page = $goto;
+ require './' . PMA_securePath($goto);
+ } else {
+ PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . str_replace('&amp;', '&', $goto));
+ }
+ exit();
+} // end if
+
+
+/**
+ * Displays the confirm page if required
+ *
+ * This part of the script is bypassed if $is_js_confirmed = 1 (already checked
+ * with js) because possible security issue is not so important here: at most,
+ * the confirm message isn't displayed.
+ *
+ * Also bypassed if only showing php code.or validating a SQL query
+ */
+if (! $cfg['Confirm'] || isset($_REQUEST['is_js_confirmed']) || isset($btnDrop)
+ // if we are coming from a "Create PHP code" or a "Without PHP Code"
+ // dialog, we won't execute the query anyway, so don't confirm
+ || isset($GLOBALS['show_as_php'])
+ || !empty($GLOBALS['validatequery'])) {
+ $do_confirm = false;
+} else {
+ $do_confirm = isset($analyzed_sql[0]['queryflags']['need_confirm']);
+}
+
+if ($do_confirm) {
+ $stripped_sql_query = $sql_query;
+ require_once './libraries/header.inc.php';
+ if ($is_drop_database) {
+ echo '<h1 class="warning">' . $strDropDatabaseStrongWarning . '</h1>';
+ }
+ echo '<form action="sql.php" method="post">' . "\n"
+ .PMA_generate_common_hidden_inputs($db, $table);
+ ?>
+ <input type="hidden" name="sql_query" value="<?php echo htmlspecialchars($sql_query); ?>" />
+ <input type="hidden" name="zero_rows" value="<?php echo isset($zero_rows) ? PMA_sanitize($zero_rows) : ''; ?>" />
+ <input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+ <input type="hidden" name="back" value="<?php echo isset($back) ? PMA_sanitize($back) : ''; ?>" />
+ <input type="hidden" name="reload" value="<?php echo isset($reload) ? PMA_sanitize($reload) : 0; ?>" />
+ <input type="hidden" name="purge" value="<?php echo isset($purge) ? PMA_sanitize($purge) : ''; ?>" />
+ <input type="hidden" name="cpurge" value="<?php echo isset($cpurge) ? PMA_sanitize($cpurge) : ''; ?>" />
+ <input type="hidden" name="purgekey" value="<?php echo isset($purgekey) ? PMA_sanitize($purgekey) : ''; ?>" />
+ <input type="hidden" name="show_query" value="<?php echo isset($show_query) ? PMA_sanitize($show_query) : ''; ?>" />
+ <?php
+ echo '<fieldset class="confirmation">' . "\n"
+ .' <legend>' . $strDoYouReally . '</legend>'
+ .' <tt>' . htmlspecialchars($stripped_sql_query) . '</tt>' . "\n"
+ .'</fieldset>' . "\n"
+ .'<fieldset class="tblFooters">' . "\n";
+ ?>
+ <input type="submit" name="btnDrop" value="<?php echo $strYes; ?>" id="buttonYes" />
+ <input type="submit" name="btnDrop" value="<?php echo $strNo; ?>" id="buttonNo" />
+ <?php
+ echo '</fieldset>' . "\n"
+ . '</form>' . "\n";
+
+ /**
+ * Displays the footer and exit
+ */
+ require_once './libraries/footer.inc.php';
+} // end if $do_confirm
+
+
+// Defines some variables
+// A table has to be created, renamed, dropped -> navi frame should be reloaded
+/**
+ * @todo use the parser/analyzer
+ */
+
+if (empty($reload)
+ && preg_match('/^(CREATE|ALTER|DROP)\s+(VIEW|TABLE|DATABASE|SCHEMA)\s+/i', $sql_query)) {
+ $reload = 1;
+}
+
+// SK -- Patch: $is_group added for use in calculation of total number of
+// rows.
+// $is_count is changed for more correct "LIMIT" clause
+// appending in queries like
+// "SELECT COUNT(...) FROM ... GROUP BY ..."
+
+/**
+ * @todo detect all this with the parser, to avoid problems finding
+ * those strings in comments or backquoted identifiers
+ */
+
+$is_explain = $is_count = $is_export = $is_delete = $is_insert = $is_affected = $is_show = $is_maint = $is_analyse = $is_group = $is_func = $is_replace = false;
+if ($is_select) { // see line 141
+ $is_group = preg_match('@(GROUP[[:space:]]+BY|HAVING|SELECT[[:space:]]+DISTINCT)[[:space:]]+@i', $sql_query);
+ $is_func = !$is_group && (preg_match('@[[:space:]]+(SUM|AVG|STD|STDDEV|MIN|MAX|BIT_OR|BIT_AND)\s*\(@i', $sql_query));
+ $is_count = !$is_group && (preg_match('@^SELECT[[:space:]]+COUNT\((.*\.+)?.*\)@i', $sql_query));
+ $is_export = (preg_match('@[[:space:]]+INTO[[:space:]]+OUTFILE[[:space:]]+@i', $sql_query));
+ $is_analyse = (preg_match('@[[:space:]]+PROCEDURE[[:space:]]+ANALYSE@i', $sql_query));
+} elseif (preg_match('@^EXPLAIN[[:space:]]+@i', $sql_query)) {
+ $is_explain = true;
+} elseif (preg_match('@^DELETE[[:space:]]+@i', $sql_query)) {
+ $is_delete = true;
+ $is_affected = true;
+} elseif (preg_match('@^(INSERT|LOAD[[:space:]]+DATA|REPLACE)[[:space:]]+@i', $sql_query)) {
+ $is_insert = true;
+ $is_affected = true;
+ if (preg_match('@^(REPLACE)[[:space:]]+@i', $sql_query)) {
+ $is_replace = true;
+ }
+} elseif (preg_match('@^UPDATE[[:space:]]+@i', $sql_query)) {
+ $is_affected = true;
+} elseif (preg_match('@^[[:space:]]*SHOW[[:space:]]+@i', $sql_query)) {
+ $is_show = true;
+} elseif (preg_match('@^(CHECK|ANALYZE|REPAIR|OPTIMIZE)[[:space:]]+TABLE[[:space:]]+@i', $sql_query)) {
+ $is_maint = true;
+}
+
+// Do append a "LIMIT" clause?
+if ((! $cfg['ShowAll'] || $_SESSION['userconf']['max_rows'] != 'all')
+ && ! ($is_count || $is_export || $is_func || $is_analyse)
+ && isset($analyzed_sql[0]['queryflags']['select_from'])
+ && ! isset($analyzed_sql[0]['queryflags']['offset'])
+ && empty($analyzed_sql[0]['limit_clause'])
+ ) {
+ $sql_limit_to_append = ' LIMIT ' . $_SESSION['userconf']['pos'] . ', ' . $_SESSION['userconf']['max_rows'] . " ";
+
+ $full_sql_query = $analyzed_sql[0]['section_before_limit'] . "\n" . $sql_limit_to_append . $analyzed_sql[0]['section_after_limit'];
+ /**
+ * @todo pretty printing of this modified query
+ */
+ if (isset($display_query)) {
+ // if the analysis of the original query revealed that we found
+ // a section_after_limit, we now have to analyze $display_query
+ // to display it correctly
+
+ if (!empty($analyzed_sql[0]['section_after_limit']) && trim($analyzed_sql[0]['section_after_limit']) != ';') {
+ $analyzed_display_query = PMA_SQP_analyze(PMA_SQP_parse($display_query));
+ $display_query = $analyzed_display_query[0]['section_before_limit'] . "\n" . $sql_limit_to_append . $analyzed_display_query[0]['section_after_limit'];
+ }
+ }
+
+} else {
+ $full_sql_query = $sql_query;
+} // end if...else
+
+if (strlen($db)) {
+ PMA_DBI_select_db($db);
+}
+
+// E x e c u t e t h e q u e r y
+
+// Only if we didn't ask to see the php code (mikebeck)
+if (isset($GLOBALS['show_as_php']) || !empty($GLOBALS['validatequery'])) {
+ unset($result);
+ $num_rows = 0;
+} else {
+ if (isset($_SESSION['profiling']) && PMA_profilingSupported()) {
+ PMA_DBI_query('SET PROFILING=1;');
+ }
+
+ // garvin: Measure query time.
+ // TODO-Item http://sourceforge.net/tracker/index.php?func=detail&aid=571934&group_id=23067&atid=377411
+ $querytime_before = array_sum(explode(' ', microtime()));
+
+ $result = @PMA_DBI_try_query($full_sql_query, null, PMA_DBI_QUERY_STORE);
+
+ $querytime_after = array_sum(explode(' ', microtime()));
+
+ $GLOBALS['querytime'] = $querytime_after - $querytime_before;
+
+ // Displays an error message if required and stop parsing the script
+ if ($error = PMA_DBI_getError()) {
+ if ($is_gotofile) {
+ if (strpos($goto, 'db_') === 0 && strlen($table)) {
+ $table = '';
+ }
+ $active_page = $goto;
+ $message = PMA_Message::rawError($error);
+ require './' . PMA_securePath($goto);
+ } else {
+ require_once './libraries/header.inc.php';
+ $full_err_url = (preg_match('@^(db|tbl)_@', $err_url))
+ ? $err_url . '&amp;show_query=1&amp;sql_query=' . urlencode($sql_query)
+ : $err_url;
+ PMA_mysqlDie($error, $full_sql_query, '', $full_err_url);
+ }
+ exit;
+ }
+ unset($error);
+
+ // Gets the number of rows affected/returned
+ // (This must be done immediately after the query because
+ // mysql_affected_rows() reports about the last query done)
+
+ if (!$is_affected) {
+ $num_rows = ($result) ? @PMA_DBI_num_rows($result) : 0;
+ } elseif (!isset($num_rows)) {
+ $num_rows = @PMA_DBI_affected_rows();
+ }
+
+ // Grabs the profiling results
+ if (isset($_SESSION['profiling']) && PMA_profilingSupported()) {
+ $profiling_results = PMA_DBI_fetch_result('SHOW PROFILE;');
+ }
+
+ // Checks if the current database has changed
+ // This could happen if the user sends a query like "USE `database`;"
+ /**
+ * commented out auto-switching to active database - really required?
+ * bug #1814718 win: table list disappears (mixed case db names)
+ * https://sourceforge.net/support/tracker.php?aid=1814718
+ * @todo RELEASE test and comit or rollback before release
+ $current_db = PMA_DBI_fetch_value('SELECT DATABASE()');
+ if ($db !== $current_db) {
+ $db = $current_db;
+ $reload = 1;
+ }
+ unset($current_db);
+ */
+
+ // tmpfile remove after convert encoding appended by Y.Kawada
+ if (function_exists('PMA_kanji_file_conv')
+ && (isset($textfile) && file_exists($textfile))) {
+ unlink($textfile);
+ }
+
+ // Counts the total number of rows for the same 'SELECT' query without the
+ // 'LIMIT' clause that may have been programatically added
+
+ if (empty($sql_limit_to_append)) {
+ $unlim_num_rows = $num_rows;
+ // if we did not append a limit, set this to get a correct
+ // "Showing rows..." message
+ //$_SESSION['userconf']['max_rows'] = 'all';
+ } elseif ($is_select) {
+
+ // c o u n t q u e r y
+
+ // If we are "just browsing", there is only one table,
+ // and no where clause (or just 'WHERE 1 '),
+ // so we do a quick count (which uses MaxExactCount)
+ // because SQL_CALC_FOUND_ROWS
+ // is not quick on large InnoDB tables
+
+ // but do not count again if we did it previously
+ // due to $find_real_end == true
+
+ if (!$is_group
+ && !isset($analyzed_sql[0]['queryflags']['union'])
+ && !isset($analyzed_sql[0]['table_ref'][1]['table_name'])
+ && (empty($analyzed_sql[0]['where_clause'])
+ || $analyzed_sql[0]['where_clause'] == '1 ')
+ && !isset($find_real_end)
+ ) {
+
+ // "j u s t b r o w s i n g"
+ $unlim_num_rows = PMA_Table::countRecords($db, $table, true);
+
+ } else { // n o t " j u s t b r o w s i n g "
+
+ // add select expression after the SQL_CALC_FOUND_ROWS
+
+ // for UNION, just adding SQL_CALC_FOUND_ROWS
+ // after the first SELECT works.
+
+ // take the left part, could be:
+ // SELECT
+ // (SELECT
+ $count_query = PMA_SQP_formatHtml($parsed_sql, 'query_only', 0, $analyzed_sql[0]['position_of_first_select'] + 1);
+ $count_query .= ' SQL_CALC_FOUND_ROWS ';
+ // add everything that was after the first SELECT
+ $count_query .= PMA_SQP_formatHtml($parsed_sql, 'query_only', $analyzed_sql[0]['position_of_first_select']+1);
+ // ensure there is no semicolon at the end of the
+ // count query because we'll probably add
+ // a LIMIT 1 clause after it
+ $count_query = rtrim($count_query);
+ $count_query = rtrim($count_query, ';');
+
+ // if using SQL_CALC_FOUND_ROWS, add a LIMIT to avoid
+ // long delays. Returned count will be complete anyway.
+ // (but a LIMIT would disrupt results in an UNION)
+
+ if (!isset($analyzed_sql[0]['queryflags']['union'])) {
+ $count_query .= ' LIMIT 1';
+ }
+
+ // run the count query
+
+ PMA_DBI_try_query($count_query);
+ // if (mysql_error()) {
+ // void.
+ // I tried the case
+ // (SELECT `User`, `Host`, `Db`, `Select_priv` FROM `db`)
+ // UNION (SELECT `User`, `Host`, "%" AS "Db",
+ // `Select_priv`
+ // FROM `user`) ORDER BY `User`, `Host`, `Db`;
+ // and although the generated count_query is wrong
+ // the SELECT FOUND_ROWS() work! (maybe it gets the
+ // count from the latest query that worked)
+ //
+ // another case where the count_query is wrong:
+ // SELECT COUNT(*), f1 from t1 group by f1
+ // and you click to sort on count(*)
+ // }
+ $unlim_num_rows = PMA_DBI_fetch_value('SELECT FOUND_ROWS()');
+ } // end else "just browsing"
+
+ } else { // not $is_select
+ $unlim_num_rows = 0;
+ } // end rows total count
+
+ // garvin: if a table or database gets dropped, check column comments.
+ if (isset($purge) && $purge == '1') {
+ require_once './libraries/relation_cleanup.lib.php';
+
+ if (strlen($table) && strlen($db)) {
+ PMA_relationsCleanupTable($db, $table);
+ } elseif (strlen($db)) {
+ PMA_relationsCleanupDatabase($db);
+ } else {
+ // garvin: VOID. No DB/Table gets deleted.
+ } // end if relation-stuff
+ } // end if ($purge)
+
+ // garvin: If a column gets dropped, do relation magic.
+ if (isset($cpurge) && $cpurge == '1' && isset($purgekey)
+ && strlen($db) && strlen($table) && !empty($purgekey)) {
+ require_once './libraries/relation_cleanup.lib.php';
+ PMA_relationsCleanupColumn($db, $table, $purgekey);
+
+ } // end if column PMA_* purge
+} // end else "didn't ask to see php code"
+
+// No rows returned -> move back to the calling page
+if ($num_rows < 1 || $is_affected) {
+ if ($is_delete) {
+ $message = PMA_Message::success('strRowsDeleted');
+ $message->addParam($num_rows);
+ } elseif ($is_insert) {
+ if ($is_replace) {
+ /* For replace we get DELETED + INSERTED row count, so we have to call it affected */
+ $message = PMA_Message::success('strRowsAffected');
+ $message->addParam($num_rows);
+ } else {
+ $message = PMA_Message::success('strRowsInserted');
+ $message->addParam($num_rows);
+ }
+ $insert_id = PMA_DBI_insert_id();
+ if ($insert_id != 0) {
+ // insert_id is id of FIRST record inserted in one insert, so if we inserted multiple rows, we had to increment this
+ $message->addMessage('[br]');
+ // need to use a temporary because the Message class
+ // currently supports adding parameters only to the first
+ // message
+ $_inserted = PMA_Message::notice('strInsertedRowId');
+ $_inserted->addParam($insert_id + $num_rows - 1);
+ $message->addMessage($_inserted);
+ }
+ } elseif ($is_affected) {
+ $message = PMA_Message::success('strRowsAffected');
+ $message->addParam($num_rows);
+
+ // Ok, here is an explanation for the !$is_select.
+ // The form generated by sql_query_form.lib.php
+ // and db_sql.php has many submit buttons
+ // on the same form, and some confusion arises from the
+ // fact that $zero_rows is sent for every case.
+ // The $zero_rows containing $strSuccess and sent with
+ // the form should not have priority over
+ // errors like $strEmptyResultSet
+ } elseif (!empty($zero_rows) && !$is_select) {
+ $message = PMA_Message::rawSuccess($zero_rows);
+ } elseif (!empty($GLOBALS['show_as_php'])) {
+ $message = PMA_Message::success('strShowingPhp');
+ } elseif (isset($GLOBALS['show_as_php'])) {
+ /* User disable showing as PHP, query is only displayed */
+ $message = PMA_Message::notice('strShowingSQL');
+ } elseif (!empty($GLOBALS['validatequery'])) {
+ $message = PMA_Message::notice('strValidateSQL');
+ } else {
+ $message = PMA_Message::success('strEmptyResultSet');
+ }
+
+ if (isset($GLOBALS['querytime'])) {
+ $_querytime = PMA_Message::notice('strQueryTime');
+ $_querytime->addParam($GLOBALS['querytime']);
+ $message->addMessage('(');
+ $message->addMessage($_querytime);
+ $message->addMessage(')');
+ }
+
+ if ($is_gotofile) {
+ $goto = PMA_securePath($goto);
+ // Checks for a valid target script
+ $is_db = $is_table = false;
+ include 'libraries/db_table_exists.lib.php';
+ if (strpos($goto, 'tbl_') === 0 && ! $is_table) {
+ if (strlen($table)) {
+ $table = '';
+ }
+ $goto = 'db_sql.php';
+ }
+ if (strpos($goto, 'db_') === 0 && ! $is_db) {
+ if (strlen($db)) {
+ $db = '';
+ }
+ $goto = 'main.php';
+ }
+ // Loads to target script
+ if (strpos($goto, 'db_') === 0
+ || strpos($goto, 'tbl_') === 0) {
+ $GLOBALS['js_include'][] = 'functions.js';
+ }
+ if ($goto != 'main.php') {
+ require_once './libraries/header.inc.php';
+ }
+ $active_page = $goto;
+ require './' . $goto;
+ } else {
+ // avoid a redirect loop when last record was deleted
+ if ('sql.php' == $cfg['DefaultTabTable']) {
+ $goto = str_replace('sql.php','tbl_structure.php',$goto);
+ }
+ PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . str_replace('&amp;', '&', $goto) . '&message=' . urlencode($message));
+ } // end else
+ exit();
+} // end no rows returned
+
+// At least one row is returned -> displays a table with results
+else {
+ // Displays the headers
+ if (isset($show_query)) {
+ unset($show_query);
+ }
+ if (isset($printview) && $printview == '1') {
+ require_once './libraries/header_printview.inc.php';
+ } else {
+ $GLOBALS['js_include'][] = 'functions.js';
+ unset($message);
+ if (strlen($table)) {
+ require './libraries/tbl_common.php';
+ $url_query .= '&amp;goto=tbl_sql.php&amp;back=tbl_sql.php';
+ require './libraries/tbl_info.inc.php';
+ require './libraries/tbl_links.inc.php';
+ } elseif (strlen($db)) {
+ require './libraries/db_common.inc.php';
+ require './libraries/db_info.inc.php';
+ } else {
+ require './libraries/server_common.inc.php';
+ require './libraries/server_links.inc.php';
+ }
+ }
+
+ if (strlen($db)) {
+ require_once './libraries/relation.lib.php';
+ $cfgRelation = PMA_getRelationsParam();
+ }
+
+ // Gets the list of fields properties
+ if (isset($result) && $result) {
+ $fields_meta = PMA_DBI_get_fields_meta($result);
+ $fields_cnt = count($fields_meta);
+ }
+
+ // Display previous update query (from tbl_replace)
+ if (isset($disp_query) && $cfg['ShowSQL'] == true) {
+ PMA_showMessage($disp_message, $disp_query, 'success');
+ }
+
+ if (isset($profiling_results)) {
+ PMA_profilingResults($profiling_results);
+ }
+
+ // Displays the results in a table
+ if (empty($disp_mode)) {
+ // see the "PMA_setDisplayMode()" function in
+ // libraries/display_tbl.lib.php
+ $disp_mode = 'urdr111101';
+ }
+
+ // hide edit and delete links for information_schema
+ if ($db == 'information_schema') {
+ $disp_mode = 'nnnn110111';
+ }
+
+ PMA_displayTable($result, $disp_mode, $analyzed_sql);
+ PMA_DBI_free_result($result);
+
+ // BEGIN INDEX CHECK See if indexes should be checked.
+ if (isset($query_type) && $query_type == 'check_tbl' && isset($selected) && is_array($selected)) {
+ foreach ($selected as $idx => $tbl_name) {
+ $check = PMA_Index::findDuplicates($tbl_name, $db);
+ if (! empty($check)) {
+ printf($strIndexWarningTable, $tbl_name);
+ echo $check;
+ }
+ }
+ } // End INDEX CHECK
+
+ // Bookmark support if required
+ if ($disp_mode[7] == '1'
+ && (! empty($cfg['Bookmark']) && empty($id_bookmark))
+ && !empty($sql_query)) {
+ echo "\n";
+
+ $goto = 'sql.php?'
+ . PMA_generate_common_url($db, $table)
+ . '&amp;sql_query=' . urlencode($sql_query)
+ . '&amp;id_bookmark=1';
+
+ ?>
+<form action="sql.php" method="post" onsubmit="return emptyFormElements(this, 'fields[label]');">
+<?php echo PMA_generate_common_hidden_inputs(); ?>
+<input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+<input type="hidden" name="fields[dbase]" value="<?php echo htmlspecialchars($db); ?>" />
+<input type="hidden" name="fields[user]" value="<?php echo $cfg['Bookmark']['user']; ?>" />
+<input type="hidden" name="fields[query]" value="<?php echo urlencode(isset($complete_query) ? $complete_query : $sql_query); ?>" />
+<fieldset>
+ <legend><?php
+ echo ($cfg['PropertiesIconic'] ? '<img class="icon" src="' . $pmaThemeImage . 'b_bookmark.png" width="16" height="16" alt="' . $strBookmarkThis . '" />' : '')
+ . $strBookmarkThis;
+?>
+ </legend>
+
+ <div class="formelement">
+ <label for="fields_label_"><?php echo $strBookmarkLabel; ?>:</label>
+ <input type="text" id="fields_label_" name="fields[label]" value="" />
+ </div>
+
+ <div class="formelement">
+ <input type="checkbox" name="bkm_all_users" id="bkm_all_users" value="true" />
+ <label for="bkm_all_users"><?php echo $strBookmarkAllUsers; ?></label>
+ </div>
+
+ <div class="clearfloat"></div>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="store_bkm" value="<?php echo $strBookmarkThis; ?>" />
+</fieldset>
+</form>
+ <?php
+ } // end bookmark support
+
+ // Do print the page if required
+ if (isset($printview) && $printview == '1') {
+ ?>
+<script type="text/javascript">
+//<![CDATA[
+// Do print the page
+window.onload = function()
+{
+ if (typeof(window.print) != 'undefined') {
+ window.print();
+ }
+}
+//]]>
+</script>
+ <?php
+ } // end print case
+} // end rows returned
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_addfield.php b/tbl_addfield.php
new file mode 100644
index 0000000000..8d0e998ee8
--- /dev/null
+++ b/tbl_addfield.php
@@ -0,0 +1,224 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Get some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+
+$GLOBALS['js_include'][] = 'functions.js';
+require_once './libraries/header.inc.php';
+
+// Check parameters
+PMA_checkParameters(array('db', 'table'));
+
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+$err_url = 'tbl_sql.php?' . PMA_generate_common_url($db, $table);
+
+/**
+ * The form used to define the field to add has been submitted
+ */
+$abort = false;
+
+// check number of fields to be created
+if (isset($_REQUEST['submit_num_fields'])) {
+ if (isset($_REQUEST['orig_after_field'])) {
+ $_REQUEST['after_field'] = $_REQUEST['orig_after_field'];
+ }
+ if (isset($_REQUEST['orig_field_where'])) {
+ $_REQUEST['field_where'] = $_REQUEST['orig_field_where'];
+ }
+ $num_fields = $_REQUEST['orig_num_fields'] + $_REQUEST['added_fields'];
+ $regenerate = true;
+} elseif (isset($_REQUEST['num_fields']) && intval($_REQUEST['num_fields']) > 0) {
+ $num_fields = (int) $_REQUEST['num_fields'];
+} else {
+ $num_fields = 1;
+}
+
+if (isset($_REQUEST['do_save_data'])) {
+ $query = '';
+ $definitions = array();
+
+ // Transforms the radio button field_key into 3 arrays
+ $field_cnt = count($_REQUEST['field_name']);
+ $field_primary = array();
+ $field_index = array();
+ $field_unique = array();
+ for ($i = 0; $i < $field_cnt; ++$i) {
+ if (isset($_REQUEST['field_key'][$i])
+ && strlen($_REQUEST['field_name'][$i])) {
+ if ($_REQUEST['field_key'][$i] == 'primary_' . $i) {
+ $field_primary[] = $i;
+ }
+ if ($_REQUEST['field_key'][$i] == 'index_' . $i) {
+ $field_index[] = $i;
+ }
+ if ($_REQUEST['field_key'][$i] == 'unique_' . $i) {
+ $field_unique[] = $i;
+ }
+ } // end if
+ } // end for
+
+ // Builds the field creation statement and alters the table
+ for ($i = 0; $i < $field_cnt; ++$i) {
+ // '0' is also empty for php :-(
+ if (empty($_REQUEST['field_name'][$i]) && $_REQUEST['field_name'][$i] != '0') {
+ continue;
+ }
+
+ $definition = ' ADD ' . PMA_Table::generateFieldSpec(
+ $_REQUEST['field_name'][$i],
+ $_REQUEST['field_type'][$i],
+ $_REQUEST['field_length'][$i],
+ $_REQUEST['field_attribute'][$i],
+ isset($_REQUEST['field_collation'][$i])
+ ? $_REQUEST['field_collation'][$i]
+ : '',
+ isset($_REQUEST['field_null'][$i])
+ ? $_REQUEST['field_null'][$i]
+ : 'NOT NULL',
+ $_REQUEST['field_default_type'][$i],
+ $_REQUEST['field_default_value'][$i],
+ isset($_REQUEST['field_extra'][$i])
+ ? $_REQUEST['field_extra'][$i]
+ : false,
+ isset($_REQUEST['field_comments'][$i])
+ ? $_REQUEST['field_comments'][$i]
+ : '',
+ $field_primary,
+ $i
+ );
+
+ if ($_REQUEST['field_where'] != 'last') {
+ // Only the first field can be added somewhere other than at the end
+ if ($i == 0) {
+ if ($_REQUEST['field_where'] == 'first') {
+ $definition .= ' FIRST';
+ } else {
+ $definition .= ' AFTER ' . PMA_backquote($_REQUEST['after_field']);
+ }
+ } else {
+ $definition .= ' AFTER ' . PMA_backquote($_REQUEST['field_name'][$i-1]);
+ }
+ }
+ $definitions[] = $definition;
+ } // end for
+
+ // Builds the primary keys statements and updates the table
+ if (count($field_primary)) {
+ $fields = array();
+ foreach ($field_primary as $field_nr) {
+ $fields[] = $_REQUEST['field_name'][$field_nr];
+ }
+ $definitions[] = ' ADD PRIMARY KEY (' . implode(', ', $fields) . ') ';
+ }
+
+ // Builds the indexes statements and updates the table
+ if (count($field_index)) {
+ $fields = array();
+ foreach ($field_index as $field_nr) {
+ $fields[] = $_REQUEST['field_name'][$field_nr];
+ }
+ $definitions[] = ' ADD INDEX (' . implode(', ', $fields) . ') ';
+ }
+
+ // Builds the uniques statements and updates the table
+ if (count($field_unique)) {
+ $fields = array();
+ foreach ($field_unique as $field_nr) {
+ $fields[] = $_REQUEST['field_name'][$field_nr];
+ }
+ $definitions[] = ' ADD UNIQUE (' . implode(', ', $fields) . ') ';
+ }
+
+ // Builds the fulltext statements and updates the table
+ if (isset($field_fulltext) && count($field_fulltext)) {
+ $fields = array();
+ foreach ($field_fulltext as $field_nr) {
+ $fields[] = $_REQUEST['field_name'][$field_nr];
+ }
+ $definitions[] = ' ADD FULLTEXT (' . implode(', ', $fields) . ') ';
+ }
+
+ // To allow replication, we first select the db to use and then run queries
+ // on this db.
+ PMA_DBI_select_db($db) or PMA_mysqlDie(PMA_getError(), 'USE ' . PMA_backquotes($db), '', $err_url);
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($table) . ' ' . implode(', ', $definitions);
+ $result = PMA_DBI_try_query($sql_query);
+
+ if ($result === true) {
+ // garvin: If comments were sent, enable relation stuff
+ require_once './libraries/relation.lib.php';
+ require_once './libraries/transformations.lib.php';
+
+ // garvin: Update comment table for mime types [MIME]
+ if (isset($_REQUEST['field_mimetype'])
+ && is_array($_REQUEST['field_mimetype'])
+ && $cfg['BrowseMIME']) {
+ foreach ($_REQUEST['field_mimetype'] as $fieldindex => $mimetype) {
+ if (isset($_REQUEST['field_name'][$fieldindex])
+ && strlen($_REQUEST['field_name'][$fieldindex])) {
+ PMA_setMIME($db, $table,
+ $_REQUEST['field_name'][$fieldindex],
+ $mimetype,
+ $_REQUEST['field_transformation'][$fieldindex],
+ $_REQUEST['field_transformation_options'][$fieldindex]);
+ }
+ }
+ }
+
+ // Go back to the structure sub-page
+ $message = PMA_Message::success('strTableAlteredSuccessfully');
+ $message->addParam($table);
+ $active_page = 'tbl_structure.php';
+ require './tbl_structure.php';
+ } else {
+ PMA_mysqlDie('', '', '', $err_url, false);
+ // garvin: An error happened while inserting/updating a table definition.
+ // to prevent total loss of that data, we embed the form once again.
+ // The variable $regenerate will be used to restore data in libraries/tbl_properties.inc.php
+ $num_fields = $_REQUEST['orig_num_fields'];
+ if (isset($_REQUEST['orig_after_field'])) {
+ $_REQUEST['after_field'] = $_REQUEST['orig_after_field'];
+ }
+ if (isset($_REQUEST['orig_field_where'])) {
+ $_REQUEST['field_where'] = $_REQUEST['orig_field_where'];
+ }
+ $regenerate = true;
+ }
+} // end do alter table
+
+/**
+ * Displays the form used to define the new field
+ */
+if ($abort == false) {
+ /**
+ * Gets tables informations
+ */
+ require_once './libraries/tbl_common.php';
+ require_once './libraries/tbl_info.inc.php';
+ /**
+ * Displays top menu links
+ */
+ $active_page = 'tbl_structure.php';
+ require_once './libraries/tbl_links.inc.php';
+ /**
+ * Display the form
+ */
+ $action = 'tbl_addfield.php';
+ require_once './libraries/tbl_properties.inc.php';
+
+ // Diplays the footer
+ require_once './libraries/footer.inc.php';
+}
+
+?>
diff --git a/tbl_alter.php b/tbl_alter.php
new file mode 100644
index 0000000000..873b76c915
--- /dev/null
+++ b/tbl_alter.php
@@ -0,0 +1,205 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Alter one or more table columns/fields
+ *
+ * linked from table_structure, uses libraries/tbl_properties.inc.php to display
+ * form and handles this form data
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+
+$GLOBALS['js_include'][] = 'functions.js';
+require_once './libraries/header.inc.php';
+
+// Check parameters
+PMA_checkParameters(array('db', 'table'));
+
+/**
+ * Gets tables informations
+ */
+require_once './libraries/tbl_common.php';
+require_once './libraries/tbl_info.inc.php';
+
+$active_page = 'tbl_structure.php';
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+$err_url = 'tbl_structure.php?' . PMA_generate_common_url($db, $table);
+
+
+/**
+ * Modifications have been submitted -> updates the table
+ */
+$abort = false;
+if (isset($_REQUEST['do_save_data'])) {
+ $field_cnt = count($_REQUEST['field_orig']);
+ $key_fields = array();
+ $changes = array();
+
+ for ($i = 0; $i < $field_cnt; $i++) {
+ $changes[] = 'CHANGE ' . PMA_Table::generateAlter(
+ $_REQUEST['field_orig'][$i],
+ $_REQUEST['field_name'][$i],
+ $_REQUEST['field_type'][$i],
+ $_REQUEST['field_length'][$i],
+ $_REQUEST['field_attribute'][$i],
+ isset($_REQUEST['field_collation'][$i])
+ ? $_REQUEST['field_collation'][$i]
+ : '',
+ isset($_REQUEST['field_null'][$i])
+ ? $_REQUEST['field_null'][$i]
+ : 'NOT NULL',
+ $_REQUEST['field_default_type'][$i],
+ $_REQUEST['field_default_value'][$i],
+ isset($_REQUEST['field_extra'][$i])
+ ? $_REQUEST['field_extra'][$i]
+ : false,
+ isset($_REQUEST['field_comments'][$i])
+ ? $_REQUEST['field_comments'][$i]
+ : '',
+ $key_fields,
+ $i,
+ $_REQUEST['field_default_orig'][$i]
+ );
+ } // end for
+
+ // Builds the primary keys statements and updates the table
+ $key_query = '';
+ /**
+ * this is a little bit more complex
+ *
+ * @todo if someone selects A_I when altering a column we need to check:
+ * - no other column with A_I
+ * - the column has an index, if not create one
+ *
+ if (count($key_fields)) {
+ $fields = array();
+ foreach ($key_fields as $each_field) {
+ if (isset($_REQUEST['field_name'][$each_field]) && strlen($_REQUEST['field_name'][$each_field])) {
+ $fields[] = PMA_backquote($_REQUEST['field_name'][$each_field]);
+ }
+ } // end for
+ $key_query = ', ADD KEY (' . implode(', ', $fields) . ') ';
+ }
+ */
+
+ // To allow replication, we first select the db to use and then run queries
+ // on this db.
+ PMA_DBI_select_db($db) or PMA_mysqlDie(PMA_DBI_getError(), 'USE ' . PMA_backquote($db) . ';', '', $err_url);
+ // Optimization fix - 2 May 2001 - Robbat2
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($table) . ' ' . implode(', ', $changes) . $key_query;
+ $result = PMA_DBI_try_query($sql_query);
+
+ if ($result !== false) {
+ $message = PMA_Message::success('strTableAlteredSuccessfully');
+ $message->addParam($table);
+ $btnDrop = 'Fake';
+
+ // garvin: If comments were sent, enable relation stuff
+ require_once './libraries/relation.lib.php';
+ require_once './libraries/transformations.lib.php';
+
+ // updaet field names in relation
+ if (isset($_REQUEST['field_orig']) && is_array($_REQUEST['field_orig'])) {
+ foreach ($_REQUEST['field_orig'] as $fieldindex => $fieldcontent) {
+ if ($_REQUEST['field_name'][$fieldindex] != $fieldcontent) {
+ PMA_REL_renameField($db, $table, $fieldcontent,
+ $_REQUEST['field_name'][$fieldindex]);
+ }
+ }
+ }
+
+ // update mime types
+ if (isset($_REQUEST['field_mimetype'])
+ && is_array($_REQUEST['field_mimetype'])
+ && $cfg['BrowseMIME']) {
+ foreach ($_REQUEST['field_mimetype'] as $fieldindex => $mimetype) {
+ if (isset($_REQUEST['field_name'][$fieldindex])
+ && strlen($_REQUEST['field_name'][$fieldindex])) {
+ PMA_setMIME($db, $table, $_REQUEST['field_name'][$fieldindex],
+ $mimetype,
+ $_REQUEST['field_transformation'][$fieldindex],
+ $_REQUEST['field_transformation_options'][$fieldindex]);
+ }
+ }
+ }
+
+ $active_page = 'tbl_structure.php';
+ require './tbl_structure.php';
+ } else {
+ PMA_mysqlDie('', '', '', $err_url, false);
+ // garvin: An error happened while inserting/updating a table definition.
+ // to prevent total loss of that data, we embed the form once again.
+ // The variable $regenerate will be used to restore data in libraries/tbl_properties.inc.php
+ if (isset($_REQUEST['orig_field'])) {
+ $_REQUEST['field'] = $_REQUEST['orig_field'];
+ }
+
+ $regenerate = true;
+ }
+}
+
+/**
+ * No modifications yet required -> displays the table fields
+ *
+ * $selected comes from multi_submits.inc.php
+ */
+if ($abort == false) {
+ if (! isset($selected)) {
+ PMA_checkParameters(array('field'));
+ $selected[] = $_REQUEST['field'];
+ $selected_cnt = 1;
+ } else { // from a multiple submit
+ $selected_cnt = count($selected);
+ }
+
+ /**
+ * @todo optimize in case of multiple fields to modify
+ */
+ for ($i = 0; $i < $selected_cnt; $i++) {
+ $_REQUEST['field'] = PMA_sqlAddslashes($selected[$i], true);
+ $result = PMA_DBI_query('SHOW FULL FIELDS FROM ' . PMA_backquote($table) . ' FROM ' . PMA_backquote($db) . ' LIKE \'' . $_REQUEST['field'] . '\';');
+ $fields_meta[] = PMA_DBI_fetch_assoc($result);
+ PMA_DBI_free_result($result);
+ }
+ $num_fields = count($fields_meta);
+ $action = 'tbl_alter.php';
+
+ // Get more complete field information
+ // For now, this is done just for MySQL 4.1.2+ new TIMESTAMP options
+ // but later, if the analyser returns more information, it
+ // could be executed for any MySQL version and replace
+ // the info given by SHOW FULL FIELDS FROM.
+ /**
+ * @todo put this code into a require()
+ * or maybe make it part of PMA_DBI_get_fields();
+ */
+
+ if (PMA_MYSQL_INT_VERSION < 50025) {
+ // We also need this to correctly learn if a TIMESTAMP is NOT NULL, since
+ // SHOW FULL FIELDS says NULL and SHOW CREATE TABLE says NOT NULL (tested
+ // in MySQL 4.0.25).
+
+ $show_create_table = PMA_DBI_fetch_value(
+ 'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table),
+ 0, 1);
+ $analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
+ }
+
+ require './libraries/tbl_properties.inc.php';
+}
+
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_change.php b/tbl_change.php
new file mode 100644
index 0000000000..c07e3ad9d7
--- /dev/null
+++ b/tbl_change.php
@@ -0,0 +1,1162 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays form for editing and inserting new table rows
+ *
+ * register_globals_save (mark this file save for disabling register globals)
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets the variables sent or posted to this script and displays the header
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Ensures db and table are valid, else moves to the "parent" script
+ */
+require_once './libraries/db_table_exists.lib.php';
+
+
+/**
+ * Sets global variables.
+ * Here it's better to use a if, instead of the '?' operator
+ * to avoid setting a variable to '' when it's not present in $_REQUEST
+ */
+/**
+ * @todo this one is badly named, it's really a WHERE condition
+ * and exists even for tables not having a primary key or unique key
+ */
+if (isset($_REQUEST['primary_key'])) {
+ $primary_key = $_REQUEST['primary_key'];
+}
+if (isset($_SESSION['edit_next'])) {
+ $primary_key = $_SESSION['edit_next'];
+ unset($_SESSION['edit_next']);
+ $after_insert = 'edit_next';
+}
+if (isset($_REQUEST['sql_query'])) {
+ $sql_query = $_REQUEST['sql_query'];
+}
+if (isset($_REQUEST['ShowFunctionFields'])) {
+ $cfg['ShowFunctionFields'] = $_REQUEST['ShowFunctionFields'];
+}
+
+/**
+ * load relation data, foreign keys
+ */
+require_once './libraries/relation.lib.php';
+
+/**
+ * file listing
+ */
+require_once './libraries/file_listing.php';
+
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ * (at this point, $GLOBALS['goto'] will be set but could be empty)
+ */
+if (empty($GLOBALS['goto'])) {
+ $GLOBALS['goto'] = 'db_sql.php';
+}
+/**
+ * @todo check if we could replace by "db_|tbl_" - please clarify!?
+ */
+$_url_params = array(
+ 'db' => $db,
+ 'sql_query' => $sql_query
+);
+
+if (preg_match('@^tbl_@', $GLOBALS['goto'])) {
+ $_url_params['table'] = $table;
+}
+
+$err_url = $GLOBALS['goto'] . PMA_generate_common_url($_url_params);
+unset($_url_params);
+
+
+/**
+ * Sets parameters for links
+ * where is this variable used?
+ * replace by PMA_generate_common_url($url_params);
+ */
+$url_query = PMA_generate_common_url($url_params, 'html', '');
+
+/**
+ * get table information
+ * @todo should be done by a Table object
+ */
+require_once './libraries/tbl_info.inc.php';
+
+/**
+ * Get comments for table fileds/columns
+ */
+$comments_map = array();
+
+if ($GLOBALS['cfg']['ShowPropertyComments']) {
+ $comments_map = PMA_getComments($db, $table);
+}
+
+/**
+ * START REGULAR OUTPUT
+ */
+
+/**
+ * used in ./libraries/header.inc.php to load JavaScript library file
+ */
+$GLOBALS['js_include'][] = 'tbl_change.js';
+
+/**
+ * HTTP and HTML headers
+ */
+require_once './libraries/header.inc.php';
+
+/**
+ * Displays the query submitted and its result
+ *
+ * @todo where does $disp_message and $disp_query come from???
+ */
+if (! empty($disp_message)) {
+ if (! isset($disp_query)) {
+ $disp_query = null;
+ }
+ PMA_showMessage($disp_message, $disp_query);
+}
+
+/**
+ * Displays top menu links
+ */
+require_once './libraries/tbl_links.inc.php';
+
+
+/**
+ * Get the analysis of SHOW CREATE TABLE for this table
+ * @todo should be handled by class Table
+ */
+$show_create_table = PMA_DBI_fetch_value(
+ 'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table),
+ 0, 1);
+$analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
+unset($show_create_table);
+
+/**
+ * Get the list of the fields of the current table
+ */
+PMA_DBI_select_db($db);
+$table_fields = PMA_DBI_fetch_result('SHOW FIELDS FROM ' . PMA_backquote($table) . ';',
+ null, null, null, PMA_DBI_QUERY_STORE);
+$rows = array();
+if (isset($primary_key)) {
+ // when in edit mode load all selected rows from table
+ $insert_mode = false;
+ if (is_array($primary_key)) {
+ $primary_key_array = $primary_key;
+ } else {
+ $primary_key_array = array(0 => $primary_key);
+ }
+
+ $result = array();
+ $found_unique_key = false;
+ foreach ($primary_key_array as $key_id => $primary_key) {
+ $local_query = 'SELECT * FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table) . ' WHERE ' . $primary_key . ';';
+ $result[$key_id] = PMA_DBI_query($local_query, null, PMA_DBI_QUERY_STORE);
+ $rows[$key_id] = PMA_DBI_fetch_assoc($result[$key_id]);
+ $primary_keys[$key_id] = str_replace('\\', '\\\\', $primary_key);
+
+ // No row returned
+ if (! $rows[$key_id]) {
+ unset($rows[$key_id], $primary_key_array[$key_id]);
+ PMA_showMessage($strEmptyResultSet, $local_query);
+ echo "\n";
+ require_once './libraries/footer.inc.php';
+ } else { // end if (no record returned)
+ $meta = PMA_DBI_get_fields_meta($result[$key_id]);
+ if ($tmp = PMA_getUniqueCondition($result[$key_id], count($meta), $meta, $rows[$key_id], true)) {
+ $found_unique_key = true;
+ }
+ unset($tmp);
+ }
+ }
+} else {
+ // no primary key given, just load first row - but what happens if tbale is empty?
+ $insert_mode = true;
+ $result = PMA_DBI_query('SELECT * FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table) . ' LIMIT 1;', null, PMA_DBI_QUERY_STORE);
+ $rows = array_fill(0, $cfg['InsertRows'], false);
+}
+
+// <markus@noga.de>
+// retrieve keys into foreign fields, if any
+$foreigners = PMA_getForeigners($db, $table);
+
+
+/**
+ * Displays the form
+ */
+// loic1: autocomplete feature of IE kills the "onchange" event handler and it
+// must be replaced by the "onpropertychange" one in this case
+$chg_evt_handler = (PMA_USR_BROWSER_AGENT == 'IE' && PMA_USR_BROWSER_VER >= 5 && PMA_USR_BROWSER_VER < 7)
+ ? 'onpropertychange'
+ : 'onchange';
+// Had to put the URI because when hosted on an https server,
+// some browsers send wrongly this form to the http server.
+
+if ($cfg['CtrlArrowsMoving']) {
+ ?>
+<!-- Set on key handler for moving using by Ctrl+arrows -->
+<script src="./js/keyhandler.js" type="text/javascript"></script>
+<script type="text/javascript">
+//<![CDATA[
+var switch_movement = 0;
+document.onkeydown = onKeyDownArrowsHandler;
+//]]>
+</script>
+ <?php
+}
+
+$_form_params = array(
+ 'db' => $db,
+ 'table' => $table,
+ 'goto' => $GLOBALS['goto'],
+ 'err_url' => $err_url,
+ 'sql_query' => $sql_query,
+);
+if (isset($primary_keys)) {
+ foreach ($primary_key_array as $key_id => $primary_key) {
+ $_form_params['primary_key[' . $key_id . ']'] = trim($primary_key);
+ }
+}
+
+?>
+<!-- Insert/Edit form -->
+<form method="post" action="tbl_replace.php" name="insertForm" <?php if ($is_upload) { echo ' enctype="multipart/form-data"'; } ?>>
+<?php
+echo PMA_generate_common_hidden_inputs($_form_params);
+
+$titles['Browse'] = PMA_getIcon('b_browse.png', $strBrowseForeignValues);
+
+// Set if we passed the first timestamp field
+$timestamp_seen = 0;
+$fields_cnt = count($table_fields);
+
+$tabindex = 0;
+$tabindex_for_function = +3000;
+$tabindex_for_null = +6000;
+$tabindex_for_value = 0;
+$o_rows = 0;
+$biggest_max_file_size = 0;
+
+// user can toggle the display of Function column
+// (currently does not work for multi-edits)
+$url_params['db'] = $db;
+$url_params['table'] = $table;
+if (isset($primary_key)) {
+ $url_params['primary_key'] = trim($primary_key);
+}
+if (! empty($sql_query)) {
+ $url_params['sql_query'] = $sql_query;
+}
+
+if (! $cfg['ShowFunctionFields']) {
+ $this_url_params = array_merge($url_params,
+ array('ShowFunctionFields' => 1));
+ echo $strShow . ' : <a href="tbl_change.php' . PMA_generate_common_url($this_url_params) . '">' . $strFunction . '</a>' . "\n";
+}
+
+foreach ($rows as $row_id => $vrow) {
+ if ($vrow === false) {
+ unset($vrow);
+ }
+
+ $jsvkey = $row_id;
+ $browse_foreigners_uri = '&amp;pk=' . $row_id;
+ $vkey = '[multi_edit][' . $jsvkey . ']';
+
+ $vresult = (isset($result) && is_array($result) && isset($result[$row_id]) ? $result[$row_id] : $result);
+ if ($insert_mode && $row_id > 0) {
+ echo '<input type="checkbox" checked="checked" name="insert_ignore_' . $row_id . '" id="insert_ignore_check_' . $row_id . '" />';
+ echo '<label for="insert_ignore_check_' . $row_id . '">' . $strIgnore . '</label><br />' . "\n";
+ }
+?>
+ <table>
+ <thead>
+ <tr>
+ <th><?php echo $strField; ?></th>
+ <th><?php echo $strType; ?></th>
+<?php
+ if ($cfg['ShowFunctionFields']) {
+ $this_url_params = array_merge($url_params,
+ array('ShowFunctionFields' => 0));
+ echo ' <th><a href="tbl_change.php' . PMA_generate_common_url($this_url_params) . '" title="' . $strHide . '">' . $strFunction . '</a></th>' . "\n";
+ }
+?>
+ <th><?php echo $strNull; ?></th>
+ <th><?php echo $strValue; ?></th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th colspan="5" align="right" class="tblFooters">
+ <input type="submit" value="<?php echo $strGo; ?>" />
+ </th>
+ </tr>
+ </tfoot>
+ <tbody>
+<?php
+ // Sets a multiplier used for input-field counts (as zero cannot be used, advance the counter plus one)
+ $m_rows = $o_rows + 1;
+
+ $odd_row = true;
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ if (! isset($table_fields[$i]['processed'])) {
+ $table_fields[$i]['Field_html'] = htmlspecialchars($table_fields[$i]['Field']);
+ $table_fields[$i]['Field_md5'] = md5($table_fields[$i]['Field']);
+ // True_Type contains only the type (stops at first bracket)
+ $table_fields[$i]['True_Type'] = preg_replace('@\(.*@s', '', $table_fields[$i]['Type']);
+
+ // d a t e t i m e
+ //
+ // loic1: current date should not be set as default if the field is NULL
+ // for the current row
+ // lem9: but do not put here the current datetime if there is a default
+ // value (the real default value will be set in the
+ // Default value logic below)
+
+ // Note: (tested in MySQL 4.0.16): when lang is some UTF-8,
+ // $field['Default'] is not set if it contains NULL:
+ // Array ([Field] => d [Type] => datetime [Null] => YES [Key] => [Extra] => [True_Type] => datetime)
+ // but, look what we get if we switch to iso: (Default is NULL)
+ // Array ([Field] => d [Type] => datetime [Null] => YES [Key] => [Default] => [Extra] => [True_Type] => datetime)
+ // so I force a NULL into it (I don't think it's possible
+ // to have an empty default value for DATETIME)
+ // then, the "if" after this one will work
+ if ($table_fields[$i]['Type'] == 'datetime'
+ && ! isset($table_fields[$i]['Default'])
+ && isset($table_fields[$i]['Null'])
+ && $table_fields[$i]['Null'] == 'YES') {
+ $table_fields[$i]['Default'] = null;
+ }
+
+ $table_fields[$i]['len'] =
+ preg_match('@float|double@', $table_fields[$i]['Type']) ? 100 : -1;
+
+
+ if (isset($comments_map[$table_fields[$i]['Field']])) {
+ $table_fields[$i]['Field_title'] = '<span style="border-bottom: 1px dashed black;" title="'
+ . htmlspecialchars($comments_map[$table_fields[$i]['Field']]) . '">'
+ . $table_fields[$i]['Field_html'] . '</span>';
+ } else {
+ $table_fields[$i]['Field_title'] = $table_fields[$i]['Field_html'];
+ }
+
+ // The type column
+ $table_fields[$i]['is_binary'] = stristr($table_fields[$i]['Type'], 'binary');
+ $table_fields[$i]['is_blob'] = stristr($table_fields[$i]['Type'], 'blob');
+ $table_fields[$i]['is_char'] = stristr($table_fields[$i]['Type'], 'char');
+ $table_fields[$i]['first_timestamp'] = false;
+ switch ($table_fields[$i]['True_Type']) {
+ case 'set':
+ $table_fields[$i]['pma_type'] = 'set';
+ $table_fields[$i]['wrap'] = '';
+ break;
+ case 'enum':
+ $table_fields[$i]['pma_type'] = 'enum';
+ $table_fields[$i]['wrap'] = '';
+ break;
+ case 'timestamp':
+ if (!$timestamp_seen) { // can only occur once per table
+ $timestamp_seen = 1;
+ $table_fields[$i]['first_timestamp'] = true;
+ }
+ $table_fields[$i]['pma_type'] = $table_fields[$i]['Type'];
+ $table_fields[$i]['wrap'] = ' nowrap="nowrap"';
+ break;
+
+ default:
+ $table_fields[$i]['pma_type'] = $table_fields[$i]['Type'];
+ $table_fields[$i]['wrap'] = ' nowrap="nowrap"';
+ break;
+ }
+ }
+ $field = $table_fields[$i];
+ $extracted_fieldspec = PMA_extractFieldSpec($field['Type']);
+
+ if (-1 === $field['len']) {
+ $field['len'] = PMA_DBI_field_len($vresult, $i);
+ }
+
+ $unnullify_trigger = $chg_evt_handler . "=\"return unNullify('"
+ . PMA_escapeJsString($field['Field_html']) . "', '"
+ . PMA_escapeJsString($jsvkey) . "')\"";
+ $field_name_appendix = $vkey . '[' . $field['Field_html'] . ']';
+ $field_name_appendix_md5 = $field['Field_md5'] . $vkey . '[]';
+
+
+ if ($field['Type'] == 'datetime'
+ && ! isset($field['Default'])
+ && ! is_null($field['Default'])
+ && ($insert_mode || ! isset($vrow[$field['Field']]))) {
+ // INSERT case or
+ // UPDATE case with an NULL value
+ $vrow[$field['Field']] = date('Y-m-d H:i:s', time());
+ }
+ ?>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <td <?php echo ($cfg['LongtextDoubleTextarea'] && strstr($field['True_Type'], 'longtext') ? 'rowspan="2"' : ''); ?> align="center"><?php echo $field['Field_title']; ?></td>
+ <td align="center"<?php echo $field['wrap']; ?>>
+ <?php echo $field['pma_type']; ?>
+ </td>
+
+ <?php
+
+ // Prepares the field value
+ $real_null_value = FALSE;
+ if (isset($vrow)) {
+ // On a BLOB that can have a NULL value, the is_null() returns
+ // true if it has no content but for me this is different than
+ // having been set explicitely to NULL so I put an exception here
+ if (! $field['is_blob'] && is_null($vrow[$field['Field']])) {
+ $real_null_value = TRUE;
+ $vrow[$field['Field']] = '';
+ $special_chars = '';
+ $data = $vrow[$field['Field']];
+ } elseif ($field['True_Type'] == 'bit') {
+ $special_chars = PMA_printable_bit_value($vrow[$field], $extracted_fieldspec['spec_in_brackets']);
+ } else {
+ // loic1: special binary "characters"
+ if ($field['is_binary'] || $field['is_blob']) {
+ $vrow[$field['Field']] = PMA_replace_binary_contents($vrow[$field['Field']]);
+ } // end if
+ $special_chars = htmlspecialchars($vrow[$field['Field']]);
+
+ //We need to duplicate the first \n or otherwise we will lose the first newline entered in a VARCHAR or TEXT column
+ $special_chars_encoded = PMA_duplicateFirstNewline($special_chars);
+
+ $data = $vrow[$field['Field']];
+ } // end if... else...
+ // loic1: if a timestamp field value is not included in an update
+ // statement MySQL auto-update it to the current timestamp
+ // lem9: however, things have changed since MySQL 4.1, so
+ // it's better to set a fields_prev in this situation
+ $backup_field = '<input type="hidden" name="fields_prev'
+ . $field_name_appendix . '" value="'
+ . htmlspecialchars($vrow[$field['Field']]) . '" />';
+ } else {
+ // loic1: display default values
+ if (!isset($field['Default'])) {
+ $field['Default'] = '';
+ $real_null_value = TRUE;
+ $data = '';
+ } else {
+ $data = $field['Default'];
+ }
+ if ($field['True_Type'] == 'bit') {
+ $special_chars = PMA_printable_bit_value($field['Default'], $extracted_fieldspec['spec_in_brackets']);
+ } else {
+ $special_chars = htmlspecialchars($field['Default']);
+ }
+ $backup_field = '';
+ }
+
+ $idindex = ($o_rows * $fields_cnt) + $i + 1;
+ $tabindex = (($idindex - 1) * 3) + 1;
+
+ // The function column
+ // -------------------
+ // Change by Bernard M. Piller <bernard@bmpsystems.com>
+ // We don't want binary data to be destroyed
+ // Note: from the MySQL manual: "BINARY doesn't affect how the column is
+ // stored or retrieved" so it does not mean that the contents is
+ // binary
+ if ($cfg['ShowFunctionFields']) {
+ if (($cfg['ProtectBinary'] && $field['is_blob'] && !$is_upload)
+ || ($cfg['ProtectBinary'] == 'all' && $field['is_binary'])) {
+ echo ' <td align="center">' . $strBinary . '</td>' . "\n";
+ } elseif (strstr($field['True_Type'], 'enum') || strstr($field['True_Type'], 'set')) {
+ echo ' <td align="center">--</td>' . "\n";
+ } else {
+ ?>
+ <td>
+ <select name="funcs<?php echo $field_name_appendix; ?>" <?php echo $unnullify_trigger; ?> tabindex="<?php echo ($tabindex + $tabindex_for_function); ?>" id="field_<?php echo $idindex; ?>_1">
+ <option></option>
+ <?php
+ $selected = '';
+
+ // garvin: Find the current type in the RestrictColumnTypes. Will result in 'FUNC_CHAR'
+ // or something similar. Then directly look up the entry in the RestrictFunctions array,
+ // which will then reveal the available dropdown options
+ if (isset($cfg['RestrictColumnTypes'][strtoupper($field['True_Type'])])
+ && isset($cfg['RestrictFunctions'][$cfg['RestrictColumnTypes'][strtoupper($field['True_Type'])]])) {
+ $current_func_type = $cfg['RestrictColumnTypes'][strtoupper($field['True_Type'])];
+ $dropdown = $cfg['RestrictFunctions'][$current_func_type];
+ $default_function = $cfg['DefaultFunctions'][$current_func_type];
+ } else {
+ $dropdown = array();
+ $default_function = '';
+ }
+
+ $dropdown_built = array();
+ $op_spacing_needed = FALSE;
+
+ // what function defined as default?
+ // for the first timestamp we don't set the default function
+ // if there is a default value for the timestamp
+ // (not including CURRENT_TIMESTAMP)
+ // and the column does not have the
+ // ON UPDATE DEFAULT TIMESTAMP attribute.
+
+ if ($field['True_Type'] == 'timestamp'
+ && empty($field['Default'])
+ && ! isset($analyzed_sql[0]['create_table_fields'][$field['Field']]['on_update_current_timestamp'])) {
+ $default_function = $cfg['DefaultFunctions']['first_timestamp'];
+ }
+
+ if ($field['Key'] == 'PRI'
+ && ($field['Type'] == 'char(36)' || $field['Type'] == 'varchar(36)')) {
+ $default_function = $cfg['DefaultFunctions']['pk_char36'];
+ }
+
+ // garvin: loop on the dropdown array and print all available options for that field.
+ foreach ($dropdown as $each_dropdown){
+ echo '<option';
+ if ($default_function === $each_dropdown) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $each_dropdown . '</option>' . "\n";
+ $dropdown_built[$each_dropdown] = 'TRUE';
+ $op_spacing_needed = TRUE;
+ }
+
+ // garvin: For compatibility's sake, do not let out all other functions. Instead
+ // print a separator (blank) and then show ALL functions which weren't shown
+ // yet.
+ $cnt_functions = count($cfg['Functions']);
+ for ($j = 0; $j < $cnt_functions; $j++) {
+ if (!isset($dropdown_built[$cfg['Functions'][$j]]) || $dropdown_built[$cfg['Functions'][$j]] != 'TRUE') {
+ // Is current function defined as default?
+ $selected = ($field['first_timestamp'] && $cfg['Functions'][$j] == $cfg['DefaultFunctions']['first_timestamp'])
+ || (!$field['first_timestamp'] && $cfg['Functions'][$j] == $default_function)
+ ? ' selected="selected"'
+ : '';
+ if ($op_spacing_needed == TRUE) {
+ echo ' ';
+ echo '<option value="">--------</option>' . "\n";
+ $op_spacing_needed = FALSE;
+ }
+
+ echo ' ';
+ echo '<option' . $selected . '>' . $cfg['Functions'][$j] . '</option>' . "\n";
+ }
+ } // end for
+ unset($selected);
+ ?>
+ </select>
+ </td>
+ <?php
+ }
+ } // end if ($cfg['ShowFunctionFields'])
+
+
+ // The null column
+ // ---------------
+ echo ' <td>' . "\n";
+ if ($field['Null'] == 'YES') {
+ echo ' <input type="hidden" name="fields_null_prev' . $field_name_appendix . '"';
+ if ($real_null_value && !$field['first_timestamp']) {
+ echo ' value="on"';
+ }
+ echo ' />' . "\n";
+
+ if (!(($cfg['ProtectBinary'] && $field['is_blob']) || ($cfg['ProtectBinary'] == 'all' && $field['is_binary']))) {
+
+ echo ' <input type="checkbox" tabindex="' . ($tabindex + $tabindex_for_null) . '"'
+ . ' name="fields_null' . $field_name_appendix . '"';
+ if ($real_null_value && !$field['first_timestamp']) {
+ echo ' checked="checked"';
+ }
+ echo ' id="field_' . ($idindex) . '_2"';
+ $onclick = ' onclick="if (this.checked) {nullify(';
+ if (strstr($field['True_Type'], 'enum')) {
+ if (strlen($field['Type']) > 20) {
+ $onclick .= '1, ';
+ } else {
+ $onclick .= '2, ';
+ }
+ } elseif (strstr($field['True_Type'], 'set')) {
+ $onclick .= '3, ';
+ } elseif ($foreigners && isset($foreigners[$field['Field']])) {
+ $onclick .= '4, ';
+ } else {
+ $onclick .= '5, ';
+ }
+ $onclick .= '\'' . PMA_escapeJsString($field['Field_html']) . '\', \'' . $field['Field_md5'] . '\', \'' . PMA_escapeJsString($vkey) . '\'); this.checked = true}; return true" />' . "\n";
+ echo $onclick;
+ } else {
+ echo ' <input type="hidden" name="fields_null' . $field_name_appendix . '"';
+ if ($real_null_value && !$field['first_timestamp']) {
+ echo ' value="on"';
+ }
+ echo ' />' . "\n";
+ }
+ }
+ echo ' </td>' . "\n";
+
+ // The value column (depends on type)
+ // ----------------
+ // See bug #1667887 for the reason why we don't use the maxlength
+ // HTML attribute
+
+ $foreignData = PMA_getForeignData($foreigners, $field['Field'], false, '', '');
+ echo ' <td>' . "\n";
+ if ($foreignData['foreign_link'] == true) {
+ echo $backup_field . "\n";
+ ?>
+ <input type="hidden" name="fields_type<?php echo $field_name_appendix; ?>"
+ value="foreign" />
+ <input type="hidden" name="fields<?php echo $field_name_appendix; ?>"
+ value="" id="field_<?php echo ($idindex); ?>_3A" />
+ <input type="text" name="field_<?php echo $field_name_appendix_md5; ?>"
+ class="textfield" <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ id="field_<?php echo ($idindex); ?>_3"
+ value="<?php echo htmlspecialchars($data); ?>" />
+ <script type="text/javascript">
+ //<![CDATA[
+ document.writeln('<a target="_blank" onclick="window.open(this.href, \'foreigners\', \'width=640,height=240,scrollbars=yes,resizable=yes\'); return false"');
+ document.write(' href="browse_foreigners.php?');
+ document.write('<?php echo PMA_generate_common_url($db, $table); ?>');
+ document.writeln('&amp;field=<?php echo PMA_escapeJsString(urlencode($field['Field']) . $browse_foreigners_uri); ?>">');
+ document.writeln('<?php echo str_replace("'", "\'", $titles['Browse']); ?></a>');
+ //]]>
+ </script>
+ <?php
+ } elseif (is_array($foreignData['disp_row'])) {
+ echo $backup_field . "\n";
+ ?>
+ <input type="hidden" name="fields_type<?php echo $field_name_appendix; ?>"
+ value="foreign" />
+ <input type="hidden" name="fields<?php echo $field_name_appendix; ?>"
+ value="" id="field_<?php echo $idindex; ?>_3A" />
+ <select name="field_<?php echo $field_name_appendix_md5; ?>"
+ <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ id="field_<?php echo ($idindex); ?>_3">
+ <?php echo PMA_foreignDropdown($foreignData['disp_row'], $foreignData['foreign_field'], $foreignData['foreign_display'], $data, $cfg['ForeignKeyMaxLimit']); ?>
+ </select>
+ <?php
+ // still needed? :
+ unset($foreignData['disp_row']);
+ } elseif ($cfg['LongtextDoubleTextarea'] && strstr($field['pma_type'], 'longtext')) {
+ ?>
+ &nbsp;</td>
+ </tr>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <td colspan="5" align="right">
+ <?php echo $backup_field . "\n"; ?>
+ <textarea name="fields<?php echo $field_name_appendix; ?>"
+ rows="<?php echo ($cfg['TextareaRows']*2); ?>"
+ cols="<?php echo ($cfg['TextareaCols']*2); ?>"
+ dir="<?php echo $text_dir; ?>"
+ id="field_<?php echo ($idindex); ?>_3"
+ <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ ><?php echo $special_chars_encoded; ?></textarea>
+ <?php
+ } elseif (strstr($field['pma_type'], 'text')) {
+ echo $backup_field . "\n";
+ ?>
+ <textarea name="fields<?php echo $field_name_appendix; ?>"
+ rows="<?php echo $cfg['TextareaRows']; ?>"
+ cols="<?php echo $cfg['TextareaCols']; ?>"
+ dir="<?php echo $text_dir; ?>"
+ id="field_<?php echo ($idindex); ?>_3"
+ <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ ><?php echo $special_chars_encoded; ?></textarea>
+ <?php
+ echo "\n";
+ if (strlen($special_chars) > 32000) {
+ echo " </td>\n";
+ echo ' <td>' . $strTextAreaLength;
+ }
+ } elseif ($field['pma_type'] == 'enum') {
+ if (! isset($table_fields[$i]['values'])) {
+ $table_fields[$i]['values'] = array();
+ foreach ($extracted_fieldspec['enum_set_values'] as $val) {
+ // Removes automatic MySQL escape format
+ $val = str_replace('\'\'', '\'', str_replace('\\\\', '\\', $val));
+ $table_fields[$i]['values'][] = array(
+ 'plain' => $val,
+ 'html' => htmlspecialchars($val),
+ );
+ }
+ }
+ $field_enum_values = $table_fields[$i]['values'];
+ ?>
+ <input type="hidden" name="fields_type<?php echo $field_name_appendix; ?>" value="enum" />
+ <input type="hidden" name="fields<?php echo $field_name_appendix; ?>" value="" />
+ <?php
+ echo "\n" . ' ' . $backup_field . "\n";
+
+ // show dropdown or radio depend on length
+ if (strlen($field['Type']) > 20) {
+ ?>
+ <select name="field_<?php echo $field_name_appendix_md5; ?>"
+ <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ id="field_<?php echo ($idindex); ?>_3">
+ <option value="">&nbsp;</option>
+ <?php
+ echo "\n";
+
+ foreach ($field_enum_values as $enum_value) {
+ echo ' ';
+ echo '<option value="' . $enum_value['html'] . '"';
+ if ($data == $enum_value['plain']
+ || ($data == ''
+ && (! isset($primary_key) || $field['Null'] != 'YES')
+ && isset($field['Default'])
+ && $enum_value['plain'] == $field['Default'])) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $enum_value['html'] . '</option>' . "\n";
+ } // end for
+
+ ?>
+ </select>
+ <?php
+ } else {
+ $j = 0;
+ foreach ($field_enum_values as $enum_value) {
+ echo ' ';
+ echo '<input type="radio" name="field_' . $field_name_appendix_md5 . '"';
+ echo ' value="' . $enum_value['html'] . '"';
+ echo ' id="field_' . ($idindex) . '_3_' . $j . '"';
+ echo ' onclick="';
+ echo "if (typeof(document.forms['insertForm'].elements['fields_null"
+ . $field_name_appendix . "']) != 'undefined') {document.forms['insertForm'].elements['fields_null"
+ . $field_name_appendix . "'].checked = false}";
+ echo '"';
+ if ($data == $enum_value['plain']
+ || ($data == ''
+ && (! isset($primary_key) || $field['Null'] != 'YES')
+ && isset($field['Default'])
+ && $enum_value['plain'] == $field['Default'])) {
+ echo ' checked="checked"';
+ }
+ echo ' tabindex="' . ($tabindex + $tabindex_for_value) . '" />';
+ echo '<label for="field_' . $idindex . '_3_' . $j . '">'
+ . $enum_value['html'] . '</label>' . "\n";
+ $j++;
+ } // end for
+ } // end else
+ } elseif ($field['pma_type'] == 'set') {
+ if (! isset($table_fields[$i]['values'])) {
+ $table_fields[$i]['values'] = array();
+ foreach ($extracted_fieldspec['enum_set_values'] as $val) {
+ $table_fields[$i]['values'][] = array(
+ 'plain' => $val,
+ 'html' => htmlspecialchars($val),
+ );
+ }
+ $table_fields[$i]['select_size'] = min(4, count($table_fields[$i]['values']));
+ }
+ $field_set_values = $table_fields[$i]['values'];
+ $select_size = $table_fields[$i]['select_size'];
+
+ $vset = array_flip(explode(',', $data));
+ echo $backup_field . "\n";
+ ?>
+ <input type="hidden" name="fields_type<?php echo $field_name_appendix; ?>" value="set" />
+ <input type="hidden" name="fields<?php echo $field_name_appendix; ?>" value="" />
+ <select name="field_<?php echo $field_name_appendix_md5; ?>"
+ size="<?php echo $select_size; ?>"
+ multiple="multiple" <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ id="field_<?php echo ($idindex); ?>_3">
+ <?php
+ foreach ($field_set_values as $field_set_value) {
+ echo ' ';
+ echo '<option value="' . $field_set_value['html'] . '"';
+ if (isset($vset[$field_set_value['plain']])) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $field_set_value['html'] . '</option>' . "\n";
+ } // end for
+ ?>
+ </select>
+ <?php
+ }
+ // Change by Bernard M. Piller <bernard@bmpsystems.com>
+ // We don't want binary data destroyed
+ elseif ($field['is_binary'] || $field['is_blob']) {
+ if (($cfg['ProtectBinary'] && $field['is_blob'])
+ || ($cfg['ProtectBinary'] == 'all' && $field['is_binary'])) {
+ echo "\n";
+ // rajk - for blobstreaming
+ $bs_reference_exists = FALSE;
+
+ if (isset ($tbl_type) && strlen ($tbl_type) > 0)
+ {
+ // load PMA_Config
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ if (!empty($PMA_Config))
+ {
+ $requiredTblType = $PMA_Config->get('PBXT_NAME');
+
+ if ($requiredTblType == strtolower ($tbl_type))
+ {
+ $pluginsExist = $PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST');
+
+ // check if blobstreaming plugins exist
+ if ($pluginsExist)
+ {
+ $bs_tables = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+
+ if (!empty($bs_tables) && strlen($db) > 0)
+ {
+ $bs_tables = $bs_tables[$db];
+
+ if (isset($bs_tables))
+ {
+ $allBSTablesExist = TRUE;
+
+ foreach ($bs_tables as $table_key=>$bs_tbl)
+ if (!$bs_tables[$table_key]['Exists'])
+ {
+ $allBSTablesExist = FALSE;
+ break;
+ }
+
+ if ($allBSTablesExist)
+ $bs_reference_exists = PMA_BS_ReferenceExists($data, $db);
+ } // end if (isset($bs_tables))
+ } // end if (!empty($bs_tables) && strlen($db) > 0)
+ } // end if ($pluginsExist)
+ } // end if ($requiredTblType == strtolower ($tbl_type))
+ } // end if (!empty($PMA_Config))
+ } // end if (isset ($tbl_type) && strlen ($tbl_type) > 0)
+
+ if ($bs_reference_exists)
+ {
+ echo '<input type="hidden" name="remove_blob_ref_' . $field['Field_html'] . $vkey . '" value="' . $data . '" />';
+ echo '<input type="checkbox" name="remove_blob_repo_' . $field['Field_html'] . $vkey . '" /> ' . $strBLOBRepositoryRemove . "<br />";
+ echo PMA_BS_CreateReferenceLink($data, $db);
+ echo "<br />";
+ }
+ else
+ {
+ echo $strBinaryDoNotEdit;
+ if (isset($data)) {
+ $data_size = PMA_formatByteDown(strlen(stripslashes($data)), 3, 1);
+ echo ' ('. $data_size [0] . ' ' . $data_size[1] . ')';
+ unset($data_size);
+ }
+ echo "\n";
+ } // end if ($bs_reference_exists)
+ ?>
+ <input type="hidden" name="fields_type<?php echo $field_name_appendix; ?>" value="protected" />
+ <input type="hidden" name="fields<?php echo $field_name_appendix; ?>" value="" />
+ <?php
+ } elseif ($field['is_blob']) {
+ echo "\n";
+ echo $backup_field . "\n";
+ ?>
+ <textarea name="fields<?php echo $field_name_appendix; ?>"
+ rows="<?php echo $cfg['TextareaRows']; ?>"
+ cols="<?php echo $cfg['TextareaCols']; ?>"
+ dir="<?php echo $text_dir; ?>"
+ id="field_<?php echo ($idindex); ?>_3"
+ <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ ><?php echo $special_chars_encoded; ?></textarea>
+ <?php
+
+ } else {
+ // field size should be at least 4 and max 40
+ $fieldsize = min(max($field['len'], 4), 40);
+ echo "\n";
+ echo $backup_field . "\n";
+ ?>
+ <input type="text" name="fields<?php echo $field_name_appendix; ?>"
+ value="<?php echo $special_chars; ?>" size="<?php echo $fieldsize; ?>"
+ class="textfield" <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ id="field_<?php echo ($idindex); ?>_3" />
+ <?php
+ } // end if...elseif...else
+
+ // Upload choice (only for BLOBs because the binary
+ // attribute does not imply binary contents)
+ // (displayed whatever value the ProtectBinary has)
+
+ if ($is_upload && $field['is_blob']) {
+ // added by rajk
+ // check if field type is of longblob
+ if ($field['pma_type'] == "longblob")
+ {
+ if (isset ($tbl_type) && strlen ($tbl_type) > 0)
+ {
+ // load PMA Config
+ $PMA_Config = $_SESSION['PMA_Config'];
+
+ // is PMA_Config's data loaded? continue only if it is
+ if (!empty($PMA_Config))
+ {
+ $requiredTblType = $PMA_Config->get('PBXT_NAME');
+
+ if ($requiredTblType == strtolower ($tbl_type))
+ {
+ $pluginsExist = $PMA_Config->get('BLOBSTREAMING_PLUGINS_EXIST');
+
+ // check if blobstreaming plugins exist
+ if ($pluginsExist)
+ {
+ $curlExists = $PMA_Config->get('CURL_EXISTS');
+
+ // check if CURL exists
+ if ($curlExists)
+ {
+ $bs_tables = $PMA_Config->get('BLOBSTREAMABLE_DATABASES');
+
+ // check for BLOBStreamable databases and if current database name is provided
+ if (!empty($bs_tables) && strlen($db) > 0)
+ {
+ $bs_tables = $bs_tables[$db];
+
+ // check if reference to BLOBStreaming tables exists
+ if (isset($bs_tables))
+ {
+ $allBSTablesExist = TRUE;
+
+ foreach ($bs_tables as $table_key=>$bs_tbl)
+ if (!$bs_tables[$table_key]['Exists'])
+ {
+ $allBSTablesExist = FALSE;
+ break;
+ }
+
+ // check if necessary BLOBStreaming tables exist
+ if ($allBSTablesExist)
+ {
+ echo '<br />';
+ echo '<input type="checkbox" name="upload_blob_repo_' . $field['Field_html'] . $vkey . '" /> ' . $strBLOBRepositoryUpload;
+ } // end if ($allBSTablesExist)
+ } // end if (isset($bs_tables)
+ } // end if (!empty($bs_tables) && strlen ($db) > 0)
+ } // end if ($curlExists)
+ } // end if ($pluginsExist)
+ } // end if ($requiredTblType == strtolower ($tbl_type))
+ } // end if (!empty($PMA_Config))
+ } // end if (isset ($tbl_type) && strlen ($tbl_type) > 0)
+ }
+
+ echo '<br />';
+ echo '<input type="file" name="fields_upload_' . $field['Field_html'] . $vkey . '" class="textfield" id="field_' . $idindex . '_3" size="10" />&nbsp;';
+
+ // find maximum upload size, based on field type
+ /**
+ * @todo with functions this is not so easy, as you can basically
+ * process any data with function like MD5
+ */
+ $max_field_sizes = array(
+ 'tinyblob' => '256',
+ 'blob' => '65536',
+ 'mediumblob' => '16777216',
+ 'longblob' => '4294967296'); // yeah, really
+
+ $this_field_max_size = $max_upload_size; // from PHP max
+ if ($this_field_max_size > $max_field_sizes[$field['pma_type']]) {
+ $this_field_max_size = $max_field_sizes[$field['pma_type']];
+ }
+ echo PMA_displayMaximumUploadSize($this_field_max_size) . "\n";
+ // do not generate here the MAX_FILE_SIZE, because we should
+ // put only one in the form to accommodate the biggest field
+ if ($this_field_max_size > $biggest_max_file_size) {
+ $biggest_max_file_size = $this_field_max_size;
+ }
+ }
+
+ if (!empty($cfg['UploadDir'])) {
+ $files = PMA_getFileSelectOptions(PMA_userDir($cfg['UploadDir']));
+ if ($files === FALSE) {
+ echo ' <font color="red">' . $strError . '</font><br />' . "\n";
+ echo ' ' . $strWebServerUploadDirectoryError . "\n";
+ } elseif (!empty($files)) {
+ echo "<br />\n";
+ echo ' <i>' . $strOr . '</i>' . ' ' . $strWebServerUploadDirectory . ':<br />' . "\n";
+ echo ' <select size="1" name="fields_uploadlocal_' . $field['Field_html'] . $vkey . '">' . "\n";
+ echo ' <option value="" selected="selected"></option>' . "\n";
+ echo $files;
+ echo ' </select>' . "\n";
+ }
+ } // end if (web-server upload directory)
+ } // end elseif (binary or blob)
+ else {
+ // field size should be at least 4 and max 40
+ $fieldsize = min(max($field['len'], 4), 40);
+ echo $backup_field . "\n";
+ if ($field['is_char'] && ($cfg['CharEditing'] == 'textarea' || strpos($data, "\n") !== FALSE)) {
+ echo "\n";
+ ?>
+ <textarea name="fields<?php echo $field_name_appendix; ?>"
+ rows="<?php echo $cfg['CharTextareaRows']; ?>"
+ cols="<?php echo $cfg['CharTextareaCols']; ?>"
+ dir="<?php echo $text_dir; ?>"
+ id="field_<?php echo ($idindex); ?>_3"
+ <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ ><?php echo $special_chars_encoded; ?></textarea>
+ <?php
+ } else {
+ ?>
+ <input type="text" name="fields<?php echo $field_name_appendix; ?>"
+ value="<?php echo $special_chars; ?>" size="<?php echo $fieldsize; ?>"
+ class="textfield" <?php echo $unnullify_trigger; ?>
+ tabindex="<?php echo ($tabindex + $tabindex_for_value); ?>"
+ id="field_<?php echo ($idindex); ?>_3" />
+ <?php
+ if ($field['Extra'] == 'auto_increment') {
+ ?>
+ <input type="hidden" name="auto_increment<?php echo $field_name_appendix; ?>" value="1" />
+ <?php
+ } // end if
+ if (substr($field['pma_type'], 0, 9) == 'timestamp') {
+ ?>
+ <input type="hidden" name="fields_type<?php echo $field_name_appendix; ?>" value="timestamp" />
+ <?php
+ }
+ if ($field['True_Type'] == 'bit') {
+ ?>
+ <input type="hidden" name="fields_type<?php echo $field_name_appendix; ?>" value="bit" />
+ <?php
+ }
+ if ($field['pma_type'] == 'date' || $field['pma_type'] == 'datetime' || substr($field['pma_type'], 0, 9) == 'timestamp') {
+ ?>
+ <script type="text/javascript">
+ //<![CDATA[
+ document.write('<a title="<?php echo $strCalendar;?>"');
+ document.write(' href="javascript:openCalendar(\'<?php echo PMA_generate_common_url();?>\', \'insertForm\', \'field_<?php echo ($idindex); ?>_3\', \'<?php echo (substr($field['pma_type'], 0, 9) == 'timestamp') ? 'datetime' : substr($field['pma_type'], 0, 9); ?>\')">');
+ document.write('<img class="calendar"');
+ document.write(' src="<?php echo $pmaThemeImage; ?>b_calendar.png"');
+ document.write(' alt="<?php echo $strCalendar; ?>"/></a>');
+ //]]>
+ </script>
+ <?php
+ }
+ }
+ }
+ ?>
+ </td>
+ </tr>
+ <?php
+ $odd_row = !$odd_row;
+ } // end for
+ $o_rows++;
+ echo ' </tbody></table><br />';
+} // end foreach on multi-edit
+?>
+ <br />
+
+ <fieldset>
+ <table border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td valign="middle" nowrap="nowrap">
+ <select name="submit_type" tabindex="<?php echo ($tabindex + $tabindex_for_value + 1); ?>">
+<?php
+if (isset($primary_key)) {
+ ?>
+ <option value="<?php echo $strSave; ?>"><?php echo $strSave; ?></option>
+ <?php
+}
+ ?>
+ <option value="<?php echo $strInsertAsNewRow; ?>"><?php echo $strInsertAsNewRow; ?></option>
+ </select>
+ <?php
+echo "\n";
+
+if (!isset($after_insert)) {
+ $after_insert = 'back';
+}
+?>
+ </td>
+ <td valign="middle">
+ &nbsp;&nbsp;&nbsp;<strong><?php echo $strAndThen; ?></strong>&nbsp;&nbsp;&nbsp;
+ </td>
+ <td valign="middle" nowrap="nowrap">
+ <select name="after_insert">
+ <option value="back" <?php echo ($after_insert == 'back' ? 'selected="selected"' : ''); ?>><?php echo $strAfterInsertBack; ?></option>
+ <option value="new_insert" <?php echo ($after_insert == 'new_insert' ? 'selected="selected"' : ''); ?>><?php echo $strAfterInsertNewInsert; ?></option>
+<?php
+if (isset($primary_key)) {
+ ?>
+ <option value="same_insert" <?php echo ($after_insert == 'same_insert' ? 'selected="selected"' : ''); ?>><?php echo $strAfterInsertSame; ?></option>
+ <?php
+ // If we have just numeric primary key, we can also edit next
+ // in 2.8.2, we were looking for `field_name` = numeric_value
+ //if (preg_match('@^[\s]*`[^`]*` = [0-9]+@', $primary_key)) {
+ // in 2.9.0, we are looking for `table_name`.`field_name` = numeric_value
+ if ($found_unique_key && preg_match('@^[\s]*`[^`]*`[\.]`[^`]*` = [0-9]+@', $primary_key)) {
+ ?>
+ <option value="edit_next" <?php echo ($after_insert == 'edit_next' ? 'selected="selected"' : ''); ?>><?php echo $strAfterInsertNext; ?></option>
+ <?php
+ }
+}
+?>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+<?php echo PMA_showHint($strUseTabKey); ?>
+ </td>
+ <td colspan="3" align="right" valign="middle">
+ <input type="submit" value="<?php echo $strGo; ?>" tabindex="<?php echo ($tabindex + $tabindex_for_value + 6); ?>" id="buttonYes" />
+ <input type="reset" value="<?php echo $strReset; ?>" tabindex="<?php echo ($tabindex + $tabindex_for_value + 7); ?>" />
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ <?php if ($biggest_max_file_size > 0) {
+ echo ' ' . PMA_generateHiddenMaxFileSize($biggest_max_file_size) . "\n";
+ } ?>
+</form>
+<?php
+if ($insert_mode) {
+?>
+<!-- Restart insertion form -->
+<form method="post" action="tbl_replace.php" name="restartForm" >
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+ <input type="hidden" name="goto" value="<?php echo htmlspecialchars($GLOBALS['goto']); ?>" />
+ <input type="hidden" name="err_url" value="<?php echo htmlspecialchars($err_url); ?>" />
+ <input type="hidden" name="sql_query" value="<?php echo htmlspecialchars($sql_query); ?>" />
+<?php
+ if (isset($primary_keys)) {
+ foreach ($primary_key_array as $key_id => $primary_key) {
+ echo '<input type="hidden" name="primary_key[' . $key_id . ']" value="' . htmlspecialchars(trim($primary_key)) . '" />'. "\n";
+ }
+ }
+ $tmp = '<select name="insert_rows" id="insert_rows" onchange="this.form.submit();" >' . "\n";
+ $option_values = array(1,2,5,10,15,20,30,40);
+ foreach ($option_values as $value) {
+ $tmp .= '<option value="' . $value . '"';
+ if ($value == $cfg['InsertRows']) {
+ $tmp .= ' selected="selected"';
+ }
+ $tmp .= '>' . $value . '</option>' . "\n";
+ }
+ $tmp .= '</select>' . "\n";
+ echo "\n" . sprintf($strRestartInsertion, $tmp);
+ unset($tmp);
+ echo '<noscript><input type="submit" value="' . $strGo . '" /></noscript>' . "\n";
+ echo '</form>' . "\n";
+}
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_create.php b/tbl_create.php
new file mode 100644
index 0000000000..a8404fae2a
--- /dev/null
+++ b/tbl_create.php
@@ -0,0 +1,273 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @uses $cfg['DefaultTabDatabase']
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['db']
+ * @uses $strTableEmpty
+ * @uses $strTableAlreadyExists
+ * @uses $strTable
+ * @uses $strTableHasBeenCreated
+ * @uses PMA_Table::generateFieldSpec()
+ * @uses PMA_checkParameters()
+ * @uses PMA_generateCharsetQueryPart()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_getRelationsParam()
+ * @uses PMA_setMIME()
+ * @uses PMA_mysqlDie()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_DBI_get_columns()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_backquote()
+ * @uses $_REQUEST['do_save_data']
+ * @uses $_REQUEST['submit_num_fields']
+ * @uses $_REQUEST['orig_num_fields']
+ * @uses $_REQUEST['added_fields']
+ * @uses $_REQUEST['num_fields']
+ * @uses preg_replace()
+ * @uses count()
+ * @uses is_array()
+ * @uses strlen()
+ * @uses sprintf()
+ * @uses htmlspecialchars()
+ * @version $Id$
+ */
+
+/**
+ * Get some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+
+$GLOBALS['js_include'][] = 'functions.js';
+
+require_once './libraries/header.inc.php';
+
+// Check parameters
+// @todo PMA_checkParameters does not check db and table proper with strlen()
+PMA_checkParameters(array('db', 'table'));
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+if (! strlen($table)) {
+ // No table name
+ PMA_mysqlDie($strTableEmpty, '', '',
+ 'db_structure.php?' . PMA_generate_common_url($db));
+} elseif (PMA_DBI_get_columns($db, $table)) {
+ // table exists already
+ PMA_mysqlDie(sprintf($strTableAlreadyExists, htmlspecialchars($table)), '',
+ '', 'db_structure.php?' . PMA_generate_common_url($db));
+}
+
+$err_url = 'tbl_create.php?' . PMA_generate_common_url($db, $table);
+
+// check number of fields to be created
+if (isset($_REQUEST['submit_num_fields'])) {
+ $regenerate = true; // for libraries/tbl_properties.inc.php
+ $num_fields = $_REQUEST['orig_num_fields'] + $_REQUEST['added_fields'];
+} elseif (isset($_REQUEST['num_fields']) && intval($_REQUEST['num_fields']) > 0) {
+ $num_fields = (int) $_REQUEST['num_fields'];
+} else {
+ $num_fields = 2;
+}
+
+/**
+ * Selects the database to work with
+ */
+PMA_DBI_select_db($db);
+
+/**
+ * The form used to define the structure of the table has been submitted
+ */
+if (isset($_REQUEST['do_save_data'])) {
+ $sql_query = '';
+
+ // Transforms the radio button field_key into 3 arrays
+ $field_cnt = count($_REQUEST['field_name']);
+ for ($i = 0; $i < $field_cnt; ++$i) {
+ if (isset($_REQUEST['field_key'][$i])) {
+ if ($_REQUEST['field_key'][$i] == 'primary_' . $i) {
+ $field_primary[] = $i;
+ }
+ if ($_REQUEST['field_key'][$i] == 'index_' . $i) {
+ $field_index[] = $i;
+ }
+ if ($_REQUEST['field_key'][$i] == 'unique_' . $i) {
+ $field_unique[] = $i;
+ }
+ } // end if
+ } // end for
+
+ // Builds the fields creation statements
+ for ($i = 0; $i < $field_cnt; $i++) {
+ // '0' is also empty for php :-(
+ if (empty($_REQUEST['field_name'][$i]) && $_REQUEST['field_name'][$i] != '0') {
+ continue;
+ }
+
+ $query = PMA_Table::generateFieldSpec(
+ $_REQUEST['field_name'][$i],
+ $_REQUEST['field_type'][$i],
+ $_REQUEST['field_length'][$i],
+ $_REQUEST['field_attribute'][$i],
+ isset($_REQUEST['field_collation'][$i])
+ ? $_REQUEST['field_collation'][$i]
+ : '',
+ isset($_REQUEST['field_null'][$i])
+ ? $_REQUEST['field_null'][$i]
+ : 'NOT NULL',
+ $_REQUEST['field_default_type'][$i],
+ $_REQUEST['field_default_value'][$i],
+ isset($_REQUEST['field_extra'][$i])
+ ? $_REQUEST['field_extra'][$i]
+ : false,
+ isset($_REQUEST['field_comments'][$i])
+ ? $_REQUEST['field_comments'][$i]
+ : '',
+ $field_primary,
+ $i);
+
+ $query .= ', ';
+ $sql_query .= $query;
+ } // end for
+ unset($field_cnt, $query);
+ $sql_query = preg_replace('@, $@', '', $sql_query);
+
+ // Builds the primary keys statements
+ $primary = '';
+ $primary_cnt = (isset($field_primary) ? count($field_primary) : 0);
+ for ($i = 0; $i < $primary_cnt; $i++) {
+ $j = $field_primary[$i];
+ if (isset($_REQUEST['field_name'][$j]) && strlen($_REQUEST['field_name'][$j])) {
+ $primary .= PMA_backquote($_REQUEST['field_name'][$j]) . ', ';
+ }
+ } // end for
+ unset($primary_cnt);
+ $primary = preg_replace('@, $@', '', $primary);
+ if (strlen($primary)) {
+ $sql_query .= ', PRIMARY KEY (' . $primary . ')';
+ }
+ unset($primary);
+
+ // Builds the indexes statements
+ $index = '';
+ $index_cnt = (isset($field_index) ? count($field_index) : 0);
+ for ($i = 0;$i < $index_cnt; $i++) {
+ $j = $field_index[$i];
+ if (isset($_REQUEST['field_name'][$j]) && strlen($_REQUEST['field_name'][$j])) {
+ $index .= PMA_backquote($_REQUEST['field_name'][$j]) . ', ';
+ }
+ } // end for
+ unset($index_cnt);
+ $index = preg_replace('@, $@', '', $index);
+ if (strlen($index)) {
+ $sql_query .= ', INDEX (' . $index . ')';
+ }
+ unset($index);
+
+ // Builds the uniques statements
+ $unique = '';
+ $unique_cnt = (isset($field_unique) ? count($field_unique) : 0);
+ for ($i = 0; $i < $unique_cnt; $i++) {
+ $j = $field_unique[$i];
+ if (isset($_REQUEST['field_name'][$j]) && strlen($_REQUEST['field_name'][$j])) {
+ $unique .= PMA_backquote($_REQUEST['field_name'][$j]) . ', ';
+ }
+ } // end for
+ unset($unique_cnt);
+ $unique = preg_replace('@, $@', '', $unique);
+ if (strlen($unique)) {
+ $sql_query .= ', UNIQUE (' . $unique . ')';
+ }
+ unset($unique);
+
+ // Builds the FULLTEXT statements
+ $fulltext = '';
+ $fulltext_cnt = (isset($field_fulltext) ? count($field_fulltext) : 0);
+ for ($i = 0; $i < $fulltext_cnt; $i++) {
+ $j = $field_fulltext[$i];
+ if (isset($_REQUEST['field_name'][$j]) && strlen($_REQUEST['field_name'][$j])) {
+ $fulltext .= PMA_backquote($_REQUEST['field_name'][$j]) . ', ';
+ }
+ } // end for
+
+ $fulltext = preg_replace('@, $@', '', $fulltext);
+ if (strlen($fulltext)) {
+ $sql_query .= ', FULLTEXT (' . $fulltext . ')';
+ }
+ unset($fulltext);
+
+ // Builds the 'create table' statement
+ $sql_query = 'CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table)
+ . ' (' . $sql_query . ')';
+
+ // Adds table type, character set, comments and partition definition
+ if (!empty($_REQUEST['tbl_type']) && ($_REQUEST['tbl_type'] != 'Default')) {
+ $sql_query .= ' ENGINE = ' . $_REQUEST['tbl_type'];
+ }
+ if (!empty($_REQUEST['tbl_collation'])) {
+ $sql_query .= PMA_generateCharsetQueryPart($_REQUEST['tbl_collation']);
+ }
+ if (!empty($_REQUEST['comment'])) {
+ $sql_query .= ' COMMENT = \'' . PMA_sqlAddslashes($_REQUEST['comment']) . '\'';
+ }
+ if (!empty($_REQUEST['partition_definition'])) {
+ $sql_query .= ' ' . PMA_sqlAddslashes($_REQUEST['partition_definition']);
+ }
+
+ // Executes the query
+ $result = PMA_DBI_try_query($sql_query);
+
+ if ($result) {
+
+ // garvin: If comments were sent, enable relation stuff
+ require_once './libraries/relation.lib.php';
+ require_once './libraries/transformations.lib.php';
+
+ // garvin: Update comment table for mime types [MIME]
+ if (isset($_REQUEST['field_mimetype'])
+ && is_array($_REQUEST['field_mimetype'])
+ && $cfg['BrowseMIME']) {
+ foreach ($_REQUEST['field_mimetype'] as $fieldindex => $mimetype) {
+ if (isset($_REQUEST['field_name'][$fieldindex])
+ && strlen($_REQUEST['field_name'][$fieldindex])) {
+ PMA_setMIME($db, $table, $_REQUEST['field_name'][$fieldindex], $mimetype,
+ $_REQUEST['field_transformation'][$fieldindex],
+ $_REQUEST['field_transformation_options'][$fieldindex]);
+ }
+ }
+ }
+
+ $message = PMA_Message::success('strTableHasBeenCreated');
+ $message->addParam(PMA_backquote($db) . '.' . PMA_backquote($table));
+
+ $display_query = $sql_query;
+ $sql_query = '';
+
+ // do not switch to sql.php - as there is no row to be displayed on a new table
+ if ($cfg['DefaultTabTable'] === 'sql.php') {
+ require './tbl_structure.php';
+ } else {
+ require './' . $cfg['DefaultTabTable'];
+ }
+ exit;
+ } else {
+ PMA_mysqlDie('', '', '', $err_url, false);
+ // garvin: An error happened while inserting/updating a table definition.
+ // to prevent total loss of that data, we embed the form once again.
+ // The variable $regenerate will be used to restore data in libraries/tbl_properties.inc.php
+ $num_fields = $_REQUEST['orig_num_fields'];
+ $regenerate = true;
+ }
+} // end do create table
+
+/**
+ * Displays the form used to define the structure of the table
+ */
+$action = 'tbl_create.php';
+require './libraries/tbl_properties.inc.php';
+// Displays the footer
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_export.php b/tbl_export.php
new file mode 100644
index 0000000000..d86942eeb4
--- /dev/null
+++ b/tbl_export.php
@@ -0,0 +1,92 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Gets tables informations and displays top links
+ */
+require_once './libraries/tbl_common.php';
+$url_query .= '&amp;goto=tbl_export.php&amp;back=tbl_export.php';
+require_once './libraries/tbl_info.inc.php';
+
+// Dump of a table
+
+$export_page_title = $strViewDump;
+
+// When we have some query, we need to remove LIMIT from that and possibly
+// generate WHERE clause (if we are asked to export specific rows)
+
+if (! empty($sql_query)) {
+ // Parse query so we can work with tokens
+ $parsed_sql = PMA_SQP_parse($sql_query);
+ $analyzed_sql = PMA_SQP_analyze($parsed_sql);
+
+ // Need to generate WHERE clause?
+ if (isset($primary_key)) {
+ // Yes => rebuild query from scracts, this doesn't work with nested
+ // selects :-(
+ $sql_query = 'SELECT ';
+
+ if (isset($analyzed_sql[0]['queryflags']['distinct'])) {
+ $sql_query .= ' DISTINCT ';
+ }
+
+ $sql_query .= $analyzed_sql[0]['select_expr_clause'];
+
+ if (!empty($analyzed_sql[0]['from_clause'])) {
+ $sql_query .= ' FROM ' . $analyzed_sql[0]['from_clause'];
+ }
+
+ $wheres = array();
+
+ if (isset($primary_key) && is_array($primary_key)
+ && count($primary_key) > 0) {
+ $wheres[] = '(' . implode(') OR (',$primary_key) . ')';
+ }
+
+ if (!empty($analyzed_sql[0]['where_clause'])) {
+ $wheres[] = $analyzed_sql[0]['where_clause'];
+ }
+
+ if (count($wheres) > 0) {
+ $sql_query .= ' WHERE (' . implode(') AND (', $wheres) . ')';
+ }
+
+ if (!empty($analyzed_sql[0]['group_by_clause'])) {
+ $sql_query .= ' GROUP BY ' . $analyzed_sql[0]['group_by_clause'];
+ }
+ if (!empty($analyzed_sql[0]['having_clause'])) {
+ $sql_query .= ' HAVING ' . $analyzed_sql[0]['having_clause'];
+ }
+ if (!empty($analyzed_sql[0]['order_by_clause'])) {
+ $sql_query .= ' ORDER BY ' . $analyzed_sql[0]['order_by_clause'];
+ }
+ } else {
+ // Just crop LIMIT clause
+ $sql_query = $analyzed_sql[0]['section_before_limit'] . $analyzed_sql[0]['section_after_limit'];
+ }
+ $message = PMA_Message::success();
+}
+
+/**
+ * Displays top menu links
+ */
+require './libraries/tbl_links.inc.php';
+
+$export_type = 'table';
+require_once './libraries/display_export.lib.php';
+
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_import.php b/tbl_import.php
new file mode 100644
index 0000000000..242c91146c
--- /dev/null
+++ b/tbl_import.php
@@ -0,0 +1,33 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Gets tables informations and displays top links
+ */
+require_once './libraries/tbl_common.php';
+$url_query .= '&amp;goto=tbl_import.php&amp;back=tbl_import.php';
+
+require_once './libraries/tbl_info.inc.php';
+/**
+ * Displays top menu links
+ */
+require_once './libraries/tbl_links.inc.php';
+
+$import_type = 'table';
+require_once './libraries/display_import.lib.php';
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
+
diff --git a/tbl_indexes.php b/tbl_indexes.php
new file mode 100644
index 0000000000..899bd99528
--- /dev/null
+++ b/tbl_indexes.php
@@ -0,0 +1,264 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays index edit/creation form and handles it
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Index.class.php';
+require_once './libraries/tbl_common.php';
+
+// Get fields and stores their name/type
+$fields = array();
+foreach (PMA_DBI_get_fields($db, $table) as $row) {
+ if (preg_match('@^(set|enum)\((.+)\)$@i', $row['Type'], $tmp)) {
+ $tmp[2] = substr(preg_replace('@([^,])\'\'@', '\\1\\\'',
+ ',' . $tmp[2]), 1);
+ $fields[$row['Field']] = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+ } else {
+ $fields[$row['Field']] = $row['Type'];
+ }
+} // end while
+
+// Prepares the form values
+if (isset($_REQUEST['index'])) {
+ if (is_array($_REQUEST['index'])) {
+ // coming already from form
+ $index = new PMA_Index($_REQUEST['index']);
+ } else {
+ $index = PMA_Index::singleton($db, $table, $_REQUEST['index']);
+ }
+} else {
+ $index = new PMA_Index;
+}
+
+/**
+ * Process the data from the edit/create index form,
+ * run the query to build the new index
+ * and moves back to "tbl_sql.php"
+ */
+if (isset($_REQUEST['do_save_data'])) {
+ $error = false;
+
+ // $sql_query is the one displayed in the query box
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+
+ // Drops the old index
+ if (! empty($_REQUEST['old_index'])) {
+ if ($_REQUEST['old_index'] == 'PRIMARY') {
+ $sql_query .= ' DROP PRIMARY KEY,';
+ } else {
+ $sql_query .= ' DROP INDEX ' . PMA_backquote($_REQUEST['old_index']) . ',';
+ }
+ } // end if
+
+ // Builds the new one
+ switch ($index->getType()) {
+ case 'PRIMARY':
+ if ($index->getName() == '') {
+ $index->setName('PRIMARY');
+ } elseif ($index->getName() != 'PRIMARY') {
+ $error = PMA_Message::error('strPrimaryKeyName');
+ }
+ $sql_query .= ' ADD PRIMARY KEY';
+ break;
+ case 'FULLTEXT':
+ case 'UNIQUE':
+ case 'INDEX':
+ if ($index->getName() == 'PRIMARY') {
+ $error = PMA_Message::error('strCantRenameIdxToPrimary');
+ }
+ $sql_query .= ' ADD ' . $index->getType() . ' '
+ . ($index->getName() ? PMA_backquote($index->getName()) : '');
+ break;
+ } // end switch
+
+ $index_fields = array();
+ foreach ($index->getColumns() as $key => $column) {
+ $index_fields[$key] = PMA_backquote($column->getName());
+ if ($column->getSubPart()) {
+ $index_fields[$key] .= '(' . $column->getSubPart() . ')';
+ }
+ } // end while
+
+ if (empty($index_fields)){
+ $error = PMA_Message::error('strNoIndexPartsDefined');
+ } else {
+ $sql_query .= ' (' . implode(', ', $index_fields) . ')';
+ }
+
+ if (! $error) {
+ PMA_DBI_query($sql_query);
+ $message = PMA_Message::success('strTableAlteredSuccessfully');
+ $message->addParam($table);
+
+ $active_page = 'tbl_structure.php';
+ require './tbl_structure.php';
+ exit;
+ } else {
+ $error->display();
+ }
+} // end builds the new index
+
+
+/**
+ * Display the form to edit/create an index
+ */
+
+// Displays headers (if needed)
+$GLOBALS['js_include'][] = 'functions.js';
+$GLOBALS['js_include'][] = 'indexes.js';
+
+require_once './libraries/tbl_info.inc.php';
+require_once './libraries/tbl_links.inc.php';
+
+if (isset($_REQUEST['index']) && is_array($_REQUEST['index'])) {
+ // coming already from form
+ $add_fields =
+ count($_REQUEST['index']['columns']['names']) - $index->getColumnCount();
+ if (isset($_REQUEST['add_fields'])) {
+ $add_fields += $_REQUEST['added_fields'];
+ }
+} elseif (isset($_REQUEST['create_index'])) {
+ $add_fields = $_REQUEST['added_fields'];
+} else {
+ $add_fields = 1;
+}
+
+// end preparing form values
+?>
+
+<form action="./tbl_indexes.php" method="post" name="index_frm"
+ onsubmit="if (typeof(this.elements['index'].disabled) != 'undefined') {
+ this.elements['index'].disabled = false}">
+<?php
+$form_params = array(
+ 'db' => $db,
+ 'table' => $table,
+);
+
+if (isset($_REQUEST['create_index'])) {
+ $form_params['create_index'] = 1;
+} elseif (isset($_REQUEST['old_index'])) {
+ $form_params['old_index'] = $_REQUEST['old_index'];
+} elseif (isset($_REQUEST['index'])) {
+ $form_params['old_index'] = $_REQUEST['index'];
+}
+
+echo PMA_generate_common_hidden_inputs($form_params);
+?>
+<fieldset>
+ <legend>
+<?php
+echo (isset($_REQUEST['create_index'])
+ ? $strCreateIndexTopic
+ : $strModifyIndexTopic);
+?>
+ </legend>
+
+<div class="formelement">
+<label for="input_index_name"><?php echo $strIndexName; ?></label>
+<input type="text" name="index[Key_name]" id="input_index_name" size="25"
+ value="<?php echo htmlspecialchars($index->getName()); ?>" onfocus="this.select()" />
+</div>
+
+<div class="formelement">
+<label for="select_index_type"><?php echo $strIndexType; ?></label>
+<select name="index[Index_type]" id="select_index_type" onchange="return checkIndexName()">
+ <?php echo $index->generateIndexSelector(); ?>
+</select>
+<?php echo PMA_showMySQLDocu('SQL-Syntax', 'ALTER_TABLE'); ?>
+</div>
+
+
+<br class="clearfloat" />
+<?php
+PMA_Message::warning('strPrimaryKeyWarning')->display();
+?>
+
+<table>
+<thead>
+<tr><th><?php echo $strField; ?></th>
+ <th><?php echo $strSize; ?></th>
+</tr>
+</thead>
+<tbody>
+<?php
+$odd_row = true;
+foreach ($index->getColumns() as $column) {
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <td><select name="index[columns][names][]">
+ <option value="">-- <?php echo $strIgnore; ?> --</option>
+ <?php
+ foreach ($fields as $field_name => $field_type) {
+ if ($index->getType() != 'FULLTEXT'
+ || preg_match('/(char|text)/i', $field_type)) {
+ echo '<option value="' . htmlspecialchars($field_name) . '"'
+ . (($field_name == $column->getName()) ? ' selected="selected"' : '') . '>'
+ . htmlspecialchars($field_name) . ' [' . $field_type . ']'
+ . '</option>' . "\n";
+ }
+ } // end foreach $fields
+ ?>
+ </select>
+ </td>
+ <td><input type="text" size="5" onfocus="this.select()"
+ name="index[columns][sub_parts][]" value="<?php echo $column->getSubPart(); ?>" />
+ </td>
+</tr>
+ <?php
+ $odd_row = !$odd_row;
+} // end foreach $edited_index_info['Sequences']
+for ($i = 0; $i < $add_fields; $i++) {
+ ?>
+<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <td><select name="index[columns][names][]">
+ <option value="">-- <?php echo $strIgnore; ?> --</option>
+ <?php
+ foreach ($fields as $field_name => $field_type) {
+ echo '<option value="' . htmlspecialchars($field_name) . '">'
+ . htmlspecialchars($field_name) . ' [' . $field_type . ']'
+ . '</option>' . "\n";
+ } // end foreach $fields
+ ?>
+ </select>
+ </td>
+ <td><input type="text" size="5" onfocus="this.select()"
+ name="index[columns][sub_parts][]" value="" />
+ </td>
+</tr>
+ <?php
+ $odd_row = !$odd_row;
+} // end foreach $edited_index_info['Sequences']
+?>
+</tbody>
+</table>
+</fieldset>
+
+<fieldset class="tblFooters">
+ <input type="submit" name="do_save_data" value="<?php echo $strSave; ?>" />
+<?php
+echo $strOr . ' ';
+echo sprintf($strAddToIndex,
+ '<input type="text" name="added_fields" size="2" value="1"'
+ .' onfocus="this.select()" />') . "\n";
+echo '<input type="submit" name="add_fields" value="' . $strGo . '"'
+ .' onclick="return checkFormElementInRange(this.form,'
+ ." 'added_fields', '" . PMA_jsFormat($GLOBALS['strInvalidColumnCount']) . "', 1"
+ .')" />' . "\n";
+?>
+</fieldset>
+</form>
+<?php
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_move_copy.php b/tbl_move_copy.php
new file mode 100644
index 0000000000..7885b75933
--- /dev/null
+++ b/tbl_move_copy.php
@@ -0,0 +1,89 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+
+// Check parameters
+
+PMA_checkParameters(array('db', 'table'));
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+$err_url = 'tbl_sql.php?' . PMA_generate_common_url($db, $table);
+
+
+/**
+ * Selects the database to work with
+ */
+PMA_DBI_select_db($db);
+
+$goto = $cfg['DefaultTabTable'];
+
+/**
+ * $_REQUEST['target_db'] could be empty in case we came from an input field
+ * (when there are many databases, no drop-down)
+ */
+if (empty($_REQUEST['target_db'])) {
+ $_REQUEST['target_db'] = $db;
+}
+
+/**
+ * A target table name has been sent to this script -> do the work
+ */
+if (PMA_isValid($_REQUEST['new_name'])) {
+ if ($db == $_REQUEST['target_db'] && $table == $_REQUEST['new_name']) {
+ if (isset($_REQUEST['submit_move'])) {
+ $message = PMA_Message::error('strMoveTableSameNames');
+ } else {
+ $message = PMA_Message::error('strCopyTableSameNames');
+ }
+ $goto = './tbl_operations.php';
+ } else {
+ PMA_Table::moveCopy($db, $table, $_REQUEST['target_db'], $_REQUEST['new_name'],
+ $_REQUEST['what'], isset($_REQUEST['submit_move']), 'one_table');
+
+ if (isset($_REQUEST['submit_move'])) {
+ $message = PMA_Message::success('strMoveTableOK');
+ } else {
+ $message = PMA_Message::success('strCopyTableOK');
+ }
+ $old = PMA_backquote($db) . '.' . PMA_backquote($table);
+ $message->addParam($old);
+ $new = PMA_backquote($_REQUEST['target_db']) . '.' . PMA_backquote($_REQUEST['new_name']);
+ $message->addParam($new);
+
+ /* Check: Work on new table or on old table? */
+ if (isset($_REQUEST['submit_move']) || PMA_isValid($_REQUEST['switch_to_new'])) {
+ $db = $_REQUEST['target_db'];
+ $table = $_REQUEST['new_name'];
+ }
+ $reload = 1;
+
+ $disp_query = $sql_query;
+ $disp_message = $message;
+ unset($sql_query, $message);
+
+ $goto = $cfg['DefaultTabTable'];
+ }
+} else {
+ /**
+ * No new name for the table!
+ */
+ $message = PMA_Message::error('strTableEmpty');
+ $goto = './tbl_operations.php';
+}
+
+/**
+ * Back to the calling script
+ */
+require $goto;
+?>
diff --git a/tbl_operations.php b/tbl_operations.php
new file mode 100644
index 0000000000..22fe71fc47
--- /dev/null
+++ b/tbl_operations.php
@@ -0,0 +1,721 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/Table.class.php';
+
+$pma_table = new PMA_Table($GLOBALS['table'], $GLOBALS['db']);
+
+/**
+ * Runs common work
+ */
+require './libraries/tbl_common.php';
+$url_query .= '&amp;goto=tbl_operations.php&amp;back=tbl_operations.php';
+$url_params['goto'] = $url_params['back'] = 'tbl_operations.php';
+
+/**
+ * Gets relation settings
+ */
+require_once './libraries/relation.lib.php';
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Gets available MySQL charsets and storage engines
+ */
+require_once './libraries/mysql_charsets.lib.php';
+require_once './libraries/StorageEngine.class.php';
+
+/**
+ * Class for partition management
+ */
+require_once './libraries/Partition.class.php';
+
+// reselect current db (needed in some cases probably due to
+// the calling of relation.lib.php)
+PMA_DBI_select_db($GLOBALS['db']);
+
+/**
+ * Gets tables informations
+ */
+
+require './libraries/tbl_info.inc.php';
+
+// define some globals here, for improved syntax in the conditionals
+$is_myisam_or_maria = $is_isam = $is_innodb = $is_berkeleydb = $is_maria = $is_pbxt = false;
+// set initial value of these globals, based on the current table engine
+PMA_set_global_variables_for_engine($tbl_type);
+
+if ($is_maria) {
+ // the value for transactional can be implicit
+ // (no create option found, in this case it means 1)
+ // or explicit (option found with a value of 0 or 1)
+ // ($transactional may have been set by libraries/tbl_info.inc.php,
+ // from the $create_options)
+ $transactional = (isset($transactional) && $transactional == '0') ? '0' : '1';
+ $page_checksum = (isset($page_checksum)) ? $page_checksum : '';
+}
+
+$reread_info = false;
+$table_alters = array();
+
+/**
+ * Updates table comment, type and options if required
+ */
+if (isset($_REQUEST['submitoptions'])) {
+ $_message = '';
+ $warning_messages = array();
+
+ if (isset($_REQUEST['new_name'])) {
+ if ($pma_table->rename($_REQUEST['new_name'])) {
+ $_message .= $pma_table->getLastMessage();
+ $result = true;
+ $GLOBALS['table'] = $pma_table->getName();
+ $reread_info = true;
+ $reload = true;
+ } else {
+ $_message .= $pma_table->getLastError();
+ $result = false;
+ }
+ }
+ if (isset($_REQUEST['comment'])
+ && urldecode($_REQUEST['prev_comment']) !== $_REQUEST['comment']) {
+ $table_alters[] = 'COMMENT = \'' . PMA_sqlAddslashes($_REQUEST['comment']) . '\'';
+ }
+ if (! empty($_REQUEST['new_tbl_type'])
+ && strtolower($_REQUEST['new_tbl_type']) !== strtolower($tbl_type)) {
+ $table_alters[] = 'ENGINE = ' . $_REQUEST['new_tbl_type'];
+ $tbl_type = $_REQUEST['new_tbl_type'];
+ // reset the globals for the new engine
+ PMA_set_global_variables_for_engine($tbl_type);
+ }
+
+ if (! empty($_REQUEST['tbl_collation'])
+ && $_REQUEST['tbl_collation'] !== $tbl_collation) {
+ $table_alters[] = 'DEFAULT ' . PMA_generateCharsetQueryPart($_REQUEST['tbl_collation']);
+ }
+
+ if (($is_myisam_or_maria || $is_isam)
+ && isset($_REQUEST['new_pack_keys'])
+ && $_REQUEST['new_pack_keys'] != (string)$pack_keys) {
+ $table_alters[] = 'pack_keys = ' . $_REQUEST['new_pack_keys'];
+ }
+
+ $checksum = empty($checksum) ? '0' : '1';
+ $_REQUEST['new_checksum'] = empty($_REQUEST['new_checksum']) ? '0' : '1';
+ if ($is_myisam_or_maria
+ && $_REQUEST['new_checksum'] !== $checksum) {
+ $table_alters[] = 'checksum = ' . $_REQUEST['new_checksum'];
+ }
+
+ $_REQUEST['new_transactional'] = empty($_REQUEST['new_transactional']) ? '0' : '1';
+ if ($is_maria
+ && $_REQUEST['new_transactional'] !== $transactional) {
+ $table_alters[] = 'TRANSACTIONAL = ' . $_REQUEST['new_transactional'];
+ }
+
+ $_REQUEST['new_page_checksum'] = empty($_REQUEST['new_page_checksum']) ? '0' : '1';
+ if ($is_maria
+ && $_REQUEST['new_page_checksum'] !== $page_checksum) {
+ $table_alters[] = 'PAGE_CHECKSUM = ' . $_REQUEST['new_page_checksum'];
+ }
+
+ $delay_key_write = empty($delay_key_write) ? '0' : '1';
+ $_REQUEST['new_delay_key_write'] = empty($_REQUEST['new_delay_key_write']) ? '0' : '1';
+ if ($is_myisam_or_maria
+ && $_REQUEST['new_delay_key_write'] !== $delay_key_write) {
+ $table_alters[] = 'delay_key_write = ' . $_REQUEST['new_delay_key_write'];
+ }
+
+ if (($is_myisam_or_maria || $is_innodb || $is_pbxt)
+ && ! empty($_REQUEST['new_auto_increment'])
+ && (! isset($auto_increment) || $_REQUEST['new_auto_increment'] !== $auto_increment)) {
+ $table_alters[] = 'auto_increment = ' . PMA_sqlAddslashes($_REQUEST['new_auto_increment']);
+ }
+
+ if (($is_myisam_or_maria || $is_innodb || $is_pbxt)
+ && ! empty($_REQUEST['new_row_format'])
+ && (! isset($row_format) || $_REQUEST['new_row_format'] !== $row_format)) {
+ $table_alters[] = 'ROW_FORMAT = ' . PMA_sqlAddslashes($_REQUEST['new_row_format']);
+ }
+
+ if (count($table_alters) > 0) {
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($GLOBALS['table']);
+ $sql_query .= "\r\n" . implode("\r\n", $table_alters);
+ $result .= PMA_DBI_query($sql_query) ? true : false;
+ $reread_info = true;
+ unset($table_alters);
+ foreach (PMA_DBI_get_warnings() as $warning) {
+ $warning_messages[] = $warning['Level'] . ': #' . $warning['Code']
+ . ' ' . $warning['Message'];
+ }
+ }
+}
+/**
+ * Reordering the table has been requested by the user
+ */
+if (isset($_REQUEST['submitorderby']) && ! empty($_REQUEST['order_field'])) {
+ $sql_query = '
+ ALTER TABLE ' . PMA_backquote($GLOBALS['table']) . '
+ ORDER BY ' . PMA_backquote(urldecode($_REQUEST['order_field']));
+ if (isset($_REQUEST['order_order']) && $_REQUEST['order_order'] === 'desc') {
+ $sql_query .= ' DESC';
+ }
+ $result = PMA_DBI_query($sql_query);
+} // end if
+
+/**
+ * A partition operation has been requested by the user
+ */
+if (isset($_REQUEST['submit_partition']) && ! empty($_REQUEST['partition_operation'])) {
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($GLOBALS['table']) . ' ' . $_REQUEST['partition_operation'] . ' PARTITION ' . $_REQUEST['partition_name'];
+ $result = PMA_DBI_query($sql_query);
+} // end if
+
+if ($reread_info) {
+ $page_checksum = $checksum = $delay_key_write = 0;
+ require './libraries/tbl_info.inc.php';
+}
+unset($reread_info);
+
+/**
+ * Displays top menu links
+ */
+require_once './libraries/tbl_links.inc.php';
+
+if (isset($result)) {
+ // set to success by default, because result set could be empty
+ // (for example, a table rename)
+ $_type = 'success';
+ if (empty($_message)) {
+ $_message = $result ? $strSuccess : $strError;
+ // $result should exist, regardless of $_message
+ $_type = $result ? 'success' : 'error';
+ }
+ if (! empty($warning_messages)) {
+ $_message = new PMA_Message;
+ $_message->addMessages($warning_messages);
+ $_message->isWarning(true);
+ unset($warning_messages);
+ }
+ PMA_showMessage($_message, $sql_query, $_type);
+ unset($_message, $_type);
+}
+
+$url_params['goto'] = 'tbl_operations.php';
+$url_params['back'] = 'tbl_operations.php';
+
+/**
+ * Get columns names
+ */
+$local_query = '
+ SHOW COLUMNS
+ FROM ' . PMA_backquote($GLOBALS['table']) . '
+ FROM ' . PMA_backquote($GLOBALS['db']);
+$columns = PMA_DBI_fetch_result($local_query, null, 'Field');
+unset($local_query);
+
+/**
+ * Displays the page
+ */
+?>
+<!-- Order the table -->
+<div id="div_table_order">
+<form method="post" action="tbl_operations.php">
+<?php echo PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table']); ?>
+<fieldset id="fieldset_table_order">
+ <legend><?php echo $strAlterOrderBy; ?></legend>
+ <select name="order_field">
+<?php
+foreach ($columns as $fieldname) {
+ echo ' <option value="' . htmlspecialchars($fieldname) . '">'
+ . htmlspecialchars($fieldname) . '</option>' . "\n";
+}
+unset($columns);
+?>
+ </select> <?php echo $strSingly; ?>
+ <select name="order_order">
+ <option value="asc"><?php echo $strAscending; ?></option>
+ <option value="desc"><?php echo $strDescending; ?></option>
+ </select>
+ <input type="submit" name="submitorderby" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
+</div>
+
+<!-- Move table -->
+<div id="div_table_rename">
+<form method="post" action="tbl_move_copy.php"
+ onsubmit="return emptyFormElements(this, 'new_name')">
+<?php echo PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table']); ?>
+<input type="hidden" name="reload" value="1" />
+<input type="hidden" name="what" value="data" />
+<fieldset id="fieldset_table_rename">
+ <legend><?php echo $strMoveTable; ?></legend>
+<?php if (count($GLOBALS['pma']->databases) > $GLOBALS['cfg']['MaxDbList']) {
+?>
+ <input type="text" maxlength="100" size="30" name="target_db" value="<?php echo htmlspecialchars($GLOBALS['db']); ?>"/>
+<?php
+ } else {
+?>
+ <select name="target_db">
+ <?php echo $GLOBALS['pma']->databases->getHtmlOptions(true, false); ?>
+ </select>
+<?php
+ } // end if
+?>
+ &nbsp;<strong>.</strong>&nbsp;
+ <input type="text" size="20" name="new_name" onfocus="this.select()"
+value="<?php echo htmlspecialchars($GLOBALS['table']); ?>" /><br />
+ <?php
+ // starting with MySQL 5.0.24, SHOW CREATE TABLE includes the AUTO_INCREMENT
+ // next value but users can decide if they want it or not for the operation
+ ?>
+ <input type="checkbox" name="sql_auto_increment" value="1" id="checkbox_auto_increment_mv" checked="checked" />
+ <label for="checkbox_auto_increment_mv"><?php echo $strAddAutoIncrement; ?></label><br />
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="submit_move" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
+</div>
+
+<?php
+if (strstr($show_comment, '; InnoDB free') === false) {
+ if (strstr($show_comment, 'InnoDB free') === false) {
+ // only user entered comment
+ $comment = $show_comment;
+ } else {
+ // here we have just InnoDB generated part
+ $comment = '';
+ }
+} else {
+ // remove InnoDB comment from end, just the minimal part (*? is non greedy)
+ $comment = preg_replace('@; InnoDB free:.*?$@', '', $show_comment);
+}
+
+// PACK_KEYS: MyISAM or ISAM
+// DELAY_KEY_WRITE, CHECKSUM, : MyISAM only
+// AUTO_INCREMENT: MyISAM and InnoDB since 5.0.3, PBXT
+
+// nijel: Here should be version check for InnoDB, however it is supported
+// in >5.0.4, >4.1.12 and >4.0.11, so I decided not to
+// check for version
+?>
+
+<!-- Table options -->
+<div id="div_table_options">
+<form method="post" action="tbl_operations.php">
+<?php echo PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table']); ?>
+<input type="hidden" name="reload" value="1" />
+<fieldset>
+ <legend><?php echo $strTableOptions; ?></legend>
+
+ <table>
+ <!-- Change table name -->
+ <tr><td><?php echo $strRenameTable; ?></td>
+ <td><input type="text" size="20" name="new_name" onfocus="this.select()"
+ value="<?php echo htmlspecialchars($GLOBALS['table']); ?>" />
+ </td>
+ </tr>
+
+ <!-- Table comments -->
+ <tr><td><?php echo $strTableComments; ?></td>
+ <td><input type="text" name="comment" maxlength="60" size="30"
+ value="<?php echo htmlspecialchars($comment); ?>" onfocus="this.select()" />
+ <input type="hidden" name="prev_comment" value="<?php echo htmlspecialchars($comment); ?>" />
+ </td>
+ </tr>
+
+ <!-- Storage engine -->
+ <tr><td><?php echo $strStorageEngine; ?>
+ <?php echo PMA_showMySQLDocu('Storage_engines', 'Storage_engines'); ?>
+ </td>
+ <td><?php echo PMA_StorageEngine::getHtmlSelect('new_tbl_type', null, $tbl_type); ?>
+ </td>
+ </tr>
+
+ <!-- Table character set -->
+ <tr><td><?php echo $strCollation; ?></td>
+ <td><?php echo PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION,
+ 'tbl_collation', null, $tbl_collation, false, 3); ?>
+ </td>
+ </tr>
+<?php
+if ($is_myisam_or_maria || $is_isam) {
+ ?>
+ <tr>
+ <td><label for="new_pack_keys">PACK_KEYS</label></td>
+ <td><select name="new_pack_keys" id="new_pack_keys">
+ <option value="DEFAULT"
+ <?php if ($pack_keys == 'DEFAULT') echo 'selected="selected"'; ?>
+ >DEFAULT</option>
+ <option value="0"
+ <?php if ($pack_keys == '0') echo 'selected="selected"'; ?>
+ >0</option>
+ <option value="1"
+ <?php if ($pack_keys == '1') echo 'selected="selected"'; ?>
+ >1</option>
+ </select>
+ </td>
+ </tr>
+ <?php
+} // end if (MYISAM|ISAM)
+
+if ($is_myisam_or_maria) {
+ ?>
+ <tr><td><label for="new_checksum">CHECKSUM</label></td>
+ <td><input type="checkbox" name="new_checksum" id="new_checksum"
+ value="1"
+ <?php echo (isset($checksum) && $checksum == 1)
+ ? ' checked="checked"'
+ : ''; ?> />
+ </td>
+ </tr>
+
+ <tr><td><label for="new_delay_key_write">DELAY_KEY_WRITE</label></td>
+ <td><input type="checkbox" name="new_delay_key_write" id="new_delay_key_write"
+ value="1"
+ <?php echo (isset($delay_key_write) && $delay_key_write == 1)
+ ? ' checked="checked"'
+ : ''; ?> />
+ </td>
+ </tr>
+
+ <?php
+} // end if (MYISAM)
+
+if ($is_maria) {
+ ?>
+ <tr><td><label for="new_transactional">TRANSACTIONAL</label></td>
+ <td><input type="checkbox" name="new_transactional" id="new_transactional"
+ value="1"
+ <?php echo (isset($transactional) && $transactional == 1)
+ ? ' checked="checked"'
+ : ''; ?> />
+ </td>
+ </tr>
+
+ <tr><td><label for="new_page_checksum">PAGE_CHECKSUM</label></td>
+ <td><input type="checkbox" name="new_page_checksum" id="new_page_checksum"
+ value="1"
+ <?php echo (isset($page_checksum) && $page_checksum == 1)
+ ? ' checked="checked"'
+ : ''; ?> />
+ </td>
+ </tr>
+
+ <?php
+} // end if (MARIA)
+
+if (isset($auto_increment) && strlen($auto_increment) > 0
+ && ($is_myisam_or_maria || $is_innodb || $is_pbxt)) {
+ ?>
+ <tr><td><label for="auto_increment_opt">AUTO_INCREMENT</label></td>
+ <td><input type="text" name="new_auto_increment" id="auto_increment_opt"
+ value="<?php echo $auto_increment; ?>" /></td>
+ </tr>
+ <?php
+} // end if (MYISAM|INNODB)
+
+$possible_row_formats = array(
+ 'MARIA' => array('FIXED','DYNAMIC','PAGE'),
+ 'MYISAM' => array('FIXED','DYNAMIC'),
+ 'PBXT' => array('FIXED','DYNAMIC'),
+ 'INNODB' => array('COMPACT','REDUNDANT')
+);
+// for MYISAM there is also COMPRESSED but it can be set only by the
+// myisampack utility, so don't offer here the choice because if we
+// try it inside an ALTER TABLE, MySQL (at least in 5.1.23-maria)
+// does not return a warning
+// (if the table was compressed, it can be seen on the Structure page)
+
+if (isset($possible_row_formats[$tbl_type])) {
+ $current_row_format = strtoupper($showtable['Row_format']);
+ echo '<tr><td><label for="new_row_format">ROW_FORMAT</label></td>';
+ echo '<td>';
+ PMA_generate_html_dropdown('new_row_format', $possible_row_formats[$tbl_type], $current_row_format);
+ unset($possible_row_formats, $current_row_format);
+ echo '</td>';
+ echo '</tr>';
+}
+?>
+ </table>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="submitoptions" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
+</div>
+
+<!-- Copy table -->
+<div id="div_table_copy">
+<form method="post" action="tbl_move_copy.php"
+ onsubmit="return emptyFormElements(this, 'new_name')">
+<?php echo PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table']); ?>
+<input type="hidden" name="reload" value="1" />
+<fieldset>
+ <legend><?php echo $strCopyTable; ?></legend>
+<?php if (count($GLOBALS['pma']->databases) > $GLOBALS['cfg']['MaxDbList']) {
+?>
+ <input type="text" maxlength="100" size="30" name="target_db" value="<?php echo htmlspecialchars($GLOBALS['db']); ?>"/>
+<?php
+ } else {
+?>
+ <select name="target_db">
+ <?php echo $GLOBALS['pma']->databases->getHtmlOptions(true, false); ?>
+ </select>
+<?php
+ } // end if
+?>
+ &nbsp;<strong>.</strong>&nbsp;
+ <input type="text" size="20" name="new_name" onfocus="this.select()" /><br />
+<?php
+ $choices = array(
+ 'structure' => $strStrucOnly,
+ 'data' => $strStrucData,
+ 'dataonly' => $strDataOnly);
+ PMA_generate_html_radio('what', $choices, 'data', true);
+ unset($choices);
+?>
+
+ <input type="checkbox" name="drop_if_exists" value="true" id="checkbox_drop" />
+ <label for="checkbox_drop"><?php echo sprintf($strAddClause, 'DROP TABLE'); ?></label><br />
+ <input type="checkbox" name="sql_auto_increment" value="1" id="checkbox_auto_increment_cp" />
+ <label for="checkbox_auto_increment_cp"><?php echo $strAddAutoIncrement; ?></label><br />
+ <?php
+ // display "Add constraints" choice only if there are
+ // foreign keys
+ if (PMA_getForeigners($GLOBALS['db'], $GLOBALS['table'], '', 'foreign')) {
+ ?>
+ <input type="checkbox" name="add_constraints" value="1" id="checkbox_constraints" />
+ <label for="checkbox_constraints"><?php echo $strAddConstraints; ?></label><br />
+ <?php
+ } // endif
+ if (isset($_COOKIE['pma_switch_to_new'])
+ && $_COOKIE['pma_switch_to_new'] == 'true') {
+ $pma_switch_to_new = 'true';
+ }
+ ?>
+ <input type="checkbox" name="switch_to_new" value="true"
+ id="checkbox_switch"<?php echo
+ isset($pma_switch_to_new) && $pma_switch_to_new == 'true'
+ ? ' checked="checked"'
+ : ''; ?> />
+ <label for="checkbox_switch"><?php echo $strSwitchToTable; ?></label>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="submit_copy" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
+</div>
+
+<br class="clearfloat"/>
+
+<div id="div_table_maintenance">
+<fieldset>
+ <legend><?php echo $strTableMaintenance; ?></legend>
+
+<ul>
+<?php
+// Note: BERKELEY (BDB) is no longer supported, starting with MySQL 5.1
+if ($is_myisam_or_maria || $is_innodb || $is_berkeleydb) {
+ if ($is_myisam_or_maria || $is_innodb) {
+ $this_url_params = array_merge($url_params,
+ array('sql_query' => 'CHECK TABLE ' . PMA_backquote($GLOBALS['table'])));
+ ?>
+ <li><a href="sql.php<?php echo PMA_generate_common_url($this_url_params); ?>">
+ <?php echo $strCheckTable; ?></a>
+ <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'CHECK_TABLE'); ?>
+ </li>
+ <?php
+ }
+ if ($is_innodb) {
+ $this_url_params = array_merge($url_params,
+ array('sql_query' => 'ALTER TABLE ' . PMA_backquote($GLOBALS['table']) . ' ENGINE = InnoDB'));
+ ?>
+ <li><a href="sql.php<?php echo PMA_generate_common_url($this_url_params); ?>">
+ <?php echo $strDefragment; ?></a>
+ <?php echo PMA_showMySQLDocu('Table_types', 'InnoDB_File_Defragmenting'); ?>
+ </li>
+ <?php
+ }
+ if ($is_myisam_or_maria || $is_berkeleydb) {
+ $this_url_params = array_merge($url_params,
+ array('sql_query' => 'ANALYZE TABLE ' . PMA_backquote($GLOBALS['table'])));
+ ?>
+ <li><a href="sql.php<?php echo PMA_generate_common_url($this_url_params); ?>">
+ <?php echo $strAnalyzeTable; ?></a>
+ <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'ANALYZE_TABLE');?>
+ </li>
+ <?php
+ }
+ if ($is_myisam_or_maria) {
+ $this_url_params = array_merge($url_params,
+ array('sql_query' => 'REPAIR TABLE ' . PMA_backquote($GLOBALS['table'])));
+ ?>
+ <li><a href="sql.php<?php echo PMA_generate_common_url($this_url_params); ?>">
+ <?php echo $strRepairTable; ?></a>
+ <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'REPAIR_TABLE'); ?>
+ </li>
+ <?php
+ }
+ if ($is_myisam_or_maria || $is_innodb || $is_berkeleydb) {
+ $this_url_params = array_merge($url_params,
+ array('sql_query' => 'OPTIMIZE TABLE ' . PMA_backquote($GLOBALS['table'])));
+ ?>
+ <li><a href="sql.php<?php echo PMA_generate_common_url($this_url_params); ?>">
+ <?php echo $strOptimizeTable; ?></a>
+ <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'OPTIMIZE_TABLE'); ?>
+ </li>
+ <?php
+ }
+} // end MYISAM or BERKELEYDB case
+$this_url_params = array_merge($url_params,
+ array(
+ 'sql_query' => 'FLUSH TABLE ' . PMA_backquote($GLOBALS['table']),
+ 'zero_rows' => sprintf($strTableHasBeenFlushed,
+ htmlspecialchars($GLOBALS['table'])),
+ 'reload' => 1,
+ ));
+?>
+ <li><a href="sql.php<?php echo PMA_generate_common_url($this_url_params); ?>">
+ <?php echo $strFlushTable; ?></a>
+ <?php echo PMA_showMySQLDocu('MySQL_Database_Administration', 'FLUSH'); ?>
+ </li>
+</ul>
+</fieldset>
+</div>
+<?php if (PMA_Partition::havePartitioning()) {
+ $partition_names = PMA_Partition::getPartitionNames($db, $table);
+ // show the Partition maintenance section only if we detect a partition
+ if (! is_null($partition_names[0])) {
+ ?>
+<div id="div_partition_maintenance">
+<form method="post" action="tbl_operations.php">
+<?php echo PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table']); ?>
+<fieldset>
+ <legend><?php echo $strPartitionMaintenance; ?></legend>
+<?php
+ $html_select = '<select name="partition_name">' . "\n";
+ foreach($partition_names as $one_partition) {
+ $one_partition = htmlspecialchars($one_partition);
+ $html_select .= '<option value="' . $one_partition . '">' . $one_partition . '</option>' . "\n";
+ }
+ $html_select .= '</select>' . "\n";
+ printf($GLOBALS['strPartition'], $html_select);
+ unset($partition_names, $one_partition, $html_select);
+ $choices = array(
+ 'ANALYZE' => $strAnalyze,
+ 'CHECK' => $strCheck,
+ 'OPTIMIZE' => $strOptimize,
+ 'REBUILD' => $strRebuild,
+ 'REPAIR' => $strRepair);
+ PMA_generate_html_radio('partition_operation', $choices, '', false);
+ unset($choices);
+ echo PMA_showMySQLDocu('partitioning_maintenance', 'partitioning_maintenance');
+ // I'm not sure of the best way to display that; this link does
+ // not depend on the Go button
+ $this_url_params = array_merge($url_params,
+ array(
+ 'sql_query' => 'ALTER TABLE ' . PMA_backquote($GLOBALS['table']) . ' REMOVE PARTITIONING'
+ ));
+?>
+ <br /><a href="sql.php<?php echo PMA_generate_common_url($this_url_params); ?>">
+ <?php echo $strRemovePartitioning; ?></a>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="submit_partition" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
+</div>
+<?php
+ } // end if
+ } // end if
+
+// Referential integrity check
+// The Referential integrity check was intended for the non-InnoDB
+// tables for which the relations are defined in pmadb
+// so I assume that if the current table is InnoDB, I don't display
+// this choice (InnoDB maintains integrity by itself)
+
+if ($cfgRelation['relwork'] && ! $is_innodb) {
+ PMA_DBI_select_db($GLOBALS['db']);
+ $foreign = PMA_getForeigners($GLOBALS['db'], $GLOBALS['table']);
+
+ if ($foreign) {
+ ?>
+ <!-- Referential integrity check -->
+<div id="div_referential_integrity">
+<fieldset>
+ <legend><?php echo $strReferentialIntegrity; ?></legend>
+ <ul>
+ <?php
+ echo "\n";
+ foreach ($foreign AS $master => $arr) {
+ $join_query = 'SELECT ' . PMA_backquote($GLOBALS['table']) . '.* FROM '
+ . PMA_backquote($GLOBALS['table']) . ' LEFT JOIN '
+ . PMA_backquote($arr['foreign_table']);
+ if ($arr['foreign_table'] == $GLOBALS['table']) {
+ $foreign_table = $GLOBALS['table'] . '1';
+ $join_query .= ' AS ' . PMA_backquote($foreign_table);
+ } else {
+ $foreign_table = $arr['foreign_table'];
+ }
+ $join_query .= ' ON '
+ . PMA_backquote($GLOBALS['table']) . '.' . PMA_backquote($master)
+ . ' = ' . PMA_backquote($foreign_table) . '.' . PMA_backquote($arr['foreign_field'])
+ . ' WHERE '
+ . PMA_backquote($foreign_table) . '.' . PMA_backquote($arr['foreign_field'])
+ . ' IS NULL AND '
+ . PMA_backquote($GLOBALS['table']) . '.' . PMA_backquote($master)
+ . ' IS NOT NULL';
+ $this_url_params = array_merge($url_params,
+ array('sql_query' => $join_query));
+ echo ' <li>'
+ . '<a href="sql.php'
+ . PMA_generate_common_url($this_url_params)
+ . '">' . $master . '&nbsp;->&nbsp;' . $arr['foreign_table'] . '.' . $arr['foreign_field']
+ . '</a></li>' . "\n";
+ } // foreach $foreign
+ unset($foreign_table, $join_query);
+ ?>
+ </ul>
+ </fieldset>
+ </div>
+ <?php
+ } // end if ($foreign)
+
+} // end if (!empty($cfg['Server']['relation']))
+
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+
+
+function PMA_set_global_variables_for_engine($tbl_type)
+{
+ global $is_myisam_or_maria, $is_innodb, $is_isam, $is_berkeleydb, $is_maria, $is_pbxt;
+
+ $is_myisam_or_maria = $is_isam = $is_innodb = $is_berkeleydb = $is_maria = $is_pbxt = false;
+ $upper_tbl_type = strtoupper($tbl_type);
+
+ //Options that apply to MYISAM usually apply to MARIA
+ $is_myisam_or_maria = ($upper_tbl_type == 'MYISAM' || $upper_tbl_type == 'MARIA');
+ $is_maria = ($upper_tbl_type == 'MARIA');
+
+ $is_isam = ($upper_tbl_type == 'ISAM');
+ $is_innodb = ($upper_tbl_type == 'INNODB');
+ $is_berkeleydb = ($upper_tbl_type == 'BERKELEYDB');
+ $is_pbxt = ($upper_tbl_type == 'PBXT');
+}
+
+?>
diff --git a/tbl_printview.php b/tbl_printview.php
new file mode 100644
index 0000000000..744037dd71
--- /dev/null
+++ b/tbl_printview.php
@@ -0,0 +1,507 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+require './libraries/tbl_common.php';
+
+/**
+ * Gets the variables sent or posted to this script, then displays headers
+ */
+$print_view = true;
+if (! isset($selected_tbl)) {
+ require_once './libraries/header.inc.php';
+}
+
+// Check parameters
+
+if (! isset($the_tables) || ! is_array($the_tables)) {
+ $the_tables = array();
+}
+
+/**
+ * Gets the relations settings
+ */
+require_once './libraries/relation.lib.php';
+require_once './libraries/transformations.lib.php';
+require_once './libraries/Index.class.php';
+
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Defines the url to return to in case of error in a sql statement
+ */
+if (strlen($table)) {
+ $err_url = 'tbl_sql.php?' . PMA_generate_common_url($db, $table);
+} else {
+ $err_url = 'db_sql.php?' . PMA_generate_common_url($db);
+}
+
+
+/**
+ * Selects the database
+ */
+PMA_DBI_select_db($db);
+
+
+/**
+ * Multi-tables printview thanks to Christophe Gesche from the "MySQL Form
+ * Generator for PHPMyAdmin" (http://sourceforge.net/projects/phpmysqlformgen/)
+ */
+if (isset($selected_tbl) && is_array($selected_tbl)) {
+ $the_tables = $selected_tbl;
+} elseif (strlen($table)) {
+ $the_tables[] = $table;
+}
+$multi_tables = (count($the_tables) > 1);
+
+if ($multi_tables) {
+ if (empty($GLOBALS['is_header_sent'])) {
+ require_once './libraries/header.inc.php';
+ }
+ $tbl_list = '';
+ foreach ($the_tables as $key => $table) {
+ $tbl_list .= (empty($tbl_list) ? '' : ', ')
+ . PMA_backquote($table);
+ }
+ echo '<strong>'. $strShowTables . ': ' . $tbl_list . '</strong>' . "\n";
+ echo '<hr />' . "\n";
+} // end if
+
+$tables_cnt = count($the_tables);
+$counter = 0;
+
+foreach ($the_tables as $key => $table) {
+ if ($counter + 1 >= $tables_cnt) {
+ $breakstyle = '';
+ } else {
+ $breakstyle = ' style="page-break-after: always;"';
+ }
+ $counter++;
+ echo '<div' . $breakstyle . '>' . "\n";
+ echo '<h1>' . $table . '</h1>' . "\n";
+
+ /**
+ * Gets table informations
+ */
+ $result = PMA_DBI_query(
+ 'SHOW TABLE STATUS LIKE \'' . PMA_sqlAddslashes($table, true) . '\';');
+ $showtable = PMA_DBI_fetch_assoc($result);
+ $num_rows = (isset($showtable['Rows']) ? $showtable['Rows'] : 0);
+ $show_comment = (isset($showtable['Comment']) ? $showtable['Comment'] : '');
+ PMA_DBI_free_result($result);
+
+ $tbl_is_view = PMA_Table::isView($db, $table);
+
+ /**
+ * Gets fields properties
+ */
+ $result = PMA_DBI_query(
+ 'SHOW FIELDS FROM ' . PMA_backquote($table) . ';', null,
+ PMA_DBI_QUERY_STORE);
+ $fields_cnt = PMA_DBI_num_rows($result);
+
+
+// We need this to correctly learn if a TIMESTAMP is NOT NULL, since
+// SHOW FULL FIELDS or INFORMATION_SCHEMA incorrectly says NULL
+// and SHOW CREATE TABLE says NOT NULL (tested
+// in MySQL 4.0.25 and 5.0.21, http://bugs.mysql.com/20910).
+
+ $show_create_table = PMA_DBI_fetch_value(
+ 'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table),
+ 0, 1);
+ $analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
+
+ // Check if we can use Relations (Mike Beck)
+ // Find which tables are related with the current one and write it in
+ // an array
+ $res_rel = PMA_getForeigners($db, $table);
+ $have_rel = (bool) count($res_rel);
+
+ /**
+ * Displays the comments of the table if MySQL >= 3.23
+ */
+ if (!empty($show_comment)) {
+ echo $strTableComments . ': ' . htmlspecialchars($show_comment) . '<br /><br />';
+ }
+
+ /**
+ * Displays the table structure
+ */
+ ?>
+
+<!-- TABLE INFORMATIONS -->
+<table style="width: 100%;">
+<thead>
+<tr>
+ <th><?php echo $strField; ?></th>
+ <th><?php echo $strType; ?></th>
+ <!--<th><?php echo $strAttr; ?></th>-->
+ <th><?php echo $strNull; ?></th>
+ <th><?php echo $strDefault; ?></th>
+ <!--<th><?php echo $strExtra; ?></th>-->
+ <?php
+ if ($have_rel) {
+ echo '<th>' . $strLinksTo . '</th>' . "\n";
+ }
+ echo ' <th>' . $strComments . '</th>' . "\n";
+ if ($cfgRelation['mimework']) {
+ echo ' <th>MIME</th>' . "\n";
+ }
+ ?>
+</tr>
+</thead>
+<tbody>
+ <?php
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ // loic1: set or enum types: slashes single quotes inside options
+ if (preg_match('@^(set|enum)\((.+)\)$@i', $type, $tmp)) {
+ $tmp[2] = substr(preg_replace('@([^,])\'\'@', '\\1\\\'',
+ ',' . $tmp[2]), 1);
+ $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type = preg_replace('@BINARY@i', '', $type);
+ $type = preg_replace('@ZEROFILL@i', '', $type);
+ $type = preg_replace('@UNSIGNED@i', '', $type);
+ if (empty($type)) {
+ $type = '&nbsp;';
+ }
+
+ $binary = stristr($row['Type'], 'binary');
+ $unsigned = stristr($row['Type'], 'unsigned');
+ $zerofill = stristr($row['Type'], 'zerofill');
+ }
+ $strAttribute = '&nbsp;';
+ if ($binary) {
+ $strAttribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $strAttribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $strAttribute = 'UNSIGNED ZEROFILL';
+ }
+ if (!isset($row['Default'])) {
+ if ($row['Null'] != '' && $row['Null'] != 'NO') {
+ $row['Default'] = '<i>NULL</i>';
+ }
+ } else {
+ $row['Default'] = htmlspecialchars($row['Default']);
+ }
+ $field_name = htmlspecialchars($row['Field']);
+
+ // here, we have a TIMESTAMP that SHOW FULL FIELDS reports as having the
+ // NULL attribute, but SHOW CREATE TABLE says the contrary. Believe
+ // the latter.
+ /**
+ * @todo merge this logic with the one in tbl_structure.php
+ * or move it in a function similar to PMA_DBI_get_columns_full()
+ * but based on SHOW CREATE TABLE because information_schema
+ * cannot be trusted in this case (MySQL bug)
+ */
+ if (!empty($analyzed_sql[0]['create_table_fields'][$field_name]['type']) && $analyzed_sql[0]['create_table_fields'][$field_name]['type'] == 'TIMESTAMP' && $analyzed_sql[0]['create_table_fields'][$field_name]['timestamp_not_null']) {
+ $row['Null'] = '';
+ }
+ ?>
+
+<tr><td>
+ <?php
+ if (isset($pk_array[$row['Field']])) {
+ echo ' <u>' . $field_name . '</u>' . "\n";
+ } else {
+ echo ' ' . $field_name . "\n";
+ }
+ ?>
+ </td>
+ <td><?php echo $type; ?><bdo dir="ltr"></bdo></td>
+ <!--<td><?php echo $strAttribute; ?></td>-->
+ <td><?php echo (($row['Null'] == '' || $row['Null'] == 'NO') ? $strNo : $strYes); ?>&nbsp;</td>
+ <td><?php if (isset($row['Default'])) { echo $row['Default']; } ?>&nbsp;</td>
+ <!--<td><?php echo $row['Extra']; ?>&nbsp;</td>-->
+ <?php
+ if ($have_rel) {
+ echo ' <td>';
+ if (isset($res_rel[$field_name])) {
+ echo htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' -> ' . $res_rel[$field_name]['foreign_field']);
+ }
+ echo '&nbsp;</td>' . "\n";
+ }
+ echo ' <td>';
+ $comments = PMA_getComments($db, $table);
+ if (isset($comments[$field_name])) {
+ echo htmlspecialchars($comments[$field_name]);
+ }
+ echo '&nbsp;</td>' . "\n";
+ if ($cfgRelation['mimework']) {
+ $mime_map = PMA_getMIME($db, $table, true);
+
+ echo ' <td>';
+ if (isset($mime_map[$field_name])) {
+ echo htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype']));
+ }
+ echo '&nbsp;</td>' . "\n";
+ }
+ ?>
+</tr>
+ <?php
+ } // end while
+ PMA_DBI_free_result($result);
+ ?>
+</tbody>
+</table>
+ <?php
+ if (! $tbl_is_view && $db != 'information_schema') {
+ /**
+ * Displays indexes
+ */
+ echo PMA_Index::getView($table, $db, true);
+
+ /**
+ * Displays Space usage and row statistics
+ *
+ * staybyte - 9 June 2001
+ */
+ if ($cfg['ShowStats']) {
+ $nonisam = false;
+ if (isset($showtable['Type']) && !preg_match('@ISAM|HEAP@i', $showtable['Type'])) {
+ $nonisam = true;
+ }
+ if ($nonisam == false) {
+ // Gets some sizes
+ $mergetable = false;
+ if (isset($showtable['Type']) && $showtable['Type'] == 'MRG_MyISAM') {
+ $mergetable = true;
+ }
+ list($data_size, $data_unit) = PMA_formatByteDown($showtable['Data_length']);
+ if ($mergetable == false) {
+ list($index_size, $index_unit) = PMA_formatByteDown($showtable['Index_length']);
+ }
+ if (isset($showtable['Data_free']) && $showtable['Data_free'] > 0) {
+ list($free_size, $free_unit) = PMA_formatByteDown($showtable['Data_free']);
+ list($effect_size, $effect_unit) = PMA_formatByteDown($showtable['Data_length'] + $showtable['Index_length'] - $showtable['Data_free']);
+ } else {
+ unset($free_size);
+ unset($free_unit);
+ list($effect_size, $effect_unit) = PMA_formatByteDown($showtable['Data_length'] + $showtable['Index_length']);
+ }
+ list($tot_size, $tot_unit) = PMA_formatByteDown($showtable['Data_length'] + $showtable['Index_length']);
+ if ($num_rows > 0) {
+ list($avg_size, $avg_unit) = PMA_formatByteDown(($showtable['Data_length'] + $showtable['Index_length']) / $showtable['Rows'], 6, 1);
+ }
+
+ // Displays them
+ ?>
+ <br /><br />
+
+ <table border="0" cellspacing="0" cellpadding="0" class="noborder">
+ <tr>
+
+ <!-- Space usage -->
+ <td valign="top">
+ <big><?php echo $strSpaceUsage . ':'; ?></big>
+ <table width="100%">
+ <tr>
+ <th><?php echo $strType; ?></th>
+ <th colspan="2" align="center"><?php echo $strUsage; ?></th>
+ </tr>
+ <tr>
+ <td style="padding-right: 10px"><?php echo $strData; ?></td>
+ <td align="right"><?php echo $data_size; ?></td>
+ <td><?php echo $data_unit; ?></td>
+ </tr>
+ <?php
+ if (isset($index_size)) {
+ echo "\n";
+ ?>
+ <tr>
+ <td style="padding-right: 10px"><?php echo $strIndex; ?></td>
+ <td align="right"><?php echo $index_size; ?></td>
+ <td><?php echo $index_unit; ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($free_size)) {
+ echo "\n";
+ ?>
+ <tr style="color: #bb0000">
+ <td style="padding-right: 10px"><?php echo $strOverhead; ?></td>
+ <td align="right"><?php echo $free_size; ?></td>
+ <td><?php echo $free_unit; ?></td>
+ </tr>
+ <tr>
+ <td style="padding-right: 10px"><?php echo $strEffective; ?></td>
+ <td align="right"><?php echo $effect_size; ?></td>
+ <td><?php echo $effect_unit; ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($tot_size) && $mergetable == false) {
+ echo "\n";
+ ?>
+ <tr>
+ <td style="padding-right: 10px"><?php echo $strTotalUC; ?></td>
+ <td align="right"><?php echo $tot_size; ?></td>
+ <td><?php echo $tot_unit; ?></td>
+ </tr>
+ <?php
+ }
+ echo "\n";
+ ?>
+ </table>
+ </td>
+
+ <td width="20">&nbsp;</td>
+
+ <!-- Rows Statistic -->
+ <td valign="top">
+ <big><?php echo $strRowsStatistic . ':'; ?></big>
+ <table width="100%">
+ <tr>
+ <th><?php echo $strStatement; ?></th>
+ <th align="center"><?php echo $strValue; ?></th>
+ </tr>
+ <?php
+ if (isset($showtable['Row_format'])) {
+ ?>
+ <tr>
+ <td><?php echo ucfirst($strFormat); ?></td>
+ <td align="<?php echo $cell_align_left; ?>">
+ <?php
+ if ($showtable['Row_format'] == 'Fixed') {
+ echo $strFixed;
+ } elseif ($showtable['Row_format'] == 'Dynamic') {
+ echo $strDynamic;
+ } else {
+ echo $showtable['Row_format'];
+ }
+ ?>
+ </td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Rows'])) {
+ ?>
+ <tr>
+ <td><?php echo ucfirst($strRows); ?></td>
+ <td align="right">
+ <?php echo PMA_formatNumber($showtable['Rows'], 0) . "\n"; ?>
+ </td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Avg_row_length']) && $showtable['Avg_row_length'] > 0) {
+ ?>
+ <tr>
+ <td><?php echo ucfirst($strRowLength); ?>&nbsp;&oslash;</td>
+ <td>
+ <?php echo PMA_formatNumber($showtable['Avg_row_length'], 0) . "\n"; ?>
+ </td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Data_length']) && $showtable['Rows'] > 0 && $mergetable == false) {
+ ?>
+ <tr>
+ <td><?php echo ucfirst($strRowSize); ?>&nbsp;&oslash;</td>
+ <td align="right">
+ <?php echo $avg_size . ' ' . $avg_unit . "\n"; ?>
+ </td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Auto_increment'])) {
+ ?>
+ <tr>
+ <td><?php echo ucfirst($strNext); ?>&nbsp;Autoindex</td>
+ <td align="right">
+ <?php echo PMA_formatNumber($showtable['Auto_increment'], 0) . "\n"; ?>
+ </td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Create_time'])) {
+ ?>
+ <tr>
+ <td><?php echo $strStatCreateTime; ?></td>
+ <td align="right">
+ <?php echo PMA_localisedDate(strtotime($showtable['Create_time'])) . "\n"; ?>
+ </td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Update_time'])) {
+ ?>
+ <tr>
+ <td><?php echo $strStatUpdateTime; ?></td>
+ <td align="right">
+ <?php echo PMA_localisedDate(strtotime($showtable['Update_time'])) . "\n"; ?>
+ </td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Check_time'])) {
+ ?>
+ <tr>
+ <td><?php echo $strStatCheckTime; ?></td>
+ <td align="right">
+ <?php echo PMA_localisedDate(strtotime($showtable['Check_time'])) . "\n"; ?>
+ </td>
+ </tr>
+ <?php
+ }
+ ?>
+
+ </table>
+ </td>
+ </tr>
+ </table>
+
+ <?php
+ } // end if ($nonisam == false)
+ } // end if ($cfg['ShowStats'])
+ }
+ if ($multi_tables) {
+ unset($num_rows, $show_comment);
+ echo '<hr />' . "\n";
+ } // end if
+ echo '</div>' . "\n";
+
+} // end while
+
+/**
+ * Displays the footer
+ */
+?>
+
+<script type="text/javascript">
+//<![CDATA[
+function printPage()
+{
+ // Do print the page
+ if (typeof(window.print) != 'undefined') {
+ window.print();
+ }
+}
+//]]>
+</script>
+
+<p class="print_ignore">
+ <input type="button" id="print" value="<?php echo $strPrint; ?>"
+ onclick="printPage()" /></p>
+
+<?php
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_relation.php b/tbl_relation.php
new file mode 100644
index 0000000000..32fb38dd6a
--- /dev/null
+++ b/tbl_relation.php
@@ -0,0 +1,517 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Display table relations for viewing and editing
+ *
+ * includes phpMyAdmin relations and InnoDB relations
+ *
+ * @todo fix name handling: currently names with dots (.) are not properly handled
+ * @todo foreign key constraints require both fields being of equal type and size
+ * @todo check foreign fields to be from same type and size, all other makes no sense
+ * @todo add an link to create an index required for constraints, or an option to do automatically
+ * @todo if above todos are fullfilled we can add all fields meet requirements in the select dropdown
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/tbl_common.php';
+$url_query .= '&amp;goto=tbl_sql.php';
+
+
+/**
+ * Gets tables informations
+ */
+require_once './libraries/tbl_info.inc.php';
+
+// Note: in libraries/tbl_links.inc.php we get and display the table comment.
+// For InnoDB, this comment contains the REFER information but any update
+// has not been done yet (will be done in tbl_relation.php later).
+$avoid_show_comment = TRUE;
+
+/**
+ * Displays top menu links
+ */
+require_once './libraries/tbl_links.inc.php';
+
+require_once './libraries/relation.lib.php';
+
+$options_array = array(
+ 'CASCADE' => 'CASCADE',
+ 'SET_NULL' => 'SET NULL',
+ 'NO_ACTION' => 'NO ACTION',
+ 'RESTRICT' => 'RESTRICT',
+);
+
+/**
+ * Generate dropdown choices
+ *
+ * @param string Message to display
+ * @param string Name of the <select> field
+ * @param array Choices for dropdown
+ * @return string The existing value (for selected)
+ *
+ * @access public
+ */
+function PMA_generate_dropdown($dropdown_question, $select_name, $choices, $selected_value)
+{
+ echo htmlspecialchars($dropdown_question) . '&nbsp;&nbsp;';
+
+ echo '<select name="' . htmlspecialchars($select_name) . '">' . "\n";
+ echo '<option value=""></option>' . "\n";
+
+ foreach ($choices as $one_value => $one_label) {
+ echo '<option value="' . htmlspecialchars($one_value) . '"';
+ if ($selected_value == $one_value) {
+ echo ' selected="selected" ';
+ }
+ echo '>' . htmlspecialchars($one_label) . '</option>' . "\n";
+ }
+ echo '</select>' . "\n";
+}
+
+/**
+ * Gets the relation settings
+ */
+$cfgRelation = PMA_getRelationsParam();
+
+
+/**
+ * Updates
+ */
+if ($cfgRelation['relwork']) {
+ $existrel = PMA_getForeigners($db, $table, '', 'internal');
+}
+if (PMA_foreignkey_supported($tbl_type)) {
+ $existrel_foreign = PMA_getForeigners($db, $table, '', 'foreign');
+}
+if ($cfgRelation['displaywork']) {
+ $disp = PMA_getDisplayField($db, $table);
+}
+
+// u p d a t e s f o r I n t e r n a l r e l a t i o n s
+if (isset($destination) && $cfgRelation['relwork']) {
+
+ foreach ($destination as $master_field => $foreign_string) {
+ $upd_query = false;
+ if (! empty($foreign_string)) {
+ $foreign_string = trim($foreign_string, '`');
+ list($foreign_db, $foreign_table, $foreign_field) =
+ explode('.', $foreign_string);
+ if (! isset($existrel[$master_field])) {
+ $upd_query = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . '(master_db, master_table, master_field, foreign_db, foreign_table, foreign_field)'
+ . ' values('
+ . '\'' . PMA_sqlAddslashes($db) . '\', '
+ . '\'' . PMA_sqlAddslashes($table) . '\', '
+ . '\'' . PMA_sqlAddslashes($master_field) . '\', '
+ . '\'' . PMA_sqlAddslashes($foreign_db) . '\', '
+ . '\'' . PMA_sqlAddslashes($foreign_table) . '\','
+ . '\'' . PMA_sqlAddslashes($foreign_field) . '\')';
+ } elseif ($existrel[$master_field]['foreign_db'] . '.' .$existrel[$master_field]['foreign_table'] . '.' . $existrel[$master_field]['foreign_field'] != $foreign_string) {
+ $upd_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation']) . ' SET'
+ . ' foreign_db = \'' . PMA_sqlAddslashes($foreign_db) . '\', '
+ . ' foreign_table = \'' . PMA_sqlAddslashes($foreign_table) . '\', '
+ . ' foreign_field = \'' . PMA_sqlAddslashes($foreign_field) . '\' '
+ . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND master_field = \'' . PMA_sqlAddslashes($master_field) . '\'';
+ } // end if... else....
+ } elseif (isset($existrel[$master_field])) {
+ $upd_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation'])
+ . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\''
+ . ' AND master_field = \'' . PMA_sqlAddslashes($master_field) . '\'';
+ } // end if... else....
+ if ($upd_query) {
+ PMA_query_as_cu($upd_query);
+ }
+ } // end while
+} // end if (updates for internal relations)
+
+// u p d a t e s f o r f o r e i g n k e y s
+// (for now, one index name only; we keep the definitions if the
+// foreign db is not the same)
+// I use $sql_query to be able to display directly the query via
+// PMA_showMessage()
+
+if (isset($_REQUEST['destination_foreign'])) {
+ $display_query = '';
+ $seen_error = false;
+ foreach ($_REQUEST['destination_foreign'] as $master_field => $foreign_string) {
+ if (! empty($foreign_string)) {
+ $foreign_string = trim($foreign_string, '`');
+ list($foreign_db, $foreign_table, $foreign_field) =
+ explode('.', $foreign_string);
+ if (!isset($existrel_foreign[$master_field])) {
+ // no key defined for this field
+
+ // The next few lines are repeated below, so they
+ // could be put in an include file
+ // Note: I tried to enclose the db and table name with
+ // backquotes but MySQL 4.0.16 did not like the syntax
+ // (for example: `base2`.`table1`)
+
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($table)
+ . ' ADD FOREIGN KEY ('
+ . PMA_backquote($master_field) . ')'
+ . ' REFERENCES '
+ . PMA_backquote($foreign_db) . '.'
+ . PMA_backquote($foreign_table) . '('
+ . PMA_backquote($foreign_field) . ')';
+
+ if (! empty($_REQUEST['on_delete'][$master_field])) {
+ $sql_query .= ' ON DELETE ' . $options_array[$_REQUEST['on_delete'][$master_field]];
+ }
+ if (! empty($_REQUEST['on_update'][$master_field])) {
+ $sql_query .= ' ON UPDATE ' . $options_array[$_REQUEST['on_update'][$master_field]];
+ }
+ $sql_query .= ';';
+ $display_query .= $sql_query . "\n";
+ // end repeated code
+
+ } elseif (($existrel_foreign[$master_field]['foreign_db'] . '.' .$existrel_foreign[$master_field]['foreign_table'] . '.' . $existrel_foreign[$master_field]['foreign_field'] != $foreign_string)
+ || ($_REQUEST['on_delete'][$master_field] != (!empty($existrel_foreign[$master_field]['on_delete']) ? $existrel_foreign[$master_field]['on_delete'] : ''))
+ || ($_REQUEST['on_update'][$master_field] != (!empty($existrel_foreign[$master_field]['on_update']) ? $existrel_foreign[$master_field]['on_update'] : ''))
+ ) {
+ // another foreign key is already defined for this field
+ // or
+ // an option has been changed for ON DELETE or ON UPDATE
+
+ // remove existing key
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($table)
+ . ' DROP FOREIGN KEY '
+ . PMA_backquote($existrel_foreign[$master_field]['constraint']) . ';';
+
+ // I tried to send both in one query but it failed
+ PMA_DBI_query($sql_query);
+ $display_query .= $sql_query . "\n";
+
+ // add another
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($table)
+ . ' ADD FOREIGN KEY ('
+ . PMA_backquote($master_field) . ')'
+ . ' REFERENCES '
+ . PMA_backquote($foreign_db) . '.'
+ . PMA_backquote($foreign_table) . '('
+ . PMA_backquote($foreign_field) . ')';
+
+ if (! empty($_REQUEST['on_delete'][$master_field])) {
+ $sql_query .= ' ON DELETE '
+ . $options_array[$_REQUEST['on_delete'][$master_field]];
+ }
+ if (! empty($_REQUEST['on_update'][$master_field])) {
+ $sql_query .= ' ON UPDATE '
+ . $options_array[$_REQUEST['on_update'][$master_field]];
+ }
+ $sql_query .= ';';
+ $display_query .= $sql_query . "\n";
+
+ } // end if... else....
+ } elseif (isset($existrel_foreign[$master_field])) {
+ $sql_query = 'ALTER TABLE ' . PMA_backquote($table)
+ . ' DROP FOREIGN KEY '
+ . PMA_backquote($existrel_foreign[$master_field]['constraint']);
+ $sql_query .= ';';
+ $display_query .= $sql_query . "\n";
+ } // end if... else....
+
+ if (! empty($sql_query)) {
+ PMA_DBI_try_query($sql_query);
+ $tmp_error = PMA_DBI_getError();
+ if (! empty($tmp_error)) {
+ $seen_error = true;
+ }
+ if (substr($tmp_error, 1, 4) == '1216'
+ || substr($tmp_error, 1, 4) == '1452') {
+ PMA_mysqlDie($tmp_error, $sql_query, FALSE, '', FALSE);
+ echo PMA_showMySQLDocu('manual_Table_types', 'InnoDB_foreign_key_constraints') . "\n";
+ }
+ if (substr($tmp_error, 1, 4) == '1005') {
+ $message = PMA_Message::warning('strForeignKeyError');
+ $message->addParam($master_field);
+ $message->display();
+ echo PMA_showMySQLDocu('manual_Table_types', 'InnoDB_foreign_key_constraints') . "\n";
+ }
+ unset($tmp_error);
+ $sql_query = '';
+ }
+ } // end foreach
+ if (!empty($display_query)) {
+ if ($seen_error) {
+ PMA_showMessage($strError, null, 'error');
+ } else {
+ PMA_showMessage($strSuccess, null, 'success');
+ }
+ }
+} // end if isset($destination_foreign)
+
+
+// U p d a t e s f o r d i s p l a y f i e l d
+
+if ($cfgRelation['displaywork'] && isset($display_field)) {
+ $upd_query = false;
+ if ($disp) {
+ if ($display_field != '') {
+ $upd_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' SET display_field = \'' . PMA_sqlAddslashes($display_field) . '\''
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ } else {
+ $upd_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\''
+ . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'';
+ }
+ } elseif ($display_field != '') {
+ $upd_query = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['table_info'])
+ . '(db_name, table_name, display_field) '
+ . ' VALUES('
+ . '\'' . PMA_sqlAddslashes($db) . '\','
+ . '\'' . PMA_sqlAddslashes($table) . '\','
+ . '\'' . PMA_sqlAddslashes($display_field) . '\')';
+ }
+
+ if ($upd_query) {
+ PMA_query_as_cu($upd_query);
+ }
+} // end if
+
+// If we did an update, refresh our data
+if (isset($destination) && $cfgRelation['relwork']) {
+ $existrel = PMA_getForeigners($db, $table, '', 'internal');
+}
+if (isset($destination_foreign) && PMA_foreignkey_supported($tbl_type)) {
+ $existrel_foreign = PMA_getForeigners($db, $table, '', 'foreign');
+}
+
+if ($cfgRelation['displaywork']) {
+ $disp = PMA_getDisplayField($db, $table);
+}
+
+
+/**
+ * Dialog
+ */
+
+// common form
+echo '<form method="post" action="tbl_relation.php">' . "\n";
+echo PMA_generate_common_hidden_inputs($db, $table);
+
+
+// relations
+
+if ($cfgRelation['relwork'] || PMA_foreignkey_supported($tbl_type)) {
+ // To choose relations we first need all tables names in current db
+ // and if the main table supports foreign keys
+ // we use SHOW TABLE STATUS because we need to find other tables of the
+ // same engine.
+
+ if (PMA_foreignkey_supported($tbl_type)) {
+ $tab_query = 'SHOW TABLE STATUS FROM ' . PMA_backquote($db);
+ // [0] of the row is the name
+ // [1] is the type
+ } else {
+ $tab_query = 'SHOW TABLES FROM ' . PMA_backquote($db);
+ // [0] of the row is the name
+ }
+
+ $tab_rs = PMA_DBI_query($tab_query, null, PMA_DBI_QUERY_STORE);
+ $selectboxall[] = '';
+ $selectboxall_foreign[] = '';
+
+ while ($curr_table = PMA_DBI_fetch_row($tab_rs)) {
+ $current_table = new PMA_Table($curr_table[0], $db);
+
+ // explicitely ask for non-quoted list of indexed columns
+ $selectboxall = array_merge($selectboxall, $current_table->getUniqueColumns(false));
+
+ // if foreign keys are supported, collect all keys from other
+ // tables of the same engine
+ if (PMA_foreignkey_supported($tbl_type)
+ && isset($curr_table[1])
+ && strtoupper($curr_table[1]) == $tbl_type) {
+ // explicitely ask for non-quoted list of indexed columns
+ $selectboxall_foreign = array_merge($selectboxall_foreign, $current_table->getIndexedColumns(false));
+ }
+ } // end while over tables
+} // end if
+
+// Now find out the columns of our $table
+// need to use PMA_DBI_QUERY_STORE with PMA_DBI_num_rows() in mysqli
+$col_rs = PMA_DBI_try_query('SHOW COLUMNS FROM ' . PMA_backquote($table) . ';', null, PMA_DBI_QUERY_STORE);
+
+if ($col_rs && PMA_DBI_num_rows($col_rs) > 0) {
+ while ($row = PMA_DBI_fetch_assoc($col_rs)) {
+ $save_row[] = $row;
+ }
+ $saved_row_cnt = count($save_row);
+ ?>
+ <fieldset>
+ <legend><?php echo $strLinksTo; ?></legend>
+
+ <table>
+ <tr><th></th>
+ <?php
+ if ($cfgRelation['relwork']) {
+ echo '<th>' . $strInternalRelations;
+ if (PMA_foreignkey_supported($tbl_type)) {
+ echo PMA_showHint($strInternalAndForeign);
+ }
+ echo '</th>';
+ }
+ if (PMA_foreignkey_supported($tbl_type)) {
+ // this does not have to be translated, it's part of the MySQL syntax
+ echo '<th colspan="2">FOREIGN KEY (' . $tbl_type . ')';
+ echo '</th>';
+ }
+ ?>
+ </tr>
+ <?php
+ $odd_row = true;
+ for ($i = 0; $i < $saved_row_cnt; $i++) {
+ $myfield = $save_row[$i]['Field'];
+ ?>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; $odd_row = ! $odd_row; ?>">
+ <td align="center">
+ <strong><?php echo $save_row[$i]['Field']; ?></strong></td>
+ <?php
+ if ($cfgRelation['relwork']) {
+ ?>
+ <td><select name="destination[<?php echo htmlspecialchars($save_row[$i]['Field']); ?>]">
+ <?php
+ // PMA internal relations
+ if (isset($existrel[$myfield])) {
+ $foreign_field = $existrel[$myfield]['foreign_db'] . '.'
+ . $existrel[$myfield]['foreign_table'] . '.'
+ . $existrel[$myfield]['foreign_field'];
+ } else {
+ $foreign_field = FALSE;
+ }
+ $seen_key = FALSE;
+ foreach ($selectboxall as $value) {
+ echo ' '
+ . '<option value="' . htmlspecialchars($value) . '"';
+ if ($foreign_field && $value == $foreign_field) {
+ echo ' selected="selected"';
+ $seen_key = TRUE;
+ }
+ echo '>' . htmlspecialchars($value) . '</option>'. "\n";
+ } // end while
+
+ // if the link defined in relationtable points to a foreign field
+ // that is not a key in the foreign table, we show the link
+ // (will not be shown with an arrow)
+ if ($foreign_field && !$seen_key) {
+ echo ' '
+ .'<option value="' . htmlspecialchars($foreign_field) . '"'
+ .' selected="selected"'
+ .'>' . $foreign_field . '</option>'. "\n";
+ }
+ ?>
+ </select>
+ </td>
+ <?php
+ } // end if (internal relations)
+
+ if (PMA_foreignkey_supported($tbl_type)) {
+ echo '<td>';
+ if (!empty($save_row[$i]['Key'])) {
+ ?>
+ <span class="formelement">
+ <select name="destination_foreign[<?php echo htmlspecialchars($save_row[$i]['Field']); ?>]">
+ <?php
+ if (isset($existrel_foreign[$myfield])) {
+ $foreign_field = $existrel_foreign[$myfield]['foreign_db'] . '.'
+ . $existrel_foreign[$myfield]['foreign_table'] . '.'
+ . $existrel_foreign[$myfield]['foreign_field'];
+ } else {
+ $foreign_field = FALSE;
+ }
+
+ $found_foreign_field = FALSE;
+ foreach ($selectboxall_foreign as $value) {
+ echo ' '
+ . '<option value="' . htmlspecialchars($value) . '"';
+ if ($foreign_field && $value == $foreign_field) {
+ echo ' selected="selected"';
+ $found_foreign_field = TRUE;
+ }
+ echo '>' . htmlspecialchars($value) . '</option>'. "\n";
+ } // end while
+
+ // we did not find the foreign field in the tables of current db,
+ // must be defined in another db so show it to avoid erasing it
+ if (!$found_foreign_field && $foreign_field) {
+ echo ' '
+ . '<option value="' . htmlspecialchars($foreign_field) . '"';
+ echo ' selected="selected"';
+ echo '>' . $foreign_field . '</option>' . "\n";
+ }
+
+ ?>
+ </select>
+ </span>
+ <span class="formelement">
+ <?php
+ PMA_generate_dropdown('ON DELETE',
+ 'on_delete[' . $save_row[$i]['Field'] . ']',
+ $options_array,
+ isset($existrel_foreign[$myfield]['on_delete']) ? $existrel_foreign[$myfield]['on_delete']: '');
+
+ echo '</span>' . "\n"
+ .'<span class="formelement">' . "\n";
+
+ PMA_generate_dropdown('ON UPDATE',
+ 'on_update[' . $save_row[$i]['Field'] . ']',
+ $options_array,
+ isset($existrel_foreign[$myfield]['on_update']) ? $existrel_foreign[$myfield]['on_update']: '');
+ echo '</span>' . "\n";
+ } else {
+ echo $strNoIndex;
+ } // end if (a key exists)
+ echo ' </td>';
+ } // end if (InnoDB)
+ ?>
+ </tr>
+ <?php
+ } // end for
+
+ echo ' </table>' . "\n";
+ echo '</fieldset>' . "\n";
+
+ if ($cfgRelation['displaywork']) {
+ // Get "display_field" infos
+ $disp = PMA_getDisplayField($db, $table);
+ ?>
+ <fieldset>
+ <label><?php echo $strChangeDisplay . ': '; ?></label>
+ <select name="display_field" style="vertical-align: middle">
+ <option value="">---</option>
+ <?php
+ foreach ($save_row AS $row) {
+ echo ' <option value="' . htmlspecialchars($row['Field']) . '"';
+ if (isset($disp) && $row['Field'] == $disp) {
+ echo ' selected="selected"';
+ }
+ echo '>' . htmlspecialchars($row['Field']) . '</option>'. "\n";
+ } // end while
+ ?>
+ </select>
+ </fieldset>
+ <?php
+ } // end if (displayworks)
+ ?>
+ <fieldset class="tblFooters">
+ <input type="submit" value="<?php echo $strSave; ?>" />
+ </fieldset>
+</form>
+ <?php
+} // end if (we have columns in this table)
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_replace.php b/tbl_replace.php
new file mode 100644
index 0000000000..c8a5edbe77
--- /dev/null
+++ b/tbl_replace.php
@@ -0,0 +1,403 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * manipulation of table data like inserting, replacing and updating
+ *
+ * usally called as form action from tbl_change.php to insert or update table rows
+ *
+ * @version $Id$
+ *
+ * @todo 'edit_next' tends to not work as expected if used ... at least there is no order by
+ * it needs the original query and the row number and than replace the LIMIT clause
+ * @uses PMA_checkParameters()
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_DBI_query()
+ * @uses PMA_DBI_fetch_row()
+ * @uses PMA_DBI_get_fields_meta()
+ * @uses PMA_DBI_free_result()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_getError()
+ * @uses PMA_DBI_affected_rows()
+ * @uses PMA_DBI_insert_id()
+ * @uses PMA_backquote()
+ * @uses PMA_getUniqueCondition()
+ * @uses PMA_sqlAddslashes()
+ * @uses PMA_securePath()
+ * @uses PMA_sendHeaderLocation()
+ * @uses str_replace()
+ * @uses count()
+ * @uses file_exists()
+ * @uses strlen()
+ * @uses str_replace()
+ * @uses preg_replace()
+ * @uses is_array()
+ * @uses $GLOBALS['db']
+ * @uses $GLOBALS['table']
+ * @uses $GLOBALS['goto']
+ * @uses $GLOBALS['sql_query']
+ * @uses PMA_File::getRecentBLOBReference()
+ */
+
+/**
+ * do not import request variable into global scope
+ *
+ * cannot be used as long as it could happen that the $goto file that is included
+ * at the end of this script is not updated to work without imported request variables
+ *
+ * @todo uncomment this if all possible included files to rely on import request variables
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+ */
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+
+// Check parameters
+PMA_checkParameters(array('db', 'table', 'goto'));
+
+PMA_DBI_select_db($GLOBALS['db']);
+
+/**
+ * Initializes some variables
+ */
+$goto_include = false;
+
+if (isset($_REQUEST['insert_rows']) && is_numeric($_REQUEST['insert_rows']) && $_REQUEST['insert_rows'] != $cfg['InsertRows']) {
+ $cfg['InsertRows'] = $_REQUEST['insert_rows'];
+ $GLOBALS['js_include'][] = 'tbl_change.js';
+ require_once './libraries/header.inc.php';
+ require './tbl_change.php';
+ exit;
+}
+
+if (isset($_REQUEST['after_insert'])
+ && in_array($_REQUEST['after_insert'], array('new_insert', 'same_insert', 'edit_next'))) {
+ $url_params['after_insert'] = $_REQUEST['after_insert'];
+ //$GLOBALS['goto'] = 'tbl_change.php';
+ $goto_include = 'tbl_change.php';
+
+ if (isset($_REQUEST['primary_key'])) {
+ if ($_REQUEST['after_insert'] == 'same_insert') {
+ foreach ($_REQUEST['primary_key'] as $pk) {
+ $url_params['primary_key'][] = $pk;
+ }
+ } elseif ($_REQUEST['after_insert'] == 'edit_next') {
+ foreach ($_REQUEST['primary_key'] as $pk) {
+ $local_query = 'SELECT * FROM ' . PMA_backquote($GLOBALS['db']) . '.' . PMA_backquote($GLOBALS['table'])
+ . ' WHERE ' . str_replace('` =', '` >', $pk)
+ . ' LIMIT 1;';
+ $res = PMA_DBI_query($local_query);
+ $row = PMA_DBI_fetch_row($res);
+ $meta = PMA_DBI_get_fields_meta($res);
+ // must find a unique condition based on unique key,
+ // not a combination of all fields
+ if ($tmp = PMA_getUniqueCondition($res, count($meta), $meta, $row, true)) {
+ $_SESSION['edit_next'] = $tmp;
+ }
+ unset($tmp);
+ }
+ }
+ }
+} elseif (! empty($GLOBALS['goto'])) {
+ if (! preg_match('@^[a-z_]+\.php$@', $GLOBALS['goto'])) {
+ // this should NOT happen
+ //$GLOBALS['goto'] = false;
+ $goto_include = false;
+ } else {
+ $goto_include = $GLOBALS['goto'];
+ }
+ if ($GLOBALS['goto'] == 'db_sql.php' && strlen($GLOBALS['table'])) {
+ $GLOBALS['table'] = '';
+ }
+}
+
+if (! $goto_include) {
+ if (! strlen($GLOBALS['table'])) {
+ $goto_include = 'db_sql.php';
+ } else {
+ $goto_include = 'tbl_sql.php';
+ }
+}
+
+// Defines the url to return in case of failure of the query
+if (isset($_REQUEST['err_url'])) {
+ $err_url = $_REQUEST['err_url'];
+} else {
+ $err_url = 'tbl_change.php' . PMA_generate_common_url($url_params);
+}
+
+/**
+ * Prepares the update/insert of a row
+ */
+if (isset($_REQUEST['primary_key'])) {
+ // we were editing something => use primary key
+ $loop_array = (is_array($_REQUEST['primary_key']) ? $_REQUEST['primary_key'] : array($_REQUEST['primary_key']));
+ $using_key = true;
+ $is_insert = ($_REQUEST['submit_type'] == $GLOBALS['strInsertAsNewRow']);
+} else {
+ // new row => use indexes
+ $loop_array = array();
+ foreach ($_REQUEST['fields']['multi_edit'] as $key => $dummy) {
+ $loop_array[] = $key;
+ }
+ $using_key = false;
+ $is_insert = true;
+}
+
+$query = array();
+$value_sets = array();
+$func_no_param = array(
+ 'NOW',
+ 'CURDATE',
+ 'CURTIME',
+ 'UTC_DATE',
+ 'UTC_TIME',
+ 'UTC_TIMESTAMP',
+ 'UNIX_TIMESTAMP',
+ 'RAND',
+ 'USER',
+ 'LAST_INSERT_ID',
+);
+
+foreach ($loop_array as $rowcount => $primary_key) {
+ // skip fields to be ignored
+ if (! $using_key && isset($_REQUEST['insert_ignore_' . $primary_key])) {
+ continue;
+ }
+
+ // Defines the SET part of the sql query
+ $query_values = array();
+
+ // Map multi-edit keys to single-level arrays, dependent on how we got the fields
+ $me_fields =
+ isset($_REQUEST['fields']['multi_edit'][$rowcount])
+ ? $_REQUEST['fields']['multi_edit'][$rowcount]
+ : array();
+ $me_fields_prev =
+ isset($_REQUEST['fields_prev']['multi_edit'][$rowcount])
+ ? $_REQUEST['fields_prev']['multi_edit'][$rowcount]
+ : null;
+ $me_funcs =
+ isset($_REQUEST['funcs']['multi_edit'][$rowcount])
+ ? $_REQUEST['funcs']['multi_edit'][$rowcount]
+ : null;
+ $me_fields_type =
+ isset($_REQUEST['fields_type']['multi_edit'][$rowcount])
+ ? $_REQUEST['fields_type']['multi_edit'][$rowcount]
+ : null;
+ $me_fields_null =
+ isset($_REQUEST['fields_null']['multi_edit'][$rowcount])
+ ? $_REQUEST['fields_null']['multi_edit'][$rowcount]
+ : null;
+ $me_fields_null_prev =
+ isset($_REQUEST['fields_null_prev']['multi_edit'][$rowcount])
+ ? $_REQUEST['fields_null_prev']['multi_edit'][$rowcount]
+ : null;
+ $me_auto_increment =
+ isset($_REQUEST['auto_increment']['multi_edit'][$rowcount])
+ ? $_REQUEST['auto_increment']['multi_edit'][$rowcount]
+ : null;
+
+ $primary_field = PMA_BS_GetPrimaryField($GLOBALS['db'], $GLOBALS['table']);
+
+ foreach ($me_fields as $key => $val) {
+
+ require './libraries/tbl_replace_fields.inc.php';
+
+ // rajk - for blobstreaming
+ if (NULL != $primary_field || strlen($primary_field) > 0)
+ {
+ $remove_blob_repo = isset($_REQUEST['remove_blob_repo_' . $key]) ? $_REQUEST['remove_blob_repo_' . $key] : NULL;
+ $upload_blob_repo = isset($_REQUEST['upload_blob_repo_' . $key]) ? $_REQUEST['upload_blob_repo_' . $key] : NULL;
+
+ // checks if an existing blob repository reference should be removed
+ if (isset($remove_blob_repo) && !isset($upload_blob_repo))
+ {
+ $remove_blob_reference = $_REQUEST['remove_blob_ref_' . $key];
+
+ if (isset($remove_blob_reference))
+ $val = "''";
+ }
+
+ // checks if this field requires a bs reference attached to it
+ $requires_bs_reference = isset($upload_blob_repo);
+
+ if ($requires_bs_reference)
+ {
+ // get the most recent BLOB reference
+ $bs_reference = PMA_File::getRecentBLOBReference();
+
+ // if the most recent BLOB reference exists, set it as a field value
+ if (!is_null($bs_reference))
+ $val = "'" . PMA_sqlAddslashes($bs_reference) . "'";
+ }
+ }
+
+ if (empty($me_funcs[$key])) {
+ $cur_value = $val;
+ } elseif ('UNIX_TIMESTAMP' === $me_funcs[$key] && $val != "''") {
+ $cur_value = $me_funcs[$key] . '(' . $val . ')';
+ } elseif (in_array($me_funcs[$key], $func_no_param)) {
+ $cur_value = $me_funcs[$key] . '()';
+ } else {
+ $cur_value = $me_funcs[$key] . '(' . $val . ')';
+ }
+
+ // i n s e r t
+ if ($is_insert) {
+ // no need to add column into the valuelist
+ if (strlen($cur_value)) {
+ $query_values[] = $cur_value;
+ // first inserted row so prepare the list of fields
+ if (empty($value_sets)) {
+ $query_fields[] = PMA_backquote($key);
+ }
+ }
+
+ // u p d a t e
+ } elseif (!empty($me_fields_null_prev[$key])
+ && !isset($me_fields_null[$key])) {
+ // field had the null checkbox before the update
+ // field no longer has the null checkbox
+ $query_values[] = PMA_backquote($key) . ' = ' . $cur_value;
+ } elseif (empty($me_funcs[$key])
+ && isset($me_fields_prev[$key])
+ && ("'" . PMA_sqlAddslashes($me_fields_prev[$key]) . "'" == $val)) {
+ // No change for this column and no MySQL function is used -> next column
+ continue;
+ } elseif (! empty($val)) {
+ // avoid setting a field to NULL when it's already NULL
+ // (field had the null checkbox before the update
+ // field still has the null checkbox)
+ if (!(! empty($me_fields_null_prev[$key])
+ && isset($me_fields_null[$key]))) {
+ $query_values[] = PMA_backquote($key) . ' = ' . $cur_value;
+ }
+ }
+ } // end foreach ($me_fields as $key => $val)
+
+ if (count($query_values) > 0) {
+ if ($is_insert) {
+ $value_sets[] = implode(', ', $query_values);
+ } else {
+ // build update query
+ $query[] = 'UPDATE ' . PMA_backquote($GLOBALS['db']) . '.' . PMA_backquote($GLOBALS['table'])
+ . ' SET ' . implode(', ', $query_values) . ' WHERE ' . $primary_key . ' LIMIT 1';
+
+ }
+ }
+} // end foreach ($loop_array as $primary_key)
+unset($me_fields_prev, $me_funcs, $me_fields_type, $me_fields_null, $me_fields_null_prev,
+ $me_auto_increment, $cur_value, $key, $val, $loop_array, $primary_key, $using_key,
+ $func_no_param);
+
+
+// Builds the sql query
+if ($is_insert && count($value_sets) > 0) {
+ $query[] = 'INSERT INTO ' . PMA_backquote($GLOBALS['db']) . '.' . PMA_backquote($GLOBALS['table'])
+ . ' (' . implode(', ', $query_fields) . ') VALUES (' . implode('), (', $value_sets) . ')';
+
+ unset($query_fields, $value_sets);
+
+ $message = PMA_Message::success('strRowsInserted');
+} elseif (! empty($query)) {
+ $message = PMA_Message::success('strRowsAffected');
+} else {
+ // No change -> move back to the calling script
+ $message = PMA_Message::success('strNoModification');
+ $GLOBALS['js_include'][] = 'functions.js';
+ $active_page = $goto_include;
+ require_once './libraries/header.inc.php';
+ require './' . PMA_securePath($goto_include);
+ exit;
+}
+unset($me_fields, $is_insert);
+
+/**
+ * Executes the sql query and get the result, then move back to the calling
+ * page
+ */
+if (! empty($GLOBALS['sql_query'])) {
+ $url_params['sql_query'] = $GLOBALS['sql_query'];
+ $return_to_sql_query = $GLOBALS['sql_query'];
+}
+$GLOBALS['sql_query'] = implode('; ', $query) . ';';
+$total_affected_rows = 0;
+$last_messages = array();
+$warning_messages = array();
+$error_messages = array();
+
+foreach ($query as $single_query) {
+ if ($GLOBALS['cfg']['IgnoreMultiSubmitErrors']) {
+ $result = PMA_DBI_try_query($single_query);
+ } else {
+ $result = PMA_DBI_query($single_query);
+ }
+
+ if (! $result) {
+ $error_messages[] = PMA_DBI_getError();
+ } else {
+ if (@PMA_DBI_affected_rows()) {
+ $total_affected_rows += @PMA_DBI_affected_rows();
+ }
+
+ $insert_id = PMA_DBI_insert_id();
+ if ($insert_id != 0) {
+ // insert_id is id of FIRST record inserted in one insert, so if we
+ // inserted multiple rows, we had to increment this
+
+ if ($total_affected_rows > 0) {
+ $insert_id = $insert_id + $total_affected_rows - 1;
+ }
+ $last_message = PMA_Message::notice('strInsertedRowId');
+ $last_message->addParam($insert_id);
+ $last_messages[] = $last_message;
+ }
+ PMA_DBI_free_result($result);
+ } // end if
+
+ foreach (PMA_DBI_get_warnings() as $warning) {
+ $warning_messages[] = $warning['Level'] . ': #' . $warning['Code']
+ . ' ' . $warning['Message'];
+ }
+
+ unset($result);
+}
+unset($single_query, $query);
+
+$message->addParam($total_affected_rows);
+$message->addMessages($last_messages, '<br />');
+
+if (! empty($warning_messages)) {
+ /**
+ * @todo use a <div class="warning"> in PMA_showMessage() for this part of
+ * the message
+ */
+ $message->addMessages($warning_messages, '<br />');
+ $message->isWarning(true);
+}
+if (! empty($error_messages)) {
+ $message->addMessages($error_messages);
+ $message->isError(true);
+}
+unset($error_messages, $warning_messages, $total_affected_rows, $last_messages, $last_message);
+
+if (isset($return_to_sql_query)) {
+ $disp_query = $GLOBALS['sql_query'];
+ $disp_message = $message;
+ unset($message);
+ $GLOBALS['sql_query'] = $return_to_sql_query;
+}
+
+$GLOBALS['js_include'][] = 'tbl_change.js';
+$GLOBALS['js_include'][] = 'functions.js';
+// in case we call sql.php which needs those:
+$GLOBALS['js_include'][] = 'mootools.js';
+
+$active_page = $goto_include;
+require_once './libraries/header.inc.php';
+require './' . PMA_securePath($goto_include);
+exit;
+?>
diff --git a/tbl_row_action.php b/tbl_row_action.php
new file mode 100644
index 0000000000..e6497783bb
--- /dev/null
+++ b/tbl_row_action.php
@@ -0,0 +1,165 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * handle row specifc actions like edit, delete, export
+ *
+ * @version $Id$
+ */
+
+
+/**
+ * do not globalize/import request variables
+ * can only be enabled if all included files are switched superglobals too
+ * but leave this here to show that this file is 'superglobalized'
+define('PMA_NO_VARIABLES_IMPORT', true);
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/mysql_charsets.lib.php';
+
+/**
+ * No rows were selected => show again the query and tell that user.
+ */
+if (! PMA_isValid($_REQUEST['rows_to_delete'], 'array')
+ && ! isset($_REQUEST['mult_btn'])) {
+ $disp_message = $strNoRowsSelected;
+ $disp_query = '';
+ require './sql.php';
+ require_once './libraries/footer.inc.php';
+}
+
+if (isset($_REQUEST['submit_mult'])) {
+ $submit_mult = $_REQUEST['submit_mult'];
+// workaround for IE problem:
+} elseif (isset($_REQUEST['submit_mult_delete_x'])) {
+ $submit_mult = 'row_delete';
+} elseif (isset($_REQUEST['submit_mult_change_x'])) {
+ $submit_mult = 'row_edit';
+} elseif (isset($_REQUEST['submit_mult_export_x'])) {
+ $submit_mult = 'row_export';
+}
+
+// garvin: If the 'Ask for confirmation' button was pressed, this can only come
+// from 'delete' mode, so we set it straight away.
+if (isset($_REQUEST['mult_btn'])) {
+ $submit_mult = 'row_delete';
+}
+
+switch($submit_mult) {
+ case 'row_delete':
+ case 'row_edit':
+ case 'row_export':
+ // leave as is
+ break;
+
+ case $GLOBALS['strExport']:
+ $submit_mult = 'row_export';
+ break;
+
+ case $GLOBALS['strDelete']:
+ case $GLOBALS['strKill']:
+ $submit_mult = 'row_delete';
+ break;
+
+ default:
+ case $GLOBALS['strEdit']:
+ $submit_mult = 'row_edit';
+ break;
+}
+
+$GLOBALS['js_include'][] = 'tbl_change.js';
+$GLOBALS['js_include'][] = 'functions.js';
+
+require_once './libraries/header.inc.php';
+
+if (!empty($submit_mult)) {
+ switch($submit_mult) {
+ case 'row_edit':
+ // garvin: As we got the fields to be edited from the 'rows_to_delete'
+ // checkbox, we use the index of it as the
+ // indicating primary key. Then we built the array which is used for
+ // the tbl_change.php script.
+ /**
+ * urldecode should not be needed here
+ $primary_key = array();
+ foreach ($_REQUEST['rows_to_delete'] as $i_primary_key => $del_query) {
+ $primary_key[] = urldecode($i_primary_key);
+ }
+ */
+ $primary_key = array_keys($_REQUEST['rows_to_delete']);
+
+ $active_page = 'tbl_change.php';
+ include './tbl_change.php';
+ break;
+
+ case 'row_export':
+ // Needed to allow SQL export
+ $single_table = TRUE;
+
+ //$sql_query = urldecode($sql_query);
+ // garvin: As we got the fields to be edited from the 'rows_to_delete'
+ // checkbox, we use the index of it as the
+ // indicating primary key. Then we built the array which is used for
+ // the tbl_change.php script.
+ /**
+ * urldecode should not be needed here
+ $primary_key = array();
+ foreach ($_REQUEST['rows_to_delete'] as $i_primary_key => $del_query) {
+ $primary_key[] = urldecode($i_primary_key);
+ }
+ */
+ $primary_key = array_keys($_REQUEST['rows_to_delete']);
+
+ $active_page = 'tbl_export.php';
+ include './tbl_export.php';
+ break;
+
+ case 'row_delete':
+ default:
+ $action = 'tbl_row_action.php';
+ $err_url = 'tbl_row_action.php' . PMA_generate_common_url($GLOBALS['url_params']);
+ if (! isset($_REQUEST['mult_btn'])) {
+ $original_sql_query = $sql_query;
+ $original_url_query = $url_query;
+ }
+ require './libraries/mult_submits.inc.php';
+ $_url_params = $GLOBALS['url_params'];
+ $_url_params['goto'] = 'tbl_sql.php';
+ $url_query = PMA_generate_common_url($_url_params);
+
+
+ /**
+ * Show result of multi submit operation
+ */
+ // sql_query is not set when user does not confirm multi-delete
+ if ((!empty($submit_mult) || isset($_REQUEST['mult_btn'])) && ! empty($sql_query)) {
+ $disp_message = $strSuccess;
+ $disp_query = $sql_query;
+ }
+
+ if (isset($original_sql_query)) {
+ $sql_query = $original_sql_query;
+ }
+
+ if (isset($original_url_query)) {
+ $url_query = $original_url_query;
+ }
+
+ // this is because sql.php could call tbl_structure
+ // which would think it needs to call mult_submits.inc.php:
+ unset($submit_mult, $_REQUEST['mult_btn']);
+
+ $active_page = 'sql.php';
+ require './sql.php';
+
+ /**
+ * Displays the footer
+ */
+ require_once './libraries/footer.inc.php';
+ break;
+ }
+}
+?>
diff --git a/tbl_select.php b/tbl_select.php
new file mode 100644
index 0000000000..afac61b4bc
--- /dev/null
+++ b/tbl_select.php
@@ -0,0 +1,418 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Handles table search tab
+ *
+ * display table search form, create SQL query from form data
+ * and include sql.php to execute it
+ *
+ * @todo display search form again if no results from previous search
+ * @version $Id$
+ */
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/relation.lib.php'; // foreign keys
+require_once './libraries/mysql_charsets.lib.php';
+
+$GLOBALS['js_include'][] = 'tbl_change.js';
+$GLOBALS['js_include'][] = 'mootools.js';
+
+if ($GLOBALS['cfg']['PropertiesIconic'] == true) {
+ $titles['Browse'] =
+ '<img class="icon" width="16" height="16" src="' . $pmaThemeImage
+ .'b_browse.png" alt="' . $strBrowseForeignValues . '" title="'
+ .$strBrowseForeignValues . '" />';
+
+ if ($GLOBALS['cfg']['PropertiesIconic'] === 'both') {
+ $titles['Browse'] .= $strBrowseForeignValues;
+ }
+} else {
+ $titles['Browse'] = $strBrowseForeignValues;
+}
+
+/**
+ * Not selection yet required -> displays the selection form
+ */
+if (!isset($param) || $param[0] == '') {
+ // Gets some core libraries
+ require_once './libraries/tbl_common.php';
+ //$err_url = 'tbl_select.php' . $err_url;
+ $url_query .= '&amp;goto=tbl_select.php&amp;back=tbl_select.php';
+
+ /**
+ * Gets tables informations
+ */
+ require_once './libraries/tbl_info.inc.php';
+
+ /**
+ * Displays top menu links
+ */
+ require_once './libraries/tbl_links.inc.php';
+
+ if (!isset($goto)) {
+ $goto = $GLOBALS['cfg']['DefaultTabTable'];
+ }
+ // Defines the url to return to in case of error in the next sql statement
+ $err_url = $goto . '?' . PMA_generate_common_url($db, $table);
+
+ // Gets the list and number of fields
+ $result = PMA_DBI_query('SHOW FULL FIELDS FROM ' . PMA_backquote($table) . ' FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
+ $fields_cnt = PMA_DBI_num_rows($result);
+ // rabue: we'd better ensure, that all arrays are empty.
+ $fields_list = $fields_null = $fields_type = $fields_collation = array();
+ while ($row = PMA_DBI_fetch_assoc($result)) {
+ $fields_list[] = $row['Field'];
+ $type = $row['Type'];
+ // reformat mysql query output - staybyte - 9. June 2001
+ if (strncasecmp($type, 'set', 3) == 0
+ || strncasecmp($type, 'enum', 4) == 0) {
+ $type = str_replace(',', ', ', $type);
+ } else {
+
+ // strip the "BINARY" attribute, except if we find "BINARY(" because
+ // this would be a BINARY or VARBINARY field type
+ if (!preg_match('@BINARY[\(]@i', $type)) {
+ $type = preg_replace('@BINARY@i', '', $type);
+ }
+ $type = preg_replace('@ZEROFILL@i', '', $type);
+ $type = preg_replace('@UNSIGNED@i', '', $type);
+
+ $type = strtolower($type);
+ }
+ if (empty($type)) {
+ $type = '&nbsp;';
+ }
+ $fields_null[] = $row['Null'];
+ $fields_type[] = $type;
+ $fields_collation[] = !empty($row['Collation']) && $row['Collation'] != 'NULL'
+ ? $row['Collation']
+ : '';
+ } // end while
+ PMA_DBI_free_result($result);
+ unset($result, $type);
+
+ // <markus@noga.de>
+ // retrieve keys into foreign fields, if any
+ // check also foreigners even if relwork is FALSE (to get
+ // foreign keys from innodb)
+ $foreigners = PMA_getForeigners($db, $table);
+ ?>
+<script type="text/javascript">
+// <![CDATA[
+function PMA_tbl_select_operator(f, index, multiple) {
+ switch (f.elements["func[" + index + "]"].options[f.elements["func[" + index + "]"].selectedIndex].value) {
+<?php
+reset($GLOBALS['cfg']['UnaryOperators']);
+while (list($operator) = each($GLOBALS['cfg']['UnaryOperators'])) {
+ echo ' case "' . $operator . "\":\r\n";
+}
+?>
+ bDisabled = true;
+ break;
+
+ default:
+ bDisabled = false;
+ }
+ f.elements["fields[" + index + "]" + ((multiple) ? "[]": "")].disabled = bDisabled;
+}
+// ]]>
+</script>
+<form method="post" action="tbl_select.php" name="insertForm">
+<?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+<input type="hidden" name="goto" value="<?php echo $goto; ?>" />
+<input type="hidden" name="back" value="tbl_select.php" />
+
+<fieldset id="fieldset_table_search">
+
+<fieldset id="fieldset_table_qbe">
+ <legend><?php echo $strDoAQuery; ?></legend>
+ <table class="data">
+ <thead>
+ <tr><th><?php echo $strField; ?></th>
+ <th><?php echo $strType; ?></th>
+ <th><?php echo $strCollation; ?></th>
+ <th><?php echo $strOperator; ?></th>
+ <th><?php echo $strValue; ?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ $odd_row = true;
+
+ for ($i = 0; $i < $fields_cnt; $i++) {
+ ?>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; $odd_row = ! $odd_row; ?>">
+ <th><?php echo htmlspecialchars($fields_list[$i]); ?></th>
+ <td><?php echo $fields_type[$i]; ?></td>
+ <td><?php echo $fields_collation[$i]; ?></td>
+ <td><select name="func[]">
+ <?php
+ if (strncasecmp($fields_type[$i], 'enum', 4) == 0) {
+ foreach ($GLOBALS['cfg']['EnumOperators'] as $fc) {
+ echo "\n" . ' '
+ . '<option value="' . htmlspecialchars($fc) . '">'
+ . htmlspecialchars($fc) . '</option>';
+ }
+ } elseif (preg_match('@char|blob|text|set@i', $fields_type[$i])) {
+ foreach ($GLOBALS['cfg']['TextOperators'] as $fc) {
+ echo "\n" . ' '
+ . '<option value="' . htmlspecialchars($fc) . '">'
+ . htmlspecialchars($fc) . '</option>';
+ }
+ } else {
+ foreach ($GLOBALS['cfg']['NumOperators'] as $fc) {
+ echo "\n" . ' '
+ . '<option value="' . htmlspecialchars($fc) . '">'
+ . htmlspecialchars($fc) . '</option>';
+ }
+ } // end if... else...
+ if ($fields_null[$i]) {
+ foreach ($GLOBALS['cfg']['NullOperators'] as $fc) {
+ echo "\n" . ' '
+ . '<option value="' . htmlspecialchars($fc) . '">'
+ . htmlspecialchars($fc) . '</option>';
+ }
+ }
+ ?>
+
+ </select>
+ </td>
+ <td>
+ <?php
+ // <markus@noga.de>
+ $field = $fields_list[$i];
+
+ $foreignData = PMA_getForeignData($foreigners, $field, false, '', '');
+
+ if ($foreigners && isset($foreigners[$field]) && is_array($foreignData['disp_row'])) {
+ // f o r e i g n k e y s
+ echo ' <select name="fields[' . $i . ']">' . "\n";
+ // go back to first row
+
+ // here, the 4th parameter is empty because there is no current
+ // value of data for the dropdown (the search page initial values
+ // are displayed empty)
+ echo PMA_foreignDropdown($foreignData['disp_row'],
+ $foreignData['foreign_field'],
+ $foreignData['foreign_display'],
+ '', $GLOBALS['cfg']['ForeignKeyMaxLimit']);
+ echo ' </select>' . "\n";
+ } elseif ($foreignData['foreign_link'] == true) {
+ ?>
+ <input type="text" name="fields[<?php echo $i; ?>]"
+ id="field_<?php echo md5($field); ?>[<?php echo $i; ?>]"
+ class="textfield" />
+ <script type="text/javascript">
+ // <![CDATA[
+ document.writeln('<a target="_blank" onclick="window.open(this.href, \'foreigners\', \'width=640,height=240,scrollbars=yes\'); return false" href="browse_foreigners.php?<?php echo PMA_generate_common_url($db, $table); ?>&amp;field=<?php echo urlencode($field); ?>&amp;fieldkey=<?php echo $i; ?>"><?php echo str_replace("'", "\'", $titles['Browse']); ?></a>');
+ // ]]>
+ </script>
+ <?php
+ } elseif (strncasecmp($fields_type[$i], 'enum', 4) == 0) {
+ // e n u m s
+ $enum_value=explode(', ', str_replace("'", '', substr($fields_type[$i], 5, -1)));
+ $cnt_enum_value = count($enum_value);
+ echo ' <select name="fields[' . $i . '][]"'
+ .' multiple="multiple" size="' . min(3, $cnt_enum_value) . '">' . "\n";
+ for ($j = 0; $j < $cnt_enum_value; $j++) {
+ echo ' <option value="' . $enum_value[$j] . '">'
+ . $enum_value[$j] . '</option>';
+ } // end for
+ echo ' </select>' . "\n";
+ } else {
+ // o t h e r c a s e s
+ echo ' <input type="text" name="fields[' . $i . ']"'
+ .' size="40" class="textfield" id="field_' . $i . '" />' . "\n";
+ };
+ $type = $fields_type[$i];
+ if ($type == 'date' || $type == 'datetime' || substr($type, 0, 9) == 'timestamp') {
+ ?>
+ <script type="text/javascript">
+ //<![CDATA[
+ document.write('<a title="<?php echo $strCalendar;?>" href="javascript:openCalendar(\'<?php echo PMA_generate_common_url();?>\', \'insertForm\', \'field_<?php echo ($i); ?>\', \'<?php echo (substr($type, 0, 9) == 'timestamp') ? 'datetime' : substr($type, 0, 9); ?>\')"><img class="calendar" src="<?php echo $pmaThemeImage; ?>b_calendar.png" alt="<?php echo $strCalendar; ?>"/></a>');
+ //]]>
+ </script>
+ <?php
+ }
+ ?>
+ <input type="hidden" name="names[<?php echo $i; ?>]"
+ value="<?php echo htmlspecialchars($fields_list[$i]); ?>" />
+ <input type="hidden" name="types[<?php echo $i; ?>]"
+ value="<?php echo $fields_type[$i]; ?>" />
+ <input type="hidden" name="collations[<?php echo $i; ?>]"
+ value="<?php echo $fields_collation[$i]; ?>" />
+ </td>
+ </tr>
+ <?php
+ } // end for
+ ?>
+ </tbody>
+ </table>
+</fieldset>
+<?php
+ PMA_generate_slider_effect('searchoptions', $strOptions);
+?>
+<fieldset id="fieldset_select_fields">
+ <legend><?php echo $strSelectFields; ?></legend>
+ <select name="param[]" size="<?php echo min($fields_cnt, 10); ?>"
+ multiple="multiple">
+ <?php
+ // Displays the list of the fields
+ foreach ($fields_list as $each_field) {
+ echo ' '
+ .'<option value="' . htmlspecialchars($each_field) . '"'
+ .' selected="selected">' . htmlspecialchars($each_field)
+ .'</option>' . "\n";
+ }
+ ?>
+ </select>
+ <input type="checkbox" name="distinct" value="DISTINCT" id="oDistinct" />
+ <label for="oDistinct">DISTINCT</label>
+</fieldset>
+
+<fieldset id="fieldset_search_conditions">
+ <legend><?php echo '<em>' . $strOr . '</em> ' .$strAddSearchConditions; ?></legend>
+<?php echo PMA_showMySQLDocu('SQL-Syntax', 'Functions'); ?>
+
+<input type="text" name="where" class="textfield" size="64" />
+</fieldset>
+
+<fieldset id="fieldset_limit_rows">
+ <legend><?php echo $strLimitNumRows; ?></legend>
+ <input type="text" size="4" name="session_max_rows"
+ value="<?php echo $GLOBALS['cfg']['MaxRows']; ?>" class="textfield" />
+</fieldset>
+
+<fieldset id="fieldset_display_order">
+ <legend><?php echo $strDisplayOrder; ?></legend>
+ <select name="orderField" style="vertical-align: middle">
+ <option value="--nil--"></option>
+ <?php
+ foreach ($fields_list as $each_field) {
+ echo ' '
+ .'<option value="' . htmlspecialchars($each_field) . '">'
+ .htmlspecialchars($each_field) . '</option>' . "\n";
+ } // end for
+ ?>
+ </select>
+<?php
+ $choices = array(
+ 'ASC' => $strAscending,
+ 'DESC' => $strDescending
+ );
+ PMA_generate_html_radio('order', $choices, 'ASC', false, true, "formelement");
+ unset($choices);
+?>
+</fieldset>
+</div>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="hidden" name="max_number_of_fields"
+ value="<?php echo $fields_cnt; ?>" />
+ <input type="submit" name="submit" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
+ <?php
+ require_once './libraries/footer.inc.php';
+}
+
+
+/**
+ * Selection criteria have been submitted -> do the work
+ */
+else {
+ // Builds the query
+
+ $sql_query = 'SELECT ' . (isset($distinct) ? 'DISTINCT ' : '');
+
+ // if all fields were selected to display, we do a SELECT *
+ // (more efficient and this helps prevent a problem in IE
+ // if one of the rows is edited and we come back to the Select results)
+
+ if (count($param) == $max_number_of_fields) {
+ $sql_query .= '* ';
+ } else {
+ $param = PMA_backquote($param);
+ $sql_query .= implode(', ', $param);
+ unset($param);
+ } // end if
+
+ $sql_query .= ' FROM ' . PMA_backquote($table);
+
+ // The where clause
+ if (trim($where) != '') {
+ $sql_query .= ' WHERE ' . $where;
+ } else {
+ $w = $charsets = array();
+ $cnt_func = count($func);
+ reset($func);
+ while (list($i, $func_type) = each($func)) {
+ list($charsets[$i]) = explode('_', $collations[$i]);
+ if (isset($GLOBALS['cfg']['UnaryOperators'][$func_type]) && $GLOBALS['cfg']['UnaryOperators'][$func_type] == 1) {
+ $fields[$i] = '';
+ $w[] = PMA_backquote($names[$i]) . ' ' . $func_type;
+
+ } elseif (strncasecmp($types[$i], 'enum', 4) == 0) {
+ if (!empty($fields[$i])) {
+ if (!is_array($fields[$i])) {
+ $fields[$i] = explode(',', $fields[$i]);
+ }
+ $enum_selected_count = count($fields[$i]);
+ if ($func_type == '=' && $enum_selected_count > 1) {
+ $func_type = $func[$i] = 'IN';
+ $parens_open = '(';
+ $parens_close = ')';
+
+ } elseif ($func_type == '!=' && $enum_selected_count > 1) {
+ $func_type = $func[$i] = 'NOT IN';
+ $parens_open = '(';
+ $parens_close = ')';
+
+ } else {
+ $parens_open = '';
+ $parens_close = '';
+ }
+ $enum_where = '\'' . PMA_sqlAddslashes($fields[$i][0]) . '\'';
+ for ($e = 1; $e < $enum_selected_count; $e++) {
+ $enum_where .= ', \'' . PMA_sqlAddslashes($fields[$i][$e]) . '\'';
+ }
+
+ $w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . $parens_open . $enum_where . $parens_close;
+ }
+
+ } elseif ($fields[$i] != '') {
+ // For these types we quote the value. Even if it's another type (like INT),
+ // for a LIKE we always quote the value. MySQL converts strings to numbers
+ // and numbers to strings as necessary during the comparison
+ if (preg_match('@char|binary|blob|text|set|date|time|year@i', $types[$i]) || strpos(' ' . $func_type, 'LIKE')) {
+ $quot = '\'';
+ } else {
+ $quot = '';
+ }
+
+ // LIKE %...%
+ if ($func_type == 'LIKE %...%') {
+ $func_type = 'LIKE';
+ $fields[$i] = '%' . $fields[$i] . '%';
+ }
+ $w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . $quot . PMA_sqlAddslashes($fields[$i]) . $quot;
+
+ } // end if
+ } // end for
+
+ if ($w) {
+ $sql_query .= ' WHERE ' . implode(' AND ', $w);
+ }
+ } // end if
+
+ if ($orderField != '--nil--') {
+ $sql_query .= ' ORDER BY ' . PMA_backquote($orderField) . ' ' . $order;
+ } // end if
+
+ require './sql.php';
+}
+
+?>
diff --git a/tbl_sql.php b/tbl_sql.php
new file mode 100644
index 0000000000..76500597c3
--- /dev/null
+++ b/tbl_sql.php
@@ -0,0 +1,46 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Runs common work
+ */
+require './libraries/tbl_common.php';
+$url_query .= '&amp;goto=tbl_sql.php&amp;back=tbl_sql.php';
+
+require_once './libraries/sql_query_form.lib.php';
+
+$err_url = 'tbl_sql.php' . $err_url;
+// After a syntax error, we return to this script
+// with the typed query in the textarea.
+$goto = 'tbl_sql.php';
+$back = 'tbl_sql.php';
+
+/**
+ * Get table information
+ */
+require_once './libraries/tbl_info.inc.php';
+
+/**
+ * Displays top menu links
+ */
+require_once './libraries/tbl_links.inc.php';
+
+/**
+ * Query box, bookmark, insert data from textfile
+ */
+PMA_sqlQueryForm(true, false, isset($_REQUEST['delimiter']) ? $_REQUEST['delimiter'] : ';');
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/tbl_structure.php b/tbl_structure.php
new file mode 100644
index 0000000000..e786cf1307
--- /dev/null
+++ b/tbl_structure.php
@@ -0,0 +1,818 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays table structure infos like fields/columns, indexes, size, rows
+ * and allows manipulation of indexes and columns/fields
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/mysql_charsets.lib.php';
+require_once './libraries/relation.lib.php';
+
+$GLOBALS['js_include'][] = 'mootools.js';
+
+/**
+ * handle multiple field commands if required
+ *
+ * submit_mult_*_x comes from IE if <input type="img" ...> is used
+ */
+if (isset($_REQUEST['submit_mult_change_x'])) {
+ $submit_mult = $strChange;
+} elseif (isset($_REQUEST['submit_mult_drop_x'])) {
+ $submit_mult = $strDrop;
+} elseif (isset($_REQUEST['submit_mult_primary_x'])) {
+ $submit_mult = $strPrimary;
+} elseif (isset($_REQUEST['submit_mult_index_x'])) {
+ $submit_mult = $strIndex;
+} elseif (isset($_REQUEST['submit_mult_unique_x'])) {
+ $submit_mult = $strUnique;
+} elseif (isset($_REQUEST['submit_mult_fulltext_x'])) {
+ $submit_mult = $strIdxFulltext;
+} elseif (isset($_REQUEST['submit_mult_browse_x'])) {
+ $submit_mult = $strBrowse;
+} elseif (isset($_REQUEST['submit_mult'])) {
+ $submit_mult = $_REQUEST['submit_mult'];
+} elseif (isset($_REQUEST['mult_btn']) && $_REQUEST['mult_btn'] == $strYes) {
+ $submit_mult = 'row_delete';
+ if (isset($_REQUEST['selected'])) {
+ $_REQUEST['selected_fld'] = $_REQUEST['selected'];
+ }
+}
+
+if (! empty($submit_mult) && isset($_REQUEST['selected_fld'])) {
+ $err_url = 'tbl_structure.php?' . PMA_generate_common_url($db, $table);
+ if ($submit_mult == $strBrowse) {
+ // browsing the table displaying only selected fields/columns
+ $GLOBALS['active_page'] = 'sql.php';
+ $sql_query = '';
+ foreach ($_REQUEST['selected_fld'] as $idx => $sval) {
+ if ($sql_query == '') {
+ $sql_query .= 'SELECT ' . PMA_backquote($sval);
+ } else {
+ $sql_query .= ', ' . PMA_backquote($sval);
+ }
+ }
+
+ // what is this htmlspecialchars() for??
+ //$sql_query .= ' FROM ' . PMA_backquote(htmlspecialchars($table));
+ $sql_query .= ' FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
+ require './sql.php';
+ exit;
+ } else {
+ // handle multiple field commands
+ // handle confirmation of deleting multiple fields/columns
+ $action = 'tbl_structure.php';
+ require './libraries/mult_submits.inc.php';
+ //require_once './libraries/header.inc.php';
+ //require_once './libraries/tbl_links.inc.php';
+
+ if (empty($message)) {
+ $message = PMA_Message::success();
+ }
+ }
+}
+
+/**
+ * Gets the relation settings
+ */
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Runs common work
+ */
+require_once './libraries/tbl_common.php';
+$url_query .= '&amp;goto=tbl_structure.php&amp;back=tbl_structure.php';
+$url_params['goto'] = 'tbl_structure.php';
+$url_params['back'] = 'tbl_structure.php';
+
+/**
+ * Prepares the table structure display
+ */
+
+
+/**
+ * Gets tables informations
+ */
+require_once './libraries/tbl_info.inc.php';
+
+/**
+ * Displays top menu links
+ */
+require_once './libraries/tbl_links.inc.php';
+require_once './libraries/Index.class.php';
+
+// 2. Gets table keys and retains them
+// @todo should be: $server->db($db)->table($table)->primary()
+$primary = PMA_Index::getPrimary($table, $db);
+
+
+// 3. Get fields
+$fields_rs = PMA_DBI_query('SHOW FULL FIELDS FROM ' . PMA_backquote($table) . ';', null, PMA_DBI_QUERY_STORE);
+$fields_cnt = PMA_DBI_num_rows($fields_rs);
+
+
+// Get more complete field information
+// For now, this is done just for MySQL 4.1.2+ new TIMESTAMP options
+// but later, if the analyser returns more information, it
+// could be executed for any MySQL version and replace
+// the info given by SHOW FULL FIELDS FROM.
+//
+// We also need this to correctly learn if a TIMESTAMP is NOT NULL, since
+// SHOW FULL FIELDS or INFORMATION_SCHEMA incorrectly says NULL
+// and SHOW CREATE TABLE says NOT NULL (tested
+// in MySQL 4.0.25 and 5.0.21, http://bugs.mysql.com/20910).
+
+$show_create_table = PMA_DBI_fetch_value(
+ 'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table),
+ 0, 1);
+$analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
+
+/**
+ * prepare table infos
+ */
+// action titles (image or string)
+$titles = array();
+$titles['Change'] = PMA_getIcon('b_edit.png', $strChange, true);
+$titles['Drop'] = PMA_getIcon('b_drop.png', $strDrop, true);
+$titles['NoDrop'] = PMA_getIcon('b_drop.png', $strDrop, true);
+$titles['Primary'] = PMA_getIcon('b_primary.png', $strPrimary, true);
+$titles['Index'] = PMA_getIcon('b_index.png', $strIndex, true);
+$titles['Unique'] = PMA_getIcon('b_unique.png', $strUnique, true);
+$titles['IdxFulltext'] = PMA_getIcon('b_ftext.png', $strIdxFulltext, true);
+$titles['NoPrimary'] = PMA_getIcon('bd_primary.png', $strPrimary, true);
+$titles['NoIndex'] = PMA_getIcon('bd_index.png', $strIndex, true);
+$titles['NoUnique'] = PMA_getIcon('bd_unique.png', $strUnique, true);
+$titles['NoIdxFulltext'] = PMA_getIcon('bd_ftext.png', $strIdxFulltext, true);
+$titles['BrowseDistinctValues'] = PMA_getIcon('b_browse.png', $strBrowseDistinctValues, true);
+
+/**
+ * Displays the table structure ('show table' works correct since 3.23.03)
+ */
+/* TABLE INFORMATION */
+// table header
+$i = 0;
+?>
+<form method="post" action="tbl_structure.php" name="fieldsForm" id="fieldsForm">
+ <?php echo PMA_generate_common_hidden_inputs($db, $table); ?>
+<table id="tablestructure" class="data">
+<thead>
+<tr>
+ <th id="th<?php echo ++$i; ?>"></th>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strField; ?></th>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strType; ?></th>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strCollation; ?></th>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strAttr; ?></th>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strNull; ?></th>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strDefault; ?></th>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strExtra; ?></th>
+<?php if ($db_is_information_schema || $tbl_is_view) { ?>
+ <th id="th<?php echo ++$i; ?>"><?php echo $strView; ?></th>
+<?php } else { ?>
+ <th colspan="7" id="th<?php echo ++$i; ?>"><?php echo $strAction; ?></th>
+<?php } ?>
+</tr>
+</thead>
+<tbody>
+<?php
+unset($i);
+
+
+// table body
+
+// prepare comments
+$comments_map = array();
+$mime_map = array();
+
+if ($GLOBALS['cfg']['ShowPropertyComments']) {
+ require_once './libraries/relation.lib.php';
+ require_once './libraries/transformations.lib.php';
+
+ //$cfgRelation = PMA_getRelationsParam();
+
+ $comments_map = PMA_getComments($db, $table);
+
+ if ($cfgRelation['mimework'] && $cfg['BrowseMIME']) {
+ $mime_map = PMA_getMIME($db, $table, true);
+ }
+}
+
+$rownum = 0;
+$aryFields = array();
+$checked = (!empty($checkall) ? ' checked="checked"' : '');
+$save_row = array();
+$odd_row = true;
+while ($row = PMA_DBI_fetch_assoc($fields_rs)) {
+ $save_row[] = $row;
+ $rownum++;
+ $aryFields[] = $row['Field'];
+
+ $type = $row['Type'];
+ $extracted_fieldspec = PMA_extractFieldSpec($row['Type']);
+
+ if ('set' == $extracted_fieldspec['type'] || 'enum' == $extracted_fieldspec['type']) {
+ $type = $extracted_fieldspec['type'] . '(' . $extracted_fieldspec['spec_in_brackets'] . ')';
+
+ // for the case ENUM('&#8211;','&ldquo;')
+ $type = htmlspecialchars($type);
+
+ $type_nowrap = '';
+
+ $binary = 0;
+ $unsigned = 0;
+ $zerofill = 0;
+ } else {
+ $type_nowrap = ' nowrap="nowrap"';
+ // strip the "BINARY" attribute, except if we find "BINARY(" because
+ // this would be a BINARY or VARBINARY field type
+ if (!preg_match('@BINARY[\(]@i', $type)) {
+ $type = preg_replace('@BINARY@i', '', $type);
+ }
+ $type = preg_replace('@ZEROFILL@i', '', $type);
+ $type = preg_replace('@UNSIGNED@i', '', $type);
+ if (empty($type)) {
+ $type = ' ';
+ }
+
+ if (!preg_match('@BINARY[\(]@i', $row['Type'])) {
+ $binary = stristr($row['Type'], 'blob') || stristr($row['Type'], 'binary');
+ } else {
+ $binary = false;
+ }
+
+ $unsigned = stristr($row['Type'], 'unsigned');
+ $zerofill = stristr($row['Type'], 'zerofill');
+ }
+
+ unset($field_charset);
+ if ((substr($type, 0, 4) == 'char'
+ || substr($type, 0, 7) == 'varchar'
+ || substr($type, 0, 4) == 'text'
+ || substr($type, 0, 8) == 'tinytext'
+ || substr($type, 0, 10) == 'mediumtext'
+ || substr($type, 0, 8) == 'longtext'
+ || substr($type, 0, 3) == 'set'
+ || substr($type, 0, 4) == 'enum'
+ ) && !$binary) {
+ if (strpos($type, ' character set ')) {
+ $type = substr($type, 0, strpos($type, ' character set '));
+ }
+ if (!empty($row['Collation'])) {
+ $field_charset = $row['Collation'];
+ } else {
+ $field_charset = '';
+ }
+ } else {
+ $field_charset = '';
+ }
+
+ // garvin: Display basic mimetype [MIME]
+ if ($cfgRelation['commwork'] && $cfgRelation['mimework'] && $cfg['BrowseMIME'] && isset($mime_map[$row['Field']]['mimetype'])) {
+ $type_mime = '<br />MIME: ' . str_replace('_', '/', $mime_map[$row['Field']]['mimetype']);
+ } else {
+ $type_mime = '';
+ }
+
+ $attribute = ' ';
+ if ($binary) {
+ $attribute = 'BINARY';
+ }
+ if ($unsigned) {
+ $attribute = 'UNSIGNED';
+ }
+ if ($zerofill) {
+ $attribute = 'UNSIGNED ZEROFILL';
+ }
+
+ // MySQL 4.1.2+ TIMESTAMP options
+ // (if on_update_current_timestamp is set, then it's TRUE)
+ if (isset($analyzed_sql[0]['create_table_fields'][$row['Field']]['on_update_current_timestamp'])) {
+ $attribute = 'on update CURRENT_TIMESTAMP';
+ }
+
+ // here, we have a TIMESTAMP that SHOW FULL FIELDS reports as having the
+ // NULL attribute, but SHOW CREATE TABLE says the contrary. Believe
+ // the latter.
+ if (!empty($analyzed_sql[0]['create_table_fields'][$row['Field']]['type']) && $analyzed_sql[0]['create_table_fields'][$row['Field']]['type'] == 'TIMESTAMP' && $analyzed_sql[0]['create_table_fields'][$row['Field']]['timestamp_not_null']) {
+ $row['Null'] = '';
+ }
+
+
+ if (!isset($row['Default'])) {
+ if ($row['Null'] == 'YES') {
+ $row['Default'] = '<i>NULL</i>';
+ }
+ } else {
+ $row['Default'] = htmlspecialchars($row['Default']);
+ }
+
+ $field_encoded = urlencode($row['Field']);
+ $field_name = htmlspecialchars($row['Field']);
+
+ // garvin: underline commented fields and display a hover-title (CSS only)
+
+ $comment_style = '';
+ if (isset($comments_map[$row['Field']])) {
+ $field_name = '<span style="border-bottom: 1px dashed black;" title="' . htmlspecialchars($comments_map[$row['Field']]) . '">' . $field_name . '</span>';
+ }
+
+ if ($primary && $primary->hasColumn($field_name)) {
+ $field_name = '<u>' . $field_name . '</u>';
+ }
+ echo "\n";
+ ?>
+<tr class="<?php echo $odd_row ? 'odd': 'even'; $odd_row = !$odd_row; ?>">
+ <td align="center">
+ <input type="checkbox" name="selected_fld[]" value="<?php echo htmlspecialchars($row['Field']); ?>" id="checkbox_row_<?php echo $rownum; ?>" <?php echo $checked; ?> />
+ </td>
+ <th nowrap="nowrap"><label for="checkbox_row_<?php echo $rownum; ?>"><?php echo $field_name; ?></label></th>
+ <td<?php echo $type_nowrap; ?>><bdo dir="ltr" xml:lang="en"><?php echo $type; echo $type_mime; ?></bdo></td>
+ <td><?php echo (empty($field_charset) ? '' : '<dfn title="' . PMA_getCollationDescr($field_charset) . '">' . $field_charset . '</dfn>'); ?></td>
+ <td nowrap="nowrap" style="font-size: 70%"><?php echo $attribute; ?></td>
+ <td><?php echo (($row['Null'] == 'YES') ? $strYes : $strNo); ?></td>
+ <td nowrap="nowrap"><?php
+ if (isset($row['Default'])) {
+ if ($extracted_fieldspec['type'] == 'bit') {
+ echo PMA_printable_bit_value($row['Default'], $extracted_fieldspec['spec_in_brackets']);
+ } else {
+ echo $row['Default'];
+ }
+ }
+ else {
+ echo '<i>' . $strNone . '</i>';
+ } ?></td>
+ <td nowrap="nowrap"><?php echo $row['Extra']; ?></td>
+ <td align="center">
+ <a href="sql.php?<?php echo $url_query; ?>&amp;sql_query=<?php echo urlencode('SELECT COUNT(*) AS ' . PMA_backquote($strRows) . ', ' . PMA_backquote($row['Field']) . ' FROM ' . PMA_backquote($table) . ' GROUP BY ' . PMA_backquote($row['Field']) . ' ORDER BY ' . PMA_backquote($row['Field'])); ?>">
+ <?php echo $titles['BrowseDistinctValues']; ?></a>
+ </td>
+ <?php if (! $tbl_is_view && ! $db_is_information_schema) { ?>
+ <td align="center">
+ <a href="tbl_alter.php?<?php echo $url_query; ?>&amp;field=<?php echo $field_encoded; ?>">
+ <?php echo $titles['Change']; ?></a>
+ </td>
+ <td align="center">
+ <a href="sql.php?<?php echo $url_query; ?>&amp;sql_query=<?php echo urlencode('ALTER TABLE ' . PMA_backquote($table) . ' DROP ' . PMA_backquote($row['Field'])); ?>&amp;cpurge=1&amp;purgekey=<?php echo urlencode($row['Field']); ?>&amp;zero_rows=<?php echo urlencode(sprintf($strFieldHasBeenDropped, htmlspecialchars($row['Field']))); ?>"
+ onclick="return confirmLink(this, 'ALTER TABLE <?php echo PMA_jsFormat($table); ?> DROP <?php echo PMA_jsFormat($row['Field']); ?>')">
+ <?php echo $titles['Drop']; ?></a>
+ </td>
+ <td align="center">
+ <?php
+ if ($type == 'text' || $type == 'blob' || 'ARCHIVE' == $tbl_type) {
+ echo $titles['NoPrimary'] . "\n";
+ } else {
+ echo "\n";
+ ?>
+ <a href="sql.php?<?php echo $url_query; ?>&amp;sql_query=<?php echo urlencode('ALTER TABLE ' . PMA_backquote($table) . ($primary ? ' DROP PRIMARY KEY,' : '') . ' ADD PRIMARY KEY(' . PMA_backquote($row['Field']) . ')'); ?>&amp;zero_rows=<?php echo urlencode(sprintf($strAPrimaryKey, htmlspecialchars($row['Field']))); ?>"
+ onclick="return confirmLink(this, 'ALTER TABLE <?php echo PMA_jsFormat($table) . ($primary ? ' DROP PRIMARY KEY,' : ''); ?> ADD PRIMARY KEY(<?php echo PMA_jsFormat($row['Field']); ?>)')">
+ <?php echo $titles['Primary']; ?></a>
+ <?php
+ }
+ echo "\n";
+ ?>
+ </td>
+ <td align="center">
+ <?php
+ if ($type == 'text' || $type == 'blob' || 'ARCHIVE' == $tbl_type) {
+ echo $titles['NoUnique'] . "\n";
+ } else {
+ echo "\n";
+ ?>
+ <a href="sql.php?<?php echo $url_query; ?>&amp;sql_query=<?php echo urlencode('ALTER TABLE ' . PMA_backquote($table) . ' ADD UNIQUE(' . PMA_backquote($row['Field']) . ')'); ?>&amp;zero_rows=<?php echo urlencode(sprintf($strAnIndex, htmlspecialchars($row['Field']))); ?>">
+ <?php echo $titles['Unique']; ?></a>
+ <?php
+ }
+ echo "\n";
+ ?>
+ </td>
+ <td align="center">
+ <?php
+ if ($type == 'text' || $type == 'blob' || 'ARCHIVE' == $tbl_type) {
+ echo $titles['NoIndex'] . "\n";
+ } else {
+ echo "\n";
+ ?>
+ <a href="sql.php?<?php echo $url_query; ?>&amp;sql_query=<?php echo urlencode('ALTER TABLE ' . PMA_backquote($table) . ' ADD INDEX(' . PMA_backquote($row['Field']) . ')'); ?>&amp;zero_rows=<?php echo urlencode(sprintf($strAnIndex, htmlspecialchars($row['Field']))); ?>">
+ <?php echo $titles['Index']; ?></a>
+ <?php
+ }
+ echo "\n";
+ ?>
+ </td>
+ <?php
+ if (! empty($tbl_type) && ($tbl_type == 'MYISAM' || $tbl_type == 'MARIA')
+ // FULLTEXT is possible on TEXT, CHAR and VARCHAR
+ && (strpos(' ' . $type, 'text') || strpos(' ' . $type, 'char'))) {
+ echo "\n";
+ ?>
+ <td align="center" nowrap="nowrap">
+ <a href="sql.php?<?php echo $url_query; ?>&amp;sql_query=<?php echo urlencode('ALTER TABLE ' . PMA_backquote($table) . ' ADD FULLTEXT(' . PMA_backquote($row['Field']) . ')'); ?>&amp;zero_rows=<?php echo urlencode(sprintf($strAnIndex, htmlspecialchars($row['Field']))); ?>">
+ <?php echo $titles['IdxFulltext']; ?></a>
+ </td>
+ <?php
+ } else {
+ echo "\n";
+ ?>
+ <td align="center" nowrap="nowrap">
+ <?php echo $titles['NoIdxFulltext'] . "\n"; ?>
+ </td>
+ <?php
+ } // end if... else...
+ echo "\n";
+ } // end if (! $tbl_is_view && ! $db_is_information_schema)
+ ?>
+</tr>
+ <?php
+ unset($field_charset);
+} // end while
+
+echo '</tbody>' . "\n"
+ .'</table>' . "\n";
+
+$checkall_url = 'tbl_structure.php?' . PMA_generate_common_url($db, $table);
+?>
+
+<img class="selectallarrow" src="<?php echo $pmaThemeImage . 'arrow_' . $text_dir . '.png'; ?>"
+ width="38" height="22" alt="<?php echo $strWithChecked; ?>" />
+<a href="<?php echo $checkall_url; ?>&amp;checkall=1"
+ onclick="if (markAllRows('fieldsForm')) return false;">
+ <?php echo $strCheckAll; ?></a>
+/
+<a href="<?php echo $checkall_url; ?>"
+ onclick="if (unMarkAllRows('fieldsForm')) return false;">
+ <?php echo $strUncheckAll; ?></a>
+
+<i><?php echo $strWithChecked; ?></i>
+
+<?php
+PMA_buttonOrImage('submit_mult', 'mult_submit', 'submit_mult_browse', $strBrowse, 'b_browse.png');
+
+if (! $tbl_is_view && ! $db_is_information_schema) {
+ PMA_buttonOrImage('submit_mult', 'mult_submit', 'submit_mult_change', $strChange, 'b_edit.png');
+ PMA_buttonOrImage('submit_mult', 'mult_submit', 'submit_mult_drop', $strDrop, 'b_drop.png');
+ if ('ARCHIVE' != $tbl_type) {
+ PMA_buttonOrImage('submit_mult', 'mult_submit', 'submit_mult_primary', $strPrimary, 'b_primary.png');
+ PMA_buttonOrImage('submit_mult', 'mult_submit', 'submit_mult_unique', $strUnique, 'b_unique.png');
+ PMA_buttonOrImage('submit_mult', 'mult_submit', 'submit_mult_index', $strIndex, 'b_index.png');
+ }
+ if (! empty($tbl_type) && ($tbl_type == 'MYISAM' || $tbl_type == 'MARIA')) {
+ PMA_buttonOrImage('submit_mult', 'mult_submit', 'submit_mult_fulltext', $strIdxFulltext, 'b_ftext.png');
+ }
+}
+?>
+</form>
+<hr />
+
+<?php
+/**
+ * Work on the table
+ */
+?>
+<a href="tbl_printview.php?<?php echo $url_query; ?>"><?php
+if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_print.png" width="16" height="16" alt="' . $strPrintView . '"/>';
+}
+echo $strPrintView;
+?></a>
+
+<?php
+if (! $tbl_is_view && ! $db_is_information_schema) {
+
+ // if internal relations are available, or foreign keys are supported
+ // ($tbl_type comes from libraries/tbl_info.inc.php)
+ if ($cfgRelation['relwork'] || PMA_foreignkey_supported($tbl_type)) {
+ ?>
+<a href="tbl_relation.php?<?php echo $url_query; ?>"><?php
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_relations.png" width="16" height="16" alt="' . $strRelationView . '"/>';
+ }
+ echo $strRelationView;
+ ?></a>
+ <?php
+ }
+ ?>
+<a href="sql.php?<?php echo $url_query; ?>&amp;session_max_rows=all&amp;sql_query=<?php echo urlencode('SELECT * FROM ' . PMA_backquote($table) . ' PROCEDURE ANALYSE()'); ?>"><?php
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_tblanalyse.png" width="16" height="16" alt="' . $strStructPropose . '" />';
+ }
+ echo $strStructPropose;
+ ?></a><?php
+ echo PMA_showMySQLDocu('Extending_MySQL', 'procedure_analyse') . "\n";
+ ?><br />
+<form method="post" action="tbl_addfield.php"
+ onsubmit="return checkFormElementInRange(this, 'num_fields', '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidFieldAddCount']); ?>', 1)">
+ <?php
+ echo PMA_generate_common_hidden_inputs($db, $table);
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_insrow.png" width="16" height="16" alt="' . $strAddNewField . '"/>';
+ }
+ echo sprintf($strAddFields, '<input type="text" name="num_fields" size="2" maxlength="2" value="1" style="vertical-align: middle" onfocus="this.select()" />');
+
+ // here we want to display a field selector inside the label for
+ // the After choice, and $strAfter contains a parameter to display
+ // this selector at the best place for each language; thus we
+ // set the fifth parameter of PMA_generate_html_radio() to false
+ // in order to avoid the usual escaping with htmlspecialchars() inside
+ // the label
+ $fieldOptions = '<select name="after_field" style="vertical-align: middle" onclick="this.form.field_where[2].checked=true" onchange="this.form.field_where[2].checked=true">';
+ foreach ($aryFields as $fieldname) {
+ $fieldOptions .= '<option value="' . htmlspecialchars($fieldname) . '">' . htmlspecialchars($fieldname) . '</option>' . "\n";
+ }
+ unset($aryFields);
+ $fieldOptions .= '</select>';
+
+ $choices = array(
+ 'last' => $strAtEndOfTable,
+ 'first' => $strAtBeginningOfTable,
+ 'after' => sprintf($strAfter, $fieldOptions)
+ );
+ PMA_generate_html_radio('field_where', $choices, 'last', false, false);
+ unset($fieldOptions, $choices);
+ ?>
+<input type="submit" value="<?php echo $strGo; ?>" style="vertical-align: middle" />
+</form>
+<hr />
+ <?php
+}
+
+/**
+ * If there are more than 20 rows, displays browse/select/insert/empty/drop
+ * links again
+ */
+if ($fields_cnt > 20) {
+ require './libraries/tbl_links.inc.php';
+} // end if ($fields_cnt > 20)
+
+/**
+ * Displays indexes
+ */
+PMA_generate_slider_effect('tablestatistics_indexes', $strDetails);
+
+if (! $tbl_is_view && ! $db_is_information_schema && 'ARCHIVE' != $tbl_type) {
+ /**
+ * Display indexes
+ */
+ echo PMA_Index::getView($table, $db);
+ ?>
+<br />
+<form action="./tbl_indexes.php" method="post"
+ onsubmit="return checkFormElementInRange(this, 'idx_num_fields',
+ '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidColumnCount']); ?>',
+ 1)">
+<fieldset>
+ <?php
+ echo PMA_generate_common_hidden_inputs($db, $table);
+ echo sprintf($strCreateIndex,
+ '<input type="text" size="2" name="added_fields" value="1" />');
+ ?>
+ <input type="submit" name="create_index" value="<?php echo $strGo; ?>"
+ onclick="return checkFormElementInRange(this.form,
+ 'idx_num_fields',
+ '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidColumnCount']); ?>',
+ 1)" />
+</fieldset>
+</form>
+<br />
+ <?php
+}
+echo '<div id="tablestatistics">' . "\n";
+
+/**
+ * Displays Space usage and row statistics
+ */
+// BEGIN - Calc Table Space - staybyte - 9 June 2001
+// loic1, 22 feb. 2002: updated with patch from
+// Joshua Nye <josh at boxcarmedia.com> to get valid
+// statistics whatever is the table type
+if ($cfg['ShowStats']) {
+ $nonisam = false;
+ $is_innodb = (isset($showtable['Type']) && $showtable['Type'] == 'InnoDB');
+ if (isset($showtable['Type']) && !preg_match('@ISAM|HEAP@i', $showtable['Type'])) {
+ $nonisam = true;
+ }
+
+ // Gets some sizes
+ $mergetable = false;
+ if (isset($showtable['Type']) && $showtable['Type'] == 'MRG_MyISAM') {
+ $mergetable = true;
+ }
+ // this is to display for example 261.2 MiB instead of 268k KiB
+ $max_digits = 5;
+ $decimals = 1;
+ list($data_size, $data_unit) = PMA_formatByteDown($showtable['Data_length'], $max_digits, $decimals);
+ if ($mergetable == false) {
+ list($index_size, $index_unit) = PMA_formatByteDown($showtable['Index_length'], $max_digits, $decimals);
+ }
+ if (isset($showtable['Data_free']) && $showtable['Data_free'] > 0) {
+ list($free_size, $free_unit) = PMA_formatByteDown($showtable['Data_free'], $max_digits, $decimals);
+ list($effect_size, $effect_unit) = PMA_formatByteDown($showtable['Data_length'] + $showtable['Index_length'] - $showtable['Data_free'], $max_digits, $decimals);
+ } else {
+ list($effect_size, $effect_unit) = PMA_formatByteDown($showtable['Data_length'] + $showtable['Index_length'], $max_digits, $decimals);
+ }
+ list($tot_size, $tot_unit) = PMA_formatByteDown($showtable['Data_length'] + $showtable['Index_length'], $max_digits, $decimals);
+ if ($table_info_num_rows > 0) {
+ list($avg_size, $avg_unit) = PMA_formatByteDown(($showtable['Data_length'] + $showtable['Index_length']) / $showtable['Rows'], 6, 1);
+ }
+
+ // Displays them
+ $odd_row = false;
+ ?>
+
+ <a name="showusage"></a>
+ <?php if (! $tbl_is_view && ! $db_is_information_schema) { ?>
+ <table id="tablespaceusage" class="data">
+ <caption class="tblHeaders"><?php echo $strSpaceUsage; ?></caption>
+ <thead>
+ <tr>
+ <th><?php echo $strType; ?></th>
+ <th colspan="2"><?php echo $strUsage; ?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strData; ?></th>
+ <td class="value"><?php echo $data_size; ?></td>
+ <td class="unit"><?php echo $data_unit; ?></td>
+ </tr>
+ <?php
+ if (isset($index_size)) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strIndex; ?></th>
+ <td class="value"><?php echo $index_size; ?></td>
+ <td class="unit"><?php echo $index_unit; ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($free_size)) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?> warning">
+ <th class="name"><?php echo $strOverhead; ?></th>
+ <td class="value"><?php echo $free_size; ?></td>
+ <td class="unit"><?php echo $free_unit; ?></td>
+ </tr>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strEffective; ?></th>
+ <td class="value"><?php echo $effect_size; ?></td>
+ <td class="unit"><?php echo $effect_unit; ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($tot_size) && $mergetable == false) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strTotalUC; ?></th>
+ <td class="value"><?php echo $tot_size; ?></td>
+ <td class="unit"><?php echo $tot_unit; ?></td>
+ </tr>
+ <?php
+ }
+ // Optimize link if overhead
+ if (isset($free_size) && ($tbl_type == 'MYISAM' || $tbl_type == 'MARIA' || $tbl_type == 'BDB')) {
+ ?>
+ <tr class="tblFooters">
+ <td colspan="3" align="center">
+ <a href="sql.php?<?php echo $url_query; ?>&pos=0&amp;sql_query=<?php echo urlencode('OPTIMIZE TABLE ' . PMA_backquote($table)); ?>"><?php
+ if ($cfg['PropertiesIconic']) {
+ echo '<img class="icon" src="' . $pmaThemeImage . 'b_tbloptimize.png" width="16" height="16" alt="' . $strOptimizeTable. '" />';
+ }
+ echo $strOptimizeTable;
+ ?></a>
+ </td>
+ </tr>
+ <?php
+ }
+ ?>
+ </tbody>
+ </table>
+ <?php
+ }
+ $odd_row = false;
+ ?>
+ <table id="tablerowstats" class="data">
+ <caption class="tblHeaders"><?php echo $strRowsStatistic; ?></caption>
+ <thead>
+ <tr>
+ <th><?php echo $strStatement; ?></th>
+ <th><?php echo $strValue; ?></th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ if (isset($showtable['Row_format'])) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strFormat; ?></th>
+ <td class="value"><?php
+ if ($showtable['Row_format'] == 'Fixed') {
+ echo $strFixed;
+ } elseif ($showtable['Row_format'] == 'Dynamic') {
+ echo $strDynamic;
+ } else {
+ echo $showtable['Row_format'];
+ }
+ ?></td>
+ </tr>
+ <?php
+ }
+ if (! empty($showtable['Create_options'])) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strOptions; ?></th>
+ <td class="value"><?php
+ if ($showtable['Create_options'] == 'partitioned') {
+ echo $strPartitioned;
+ } else {
+ echo $showtable['Create_options'];
+ }
+ ?></td>
+ </tr>
+ <?php
+ }
+ if (!empty($tbl_collation)) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strCollation; ?></th>
+ <td class="value"><?php
+ echo '<dfn title="' . PMA_getCollationDescr($tbl_collation) . '">' . $tbl_collation . '</dfn>';
+ ?></td>
+ </tr>
+ <?php
+ }
+ if (!$is_innodb && isset($showtable['Rows'])) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strRows; ?></th>
+ <td class="value"><?php echo PMA_formatNumber($showtable['Rows'], 0); ?></td>
+ </tr>
+ <?php
+ }
+ if (!$is_innodb && isset($showtable['Avg_row_length']) && $showtable['Avg_row_length'] > 0) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strRowLength; ?> &oslash;</th>
+ <td class="value"><?php echo PMA_formatNumber($showtable['Avg_row_length'], 0); ?></td>
+ </tr>
+ <?php
+ }
+ if (!$is_innodb && isset($showtable['Data_length']) && $showtable['Rows'] > 0 && $mergetable == false) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strRowSize; ?> &oslash;</th>
+ <td class="value"><?php echo $avg_size . ' ' . $avg_unit; ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Auto_increment'])) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strNext; ?> Autoindex</th>
+ <td class="value"><?php echo PMA_formatNumber($showtable['Auto_increment'], 0); ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Create_time'])) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strStatCreateTime; ?></th>
+ <td class="value"><?php echo PMA_localisedDate(strtotime($showtable['Create_time'])); ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Update_time'])) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strStatUpdateTime; ?></th>
+ <td class="value"><?php echo PMA_localisedDate(strtotime($showtable['Update_time'])); ?></td>
+ </tr>
+ <?php
+ }
+ if (isset($showtable['Check_time'])) {
+ ?>
+ <tr class="<?php echo ($odd_row = !$odd_row) ? 'odd' : 'even'; ?>">
+ <th class="name"><?php echo $strStatCheckTime; ?></th>
+ <td class="value"><?php echo PMA_localisedDate(strtotime($showtable['Check_time'])); ?></td>
+ </tr>
+ <?php
+ }
+ ?>
+ </tbody>
+ </table>
+ <?php
+}
+// END - Calc Table Space
+
+require './libraries/tbl_triggers.lib.php';
+
+echo '<div class="clearfloat"></div>' . "\n";
+echo '</div>' . "\n";
+echo '</div>' . "\n";
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/test/AllTests.php b/test/AllTests.php
new file mode 100644
index 0000000000..8c2cf9c9de
--- /dev/null
+++ b/test/AllTests.php
@@ -0,0 +1,76 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * runs all defined tests
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+if (! defined('PMA_MAIN_METHOD')) {
+ define('PMA_MAIN_METHOD', 'AllTests::main');
+ chdir('..');
+}
+
+// required to not die() in some libraries
+define('PHPMYADMIN', true);
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+require_once 'PHPUnit/TextUI/TestRunner.php';
+//require_once 'PHPUnit/Util/TestDox/ResultPrinter.php.';
+require_once './test/FailTest.php';
+require_once './test/PMA_get_real_size_test.php';
+require_once './test/PMA_sanitize_test.php';
+require_once './test/PMA_pow_test.php';
+require_once './test/Environment_test.php';
+require_once './test/PMA_escapeJsString_test.php';
+require_once './test/PMA_isValid_test.php';
+require_once './test/PMA_transformation_getOptions_test.php';
+require_once './test/PMA_STR_sub_test.php';
+require_once './test/PMA_generateCommonUrl_test.php';
+require_once './test/PMA_blowfish_test.php';
+require_once './test/PMA_escapeMySqlWildcards_test.php';
+
+class AllTests
+{
+ public static function main()
+ {
+ $parameters = array();
+ //$parameters['testdoxHTMLFile'] = true;
+ //$parameters['printer'] = PHPUnit_Util_TestDox_ResultPrinter::factory('HTML');
+ //$parameters['printer'] = PHPUnit_Util_TestDox_ResultPrinter::factory('Text');
+ PHPUnit_TextUI_TestRunner::run(self::suite(), $parameters);
+ }
+
+ public static function suite()
+ {
+ $suite = new PHPUnit_Framework_TestSuite('phpMyAdmin');
+
+ //$suite->addTestSuite('FailTest');
+ $suite->addTestSuite('Environment_test');
+ $suite->addTestSuite('PMA_get_real_size_test');
+ $suite->addTestSuite('PMA_sanitize_test');
+ $suite->addTestSuite('PMA_pow_test');
+ $suite->addTestSuite('PMA_escapeJsString_test');
+ $suite->addTestSuite('PMA_isValid_test');
+ $suite->addTestSuite('PMA_transformation_getOptions_test');
+ $suite->addTestSuite('PMA_STR_sub_test');
+ $suite->addTestSuite('PMA_generate_common_url_test');
+ //$suite->addTestSuite('PMA_arrayWalkRecursive_test');
+ $suite->addTestSuite('PMA_blowfish_test');
+ return $suite;
+ }
+}
+
+if (PMA_MAIN_METHOD == 'AllTests::main') {
+ echo '<pre>';
+ AllTests::main();
+ echo '</pre>';
+}
+?>
diff --git a/test/Environment_test.php b/test/Environment_test.php
new file mode 100644
index 0000000000..e3775f16a8
--- /dev/null
+++ b/test/Environment_test.php
@@ -0,0 +1,33 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for environment like OS, PHP, modules, ...
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+
+class Environment_test extends PHPUnit_Framework_TestCase
+{
+ public function testPhpVersion()
+ {
+ $this->assertTrue(version_compare('5.2', phpversion(), '<='),
+ 'phpMyAdmin requires PHP 5.2 or above');
+ }
+
+ public function testMySQL()
+ {
+ $this->markTestIncomplete();
+ }
+
+ public function testSession()
+ {
+ $this->markTestIncomplete();
+ }
+}
+?>
diff --git a/test/FailTest.php b/test/FailTest.php
new file mode 100644
index 0000000000..e11ca4af88
--- /dev/null
+++ b/test/FailTest.php
@@ -0,0 +1,22 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_get_real_size()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+
+class FailTest extends PHPUnit_Framework_TestCase
+{
+ public function testFail()
+ {
+ $this->assertEquals(0, 1);
+ }
+}
+?>
diff --git a/test/PMA_STR_sub_test.php b/test/PMA_STR_sub_test.php
new file mode 100644
index 0000000000..0ed9de428d
--- /dev/null
+++ b/test/PMA_STR_sub_test.php
@@ -0,0 +1,43 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_pow()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+
+$match = array();
+preg_match('@^([0-9]{1,2})(?:.([0-9]{1,2})(?:.([0-9]{1,2}))?)?@',
+ phpversion(), $match);
+if (isset($match) && ! empty($match[1])) {
+ if (! isset($match[2])) {
+ $match[2] = 0;
+ }
+ if (! isset($match[3])) {
+ $match[3] = 0;
+ }
+ define('PMA_PHP_INT_VERSION',
+ (int) sprintf('%d%02d%02d', $match[1], $match[2], $match[3]));
+} else {
+ define('PMA_PHP_INT_VERSION', 0);
+}
+
+$GLOBALS['charset'] = 'UTF-8';
+
+require_once './libraries/string.lib.php';
+
+class PMA_STR_sub_test extends PHPUnit_Framework_TestCase
+{
+ public function testMultiByte()
+ {
+ $this->assertEquals('čšě',
+ PMA_substr('čšěčščěš', 0, 3));
+ }
+}
+?>
diff --git a/test/PMA_blowfish_test.php b/test/PMA_blowfish_test.php
new file mode 100644
index 0000000000..9d7657b031
--- /dev/null
+++ b/test/PMA_blowfish_test.php
@@ -0,0 +1,59 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Test for blowfish encryption.
+ *
+ * @package phpMyAdmin-test
+ * @version $Id$
+ */
+
+/**
+ * Tests core.
+ */
+require_once 'PHPUnit/Framework.php';
+
+/**
+ * Include to test.
+ */
+require_once './libraries/blowfish.php';
+
+/**
+ * Test java script escaping.
+ *
+ */
+class PMA_blowfish_test extends PHPUnit_Framework_TestCase
+{
+ public function testEncryptDecryptNumbers()
+ {
+ $secret = '$%ÄüfuDFRR';
+ $string = '12345678';
+ $this->assertEquals($string,
+ PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret));
+ }
+
+ public function testEncryptDecryptChars()
+ {
+ $secret = '$%ÄüfuDFRR';
+ $string = 'abcDEF012!"§$%&/()=?`´"\',.;:-_#+*~öäüÖÄÜ^°²³';
+ $this->assertEquals($string,
+ PMA_blowfish_decrypt(PMA_blowfish_encrypt($string, $secret), $secret));
+ }
+
+ public function testEncrypt()
+ {
+ $secret = '$%ÄüfuDFRR';
+ $decrypted = '12345678';
+ $encrypted = 'p0nz15awFT4=';
+ $this->assertEquals($encrypted, PMA_blowfish_encrypt($decrypted, $secret));
+ }
+
+ public function testDecrypt()
+ {
+ $secret = '$%ÄüfuDFRR';
+ $encrypted = 'p0nz15awFT4=';
+ $decrypted = '12345678';
+ $this->assertEquals($decrypted, PMA_blowfish_decrypt($encrypted, $secret));
+ }
+
+}
+?>
diff --git a/test/PMA_escapeJsString_test.php b/test/PMA_escapeJsString_test.php
new file mode 100644
index 0000000000..b4d70ed9f1
--- /dev/null
+++ b/test/PMA_escapeJsString_test.php
@@ -0,0 +1,58 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Test for javascript escaping.
+ *
+ * @author Michal Čihař <michal@cihar.com>
+ * @package phpMyAdmin-test
+ * @version $Id$
+ */
+
+/**
+ * Tests core.
+ */
+require_once 'PHPUnit/Framework.php';
+
+/**
+ * Include to test.
+ */
+require_once './libraries/js_escape.lib.php';
+
+/**
+ * Test java script escaping.
+ *
+ */
+class PMA_escapeJsString_test extends PHPUnit_Framework_TestCase
+{
+ public function testEscape_1()
+ {
+ $this->assertEquals('\\\';', PMA_escapeJsString('\';'));
+ }
+
+ public function testEscape_2()
+ {
+ $this->assertEquals('\r\n\\\'<scrIpt></\' + \'script>', PMA_escapeJsString("\r\n'<scrIpt></sCRIPT>"));
+ }
+
+ public function testEscape_3()
+ {
+ $this->assertEquals('\\\';[XSS]', PMA_escapeJsString('\';[XSS]'));
+ }
+
+ public function testEscape_4()
+ {
+ $this->assertEquals('</\' + \'script></head><body>[HTML]', PMA_escapeJsString('</SCRIPT></head><body>[HTML]'));
+ }
+
+ public function testEscape_5()
+ {
+ $this->assertEquals('"\\\'\\\\\\\'"', PMA_escapeJsString('"\'\\\'"'));
+ }
+
+ public function testEscape_6()
+ {
+ $this->assertEquals("\\\\\'\'\'\'\'\'\'\'\'\'\'\'\\\\", PMA_escapeJsString("\\''''''''''''\\"));
+ }
+
+}
+?>
diff --git a/test/PMA_escapeMySqlWildcards_test.php b/test/PMA_escapeMySqlWildcards_test.php
new file mode 100644
index 0000000000..289067c4b5
--- /dev/null
+++ b/test/PMA_escapeMySqlWildcards_test.php
@@ -0,0 +1,86 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Test for MySQL Wildcards escaping/unescaping
+ *
+ * @author Michal Biniek <michal@bystrzyca.pl>
+ * @package phpMyAdmin-test
+ * @version $Id$
+ */
+
+/**
+ * Tests core.
+ */
+require_once 'PHPUnit/Framework.php';
+
+/**
+ * Include to test.
+ */
+require_once './libraries/common.lib.php';
+
+/**
+ * Test MySQL escaping.
+ *
+ */
+class PMA_escapeMySqlWildcards_test extends PHPUnit_Framework_TestCase
+{
+
+ /**
+ * PMA_escape_mysql_wildcards tests
+ */
+
+ public function testEscape_1()
+ {
+ $this->assertEquals('\_test', PMA_escape_mysql_wildcards('_test'));
+ }
+
+ public function testEscape_2()
+ {
+ $this->assertEquals('\_\\', PMA_escape_mysql_wildcards('_\\'));
+ }
+
+ public function testEscape_3()
+ {
+ $this->assertEquals('\\_\%', PMA_escape_mysql_wildcards('_%'));
+ }
+
+ public function testEscape_4()
+ {
+ $this->assertEquals('\\\_', PMA_escape_mysql_wildcards('\_'));
+ }
+
+ public function testEscape_5()
+ {
+ $this->assertEquals('\\\_\\\%', PMA_escape_mysql_wildcards('\_\%'));
+ }
+
+ /**
+ * PMA_unescape_mysql_wildcards tests
+ */
+
+ public function testUnEscape_1()
+ {
+ $this->assertEquals('_test', PMA_unescape_mysql_wildcards('\_test'));
+ }
+
+ public function testUnEscape_2()
+ {
+ $this->assertEquals('_%__%', PMA_unescape_mysql_wildcards('\_\\%\_\_\%'));
+ }
+
+ public function testUnEscape_3()
+ {
+ $this->assertEquals('\_', PMA_unescape_mysql_wildcards('\\\_'));
+ }
+
+ public function testUnEscape_4()
+ {
+ $this->assertEquals('%_', PMA_unescape_mysql_wildcards('%\_'));
+ }
+
+ public function testUnEscape_5()
+ {
+ $this->assertEquals('\%\_', PMA_unescape_mysql_wildcards('\\\%\\\_'));
+ }
+}
+?>
diff --git a/test/PMA_generateCommonUrl_test.php b/test/PMA_generateCommonUrl_test.php
new file mode 100644
index 0000000000..e724924d41
--- /dev/null
+++ b/test/PMA_generateCommonUrl_test.php
@@ -0,0 +1,159 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_generate_common_url()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+require_once './libraries/core.lib.php';
+require_once './libraries/url_generating.lib.php';
+
+class PMA_generate_common_url_test extends PHPUnit_Framework_TestCase
+{
+ public function setUp()
+ {
+ unset($_COOKIE['pma_lang'], $_COOKIE['pma_charset'], $_COOKIE['pma_collation_connection']);
+ }
+
+ public function testOldStyle()
+ {
+ $GLOBALS['server'] = 'x';
+ $GLOBALS['lang'] = 'x';
+ $GLOBALS['convcharset'] = 'x';
+ $GLOBALS['collation_connection'] = 'x';
+ $_SESSION[' PMA_token '] = 'x';
+ $GLOBALS['cfg']['ServerDefault'] = 'y';
+
+ $separator = PMA_get_arg_separator();
+ $expected = 'server=x' . htmlentities($separator)
+ . 'lang=x' . htmlentities($separator)
+ . 'convcharset=x' . htmlentities($separator)
+ . 'collation_connection=x' . htmlentities($separator)
+ . 'token=x'
+ ;
+
+ $expected = 'db=db'
+ . htmlentities($separator) . 'table=table'
+ . htmlentities($separator) . $expected;
+
+ $this->assertEquals($expected, PMA_generate_common_url('db', 'table'));
+ }
+
+ public function testOldStyleDbOnly()
+ {
+ $GLOBALS['server'] = 'x';
+ $GLOBALS['lang'] = 'x';
+ $GLOBALS['convcharset'] = 'x';
+ $GLOBALS['collation_connection'] = 'x';
+ $_SESSION[' PMA_token '] = 'x';
+ $GLOBALS['cfg']['ServerDefault'] = 'y';
+
+ $separator = PMA_get_arg_separator();
+ $expected = 'server=x' . htmlentities($separator)
+ . 'lang=x' . htmlentities($separator)
+ . 'convcharset=x' . htmlentities($separator)
+ . 'collation_connection=x' . htmlentities($separator)
+ . 'token=x'
+ ;
+
+ $expected = 'db=db'
+ . htmlentities($separator) . $expected;
+
+ $this->assertEquals($expected, PMA_generate_common_url('db'));
+ }
+
+ public function testNewStyle()
+ {
+ $GLOBALS['server'] = 'x';
+ $GLOBALS['lang'] = 'x';
+ $GLOBALS['convcharset'] = 'x';
+ $GLOBALS['collation_connection'] = 'x';
+ $_SESSION[' PMA_token '] = 'x';
+ $GLOBALS['cfg']['ServerDefault'] = 'y';
+
+ $separator = PMA_get_arg_separator();
+ $expected = 'server=x' . htmlentities($separator)
+ . 'lang=x' . htmlentities($separator)
+ . 'convcharset=x' . htmlentities($separator)
+ . 'collation_connection=x' . htmlentities($separator)
+ . 'token=x'
+ ;
+
+ $expected = '?db=db'
+ . htmlentities($separator) . 'table=table'
+ . htmlentities($separator) . $expected;
+ $params = array('db' => 'db', 'table' => 'table');
+ $this->assertEquals($expected, PMA_generate_common_url($params));
+ }
+
+ public function testOldStyleWithAlternateSeparator()
+ {
+ $GLOBALS['server'] = 'x';
+ $GLOBALS['lang'] = 'x';
+ $GLOBALS['convcharset'] = 'x';
+ $GLOBALS['collation_connection'] = 'x';
+ $_SESSION[' PMA_token '] = 'x';
+ $GLOBALS['cfg']['ServerDefault'] = 'y';
+
+ $separator = PMA_get_arg_separator();
+ $expected = 'server=x' . htmlentities($separator)
+ . 'lang=x' . htmlentities($separator)
+ . 'convcharset=x' . htmlentities($separator)
+ . 'collation_connection=x' . htmlentities($separator)
+ . 'token=x'
+ ;
+
+ $expected = 'db=db'
+ . htmlentities($separator) . 'table=table'
+ . htmlentities($separator) . $expected;
+ $this->assertEquals($expected, PMA_generate_common_url('db', 'table', '&'));
+ }
+
+ public function testOldStyleWithAlternateSeparatorDbOnly()
+ {
+ $GLOBALS['server'] = 'x';
+ $GLOBALS['lang'] = 'x';
+ $GLOBALS['convcharset'] = 'x';
+ $GLOBALS['collation_connection'] = 'x';
+ $_SESSION[' PMA_token '] = 'x';
+ $GLOBALS['cfg']['ServerDefault'] = 'y';
+
+ $separator = PMA_get_arg_separator();
+ $expected = 'server=x' . htmlentities($separator)
+ . 'lang=x' . htmlentities($separator)
+ . 'convcharset=x' . htmlentities($separator)
+ . 'collation_connection=x' . htmlentities($separator)
+ . 'token=x'
+ ;
+
+ $expected = 'db=db'
+ . htmlentities($separator) . $expected;
+ $this->assertEquals($expected, PMA_generate_common_url('db', '', '&'));
+ }
+
+ public function testDefault()
+ {
+ $GLOBALS['server'] = 'x';
+ $GLOBALS['lang'] = 'x';
+ $GLOBALS['convcharset'] = 'x';
+ $GLOBALS['collation_connection'] = 'x';
+ $_SESSION[' PMA_token '] = 'x';
+ $GLOBALS['cfg']['ServerDefault'] = 'y';
+
+ $separator = PMA_get_arg_separator();
+ $expected = 'server=x' . htmlentities($separator)
+ . 'lang=x' . htmlentities($separator)
+ . 'convcharset=x' . htmlentities($separator)
+ . 'collation_connection=x' . htmlentities($separator)
+ . 'token=x'
+ ;
+ $this->assertEquals($expected, PMA_generate_common_url());
+ }
+}
+?>
diff --git a/test/PMA_get_real_size_test.php b/test/PMA_get_real_size_test.php
new file mode 100644
index 0000000000..71ca5248ed
--- /dev/null
+++ b/test/PMA_get_real_size_test.php
@@ -0,0 +1,43 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_get_real_size()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+require_once './libraries/core.lib.php';
+
+class PMA_get_real_size_test extends PHPUnit_Framework_TestCase
+{
+ public function testNull()
+ {
+ $this->assertEquals(0, PMA_get_real_size('0'));
+ }
+
+ public function testKilobyte()
+ {
+ $this->assertEquals(1024, PMA_get_real_size('1kb'));
+ }
+
+ public function testKilobyte2()
+ {
+ $this->assertEquals(1024 * 1024, PMA_get_real_size('1024k'));
+ }
+
+ public function testMegabyte()
+ {
+ $this->assertEquals(8 * 1024 * 1024, PMA_get_real_size('8m'));
+ }
+
+ public function testGigabyte()
+ {
+ $this->assertEquals(12 * 1024 * 1024 * 1024, PMA_get_real_size('12gb'));
+ }
+}
+?>
diff --git a/test/PMA_isValid_test.php b/test/PMA_isValid_test.php
new file mode 100644
index 0000000000..e33deaed3a
--- /dev/null
+++ b/test/PMA_isValid_test.php
@@ -0,0 +1,112 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_pow()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+require_once './libraries/core.lib.php';
+
+class PMA_isValid_test extends PHPUnit_Framework_TestCase
+{
+ public function testVarNotSetAfterTest()
+ {
+ PMA_isValid($var);
+ $this->assertFalse(isset($var));
+ }
+ public function testNotSet()
+ {
+ $this->assertFalse(PMA_isValid($var));
+ }
+ public function testEmptyString()
+ {
+ $var = '';
+ $this->assertFalse(PMA_isValid($var));
+ }
+ public function testNotEmptyString()
+ {
+ $var = '0';
+ $this->assertTrue(PMA_isValid($var));
+ }
+ public function testZero()
+ {
+ $var = 0;
+ $this->assertTrue(PMA_isValid($var));
+ }
+ public function testNullFail()
+ {
+ $var = null;
+ $this->assertFalse(PMA_isValid($var));
+ }
+ public function testNotSetArray()
+ {
+ $this->assertFalse(PMA_isValid($array['x']));
+ }
+ public function testScalarString()
+ {
+ $var = 'string';
+ $this->assertTrue(PMA_isValid($var, 'scalar'));
+ }
+ public function testScalarInt()
+ {
+ $var = 1;
+ $this->assertTrue(PMA_isValid($var, 'scalar'));
+ }
+ public function testScalarFloat()
+ {
+ $var = 1.1;
+ $this->assertTrue(PMA_isValid($var, 'scalar'));
+ }
+ public function testScalarBool()
+ {
+ $var = true;
+ $this->assertTrue(PMA_isValid($var, 'scalar'));
+ }
+ public function testNotScalarArray()
+ {
+ $var = array('test');
+ $this->assertFalse(PMA_isValid($var, 'scalar'));
+ }
+ public function testNotScalarNull()
+ {
+ $var = null;
+ $this->assertFalse(PMA_isValid($var, 'scalar'));
+ }
+ public function testNumericInt()
+ {
+ $var = 1;
+ $this->assertTrue(PMA_isValid($var, 'numeric'));
+ }
+ public function testNumericFloat()
+ {
+ $var = 1.1;
+ $this->assertTrue(PMA_isValid($var, 'numeric'));
+ }
+ public function testNumericZero()
+ {
+ $var = 0;
+ $this->assertTrue(PMA_isValid($var, 'numeric'));
+ }
+ public function testNumericString()
+ {
+ $var = '+0.1';
+ $this->assertTrue(PMA_isValid($var, 'numeric'));
+ }
+ public function testValueInArray()
+ {
+ $var = 'a';
+ $this->assertTrue(PMA_isValid($var, array('a', 'b', )));
+ }
+ public function testValueNotInArray()
+ {
+ $var = 'c';
+ $this->assertFalse(PMA_isValid($var, array('a', 'b', )));
+ }
+}
+?>
diff --git a/test/PMA_pow_test.php b/test/PMA_pow_test.php
new file mode 100644
index 0000000000..15c0182e54
--- /dev/null
+++ b/test/PMA_pow_test.php
@@ -0,0 +1,80 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_pow()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+require_once './libraries/common.lib.php';
+
+class PMA_pow_test extends PHPUnit_Framework_TestCase
+{
+ public function testIntOverflow()
+ {
+ $this->assertEquals('1267650600228229401496703205376',
+ PMA_pow(2, 100));
+ }
+
+ public function testBcpow()
+ {
+ if (function_exists('bcpow')) {
+ $this->assertEquals('1267650600228229401496703205376',
+ PMA_pow(2, 100, 'bcpow'));
+ } else {
+ $this->markTestSkipped('function bcpow() does not exist');
+ }
+ }
+
+ public function testGmppow()
+ {
+ if (function_exists('gmp_pow')) {
+ $this->assertEquals('1267650600228229401496703205376',
+ PMA_pow(2, 100, 'gmp_pow'));
+ } else {
+ $this->markTestSkipped('function gmp_pow() does not exist');
+ }
+ }
+
+ public function _testNegativeExp()
+ {
+ $this->assertEquals(0.25,
+ PMA_pow(2, -2));
+ }
+
+ public function _testNegativeExpPow()
+ {
+ if (function_exists('pow')) {
+ $this->assertEquals(0.25,
+ PMA_pow(2, -2, 'pow'));
+ } else {
+ $this->markTestSkipped('function pow() does not exist');
+ }
+ }
+
+ public function _testNegativeExpBcpow()
+ {
+ if (function_exists('bcpow')) {
+ $this->assertEquals(0.25,
+ PMA_pow(2, -2, 'bcpow'));
+ } else {
+ $this->markTestSkipped('function bcpow() does not exist');
+ }
+ }
+
+ public function _testNegativeExpGmppow()
+ {
+ if (function_exists('gmp_pow')) {
+ $this->assertEquals(0.25,
+ PMA_pow(2, -2, 'gmp_pow'));
+ } else {
+ $this->markTestSkipped('function gmp_pow() does not exist');
+ }
+ }
+}
+?>
diff --git a/test/PMA_sanitize_test.php b/test/PMA_sanitize_test.php
new file mode 100644
index 0000000000..25168c8f4f
--- /dev/null
+++ b/test/PMA_sanitize_test.php
@@ -0,0 +1,42 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_sanitize()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+require_once './libraries/sanitizing.lib.php';
+
+class PMA_sanitize_test extends PHPUnit_Framework_TestCase
+{
+ public function testXssInHref()
+ {
+ $this->assertEquals('[a@javascript:alert(\'XSS\');@target]link</a>',
+ PMA_sanitize('[a@javascript:alert(\'XSS\');@target]link[/a]'));
+ }
+
+ public function testLink()
+ {
+ $this->assertEquals('<a href="http://www.phpmyadmin.net/" target="target">link</a>',
+ PMA_sanitize('[a@http://www.phpmyadmin.net/@target]link[/a]'));
+ }
+
+ public function testHtmlTags()
+ {
+ $this->assertEquals('&lt;div onclick=""&gt;',
+ PMA_sanitize('<div onclick="">'));
+ }
+
+ public function testBbcoe()
+ {
+ $this->assertEquals('<strong>strong</strong>',
+ PMA_sanitize('[b]strong[/b]'));
+ }
+}
+?>
diff --git a/test/PMA_transformation_getOptions_test.php b/test/PMA_transformation_getOptions_test.php
new file mode 100644
index 0000000000..dba3f6b097
--- /dev/null
+++ b/test/PMA_transformation_getOptions_test.php
@@ -0,0 +1,48 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for PMA_sanitize()
+ *
+ * @version $Id$
+ * @package phpMyAdmin-test
+ */
+
+/**
+ *
+ */
+require_once 'PHPUnit/Framework.php';
+require_once './libraries/transformations.lib.php';
+
+class PMA_transformation_getOptions_test extends PHPUnit_Framework_TestCase
+{
+ public function testDefault()
+ {
+ $this->assertEquals(array('option1 ', ' option2 '),
+ PMA_transformation_getOptions("option1 , option2 "));
+ }
+
+ public function testQuoted()
+ {
+ $this->assertEquals(array('option1', ' option2'),
+ PMA_transformation_getOptions("'option1' ,' option2' "));
+ }
+
+ public function testComma()
+ {
+ $this->assertEquals(array('2,3', ' ,, option ,,'),
+ PMA_transformation_getOptions("'2,3' ,' ,, option ,,' "));
+ }
+
+ public function testEmptyOptions()
+ {
+ $this->assertEquals(array('', '', ''),
+ PMA_transformation_getOptions("'',,"));
+ }
+
+ public function testEmpty()
+ {
+ $this->assertEquals(array(),
+ PMA_transformation_getOptions(''));
+ }
+}
+?>
diff --git a/test/theme.php b/test/theme.php
new file mode 100644
index 0000000000..b6453a40dc
--- /dev/null
+++ b/test/theme.php
@@ -0,0 +1,325 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * theme test
+ *
+ * @uses libraries/common.inc.php global fnctions
+ * @package phpMyAdmin-test
+ * @version $Id$
+ */
+
+chdir('..');
+
+/**
+ * Gets core libraries and defines some variables
+ */
+require_once './libraries/common.inc.php';
+
+$lang_iso_code = $GLOBALS['available_languages'][$GLOBALS['lang']][2];
+
+// start output
+header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="<?php echo $lang_iso_code; ?>"
+ lang="<?php echo $lang_iso_code; ?>"
+ dir="<?php echo $GLOBALS['text_dir']; ?>">
+<head>
+ <title>phpMyAdmin <?php echo PMA_VERSION; ?> -
+ <?php echo htmlspecialchars($HTTP_HOST); ?> - Theme Test</title>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=<?php echo $GLOBALS['charset']; ?>" />
+ <link rel="stylesheet" type="text/css"
+ href="../phpmyadmin.css.php?<?php echo PMA_generate_common_url(); ?>&amp;js_frame=right&amp;nocache=<?php echo $_SESSION['PMA_Config']->getMtime(); ?>" />
+ <link rel="stylesheet" type="text/css" media="print"
+ href="../print.css" />
+ <script src="../js/functions.js" type="text/javascript"></script>
+</head>
+<body>
+<?php
+
+
+$separator = '<span class="separator">'
+ .'<img class="icon" src=../"' . $GLOBALS['pmaThemeImage'] . 'item_ltr.png"'
+ .' width="5" height="9" alt="-" /></span>' . "\n";
+$item = '<a href="%1$s?%2$s" class="item">'
+ .' <img class="icon" src="../' . $GLOBALS['pmaThemeImage'] . '%5$s"'
+ .' width="16" height="16" alt="" /> ' . "\n"
+ .'%4$s: %3$s</a>' . "\n";
+
+echo '<div id="serverinfo">' . "\n";
+printf($item,
+ $GLOBALS['cfg']['DefaultTabServer'],
+ PMA_generate_common_url(),
+ 'Server',
+ $GLOBALS['strServer'],
+ 's_host.png');
+
+echo $separator;
+printf($item,
+ $GLOBALS['cfg']['DefaultTabDatabase'],
+ '',
+ 'Database',
+ $GLOBALS['strDatabase'],
+ 's_db.png');
+
+echo $separator;
+printf($item,
+ $GLOBALS['cfg']['DefaultTabTable'],
+ '',
+ 'Table',
+ (isset($GLOBALS['tbl_is_view']) && $GLOBALS['tbl_is_view']
+ ? $GLOBALS['strView']
+ : $GLOBALS['strTable']),
+ (isset($GLOBALS['tbl_is_view']) && $GLOBALS['tbl_is_view']
+ ? 'b_views'
+ : 's_tbl') . '.png');
+
+echo '<span class="table_comment" id="span_table_comment">'
+ .'&quot;Table comment&quot</span>' . "\n";
+
+echo '</div>';
+
+
+/**
+ * Displays tab links
+ */
+$tabs = array();
+
+$tabs['databases']['icon'] = '../../../../' . $pmaThemeImage . 's_db.png';
+$tabs['databases']['link'] = 'server_databases.php';
+$tabs['databases']['text'] = $strDatabases;
+
+$tabs['sql']['icon'] = '../../../../' . $pmaThemeImage . 'b_sql.png';
+$tabs['sql']['link'] = 'server_sql.php';
+$tabs['sql']['text'] = $strSQL;
+
+$tabs['status']['icon'] = '../../../../' . $pmaThemeImage . 's_status.png';
+$tabs['status']['link'] = 'server_status.php';
+$tabs['status']['text'] = $strStatus;
+
+$tabs['vars']['icon'] = '../../../../' . $pmaThemeImage . 's_vars.png';
+$tabs['vars']['link'] = 'server_variables.php';
+$tabs['vars']['text'] = $strServerTabVariables;
+
+$tabs['charset']['icon'] = '../../../../' . $pmaThemeImage . 's_asci.png';
+$tabs['charset']['link'] = 'server_collations.php';
+$tabs['charset']['text'] = $strCharsets;
+
+$tabs['engine']['icon'] = '../../../../' . $pmaThemeImage . 'b_engine.png';
+$tabs['engine']['link'] = 'server_engines.php';
+$tabs['engine']['text'] = $strEngines;
+
+$tabs['rights']['icon'] = '../../../../' . $pmaThemeImage . 's_rights.png';
+$tabs['rights']['link'] = 'server_privileges.php';
+$tabs['rights']['text'] = $strPrivileges;
+
+$tabs['binlog']['icon'] = '../../../../' . $pmaThemeImage . 's_tbl.png';
+$tabs['binlog']['link'] = 'server_binlog.php';
+$tabs['binlog']['text'] = $strBinaryLog;
+
+$tabs['process']['icon'] = '../../../../' . $pmaThemeImage . 's_process.png';
+$tabs['process']['link'] = 'server_processlist.php';
+$tabs['process']['text'] = 'caution';
+$tabs['process']['class'] = 'caution';
+
+$tabs['export']['icon'] = '../../../../' . $pmaThemeImage . 'b_export.png';
+$tabs['export']['text'] = 'disabled';
+
+$tabs['export2']['icon'] = '../../../../' . $pmaThemeImage . 'b_export.png';
+$tabs['export2']['text'] = 'disabled caution';
+$tabs['export2']['class'] = 'caution';
+
+$tabs['import']['icon'] = '../../../../' . $pmaThemeImage . 'b_import.png';
+$tabs['import']['link'] = 'server_import.php';
+$tabs['import']['text'] = 'active';
+$tabs['import']['class'] = 'active';
+
+echo PMA_getTabs($tabs);
+unset($tabs);
+
+if (@file_exists($pmaThemeImage . 'logo_right.png')) {
+ ?>
+ <img id="pmalogoright" src="../<?php echo $pmaThemeImage; ?>logo_right.png"
+ alt="phpMyAdmin" />
+ <?php
+}
+?>
+<h1>
+<?php
+echo sprintf($strWelcome,
+ '<bdo dir="ltr" xml:lang="en">phpMyAdmin ' . PMA_VERSION . '</bdo>');
+?>
+</h1>
+
+<hr class="clearfloat" />
+
+<form method="post" action="theme.php" target="_parent">
+<fieldset>
+ <legend><?php echo $strTheme; ?></legend>
+<?php
+ echo $_SESSION['PMA_Theme_Manager']->getHtmlSelectBox(false);
+?>
+<noscript><input type="submit" value="Go" style="vertical-align: middle" /></noscript>
+</fieldset>
+</form>
+
+<hr />
+
+<h1>H1 Header</h1>
+<h2>H2 Header</h2>
+<h3>H3 Header</h3>
+<h4>H4 Header</h4>
+
+<div class="success">
+ success message box content!
+</div>
+<div class="success">
+ <h1>Auccess message box header!</h1>
+ success message box content!
+</div>
+
+<div class="notice">
+ notice message box content!
+</div>
+<div class="notice">
+ <h1>Notice message box header!</h1>
+ notice message box content!
+</div>
+
+<div class="warning">
+ warning message box content!
+</div>
+<div class="warning">
+ <h1>Warning message box header!</h1>
+ warning message box content!
+</div>
+
+<div class="error">
+ error message box content!
+</div>
+<div class="error">
+ <h1>Error message box header!</h1>
+ error message box content!
+</div>
+
+<fieldset class="confirmation">
+ <legend>Confirmation fieldset</legend>
+ <tt>QUERY TO EXECUTE;</tt>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="yes" value="YES" />
+ <input type="submit" name="no" value="NO" />
+</fieldset>
+
+<hr />
+
+<div class="success">
+ success message box content!
+</div>
+<code class="sql">
+<span class="syntax">
+<span class="syntax_alpha syntax_alpha_reservedWord">SELECT</span> <span class="syntax_punct">*</span> <br />
+<span class="syntax_alpha syntax_alpha_reservedWord">FROM</span> <span class="syntax_quote syntax_quote_backtick">`test`</span> <span class="syntax_white syntax_white_newline"></span><br />
+<span class="syntax_alpha syntax_alpha_reservedWord">LIMIT</span> <span class="syntax_digit syntax_digit_integer">0</span><span class="syntax_punct syntax_punct_listsep">,</span> <span class="syntax_digit syntax_digit_integer">30</span>;<br />
+<span class="syntax_alpha syntax_alpha_reservedWord">SELECT</span> <span class="syntax_punct">*</span> <br />
+<span class="syntax_alpha syntax_alpha_reservedWord">FROM</span> <span class="syntax_quote syntax_quote_backtick">`test`</span> <span class="syntax_white syntax_white_newline"></span><br />
+<span class="syntax_alpha syntax_alpha_reservedWord">LIMIT</span> <span class="syntax_digit syntax_digit_integer">0</span><span class="syntax_punct syntax_punct_listsep">,</span> <span class="syntax_digit syntax_digit_integer">30</span>;<br />
+<span class="syntax_alpha syntax_alpha_reservedWord">SELECT</span> <span class="syntax_punct">*</span> <br />
+<span class="syntax_alpha syntax_alpha_reservedWord">FROM</span> <span class="syntax_quote syntax_quote_backtick">`test`</span> <span class="syntax_white syntax_white_newline"></span><br />
+<span class="syntax_alpha syntax_alpha_reservedWord">LIMIT</span> <span class="syntax_digit syntax_digit_integer">0</span><span class="syntax_punct syntax_punct_listsep">,</span> <span class="syntax_digit syntax_digit_integer">30</span>;<br />
+<span class="syntax_alpha syntax_alpha_reservedWord">SELECT</span> <span class="syntax_punct">*</span> <br />
+<span class="syntax_alpha syntax_alpha_reservedWord">FROM</span> <span class="syntax_quote syntax_quote_backtick">`test`</span> <span class="syntax_white syntax_white_newline"></span><br />
+<span class="syntax_alpha syntax_alpha_reservedWord">LIMIT</span> <span class="syntax_digit syntax_digit_integer">0</span><span class="syntax_punct syntax_punct_listsep">,</span> <span class="syntax_digit syntax_digit_integer">30</span>;<br />
+</span>
+</code>
+<div class="tools">
+[
+<a href="tbl_sql.php?db=test;table=test;sql_query=SELECT+%2A+FROM+%60test%60;show_query=1;token=266edabf70fa6368498d89b4054d01bf#querybox" onclick="window.parent.focus_querywindow('SELECT * FROM `test`'); return false;">Bearbeiten</a>
+] [
+<a href="import.php?db=test;table=test;sql_query=EXPLAIN+SELECT+%2A+FROM+%60test%60;token=266edabf70fa6368498d89b4054d01bf" >SQL erklären</a>
+] [
+<a href="import.php?db=test;table=test;sql_query=SELECT+%2A+FROM+%60test%60;show_query=1;show_as_php=1;token=266edabf70fa6368498d89b4054d01bf" >PHP-Code erzeugen</a>
+] [
+<a href="import.php?db=test;table=test;sql_query=SELECT+%2A+FROM+%60test%60;show_query=1;token=266edabf70fa6368498d89b4054d01bf" >Aktualisieren</a>
+]</div>
+
+<hr />
+
+<table class="data">
+ <caption>table.data caption</caption>
+ <thead>
+ <tr><th></th>
+ <th>table.data thead tr th</th>
+ <th>table.data thead tr th</th>
+ <th colspan="3">action</th>
+ <th>table.data thead tr th</th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr><th></th>
+ <th>table.data tfoot tr th</th>
+ <th class="value">table.data tfoot tr th</th>
+ <th colspan="3">action</th>
+ <th>table.data tfoot tr th</th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr class="odd">
+ <td><input type="checkbox" id="checkbox_1" name="checkbox_1"
+ value="1" /></td>
+ <th><label for="checkbox_1">th label</label</th>
+ <td class="value">td.value</td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td>table.data tbody tr.odd td</td>
+ </tr>
+ <tr class="even">
+ <td><input type="checkbox" id="checkbox_2" name="checkbox_2"
+ value="1" /></td>
+ <th><label for="checkbox_2">th label</label</th>
+ <td class="value">td.value</td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td>table.data tbody tr.even td</td>
+ </tr>
+ <tr class="odd">
+ <td><input type="checkbox" id="checkbox_3" name="checkbox_3"
+ value="1" /></td>
+ <th><label for="checkbox_3">th label</label</th>
+ <td class="value">td.value</td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td>table.data tbody tr.odd td</td>
+ </tr>
+ <tr class="even">
+ <td><input type="checkbox" id="checkbox_4" name="checkbox_4"
+ value="1" /></td>
+ <th><label for="checkbox_4">th label</label</th>
+ <td class="value">td.value</td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td><img class="icon" src="../<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/bd_drop.png"
+ width="16" height="16" alt="drop" /></td>
+ <td>table.data tbody tr.even td</td>
+ </tr>
+ </tbody>
+</table>
+</body>
+</html>
diff --git a/themes.php b/themes.php
new file mode 100644
index 0000000000..d12c9fe85a
--- /dev/null
+++ b/themes.php
@@ -0,0 +1,45 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * get some globals
+ */
+require_once './libraries/common.inc.php';
+
+/* Theme Select */
+$path_to_themes = $cfg['ThemePath'] . '/';
+
+/* set language and charset */
+require_once './libraries/header_http.inc.php';
+
+/* HTML header */
+$page_title = 'phpMyAdmin - ' . $strTheme;
+require './libraries/header_meta_style.inc.php';
+?>
+<script type="text/javascript" language="javascript">
+// <![CDATA[
+function takeThis(what){
+ if (window.opener && window.opener.document.forms['setTheme'].elements['set_theme']) {
+ window.opener.document.forms['setTheme'].elements['set_theme'].value = what;
+ window.opener.document.forms['setTheme'].submit();
+ self.close();
+ } else {
+ alert('<?php echo sprintf($strNoThemeSupport, $cfg['ThemePath']); ?>');
+ self.close();
+ }
+}
+// ]]>
+</script>
+</head>
+
+<body id="bodythemes">
+<h1>phpMyAdmin - <?php echo $strTheme; ?></h1>
+<?php
+$_SESSION['PMA_Theme_Manager']->printPreviews();
+?>
+</body>
+</html>
diff --git a/themes/darkblue_orange/css/theme_right.css.php b/themes/darkblue_orange/css/theme_right.css.php
new file mode 100644
index 0000000000..2aa77d7eda
--- /dev/null
+++ b/themes/darkblue_orange/css/theme_right.css.php
@@ -0,0 +1,1228 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * main css file from theme Darkblue Orange
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Darkblue_orange
+ */
+
+// unplanned execution path
+if (!defined('PMA_MINIMUM_COMMON')) {
+ exit();
+}
+?>
+/******************************************************************************/
+/* general tags */
+html {
+ font-size: <?php echo (null !== $_SESSION['PMA_Config']->get('fontsize') ? $_SESSION['PMA_Config']->get('fontsize') : $_COOKIE['pma_fontsize']); ?>;
+}
+
+input, select, textarea {
+ font-size: 1em;
+}
+
+body {
+<?php if (! empty($GLOBALS['cfg']['FontFamily'])) { ?>
+ font-family: <?php echo $GLOBALS['cfg']['FontFamily']; ?>;
+<?php } ?>
+ padding: 0;
+ margin: 0.5em;
+ color: <?php echo $GLOBALS['cfg']['MainColor']; ?>;
+ background: <?php echo (isset($_SESSION['userconf']['custom_color']) ? $_SESSION['userconf']['custom_color'] : $GLOBALS['cfg']['MainBackground']); ?>;
+}
+
+<?php if (! empty($GLOBALS['cfg']['FontFamilyFixed'])) { ?>
+textarea, tt, pre, code {
+ font-family: <?php echo $GLOBALS['cfg']['FontFamilyFixed']; ?>;
+}
+<?php } ?>
+h1 {
+ font-size: 180%;
+ font-weight: bold;
+}
+
+h2 {
+ font-size: 130%;
+ font-weight: bold;
+}
+
+h3 {
+ font-size: 120%;
+ font-weight: bold;
+}
+
+pre, tt, code {
+ font-size: 110%;
+}
+
+a:link,
+a:visited,
+a:active {
+ text-decoration: none;
+ color: #333399;
+}
+
+a:hover {
+ text-decoration: underline;
+ color: #cc0000;
+}
+
+dfn {
+ font-style: normal;
+}
+
+dfn:hover {
+ font-style: normal;
+ cursor: help;
+}
+
+th {
+ font-weight: bold;
+ color: <?php echo $GLOBALS['cfg']['ThColor']; ?>;
+ background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+}
+
+th a:link,
+th a:active,
+th a:visited {
+ color: <?php echo $GLOBALS['cfg']['ThColor']; ?>;
+ text-decoration: underline;
+}
+
+th a:hover {
+ color: #666666;
+ text-decoration: none;
+}
+
+a img {
+ border: 0;
+}
+
+hr {
+ color: #666699;
+ background-color: #6666cc;
+ border: 0;
+ height: 1px;
+}
+
+form {
+ padding: 0;
+ margin: 0;
+ display: inline;
+}
+
+textarea {
+ overflow: visible;
+ height: <?php echo ceil($GLOBALS['cfg']['TextareaRows'] * 1.2); ?>em;
+}
+
+fieldset {
+ margin-top: 1em;
+ border: #666699 solid 1px;
+ padding: 0.5em;
+}
+
+fieldset fieldset {
+ margin: 0.8em;
+}
+
+fieldset legend {
+ background: <?php echo $GLOBALS['cfg']['MainBackground']; ?>;
+ font-weight: bold;
+ color: #444444;
+ padding: 2px 2px 2px 2px;
+}
+
+/* buttons in some browsers (eg. Konqueror) are block elements,
+ this breaks design */
+button {
+ display: inline;
+}
+
+table caption,
+table th,
+table td {
+ padding: 0.1em 0.5em 0.1em 0.5em;
+ margin: 0.1em;
+ vertical-align: top;
+}
+
+img,
+input,
+select,
+button {
+ vertical-align: middle;
+}
+
+
+/******************************************************************************/
+/* classes */
+div.tools {
+ border: 1px solid #000000;
+ padding: 0.2em;
+}
+
+div.tools,
+fieldset.tblFooters {
+ margin-top: 0;
+ margin-bottom: 0.5em;
+ /* avoid a thick line since this should be used under another fieldset */
+ border-top: 0;
+ text-align: <?php echo $right; ?>;
+ float: none;
+ clear: both;
+}
+
+fieldset .formelement {
+ float: <?php echo $left; ?>;
+ margin-<?php echo $right; ?>: 0.5em;
+ /* IE */
+ white-space: nowrap;
+}
+
+/* revert for Gecko */
+fieldset div[class=formelement] {
+ white-space: normal;
+}
+
+button.mult_submit {
+ border: none;
+ background-color: transparent;
+}
+
+/* odd items 1,3,5,7,... */
+table tr.odd th,
+.odd {
+ background: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+}
+
+/* even items 2,4,6,8,... */
+table tr.even th,
+.even {
+ background: <?php echo $GLOBALS['cfg']['BgTwo']; ?>;
+}
+
+/* odd table rows 1,3,5,7,... */
+table tr.odd th,
+table tr.odd {
+ background-image: none;
+ background: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+ text-align: <?php echo $left; ?>;
+}
+
+/* even table rows 2,4,6,8,... */
+table tr.even th,
+table tr.even {
+ background-image: none;
+ background: <?php echo $GLOBALS['cfg']['BgTwo']; ?>;
+ text-align: <?php echo $left; ?>;
+}
+
+<?php if ($GLOBALS['cfg']['BrowseMarkerEnable']) { ?>
+/* marked table rows */
+table tr.marked th,
+table tr.marked {
+ background: <?php echo $GLOBALS['cfg']['BrowseMarkerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowseMarkerColor']; ?>;
+}
+<?php } ?>
+
+<?php if ($GLOBALS['cfg']['BrowsePointerEnable']) { ?>
+/* hovered items */
+.odd:hover,
+.even:hover,
+.hover {
+ background: <?php echo $GLOBALS['cfg']['BrowsePointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowsePointerColor']; ?>;
+}
+
+/* hovered table rows */
+table tr.odd:hover th,
+table tr.even:hover th,
+table tr.hover th {
+ background: <?php echo $GLOBALS['cfg']['BrowsePointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowsePointerColor']; ?>;
+}
+<?php } ?>
+
+/**
+ * marks table rows/cells if the db field is in a where condition
+ */
+tr.condition th,
+tr.condition td,
+td.condition,
+th.condition {
+ border: 1px solid <?php echo $GLOBALS['cfg']['BrowseMarkerBackground']; ?>;
+}
+
+table .value {
+ text-align: <?php echo $right; ?>;
+ white-space: normal;
+}
+/* IE doesnt handles 'pre' right */
+table [class=value] {
+ white-space: normal;
+}
+
+
+<?php if (! empty($GLOBALS['cfg']['FontFamilyFixed'])) { ?>
+.value {
+ font-family: <?php echo $GLOBALS['cfg']['FontFamilyFixed']; ?>;
+}
+<?php } ?>
+.value .attention {
+ color: red;
+ font-weight: bold;
+}
+.value .allfine {
+ color: green;
+}
+
+
+img.lightbulb {
+ cursor: pointer;
+}
+
+.pdflayout {
+ overflow: hidden;
+ clip: inherit;
+ background-color: #FFFFFF;
+ display: none;
+ border: 1px solid #000000;
+ position: relative;
+}
+
+.pdflayout_table {
+ background: #ff9900;
+ color: #000000;
+ overflow: hidden;
+ clip: inherit;
+ z-index: 2;
+ display: inline;
+ visibility: inherit;
+ cursor: move;
+ position: absolute;
+ font-size: 110%;
+ border: 1px dashed #000000;
+}
+
+/* MySQL Parser */
+.syntax {
+}
+
+.syntax_comment {
+ padding-left: 4pt;
+ padding-right: 4pt;
+}
+
+.syntax_digit {
+}
+
+.syntax_digit_hex {
+}
+
+.syntax_digit_integer {
+}
+
+.syntax_digit_float {
+}
+
+.syntax_punct {
+}
+
+.syntax_alpha {
+}
+
+.syntax_alpha_columnType {
+ text-transform: uppercase;
+}
+
+.syntax_alpha_columnAttrib {
+ text-transform: uppercase;
+}
+
+.syntax_alpha_reservedWord {
+ text-transform: uppercase;
+ font-weight: bold;
+}
+
+.syntax_alpha_functionName {
+ text-transform: uppercase;
+}
+
+.syntax_alpha_identifier {
+}
+
+.syntax_alpha_charset {
+}
+
+.syntax_alpha_variable {
+}
+
+.syntax_quote {
+ white-space: pre;
+}
+
+.syntax_quote_backtick {
+}
+
+/* leave some space between icons and text */
+.icon {
+ vertical-align: middle;
+ margin-right: 0.3em;
+ margin-left: 0.3em;
+}
+/* no extra space in table cells */
+td .icon {
+ margin: 0;
+}
+
+.selectallarrow {
+ margin-<?php echo $right; ?>: 0.3em;
+ margin-<?php echo $left; ?>: 0.6em;
+}
+
+/* message boxes: warning, error, confirmation */
+.success h1,
+.notice h1,
+.warning h1,
+div.error h1 {
+ border-bottom: 2px solid;
+ font-weight: bold;
+ text-align: <?php echo $left; ?>;
+ margin: 0 0 0.2em 0;
+}
+
+div.success,
+div.notice,
+div.warning,
+div.error {
+ margin: 0.3em 0 0 0;
+ border: 2px solid;
+ width: 90%;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-repeat: no-repeat;
+ <?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
+ background-position: 10px 50%;
+ padding: 0.1em 0.1em 0.1em 36px;
+ <?php } else { ?>
+ background-position: 99% 50%;
+ padding: 10px 5% 10px 10px;
+ <?php } ?>
+ <?php } else { ?>
+ padding: 0.3em;
+ <?php } ?>
+}
+
+.success {
+ color: #000000;
+ background-color: #f0fff0;
+}
+h1.success,
+div.success {
+ border-color: #00FF00;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_success.png);
+ <?php } ?>
+}
+.success h1 {
+ border-color: #00FF00;
+}
+
+.notice {
+ color: #000000;
+ background-color: #FFFFDD;
+}
+h1.notice,
+div.notice {
+ border-color: #FFD700;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_notice.png);
+ <?php } ?>
+}
+.notice h1 {
+ border-color: #FFD700;
+}
+
+.warning {
+ color: #CC0000;
+ background-color: #FFFFCC;
+}
+p.warning,
+h1.warning,
+div.warning {
+ border-color: #CC0000;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_warn.png);
+ <?php } ?>
+}
+.warning h1 {
+ border-color: #cc0000;
+}
+
+.error {
+ background-color: #FFFFCC;
+ color: #ff0000;
+}
+
+h1.error,
+div.error {
+ border-color: #ff0000;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_error.png);
+ <?php } ?>
+}
+div.error h1 {
+ border-color: #ff0000;
+}
+
+.confirmation {
+ background-color: #FFFFCC;
+}
+fieldset.confirmation {
+ border: 0.1em solid #FF0000;
+}
+fieldset.confirmation legend {
+ border-left: 0.1em solid #FF0000;
+ border-right: 0.1em solid #FF0000;
+ font-weight: bold;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_really.png);
+ background-repeat: no-repeat;
+ <?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
+ background-position: 5px 50%;
+ padding: 0.2em 0.2em 0.2em 25px;
+ <?php } else { ?>
+ background-position: 97% 50%;
+ padding: 0.2em 25px 0.2em 0.2em;
+ <?php } ?>
+ <?php } ?>
+}
+/* end messageboxes */
+
+
+.tblcomment {
+ font-weight: normal;
+ color: #000099;
+}
+
+.tblHeaders {
+ font-weight: bold;
+ color: <?php echo $GLOBALS['cfg']['ThColor']; ?>;
+ background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+}
+
+div.tools,
+.tblFooters {
+ font-weight: normal;
+ color: <?php echo $GLOBALS['cfg']['ThColor']; ?>;
+ background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+}
+
+.tblHeaders a:link,
+.tblHeaders a:active,
+.tblHeaders a:visited,
+div.tools a:link,
+div.tools a:visited,
+div.tools a:active,
+.tblFooters a:link,
+.tblFooters a:active,
+.tblFooters a:visited {
+ color: #ffffcc;
+ text-decoration: underline;
+}
+
+.tblHeaders a:hover,
+div.tools a:hover,
+.tblFooters a:hover {
+ text-decoration: none;
+ color: #ffffff;
+}
+
+/* forbidden, no privilegs */
+.noPrivileges {
+ color: #cc0000;
+ font-weight: bold;
+}
+
+/* disabled text */
+.disabled,
+.disabled a:link,
+.disabled a:active,
+.disabled a:visited {
+ color: #666666;
+}
+
+.disabled a:hover {
+ color: #666666;
+ text-decoration: none;
+}
+
+tr.disabled td,
+td.disabled {
+ background-color: #cccccc;
+}
+
+/**
+ * login form
+ */
+body.loginform h1,
+body.loginform a.logo {
+ display: block;
+ text-align: center;
+}
+
+body.loginform {
+ text-align: center;
+}
+
+body.loginform div.container {
+ text-align: <?php echo $left; ?>;
+ width: 30em;
+ margin: 0 auto;
+}
+
+form.login label {
+ float: <?php echo $left; ?>;
+ width: 10em;
+ font-weight: bolder;
+}
+
+
+/******************************************************************************/
+/* specific elements */
+
+/* topmenu */
+ul#topmenu {
+ font-weight: bold;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+ul#topmenu li {
+ float: <?php echo $left; ?>;
+ margin: 0;
+ padding: 0;
+ vertical-align: middle;
+}
+
+#topmenu img {
+ vertical-align: middle;
+ margin-<?php echo $right; ?>: 0.1em;
+}
+
+/* default tab styles */
+.tab, .tabcaution, .tabactive {
+ display: block;
+ margin: 0.2em 0.2em 0 0.2em;
+ padding: 0.2em 0.2em 0 0.2em;
+ white-space: nowrap;
+}
+
+/* disabled tabs */
+span.tab {
+ color: #666666;
+}
+
+/* disabled drop/empty tabs */
+span.tabcaution {
+ color: #ff6666;
+}
+
+/* enabled drop/empty tabs */
+a.tabcaution {
+ color: #FF0000;
+}
+a.tabcaution:hover {
+ color: #FFFFFF;
+ background-color: #FF0000;
+}
+
+<?php if ($GLOBALS['cfg']['LightTabs']) { ?>
+/* active tab */
+a.tabactive {
+ color: black;
+}
+<?php } else { ?>
+#topmenu {
+ margin-top: 0.5em;
+ padding: 0.1em 0.3em 0.1em 0.3em;
+}
+
+ul#topmenu li {
+ border-bottom: 1pt solid black;
+}
+
+/* default tab styles */
+.tab, .tabcaution, .tabactive {
+ background-color: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+ border: 1pt solid <?php echo $GLOBALS['cfg']['BgTwo']; ?>;
+ border-bottom: 0;
+ border-top-left-radius: 0.4em;
+ border-top-right-radius: 0.4em;
+}
+
+/* enabled hover/active tabs */
+a.tab:hover,
+a.tabcaution:hover,
+.tabactive,
+.tabactive:hover {
+ margin: 0;
+ padding: 0.2em 0.4em 0.2em 0.4em;
+ text-decoration: none;
+}
+
+a.tab:hover,
+.tabactive {
+ background-color: <?php echo $GLOBALS['cfg']['MainBackground']; ?>;
+}
+
+/* to be able to cancel the bottom border, use <li class="active"> */
+ul#topmenu li.active {
+ border-bottom: 1pt solid <?php echo $GLOBALS['cfg']['MainBackground']; ?>;
+}
+
+/* disabled drop/empty tabs */
+span.tab,
+a.warning,
+span.tabcaution {
+ cursor: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>error.ico), default;
+}
+<?php } ?>
+/* end topmenu */
+
+
+/* Calendar */
+table.calendar {
+ width: 100%;
+}
+table.calendar td {
+ text-align: center;
+}
+table.calendar td a {
+ display: block;
+}
+
+table.calendar td a:hover {
+ background-color: #CCFFCC;
+}
+
+table.calendar th {
+ background-color: #D3DCE3;
+}
+
+table.calendar td.selected {
+ background-color: #FFCC99;
+}
+
+img.calendar {
+ border: none;
+}
+form.clock {
+ text-align: center;
+}
+/* end Calendar */
+
+
+/* table stats */
+div#tablestatistics {
+ border-bottom: 0.1em solid #669999;
+ margin-bottom: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+div#tablestatistics table {
+ float: <?php echo $left; ?>;
+ margin-bottom: 0.5em;
+ margin-<?php echo $right; ?>: 0.5em;
+}
+
+div#tablestatistics table caption {
+ margin-<?php echo $right; ?>: 0.5em;
+}
+/* END table stats */
+
+
+/* server privileges */
+#tableuserrights td,
+#tablespecificuserrights td,
+#tabledatabases td {
+ vertical-align: middle;
+}
+/* END server privileges */
+
+
+
+/* Heading */
+#serverinfo {
+ font-weight: bold;
+ margin-bottom: 0.5em;
+}
+
+#serverinfo .item {
+ white-space: nowrap;
+}
+
+#span_table_comment {
+ font-weight: normal;
+ font-style: italic;
+ white-space: nowrap;
+}
+
+#serverinfo img {
+ margin: 0 0.1em 0 0.1em;
+}
+
+/* some styles for IDs: */
+#buttonNo {
+ color: #CC0000;
+ font-weight: bold;
+ padding: 0 10px 0 10px;
+}
+
+#buttonYes {
+ color: #006600;
+ font-weight: bold;
+ padding: 0 10px 0 10px;
+}
+
+#buttonGo {
+ color: #006600;
+ font-weight: bold;
+ padding: 0 10px 0 10px;
+}
+
+#listTable {
+ width: 260px;
+}
+
+#textSqlquery {
+ width: 450px;
+}
+
+#textSQLDUMP {
+ width: 95%;
+ height: 95%;
+ font-family: "Courier New", Courier, mono;
+ font-size: 110%;
+}
+
+#TooltipContainer {
+ position: absolute;
+ z-index: 99;
+ width: 20em;
+ height: auto;
+ overflow: visible;
+ visibility: hidden;
+ background-color: #ffffcc;
+ color: #006600;
+ border: 0.1em solid #000000;
+ padding: 0.5em;
+}
+
+/* user privileges */
+#fieldset_add_user_login div.item {
+ border-bottom: 1px solid silver;
+ padding-bottom: 0.3em;
+ margin-bottom: 0.3em;
+}
+
+#fieldset_add_user_login label {
+ float: <?php echo $left; ?>;
+ display: block;
+ width: 10em;
+ max-width: 100%;
+ text-align: <?php echo $right; ?>;
+ padding-<?php echo $right; ?>: 0.5em;
+}
+
+#fieldset_add_user_login span.options #select_pred_username,
+#fieldset_add_user_login span.options #select_pred_hostname,
+#fieldset_add_user_login span.options #select_pred_password {
+ width: 100%;
+ max-width: 100%;
+}
+
+#fieldset_add_user_login span.options {
+ float: <?php echo $left; ?>;
+ display: block;
+ width: 12em;
+ max-width: 100%;
+ padding-<?php echo $right; ?>: 0.5em;
+}
+
+#fieldset_add_user_login input {
+ width: 12em;
+ clear: <?php echo $right; ?>;
+ max-width: 100%;
+}
+
+#fieldset_add_user_login span.options input {
+ width: auto;
+}
+
+#fieldset_user_priv div.item {
+ float: <?php echo $left; ?>;
+ width: 9em;
+ max-width: 100%;
+}
+
+#fieldset_user_priv div.item div.item {
+ float: none;
+}
+
+#fieldset_user_priv div.item label {
+ white-space: nowrap;
+}
+
+#fieldset_user_priv div.item select {
+ width: 100%;
+}
+
+#fieldset_user_global_rights fieldset {
+ float: <?php echo $left; ?>;
+}
+/* END user privileges */
+
+
+/* serverstatus */
+div#serverstatus table caption a.top {
+ float: <?php echo $right; ?>;
+}
+
+div#serverstatus div#serverstatusqueriesdetails table,
+div#serverstatus table#serverstatustraffic,
+div#serverstatus table#serverstatusconnections {
+ float: <?php echo $left; ?>;
+}
+
+#serverstatussection,
+.clearfloat {
+ clear: both;
+}
+div#serverstatussection table {
+ width: 100%;
+ margin-bottom: 1em;
+}
+div#serverstatussection table .name {
+ width: 18em;
+}
+div#serverstatussection table .value {
+ width: 6em;
+}
+
+div#serverstatus table tbody td.descr a,
+div#serverstatus table .tblFooters a {
+ white-space: nowrap;
+}
+div#serverstatus div#statuslinks a:before,
+div#serverstatus div#sectionlinks a:before,
+div#serverstatus table tbody td.descr a:before,
+div#serverstatus table .tblFooters a:before {
+ content: '[';
+}
+div#serverstatus div#statuslinks a:after,
+div#serverstatus div#sectionlinks a:after,
+div#serverstatus table tbody td.descr a:after,
+div#serverstatus table .tblFooters a:after {
+ content: ']';
+}
+/* end serverstatus */
+
+/* querywindow */
+body#bodyquerywindow {
+ margin: 0;
+ padding: 0;
+ background-image: none;
+ background-color: #F5F5F5;
+}
+
+div#querywindowcontainer {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+}
+
+div#querywindowcontainer fieldset {
+ margin-top: 0;
+}
+/* END querywindow */
+
+
+/* querybox */
+
+div#sqlquerycontainer {
+ float: <?php echo $left; ?>;
+ width: 69%;
+ /* height: 15em; */
+}
+
+div#tablefieldscontainer {
+ float: <?php echo $right; ?>;
+ width: 29%;
+ /* height: 15em; */
+}
+
+div#tablefieldscontainer select {
+ width: 100%;
+ /* height: 12em; */
+}
+
+textarea#sqlquery {
+ width: 100%;
+ /* height: 100%; */
+}
+
+div#queryboxcontainer div#bookmarkoptions {
+ margin-top: 0.5em;
+}
+/* end querybox */
+
+/* main page */
+#maincontainer {
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>logo_right.png);
+ background-position: <?php echo $right; ?> bottom;
+ background-repeat: no-repeat;
+}
+
+#mysqlmaininformation,
+#pmamaininformation {
+ float: <?php echo $left; ?>;
+ width: 49%;
+}
+
+#maincontainer ul {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>item_<?php echo $GLOBALS['text_dir']; ?>.png);
+ vertical-align: middle;
+}
+
+#maincontainer li {
+ margin-bottom: 0.3em;
+}
+/* END main page */
+
+
+<?php if ($GLOBALS['cfg']['MainPageIconic']) { ?>
+/* iconic view for ul items */
+li#li_create_database {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_newdb.png);
+}
+
+li#li_select_lang {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_lang.png);
+}
+
+li#li_select_mysql_collation,
+li#li_select_mysql_charset {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_asci.png);
+}
+
+li#li_select_theme{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_theme.png);
+}
+
+li#li_server_info,
+li#li_server_version{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_host.png);
+}
+
+li#li_user_info{
+ /* list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_rights.png); */
+}
+
+li#li_mysql_status{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_status.png);
+}
+
+li#li_mysql_variables{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_vars.png);
+}
+
+li#li_mysql_processes{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_process.png);
+}
+
+li#li_mysql_collations{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_asci.png);
+}
+
+li#li_mysql_engines{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_engine.png);
+}
+
+li#li_mysql_binlogs {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_tbl.png);
+}
+
+li#li_mysql_databases {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_db.png);
+}
+
+li#li_export {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_export.png);
+}
+
+li#li_import {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_import.png);
+}
+
+li#li_change_password {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_passwd.png);
+}
+
+li#li_log_out {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_loggoff.png);
+}
+
+li#li_pma_docs,
+li#li_pma_wiki {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_docs.png);
+}
+
+li#li_phpinfo {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>php_sym.png);
+}
+
+li#li_pma_homepage {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_home.png);
+}
+
+li#li_mysql_privilegs{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_rights.png);
+}
+
+li#li_switch_dbstats {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_dbstatistics.png);
+}
+
+li#li_flush_privileges {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_reload.png);
+}
+/* END iconic view for ul items */
+<?php } /* end if $GLOBALS['cfg']['MainPageIconic'] */ ?>
+
+
+#body_browse_foreigners {
+ background: <?php echo $GLOBALS['cfg']['NaviBackground']; ?>;
+ margin: 0.5em 0.5em 0 0.5em;
+}
+
+#bodyquerywindow {
+ background: <?php echo $GLOBALS['cfg']['NaviBackground']; ?>;
+}
+
+#bodythemes {
+ width: 500px;
+ margin: auto;
+ text-align: center;
+}
+
+#bodythemes img {
+ border: 0.1em solid black;
+}
+
+#bodythemes a:hover img {
+ border: 0.1em solid red;
+}
+
+#fieldset_select_fields {
+ float: <?php echo $left; ?>;
+}
+
+#selflink {
+ clear: both;
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ width: 100%;
+ border-top: 0.1em solid silver;
+ text-align: <?php echo $right; ?>;
+}
+
+#table_innodb_bufferpool_usage,
+#table_innodb_bufferpool_activity {
+ float: <?php echo $left; ?>;
+}
+
+#div_mysql_charset_collations table {
+ float: <?php echo $left; ?>;
+}
+
+#div_table_order {
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#div_table_rename {
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#div_table_copy, #div_partition_maintenance, #div_referential_integrity, #div_table_maintenance {
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#div_table_options {
+ clear: both;
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#qbe_div_table_list {
+ float: <?php echo $left; ?>;
+}
+
+#qbe_div_sql_query {
+ float: <?php echo $left; ?>;
+}
+
+label.desc {
+ width: 30em;
+ float: <?php echo $left; ?>;
+}
+
+code.sql {
+ display: block;
+ padding: 0.3em;
+ margin-top: 0;
+ margin-bottom: 0;
+ border: <?php echo $GLOBALS['cfg']['MainColor']; ?> solid 1px;
+ border-top: 0;
+ border-bottom: 0;
+ max-height: 10em;
+ overflow: auto;
+ background: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+}
+
+#main_pane_left {
+ width: 60%;
+ float: <?php echo $left; ?>;
+ padding-top: 1em;
+}
+
+#main_pane_right {
+ margin-<?php echo $left; ?>: 60%;
+ padding-top: 1em;
+ padding-<?php echo $left; ?>: 1em;
+}
+
+.group {
+ border-<?php echo $left; ?>: 0.3em solid <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+ margin-bottom: 1em;
+}
+
+.group h2 {
+ background-color: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+ padding: 0.1em 0.3em;
+ margin-top: 0;
+}
+
+#li_select_server {
+ padding-bottom: 0.3em;
+ border-bottom: 0.3em solid <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+ margin-bottom: 0.3em;
+}
diff --git a/themes/darkblue_orange/img/arrow_ltr.png b/themes/darkblue_orange/img/arrow_ltr.png
new file mode 100644
index 0000000000..8cdb8ca172
--- /dev/null
+++ b/themes/darkblue_orange/img/arrow_ltr.png
Binary files differ
diff --git a/themes/darkblue_orange/img/arrow_rtl.png b/themes/darkblue_orange/img/arrow_rtl.png
new file mode 100644
index 0000000000..6b70c4eb77
--- /dev/null
+++ b/themes/darkblue_orange/img/arrow_rtl.png
Binary files differ
diff --git a/themes/darkblue_orange/img/asc_order.png b/themes/darkblue_orange/img/asc_order.png
new file mode 100644
index 0000000000..59cb2cb65c
--- /dev/null
+++ b/themes/darkblue_orange/img/asc_order.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_bookmark.png b/themes/darkblue_orange/img/b_bookmark.png
new file mode 100644
index 0000000000..5fa332089e
--- /dev/null
+++ b/themes/darkblue_orange/img/b_bookmark.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_browse.png b/themes/darkblue_orange/img/b_browse.png
new file mode 100644
index 0000000000..744cfcd68c
--- /dev/null
+++ b/themes/darkblue_orange/img/b_browse.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_calendar.png b/themes/darkblue_orange/img/b_calendar.png
new file mode 100644
index 0000000000..90829a353c
--- /dev/null
+++ b/themes/darkblue_orange/img/b_calendar.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_comment.png b/themes/darkblue_orange/img/b_comment.png
new file mode 100644
index 0000000000..6f6da0c83c
--- /dev/null
+++ b/themes/darkblue_orange/img/b_comment.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_dbstatistics.png b/themes/darkblue_orange/img/b_dbstatistics.png
new file mode 100644
index 0000000000..b04e813b0f
--- /dev/null
+++ b/themes/darkblue_orange/img/b_dbstatistics.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_deltbl.png b/themes/darkblue_orange/img/b_deltbl.png
new file mode 100644
index 0000000000..1c450fad6f
--- /dev/null
+++ b/themes/darkblue_orange/img/b_deltbl.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_docs.png b/themes/darkblue_orange/img/b_docs.png
new file mode 100644
index 0000000000..4654c06fbc
--- /dev/null
+++ b/themes/darkblue_orange/img/b_docs.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_docsql.png b/themes/darkblue_orange/img/b_docsql.png
new file mode 100644
index 0000000000..badb78d1cb
--- /dev/null
+++ b/themes/darkblue_orange/img/b_docsql.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_drop.png b/themes/darkblue_orange/img/b_drop.png
new file mode 100644
index 0000000000..6fc4d3b203
--- /dev/null
+++ b/themes/darkblue_orange/img/b_drop.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_edit.png b/themes/darkblue_orange/img/b_edit.png
new file mode 100644
index 0000000000..05711a0948
--- /dev/null
+++ b/themes/darkblue_orange/img/b_edit.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_empty.png b/themes/darkblue_orange/img/b_empty.png
new file mode 100644
index 0000000000..b4c30f9515
--- /dev/null
+++ b/themes/darkblue_orange/img/b_empty.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_engine.png b/themes/darkblue_orange/img/b_engine.png
new file mode 100644
index 0000000000..d47891835f
--- /dev/null
+++ b/themes/darkblue_orange/img/b_engine.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_export.png b/themes/darkblue_orange/img/b_export.png
new file mode 100644
index 0000000000..03c1369961
--- /dev/null
+++ b/themes/darkblue_orange/img/b_export.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_firstpage.png b/themes/darkblue_orange/img/b_firstpage.png
new file mode 100644
index 0000000000..d172f4ec91
--- /dev/null
+++ b/themes/darkblue_orange/img/b_firstpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_ftext.png b/themes/darkblue_orange/img/b_ftext.png
new file mode 100644
index 0000000000..9247c31041
--- /dev/null
+++ b/themes/darkblue_orange/img/b_ftext.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_help.png b/themes/darkblue_orange/img/b_help.png
new file mode 100644
index 0000000000..82a55ce372
--- /dev/null
+++ b/themes/darkblue_orange/img/b_help.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_home.png b/themes/darkblue_orange/img/b_home.png
new file mode 100644
index 0000000000..74e711b91e
--- /dev/null
+++ b/themes/darkblue_orange/img/b_home.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_import.png b/themes/darkblue_orange/img/b_import.png
new file mode 100644
index 0000000000..6f8c8611f7
--- /dev/null
+++ b/themes/darkblue_orange/img/b_import.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_index.png b/themes/darkblue_orange/img/b_index.png
new file mode 100644
index 0000000000..8f7373cbd4
--- /dev/null
+++ b/themes/darkblue_orange/img/b_index.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_info.png b/themes/darkblue_orange/img/b_info.png
new file mode 100644
index 0000000000..09be193820
--- /dev/null
+++ b/themes/darkblue_orange/img/b_info.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_insrow.png b/themes/darkblue_orange/img/b_insrow.png
new file mode 100644
index 0000000000..3913b4a652
--- /dev/null
+++ b/themes/darkblue_orange/img/b_insrow.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_lastpage.png b/themes/darkblue_orange/img/b_lastpage.png
new file mode 100644
index 0000000000..c3ca09654e
--- /dev/null
+++ b/themes/darkblue_orange/img/b_lastpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_minus.png b/themes/darkblue_orange/img/b_minus.png
new file mode 100644
index 0000000000..bd87ad5860
--- /dev/null
+++ b/themes/darkblue_orange/img/b_minus.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_newdb.png b/themes/darkblue_orange/img/b_newdb.png
new file mode 100644
index 0000000000..6b27550de3
--- /dev/null
+++ b/themes/darkblue_orange/img/b_newdb.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_newtbl.png b/themes/darkblue_orange/img/b_newtbl.png
new file mode 100644
index 0000000000..5b163990f0
--- /dev/null
+++ b/themes/darkblue_orange/img/b_newtbl.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_nextpage.png b/themes/darkblue_orange/img/b_nextpage.png
new file mode 100644
index 0000000000..57482d3590
--- /dev/null
+++ b/themes/darkblue_orange/img/b_nextpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_pdfdoc.png b/themes/darkblue_orange/img/b_pdfdoc.png
new file mode 100644
index 0000000000..281bdf1b6c
--- /dev/null
+++ b/themes/darkblue_orange/img/b_pdfdoc.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_plus.png b/themes/darkblue_orange/img/b_plus.png
new file mode 100644
index 0000000000..84b1d688d5
--- /dev/null
+++ b/themes/darkblue_orange/img/b_plus.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_prevpage.png b/themes/darkblue_orange/img/b_prevpage.png
new file mode 100644
index 0000000000..51d47a4015
--- /dev/null
+++ b/themes/darkblue_orange/img/b_prevpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_primary.png b/themes/darkblue_orange/img/b_primary.png
new file mode 100644
index 0000000000..7dcef33322
--- /dev/null
+++ b/themes/darkblue_orange/img/b_primary.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_print.png b/themes/darkblue_orange/img/b_print.png
new file mode 100644
index 0000000000..0f259ebf9e
--- /dev/null
+++ b/themes/darkblue_orange/img/b_print.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_props.png b/themes/darkblue_orange/img/b_props.png
new file mode 100644
index 0000000000..9799eaff29
--- /dev/null
+++ b/themes/darkblue_orange/img/b_props.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_relations.png b/themes/darkblue_orange/img/b_relations.png
new file mode 100644
index 0000000000..265510c11a
--- /dev/null
+++ b/themes/darkblue_orange/img/b_relations.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_save.png b/themes/darkblue_orange/img/b_save.png
new file mode 100644
index 0000000000..b89b1c0e6f
--- /dev/null
+++ b/themes/darkblue_orange/img/b_save.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_sbrowse.png b/themes/darkblue_orange/img/b_sbrowse.png
new file mode 100644
index 0000000000..4dc16720c5
--- /dev/null
+++ b/themes/darkblue_orange/img/b_sbrowse.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_sdb.png b/themes/darkblue_orange/img/b_sdb.png
new file mode 100644
index 0000000000..3d3c3a7ba0
--- /dev/null
+++ b/themes/darkblue_orange/img/b_sdb.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_search.png b/themes/darkblue_orange/img/b_search.png
new file mode 100644
index 0000000000..24e1ec6263
--- /dev/null
+++ b/themes/darkblue_orange/img/b_search.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_selboard.png b/themes/darkblue_orange/img/b_selboard.png
new file mode 100644
index 0000000000..3fa6e3dbd9
--- /dev/null
+++ b/themes/darkblue_orange/img/b_selboard.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_select.png b/themes/darkblue_orange/img/b_select.png
new file mode 100644
index 0000000000..fcb646a7af
--- /dev/null
+++ b/themes/darkblue_orange/img/b_select.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_sql.png b/themes/darkblue_orange/img/b_sql.png
new file mode 100644
index 0000000000..604e35e6be
--- /dev/null
+++ b/themes/darkblue_orange/img/b_sql.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_sqldoc.png b/themes/darkblue_orange/img/b_sqldoc.png
new file mode 100644
index 0000000000..1d023b4914
--- /dev/null
+++ b/themes/darkblue_orange/img/b_sqldoc.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_sqlhelp.png b/themes/darkblue_orange/img/b_sqlhelp.png
new file mode 100644
index 0000000000..ec85f83d38
--- /dev/null
+++ b/themes/darkblue_orange/img/b_sqlhelp.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_tblanalyse.png b/themes/darkblue_orange/img/b_tblanalyse.png
new file mode 100644
index 0000000000..7890134605
--- /dev/null
+++ b/themes/darkblue_orange/img/b_tblanalyse.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_tblexport.png b/themes/darkblue_orange/img/b_tblexport.png
new file mode 100644
index 0000000000..ffdfa09b9f
--- /dev/null
+++ b/themes/darkblue_orange/img/b_tblexport.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_tblimport.png b/themes/darkblue_orange/img/b_tblimport.png
new file mode 100644
index 0000000000..eccb7d5ab4
--- /dev/null
+++ b/themes/darkblue_orange/img/b_tblimport.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_tblops.png b/themes/darkblue_orange/img/b_tblops.png
new file mode 100644
index 0000000000..a3774e559a
--- /dev/null
+++ b/themes/darkblue_orange/img/b_tblops.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_tbloptimize.png b/themes/darkblue_orange/img/b_tbloptimize.png
new file mode 100644
index 0000000000..9a239e2f79
--- /dev/null
+++ b/themes/darkblue_orange/img/b_tbloptimize.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_tipp.png b/themes/darkblue_orange/img/b_tipp.png
new file mode 100644
index 0000000000..2faf5abea8
--- /dev/null
+++ b/themes/darkblue_orange/img/b_tipp.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_unique.png b/themes/darkblue_orange/img/b_unique.png
new file mode 100644
index 0000000000..b949f4b33c
--- /dev/null
+++ b/themes/darkblue_orange/img/b_unique.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_usradd.png b/themes/darkblue_orange/img/b_usradd.png
new file mode 100644
index 0000000000..fe03e8bd2a
--- /dev/null
+++ b/themes/darkblue_orange/img/b_usradd.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_usrcheck.png b/themes/darkblue_orange/img/b_usrcheck.png
new file mode 100644
index 0000000000..424538bf6b
--- /dev/null
+++ b/themes/darkblue_orange/img/b_usrcheck.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_usrdrop.png b/themes/darkblue_orange/img/b_usrdrop.png
new file mode 100644
index 0000000000..9d1eee5fd6
--- /dev/null
+++ b/themes/darkblue_orange/img/b_usrdrop.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_usredit.png b/themes/darkblue_orange/img/b_usredit.png
new file mode 100644
index 0000000000..41c803daf1
--- /dev/null
+++ b/themes/darkblue_orange/img/b_usredit.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_usrlist.png b/themes/darkblue_orange/img/b_usrlist.png
new file mode 100644
index 0000000000..85b5df0994
--- /dev/null
+++ b/themes/darkblue_orange/img/b_usrlist.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_view.png b/themes/darkblue_orange/img/b_view.png
new file mode 100644
index 0000000000..c987bbb7dc
--- /dev/null
+++ b/themes/darkblue_orange/img/b_view.png
Binary files differ
diff --git a/themes/darkblue_orange/img/b_views.png b/themes/darkblue_orange/img/b_views.png
new file mode 100644
index 0000000000..4736603a52
--- /dev/null
+++ b/themes/darkblue_orange/img/b_views.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_browse.png b/themes/darkblue_orange/img/bd_browse.png
new file mode 100644
index 0000000000..90e3e780f4
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_browse.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_deltbl.png b/themes/darkblue_orange/img/bd_deltbl.png
new file mode 100644
index 0000000000..77995e4523
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_deltbl.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_drop.png b/themes/darkblue_orange/img/bd_drop.png
new file mode 100644
index 0000000000..15c70d676b
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_drop.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_empty.png b/themes/darkblue_orange/img/bd_empty.png
new file mode 100644
index 0000000000..546b7d00a7
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_empty.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_firstpage.png b/themes/darkblue_orange/img/bd_firstpage.png
new file mode 100644
index 0000000000..cd2ae4e619
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_firstpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_ftext.png b/themes/darkblue_orange/img/bd_ftext.png
new file mode 100644
index 0000000000..0082469c36
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_ftext.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_index.png b/themes/darkblue_orange/img/bd_index.png
new file mode 100644
index 0000000000..11101c9311
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_index.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_insrow.png b/themes/darkblue_orange/img/bd_insrow.png
new file mode 100644
index 0000000000..d3c9b7b0b0
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_insrow.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_lastpage.png b/themes/darkblue_orange/img/bd_lastpage.png
new file mode 100644
index 0000000000..64c191067d
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_lastpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_nextpage.png b/themes/darkblue_orange/img/bd_nextpage.png
new file mode 100644
index 0000000000..528fc6abbf
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_nextpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_prevpage.png b/themes/darkblue_orange/img/bd_prevpage.png
new file mode 100644
index 0000000000..d78bed932d
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_prevpage.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_primary.png b/themes/darkblue_orange/img/bd_primary.png
new file mode 100644
index 0000000000..6b0b519932
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_primary.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_sbrowse.png b/themes/darkblue_orange/img/bd_sbrowse.png
new file mode 100644
index 0000000000..b75de1a05d
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_sbrowse.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_select.png b/themes/darkblue_orange/img/bd_select.png
new file mode 100644
index 0000000000..d15b24a74e
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_select.png
Binary files differ
diff --git a/themes/darkblue_orange/img/bd_unique.png b/themes/darkblue_orange/img/bd_unique.png
new file mode 100644
index 0000000000..6c29dd565f
--- /dev/null
+++ b/themes/darkblue_orange/img/bd_unique.png
Binary files differ
diff --git a/themes/darkblue_orange/img/error.ico b/themes/darkblue_orange/img/error.ico
new file mode 100644
index 0000000000..41d26d6389
--- /dev/null
+++ b/themes/darkblue_orange/img/error.ico
Binary files differ
diff --git a/themes/darkblue_orange/img/item.png b/themes/darkblue_orange/img/item.png
new file mode 100644
index 0000000000..46872bf352
--- /dev/null
+++ b/themes/darkblue_orange/img/item.png
Binary files differ
diff --git a/themes/darkblue_orange/img/item_ltr.png b/themes/darkblue_orange/img/item_ltr.png
new file mode 100644
index 0000000000..35b4945c96
--- /dev/null
+++ b/themes/darkblue_orange/img/item_ltr.png
Binary files differ
diff --git a/themes/darkblue_orange/img/item_rtl.png b/themes/darkblue_orange/img/item_rtl.png
new file mode 100644
index 0000000000..dc6663d34b
--- /dev/null
+++ b/themes/darkblue_orange/img/item_rtl.png
Binary files differ
diff --git a/themes/darkblue_orange/img/logo_left.png b/themes/darkblue_orange/img/logo_left.png
new file mode 100644
index 0000000000..26acf2e3bf
--- /dev/null
+++ b/themes/darkblue_orange/img/logo_left.png
Binary files differ
diff --git a/themes/darkblue_orange/img/logo_right.png b/themes/darkblue_orange/img/logo_right.png
new file mode 100644
index 0000000000..7dea574a50
--- /dev/null
+++ b/themes/darkblue_orange/img/logo_right.png
Binary files differ
diff --git a/themes/darkblue_orange/img/php_sym.png b/themes/darkblue_orange/img/php_sym.png
new file mode 100644
index 0000000000..d66010f4ca
--- /dev/null
+++ b/themes/darkblue_orange/img/php_sym.png
Binary files differ
diff --git a/themes/darkblue_orange/img/pma_logo2.png b/themes/darkblue_orange/img/pma_logo2.png
new file mode 100644
index 0000000000..7f80d09650
--- /dev/null
+++ b/themes/darkblue_orange/img/pma_logo2.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_asc.png b/themes/darkblue_orange/img/s_asc.png
new file mode 100644
index 0000000000..9990376f50
--- /dev/null
+++ b/themes/darkblue_orange/img/s_asc.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_asci.png b/themes/darkblue_orange/img/s_asci.png
new file mode 100644
index 0000000000..6b7302f750
--- /dev/null
+++ b/themes/darkblue_orange/img/s_asci.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_attention.png b/themes/darkblue_orange/img/s_attention.png
new file mode 100644
index 0000000000..69131c0140
--- /dev/null
+++ b/themes/darkblue_orange/img/s_attention.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_cancel.png b/themes/darkblue_orange/img/s_cancel.png
new file mode 100644
index 0000000000..a533c34dd2
--- /dev/null
+++ b/themes/darkblue_orange/img/s_cancel.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_cancel2.png b/themes/darkblue_orange/img/s_cancel2.png
new file mode 100644
index 0000000000..7911f69c88
--- /dev/null
+++ b/themes/darkblue_orange/img/s_cancel2.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_db.png b/themes/darkblue_orange/img/s_db.png
new file mode 100644
index 0000000000..7a79edde9e
--- /dev/null
+++ b/themes/darkblue_orange/img/s_db.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_desc.png b/themes/darkblue_orange/img/s_desc.png
new file mode 100644
index 0000000000..a03226d9ba
--- /dev/null
+++ b/themes/darkblue_orange/img/s_desc.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_error.png b/themes/darkblue_orange/img/s_error.png
new file mode 100644
index 0000000000..4e5ba13273
--- /dev/null
+++ b/themes/darkblue_orange/img/s_error.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_error2.png b/themes/darkblue_orange/img/s_error2.png
new file mode 100644
index 0000000000..d9a78a7105
--- /dev/null
+++ b/themes/darkblue_orange/img/s_error2.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_fulltext.png b/themes/darkblue_orange/img/s_fulltext.png
new file mode 100644
index 0000000000..291d223005
--- /dev/null
+++ b/themes/darkblue_orange/img/s_fulltext.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_host.png b/themes/darkblue_orange/img/s_host.png
new file mode 100644
index 0000000000..afc321def0
--- /dev/null
+++ b/themes/darkblue_orange/img/s_host.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_info.png b/themes/darkblue_orange/img/s_info.png
new file mode 100644
index 0000000000..0d3cbb662b
--- /dev/null
+++ b/themes/darkblue_orange/img/s_info.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_lang.png b/themes/darkblue_orange/img/s_lang.png
new file mode 100644
index 0000000000..8b2330cf0d
--- /dev/null
+++ b/themes/darkblue_orange/img/s_lang.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_loggoff.png b/themes/darkblue_orange/img/s_loggoff.png
new file mode 100644
index 0000000000..b4b4dcaff5
--- /dev/null
+++ b/themes/darkblue_orange/img/s_loggoff.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_notice.png b/themes/darkblue_orange/img/s_notice.png
new file mode 100644
index 0000000000..f581829e89
--- /dev/null
+++ b/themes/darkblue_orange/img/s_notice.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_okay.png b/themes/darkblue_orange/img/s_okay.png
new file mode 100644
index 0000000000..99a0d05d5d
--- /dev/null
+++ b/themes/darkblue_orange/img/s_okay.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_partialtext.png b/themes/darkblue_orange/img/s_partialtext.png
new file mode 100644
index 0000000000..2c88fce533
--- /dev/null
+++ b/themes/darkblue_orange/img/s_partialtext.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_passwd.png b/themes/darkblue_orange/img/s_passwd.png
new file mode 100644
index 0000000000..2494664e00
--- /dev/null
+++ b/themes/darkblue_orange/img/s_passwd.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_process.png b/themes/darkblue_orange/img/s_process.png
new file mode 100644
index 0000000000..1d1c03596a
--- /dev/null
+++ b/themes/darkblue_orange/img/s_process.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_really.png b/themes/darkblue_orange/img/s_really.png
new file mode 100644
index 0000000000..8c1ca1bd45
--- /dev/null
+++ b/themes/darkblue_orange/img/s_really.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_reload.png b/themes/darkblue_orange/img/s_reload.png
new file mode 100644
index 0000000000..754361eb8f
--- /dev/null
+++ b/themes/darkblue_orange/img/s_reload.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_rights.png b/themes/darkblue_orange/img/s_rights.png
new file mode 100644
index 0000000000..e1a6383013
--- /dev/null
+++ b/themes/darkblue_orange/img/s_rights.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_status.png b/themes/darkblue_orange/img/s_status.png
new file mode 100644
index 0000000000..1584233b3c
--- /dev/null
+++ b/themes/darkblue_orange/img/s_status.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_success.png b/themes/darkblue_orange/img/s_success.png
new file mode 100644
index 0000000000..2f86f0ae6b
--- /dev/null
+++ b/themes/darkblue_orange/img/s_success.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_tbl.png b/themes/darkblue_orange/img/s_tbl.png
new file mode 100644
index 0000000000..a821236361
--- /dev/null
+++ b/themes/darkblue_orange/img/s_tbl.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_theme.png b/themes/darkblue_orange/img/s_theme.png
new file mode 100644
index 0000000000..cab68be5a8
--- /dev/null
+++ b/themes/darkblue_orange/img/s_theme.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_vars.png b/themes/darkblue_orange/img/s_vars.png
new file mode 100644
index 0000000000..9be38ecb05
--- /dev/null
+++ b/themes/darkblue_orange/img/s_vars.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_views.png b/themes/darkblue_orange/img/s_views.png
new file mode 100644
index 0000000000..1f2ed03e4e
--- /dev/null
+++ b/themes/darkblue_orange/img/s_views.png
Binary files differ
diff --git a/themes/darkblue_orange/img/s_warn.png b/themes/darkblue_orange/img/s_warn.png
new file mode 100644
index 0000000000..80d2824084
--- /dev/null
+++ b/themes/darkblue_orange/img/s_warn.png
Binary files differ
diff --git a/themes/darkblue_orange/img/spacer.png b/themes/darkblue_orange/img/spacer.png
new file mode 100644
index 0000000000..bf867a3987
--- /dev/null
+++ b/themes/darkblue_orange/img/spacer.png
Binary files differ
diff --git a/themes/darkblue_orange/img/tbl_header.png b/themes/darkblue_orange/img/tbl_header.png
new file mode 100644
index 0000000000..7b2f8caaf9
--- /dev/null
+++ b/themes/darkblue_orange/img/tbl_header.png
Binary files differ
diff --git a/themes/darkblue_orange/img/tbl_th.png b/themes/darkblue_orange/img/tbl_th.png
new file mode 100644
index 0000000000..2aa0eb8d07
--- /dev/null
+++ b/themes/darkblue_orange/img/tbl_th.png
Binary files differ
diff --git a/themes/darkblue_orange/img/window-new.png b/themes/darkblue_orange/img/window-new.png
new file mode 100644
index 0000000000..0e12ef954c
--- /dev/null
+++ b/themes/darkblue_orange/img/window-new.png
Binary files differ
diff --git a/themes/darkblue_orange/info.inc.php b/themes/darkblue_orange/info.inc.php
new file mode 100644
index 0000000000..57cc4568fe
--- /dev/null
+++ b/themes/darkblue_orange/info.inc.php
@@ -0,0 +1,16 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Theme information
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Darkblue_orange
+ */
+
+/**
+ *
+ */
+$theme_name = 'Darkblue/orange';
+$theme_full_version = '2.9';
+?>
diff --git a/themes/darkblue_orange/layout.inc.php b/themes/darkblue_orange/layout.inc.php
new file mode 100644
index 0000000000..50ed7bf1d0
--- /dev/null
+++ b/themes/darkblue_orange/layout.inc.php
@@ -0,0 +1,123 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * configures general layout
+ * for detailed layout configuration please refer to the css files
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Darkblue_orange
+ */
+
+// protect against path disclosure
+if (empty($_SESSION['PMA_Theme'])) {
+ exit;
+}
+
+/**
+ * navi frame
+ */
+// navi frame width
+$GLOBALS['cfg']['NaviWidth'] = 180;
+
+// foreground (text) color for the navi frame
+$GLOBALS['cfg']['NaviColor'] = '#ffffff';
+
+// background for the navi frame
+$GLOBALS['cfg']['NaviBackground'] = '#666699';
+
+// foreground (text) color of the pointer in navi frame
+$GLOBALS['cfg']['NaviPointerColor'] = '#000000';
+
+// background of the pointer in navi frame
+$GLOBALS['cfg']['NaviPointerBackground'] = '#9999cc';
+
+// text color of the selected database name (when showing the table list)
+$GLOBALS['cfg']['NaviDatabaseNameColor'] = '#ff9900';
+
+/**
+ * main frame
+ */
+// foreground (text) color for the main frame
+$GLOBALS['cfg']['MainColor'] = '#000000';
+
+// background for the main frame
+$GLOBALS['cfg']['MainBackground'] = '#ffffff';
+//$GLOBALS['cfg']['MainBackground'] = '#ffffff url(' . $_SESSION['PMA_Theme']->getImgPath() . 'vertical_line.png) repeat-y';
+
+// foreground (text) color of the pointer in browse mode
+$GLOBALS['cfg']['BrowsePointerColor'] = '#000000';
+
+// background of the pointer in browse mode
+$GLOBALS['cfg']['BrowsePointerBackground'] = '#ccffcc';
+
+// foreground (text) color of the marker (visually marks row by clicking on it) in browse mode
+$GLOBALS['cfg']['BrowseMarkerColor'] = '#000000';
+
+// background of the marker (visually marks row by clicking on it) in browse mode
+$GLOBALS['cfg']['BrowseMarkerBackground'] = '#ffcc99';
+
+/**
+ * fonts
+ */
+/**
+ * the font family as a valid css font family value,
+ * if not set the browser default will be used
+ * (depending on browser, DTD and system settings)
+ */
+$GLOBALS['cfg']['FontFamily'] = 'Verdana, Arial, Helvetica, sans-serif';
+/**
+ * fixed width font family, used in textarea
+ */
+$GLOBALS['cfg']['FontFamilyFixed'] = 'monospace';
+
+/**
+ * tables
+ */
+// border
+$GLOBALS['cfg']['Border'] = 0;
+// table header and footer color
+$GLOBALS['cfg']['ThBackground'] = '#ff9900 url(' . $_SESSION['PMA_Theme']->getImgPath() . 'tbl_th.png) repeat-x top';
+// table header and footer background
+$GLOBALS['cfg']['ThColor'] = '#000000';
+// table data row background
+$GLOBALS['cfg']['BgOne'] = '#E5E5E5';
+// table data row background, alternate
+$GLOBALS['cfg']['BgTwo'] = '#D5D5D5';
+
+/**
+ * query window
+ */
+// Width of Query window
+$GLOBALS['cfg']['QueryWindowWidth'] = 600;
+// Height of Query window
+$GLOBALS['cfg']['QueryWindowHeight'] = 400;
+
+/**
+ * SQL Parser Settings
+ * Syntax colouring data
+ */
+$GLOBALS['cfg']['SQP']['fmtColor'] = array(
+ 'comment' => '#808000',
+ 'comment_mysql' => '',
+ 'comment_ansi' => '',
+ 'comment_c' => '',
+ 'digit' => '',
+ 'digit_hex' => 'teal',
+ 'digit_integer' => 'teal',
+ 'digit_float' => 'aqua',
+ 'punct' => 'fuchsia',
+ 'alpha' => '',
+ 'alpha_columnType' => '#FF9900',
+ 'alpha_columnAttrib' => '#0000FF',
+ 'alpha_reservedWord' => '#990099',
+ 'alpha_functionName' => '#FF0000',
+ 'alpha_identifier' => 'black',
+ 'alpha_charset' => '#6495ed',
+ 'alpha_variable' => '#800000',
+ 'quote' => '#008000',
+ 'quote_double' => '',
+ 'quote_single' => '',
+ 'quote_backtick' => ''
+);
+?>
diff --git a/themes/darkblue_orange/screen.png b/themes/darkblue_orange/screen.png
new file mode 100644
index 0000000000..16cf9e8b90
--- /dev/null
+++ b/themes/darkblue_orange/screen.png
Binary files differ
diff --git a/themes/original/css/theme_left.css.php b/themes/original/css/theme_left.css.php
new file mode 100644
index 0000000000..44fdba737f
--- /dev/null
+++ b/themes/original/css/theme_left.css.php
@@ -0,0 +1,226 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * navigation css file from theme Original
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Original
+ */
+
+// unplanned execution path
+if (!defined('PMA_MINIMUM_COMMON')) {
+ exit();
+}
+?>
+/******************************************************************************/
+/* general tags */
+html {
+ font-size: <?php echo (null !== $_SESSION['PMA_Config']->get('fontsize') ? $_SESSION['PMA_Config']->get('fontsize') : $_COOKIE['pma_fontsize']); ?>;
+}
+
+input, select, textarea {
+ font-size: 1em;
+}
+
+body {
+<?php if (! empty($GLOBALS['cfg']['FontFamily'])) { ?>
+ font-family: <?php echo $GLOBALS['cfg']['FontFamily']; ?>;
+<?php } ?>
+ background: <?php echo (isset($_SESSION['userconf']['custom_color']) ? $_SESSION['userconf']['custom_color'] : $GLOBALS['cfg']['NaviBackground']); ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+ margin: 0;
+ padding: 0.2em 0.2em 0.2em 0.2em;
+}
+
+a img {
+ border: 0;
+}
+
+a:link,
+a:visited,
+a:active {
+ text-decoration: none;
+ color: #0000FF;
+}
+
+ul {
+ margin:0;
+}
+
+form {
+ margin: 0;
+ padding: 0;
+ display: inline;
+}
+
+select#select_server,
+select#lightm_db {
+ width: 100%;
+}
+
+/* buttons in some browsers (eg. Konqueror) are block elements,
+ this breaks design */
+button {
+ display: inline;
+}
+
+
+/******************************************************************************/
+/* classes */
+
+/* leave some space between icons and text */
+.icon {
+ vertical-align: middle;
+ margin-right: 0.3em;
+ margin-left: 0.3em;
+}
+
+.navi_dbName {
+ font-weight: bold;
+ color: <?php echo $GLOBALS['cfg']['NaviDatabaseNameColor']; ?>;
+}
+
+/******************************************************************************/
+/* specific elements */
+
+div#pmalogo {
+ <?php //better echo $GLOBALS['cfg']['logoBGC']; ?>
+ background-color: <?php echo (isset($_SESSION['userconf']['custom_color']) ? $_SESSION['userconf']['custom_color'] : $GLOBALS['cfg']['NaviBackground']); ?>;
+ padding:.3em;
+}
+div#pmalogo,
+div#leftframelinks,
+div#databaseList {
+ text-align: center;
+ margin-bottom: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+ul#databaseList {
+ margin-bottom: 0.5em;
+ padding-bottom: 0.5em;
+ padding-<?php echo $left; ?>: 1.5em;
+}
+
+ul#databaseList a {
+ display: block;
+}
+
+div#navidbpageselector a,
+ul#databaseList a {
+ background: <?php echo $GLOBALS['cfg']['NaviBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+}
+
+ul#databaseList a:hover {
+ background: <?php echo $GLOBALS['cfg']['NaviPointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviPointerColor']; ?>;
+}
+
+ul#databaseList li.selected a {
+ background: <?php echo $GLOBALS['cfg']['BrowseMarkerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowseMarkerColor']; ?>;
+}
+
+div#leftframelinks .icon {
+ padding: 0;
+ margin: 0;
+}
+
+div#leftframelinks a img.icon {
+ margin: 0;
+ padding: 0.2em;
+ border: 0.05em solid <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+}
+
+div#leftframelinks a:hover {
+ background: <?php echo $GLOBALS['cfg']['NaviPointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviPointerColor']; ?>;
+}
+
+/* serverlist */
+#body_leftFrame #list_server {
+ list-style-image: url(<?php echo $GLOBALS['cfg']['ThemePath']; ?>/original/img/s_host.png);
+ list-style-position: inside;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+#body_leftFrame #list_server li {
+ margin: 0;
+ padding: 0;
+ font-size: 80%;
+}
+
+div#left_tableList ul {
+ list-style-type: none;
+ list-style-position: outside;
+ margin: 0;
+ padding: 0;
+ font-size: 80%;
+ background: <?php echo (isset($_SESSION['userconf']['custom_color']) ? $_SESSION['userconf']['custom_color'] : $GLOBALS['cfg']['NaviBackground']); ?>;
+}
+
+div#left_tableList ul ul {
+ font-size: 100%;
+}
+
+div#left_tableList a {
+ background: <?php echo $GLOBALS['cfg']['NaviBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+ text-decoration: none;
+}
+
+div#left_tableList a:hover {
+ background: <?php echo $GLOBALS['cfg']['NaviBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+ text-decoration: underline;
+}
+
+div#left_tableList li {
+ margin: 0;
+ padding: 0;
+ white-space: nowrap;
+}
+
+<?php if ($GLOBALS['cfg']['BrowseMarkerColor']) { ?>
+/* marked items */
+div#left_tableList > ul li.marked > a,
+div#left_tableList > ul li.marked {
+ background: <?php echo $GLOBALS['cfg']['BrowseMarkerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowseMarkerColor']; ?>;
+}
+<?php } ?>
+
+<?php if ($GLOBALS['cfg']['LeftPointerEnable']) { ?>
+div#left_tableList > ul li:hover > a,
+div#left_tableList > ul li:hover {
+ background: <?php echo $GLOBALS['cfg']['NaviPointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviPointerColor']; ?>;
+}
+<?php } ?>
+
+div#left_tableList img {
+ padding: 0;
+ vertical-align: middle;
+}
+
+div#left_tableList ul ul {
+ margin-<?php echo $left; ?>: 0;
+ padding-<?php echo $left; ?>: 0.1em;
+ border-<?php echo $left; ?>: 0.1em solid <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+ padding-bottom: 0.1em;
+ border-bottom: 0.1em solid <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+}
+
+/* for the servers list in navi panel */
+#serverinfo .item {
+ white-space: nowrap;
+ color: <?php echo $GLOBALS['cfg']['NaviColor']; ?>;
+}
+#serverinfo a:hover {
+ background: <?php echo $GLOBALS['cfg']['NaviPointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['NaviPointerColor']; ?>;
+}
diff --git a/themes/original/css/theme_print.css.php b/themes/original/css/theme_print.css.php
new file mode 100644
index 0000000000..b39f5cf804
--- /dev/null
+++ b/themes/original/css/theme_print.css.php
@@ -0,0 +1,39 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * print css file from theme Original
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Original
+ */
+?>
+/* For printview */
+body, table, th, td {
+ color: #000000;
+ background-color: #ffffff;
+}
+
+img {
+ border: 0;
+}
+
+table, th, td {
+ border-width: 0.1em;
+ border-color: #000000;
+ border-style: solid;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+th, td {
+ padding: 0.2em;
+}
+
+th {
+ font-weight: bold;
+ background-color: #e5e5e5;
+}
diff --git a/themes/original/css/theme_right.css.php b/themes/original/css/theme_right.css.php
new file mode 100644
index 0000000000..078e978e1b
--- /dev/null
+++ b/themes/original/css/theme_right.css.php
@@ -0,0 +1,1179 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * main css file from theme Original
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Original
+ */
+
+// unplanned execution path
+if (!defined('PMA_MINIMUM_COMMON')) {
+ exit();
+}
+?>
+/******************************************************************************/
+/* general tags */
+html {
+ font-size: <?php echo (null !== $_SESSION['PMA_Config']->get('fontsize') ? $_SESSION['PMA_Config']->get('fontsize') : $_COOKIE['pma_fontsize']);?>;
+}
+
+input, select, textarea {
+ font-size: 1em;
+}
+
+body {
+<?php if (! empty($GLOBALS['cfg']['FontFamily'])) { ?>
+ font-family: <?php echo $GLOBALS['cfg']['FontFamily']; ?>;
+<?php } ?>
+ padding: 0;
+ margin: 0.5em;
+ color: <?php echo $GLOBALS['cfg']['MainColor']; ?>;
+ background: <?php echo (isset($_SESSION['userconf']['custom_color']) ? $_SESSION['userconf']['custom_color'] : $GLOBALS['cfg']['MainBackground']); ?>;
+}
+
+<?php if (! empty($GLOBALS['cfg']['FontFamilyFixed'])) { ?>
+textarea, tt, pre, code {
+ font-family: <?php echo $GLOBALS['cfg']['FontFamilyFixed']; ?>;
+}
+<?php } ?>
+h1 {
+ font-size: 140%;
+ font-weight: bold;
+}
+
+h2 {
+ font-size: 120%;
+ font-weight: bold;
+}
+
+h3 {
+ font-weight: bold;
+}
+
+a:link,
+a:visited,
+a:active {
+ text-decoration: none;
+ color: #0000FF;
+}
+
+a:hover {
+ text-decoration: underline;
+ color: #FF0000;
+}
+
+dfn {
+ font-style: normal;
+}
+
+dfn:hover {
+ font-style: normal;
+ cursor: help;
+}
+
+th {
+ font-weight: bold;
+ color: <?php echo $GLOBALS['cfg']['ThColor']; ?>;
+ background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+}
+
+a img {
+ border: 0;
+}
+
+hr {
+ color: <?php echo $GLOBALS['cfg']['MainColor']; ?>;
+ background-color: <?php echo $GLOBALS['cfg']['MainColor']; ?>;
+ border: 0;
+ height: 1px;
+}
+
+form {
+ padding: 0;
+ margin: 0;
+ display: inline;
+}
+
+textarea {
+ overflow: visible;
+ height: <?php echo ceil($GLOBALS['cfg']['TextareaRows'] * 1.2); ?>em;
+}
+
+fieldset {
+ margin-top: 1em;
+ border: <?php echo $GLOBALS['cfg']['MainColor']; ?> solid 1px;
+ padding: 0.5em;
+ background: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+}
+
+fieldset fieldset {
+ margin: 0.8em;
+}
+
+fieldset legend {
+ font-weight: bold;
+ color: #444444;
+ background-color: <?php echo 'OPERA' != PMA_USR_BROWSER_AGENT ? 'transparent' : $GLOBALS['cfg']['BgOne']; ?>;
+}
+
+/* buttons in some browsers (eg. Konqueror) are block elements,
+ this breaks design */
+button {
+ display: inline;
+}
+
+table caption,
+table th,
+table td {
+ padding: 0.1em 0.5em 0.1em 0.5em;
+ margin: 0.1em;
+ vertical-align: top;
+}
+
+img,
+input,
+select,
+button {
+ vertical-align: middle;
+}
+
+
+/******************************************************************************/
+/* classes */
+div.tools {
+ border: 1px solid #000000;
+ padding: 0.2em;
+}
+
+div.tools,
+fieldset.tblFooters {
+ margin-top: 0;
+ margin-bottom: 0.5em;
+ /* avoid a thick line since this should be used under another fieldset */
+ border-top: 0;
+ text-align: <?php echo $right; ?>;
+ float: none;
+ clear: both;
+}
+
+fieldset .formelement {
+ float: <?php echo $left; ?>;
+ margin-<?php echo $right; ?>: 0.5em;
+ /* IE */
+ white-space: nowrap;
+}
+
+/* revert for Gecko */
+fieldset div[class=formelement] {
+ white-space: normal;
+}
+
+button.mult_submit {
+ border: none;
+ background-color: transparent;
+}
+
+/* odd items 1,3,5,7,... */
+table tr.odd th,
+.odd {
+ background: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+}
+
+/* even items 2,4,6,8,... */
+table tr.even th,
+.even {
+ background: <?php echo $GLOBALS['cfg']['BgTwo']; ?>;
+}
+
+/* odd table rows 1,3,5,7,... */
+table tr.odd th,
+table tr.odd,
+table tr.even th,
+table tr.even {
+ text-align: <?php echo $left; ?>;
+}
+
+<?php if ($GLOBALS['cfg']['BrowseMarkerEnable']) { ?>
+/* marked table rows */
+table tr.marked th,
+table tr.marked {
+ background: <?php echo $GLOBALS['cfg']['BrowseMarkerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowseMarkerColor']; ?>;
+}
+<?php } ?>
+
+<?php if ($GLOBALS['cfg']['BrowsePointerEnable']) { ?>
+/* hovered items */
+.odd:hover,
+.even:hover,
+.hover {
+ background: <?php echo $GLOBALS['cfg']['BrowsePointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowsePointerColor']; ?>;
+}
+
+/* hovered table rows */
+table tr.odd:hover th,
+table tr.even:hover th,
+table tr.hover th {
+ background: <?php echo $GLOBALS['cfg']['BrowsePointerBackground']; ?>;
+ color: <?php echo $GLOBALS['cfg']['BrowsePointerColor']; ?>;
+}
+<?php } ?>
+
+/**
+ * marks table rows/cells if the db field is in a where condition
+ */
+tr.condition th,
+tr.condition td,
+td.condition,
+th.condition {
+ border: 1px solid <?php echo $GLOBALS['cfg']['BrowseMarkerBackground']; ?>;
+}
+
+table .value {
+ text-align: <?php echo $right; ?>;
+ white-space: normal;
+}
+/* IE doesnt handles 'pre' right */
+table [class=value] {
+ white-space: normal;
+}
+
+
+<?php if (! empty($GLOBALS['cfg']['FontFamilyFixed'])) { ?>
+.value {
+ font-family: <?php echo $GLOBALS['cfg']['FontFamilyFixed']; ?>;
+}
+<?php } ?>
+.value .attention {
+ color: red;
+ font-weight: bold;
+}
+.value .allfine {
+ color: green;
+}
+
+
+img.lightbulb {
+ cursor: pointer;
+}
+
+.pdflayout {
+ overflow: hidden;
+ clip: inherit;
+ background-color: #FFFFFF;
+ display: none;
+ border: 1px solid #000000;
+ position: relative;
+}
+
+.pdflayout_table {
+ background: #D3DCE3;
+ color: #000000;
+ overflow: hidden;
+ clip: inherit;
+ z-index: 2;
+ display: inline;
+ visibility: inherit;
+ cursor: move;
+ position: absolute;
+ font-size: 80%;
+ border: 1px dashed #000000;
+}
+
+/* MySQL Parser */
+.syntax {
+ font-size: 80%;
+}
+
+.syntax_comment {
+ padding-left: 4pt;
+ padding-right: 4pt;
+}
+
+.syntax_digit {
+}
+
+.syntax_digit_hex {
+}
+
+.syntax_digit_integer {
+}
+
+.syntax_digit_float {
+}
+
+.syntax_punct {
+}
+
+.syntax_alpha {
+}
+
+.syntax_alpha_columnType {
+ text-transform: uppercase;
+}
+
+.syntax_alpha_columnAttrib {
+ text-transform: uppercase;
+}
+
+.syntax_alpha_reservedWord {
+ text-transform: uppercase;
+ font-weight: bold;
+}
+
+.syntax_alpha_functionName {
+ text-transform: uppercase;
+}
+
+.syntax_alpha_identifier {
+}
+
+.syntax_alpha_charset {
+}
+
+.syntax_alpha_variable {
+}
+
+.syntax_quote {
+ white-space: pre;
+}
+
+.syntax_quote_backtick {
+}
+
+/* leave some space between icons and text */
+.icon {
+ vertical-align: middle;
+ margin-right: 0.3em;
+ margin-left: 0.3em;
+}
+/* no extra space in table cells */
+td .icon {
+ margin: 0;
+}
+
+.selectallarrow {
+ margin-<?php echo $right; ?>: 0.3em;
+ margin-<?php echo $left; ?>: 0.6em;
+}
+
+/* message boxes: warning, error, confirmation */
+.success h1,
+.notice h1,
+.warning h1,
+div.error h1 {
+ border-bottom: 2px solid;
+ font-weight: bold;
+ text-align: <?php echo $left; ?>;
+ margin: 0 0 0.2em 0;
+}
+
+div.success,
+div.notice,
+div.warning,
+div.error {
+ margin: 0.3em 0 0 0;
+ border: 2px solid;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-repeat: no-repeat;
+ <?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
+ background-position: 10px 50%;
+ padding: 0.1em 0.1em 0.1em 36px;
+ <?php } else { ?>
+ background-position: 99% 50%;
+ padding: 10px 5% 10px 10px;
+ <?php } ?>
+ <?php } else { ?>
+ padding: 0.3em;
+ <?php } ?>
+}
+
+.success {
+ color: #000000;
+ background-color: #f0fff0;
+}
+h1.success,
+div.success {
+ border-color: #00FF00;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_success.png);
+ <?php } ?>
+}
+.success h1 {
+ border-color: #00FF00;
+}
+
+.notice {
+ color: #000000;
+ background-color: #FFFFDD;
+}
+h1.notice,
+div.notice {
+ border-color: #FFD700;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_notice.png);
+ <?php } ?>
+}
+.notice h1 {
+ border-color: #FFD700;
+}
+
+.warning {
+ color: #CC0000;
+ background-color: #FFFFCC;
+}
+p.warning,
+h1.warning,
+div.warning {
+ border-color: #CC0000;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_warn.png);
+ <?php } ?>
+}
+.warning h1 {
+ border-color: #cc0000;
+}
+
+.error {
+ background-color: #FFFFCC;
+ color: #ff0000;
+}
+
+h1.error,
+div.error {
+ border-color: #ff0000;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_error.png);
+ <?php } ?>
+}
+div.error h1 {
+ border-color: #ff0000;
+}
+
+.confirmation {
+ background-color: #FFFFCC;
+}
+fieldset.confirmation {
+ border: 0.1em solid #FF0000;
+}
+fieldset.confirmation legend {
+ border-left: 0.1em solid #FF0000;
+ border-right: 0.1em solid #FF0000;
+ font-weight: bold;
+ <?php if ($GLOBALS['cfg']['ErrorIconic']) { ?>
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_really.png);
+ background-repeat: no-repeat;
+ <?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
+ background-position: 5px 50%;
+ padding: 0.2em 0.2em 0.2em 25px;
+ <?php } else { ?>
+ background-position: 97% 50%;
+ padding: 0.2em 25px 0.2em 0.2em;
+ <?php } ?>
+ <?php } ?>
+}
+/* end messageboxes */
+
+
+.tblcomment {
+ font-size: 70%;
+ font-weight: normal;
+ color: #000099;
+}
+
+.tblHeaders {
+ font-weight: bold;
+ color: <?php echo $GLOBALS['cfg']['ThColor']; ?>;
+ background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+}
+
+div.tools,
+.tblFooters {
+ font-weight: normal;
+ color: <?php echo $GLOBALS['cfg']['ThColor']; ?>;
+ background: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+}
+
+.tblHeaders a:link,
+.tblHeaders a:active,
+.tblHeaders a:visited,
+div.tools a:link,
+div.tools a:visited,
+div.tools a:active,
+.tblFooters a:link,
+.tblFooters a:active,
+.tblFooters a:visited {
+ color: #0000FF;
+}
+
+.tblHeaders a:hover,
+div.tools a:hover,
+.tblFooters a:hover {
+ color: #FF0000;
+}
+
+/* forbidden, no privilegs */
+.noPrivileges {
+ color: #FF0000;
+ font-weight: bold;
+}
+
+/* disabled text */
+.disabled,
+.disabled a:link,
+.disabled a:active,
+.disabled a:visited {
+ color: #666666;
+}
+
+.disabled a:hover {
+ color: #666666;
+ text-decoration: none;
+}
+
+tr.disabled td,
+td.disabled {
+ background-color: #cccccc;
+}
+
+/**
+ * login form
+ */
+body.loginform h1,
+body.loginform a.logo {
+ display: block;
+ text-align: center;
+}
+
+body.loginform {
+ text-align: center;
+}
+
+body.loginform div.container {
+ text-align: <?php echo $left; ?>;
+ width: 30em;
+ margin: 0 auto;
+}
+
+form.login label {
+ float: <?php echo $left; ?>;
+ width: 10em;
+ font-weight: bolder;
+}
+
+
+/******************************************************************************/
+/* specific elements */
+
+/* topmenu */
+ul#topmenu {
+ font-weight: bold;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+ul#topmenu li {
+ float: <?php echo $left; ?>;
+ margin: 0;
+ padding: 0;
+ vertical-align: middle;
+}
+
+#topmenu img {
+ vertical-align: middle;
+ margin-<?php echo $right; ?>: 0.1em;
+}
+
+/* default tab styles */
+.tab, .tabcaution, .tabactive {
+ display: block;
+ margin: 0.2em 0.2em 0 0.2em;
+ padding: 0.2em 0.2em 0 0.2em;
+ white-space: nowrap;
+}
+
+/* disabled tabs */
+span.tab {
+ color: #666666;
+}
+
+/* disabled drop/empty tabs */
+span.tabcaution {
+ color: #ff6666;
+}
+
+/* enabled drop/empty tabs */
+a.tabcaution {
+ color: #FF0000;
+}
+a.tabcaution:hover {
+ color: #FFFFFF;
+ background-color: #FF0000;
+}
+
+<?php if ($GLOBALS['cfg']['LightTabs']) { ?>
+/* active tab */
+a.tabactive {
+ color: black;
+}
+<?php } else { ?>
+#topmenu {
+ margin-top: 0.5em;
+ padding: 0.1em 0.3em 0.1em 0.3em;
+}
+
+ul#topmenu li {
+ border-bottom: 1pt solid black;
+}
+
+/* default tab styles */
+.tab, .tabcaution, .tabactive {
+ background-color: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+ border: 1pt solid <?php echo $GLOBALS['cfg']['BgTwo']; ?>;
+ border-bottom: 0;
+ border-top-left-radius: 0.4em;
+ border-top-right-radius: 0.4em;
+}
+
+/* enabled hover/active tabs */
+a.tab:hover,
+a.tabcaution:hover,
+.tabactive,
+.tabactive:hover {
+ margin: 0;
+ padding: 0.2em 0.4em 0.2em 0.4em;
+ text-decoration: none;
+}
+
+a.tab:hover,
+.tabactive {
+ background-color: <?php echo $GLOBALS['cfg']['MainBackground']; ?>;
+}
+
+/* to be able to cancel the bottom border, use <li class="active"> */
+ul#topmenu li.active {
+ border-bottom: 1pt solid <?php echo $GLOBALS['cfg']['MainBackground']; ?>;
+}
+
+/* disabled drop/empty tabs */
+span.tab,
+a.warning,
+span.tabcaution {
+ cursor: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>error.ico), default;
+}
+<?php } ?>
+/* end topmenu */
+
+
+/* Calendar */
+table.calendar {
+ width: 100%;
+}
+table.calendar td {
+ text-align: center;
+}
+table.calendar td a {
+ display: block;
+}
+
+table.calendar td a:hover {
+ background-color: #CCFFCC;
+}
+
+table.calendar th {
+ background-color: #D3DCE3;
+}
+
+table.calendar td.selected {
+ background-color: #FFCC99;
+}
+
+img.calendar {
+ border: none;
+}
+form.clock {
+ text-align: center;
+}
+/* end Calendar */
+
+
+/* table stats */
+div#tablestatistics {
+ border-bottom: 0.1em solid #669999;
+ margin-bottom: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+div#tablestatistics table {
+ float: <?php echo $left; ?>;
+ margin-bottom: 0.5em;
+ margin-<?php echo $right; ?>: 0.5em;
+}
+
+div#tablestatistics table caption {
+ margin-<?php echo $right; ?>: 0.5em;
+}
+/* END table stats */
+
+
+/* server privileges */
+#tableuserrights td,
+#tablespecificuserrights td,
+#tabledatabases td {
+ vertical-align: middle;
+}
+/* END server privileges */
+
+
+
+/* Heading */
+#serverinfo {
+ font-weight: bold;
+ margin-bottom: 0.5em;
+}
+
+#serverinfo .item {
+ white-space: nowrap;
+}
+
+#span_table_comment {
+ font-weight: normal;
+ font-style: italic;
+ white-space: nowrap;
+}
+
+#serverinfo img {
+ margin: 0 0.1em 0 0.2em;
+}
+
+
+#textSQLDUMP {
+ width: 95%;
+ height: 95%;
+ font-family: "Courier New", Courier, mono;
+ font-size: 110%;
+}
+
+#TooltipContainer {
+ position: absolute;
+ z-index: 99;
+ width: 20em;
+ height: auto;
+ overflow: visible;
+ visibility: hidden;
+ background-color: #ffffcc;
+ color: #006600;
+ border: 0.1em solid #000000;
+ padding: 0.5em;
+}
+
+/* user privileges */
+#fieldset_add_user_login div.item {
+ border-bottom: 1px solid silver;
+ padding-bottom: 0.3em;
+ margin-bottom: 0.3em;
+}
+
+#fieldset_add_user_login label {
+ float: <?php echo $left; ?>;
+ display: block;
+ width: 10em;
+ max-width: 100%;
+ text-align: <?php echo $right; ?>;
+ padding-<?php echo $right; ?>: 0.5em;
+}
+
+#fieldset_add_user_login span.options #select_pred_username,
+#fieldset_add_user_login span.options #select_pred_hostname,
+#fieldset_add_user_login span.options #select_pred_password {
+ width: 100%;
+ max-width: 100%;
+}
+
+#fieldset_add_user_login span.options {
+ float: <?php echo $left; ?>;
+ display: block;
+ width: 12em;
+ max-width: 100%;
+ padding-<?php echo $right; ?>: 0.5em;
+}
+
+#fieldset_add_user_login input {
+ width: 12em;
+ clear: <?php echo $right; ?>;
+ max-width: 100%;
+}
+
+#fieldset_add_user_login span.options input {
+ width: auto;
+}
+
+#fieldset_user_priv div.item {
+ float: <?php echo $left; ?>;
+ width: 9em;
+ max-width: 100%;
+}
+
+#fieldset_user_priv div.item div.item {
+ float: none;
+}
+
+#fieldset_user_priv div.item label {
+ white-space: nowrap;
+}
+
+#fieldset_user_priv div.item select {
+ width: 100%;
+}
+
+#fieldset_user_global_rights fieldset {
+ float: <?php echo $left; ?>;
+}
+/* END user privileges */
+
+
+/* serverstatus */
+div#serverstatus table caption a.top {
+ float: <?php echo $right; ?>;
+}
+
+div#serverstatus div#serverstatusqueriesdetails table,
+div#serverstatus table#serverstatustraffic,
+div#serverstatus table#serverstatusconnections {
+ float: <?php echo $left; ?>;
+}
+
+#serverstatussection,
+.clearfloat {
+ clear: both;
+}
+div#serverstatussection table {
+ width: 100%;
+ margin-bottom: 1em;
+}
+div#serverstatussection table .name {
+ width: 18em;
+}
+div#serverstatussection table .value {
+ width: 6em;
+}
+
+div#serverstatus table tbody td.descr a,
+div#serverstatus table .tblFooters a {
+ white-space: nowrap;
+}
+div#serverstatus div#statuslinks a:before,
+div#serverstatus div#sectionlinks a:before,
+div#serverstatus table tbody td.descr a:before,
+div#serverstatus table .tblFooters a:before {
+ content: '[';
+}
+div#serverstatus div#statuslinks a:after,
+div#serverstatus div#sectionlinks a:after,
+div#serverstatus table tbody td.descr a:after,
+div#serverstatus table .tblFooters a:after {
+ content: ']';
+}
+/* end serverstatus */
+
+/* querywindow */
+body#bodyquerywindow {
+ margin: 0;
+ padding: 0;
+ background-image: none;
+ background-color: #F5F5F5;
+}
+
+div#querywindowcontainer {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+}
+
+div#querywindowcontainer fieldset {
+ margin-top: 0;
+}
+/* END querywindow */
+
+
+/* querybox */
+
+div#sqlquerycontainer {
+ float: <?php echo $left; ?>;
+ width: 69%;
+ /* height: 15em; */
+}
+
+div#tablefieldscontainer {
+ float: <?php echo $right; ?>;
+ width: 29%;
+ /* height: 15em; */
+}
+
+div#tablefieldscontainer select {
+ width: 100%;
+ /* height: 12em; */
+}
+
+textarea#sqlquery {
+ width: 100%;
+ /* height: 100%; */
+}
+
+div#queryboxcontainer div#bookmarkoptions {
+ margin-top: 0.5em;
+}
+/* end querybox */
+
+/* main page */
+#maincontainer {
+ background-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>logo_right.png);
+ background-position: <?php echo $right; ?> bottom;
+ background-repeat: no-repeat;
+}
+
+#mysqlmaininformation,
+#pmamaininformation {
+ float: <?php echo $left; ?>;
+ width: 49%;
+}
+
+#maincontainer ul {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>item_<?php echo $GLOBALS['text_dir']; ?>.png);
+ vertical-align: middle;
+}
+
+#maincontainer li {
+ margin-bottom: 0.3em;
+}
+/* END main page */
+
+
+<?php if ($GLOBALS['cfg']['MainPageIconic']) { ?>
+/* iconic view for ul items */
+li#li_create_database {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_newdb.png);
+}
+
+li#li_select_lang {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_lang.png);
+}
+
+li#li_select_mysql_collation,
+li#li_select_mysql_charset {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_asci.png);
+}
+
+li#li_select_theme{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_theme.png);
+}
+
+li#li_server_info,
+li#li_server_version{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_host.png);
+}
+
+li#li_user_info{
+ /* list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_rights.png); */
+}
+
+li#li_mysql_status{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_status.png);
+}
+
+li#li_mysql_variables{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_vars.png);
+}
+
+li#li_mysql_processes{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_process.png);
+}
+
+li#li_mysql_collations{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_asci.png);
+}
+
+li#li_mysql_engines{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_engine.png);
+}
+
+li#li_mysql_binlogs {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_tbl.png);
+}
+
+li#li_mysql_databases {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_db.png);
+}
+
+li#li_export {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_export.png);
+}
+
+li#li_import {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_import.png);
+}
+
+li#li_change_password {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_passwd.png);
+}
+
+li#li_log_out {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_loggoff.png);
+}
+
+li#li_pma_docs,
+li#li_pma_wiki {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_docs.png);
+}
+
+li#li_phpinfo {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>php_sym.png);
+}
+
+li#li_pma_homepage {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_home.png);
+}
+
+li#li_mysql_privilegs{
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_rights.png);
+}
+
+li#li_switch_dbstats {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>b_dbstatistics.png);
+}
+
+li#li_flush_privileges {
+ list-style-image: url(<?php echo $_SESSION['PMA_Theme']->getImgPath(); ?>s_reload.png);
+}
+/* END iconic view for ul items */
+<?php } /* end if $GLOBALS['cfg']['MainPageIconic'] */ ?>
+
+
+#body_browse_foreigners {
+ background: <?php echo $GLOBALS['cfg']['NaviBackground']; ?>;
+ margin: 0.5em 0.5em 0 0.5em;
+}
+
+#bodyquerywindow {
+ background: <?php echo $GLOBALS['cfg']['NaviBackground']; ?>;
+}
+
+#bodythemes {
+ width: 500px;
+ margin: auto;
+ text-align: center;
+}
+
+#bodythemes img {
+ border: 0.1em solid black;
+}
+
+#bodythemes a:hover img {
+ border: 0.1em solid red;
+}
+
+#fieldset_select_fields {
+ float: <?php echo $left; ?>;
+}
+
+#selflink {
+ clear: both;
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ width: 100%;
+ border-top: 0.1em solid silver;
+ text-align: <?php echo $right; ?>;
+}
+
+#table_innodb_bufferpool_usage,
+#table_innodb_bufferpool_activity {
+ float: <?php echo $left; ?>;
+}
+
+#div_mysql_charset_collations table {
+ float: <?php echo $left; ?>;
+}
+
+#div_table_order {
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#div_table_rename {
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#div_table_copy,
+#div_partition_maintenance,
+#div_referential_integrity,
+#div_table_maintenance {
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#div_table_options {
+ clear: both;
+ min-width: 48%;
+ float: <?php echo $left; ?>;
+}
+
+#qbe_div_table_list {
+ float: <?php echo $left; ?>;
+}
+
+#qbe_div_sql_query {
+ float: <?php echo $left; ?>;
+}
+
+label.desc {
+ width: 30em;
+ float: <?php echo $left; ?>;
+}
+
+code.sql {
+ display: block;
+ padding: 0.3em;
+ margin-top: 0;
+ margin-bottom: 0;
+ border: <?php echo $GLOBALS['cfg']['MainColor']; ?> solid 1px;
+ border-top: 0;
+ border-bottom: 0;
+ max-height: 10em;
+ overflow: auto;
+ background: <?php echo $GLOBALS['cfg']['BgOne']; ?>;
+}
+
+#main_pane_left {
+ width: 60%;
+ float: <?php echo $left; ?>;
+ padding-top: 1em;
+}
+
+#main_pane_right {
+ margin-<?php echo $left; ?>: 60%;
+ padding-top: 1em;
+ padding-<?php echo $left; ?>: 1em;
+}
+
+.group {
+ border-<?php echo $left; ?>: 0.3em solid <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+ margin-bottom: 1em;
+}
+
+.group h2 {
+ background-color: <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+ padding: 0.1em 0.3em;
+ margin-top: 0;
+}
+
+#li_select_server {
+ padding-bottom: 0.3em;
+ border-bottom: 0.3em solid <?php echo $GLOBALS['cfg']['ThBackground']; ?>;
+ margin-bottom: 0.3em;
+}
diff --git a/themes/original/img/arrow_ltr.png b/themes/original/img/arrow_ltr.png
new file mode 100644
index 0000000000..8cdb8ca172
--- /dev/null
+++ b/themes/original/img/arrow_ltr.png
Binary files differ
diff --git a/themes/original/img/arrow_rtl.png b/themes/original/img/arrow_rtl.png
new file mode 100644
index 0000000000..6b70c4eb77
--- /dev/null
+++ b/themes/original/img/arrow_rtl.png
Binary files differ
diff --git a/themes/original/img/asc_order.png b/themes/original/img/asc_order.png
new file mode 100644
index 0000000000..59cb2cb65c
--- /dev/null
+++ b/themes/original/img/asc_order.png
Binary files differ
diff --git a/themes/original/img/b_bookmark.png b/themes/original/img/b_bookmark.png
new file mode 100644
index 0000000000..5fa332089e
--- /dev/null
+++ b/themes/original/img/b_bookmark.png
Binary files differ
diff --git a/themes/original/img/b_browse.png b/themes/original/img/b_browse.png
new file mode 100644
index 0000000000..744cfcd68c
--- /dev/null
+++ b/themes/original/img/b_browse.png
Binary files differ
diff --git a/themes/original/img/b_calendar.png b/themes/original/img/b_calendar.png
new file mode 100644
index 0000000000..90829a353c
--- /dev/null
+++ b/themes/original/img/b_calendar.png
Binary files differ
diff --git a/themes/original/img/b_comment.png b/themes/original/img/b_comment.png
new file mode 100644
index 0000000000..6f6da0c83c
--- /dev/null
+++ b/themes/original/img/b_comment.png
Binary files differ
diff --git a/themes/original/img/b_dbstatistics.png b/themes/original/img/b_dbstatistics.png
new file mode 100644
index 0000000000..b04e813b0f
--- /dev/null
+++ b/themes/original/img/b_dbstatistics.png
Binary files differ
diff --git a/themes/original/img/b_deltbl.png b/themes/original/img/b_deltbl.png
new file mode 100644
index 0000000000..1c450fad6f
--- /dev/null
+++ b/themes/original/img/b_deltbl.png
Binary files differ
diff --git a/themes/original/img/b_docs.png b/themes/original/img/b_docs.png
new file mode 100644
index 0000000000..4654c06fbc
--- /dev/null
+++ b/themes/original/img/b_docs.png
Binary files differ
diff --git a/themes/original/img/b_docsql.png b/themes/original/img/b_docsql.png
new file mode 100644
index 0000000000..badb78d1cb
--- /dev/null
+++ b/themes/original/img/b_docsql.png
Binary files differ
diff --git a/themes/original/img/b_drop.png b/themes/original/img/b_drop.png
new file mode 100644
index 0000000000..6fc4d3b203
--- /dev/null
+++ b/themes/original/img/b_drop.png
Binary files differ
diff --git a/themes/original/img/b_edit.png b/themes/original/img/b_edit.png
new file mode 100644
index 0000000000..05711a0948
--- /dev/null
+++ b/themes/original/img/b_edit.png
Binary files differ
diff --git a/themes/original/img/b_empty.png b/themes/original/img/b_empty.png
new file mode 100644
index 0000000000..b4c30f9515
--- /dev/null
+++ b/themes/original/img/b_empty.png
Binary files differ
diff --git a/themes/original/img/b_engine.png b/themes/original/img/b_engine.png
new file mode 100644
index 0000000000..d47891835f
--- /dev/null
+++ b/themes/original/img/b_engine.png
Binary files differ
diff --git a/themes/original/img/b_export.png b/themes/original/img/b_export.png
new file mode 100644
index 0000000000..03c1369961
--- /dev/null
+++ b/themes/original/img/b_export.png
Binary files differ
diff --git a/themes/original/img/b_firstpage.png b/themes/original/img/b_firstpage.png
new file mode 100644
index 0000000000..d172f4ec91
--- /dev/null
+++ b/themes/original/img/b_firstpage.png
Binary files differ
diff --git a/themes/original/img/b_ftext.png b/themes/original/img/b_ftext.png
new file mode 100644
index 0000000000..9247c31041
--- /dev/null
+++ b/themes/original/img/b_ftext.png
Binary files differ
diff --git a/themes/original/img/b_help.png b/themes/original/img/b_help.png
new file mode 100644
index 0000000000..82a55ce372
--- /dev/null
+++ b/themes/original/img/b_help.png
Binary files differ
diff --git a/themes/original/img/b_home.png b/themes/original/img/b_home.png
new file mode 100644
index 0000000000..74e711b91e
--- /dev/null
+++ b/themes/original/img/b_home.png
Binary files differ
diff --git a/themes/original/img/b_import.png b/themes/original/img/b_import.png
new file mode 100644
index 0000000000..6f8c8611f7
--- /dev/null
+++ b/themes/original/img/b_import.png
Binary files differ
diff --git a/themes/original/img/b_index.png b/themes/original/img/b_index.png
new file mode 100644
index 0000000000..8f7373cbd4
--- /dev/null
+++ b/themes/original/img/b_index.png
Binary files differ
diff --git a/themes/original/img/b_info.png b/themes/original/img/b_info.png
new file mode 100644
index 0000000000..09be193820
--- /dev/null
+++ b/themes/original/img/b_info.png
Binary files differ
diff --git a/themes/original/img/b_insrow.png b/themes/original/img/b_insrow.png
new file mode 100644
index 0000000000..3913b4a652
--- /dev/null
+++ b/themes/original/img/b_insrow.png
Binary files differ
diff --git a/themes/original/img/b_lastpage.png b/themes/original/img/b_lastpage.png
new file mode 100644
index 0000000000..c3ca09654e
--- /dev/null
+++ b/themes/original/img/b_lastpage.png
Binary files differ
diff --git a/themes/original/img/b_minus.png b/themes/original/img/b_minus.png
new file mode 100644
index 0000000000..bd87ad5860
--- /dev/null
+++ b/themes/original/img/b_minus.png
Binary files differ
diff --git a/themes/original/img/b_newdb.png b/themes/original/img/b_newdb.png
new file mode 100644
index 0000000000..6b27550de3
--- /dev/null
+++ b/themes/original/img/b_newdb.png
Binary files differ
diff --git a/themes/original/img/b_newtbl.png b/themes/original/img/b_newtbl.png
new file mode 100644
index 0000000000..5b163990f0
--- /dev/null
+++ b/themes/original/img/b_newtbl.png
Binary files differ
diff --git a/themes/original/img/b_nextpage.png b/themes/original/img/b_nextpage.png
new file mode 100644
index 0000000000..57482d3590
--- /dev/null
+++ b/themes/original/img/b_nextpage.png
Binary files differ
diff --git a/themes/original/img/b_pdfdoc.png b/themes/original/img/b_pdfdoc.png
new file mode 100644
index 0000000000..281bdf1b6c
--- /dev/null
+++ b/themes/original/img/b_pdfdoc.png
Binary files differ
diff --git a/themes/original/img/b_plus.png b/themes/original/img/b_plus.png
new file mode 100644
index 0000000000..84b1d688d5
--- /dev/null
+++ b/themes/original/img/b_plus.png
Binary files differ
diff --git a/themes/original/img/b_prevpage.png b/themes/original/img/b_prevpage.png
new file mode 100644
index 0000000000..51d47a4015
--- /dev/null
+++ b/themes/original/img/b_prevpage.png
Binary files differ
diff --git a/themes/original/img/b_primary.png b/themes/original/img/b_primary.png
new file mode 100644
index 0000000000..7dcef33322
--- /dev/null
+++ b/themes/original/img/b_primary.png
Binary files differ
diff --git a/themes/original/img/b_print.png b/themes/original/img/b_print.png
new file mode 100644
index 0000000000..0f259ebf9e
--- /dev/null
+++ b/themes/original/img/b_print.png
Binary files differ
diff --git a/themes/original/img/b_props.png b/themes/original/img/b_props.png
new file mode 100644
index 0000000000..9799eaff29
--- /dev/null
+++ b/themes/original/img/b_props.png
Binary files differ
diff --git a/themes/original/img/b_relations.png b/themes/original/img/b_relations.png
new file mode 100644
index 0000000000..265510c11a
--- /dev/null
+++ b/themes/original/img/b_relations.png
Binary files differ
diff --git a/themes/original/img/b_save.png b/themes/original/img/b_save.png
new file mode 100644
index 0000000000..b89b1c0e6f
--- /dev/null
+++ b/themes/original/img/b_save.png
Binary files differ
diff --git a/themes/original/img/b_sbrowse.png b/themes/original/img/b_sbrowse.png
new file mode 100644
index 0000000000..4dc16720c5
--- /dev/null
+++ b/themes/original/img/b_sbrowse.png
Binary files differ
diff --git a/themes/original/img/b_sdb.png b/themes/original/img/b_sdb.png
new file mode 100644
index 0000000000..3d3c3a7ba0
--- /dev/null
+++ b/themes/original/img/b_sdb.png
Binary files differ
diff --git a/themes/original/img/b_search.png b/themes/original/img/b_search.png
new file mode 100644
index 0000000000..24e1ec6263
--- /dev/null
+++ b/themes/original/img/b_search.png
Binary files differ
diff --git a/themes/original/img/b_selboard.png b/themes/original/img/b_selboard.png
new file mode 100644
index 0000000000..3fa6e3dbd9
--- /dev/null
+++ b/themes/original/img/b_selboard.png
Binary files differ
diff --git a/themes/original/img/b_select.png b/themes/original/img/b_select.png
new file mode 100644
index 0000000000..fcb646a7af
--- /dev/null
+++ b/themes/original/img/b_select.png
Binary files differ
diff --git a/themes/original/img/b_sql.png b/themes/original/img/b_sql.png
new file mode 100644
index 0000000000..604e35e6be
--- /dev/null
+++ b/themes/original/img/b_sql.png
Binary files differ
diff --git a/themes/original/img/b_sqldoc.png b/themes/original/img/b_sqldoc.png
new file mode 100644
index 0000000000..1d023b4914
--- /dev/null
+++ b/themes/original/img/b_sqldoc.png
Binary files differ
diff --git a/themes/original/img/b_sqlhelp.png b/themes/original/img/b_sqlhelp.png
new file mode 100644
index 0000000000..ec85f83d38
--- /dev/null
+++ b/themes/original/img/b_sqlhelp.png
Binary files differ
diff --git a/themes/original/img/b_tblanalyse.png b/themes/original/img/b_tblanalyse.png
new file mode 100644
index 0000000000..7890134605
--- /dev/null
+++ b/themes/original/img/b_tblanalyse.png
Binary files differ
diff --git a/themes/original/img/b_tblexport.png b/themes/original/img/b_tblexport.png
new file mode 100644
index 0000000000..ffdfa09b9f
--- /dev/null
+++ b/themes/original/img/b_tblexport.png
Binary files differ
diff --git a/themes/original/img/b_tblimport.png b/themes/original/img/b_tblimport.png
new file mode 100644
index 0000000000..eccb7d5ab4
--- /dev/null
+++ b/themes/original/img/b_tblimport.png
Binary files differ
diff --git a/themes/original/img/b_tblops.png b/themes/original/img/b_tblops.png
new file mode 100644
index 0000000000..a3774e559a
--- /dev/null
+++ b/themes/original/img/b_tblops.png
Binary files differ
diff --git a/themes/original/img/b_tbloptimize.png b/themes/original/img/b_tbloptimize.png
new file mode 100644
index 0000000000..9a239e2f79
--- /dev/null
+++ b/themes/original/img/b_tbloptimize.png
Binary files differ
diff --git a/themes/original/img/b_tipp.png b/themes/original/img/b_tipp.png
new file mode 100644
index 0000000000..2faf5abea8
--- /dev/null
+++ b/themes/original/img/b_tipp.png
Binary files differ
diff --git a/themes/original/img/b_unique.png b/themes/original/img/b_unique.png
new file mode 100644
index 0000000000..b949f4b33c
--- /dev/null
+++ b/themes/original/img/b_unique.png
Binary files differ
diff --git a/themes/original/img/b_usradd.png b/themes/original/img/b_usradd.png
new file mode 100644
index 0000000000..fe03e8bd2a
--- /dev/null
+++ b/themes/original/img/b_usradd.png
Binary files differ
diff --git a/themes/original/img/b_usrcheck.png b/themes/original/img/b_usrcheck.png
new file mode 100644
index 0000000000..424538bf6b
--- /dev/null
+++ b/themes/original/img/b_usrcheck.png
Binary files differ
diff --git a/themes/original/img/b_usrdrop.png b/themes/original/img/b_usrdrop.png
new file mode 100644
index 0000000000..9d1eee5fd6
--- /dev/null
+++ b/themes/original/img/b_usrdrop.png
Binary files differ
diff --git a/themes/original/img/b_usredit.png b/themes/original/img/b_usredit.png
new file mode 100644
index 0000000000..41c803daf1
--- /dev/null
+++ b/themes/original/img/b_usredit.png
Binary files differ
diff --git a/themes/original/img/b_usrlist.png b/themes/original/img/b_usrlist.png
new file mode 100644
index 0000000000..85b5df0994
--- /dev/null
+++ b/themes/original/img/b_usrlist.png
Binary files differ
diff --git a/themes/original/img/b_view.png b/themes/original/img/b_view.png
new file mode 100644
index 0000000000..c987bbb7dc
--- /dev/null
+++ b/themes/original/img/b_view.png
Binary files differ
diff --git a/themes/original/img/b_views.png b/themes/original/img/b_views.png
new file mode 100644
index 0000000000..4736603a52
--- /dev/null
+++ b/themes/original/img/b_views.png
Binary files differ
diff --git a/themes/original/img/bd_browse.png b/themes/original/img/bd_browse.png
new file mode 100644
index 0000000000..90e3e780f4
--- /dev/null
+++ b/themes/original/img/bd_browse.png
Binary files differ
diff --git a/themes/original/img/bd_deltbl.png b/themes/original/img/bd_deltbl.png
new file mode 100644
index 0000000000..77995e4523
--- /dev/null
+++ b/themes/original/img/bd_deltbl.png
Binary files differ
diff --git a/themes/original/img/bd_drop.png b/themes/original/img/bd_drop.png
new file mode 100644
index 0000000000..15c70d676b
--- /dev/null
+++ b/themes/original/img/bd_drop.png
Binary files differ
diff --git a/themes/original/img/bd_empty.png b/themes/original/img/bd_empty.png
new file mode 100644
index 0000000000..546b7d00a7
--- /dev/null
+++ b/themes/original/img/bd_empty.png
Binary files differ
diff --git a/themes/original/img/bd_firstpage.png b/themes/original/img/bd_firstpage.png
new file mode 100644
index 0000000000..cd2ae4e619
--- /dev/null
+++ b/themes/original/img/bd_firstpage.png
Binary files differ
diff --git a/themes/original/img/bd_ftext.png b/themes/original/img/bd_ftext.png
new file mode 100644
index 0000000000..0082469c36
--- /dev/null
+++ b/themes/original/img/bd_ftext.png
Binary files differ
diff --git a/themes/original/img/bd_index.png b/themes/original/img/bd_index.png
new file mode 100644
index 0000000000..11101c9311
--- /dev/null
+++ b/themes/original/img/bd_index.png
Binary files differ
diff --git a/themes/original/img/bd_insrow.png b/themes/original/img/bd_insrow.png
new file mode 100644
index 0000000000..d3c9b7b0b0
--- /dev/null
+++ b/themes/original/img/bd_insrow.png
Binary files differ
diff --git a/themes/original/img/bd_lastpage.png b/themes/original/img/bd_lastpage.png
new file mode 100644
index 0000000000..64c191067d
--- /dev/null
+++ b/themes/original/img/bd_lastpage.png
Binary files differ
diff --git a/themes/original/img/bd_nextpage.png b/themes/original/img/bd_nextpage.png
new file mode 100644
index 0000000000..528fc6abbf
--- /dev/null
+++ b/themes/original/img/bd_nextpage.png
Binary files differ
diff --git a/themes/original/img/bd_prevpage.png b/themes/original/img/bd_prevpage.png
new file mode 100644
index 0000000000..d78bed932d
--- /dev/null
+++ b/themes/original/img/bd_prevpage.png
Binary files differ
diff --git a/themes/original/img/bd_primary.png b/themes/original/img/bd_primary.png
new file mode 100644
index 0000000000..6b0b519932
--- /dev/null
+++ b/themes/original/img/bd_primary.png
Binary files differ
diff --git a/themes/original/img/bd_sbrowse.png b/themes/original/img/bd_sbrowse.png
new file mode 100644
index 0000000000..b75de1a05d
--- /dev/null
+++ b/themes/original/img/bd_sbrowse.png
Binary files differ
diff --git a/themes/original/img/bd_select.png b/themes/original/img/bd_select.png
new file mode 100644
index 0000000000..d15b24a74e
--- /dev/null
+++ b/themes/original/img/bd_select.png
Binary files differ
diff --git a/themes/original/img/bd_unique.png b/themes/original/img/bd_unique.png
new file mode 100644
index 0000000000..6c29dd565f
--- /dev/null
+++ b/themes/original/img/bd_unique.png
Binary files differ
diff --git a/themes/original/img/error.ico b/themes/original/img/error.ico
new file mode 100644
index 0000000000..41d26d6389
--- /dev/null
+++ b/themes/original/img/error.ico
Binary files differ
diff --git a/themes/original/img/item.png b/themes/original/img/item.png
new file mode 100644
index 0000000000..46872bf352
--- /dev/null
+++ b/themes/original/img/item.png
Binary files differ
diff --git a/themes/original/img/item_ltr.png b/themes/original/img/item_ltr.png
new file mode 100644
index 0000000000..35b4945c96
--- /dev/null
+++ b/themes/original/img/item_ltr.png
Binary files differ
diff --git a/themes/original/img/item_rtl.png b/themes/original/img/item_rtl.png
new file mode 100644
index 0000000000..dc6663d34b
--- /dev/null
+++ b/themes/original/img/item_rtl.png
Binary files differ
diff --git a/themes/original/img/logo_left.png b/themes/original/img/logo_left.png
new file mode 100644
index 0000000000..26acf2e3bf
--- /dev/null
+++ b/themes/original/img/logo_left.png
Binary files differ
diff --git a/themes/original/img/logo_right.png b/themes/original/img/logo_right.png
new file mode 100644
index 0000000000..44da9f28df
--- /dev/null
+++ b/themes/original/img/logo_right.png
Binary files differ
diff --git a/themes/original/img/php_sym.png b/themes/original/img/php_sym.png
new file mode 100644
index 0000000000..d66010f4ca
--- /dev/null
+++ b/themes/original/img/php_sym.png
Binary files differ
diff --git a/themes/original/img/pma_logo2.png b/themes/original/img/pma_logo2.png
new file mode 100644
index 0000000000..7f80d09650
--- /dev/null
+++ b/themes/original/img/pma_logo2.png
Binary files differ
diff --git a/themes/original/img/s_asc.png b/themes/original/img/s_asc.png
new file mode 100644
index 0000000000..9990376f50
--- /dev/null
+++ b/themes/original/img/s_asc.png
Binary files differ
diff --git a/themes/original/img/s_asci.png b/themes/original/img/s_asci.png
new file mode 100644
index 0000000000..6b7302f750
--- /dev/null
+++ b/themes/original/img/s_asci.png
Binary files differ
diff --git a/themes/original/img/s_attention.png b/themes/original/img/s_attention.png
new file mode 100644
index 0000000000..69131c0140
--- /dev/null
+++ b/themes/original/img/s_attention.png
Binary files differ
diff --git a/themes/original/img/s_cancel.png b/themes/original/img/s_cancel.png
new file mode 100644
index 0000000000..a533c34dd2
--- /dev/null
+++ b/themes/original/img/s_cancel.png
Binary files differ
diff --git a/themes/original/img/s_cancel2.png b/themes/original/img/s_cancel2.png
new file mode 100644
index 0000000000..7911f69c88
--- /dev/null
+++ b/themes/original/img/s_cancel2.png
Binary files differ
diff --git a/themes/original/img/s_db.png b/themes/original/img/s_db.png
new file mode 100644
index 0000000000..7a79edde9e
--- /dev/null
+++ b/themes/original/img/s_db.png
Binary files differ
diff --git a/themes/original/img/s_desc.png b/themes/original/img/s_desc.png
new file mode 100644
index 0000000000..a03226d9ba
--- /dev/null
+++ b/themes/original/img/s_desc.png
Binary files differ
diff --git a/themes/original/img/s_error.png b/themes/original/img/s_error.png
new file mode 100644
index 0000000000..4e5ba13273
--- /dev/null
+++ b/themes/original/img/s_error.png
Binary files differ
diff --git a/themes/original/img/s_error2.png b/themes/original/img/s_error2.png
new file mode 100644
index 0000000000..d9a78a7105
--- /dev/null
+++ b/themes/original/img/s_error2.png
Binary files differ
diff --git a/themes/original/img/s_fulltext.png b/themes/original/img/s_fulltext.png
new file mode 100644
index 0000000000..291d223005
--- /dev/null
+++ b/themes/original/img/s_fulltext.png
Binary files differ
diff --git a/themes/original/img/s_host.png b/themes/original/img/s_host.png
new file mode 100644
index 0000000000..afc321def0
--- /dev/null
+++ b/themes/original/img/s_host.png
Binary files differ
diff --git a/themes/original/img/s_info.png b/themes/original/img/s_info.png
new file mode 100644
index 0000000000..0d3cbb662b
--- /dev/null
+++ b/themes/original/img/s_info.png
Binary files differ
diff --git a/themes/original/img/s_lang.png b/themes/original/img/s_lang.png
new file mode 100644
index 0000000000..8b2330cf0d
--- /dev/null
+++ b/themes/original/img/s_lang.png
Binary files differ
diff --git a/themes/original/img/s_loggoff.png b/themes/original/img/s_loggoff.png
new file mode 100644
index 0000000000..b4b4dcaff5
--- /dev/null
+++ b/themes/original/img/s_loggoff.png
Binary files differ
diff --git a/themes/original/img/s_notice.png b/themes/original/img/s_notice.png
new file mode 100644
index 0000000000..f581829e89
--- /dev/null
+++ b/themes/original/img/s_notice.png
Binary files differ
diff --git a/themes/original/img/s_okay.png b/themes/original/img/s_okay.png
new file mode 100644
index 0000000000..99a0d05d5d
--- /dev/null
+++ b/themes/original/img/s_okay.png
Binary files differ
diff --git a/themes/original/img/s_partialtext.png b/themes/original/img/s_partialtext.png
new file mode 100644
index 0000000000..2c88fce533
--- /dev/null
+++ b/themes/original/img/s_partialtext.png
Binary files differ
diff --git a/themes/original/img/s_passwd.png b/themes/original/img/s_passwd.png
new file mode 100644
index 0000000000..2494664e00
--- /dev/null
+++ b/themes/original/img/s_passwd.png
Binary files differ
diff --git a/themes/original/img/s_process.png b/themes/original/img/s_process.png
new file mode 100644
index 0000000000..1d1c03596a
--- /dev/null
+++ b/themes/original/img/s_process.png
Binary files differ
diff --git a/themes/original/img/s_really.png b/themes/original/img/s_really.png
new file mode 100644
index 0000000000..8c1ca1bd45
--- /dev/null
+++ b/themes/original/img/s_really.png
Binary files differ
diff --git a/themes/original/img/s_reload.png b/themes/original/img/s_reload.png
new file mode 100644
index 0000000000..754361eb8f
--- /dev/null
+++ b/themes/original/img/s_reload.png
Binary files differ
diff --git a/themes/original/img/s_rights.png b/themes/original/img/s_rights.png
new file mode 100644
index 0000000000..e1a6383013
--- /dev/null
+++ b/themes/original/img/s_rights.png
Binary files differ
diff --git a/themes/original/img/s_status.png b/themes/original/img/s_status.png
new file mode 100644
index 0000000000..1584233b3c
--- /dev/null
+++ b/themes/original/img/s_status.png
Binary files differ
diff --git a/themes/original/img/s_success.png b/themes/original/img/s_success.png
new file mode 100644
index 0000000000..2f86f0ae6b
--- /dev/null
+++ b/themes/original/img/s_success.png
Binary files differ
diff --git a/themes/original/img/s_tbl.png b/themes/original/img/s_tbl.png
new file mode 100644
index 0000000000..a821236361
--- /dev/null
+++ b/themes/original/img/s_tbl.png
Binary files differ
diff --git a/themes/original/img/s_theme.png b/themes/original/img/s_theme.png
new file mode 100644
index 0000000000..cab68be5a8
--- /dev/null
+++ b/themes/original/img/s_theme.png
Binary files differ
diff --git a/themes/original/img/s_vars.png b/themes/original/img/s_vars.png
new file mode 100644
index 0000000000..9be38ecb05
--- /dev/null
+++ b/themes/original/img/s_vars.png
Binary files differ
diff --git a/themes/original/img/s_views.png b/themes/original/img/s_views.png
new file mode 100644
index 0000000000..1f2ed03e4e
--- /dev/null
+++ b/themes/original/img/s_views.png
Binary files differ
diff --git a/themes/original/img/s_warn.png b/themes/original/img/s_warn.png
new file mode 100644
index 0000000000..80d2824084
--- /dev/null
+++ b/themes/original/img/s_warn.png
Binary files differ
diff --git a/themes/original/img/spacer.png b/themes/original/img/spacer.png
new file mode 100644
index 0000000000..bf867a3987
--- /dev/null
+++ b/themes/original/img/spacer.png
Binary files differ
diff --git a/themes/original/img/vertical_line.png b/themes/original/img/vertical_line.png
new file mode 100644
index 0000000000..c514d61608
--- /dev/null
+++ b/themes/original/img/vertical_line.png
Binary files differ
diff --git a/themes/original/img/window-new.png b/themes/original/img/window-new.png
new file mode 100644
index 0000000000..0e12ef954c
--- /dev/null
+++ b/themes/original/img/window-new.png
Binary files differ
diff --git a/themes/original/info.inc.php b/themes/original/info.inc.php
new file mode 100644
index 0000000000..0608898feb
--- /dev/null
+++ b/themes/original/info.inc.php
@@ -0,0 +1,16 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Theme information
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Original
+ */
+
+/**
+ *
+ */
+$theme_name = 'Original';
+$theme_full_version = '2.9';
+?>
diff --git a/themes/original/layout.inc.php b/themes/original/layout.inc.php
new file mode 100644
index 0000000000..909320a361
--- /dev/null
+++ b/themes/original/layout.inc.php
@@ -0,0 +1,116 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * configures general layout
+ * for detailed layout configuration please refer to the css files
+ *
+ * @version $Id$
+ * @package phpMyAdmin-theme
+ * @subpackage Original
+ */
+
+/**
+ * navi frame
+ */
+// navi frame width
+$GLOBALS['cfg']['NaviWidth'] = 200;
+
+// foreground (text) color for the navi frame
+$GLOBALS['cfg']['NaviColor'] = '#000000';
+
+// background for the navi frame
+$GLOBALS['cfg']['NaviBackground'] = '#D0DCE0';
+
+// foreground (text) color of the pointer in navi frame
+$GLOBALS['cfg']['NaviPointerColor'] = '#000000';
+// background of the pointer in navi frame
+$GLOBALS['cfg']['NaviPointerBackground'] = '#9999CC';
+// text color of the selected database name (when showing the table list)
+$GLOBALS['cfg']['NaviDatabaseNameColor'] = '#0000FF';
+
+/**
+ * main frame
+ */
+// foreground (text) color for the main frame
+$GLOBALS['cfg']['MainColor'] = '#000000';
+
+// background for the main frame
+$GLOBALS['cfg']['MainBackground'] = '#F5F5F5';
+//$GLOBALS['cfg']['MainBackground'] = '#F5F5F5 url(' . $_SESSION['PMA_Theme']->getImgPath() . 'vertical_line.png) repeat-y';
+
+// foreground (text) color of the pointer in browse mode
+$GLOBALS['cfg']['BrowsePointerColor'] = '#000000';
+
+// background of the pointer in browse mode
+$GLOBALS['cfg']['BrowsePointerBackground'] = '#CCFFCC';
+
+// foreground (text) color of the marker (visually marks row by clicking on it) in browse mode
+$GLOBALS['cfg']['BrowseMarkerColor'] = '#000000';
+
+// background of the marker (visually marks row by clicking on it) in browse mode
+$GLOBALS['cfg']['BrowseMarkerBackground'] = '#FFCC99';
+
+/**
+ * fonts
+ */
+/**
+ * the font family as a valid css font family value,
+ * if not set the browser default will be used
+ * (depending on browser, DTD and system settings)
+ */
+$GLOBALS['cfg']['FontFamily'] = 'sans-serif';
+/**
+ * fixed width font family, used in textarea
+ */
+$GLOBALS['cfg']['FontFamilyFixed'] = 'monospace';
+
+/**
+ * tables
+ */
+// border
+$GLOBALS['cfg']['Border'] = 0;
+// table header and footer color
+$GLOBALS['cfg']['ThBackground'] = '#D3DCE3';
+// table header and footer background
+$GLOBALS['cfg']['ThColor'] = '#000000';
+// table data row background
+$GLOBALS['cfg']['BgOne'] = '#E5E5E5';
+// table data row background, alternate
+$GLOBALS['cfg']['BgTwo'] = '#D5D5D5';
+
+/**
+ * query window
+ */
+// Width of Query window
+$GLOBALS['cfg']['QueryWindowWidth'] = 600;
+// Height of Query window
+$GLOBALS['cfg']['QueryWindowHeight'] = 400;
+
+/**
+ * SQL Parser Settings
+ * Syntax colouring data
+ */
+$GLOBALS['cfg']['SQP']['fmtColor'] = array(
+ 'comment' => '#808000',
+ 'comment_mysql' => '',
+ 'comment_ansi' => '',
+ 'comment_c' => '',
+ 'digit' => '',
+ 'digit_hex' => 'teal',
+ 'digit_integer' => 'teal',
+ 'digit_float' => 'aqua',
+ 'punct' => 'fuchsia',
+ 'alpha' => '',
+ 'alpha_columnType' => '#FF9900',
+ 'alpha_columnAttrib' => '#0000FF',
+ 'alpha_reservedWord' => '#990099',
+ 'alpha_functionName' => '#FF0000',
+ 'alpha_identifier' => 'black',
+ 'alpha_charset' => '#6495ed',
+ 'alpha_variable' => '#800000',
+ 'quote' => '#008000',
+ 'quote_double' => '',
+ 'quote_single' => '',
+ 'quote_backtick' => ''
+);
+?>
diff --git a/themes/original/screen.png b/themes/original/screen.png
new file mode 100644
index 0000000000..1b5c01b927
--- /dev/null
+++ b/themes/original/screen.png
Binary files differ
diff --git a/transformation_overview.php b/transformation_overview.php
new file mode 100644
index 0000000000..d6b5989d2d
--- /dev/null
+++ b/transformation_overview.php
@@ -0,0 +1,72 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ * Don't display the page heading
+ */
+define('PMA_DISPLAY_HEADING', 0);
+
+/**
+ * Gets some core libraries and displays a top message if required
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/header.inc.php';
+require_once './libraries/transformations.lib.php';
+
+$types = PMA_getAvailableMIMEtypes();
+?>
+
+<h2><?php echo $strMIME_available_mime; ?></h2>
+<?php
+foreach ($types['mimetype'] as $key => $mimetype) {
+
+ if (isset($types['empty_mimetype'][$mimetype])) {
+ echo '<i>' . $mimetype . '</i><br />';
+ } else {
+ echo $mimetype . '<br />';
+ }
+
+}
+?>
+<br />
+<i>(<?php echo $strMIME_without; ?>)</i>
+
+<br />
+<br />
+<br />
+<h2><?php echo $strMIME_available_transform; ?></h2>
+<table border="0" width="90%">
+<thead>
+<tr>
+ <th><?php echo $strMIME_transformation; ?></th>
+ <th><?php echo $strMIME_description; ?></th>
+</tr>
+</thead>
+<tbody>
+<?php
+$odd_row = true;
+foreach ($types['transformation'] as $key => $transform) {
+ $func = strtolower(str_ireplace('.inc.php', '', $types['transformation_file'][$key]));
+ $desc = 'strTransformation_' . $func;
+ ?>
+ <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
+ <td><?php echo $transform; ?></td>
+ <td><?php echo (isset($$desc) ? $$desc : '<i>' . sprintf($strMIME_nodescription, 'PMA_transformation_' . $func . '()') . '</i>'); ?></td>
+ </tr>
+ <?php
+ $odd_row = !$odd_row;
+}
+?>
+</tbody>
+</table>
+
+<?php
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/transformation_wrapper.php b/transformation_wrapper.php
new file mode 100644
index 0000000000..c965f14825
--- /dev/null
+++ b/transformation_wrapper.php
@@ -0,0 +1,117 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ *
+ * @version $Id$
+ */
+
+/**
+ *
+ */
+define('IS_TRANSFORMATION_WRAPPER', true);
+
+/**
+ * Gets a core script and starts output buffering work
+ */
+require_once './libraries/common.inc.php';
+require_once './libraries/relation.lib.php'; // foreign keys
+require_once './libraries/transformations.lib.php'; // Transformations
+$cfgRelation = PMA_getRelationsParam();
+
+/**
+ * Ensures db and table are valid, else moves to the "parent" script
+ */
+require_once './libraries/db_table_exists.lib.php';
+
+
+/**
+ * Get the list of the fields of the current table
+ */
+PMA_DBI_select_db($db);
+$table_def = PMA_DBI_query('SHOW FIELDS FROM ' . PMA_backquote($table), null, PMA_DBI_QUERY_STORE);
+if (isset($primary_key)) {
+ $result = PMA_DBI_query('SELECT * FROM ' . PMA_backquote($table) . ' WHERE ' . $primary_key . ';', null, PMA_DBI_QUERY_STORE);
+ $row = PMA_DBI_fetch_assoc($result);
+} else {
+ $result = PMA_DBI_query('SELECT * FROM ' . PMA_backquote($table) . ' LIMIT 1;', null, PMA_DBI_QUERY_STORE);
+ $row = PMA_DBI_fetch_assoc($result);
+}
+
+// No row returned
+if (!$row) {
+ exit;
+} // end if (no record returned)
+
+$default_ct = 'application/octet-stream';
+
+if ($cfgRelation['commwork'] && $cfgRelation['mimework']) {
+ $mime_map = PMA_getMime($db, $table);
+ $mime_options = PMA_transformation_getOptions((isset($mime_map[$transform_key]['transformation_options']) ? $mime_map[$transform_key]['transformation_options'] : ''));
+
+ foreach ($mime_options AS $key => $option) {
+ if (substr($option, 0, 10) == '; charset=') {
+ $mime_options['charset'] = $option;
+ }
+ }
+}
+
+// garvin: For re-usability, moved http-headers and stylesheets
+// to a seperate file. It can now be included by libraries/header.inc.php,
+// querywindow.php.
+
+require_once './libraries/header_http.inc.php';
+// [MIME]
+if (isset($ct) && !empty($ct)) {
+ $content_type = 'Content-Type: ' . $ct;
+} else {
+ $content_type = 'Content-Type: ' . (isset($mime_map[$transform_key]['mimetype']) ? str_replace('_', '/', $mime_map[$transform_key]['mimetype']) : $default_ct) . (isset($mime_options['charset']) ? $mime_options['charset'] : '');
+}
+header($content_type);
+
+if (isset($cn) && !empty($cn)) {
+ header('Content-Disposition: attachment; filename=' . $cn);
+}
+
+if (!isset($resize)) {
+ echo $row[$transform_key];
+} else {
+ // if image_*__inline.inc.php finds that we can resize,
+ // it sets $resize to jpeg or png
+
+ $srcImage = imagecreatefromstring($row[$transform_key]);
+ $srcWidth = ImageSX($srcImage);
+ $srcHeight = ImageSY($srcImage);
+
+ // Check to see if the width > height or if width < height
+ // if so adjust accordingly to make sure the image
+ // stays smaller then the $newWidth and $newHeight
+
+ $ratioWidth = $srcWidth/$newWidth;
+ $ratioHeight = $srcHeight/$newHeight;
+
+ if ($ratioWidth < $ratioHeight){
+ $destWidth = $srcWidth/$ratioHeight;
+ $destHeight = $newHeight;
+ } else {
+ $destWidth = $newWidth;
+ $destHeight = $srcHeight/$ratioWidth;
+ }
+
+ if ($resize) {
+ $destImage = ImageCreateTrueColor($destWidth, $destHeight);
+ }
+
+// ImageCopyResized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
+// better quality but slower:
+ ImageCopyResampled($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
+
+ if ($resize == 'jpeg') {
+ ImageJPEG($destImage, '', 75);
+ }
+ if ($resize == 'png') {
+ ImagePNG($destImage);
+ }
+ ImageDestroy($srcImage);
+ ImageDestroy($destImage);
+}
+?>
diff --git a/translators.html b/translators.html
new file mode 100644
index 0000000000..7d659ace6c
--- /dev/null
+++ b/translators.html
@@ -0,0 +1,440 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
+ version="-//W3C//DTD XHTML 1.1//EN" dir="ltr">
+<!-- $Id$ -->
+
+<head>
+ <link rel="icon" href="./favicon.ico" type="image/x-icon" />
+ <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>phpMyAdmin 3.1.0-dev - Official translators</title>
+ <link rel="stylesheet" type="text/css" href="docs.css" />
+</head>
+
+<body>
+
+<!-- TOP MENU -->
+<ul class="header">
+ <li><a href="Documentation.html#top">Top</a></li>
+ <li><a href="Documentation.html#require">Requirements</a></li>
+ <li><a href="Documentation.html#intro">Introduction</a></li>
+ <li><a href="Documentation.html#setup">Installation</a></li>
+ <li><a href="Documentation.html#setup_script">Setup script</a></li>
+ <li><a href="Documentation.html#config">Configuration</a></li>
+ <li><a href="Documentation.html#transformations">Transformations</a></li>
+ <li><a href="Documentation.html#faq"><abbr title="Frequently Asked Questions">
+ FAQ</abbr></a></li>
+ <li><a href="Documentation.html#developers">Developers</a></li>
+ <li><a href="Documentation.html#credits">Credits</a></li>
+ <li><a href="translators.html">Translators</a></li>
+ <li><a href="Documentation.html#glossary">Glossary</a></li>
+</ul>
+
+<h1>phpMyAdmin 3.1.0-dev official translators list</h1>
+
+<p> Here is the list of the &quot;official translators&quot; of
+ phpMyAdmin.</p>
+
+<p> <span class="important">If you want to suggest some improvements on a
+ translation please ask them</span>: we (the phpMyAdmin developement team)
+ don't know anything about most of these languages and then we can't have
+ any opinion on grammar issues or bad translations!</p>
+
+<p> All translations listed here are included in this distribution.
+ <span class="important">Please do <b>not</b> ask the translators to send
+ you a localized phpMyAdmin version!</span></p>
+
+<p> <span class="important">Please do <b>not</b> expect the translators to
+ provide e-mail support.</span></p>
+
+<table class="translators">
+<tr>
+ <th>Language</th>
+ <th>Official translator(s)</th>
+</tr>
+
+<tr>
+ <td>Afrikaans</td>
+ <td>
+ volunteer needed
+ </td>
+</tr>
+
+<tr>
+ <td>Albanian</td>
+ <td>
+ Laurent Dhima (laurenti@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Arabic</td>
+ <td>
+ &quot;Fisal&quot;(fisal77@hotmail.com)<br />
+ Tarik kallida (kallida@caramail.com)<br />
+ Ossama Khayat (ossamak@nht.com.kw)
+ </td>
+</tr>
+
+<tr>
+ <td>Azerbaijani</td>
+ <td>
+ Shehriyar Imanov (sheki@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Bangla</td>
+ <td>
+ Raquibul Islam (rana@ekushey.org)
+ </td>
+</tr>
+
+<tr>
+ <td>Basque</td>
+ <td>
+ Axier Lopez (axier@euskalerria.org)
+ </td>
+</tr>
+
+<tr>
+ <td>Belarusian</td>
+ <td>
+ Jaska Zedlik (jz53@zedlik.com)
+ </td>
+</tr>
+
+<tr>
+ <td>Bosnian</td>
+ <td>
+ Samir Kobiljak(aon.912547666@aon.at)
+ </td>
+</tr>
+
+<tr>
+ <td>Brazilian Portuguese</td>
+ <td>
+ Airon Luis Pereira (thedarkness@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Bulgarian</td>
+ <td>
+ Stanislav Yordanov (stan@stud.ru.acad.bg)
+ </td>
+</tr>
+
+<tr>
+ <td>Catalan</td>
+ <td>
+ Xavier Navarro (xvnavarro@gmail.com)
+ </td>
+</tr>
+
+<tr>
+ <td>Chinese Traditional (BIG5)</td>
+ <td>
+ Siu Sun (siusun@best-view.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Chinese Simplified (GB)</td>
+ <td>
+ Wang (fundawang@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Croatian</td>
+ <td>
+ Renato Pavicic (renato@translator-shop.org)
+ </td>
+</tr>
+
+<tr>
+ <td>Czech</td>
+ <td>
+ Michal Čihař (michal@cihar.com)
+ </td>
+</tr>
+
+<tr>
+ <td>Danish</td>
+ <td>
+ Finn Sorensen (dk_alleykat@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Dutch</td>
+ <td>
+ Ivo Teel (calimonk@gmx.net)
+ </td>
+</tr>
+
+<tr>
+ <td>English</td>
+ <td>
+ the phpMyAdmin development team (phpmyadmin-devel@lists.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Estonian</td>
+ <td>
+ Marko Ellermaa (uhuu@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Finnish</td>
+ <td>
+ Jouni Kahkonen (address withdrawn)
+ </td>
+</tr>
+
+<tr>
+ <td>French</td>
+ <td>
+ Marc Delisle (lem9@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Galician</td>
+ <td>
+ Xosé Calvo (xosecalvo@galizaweb.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Georgian</td>
+ <td>
+ volunteer needed
+ </td>
+</tr>
+
+<tr>
+ <td>German</td>
+ <td>
+ Alexander M. Turek (rabus@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Greek</td>
+ <td>
+ Kyriakos Xagoraris (theremon@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Hebrew</td>
+ <td>
+ Hadar Porat (hpman28@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Hindi</td>
+ <td>
+ volunteer needed
+ </td>
+</tr>
+
+<tr>
+ <td>Hungarian</td>
+ <td>
+ Jozsef Tamas Herczeg (localicer@gmail.com)
+ </td>
+</tr>
+
+<tr>
+ <td>Indonesian</td>
+ <td>
+ Rachim Tamsjadi (tamsy@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Italian</td>
+ <td>
+ Luca Rebellato (rebeluca@ngi.it)
+ </td>
+</tr>
+
+<tr>
+ <td>Japanese</td>
+ <td>
+ Tadashi Jokagi (elf2000@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Korean</td>
+ <td>
+ volunteer needed
+ </td>
+</tr>
+
+<tr>
+ <td>Latvian</td>
+ <td>
+ Sandis Jçrics (sandisj@parks.lv)
+ </td>
+</tr>
+
+<tr>
+ <td>Lithuanian</td>
+ <td>
+ Vilius Zigmantas (viliusz@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Malay</td>
+ <td>
+ volunteer needed
+ </td>
+</tr>
+
+<tr>
+ <td>Macedonian</td>
+ <td>
+ Dimce Grozdanoski (dimce.grozdanoski@ridarec.com)
+ </td>
+</tr>
+
+<tr>
+ <td>Mongolian</td>
+ <td>
+ Bayarsaikhan Enkhtaivan (bayaraa@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Norwegian</td>
+ <td>
+ Sven-Erik Andersen (sven_erik@andersen.as)
+ </td>
+</tr>
+
+<tr>
+ <td>Persian</td>
+ <td>
+ Goolex (goolex@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Polish</td>
+ <td>
+ Jakub Wilk (ubanus@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Portuguese</td>
+ <td>
+ António Raposo (cfmsoft@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Romanian</td>
+ <td>
+ Sergiu Bivol (sbivol@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Russian</td>
+ <td>
+ Victor Volkov and project php-myadmin.ru
+ </td>
+</tr>
+
+<tr>
+ <td>Serbian</td>
+ <td>
+ Mihailo Stefanovic (mikis@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Sinhala</td>
+ <td>
+ H.Malinda Siriwardana (malindahs@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Slovak</td>
+ <td>
+ Ivan Kuriscak (shylauda69@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Slovenian</td>
+ <td>
+ Kositer Uros (urosh@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Spanish</td>
+ <td>
+ Dr. med. Daniel Hinostroza C. (phpmyadmin@cerebroperiferico.com)
+ </td>
+</tr>
+
+<tr>
+ <td>Swedish</td>
+ <td>
+ Björn T. Hallberg (bjornth@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Tatarish</td>
+ <td>
+ Albert Fazlí (amichauer@gmx.de)
+ </td>
+</tr>
+
+<tr>
+ <td>Thai</td>
+ <td>
+ Arthit Suriyawongkul (bacteria@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Turkish</td>
+ <td>
+ Burak Yavuz (bourock@users.sourceforge.net)
+ </td>
+</tr>
+
+<tr>
+ <td>Ukrainian</td>
+ <td>
+ Markijan Baran (marco@meduniv.lviv.ua)
+ </td>
+</tr>
+</table>
+
+<p id="bottom">
+ <a href="http://validator.w3.org/check/referer">
+ <img src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1!"
+ height="31" width="88" /></a>
+ <a href="http://jigsaw.w3.org/css-validator/">
+ <img src="http://www.w3.org/Icons/valid-css" alt="Valid CSS!" width="88"
+ height="31" /></a></p>
+
+</body>
+</html>
diff --git a/user_password.php b/user_password.php
new file mode 100644
index 0000000000..51c0fb6f09
--- /dev/null
+++ b/user_password.php
@@ -0,0 +1,140 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * displays and handles the form where the user can change his password
+ * linked from main.php
+ *
+ * @uses $GLOBALS['strUpdateProfileMessage']
+ * @uses $GLOBALS['strBack']
+ * @uses $GLOBALS['js_include']
+ * @uses $GLOBALS['strChangePassword']
+ * @uses $GLOBALS['strPasswordEmpty']
+ * @uses $GLOBALS['strPasswordNotSame']
+ * @uses $GLOBALS['strError']
+ * @uses $GLOBALS['strNoRights']
+ * @uses $cfg['ShowChgPassword']
+ * @uses $cfg['Server']['auth_type']
+ * @uses PMA_DBI_select_db()
+ * @uses PMA_DBI_try_query()
+ * @uses PMA_DBI_getError()
+ * @uses PMA_sanitize()
+ * @uses PMA_generate_common_url()
+ * @uses PMA_isValid()
+ * @uses PMA_mysqlDie()
+ * @uses PMA_setCookie()
+ * @uses PMA_blowfish_encrypt()
+ * @uses PMA_showMessage()
+ * @uses define()
+ * @version $Id$
+ */
+
+/**
+ * no need for variables importing
+ */
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+
+/**
+ * Gets some core libraries
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Displays an error message and exits if the user isn't allowed to use this
+ * script
+ */
+if (!$cfg['ShowChgPassword']) {
+ $cfg['ShowChgPassword'] = PMA_DBI_select_db('mysql');
+}
+if ($cfg['Server']['auth_type'] == 'config' || !$cfg['ShowChgPassword']) {
+ require_once './libraries/header.inc.php';
+ PMA_Message::error('strNoRights')->display();
+ require_once './libraries/footer.inc.php';
+} // end if
+
+
+/**
+ * If the "change password" form has been submitted, checks for valid values
+ * and submit the query or logout
+ */
+if (isset($_REQUEST['nopass'])) {
+ // similar logic in server_privileges.php
+ $_error = false;
+
+ if ($_REQUEST['nopass'] == '1') {
+ $password = '';
+ } elseif (empty($_REQUEST['pma_pw']) || empty($_REQUEST['pma_pw2'])) {
+ $message = PMA_Message::error('strPasswordEmpty');
+ $_error = true;
+ } elseif ($_REQUEST['pma_pw'] != $_REQUEST['pma_pw2']) {
+ $message = PMA_Message::error('strPasswordNotSame');
+ $_error = true;
+ } else {
+ $password = $_REQUEST['pma_pw'];
+ }
+
+ if (! $_error) {
+
+ // Defines the url to return to in case of error in the sql statement
+ $_url_params = array();
+
+ $err_url = 'user_password.php' . PMA_generate_common_url($_url_params);
+ if (PMA_isValid($_REQUEST['pw_hash'], 'identical', 'old')) {
+ $hashing_function = 'OLD_PASSWORD';
+ } else {
+ $hashing_function = 'PASSWORD';
+ }
+
+ $sql_query = 'SET password = ' . (($password == '') ? '\'\'' : $hashing_function . '(\'***\')');
+ $local_query = 'SET password = ' . (($password == '') ? '\'\'' : $hashing_function . '(\'' . PMA_sqlAddslashes($password) . '\')');
+ $result = @PMA_DBI_try_query($local_query)
+ or PMA_mysqlDie(PMA_DBI_getError(), $sql_query, false, $err_url);
+
+ // Changes password cookie if required
+ // Duration = till the browser is closed for password (we don't want this to be saved)
+ if ($cfg['Server']['auth_type'] == 'cookie') {
+ PMA_setCookie('pmaPass-' . $server,
+ PMA_blowfish_encrypt($password, $GLOBALS['cfg']['blowfish_secret']));
+ } // end if
+
+ // For http auth. mode, the "back" link will also enforce new
+ // authentication
+ if ($cfg['Server']['auth_type'] == 'http') {
+ $_url_params['old_usr'] = 'relog';
+ }
+
+ // Displays the page
+ require_once './libraries/header.inc.php';
+ echo '<h1>' . $strChangePassword . '</h1>' . "\n\n";
+ PMA_showMessage($strUpdateProfileMessage, $sql_query, 'success');
+ ?>
+ <a href="index.php<?php echo PMA_generate_common_url($_url_params); ?>" target="_parent">
+ <strong><?php echo $strBack; ?></strong></a>
+ <?php
+ require_once './libraries/footer.inc.php';
+ } // end if
+} // end if
+
+
+/**
+ * If the "change password" form hasn't been submitted or the values submitted
+ * aren't valid -> displays the form
+ */
+// Loads the headers
+$GLOBALS['js_include'][] = 'server_privileges.js';
+require_once './libraries/header.inc.php';
+echo '<h1>' . $strChangePassword . '</h1>' . "\n\n";
+
+// Displays an error message if required
+if (isset($message)) {
+ $message->display();
+}
+
+require_once './libraries/display_change_password.lib.php';
+
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+?>
diff --git a/view_create.php b/view_create.php
new file mode 100644
index 0000000000..008f86dd12
--- /dev/null
+++ b/view_create.php
@@ -0,0 +1,190 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * handles creation of VIEWs
+ *
+ * @todo js error when view name is empty (strFormEmpty)
+ * @todo (also validate if js is disabled, after form submission?)
+ * @version $Id$
+ */
+
+/**
+ * do not import request variable into global scope
+ */
+if (! defined('PMA_NO_VARIABLES_IMPORT')) {
+ define('PMA_NO_VARIABLES_IMPORT', true);
+}
+
+/**
+ *
+ */
+require_once './libraries/common.inc.php';
+
+/**
+ * Runs common work
+ */
+require './libraries/db_common.inc.php';
+$url_params['goto'] = $cfg['DefaultTabDatabase'];
+$url_params['back'] = 'view_create.php';
+
+$view_algorithm_options = array(
+ 'UNDEFINED',
+ 'MERGE',
+ 'TEMPTABLE',
+);
+
+$view_with_options = array(
+ 'CASCADED CHECK OPTION',
+ 'LOCAL CHECK OPTION'
+);
+
+if (isset($_REQUEST['createview'])) {
+ /**
+ * Creates the view
+ */
+ $sep = "\r\n";
+
+ $sql_query = 'CREATE';
+
+ if (isset($_REQUEST['view']['or_replace'])) {
+ $sql_query .= ' OR REPLACE';
+ }
+
+ if (PMA_isValid($_REQUEST['view']['algorithm'], $view_algorithm_options)) {
+ $sql_query .= $sep . ' ALGORITHM = ' . $_REQUEST['view']['algorithm'];
+ }
+
+ $sql_query .= $sep . ' VIEW ' . PMA_backquote($_REQUEST['view']['name']);
+
+ if (! empty($_REQUEST['view']['column_names'])) {
+ $sql_query .= $sep . ' (' . $_REQUEST['view']['column_names'] . ')';
+ }
+
+ $sql_query .= $sep . ' AS ' . $_REQUEST['view']['as'];
+
+ if (isset($_REQUEST['view']['with'])) {
+ $options = array_intersect($_REQUEST['view']['with'], $view_with_options);
+ if (count($options)) {
+ $sql_query .= $sep . ' WITH ' . implode(' ', $options);
+ }
+ }
+
+ if (PMA_DBI_try_query($sql_query)) {
+ $message = PMA_Message::success();
+ require './' . $cfg['DefaultTabDatabase'];
+ exit();
+ } else {
+ $message = PMA_Message::rawError(PMA_DBI_getError());
+ }
+}
+
+// prefill values if not already filled from former submission
+$view = array(
+ 'or_replace' => '',
+ 'algorithm' => '',
+ 'name' => '',
+ 'column_names' => '',
+ 'as' => $sql_query,
+ 'with' => array(),
+);
+
+if (PMA_isValid($_REQUEST['view'], 'array')) {
+ $view = array_merge($view, $_REQUEST['view']);
+}
+
+/**
+ * Displays top menu links
+ * We use db links because a VIEW is not necessarily on a single table
+ */
+$num_tables = 0;
+require_once './libraries/db_links.inc.php';
+
+$url_params['db'] = $GLOBALS['db'];
+$url_params['reload'] = 1;
+
+/**
+ * Displays the page
+ */
+?>
+<!-- CREATE VIEW options -->
+<div id="div_view_options">
+<form method="post" action="view_create.php">
+<?php echo PMA_generate_common_hidden_inputs($url_params); ?>
+<fieldset>
+ <legend>CREATE VIEW</legend>
+
+ <table>
+ <tr><td><label for="or_replace">OR REPLACE</label></td>
+ <td><input type="checkbox" name="view[or_replace]" id="or_replace"
+ <?php if ($view['or_replace']) { ?>
+ checked="checked"
+ <?php } ?>
+ value="1" />
+ </td>
+ </tr>
+ <tr>
+ <td><label for="algorithm">ALGORITHM</label></td>
+ <td><select name="view[algorithm]" id="algorithm">
+ <?php
+ foreach ($view_algorithm_options as $option) {
+ echo '<option value="' . htmlspecialchars($option) . '"';
+ if ($view['algorithm'] === $option) {
+ echo 'selected="selected"';
+ }
+ echo '>' . htmlspecialchars($option) . '</option>';
+ }
+ ?>
+ </select>
+ </td>
+ </tr>
+ <tr><td><?php echo $strViewName; ?></td>
+ <td><input type="text" size="20" name="view[name]" onfocus="this.select()"
+ value="<?php echo htmlspecialchars($view['name']); ?>" />
+ </td>
+ </tr>
+
+ <tr><td><?php echo $strColumnNames; ?></td>
+ <td><input type="text" maxlength="100" size="50" name="view[column_names]"
+ onfocus="this.select()"
+ value="<?php echo htmlspecialchars($view['column_names']); ?>" />
+ </td>
+ </tr>
+
+ <tr><td>AS</td>
+ <td>
+ <textarea name="view[as]" rows="<?php echo $cfg['TextareaRows']; ?>"
+ cols="<?php echo $cfg['TextareaCols']; ?>"
+ dir="<?php echo $text_dir; ?>" onfocus="this.select();"
+ ><?php echo htmlspecialchars($view['as']); ?></textarea>
+ </td>
+ </tr>
+ <tr><td>WITH</td>
+ <td>
+ <?php
+ foreach ($view_with_options as $option) {
+ echo '<input type="checkbox" name="view[with][]"';
+ if (in_array($option, $view['with'])) {
+ echo ' checked="checked"';
+ }
+ echo ' id="view_with_' . htmlspecialchars($option) . '"';
+ echo ' value="' . htmlspecialchars($option) . '" />';
+ echo '<label for="view_with_' . htmlspecialchars($option) . '">';
+ echo htmlspecialchars($option) . '</label>';
+ }
+ ?>
+ </td>
+ </tr>
+ </table>
+</fieldset>
+<fieldset class="tblFooters">
+ <input type="submit" name="createview" value="<?php echo $strGo; ?>" />
+</fieldset>
+</form>
+</div>
+<?php
+/**
+ * Displays the footer
+ */
+require_once './libraries/footer.inc.php';
+
+?>
diff --git a/webapp.php b/webapp.php
new file mode 100644
index 0000000000..681e2a82e7
--- /dev/null
+++ b/webapp.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * generate an WebApp file for Prism / WebRunner
+ *
+ * @see http://wiki.mozilla.org/Prism
+ */
+
+/**
+ *
+ */
+define('PMA_MINIMUM_COMMON', true);
+require_once './libraries/common.inc.php';
+require_once './libraries/zip.lib.php';
+
+// ini file
+$parameters = array(
+ 'id' => 'phpMyAdmin@' . $_SERVER['HTTP_HOST'],
+ 'uri' => $_SESSION['PMA_Config']->get('PmaAbsoluteUri'),
+ 'status' => 'yes',
+ 'location' => 'no',
+ 'sidebar' => 'no',
+ 'navigation' => 'no',
+ 'icon' => 'phpMyAdmin',
+);
+
+// dom sript file
+// none need yet
+
+// icon
+$icon = 'favicon.ico';
+
+// name
+$name = 'phpMyAdmin.webapp';
+
+$ini_file = "[Parameters]\n";
+foreach ($parameters as $key => $value) {
+ $ini_file .= $key . '=' . $value . "\n";
+}
+
+$zip = new zipfile;
+$zip->addFile($ini_file, 'webapp.ini');
+$zip->addFile(file_get_contents($icon), 'phpMyAdmin.ico');
+
+header('Content-Type: application/webapp');
+header('Content-Disposition: attachment; filename="' . $name . '"');
+echo $zip->file();
+?>